В настоящее время мне приходится решать очень похожую задачу: есть несколько(порядка десяти) каналов по которым поступают сигналы с детекторов с длительностью порядка 10-70 нс, требовалось cделать управляемую задержку и формирователь длительности выходного сигнала для каждого канала. Для создания блока задержки я использовал 128-разрядный сдвиговый регистр и цепочку из 127 lсell'ов. Для правильной работы единичный бит заносился только в один разряд регистра. Длинна цепочки, через которую пропускался сигнал зависела от номера разряда регистра:
0-й разряд - сигнал будет пропущен через 127 lcell'ов 1-й разряд - сигнал будет пропущен через 126 lcell'ов ...... 127-й разряд - сигнал будет пропущен через 0 lcell'ов
В процессе разработки было выполнено моделирование с реальными задержками, которое показало высокую дифференциальную нелинейность зависимости общего времени задержки(T) от номера номера выбранного разряда в управляющем регистре(N). В для разных значений N увеличение задержки составляло от 0.3 до 1.8 нс на каждый шаг. В тоже время среднее время, добавляемое одним шагом задержки составило ~0.7 нс.
Кроме моделирования были произведены оценочные измерения с помощью осциллографа и микросхемы ALTERA EP1C12F324C8. Они подтвердили общую "тенденцию" наблюдавшуюся в модели. Кроме того наблюдался джиттер выходного сигнала с разбросом порядка 2% от величины на которую в данный момент задерживался сигнал. Тривиальное измерение температурной стабильности дало отклонение в 0.1% на каждый градус цельсия.
Также были выполнены наблюдения сигнала, задержанного на Stratix'e, с ней я пока возился совсем мало, но первое что бросилось в глаза - ждиттер у нее больше, чем на первом циклоне.
|