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

 
 
> Spartan 6 и его внутреннее ФИФО (не дружат) (((
ovs_pavel
сообщение Nov 30 2012, 05:37
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 275
Регистрация: 19-05-06
Пользователь №: 17 249



День добрый коллеги. Столкнулся со следующей проблемой при использовании ФИФО 6-го спартана (xc6slx45 - 3fgg676).

В спартане использую блоки ФИФО, которые пишутся и читаются на разных частотах. При построении ФИФО визардом применял следующие установки:
1. Indepentend Clocks, Block RAM.
2. First World Fall Through.

Частота записи -125, чтения - 118. Проблема заключается в следующем - после того, как заканчиваю запись в ФИФО, выставляю признак окончания записи и начинаю читать данные. Но из ФИФО всегда считывается только 1-ое записанное слово данных. Причем ситуация неустойчивая, зависит от перекомпиляции проекта. Причем проект СИНХРОННЫЙ, все подбито к сеткам (по записи и чтению; асинхронность не признаю в принципе). Я бы может и забил на это дело, перекомпилял бы проект и все.

Но вчера понадобилось встроить еще одно ФИФО (для другого интерфейса). При этом частота записи - 20, чтения - 118. И ситуация повторилась вновь, уже на этом ФИФО.

Может это быть как-то связано с DCM-модулями спартана (и частота 118 МГц, и 20 МГц формируются с помощью DCM). На самом деле не совсем понятно. Это стандартная практика перевода данных с одной частоты на другую и проблем быть не должно. Более того Virtex-2, Virtex-2 Pro, Virtex-5, Stratix1(2) прекрасно работают. Здесь я что-то не понимаю. Нет у кого каких либо мыслей??
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
dmitry-tomsk
сообщение Nov 30 2012, 20:24
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741



В отличие от virtex в spartan нет аппаратных fifo, и никаких errata быть не может. Если дело в корке, то можно обновить софт, а вообще фифо вещь простая, наверное, у каждого есть любимая реализация фифо на рассыпухе, зачем нужен тормоз в виде логикоре?
Go to the top of the page
 
+Quote Post
akorud
сообщение Nov 30 2012, 20:52
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 203
Регистрация: 12-11-10
Из: Poland
Пользователь №: 60 842



Цитата(dmitry-tomsk @ Nov 30 2012, 21:24) *
зачем нужен тормоз в виде логикоре?

затем что "time to market". У нас например нет любимой реализации, логикоре работает отлично и сразу.
Go to the top of the page
 
+Quote Post
ovs_pavel
сообщение Dec 1 2012, 15:29
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 275
Регистрация: 19-05-06
Пользователь №: 17 249



Спасибо откликнувшимся. Вчера вместо одного из ФИФО - того у которого запись на 20 а чтение на 118, использовал двухпортовое ОЗУ (запись по WE, чтение просто по изменению на шине адреса). Несколько раз прошивал ПЛИС все ОК, никаких ошибок не возникало. Единственное отличие - при построении ОЗУ указал когену использовать не BlockRAM, а distributedRAM. Буду теперь играться с первым ФИФО, попробую тоже переделать на двухпортовое ОЗУ. Может компилятор так разведет нормально.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 25th August 2025 - 18:11
Рейтинг@Mail.ru


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