Костян 0 March 4, 2010 Posted March 4, 2010 · Report post Дана: сигнал. Задача: задержать его на произвольное время (скажем от 100ps до 2 нс). Делаю следующим образом `timescale 1ns / 1ps ................. always @(dop) begin dip = #1 dop; end ................. На выходе получаю не точное совпадение dop (вверху) и dip (внизу) (см. рисунок). Вопрос: как корректно описать задержку ? Quote Share this post Link to post Share on other sites More sharing options...
iosifk 3 March 4, 2010 Posted March 4, 2010 · Report post Дана: сигнал. Задача: задержать его на произвольное время (скажем от 100ps до 2 нс). Вопрос: как корректно описать задержку ? У меня на сайте есть начало "Краткого Курса HDL"... Читайте, там все расписано! Quote Share this post Link to post Share on other sites More sharing options...
Костян 0 March 4, 2010 Posted March 4, 2010 · Report post благодарю...зайду. Quote Share this post Link to post Share on other sites More sharing options...
slash_spb 0 March 4, 2010 Posted March 4, 2010 (edited) · Report post Костян: Используйте неблокирующее присваивание: `timescale 1ns / 1ps ................. always @(dop) begin dip <= #1 dop; end ................. http://www.sutherland-hdl.com/papers/1996-...ing_assigns.pdf Edited March 4, 2010 by slash_spb Quote Share this post Link to post Share on other sites More sharing options...
Костян 0 March 4, 2010 Posted March 4, 2010 · Report post Костян: Используйте неблокирующее присваивание: http://www.sutherland-hdl.com/papers/1996-...ing_assigns.pdf благодарю за ссылку.. но у меня и есть неблокирующее присваивание. Quote Share this post Link to post Share on other sites More sharing options...
Kuzmi4 0 March 4, 2010 Posted March 4, 2010 · Report post 2 Костян в тестбенче мига видел такое: always @( * ) begin ddr2_clk_sdram <= #(TPROP_PCB_CTRL) ddr2_clk_fpga; ddr2_clk_n_sdram <= #(TPROP_PCB_CTRL) ddr2_clk_n_fpga; ddr2_address_sdram <= #(TPROP_PCB_CTRL) ddr2_address_fpga; ddr2_ba_sdram <= #(TPROP_PCB_CTRL) ddr2_ba_fpga; ddr2_ras_n_sdram <= #(TPROP_PCB_CTRL) ddr2_ras_n_fpga; ddr2_cas_n_sdram <= #(TPROP_PCB_CTRL) ddr2_cas_n_fpga; ddr2_we_n_sdram <= #(TPROP_PCB_CTRL) ddr2_we_n_fpga; ddr2_cs_n_sdram <= #(TPROP_PCB_CTRL) ddr2_cs_n_fpga; ddr2_cke_sdram <= #(TPROP_PCB_CTRL) ddr2_cke_fpga; ddr2_odt_sdram <= #(TPROP_PCB_CTRL) ddr2_odt_fpga; ddr2_dm_sdram_tmp <= #(TPROP_PCB_DATA) ddr2_dm_fpga;//DM signal generation end вроде как раз то, что вам нужно :rolleyes: Quote Share this post Link to post Share on other sites More sharing options...
Des333 0 March 4, 2010 Posted March 4, 2010 · Report post благодарю за ссылку.. но у меня и есть неблокирующее присваивание. "=" - блокирующее "<=" - неблокирующее. Вам дали ссылку выше - там все расписано. Могли бы и посмотреть, прежде, чем спорить. :) Quote Share this post Link to post Share on other sites More sharing options...
Джеймс 5 March 4, 2010 Posted March 4, 2010 · Report post благодарю за ссылку.. но у меня и есть неблокирующее присваивание. См. стр. 16 в документе по ссылке!!! Quote Share this post Link to post Share on other sites More sharing options...
ViKo 1 March 9, 2010 Posted March 9, 2010 · Report post Для тестбенча приведенные примеры подойдут. Но если нужно реально сформировать задержанный сигнал, то #T в синтезе не работает. Нужно вставлять логические элементы между входным сигналом и выходным, проверять результат, еще вставлять, пока не получишь желаемое. И то - только приблизительно. Quote Share this post Link to post Share on other sites More sharing options...
dvladim 0 March 9, 2010 Posted March 9, 2010 · Report post Нужно вставлять логические элементы между входным сигналом и выходным, проверять результат, еще вставлять, пока не получишь желаемое. И то - только приблизительно. Констрейны нужно вставлять. И получишь результат в нужной вилке. :) Ну или не получишь. :( Quote Share this post Link to post Share on other sites More sharing options...
Костян 0 March 10, 2010 Posted March 10, 2010 · Report post всем спасибо, разобрался. "=" - блокирующее "<=" - неблокирующее. Вам дали ссылку выше - там все расписано. Могли бы и посмотреть, прежде, чем спорить. :) мне известны типы присваивания, на самом деле запутался , пробовал и так и эдак. В итоге не обратил внимание, что правильно было с неблокирующим (тут то и создал темку), но после прочтения документа по выше приведенной ссылке - окончательно убедился и доразобрался. Quote Share this post Link to post Share on other sites More sharing options...