Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблемы с FIFO Generator (XILINX)
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
lim

Проект делается в ISE12.1 на Virtex5.

Вообщем использую маленькое синхронное FIFO 16x 36bits.
Т.е. в FIFO GENERATOR выбрано COMMON CLOCK и тип памяти: Distributed RAM.

Данное FIFO в проекте работает на нескольких тестовых тактовых частотах.
Получается, таким образом, что из восьми тестовых частот - на 6 всё работает как часы,
а на 2-х верхних - FIFO становится колом: получается, что оба флага FULL, EMPTY одновременно установлены в 1.

Из этой ситуации мне выйти пока не удаётся. В ChipScope - с точки зрения сигналов WR_EN, RD_EN - ситуация полностью идентична в нормальном и не нормальном состояниях. Различие только во флагах - FULL, EMPTY. Когда всё работает, то эти флаги одновременно равны 0, когда же FIFO становится колом они, как я уже выше говорил одновременно равны 1.

Верхние частоты - я не думаю, что уж такие высокие:
Fclk = 250MHz
Fwr_en, Frd_en= 125 MHz

XILINX в DataSheet для FIFO 64x16bits приводит тактовые частоты под 400MHz

Сейчас попробую перейти на тип памяти SHift Register - посмотрю, что будет.

Если у кого-то была такая ситуация с флагами - подскажите, пожалуйста, в чём может быть дело.

С Уважением,
Игорь
Shtirlits
Не думаю, что тип памяти повлияет.
Абсолютное значение частоты не имеет значения, если времянки выполняются - хоть 2 гигагерца.
Не понял я про много клоков. В fifo приходит один клок, раз оно COMMON CLOCK, а где разные тактовые частоты и когда?
lim
Цитата(Shtirlits @ Mar 2 2011, 15:09) *
Не думаю, что тип памяти повлияет.
Абсолютное значение частоты не имеет значения, если времянки выполняются - хоть 2 гигагерца.
Не понял я про много клоков. В fifo приходит один клок, раз оно COMMON CLOCK, а где разные тактовые частоты и когда?


Имеется ввиду, что меняется частота этого единственного clk.
Сначала подаётся F fifo_clk1, затем под управлением процессора изменяется на F fifo_clk2 и работает на этой частоте. Ну и так далее...

Тип памяти - действительно не повлиял !

Вообщем, кое-что ещё нащупал - сейчас попытаюсь посмотреть.

lim
Цитата(Shtirlits @ Mar 2 2011, 16:09) *
Не думаю, что тип памяти повлияет.
Абсолютное значение частоты не имеет значения, если времянки выполняются - хоть 2 гигагерца.
Не понял я про много клоков. В fifo приходит один клок, раз оно COMMON CLOCK, а где разные тактовые частоты и когда?


Пока - без перемен.
У меня сомнение вызвало - выработка самого COMMON CLK. ( он как я сказал ранее может меняться по нажатию кнопки).
Дело в том, что этот сигнал - общий тактовый сигнал для всех модулей, а также для Chip Scope.
Вывел его наружу и контролировал по осциллографу.

Смотрю в ChipScope.
ИНОГДА !!! наблюдалась странная ситуация.
На одной из частот FIFO COMMON CLOCK- не самой верхней.
Подрабатывали флаги EMPTY и FULL - причём картинка не была статической - именно меняющаяся: сколько-то импульсов FULL и некоторое количество импульсов EMPTY - потом вообще оба флага были 0.
Когда же нормальная работа, то картинка полностью статическая, не меняющаяся с течением времени: FULL=0, а EMPTY - меандр. ( Именно Так и должно быть ! ).

По импульсам WR_EN и RD_EN я не вижу никакой асинхронности в ChipScope !!! Эти сигналы при нормальной и некорректной работе выглядят одинаково. Почему же подрабатывали флаги EMPTY и FULL.

Вообщем пока непонятно в чём дело!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.