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

 
 
 
Reply to this topicStart new topic
> TimeQuest, не могу разобраться
Dootch
сообщение Apr 28 2017, 00:47
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 76
Регистрация: 12-02-10
Из: Хабаровск
Пользователь №: 55 441



Добрый день,

решил разобраться с заданием временных ограничений.

Допустим есть простой проект:

на входную ногу ПЛИС поступает частота 50 МГц (имя пина 50_MHz_5B_1), внутри одна делится счетчиком Джонсона на выходе которого сигнал Q1, синхронный с входной частотой.

Частота 50 Мгц выводится на ногу GPIO1, сигнал Q1 на ногу GPIO2.

Создаю .sdc файл, где прописываю параметры клока
create_clock -name top_clk -period 20.000 [get_ports {50_MHz_5B_1}]

Компилирую проект и смотрю осциллографом задержку между фронтом клока и фронтом сигнала Q1 на ногах ПЛИС. Задержка составляет 3,5 нс.

Теперь вопросы:

Могу я прописыванием констрейнов менять эту задержку?
Я прописывал в sdc фале следующие строки:
set_output_delay -clock top_clk 5.5 [get_ports {GPIO2}] - после компиляции ничего не меняется
set_output_delay -clock clk -reference_pin [get_ports clkout] 5.5 [get_ports myout*] - - после компиляции ничего не меняется
Что я делаю не так?

ПЛИС Cyclone V E, Quartus 15.0


Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Apr 28 2017, 06:37
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 222
Регистрация: 17-02-06
Пользователь №: 14 454



еще бы -max и -min атрибутики бы выставить в то какой вы путь определяете.

Цитата
Задержка составляет 3,5 нс.


Цитата
set_output_delay -clock top_clk 5.5


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

так что ограничивайте ее сверху или снизу, но не задавайте точно, это невозможно.
Go to the top of the page
 
+Quote Post
Dootch
сообщение Apr 28 2017, 09:43
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 76
Регистрация: 12-02-10
Из: Хабаровск
Пользователь №: 55 441



Цитата(Golikov A. @ Apr 28 2017, 10:37) *
еще бы -max и -min атрибутики бы выставить в то какой вы путь определяете.





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

так что ограничивайте ее сверху или снизу, но не задавайте точно, это невозможно.


В описании команды set_output_delay написано

-reference_pin <name> Specifies a port in the design to which the output delay is relative

то есть если я напишу так:

set_output_delay -clock top_clk -min 1.2 -reference_pin [get_ports {GPIO1}] [get_ports {GPIO2}]
set_output_delay -clock top_clk -max 2.2 -reference_pin [get_ports {GPIO1}] [get_ports {GPIO2}]

то задержка между сигналами на ножках будет в диапазоне 1,2-2,2 нс?

а если напишу:

set_output_delay -clock top_clk -min 1.2 [get_ports {GPIO2}]
set_output_delay -clock top_clk -max 2.2 [get_ports {GPIO2}]

то сигнал будет задержан относительно клока где-то внутри схемы, а на пины они выведутся с непредсказуемой задержкой?






Go to the top of the page
 
+Quote Post
Dootch
сообщение May 11 2017, 03:35
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 76
Регистрация: 12-02-10
Из: Хабаровск
Пользователь №: 55 441



В процессе изучения возникли дополнительные вопросы:

проект такой же как ранее

на входную ногу ПЛИС поступает частота 50 МГц (имя пина 50_MHz_5B_1), внутри одна делится счетчиком Джонсона на выходе которого сигнал Q1, синхронный с входной частотой.

Частота 50 МГц выводится на ногу GPIO1, сигнал Q1 на ногу GPIO2.

в .sdc файле прописываю параметры клока
create_clock -name top_clk -period 20.000 [get_ports {50_MHz_5B_1}]

и затем
set_net_delay -min 4.0 -from [get_nets {50_MHz_5B_1~inputCLKENA0}]
set_net_delay -max 6.0 -from [get_nets {50_MHz_5B_1~inputCLKENA0}]

как я понимаю этими констрейнами я ограничил сверху и снизу значение задержки от входа частоты до всех мест куда эта частота поступает. В моем случае это 32 clk входа D-триггеров счетчика Джонсона.
После компиляции открываю TimeQuest и выполняю report_net_delay.



Как видно в отчете TimeQuest прописывает разные Actual значения задержек для констрейна min и max.



На графике я привел графики значений задержек для min и max.
Далее я выполнил команду report_net_timing, где указал в target get_nets {50_MHz_5B_1~inputCLKENA0}, в консоль вывелась другая таблица задержек:

CODE
=======================================================================
======
# : RR , FR , RF , FF : Destination Pin Name (Location)
=============================================================================
Node 50_MHz_5B_1~inputCLKENA0|outclk has fanout = 33
--> 1 : 3.131, -----, -----, 2.899 : UART_RX~output|i ( IOOBUF_X10_Y0_N53 )
--> 2 : 2.430, -----, -----, 2.139 : inst13|\delay_line:0:zuzu|clk ( FF_X10_Y1_N55 )
--> 3 : 2.430, -----, -----, 2.139 : inst13|\delay_line:1:zuzu|clk ( FF_X10_Y1_N34 )
--> 4 : 2.430, -----, -----, 2.139 : inst13|\delay_line:2:zuzu|clk ( FF_X10_Y1_N59 )
--> 5 : 2.430, -----, -----, 2.139 : inst13|\delay_line:3:zuzu|clk ( FF_X10_Y1_N17 )
--> 6 : 2.430, -----, -----, 2.139 : inst13|\delay_line:4:zuzu|clk ( FF_X10_Y1_N23 )
--> 7 : 2.430, -----, -----, 2.139 : inst13|\delay_line:5:zuzu|clk ( FF_X10_Y1_N20 )
--> 8 : 2.430, -----, -----, 2.139 : inst13|\delay_line:6:zuzu|clk ( FF_X10_Y1_N7 )
--> 9 : 2.430, -----, -----, 2.139 : inst13|\delay_line:7:zuzu|clk ( FF_X10_Y1_N38 )
--> 10 : 2.430, -----, -----, 2.139 : inst13|\delay_line:8:zuzu|clk ( FF_X10_Y1_N47 )
--> 11 : 2.430, -----, -----, 2.139 : inst13|\delay_line:9:zuzu|clk ( FF_X10_Y1_N10 )
--> 12 : 2.430, -----, -----, 2.139 : inst13|\delay_line:10:zuzu|clk ( FF_X10_Y1_N4 )
--> 13 : 2.430, -----, -----, 2.139 : inst13|\delay_line:11:zuzu|clk ( FF_X10_Y1_N49 )
--> 14 : 2.431, -----, -----, 2.141 : inst13|\delay_line:12:zuzu|clk ( FF_X9_Y1_N35 )
--> 15 : 2.431, -----, -----, 2.141 : inst13|\delay_line:13:zuzu|clk ( FF_X9_Y1_N10 )
--> 16 : 2.431, -----, -----, 2.141 : inst13|\delay_line:14:zuzu|clk ( FF_X9_Y1_N4 )
--> 17 : 2.431, -----, -----, 2.141 : inst13|\delay_line:15:zuzu|clk ( FF_X9_Y1_N41 )
--> 18 : 2.431, -----, -----, 2.141 : inst13|\delay_line:16:zuzu|clk ( FF_X9_Y1_N14 )
--> 19 : 2.431, -----, -----, 2.141 : inst13|\delay_line:17:zuzu|clk ( FF_X9_Y1_N43 )
--> 20 : 2.431, -----, -----, 2.141 : inst13|\delay_line:18:zuzu|clk ( FF_X9_Y1_N50 )
--> 21 : 2.431, -----, -----, 2.141 : inst13|\delay_line:19:zuzu|clk ( FF_X9_Y1_N31 )
--> 22 : 2.431, -----, -----, 2.141 : inst13|\delay_line:20:zuzu|clk ( FF_X9_Y1_N29 )
--> 23 : 2.431, -----, -----, 2.141 : inst13|\delay_line:21:zuzu|clk ( FF_X9_Y1_N25 )
--> 24 : 2.431, -----, -----, 2.141 : inst13|\delay_line:22:zuzu|clk ( FF_X9_Y1_N56 )
--> 25 : 2.431, -----, -----, 2.141 : inst13|\delay_line:23:zuzu|clk ( FF_X9_Y1_N58 )
--> 26 : 2.431, -----, -----, 2.141 : inst13|\delay_line:24:zuzu|clk ( FF_X9_Y1_N37 )
--> 27 : 2.431, -----, -----, 2.141 : inst13|\delay_line:25:zuzu|clk ( FF_X9_Y1_N8 )
--> 28 : 2.431, -----, -----, 2.141 : inst13|\delay_line:26:zuzu|clk ( FF_X9_Y1_N17 )
--> 29 : 2.430, -----, -----, 2.139 : inst13|\delay_line:27:zuzu|clk ( FF_X10_Y1_N43 )
--> 30 : 2.430, -----, -----, 2.139 : inst13|\delay_line:28:zuzu|clk ( FF_X10_Y1_N53 )
--> 31 : 2.430, -----, -----, 2.139 : inst13|\delay_line:29:zuzu|clk ( FF_X10_Y1_N26 )
--> 32 : 2.430, -----, -----, 2.139 : inst13|\delay_line:30:zuzu|clk ( FF_X10_Y1_N32 )
--> 33 : 2.430, -----, -----, 2.139 : inst13|\delay_line:31:zuzu|clk ( FF_X10_Y1_N28 )
=============================================================================


На график я также вывел значения задержек в полях RR и FF.

Как видно из графика все значения разные.
Вопросы в том почему отличаются результаты report_net_delay и report_net_timing?
И что все-таки обозначают задержки min и max?



Go to the top of the page
 
+Quote Post
Golikov A.
сообщение May 11 2017, 20:21
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 4 222
Регистрация: 17-02-06
Пользователь №: 14 454



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

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

 


RSS Текстовая версия Сейчас: 19th October 2017 - 01:57
Рейтинг@Mail.ru


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