Костян 0 4 марта, 2010 Опубликовано 4 марта, 2010 · Жалоба Дана: сигнал. Задача: задержать его на произвольное время (скажем от 100ps до 2 нс). Делаю следующим образом `timescale 1ns / 1ps ................. always @(dop) begin dip = #1 dop; end ................. На выходе получаю не точное совпадение dop (вверху) и dip (внизу) (см. рисунок). Вопрос: как корректно описать задержку ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 4 марта, 2010 Опубликовано 4 марта, 2010 · Жалоба Дана: сигнал. Задача: задержать его на произвольное время (скажем от 100ps до 2 нс). Вопрос: как корректно описать задержку ? У меня на сайте есть начало "Краткого Курса HDL"... Читайте, там все расписано! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Костян 0 4 марта, 2010 Опубликовано 4 марта, 2010 · Жалоба благодарю...зайду. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
slash_spb 0 4 марта, 2010 Опубликовано 4 марта, 2010 (изменено) · Жалоба Костян: Используйте неблокирующее присваивание: `timescale 1ns / 1ps ................. always @(dop) begin dip <= #1 dop; end ................. http://www.sutherland-hdl.com/papers/1996-...ing_assigns.pdf Изменено 4 марта, 2010 пользователем slash_spb Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Костян 0 4 марта, 2010 Опубликовано 4 марта, 2010 · Жалоба Костян: Используйте неблокирующее присваивание: http://www.sutherland-hdl.com/papers/1996-...ing_assigns.pdf благодарю за ссылку.. но у меня и есть неблокирующее присваивание. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kuzmi4 0 4 марта, 2010 Опубликовано 4 марта, 2010 · Жалоба 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: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Des333 0 4 марта, 2010 Опубликовано 4 марта, 2010 · Жалоба благодарю за ссылку.. но у меня и есть неблокирующее присваивание. "=" - блокирующее "<=" - неблокирующее. Вам дали ссылку выше - там все расписано. Могли бы и посмотреть, прежде, чем спорить. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Джеймс 3 4 марта, 2010 Опубликовано 4 марта, 2010 · Жалоба благодарю за ссылку.. но у меня и есть неблокирующее присваивание. См. стр. 16 в документе по ссылке!!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 9 марта, 2010 Опубликовано 9 марта, 2010 · Жалоба Для тестбенча приведенные примеры подойдут. Но если нужно реально сформировать задержанный сигнал, то #T в синтезе не работает. Нужно вставлять логические элементы между входным сигналом и выходным, проверять результат, еще вставлять, пока не получишь желаемое. И то - только приблизительно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dvladim 0 9 марта, 2010 Опубликовано 9 марта, 2010 · Жалоба Нужно вставлять логические элементы между входным сигналом и выходным, проверять результат, еще вставлять, пока не получишь желаемое. И то - только приблизительно. Констрейны нужно вставлять. И получишь результат в нужной вилке. :) Ну или не получишь. :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Костян 0 10 марта, 2010 Опубликовано 10 марта, 2010 · Жалоба всем спасибо, разобрался. "=" - блокирующее "<=" - неблокирующее. Вам дали ссылку выше - там все расписано. Могли бы и посмотреть, прежде, чем спорить. :) мне известны типы присваивания, на самом деле запутался , пробовал и так и эдак. В итоге не обратил внимание, что правильно было с неблокирующим (тут то и создал темку), но после прочтения документа по выше приведенной ссылке - окончательно убедился и доразобрался. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться