alexadmin
Oct 9 2009, 09:35
Сгенерил сейчас FIFO для Virtex5 (ISE11.3) с разной разрядностью на запись и на чтение. На запись 8 бит, на чтение 64. Моделирую: последовательно записываю 00, 01, 02, 03, 04, 05, 06, 07.
Читаю. Получается слово "0001020304050607", т.е. первый записанный байт оказался старшим. По моим представлениям должно быть наоборот. В доке на фифо генератор про это ни слова. Если следовать логике Block RAM Address Mapping (ug190, page 128), то первый байт должен все-таки в младших разрядах оказаться. Сижу и думаю кому верить.
Никто на практике (в аппаратуре) с этим не сталкивался?
PS У альтеры точно первый младшим оказывается...
DmitryR
Oct 9 2009, 10:03
А в чем собственно вопрос? Вы теперь знаете, как это на практике работает. Не ищите правды, переверните шину и живите спокойно.
alexadmin
Oct 9 2009, 11:27
Цитата(DmitryR @ Oct 9 2009, 14:03)

А в чем собственно вопрос? Вы теперь знаете, как это на практике работает. Не ищите правды, переверните шину и живите спокойно.
Сомнение лишь в одном - неправильная симуляционная модель, которая не будет соответсвовать аппаратуре... В общем придется так и сделать, взяв на дополнительный контроль потом.
Цитата(alexadmin @ Oct 9 2009, 05:27)

Сомнение лишь в одном - неправильная симуляционная модель, которая не будет соответсвовать аппаратуре... В общем придется так и сделать, взяв на дополнительный контроль потом.
собрать и запустить %) много времени не займет %)
дык вот же дока
http://www.xilinx.com/support/documentatio...rator_ug175.pdf, на странице 67 все расписано. Правда она, эта дока, из корегена не вызывается, но лежит аккуратно в папочке фифогенератора рядом с той обрезанной докой, что вызывается из корегена. Сам пробовал эту фичу с несимметричными входами-выходами: понравилось, удобно.
alexadmin
Oct 10 2009, 05:19
rsv, большое спасибо. И правда, теперь все понятно. Развратила меня кнопочка "documentation" в генераторе.
Gothard
Oct 12 2009, 05:41
Цитата(alexadmin @ Oct 9 2009, 13:35)

первый записанный байт оказался старшим
Есть такое у Xilinx. Решил проблему таким образом - на входе и выходе FIFO менял порядок бит - младший подавал на старший и наоборот.
Kuzmi4
Nov 24 2009, 14:52
Здравствуйте.
Вопрос схожий потому решил в этой ветке запостить.
Вопрос касается разной разрядности для чтения/записи одного порта для True Dual Port Ram сгенерённой корегеном.
Пытаюсь разобраться с портом А, разрядность: запись-64б, чтение-32б.
Если пишу с задержками(клоков 20-30 между одиночными записями -> всё равно) - то почему то не пишет в самый первый после ресета или чтения адрес - в следующий за ним адрес всё нормально.
Если же писать пакетом - взвожу we на клоков 10, меняю адрес и подсовываю нужные данные - при чтении получается что записывать начинает с 8-го адреса после поднятия we. Страницы 13-14-15 DS512 прочитал внимательно, но там ничего не сказано про эти фокусы.
Дизайн простой - память и автомат который в порт А читает/пишет. Проверяю пока на Модельсиме.
В принципе есть чувство что что-то пропустил, но прочитал вроде все документы, что смог найти - не нашёл там описания подобного, подскажите кто работал с таким макаром сконфигурённой памятью - отчего такое чудесное поведение может появиться??
alexadmin
Nov 25 2009, 09:01
Цитата(Kuzmi4 @ Nov 24 2009, 17:52)

Если пишу с задержками(клоков 20-30 между одиночными записями -> всё равно) - то почему то не пишет в самый первый после ресета или чтения адрес - в следующий за ним адрес всё нормально.
Это на модели или уже в аппаратуре?
В проблему не вникал, но если первое, то, попробуйте поменять тип генерируемых симуляционных файлов с behavioral на structural. Это в общих настройках Core Generator. Ну и перегенерить, конечно. Иногда интереснейших эффектов можно добиться
Kuzmi4
Nov 25 2009, 09:33
2 alexadmin - ставлю всегда structural. У меня обычно всё что в модели то и в аппаратуре - недоверять в принципе нет смысла. Хотя залить и попробовать не помешает. По задаче: выкрутился 2-мя фифошками

(у меня пока ресурсов хвататет, дотачивать буду потом)
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.