реклама на сайте
подробности

 
 
> нужен совет по реализации Asynchronous FIFO
lutik
сообщение Oct 31 2005, 10:40
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 128
Регистрация: 30-06-04
Из: Odessa
Пользователь №: 216



Доброго дня уважаемым.
Трабла возникла с реализацией Asynchronous FIFO, такого рода:
особенностью является то, что жить будет оно в xc2s100-5 с высокой для ентого чипа частотой - 108MHz по записи и не особо высокой - 25MHz по чтению.
Флаги Пуст/Полон выставляю по следующим условиям
empty <= '1' when (rptr = wptr) else '0';
full <= '1' when ( (wptr - rptr) >= (DEPTH -2) ) else '0';
и далее перевожу их в каждый клок домен отдельно.
empty - в домен чтения, full - в домен записи.

в симуляции все нормально, но синтезатор, ЗАРАЗА, убивает всю времянку со стороны записи. Оно и понятно - сумматор и сравнение в комдинаторике дело не быстрое.

Може кто присоветует другие алгоритмы формирования флагов или ваще как-то по другому fifo это сделать а то замучился совсем.

PS. варианты со счетчиками в коде Грея не предлагать - спартан медленный и 8-ми разрядный счетчик Грея сам по себе не синтезируется на нужную времянку


--------------------
однако..
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Coryphae
сообщение Nov 8 2005, 01:50
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 29-10-05
Пользователь №: 10 268



Принцип следующий (так у меня в проекте на Альтере сделано). Берется синхронная FIFO, т.е. с одним клоком и входами разрешения чтения RDEna и разрешения записи WREna. На клок фифо вешается высокая тактовая частота, скажем Fт. Тактовый сигнал чтения (пусть будет RDClk, частота Frd) заводишь на вход запуска одновибратора. Сам одновибратор тактируется по частоте Fт. В AHLD одновибратор строится буквально на двух триггерах DFF, который формирует одиночный импульс длительностью T = 1/Fт, по какому тебе угодно перепаду сигнала RDClock. Этот самый импульс и используешь как импульс разрешения чтения RDEna, тогда будет все читаться однократно. А теперь ОГРАНИЧЕНИЯ: После перепада сигнала RDClock удерживать его не менее Т, гарантированное чтение с выхода фифо производить не ранее чем через 2Т после перепада сигнала RDClock, следствие, 2Frd < Fт. Если же уделить внимание метастабильности, то добавьте еще один триггер: http://www.elvira.ru/_files/tektronix.pdf


--------------------
"Слабые места любого проекта любят собираться в группы" - Пятый закон проектирования.
"Двусмысленность инвариантна" - Принцип неопределенности Хартца.
Законы мерфи (с) А. БЛОХ.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 14:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01391 секунд с 7
ELECTRONIX ©2004-2016