|
|
  |
Как на ПЛИС сделать регулируемую линию задержки?, Несколько независмых каналов от 0 до 400 нс |
|
|
|
Mar 1 2006, 13:25
|
Знающий
   
Группа: Свой
Сообщений: 859
Регистрация: 7-04-05
Из: Санкт-Петербург
Пользователь №: 3 943

|
Подумал немного, и понял, что поторопился - как я советовал сделать легко, но ресурсов в кристалле это займет излишне много. Второй путь - использовать встроенную память (но ограничение по частоте - 250 мгц на циклоне). Насколько я помню, fifo с управляемой глубиной в библиотеке нет, так что надо просто взять блок однобитной памяти и написать к нему контроллер. Еще насколько помню, блоки памяти в циклоне можно конфигурировать как сдвиговый регистр, но можно ли динамически менять его длину не знаю, никогда не пользовался. По крайней мере, всегда можно собрать регистр переменной длины из нескольких кусков фиксированой длины (сделанных из памяти) и регистра перем. длины (собраного из триггеров).
--------------------
"Человек - это существо, которое охотнее всего рассуждает о том, в чем меньше всего разбирается." (с) С.Лем
|
|
|
|
|
Mar 3 2006, 13:38
|
Частый гость
 
Группа: Свой
Сообщений: 187
Регистрация: 22-06-04
Пользователь №: 127

|
Цитата(Tosha @ Mar 3 2006, 12:22)  Проще всего думаю будет сделать все-таки на двухпортовой памяти. Ставите счетчик на входной поток, это будет адрес записи. Отнимаете от него величину задержки - получаете адрес чтения. Таким образом получаете в памяти сохраненннный сигнал и считываете с нужной задержкой. Если задержка для всех каналов одинаковая, то можно увеличить разрядность памяти. Каналы - независимые. Получается, что для записи входного 5-битового потока можно использовать общий счётчик адреса, а для чтения - индивидуальные? Какой чип годится для организации пяти каналов двухпортовой однобитной памяти глубиной порядка 100 бит и частотой записи/чтения порядка 200 МГц?
|
|
|
|
|
Mar 7 2006, 05:28
|
Частый гость
 
Группа: Свой
Сообщений: 95
Регистрация: 10-04-05
Пользователь №: 4 003

|
У Xilinx есть несколько App Notes где используются линии задержки с шагом порядка десятков пикосекунд с использованием стандартных блоков (buffer, carry chain) http://www.xilinx.com/bvdocs/appnotes/xapp700.pdfhttp://direct.xilinx.com/bvdocs/appnotes/xapp697.pdfЗнаю, что это работает в Virtex-2 и Virtex-4. Есть еще у ксилинкса вариант с использованием блока IDELAY в Virtex-4. Применяется в высокоскоростных интерфейсах.
--------------------
--xyzzy
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|