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

 
 
> TimeQuest, кто ж тебя выдумал?, поговорим на простом нестандартном примере
ViKo
сообщение Jan 7 2018, 11:06
Сообщение #1


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Возясь со своим реальным проектом, сделал простой учебный. Пытаюсь разобраться в констрейнах (хотя некогда считал себя достаточно грамотным в этой теме).
Вот SystemVerilog проект. Ниже - констрейны для него. Работаю в Quartus 13.1, ПЛИС EP3C5E144I7.
Код
module ClockDivider (
    (* chip_pin = "84" *)    input    ResetN,
    (* chip_pin = "89", altera_attribute = "-name io_standard lvds" *) input ClkIn,
    (* chip_pin = "28" *)    output    ClkOut,
    (* chip_pin = "30" *)    input    ClkSel,
    (* chip_pin = "32" *)    input    DataIn,
    (* chip_pin = "33" *)    output    DataOut
);

    bit        ClkDiv;
    always_ff @(posedge ClkIn, negedge ResetN)
        if (!ResetN)    ClkDiv <= 0;
        else            ClkDiv <= !ClkDiv;

    always_comb
        if (!ClkSel)    ClkOut = ClkIn;
        else            ClkOut = ClkDiv;
    
    always_ff @(posedge ClkOut, negedge ResetN)
        if (!ResetN)    DataOut <= 0;
        else            DataOut <= DataIn;

endmodule : ClockDivider


Код
set_time_format -unit ns -decimal_places 3

create_clock -name clk_in -period "100 MHz" -waveform {0 5.0} ClkIn

create_clock -name clk_virt -period "100 MHz"

create_generated_clock -name clk_div ClkDiv -divide_by 2 -source ClkIn

# derive_clocks

derive_clock_uncertainty

set_input_delay -clock clk_virt -min 0.0 ClkSel
set_input_delay -clock clk_virt -max 1.0 ClkSel

set_input_delay -clock clk_virt -min 0.0 ResetN
set_input_delay -clock clk_virt -max 1.0 ResetN

set_input_delay -clock clk_virt -min 0.0 DataIn
set_input_delay -clock clk_virt -max 1.0 DataIn

set_output_delay -clock clk_virt -min -2.0 ClkOut
set_output_delay -clock clk_virt -max -1.0 ClkOut

set_output_delay -clock clk_virt -min -2.0 DataOut
set_output_delay -clock clk_virt -max -1.0 DataOut

Вопросы.
Почему работает описание триггера - делителя тактовой частоты, просто делить частоту на 2, без задержек в самом триггере? Как учитываются задержки в триггере?
Почему для выходных сигналов пришлось сделать отрицательную задержку, иначе ограничения не выполнялись?
Когда смотрел в TimeQuest временнЫе пути, Launch Clock запускался по срезу. Прикладываю картину ниже.
Правильные ли вообще эти констрейны?
Любые советы почитаю с интересом. (К сожалению, ответить смогу только завтра, ибо предстоит культурное мероприятие).

Вот картина-отчет. Как ее интерпретировать?

Нужно ли описывать сигнал после мультиплексора как тактовый? Пишут, вроде, нужно. А что же TimeQuest не ругается?
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Flip-fl0p
сообщение Jan 9 2018, 13:03
Сообщение #2


В поисках себя...
****

Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Я как понял ваших данных работает на частоте clk_div и защелкивает данные DataOut.
У меня вопрос. А зачем Вам виртуальный клок, если у Вас есть клок относительно которого вы задаете констрейны для данных ?

Go to the top of the page
 
+Quote Post
ViKo
сообщение Jan 9 2018, 13:05
Сообщение #3


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Flip-fl0p @ Jan 9 2018, 16:03) *
Я как понял ваших данных работает на частоте clk_div и защелкивает данные DataOut.
У меня вопрос. А зачем Вам виртуальный клок, если у Вас есть клок относительно которого вы задаете констрейны для данных ?

А я же цитату привел, и цифрами подкрепил.
Я еще и такт наружу вывел.
В самом проекте не ищите смысла. Только в ограничениях для него.
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Jan 9 2018, 13:15
Сообщение #4


В поисках себя...
****

Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Цитата(ViKo @ Jan 9 2018, 16:05) *
А я же цитату привел, и цифрами подкрепил.
Я еще и такт наружу вывел.
В самом проекте не ищите смысла. Только в ограничениях для него.

Я просто прочитал то, на что Вы указали, и нигде не увидел того, что нужно констрейнить относительно виртуального клока.
Также сейчас перед глазами пример из "TimeQuest для чайников" - вывод пилы на синхронный параллельный ЦАП. Там так же нет никаких виртуальных клоков.
Вот я и пытаюсь понять где я перестал понимать biggrin.gif

Сообщение отредактировал Flip-fl0p - Jan 9 2018, 13:16
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jan 9 2018, 13:23
Сообщение #5


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Flip-fl0p @ Jan 9 2018, 16:15) *
Я просто прочитал то, на что Вы указали, и нигде не увидел того, что нужно констрейнить относительно виртуального клока.
Также сейчас перед глазами пример из "TimeQuest для чайников" - вывод пилы на синхронный параллельный ЦАП. Там так же нет никаких виртуальных клоков.
Вот я и пытаюсь понять где я перестал понимать biggrin.gif

Выше. Сообщение 14. Документ все тот же - Cookbook. Там правильные примеры.
ПЛИСка всегда с внешними устройствами работает. Если не использовать виртуальные такты, то не учтется неопределенность такта, относительно которого данные поступают на или из ПЛИС.
Разница, как видите, небольшая, около 20 ps. Можно забить.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ViKo   TimeQuest, кто ж тебя выдумал?   Jan 7 2018, 11:06
- - Flip-fl0p   А разве не надо писать констрейн между вашим клоко...   Jan 7 2018, 11:27
- - ViKo   Виртуальные такты - всегда снаружи ПЛИС. Ничего бо...   Jan 7 2018, 11:47
- - Alexey_Rostov   Цитата(ViKo @ Jan 7 2018, 14:06) Вопросы....   Jan 7 2018, 15:48
- - ViKo   Видимо, Tclk-q? Эти времена понятны. Но разве я их...   Jan 7 2018, 15:56
- - krux   текст, помеченный тегами [ b ] [ /b ] - моя писани...   Jan 7 2018, 16:45
- - Flip-fl0p   Вообще, если я не ошибаюсь то для мультиплексирова...   Jan 7 2018, 17:59
- - ViKo   krux, по делу есть чего сказать? Это и есть top. Н...   Jan 7 2018, 18:03
- - Flip-fl0p   А можно уточняющий вопрос ? Задача учебного проект...   Jan 7 2018, 18:28
- - Shivers   Пример плохой, потому что мультиплексор клоков в н...   Jan 7 2018, 18:46
|- - krux   ViKo по делу - выкинуть и переписать. но для нача...   Jan 7 2018, 18:53
- - ViKo   Жажду увидеть правильные констрейны. Выкинуть любо...   Jan 7 2018, 19:31
- - krux   я понял в чем проблема, в вашем чипе CLKCTRL так к...   Jan 7 2018, 19:46
- - ViKo   Насчет виртуальных тактов. Уже выбросил, заменил н...   Jan 8 2018, 13:03
|- - Flip-fl0p   Цитата(ViKo @ Jan 8 2018, 16:03) Однако, ...   Jan 9 2018, 05:46
- - wolfman   А если взять другую версию Квартуса?   Jan 9 2018, 07:36
|- - _Anatoliy   .   Jan 9 2018, 07:38
|- - ViKo   Цитата(wolfman @ Jan 9 2018, 10:36) А есл...   Jan 9 2018, 07:52
- - warrior-2001   На клоковый вход блока DataOut подан не клок! ...   Jan 9 2018, 12:36
- - ViKo   Кодset_time_format -unit ns -decimal_places 3 # c...   Jan 9 2018, 12:42
|- - warrior-2001   Цитата(ViKo @ Jan 9 2018, 15:42) Вам на т...   Jan 10 2018, 09:23
|- - ViKo   Цитата(warrior-2001 @ Jan 10 2018, 12...   Jan 10 2018, 09:42
|- - andrew_b   Цитата(warrior-2001 @ Jan 10 2018, 12...   Jan 10 2018, 09:48
- - Flip-fl0p   Меня вот один вопрос мучает. А как Timequest поним...   Jan 10 2018, 10:19
|- - ViKo   Цитата(Flip-fl0p @ Jan 10 2018, 13:1...   Jan 10 2018, 10:26
- - ViKo   В результате изучения литературы сделал следующие ...   Jan 10 2018, 13:20
|- - _Anatoliy   Цитата(ViKo @ Jan 10 2018, 16:20) Вот, ка...   Jan 11 2018, 06:15
|- - ViKo   Цитата(_Anatoliy @ Jan 11 2018, 09:15) Зд...   Jan 11 2018, 07:45
|- - dima32rus   Цитата(ViKo @ Jan 11 2018, 10:45) и в дор...   Jan 11 2018, 09:45
|- - ViKo   Цитата(dima32rus @ Jan 11 2018, 12:45) Не...   Jan 11 2018, 10:02
|- - dima32rus   Цитата(ViKo @ Jan 11 2018, 13:02) # Задер...   Jan 11 2018, 10:45
|- - _Anatoliy   Цитата(dima32rus @ Jan 11 2018, 13:45) Пр...   Jan 11 2018, 10:52
|- - ViKo   Цитата(_Anatoliy @ Jan 11 2018, 13:52) Дл...   Jan 11 2018, 10:54
|- - dima32rus   Цитата(_Anatoliy @ Jan 11 2018, 13:52) Дл...   Jan 11 2018, 11:50
|- - ViKo   Цитата(dima32rus @ Jan 11 2018, 14:50) AD...   Jan 11 2018, 11:55
|- - dima32rus   Цитата(ViKo @ Jan 11 2018, 14:55) Во-перв...   Jan 11 2018, 12:02
- - Shivers   Виртуальный клок нужен чтобы достроить граф STA на...   Jan 11 2018, 05:30
- - Flip-fl0p   Вот наткнулся на интересную штуку по констрейнам: ...   Jan 16 2018, 10:13


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

 


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


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