Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: MIG 3.6 Spartan-6
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
vugluskr
Иатк, FPGA - SPARTAN-6, версия MIG 3.6, среда сборки ISE12.3 сделал однопортовый DDR2 контроллер, фифо для записи/чтения со стороны пользовательской логики 32 битные слова - в общем все стандартно.
Вот какая странность обнаружена.
1) записал в DDR2 счетчик от 0x0 ... 0xf
2) считываю в burst режиме - все ок
3) теперь делаю считывалку, вычитывающую по одному слову и вот, что вижу в чипскопе:


изображено самое начало чтения из фифо чтения.
в ддр2 записано следующее
0
1
2
.
.
F

Посылаем команду для вычитывания одного слова с адреса 0, ждем когда фифо станет не empty, дергаем строб чтения. И получаем, что до строба видим нужный 0, а после строба видим 1. Хотя в ug388 написано(страница 28):
This active-High signal is the read enable for the
Read Data FIFO. Read Data is clocked out of the
FIFO on the rising edge of pX_rd_clk when
pX_rd_en = 1 and pX_rd_empty = 0.

симуляция дает тоже самое.
Такое ощущение, что сбиваются указатели внутри MIG фифо, кто-нибудь наблюдает такое же?
Shtirlits
Спасибо. Учту.
Встречалась такая проблема на spartan 3E при burst size=2. Нашел потом в Release Notes and Known Issues.
Сказано однозначно, при burst size=2 одиночное чтение не работает.
Если аппаратный контроллер в spartan-6 слепили из того что было, то не удивительно.
Ну а кто в кризис будет переписывать давно РАБОТАЮЩИЙ дизайн.
Сейчас полистал документацию - про шестой спартан не нашел такого, должно быть, появится позже или проморгал.
vugluskr
Цитата(Shtirlits @ Dec 3 2010, 23:06) *
Спасибо. Учту.
Встречалась такая проблема на spartan 3E при burst size=2. Нашел потом в Release Notes and Known Issues.
Сказано однозначно, при burst size=2 одиночное чтение не работает.
Если аппаратный контроллер в spartan-6 слепили из того что было, то не удивительно.
Ну а кто в кризис будет переписывать давно РАБОТАЮЩИЙ дизайн.
Сейчас полистал документацию - про шестой спартан не нашел такого, должно быть, появится позже или проморгал.

как я понял и как логично контроллер в спартане-6 изначально ориентирован на бурст - это хорошо и понятно. Между контроллером и моей логикой на самом деле стоит обычная дуал порт РАМ и glue logic (всякие указатели чтения и записи, эмулирующие работу фифо). Мне понятнопочему я вижу второе слово - оно естественно есть в памяти. Очень похоже на неправильную обработку указателей в пограничных состаяних. Тут есть два варианта либо что-то с синхронизацией, либо чисто логическая ошибка. В общем... да Вы правы, кризец.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.