Я наверно криво сформулировал название, но придумать точнее не могу.
Вопрос по реализации на верилоге, возможно вопрос какой-то глупый, но я в этом направлении начинающий
Есть плис, к ней подключен мост FT600 . Речь идет о передачи данных из плис в мост, чтоб прочитать на компе. Так вот в плис данные лежат в фифо и по готовности FT600 их надо ему закачать. Интерфейс у Ft600 напоминает синхронное фифо, поэтому я и написал что нужно перегнать данные с фифо в фифо.
Я привожу две катинки, чтобы описать временную диаграму Ft600:
Нажмите для просмотра прикрепленного файла
CLK - клог генерируемый Ft600
TXE - сигнал готовности Ft600 к приему (выход Ft600)
WR - сигнал валидности данных (вход Ft600)
Остальные сигналы не очень важны.
Цветом я обозначил перепады в конце, на которые буду ссылаться.
В примере на картинке данные я в плис должен выставить по зеленому спаду. По красному фронту Ft600 из залэтчит. Затем поймет что более не хочет/ не может принять и на следующем желтом спаде уберет сигнал готовности приема. На следующем синем фронте он уже проигнорирует то, что стоит на шине. Хотя я зачем-то согласно времянке должен еще один такт держать WR активным.
Теперь о той части, что в плис, но без картинок. В плис фифо, у фифо на входе клок, сигнал разрешения чтения и данные. Читается по фронту (сигнал разрешения чтения я должен выставить по спаду за пол клока до этого).
Вот наконец мы подошли к вопросу номер один.
Как я должен это все организовать? У меня два варианта:
1. Я согласно времянке должен выставить данные на шину Ft600 по спаду, чтоб по фронту он прочитал. Я могу инвертировать клок у себя и подать его на мой фифо, тогда данные будут читаться как бы по спаду входного клока.
2. Никакой клок не инвертировать. Читать из фифо по фронту. Тогда например, по тому фронту, что перед зеленым я данные прочитаю из фифо, выставлю на шину, но Ft600 уже по этому фронту не успеет эти данные увидеть и залэтчит их на следующем фронте. Таким образом он их лэтчить будет как бы с задержкой на клок. И это у меня даже работает.
Как обычно делают??? Я так понимаю первый вариант он более правильный что ли, но при этом сразу же вдвое снижается максимальная частота работы. Так как на все задержки остается пол клока. А во втором случае целый клок.
Я надеюсь хоть что-то понятно в вопросе.
Будет еще вопрос номер два, но лучше после первого.
Спасибо.