another_one 0 9 июля, 2019 Опубликовано 9 июля, 2019 · Жалоба On 6/28/2019 at 7:50 PM, Flip-fl0p said: А шо это за такой супер-секретный код, который не работает, а мы аки Настрадамусы угадать пытаемся где заковыка ? Может лучше выложить этот код сюда, тогда и сразу конструктивный диалог состоится... Вот выложил те самые не рабочие на практике исходники, они находятся в рамках общего большого проекта - топ "не рабочих" исходников исходников - TPO Там же скрины того что пишет оптимизатор и тополоджи мап https://dropmefiles.com/v6ydt On 6/29/2019 at 8:09 AM, des00 said: где то отображение портов на чип побилось, вот и итог попробовал на другом компе с вновь установленной quartus Подскажите пожалуйста куда посмотреть Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
another_one 0 9 июля, 2019 Опубликовано 9 июля, 2019 · Жалоба On 7/1/2019 at 8:51 AM, Doka said: эту гипотезу легко проверить синтезнув в режиме out-of-context (или как он в квартус называется) это как ?, можно поподробнее? On 7/1/2019 at 5:25 PM, blackfin said: Нужно сделать все пины (кроме входного clock'а) виртуальными. не подскажите как это сделать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 9 июля, 2019 Опубликовано 9 июля, 2019 · Жалоба 6 часов назад, another_one сказал: Вот выложил те самые не рабочие на практике исходники, они находятся в рамках общего большого проекта - топ "не рабочих" исходников исходников - TPO Там же скрины того что пишет оптимизатор и тополоджи мап https://dropmefiles.com/v6ydt попробовал на другом компе с вновь установленной quartus Подскажите пожалуйста куда посмотреть Смотреть надо на код и очень внимательно. Ткнул я в Ваши файлы. и слегка СИЛЬНО ! ужаснулся. Например модуль timer8bit - это же тихий ужас. Работа по двум фронтам. Да ещё из разных always блоков с одним регистром... С модулем timer16bit ситуация та-же. Сделайте правильно один таймер, и меняйте его коэффициент пересчета при помощи параметров. Бегло просмотрел другие модули - там тоже жуть жуткая. Мало того ,что код абсолютно не читаемый. Комментариев нет. Форматирования нет. Так ещё по стилю похоже что Вы пытаетесь писать на HDL также как и в программировании. Такой подход с FPGA не пройдет. if(cnt_g == st_param + k_param + a_param + c_param + d_param + (e_param - b_param)) Я даже представить боюсь во что такое будет синтезироваться. Учитывая, что почти все сигналы формируются в разных доменах, да ещё и по разным фронтам.... Извините меня, мне конечно ещё самому учиться и учиться. Но я бы за такой код бил по рукам сильно ругал сотрудника Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 10 июля, 2019 Опубликовано 10 июля, 2019 · Жалоба 14 hours ago, another_one said: Вот выложил те самые не рабочие на практике исходники, они находятся в рамках общего большого проекта - топ "не рабочих" исходников исходников - TPO Там же скрины того что пишет оптимизатор и тополоджи мап https://dropmefiles.com/v6ydt попробовал на другом компе с вновь установленной quartus Подскажите пожалуйста куда посмотреть вы меня за прямоту извините, но 1. Квартус же вам черным по белому пишет : опрокинут в ноль из-за замороженного порта бла-бла-бла 2. Вы просите помочь с сорцами, но вам сложно сделать qar чтоб человек развернул ваш проект и посмотрел? 3. Вот это вот, вам убрать не приходило в голову? Warning (10236): Verilog HDL Implicit Net warning at Sdram_driver.v(351): created implicit net for "ready" Warning (10236): Verilog HDL Implicit Net warning at Sdram_driver.v(364): created implicit net for "otrig" Warning (10236): Verilog HDL Implicit Net warning at star1000.v(150): created implicit net for "trig3" Warning (10236): Verilog HDL Implicit Net warning at TPO.v(84): created implicit net for "extrig" Warning (10036): Verilog HDL or VHDL warning at serial.v(48): object "cnt_2c" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at serial.v(49): object "cnt2_2c" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at serial.v(50): object "odatar2" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at serial.v(52): object "en4" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at serial.v(53): object "nas" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at serial.v(55): object "kadr_cnt" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at serial.v(64): object "cen" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at serial.v(65): object "tre" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at serial.v(68): object "tre3" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at serial.v(69): object "tre4" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at serial.v(73): object "comres_reg" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at serial.v(75): object "start" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at serial.v(76): object "cnt_p" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at serial.v(78): object "RESET_reg" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at serial.v(79): object "c_res_flag" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at serial.v(80): object "clk_cnt" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at serial.v(81): object "clk_reg" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at serial.v(82): object "start_X" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at serial.v(83): object "del_cnt" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at serial.v(84): object "CLK_ADC" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at serial.v(85): object "start_2" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at serial.v(86): object "uen" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at serial.v(88): object "clk_reg_was" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at serial.v(90): object "sendcomplt" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at serial.v(91): object "uend" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at serial.v(92): object "fsend" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at serial.v(98): object "delay_param" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at serial.v(104): object "flag_end" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at serial.v(109): object "ttw_transit" assigned a value but never read Warning (10230): Verilog HDL assignment warning at serial.v(55): truncated value with size 21 to match size of target (1) Warning (10036): Verilog HDL or VHDL warning at Sdram_driver.v(351): object "ready" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at Sdram_driver.v(90): object "_256cnt" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at Sdram_driver.v(93): object "adc2_rd_en" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at Sdram_driver.v(94): object "adc1_rd_en" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at Sdram_driver.v(95): object "prev_adc1_dout" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at Sdram_driver.v(96): object "sdram_enable" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at Sdram_driver.v(97): object "sdram_wr" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at Sdram_driver.v(98): object "sdram_byte_en" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at Sdram_driver.v(99): object "sdram_adress" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at Sdram_driver.v(100): object "sram_dout" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at Sdram_driver.v(101): object "flag_sram_rd" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at Sdram_driver.v(102): object "rst_flag_sram_rd" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at Sdram_driver.v(103): object "set_flag_sram_rd" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at Sdram_driver.v(104): object "sram_rd_adr" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at Sdram_driver.v(105): object "sram_wr_adr" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at Sdram_driver.v(106): object "set_ack" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at Sdram_driver.v(150): object "parity" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at Sdram_driver.v(193): object "rdcnt" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at Sdram_driver.v(197): object "trig" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at Sdram_driver.v(199): object "rows" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at Sdram_driver.v(200): object "columns" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at Sdram_driver.v(202): object "nLB_Oreg" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at Sdram_driver.v(203): object "nUB_Oreg" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at Sdram_driver.v(205): object "nCS_Oreg" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at Sdram_driver.v(206): object "wcntofpic" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at Sdram_driver.v(207): object "DAT_Oreg" assigned a value but never read Warning (10230): Verilog HDL assignment warning at Sdram_driver.v(292): truncated value with size 32 to match size of target (8) Warning (10230): Verilog HDL assignment warning at Sdram_driver.v(297): truncated value with size 32 to match size of target (8) Warning (10230): Verilog HDL assignment warning at Sdram_driver.v(302): truncated value with size 32 to match size of target (8) Warning (10230): Verilog HDL assignment warning at Sdram_driver.v(307): truncated value with size 32 to match size of target (8) Warning (10235): Verilog HDL Always Construct warning at Sdram_driver.v(498): variable "cntof256k" is read inside the Always Construct but isn't in the Always Construct's Event Control Warning (10230): Verilog HDL assignment warning at Sdram_driver.v(501): truncated value with size 18 to match size of target (4) Warning (10240): Verilog HDL Always Construct warning at Sdram_driver.v(494): inferring latch(es) for variable "cntof256k", which holds its previous value in one or more paths through the always construct Warning (10030): Net "rrts" at Sdram_driver.v(40) has no driver or initial value, using a default initial value '0' Warning (10034): Output port "odata" at Sdram_driver.v(43) has no driver Warning (10034): Output port "nUB" at Sdram_driver.v(25) has no driver Warning (10034): Output port "nLB" at Sdram_driver.v(26) has no driver Warning (10034): Output port "nOE" at Sdram_driver.v(27) has no driver Warning (10034): Output port "request_to_serial" at Sdram_driver.v(44) has no driver Warning (10036): Verilog HDL or VHDL warning at star1000.v(42): object "cnttt" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at star1000.v(44): object "cnt" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at star1000.v(45): object "cntt" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at star1000.v(46): object "cnt_2c" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at star1000.v(47): object "cnt2_2c" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at star1000.v(48): object "odatar2" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at star1000.v(51): object "nas" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at star1000.v(52): object "tt_was" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at star1000.v(56): object "uclk" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at star1000.v(61): object "cen" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at star1000.v(62): object "tre" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at star1000.v(63): object "start_send" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at star1000.v(64): object "stop_send" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at star1000.v(66): object "tre2" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at star1000.v(67): object "tre3" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at star1000.v(68): object "tre4" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at star1000.v(91): object "uen" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at star1000.v(92): object "trig_was" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at star1000.v(94): object "entr" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at star1000.v(98): object "capv_param" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at star1000.v(99): object "delay_param" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at star1000.v(100): object "delay2_param" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at star1000.v(108): object "f_param" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at star1000.v(109): object "g_param" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at star1000.v(113): object "l_param" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at star1000.v(114): object "m_param" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at star1000.v(117): object "xy_tout" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at star1000.v(123): object "X_sel" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at star1000.v(125): object "cnt_clr" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at star1000.v(127): object "Y_was" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at star1000.v(131): object "ADC_DATA" assigned a value but never read Warning (10036): Verilog HDL or VHDL warning at star1000.v(132): object "Y_2s" assigned a value but never read Warning (10230): Verilog HDL assignment warning at star1000.v(599): truncated value with size 11 to match size of target (10) Warning (10235): Verilog HDL Always Construct warning at star1000.v(693): variable "cnt_CA" is read inside the Always Construct but isn't in the Always Construct's Event Control Warning (10235): Verilog HDL Always Construct warning at star1000.v(694): variable "cnt_CA" is read inside the Always Construct but isn't in the Always Construct's Event Control Warning (10235): Verilog HDL Always Construct warning at star1000.v(696): variable "start_conversion" is read inside the Always Construct but isn't in the Always Construct's Event Control Warning (10240): Verilog HDL Always Construct warning at star1000.v(690): inferring latch(es) for variable "cnt_CA", which holds its previous value in one or more paths through the always construct Warning (10235): Verilog HDL Always Construct warning at star1000.v(705): variable "cnt_CA" is read inside the Always Construct but isn't in the Always Construct's Event Control Warning (10235): Verilog HDL Always Construct warning at star1000.v(706): variable "S_ADC_DATA" is read inside the Always Construct but isn't in the Always Construct's Event Control Warning (10034): Output port "oreg" at star1000.v(29) has no driver Warning (10034): Output port "S_TRI_M1" at star1000.v(23) has no driver Warning (10034): Output port "S_TRI_M2" at star1000.v(24) has no driver Warning (10034): Output port "ramen" at star1000.v(28) has no driver а выбрасывает верно, ответ почему, в одном из предупреждений. Либо вы сами, либо кто-то еще, поправил/испортил сорцы. система контроля версий подскажет. ЗЫ. Дабы не быть голословным и поверхностным, ответ в 154 ом сообщении из 298, окна Processing, если произвести синтез вашего проекта в 9.1sp2 64 бит, для сыклона 3 пятерки Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DimaG 0 10 июля, 2019 Опубликовано 10 июля, 2019 · Жалоба 17 hours ago, another_one said: не подскажите как это сделать? Попробуйте для начала аккуратно переписать исходники. Вам сам же будет проще разобраться. Вот на примере таймера: module timer16bit ( input bit clk, input bit reset, input bit[15:0] capv, input bit en output bit trig ); bit[15:0] counter; always_ff @(posedge clk) begin if (reset) begin counter <= '0; trig <= '0; end else if (en) begin trig <= '0; counter <= counter + 1; if (counter == trig) begin trig <= '1; counter <= '0; end end end endmodule Далее, почитайте книжки по проектированию на HLD (От Альтеры был вроде какой-то Programming Guide, еще рекомендуют HDL chip design), стандарт языка. Сразу же активно осваивайте симуляторы Questa/Model sim, привыкайте делать тестбенчи. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
another_one 0 10 июля, 2019 Опубликовано 10 июля, 2019 · Жалоба 12 hours ago, Flip-fl0p said: Смотреть надо на код и очень внимательно. Ткнул я в Ваши файлы. и слегка СИЛЬНО ! ужаснулся. Например модуль timer8bit - это же тихий ужас. Работа по двум фронтам. Да ещё из разных always блоков с одним регистром... С модулем timer16bit ситуация та-же. Сделайте правильно один таймер, и меняйте его коэффициент пересчета при помощи параметров. Бегло просмотрел другие модули - там тоже жуть жуткая. Мало того ,что код абсолютно не читаемый. Комментариев нет. Форматирования нет. Так ещё по стилю похоже что Вы пытаетесь писать на HDL также как и в программировании. Такой подход с FPGA не пройдет. if(cnt_g == st_param + k_param + a_param + c_param + d_param + (e_param - b_param)) Я даже представить боюсь во что такое будет синтезироваться. Учитывая, что почти все сигналы формируются в разных доменах, да ещё и по разным фронтам.... Извините меня, мне конечно ещё самому учиться и учиться. Но я бы за такой код бил по рукам сильно ругал сотрудника А что не так с доменами?, я делаю специально один always на один сигнал и поэтому 2 разных фронта имеет место быть. Наоборот стиль программиста это в один always пихать все сигналы как в функцию. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DimaG 0 10 июля, 2019 Опубликовано 10 июля, 2019 · Жалоба 9 minutes ago, another_one said: А что не так с доменами?, я делаю специально один always на один сигнал и поэтому 2 разных фронта имеет место быть. Наоборот стиль программиста это в один always пихать все сигналы как в функцию. Работа по двум фронтам - удел узкоспециализированных применений (DDR), либо ошибка в проектировании. Грубо говоря, квартусу в два раза сложнее удовлетворить временные ограничения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 10 июля, 2019 Опубликовано 10 июля, 2019 · Жалоба 13 часов назад, Flip-fl0p сказал: Бегло просмотрел другие модули - там тоже жуть жуткая. Мало того ,что код абсолютно не читаемый. Комментариев нет. Форматирования нет. Так ещё по стилю похоже что Вы пытаетесь писать на HDL также как и в программировании. Такой подход с FPGA не пройдет. Солидарен... Такой код сложно писать и отлаживать. Это пример "как не надо делать ни в коем случае"... Или по простому "расстрельная статья"... А на самом деле - метод проектирования надо менять. Все делается гораздо, гораздо легче и быстрее... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться