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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Q13.1, Cyclone IV: MemoryCompiler/FIFO, данные от АЦП, lpm_fifo_dc
Genadi Zawidowsk...
сообщение Oct 11 2015, 08:12
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Пытаюсь сделать FIFO с двумя клоками.
Есть проект со своим тактовым сигналом и есть данные от АЦП, сопровождаемые одним клоком (формируемым из проектного клока). Пытаюсь ввести между ними FIFO данных (dual clock) для исключения возможных неоднозначностей при взаимном джиттере этих тактовых сигналов - FIFO, содержащее не менее двух и не более восьми слов. Клок от АЦП может пропадать, эта ситуация (мусор на выходе FIFO) просто игнорируется.
Кроме того, это будет необходимо при возможном переходе на мультиплексированную шину от АЦП, когда за один период тактового сигнала передается две выборки.

КОроче, не получается... Вот кусочек проекта.
Ещё... Кто знает, означает ли примечание (4) в описани ug_fifo.pdf, что сигналы wrempty и rdempty можно использовать только в конфигурациях с разной шириной шин входа и выхода?

Для контроля работоспособности проекта используется версия этого блока без FIFO, просто с синхронизатором.

Сообщение отредактировал Genadi Zawidowski - Oct 11 2015, 08:23
Эскизы прикрепленных изображений
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  fifo.zip ( 12.6 килобайт ) Кол-во скачиваний: 9
Прикрепленный файл  ug_fifo.pdf ( 716.94 килобайт ) Кол-во скачиваний: 18
 
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Oct 13 2015, 11:36
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Любые варианты комбинационной логики с соответствующих выходов (количество занятых слов FIFO) на входы дают неработоспособные варианты схемы. Если "зажать" wrreq и rdreq на VCC - только в этом случае нет помех (шума) - но это не то, что хотелось бы от этой схемы получить (состояние между совеесм пусто и совсем заполнено).
Go to the top of the page
 
+Quote Post
Maverick
сообщение Oct 13 2015, 12:06
Сообщение #3


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(Genadi Zawidowski @ Oct 13 2015, 14:36) *

Попробуйте сделать следующее:
С одной стороны счетчик ситает количество записанных слов до определенного значения, при достижении выдается импульс-готовности
Этот импульс-готовности передается через кросдомен клоков и с другой стороный начинается вычитка записанных слов.
Далее запись уже производиться в другую половину памяти и чтение делается из той половины памяти куда ранее писали данные..

При этом двупортовая память организована по принципу видеобуфера, т.е. в одну половину памяти только пишем, с другой половины памяти только читаем...

Можно попробовать сделать на регистрах, вместо использования блочной памяти


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Oct 13 2015, 12:37
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



А зачем городить счетчик и кроссдоменную синхронизацию, если в fifo_dc это уже предусмотрено? Или оно на самом деле не работает и надол всё руками?
Go to the top of the page
 
+Quote Post
Maverick
сообщение Oct 13 2015, 18:07
Сообщение #5


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(Genadi Zawidowski @ Oct 13 2015, 15:37) *
А зачем городить счетчик и кроссдоменную синхронизацию, если в fifo_dc это уже предусмотрено? Или оно на самом деле не работает и надол всё руками?

я Вам предложил без фифо.
Двухпортовая память + обвязка

PS фифо рабочее


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Александр77
сообщение Oct 13 2015, 19:00
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 608
Регистрация: 10-07-09
Из: Дубна, Московская область
Пользователь №: 51 111



Насколько понимаю, FIFO (особенно двуклоковые) крайне не любят работать в режиме "пропадания" такта.
Поставьте формирователь, который будет генерить такты из тактов АЦП даже в том случае, когда сами такты пропадают.
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Oct 13 2015, 19:09
Сообщение #7


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Ну это не пропадание...
Уточню: есть всегда идущий системный клок. Он идет наружу как LVDS, тактирует АЦП. От АЦП может идти либо тот же сигнал (текущая ситуация) либо с половинной частотой (мультиплексированная шина) либо сигнала нет (АЦП с поламперным птореблением с режиме передачи отправили в sleep).
Не очень понял генерить такты из тактов АЦП даже в том случае, когда сами такты пропадают.

Сообщение отредактировал Genadi Zawidowski - Oct 13 2015, 19:12
Go to the top of the page
 
+Quote Post
iosifk
сообщение Oct 13 2015, 19:21
Сообщение #8


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Genadi Zawidowski @ Oct 13 2015, 22:09) *
Ну это не пропадание...
Уточню: есть всегда идущий системный клок. Он идет наружу как LVDS, тактирует АЦП. От АЦП может идти либо тот же сигнал (текущая ситуация) либо с половинной частотой (мультиплексированная шина) либо сигнала нет (АЦП с поламперным птореблением с режиме передачи отправили в sleep).
Не очень понял генерить такты из тактов АЦП даже в том случае, когда сами такты пропадают.

Если тактовый от АЦП является производным от системного, то зачем двухклоковое ФИФО? Что клоки от АЦП как-то сильно дрожат или сдвинуты?
Может быть действительно, входные данные захватить простым регистром под клоки АЦП, а уже потом их протолкнуть в обычную память с раздельными шинами на запись и на чтение... И работать она будет уже на системной частоте...
Вопрос в том, зачем именно ФИФО, если исходный клок берется от системного?


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Oct 13 2015, 20:16
Сообщение #9


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Ситуация с мультиплексированием данных - это не повод?
В общем случае и без этого есть (на мой взгляд) ситуация - в случае неизвестной природы внутренних преобразований клока в АЦП можно напороться на ситуацию, когда его клок может как опережать так и опаздывать от клока системного. Для чео мне и захотелось FIFO...

Сообщение отредактировал Genadi Zawidowski - Oct 13 2015, 20:42
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
iosifk
сообщение Oct 13 2015, 20:39
Сообщение #10


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Genadi Zawidowski @ Oct 13 2015, 14:36) *
Любые варианты комбинационной логики с соответствующих выходов (количество занятых слов FIFO) на входы дают неработоспособные варианты схемы. Если "зажать" wrreq и rdreq на VCC - только в этом случае нет помех (шума) - но это не то, что хотелось бы от этой схемы получить (состояние между совеесм пусто и совсем заполнено).

А как с времянками по предустановке wrreq и rdreq перед клоками? И откуда они берутся... Ну, при чтении - понятно. А вот для записи?


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Oct 13 2015, 20:46
Сообщение #11


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Берутся с выходов состояния (количества слов) своей же половины FIFO через логическую функцию. сейчас rdreq = 0, если < 2, wrreq = 0, если >= 4.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Oct 13 2015, 20:53
Сообщение #12


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Genadi Zawidowski @ Oct 13 2015, 23:46) *
Берутся с выходов состояния (количества слов) своей же половины FIFO через логическую функцию. сейчас rdreq = 0, если < 2, wrreq = 0, если >= 4.

Но ведь wrreq - это разрешение записи, а оно должно прийти ДО фронта входного клока. А если Вы формируете wrreq из сигналов на выходе, то они могут и не попасть ДО... Видимо поэтому, когда даете "всегда готов" для записи, то оно и работает...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Oct 13 2015, 21:01
Сообщение #13


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Я понимаю, что wrreq снявшееся после того как 4 слова окажется в FIFO - это уже состояние "заполнившейся совсем" очереди. ДО начала записи оно и так яформировано. Там (вне FIFO) просто логика, без триггеров.

Сообщение отредактировал Genadi Zawidowski - Oct 13 2015, 21:08
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
iosifk
сообщение Oct 13 2015, 21:15
Сообщение #14


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Genadi Zawidowski @ Oct 14 2015, 00:01) *
Я понимаю, что wrreq снявшееся после того как 4 слова окажется в FIFO - это уже состояние "заполнившейся совсем" очереди. ДО начала записи оно и так яформировано. Там (вне FIFO) просто логика, без триггеров.

Возможно, что есть гонка сигналов на стороне выхода в схеме проверки состояния счетчика. Это узкие импульсы могут попадать на первичку и гробить запись...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Oct 13 2015, 21:18
Сообщение #15


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Эти все гонки закончатся к началу следующего импульса - там всго 122 с копейками мегагерца... Обычный синхронный счетчик тоже с этими гонкаи работает.
Go to the top of the page
 
+Quote Post

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

 


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


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