|
|
  |
Timing constraint. PLL, выравнивание задержек до логики. |
|
|
|
May 22 2016, 13:26
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 7-11-14
Пользователь №: 83 559

|
Добрый день товарищи.
Стоит задача получить с выходов PLL 4 тактовых сигнала. Каждый клок сдвинут относительно предыдущего на 45 градусов. Необходимо тактировать несколько разных блоков. содержание блоков крайне простое(счетчики). Мне необходимо выровнять задержки каждого клока до логики. Пишу для cyclone 4. quartus 15.
Подскажите проведет ли quartus выходы Pll через цепи тактирования, если нет то как правильно описать timing Constraint. как специфицировать задержки каждого клока до конкретных регистров?
|
|
|
|
|
May 22 2016, 14:37
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 7-11-14
Пользователь №: 83 559

|
Цитата(iosifk @ May 22 2016, 14:06)  А вот эти 4 тактовых - это предельные частоты для данной ПЛИС? Или же можно взять предельную частоту одну на все фазы, а разнести только сигналы "разрешения" для триггеров? 4 тактовых сигнала одной частоты и эта частота близка к максимуму. 200-250 МГЦ. Начну с 200 , а там насколько разгонится. Если вы знаете как разнести сигналы разрешения на 500пс будет круто ) изначально задачка выглядит как точный счетчик времени. Хочу с помощью ПЛИС измерять промежутки времени порядка <=200 пс. Вот и решил с помощью PLL сделать себе 4 клока сдвинутые относительно друг друга. И затактировать каждым отдельный счетчик по переднему и по заднему фронту. итого получается,что тактовая частота 250 МГц(4 нс) умножается(делиться) на 8 .
|
|
|
|
|
May 22 2016, 15:45
|
Местный
  
Группа: Участник
Сообщений: 221
Регистрация: 6-07-12
Пользователь №: 72 653

|
Цитата(Zlodeinik @ May 22 2016, 17:37)  Хочу с помощью ПЛИС измерять промежутки времени порядка <=200 пс. Вы, наверное, используете метод TDC? http://home.agh.edu.pl/~turcza/rf_prj/arXiv_1206.0679.pdfНасколько я понимаю, там задержки настолько критичны, что триггеры вручную жёстко фиксируют: Цитата ...Xilinx provides two constraint commands to limit the skew and the delay of the input signal, but better performances can be obtained by manually placing the input flip-flops.
Сообщение отредактировал Inanity - May 22 2016, 15:56
|
|
|
|
|
May 23 2016, 10:06
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 7-11-14
Пользователь №: 83 559

|
Цитата(Inanity @ May 22 2016, 16:45)  Вы, наверное, используете метод TDC? http://home.agh.edu.pl/~turcza/rf_prj/arXiv_1206.0679.pdfНасколько я понимаю, там задержки настолько критичны, что триггеры вручную жёстко фиксируют: Да, буду использовать подобный метод. Действительно крайне критичны задержки. Я и обратился за советом с этим впоросом. Как прописать констрейны чтобы выровнять время между всеми тактовыми сигналами от pll до логики
|
|
|
|
|
May 23 2016, 12:02
|
Профессионал
    
Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596

|
сложно что-то посоветовать, кроме как постоянно после каждой сборки гонять симуляцию post-fit нетлиста с учетом задержек. вот тогда станет понятно что и где пытаться "затянуть". до тех пор, пока саму PLL, входные триггеры, а также цепи между ними жестко не прибьёте гвоздями, чтобы они от сборки к сборке не гуляли. а так это по 2 констрейна на каждый входной регистр - на тактовую до него и на данные. на 8 фаз - итого 16 констрейнов. проблема в том, что сами xilinx или altera имеют все варианты этих задержек на руках в виде таблиц, и могут подобрать соответствующие LOC'-и, а вам же придётся подбирать их опытным путём. про задний фронт - забудьте сразу. на высоких частотах фазы будут не те, которые вы ожидаете.
можно было какую-нибудь LMK01010 снаружи приспособить. тогда бы входными триггерами в IOB-ах отделались, если при подаче питания калибровку делать. не понравилась?
--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
|
|
|
|
|
May 24 2016, 05:20
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 7-11-14
Пользователь №: 83 559

|
Цитата(krux @ May 23 2016, 13:02)  сложно что-то посоветовать, кроме как постоянно после каждой сборки гонять симуляцию post-fit нетлиста с учетом задержек. вот тогда станет понятно что и где пытаться "затянуть". до тех пор, пока саму PLL, входные триггеры, а также цепи между ними жестко не прибьёте гвоздями, чтобы они от сборки к сборке не гуляли. а так это по 2 констрейна на каждый входной регистр - на тактовую до него и на данные. на 8 фаз - итого 16 констрейнов. проблема в том, что сами xilinx или altera имеют все варианты этих задержек на руках в виде таблиц, и могут подобрать соответствующие LOC'-и, а вам же придётся подбирать их опытным путём. про задний фронт - забудьте сразу. на высоких частотах фазы будут не те, которые вы ожидаете.
можно было какую-нибудь LMK01010 снаружи приспособить. тогда бы входными триггерами в IOB-ах отделались, если при подаче питания калибровку делать. не понравилась? Я думал в макете заложить и такое решение. Кстати остановился именно на этом буфере. На входных получится? Боюсь не найду столько ног) Предполагал на глобальные цепи тактирования подать эти клоки и независимо собрать необходимое количество счетчиков с общим сигналом en. Прибивать гвоздями совсем не хочется. Там месяцами можно сидеть прибивать и про переносимость можно сразу забыть. А что с задним фронтом стряслось? Dutty cycle может выручить нет?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|