Jump to content
    

задержка сигнала (verilog)

Дана: сигнал.

Задача: задержать его на произвольное время (скажем от 100ps до 2 нс).

 

Делаю следующим образом

`timescale 1ns / 1ps

.................
    always @(dop)
    begin
        dip = #1 dop;

    end     

.................

 

На выходе получаю не точное совпадение dop (вверху) и dip (внизу) (см. рисунок).

 

Вопрос: как корректно описать задержку ?

post-19059-1267706290_thumb.png

Share this post


Link to post
Share on other sites

Дана: сигнал.

Задача: задержать его на произвольное время (скажем от 100ps до 2 нс).

 

Вопрос: как корректно описать задержку ?

 

У меня на сайте есть начало "Краткого Курса HDL"...

Читайте, там все расписано!

Share this post


Link to post
Share on other sites

Костян:

Используйте неблокирующее присваивание:

 

 

`timescale 1ns / 1ps

.................
    always @(dop)
    begin
        dip <= #1 dop;

    end     

.................

 

 

http://www.sutherland-hdl.com/papers/1996-...ing_assigns.pdf

Edited by slash_spb

Share this post


Link to post
Share on other sites

Костян:

Используйте неблокирующее присваивание:

 

http://www.sutherland-hdl.com/papers/1996-...ing_assigns.pdf

 

благодарю за ссылку..

но у меня и есть неблокирующее присваивание.

Share this post


Link to post
Share on other sites

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:

Share this post


Link to post
Share on other sites

благодарю за ссылку..

но у меня и есть неблокирующее присваивание.

"=" - блокирующее

"<=" - неблокирующее.

 

Вам дали ссылку выше - там все расписано. Могли бы и посмотреть, прежде, чем спорить. :)

Share this post


Link to post
Share on other sites

благодарю за ссылку..

но у меня и есть неблокирующее присваивание.

См. стр. 16 в документе по ссылке!!!

Share this post


Link to post
Share on other sites

Для тестбенча приведенные примеры подойдут. Но если нужно реально сформировать задержанный сигнал, то #T в синтезе не работает.

Нужно вставлять логические элементы между входным сигналом и выходным, проверять результат, еще вставлять, пока не получишь желаемое. И то - только приблизительно.

Share this post


Link to post
Share on other sites

Нужно вставлять логические элементы между входным сигналом и выходным, проверять результат, еще вставлять, пока не получишь желаемое. И то - только приблизительно.

Констрейны нужно вставлять.

И получишь результат в нужной вилке. :) Ну или не получишь. :(

Share this post


Link to post
Share on other sites

всем спасибо, разобрался.

 

"=" - блокирующее

"<=" - неблокирующее.

 

Вам дали ссылку выше - там все расписано. Могли бы и посмотреть, прежде, чем спорить. :)

мне известны типы присваивания, на самом деле запутался , пробовал и так и эдак. В итоге не обратил внимание, что правильно было с неблокирующим (тут то и создал темку), но после прочтения документа по выше приведенной ссылке - окончательно убедился и доразобрался.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...