RobFPGA 35 22 декабря, 2018 Опубликовано 22 декабря, 2018 · Жалоба Приветствую! 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vengin 0 22 декабря, 2018 Опубликовано 22 декабря, 2018 · Жалоба За точку отсчёта в обоих случаях берётся фронт rd_en (T=585ns). Как это получается, что если FIFO сконфигурировано без выходного регристра, то rd_en защёлкивается при T=585ns (и выход появлятеся через 1 такт на T=595ns), а если сконфигурировано с выходным регистром, то абсолютно тот же rd_en защёлкивается на такт позже T=595ns? Как-то могут одни и те же одинаковые входные сигналы тактироваться в FIFO по разному? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 35 22 декабря, 2018 Опубликовано 22 декабря, 2018 · Жалоба Приветствую! 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 защелкнутся этим же тактом? Сигнал rd_en разрешит чтение (защелкнется) только на фронте такта 595. Со всеми вытекающими последствиями Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vengin 0 22 декабря, 2018 Опубликовано 22 декабря, 2018 · Жалоба Нет я не прикалываюсь, я недоумеваю. Да, периодически при симуляции начинаешь ломать голову, когда же этот момент синхронизации происходит. И после долгих мучений вроде приходишь к некому консенсусу. Но в данном случае я решительно не понимаю, как абсолютно одинаковые входные данные могут трактоваться по разному. Это у меня в голове пока не укладывается... И как может добавление одного регистра увеличивать задержку на 2 такта? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 35 22 декабря, 2018 Опубликовано 22 декабря, 2018 · Жалоба Приветствую! 10 minutes ago, Vengin said: Нет я не прикалываюсь, я недоумеваю. Да, периодически при симуляции начинаешь ломать голову, когда же этот момент синхронизации происходит. И после долгих мучений вроде приходишь к некому консенсусу. Но в данном случае я решительно не понимаю, как абсолютно одинаковые входные данные могут трактоваться по разному. Это у меня в голове пока не укладывается... Все очень просто - в синхронном дизайне изменение состояния (синхронизация) происходит только в момент активного фронта клока. Все что происходит между клоками к изменению состояния дизайна не приводит. А вы берете то фронт клока то фронт сигнала (от клока зависящий) - отсюда и сумятица. Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vengin 0 22 декабря, 2018 Опубликовано 22 декабря, 2018 · Жалоба Ладно, надо сделать перерыв, пока понятнее не становится. Но по крайней мере есть надежда, что раз кому-то это понятно, значит не всё потеряно . Ещё раз, спасибо за разъяснения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться