[an error occurred while processing this directive]
|
Доброго дня уважаемым.
Трабла возникла с реализацией 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-ми разрядный счетчик Грея сам по себе не синтезируется на нужную времянку
E-mail: info@telesys.ru