Jump to content

    
Sign in to follow this  
Vengin

Проблемы с симуляцией FIFO корки в Vivado

Recommended Posts

Приветствую!

1 hour ago, Vengin said:

Как видим значение на выходе dout появляется через 2 такта + 100ps, т.е. 3 такта для синхронной логики. Как же так?

Опять "за рыбу гроши"

2 hours ago, RobFPGA said:

Ну и опять же для functional - в синхронной схеме latency считается  не от момента когда сигнал изменил значение (rd_en в 585000+(0..ps))  а от такта в котором этот сигнал привел к смене состояния в дизайне (чтение в 595000) и до такта в котором это событие изменило состояние соответствующего выхода (data в 605000).

То есть latency 1 - но данные появляются на 2 такте после установки rd_en. Bсе зависит о точки зрения

 

Что вы берете за точки отсчета?    

 

Удачи! Rob

Share this post


Link to post
Share on other sites

За точку отсчёта в обоих случаях берётся фронт rd_en (T=585ns). Как это получается, что если FIFO сконфигурировано без выходного регристра, то rd_en защёлкивается при T=585ns (и выход появлятеся через 1 такт на T=595ns), а если сконфигурировано с выходным регистром, то абсолютно тот же rd_en защёлкивается на такт позже T=595ns?

Как-то могут одни и те же одинаковые входные сигналы тактироваться в FIFO по разному?

Share this post


Link to post
Share on other sites

Приветствую!

7 minutes ago, Vengin said:

За точку отсчёта в обоих случаях берётся фронт rd_en (T=585ns). Как это получается, что если FIFO сконфигурировано без выходного регристра, то rd_en защёлкивается при T=585ns (и выход появлятеся через 1 такт на T=595ns), а если сконфигурировано с выходным регистром, то абсолютно тот же rd_en защёлкивается на такт позже T=595ns?

Как-то могут одни и те же одинаковые входные сигналы тактироваться в FIFO по разному?

Вы прикалываетесь?  Как может rd_en который установился в 1 ПОСЛЕ такта 585 защелкнутся этим же тактом? :shok: Сигнал rd_en разрешит чтение (защелкнется) только на фронте такта 595. Со всеми вытекающими последствиями

Удачи! Rob. 

Share this post


Link to post
Share on other sites

Нет я не прикалываюсь, я недоумеваю. Да, периодически при симуляции начинаешь ломать голову, когда же этот момент синхронизации происходит. И после долгих мучений вроде приходишь к некому консенсусу. Но в данном случае я решительно не понимаю, как абсолютно одинаковые входные данные могут трактоваться по разному. Это у меня в голове пока не укладывается...:dash1:

И как может добавление одного регистра увеличивать задержку на 2 такта?

Share this post


Link to post
Share on other sites

Приветствую!

10 minutes ago, Vengin said:

Нет я не прикалываюсь, я недоумеваю. Да, периодически при симуляции начинаешь ломать голову, когда же этот момент синхронизации происходит. И после долгих мучений вроде приходишь к некому консенсусу. Но в данном случае я решительно не понимаю, как абсолютно одинаковые входные данные могут трактоваться по разному. Это у меня в голове пока не укладывается...:dash1:

Все очень просто - в синхронном дизайне изменение состояния (синхронизация) происходит только в момент активного фронта клока.  Все что происходит между клоками к изменению состояния дизайна не приводит. А вы берете то фронт клока то фронт сигнала (от клока зависящий) - отсюда и сумятица.

Удачи! Rob.

Share this post


Link to post
Share on other sites

Ладно, надо сделать перерыв, пока понятнее не становится. Но по крайней мере есть надежда, что раз кому-то это понятно, значит не всё потеряно :wacko2:.

Ещё раз, спасибо за разъяснения.

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.

Sign in to follow this