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

 
 
> Рассинхронизация двух IP FIFO Xilinx
Kirill_Good
сообщение Jul 25 2011, 11:46
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 217
Регистрация: 10-12-10
Из: Москва
Пользователь №: 61 528



По ошибке создал не в той ветке прошлое сообщение.

Здравствуйте!

У меня в работе прошивки возникают ошибки, мое предположение из за рассинхронизации двух одинаковых IP FIFO. Опишу принцип работы : 2 ФИФО шириной по 1024 бита, чтобы хранить 2048 битные значения. Сигналы на запись подаются одновременно, сигналы на чтение тоже. ФИФО со стороны записи тактируется 15 МГц, со стороны чтения 30 МГц. Чтение происходит в момент not_empty_fifo1 and not_empty_fifo2. Ошибка заключается в том, что данные в некоторые моменты времени приходят первая часть 1024 верные вторая 1024 неверные, эти моменты времени периодичностью не выделяются.

Верно ли мое предположение?

Спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Hoodwin
сообщение Jul 25 2011, 13:10
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 881
Регистрация: 21-03-10
Из: _// \\_
Пользователь №: 56 107



Тогда еще два вопроса:
1) Почему два FIFO, а не одно на 2048 бит?
2) Собственно выбран IP с явной поддержкой двух независимых доменов тактовой частоты, или нет?
Go to the top of the page
 
+Quote Post
Kirill_Good
сообщение Jul 25 2011, 13:15
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 217
Регистрация: 10-12-10
Из: Москва
Пользователь №: 61 528



Цитата(Hoodwin @ Jul 25 2011, 17:10) *
Тогда еще два вопроса:
1) Почему два FIFO, а не одно на 2048 бит?
2) Собственно выбран IP с явной поддержкой двух независимых доменов тактовой частоты, или нет?


1) диапазон у ip от 1 до 1024
2) да, два домена
Go to the top of the page
 
+Quote Post
Bad0512
сообщение Jul 26 2011, 09:04
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650



Цитата(Kirill_Good @ Jul 25 2011, 20:15) *
1) диапазон у ip от 1 до 1024
2) да, два домена

Какова глубина FIFO?
Переполнение не происходит? Учтите, что у Xilinx FIFO получается глубиной на 1 меньше заявленной,
к примеру 1023 при ожидаемой глубине 1024.
Ещё есть фишка с флажками - они опаздывают на 1 такт. Поэтому в некоторых случаях приходится вставлять
принудительную задержку на 1 клок в стэйт машине обработки фифо.
Go to the top of the page
 
+Quote Post
ivanoffer
сообщение Jul 26 2011, 09:20
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 120
Регистрация: 21-07-11
Пользователь №: 66 348



Не надо ни чего вставлять, все уже придумано и сделано. При синтезе IP поставьте флажок на "Read Port Handshaking" и
данные у себя в проекте захватывайте по сигналу valid. Дальше, строб записи и "момент not_empty_fifo1 and not_empty_fifo2"
желательно (рекомендую) сделать синхронным относительно тактов записи и чтения соответственно.
Go to the top of the page
 
+Quote Post
Bad0512
сообщение Jul 26 2011, 14:45
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650



Цитата(ivanoffer @ Jul 26 2011, 16:20) *
Не надо ни чего вставлять, все уже придумано и сделано. При синтезе IP поставьте флажок на "Read Port Handshaking" и
данные у себя в проекте захватывайте по сигналу valid. Дальше, строб записи и "момент not_empty_fifo1 and not_empty_fifo2"
желательно (рекомендую) сделать синхронным относительно тактов записи и чтения соответственно.

Вы неправильно поняли вопрос. Речь тут идёт не о задержке данных на выходе относительно строба чтения, а совсем о другом.
Речь идёт о том, что флажки по уровню данных в фифо появляются с запозданием на 1 клок. И это необходимо учитывать.
А как вам приспичит формировать сигнал валидности - пользоваться сигналом valid либо сдвигать на 1 такт строб чтения - это к теме отношения не имеет.
Рекомендация привязать строб записи к клокам записи звучит весьма банально, без выполнения этого условия вообще ничего работать не будет.
Сигналы типа "not_empty_fifo1 and not_empty_fifo2" тоже привязывать к клокам чтения не нужно - они и так уже привязаны к этим клокам внутри блока фифо.
Лишняя привязка только добавляет задержку.
Go to the top of the page
 
+Quote Post
ivanoffer
сообщение Jul 26 2011, 15:31
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 120
Регистрация: 21-07-11
Пользователь №: 66 348



Не оспариваю очевидные вещи. Учитывать задержку можно самому, а можно воспользоваться готовым решением.
Рекомендация по привязке флажков к клокам предложена как вариант помощи, когда есть непонимание причины
происхождения сбоев. А вообще в подобных ситуациях ставлю тестовый поток имитации входных данных
(допустим счетчик), который включаю по команде извне.
Go to the top of the page
 
+Quote Post
Bad0512
сообщение Jul 27 2011, 03:42
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650



Цитата(ivanoffer @ Jul 26 2011, 22:31) *
Не оспариваю очевидные вещи. Учитывать задержку можно самому, а можно воспользоваться готовым решением.
Рекомендация по привязке флажков к клокам предложена как вариант помощи, когда есть непонимание причины
происхождения сбоев. А вообще в подобных ситуациях ставлю тестовый поток имитации входных данных
(допустим счетчик), который включаю по команде извне.

Безусловно, симуляция (Modelsim,Questa или ActiveHDL) была бы крайне полезна автору для понимания логики работы ФИФО.
Как правило функциональная симуляция (без учёта задержек в кристалле) снимает 95% вопросов типа "почему не работает?" или "почему работает не так как надо?".
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Kirill_Good   Рассинхронизация двух IP FIFO Xilinx   Jul 25 2011, 11:46
- - Hoodwin   а частоты 15 и 30 МГц когерентны или независимы?   Jul 25 2011, 12:41
|- - Kirill_Good   Цитата(Hoodwin @ Jul 25 2011, 16:41) а ча...   Jul 25 2011, 12:59
- - Kirill_Good   Спасибо за подсказки! Сообщения про задержки F...   Jul 26 2011, 12:45
- - Kirill_Good   Спасибо за советы! Причина сбоев в проекте ст...   Jul 27 2011, 08:25
- - Timmy   Цитата(Kirill_Good @ Jul 27 2011, 12:25) ...   Jul 28 2011, 10:26
- - Kirill_Good   Цитата(Timmy @ Jul 28 2011, 14:26) Из выш...   Jul 28 2011, 11:47
- - Timmy   Цитата(Kirill_Good @ Jul 28 2011, 15:47) ...   Jul 28 2011, 13:18
- - Kirill_Good   Цитата(Timmy @ Jul 28 2011, 17:18) Я имел...   Jul 28 2011, 13:28


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

 


RSS Текстовая версия Сейчас: 27th June 2025 - 00:13
Рейтинг@Mail.ru


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