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

 
 
> Вопрос по описанию констрейна.
Iptash
сообщение Nov 4 2012, 19:10
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936



Здравствуйте все.
Как правильно описать констрейн?
Код
module XX ( input clk, input IN_1);

next_mod YY (
                  .clk(clk),
                  .IN_1(IN_1)
                  );
endmodule

module next_mod (input clk, input IN_1);
  always @ (posedge clk) begin
      if(IN_1) begin
        ...
       end
endmodule


здесь нужно описать максимальную задержку сигнала со входа IN_1 до if(IN_1) в модуле next_mod.
Код
set_max_delay -from [get_ports {IN_1}] -to [get_??? {IN_1}] 5ns

с порта куда? (-to [get_???(IN_1}])

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Iptash
сообщение Nov 5 2012, 13:42
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936



Практически, при измерении временных данных с заполнением 5МГц, если не вскармливать данный констрейн, результаты хаотично прыгают. С констрейном все отлично. На сколько
я помню если делать set_max_delay -from [get_ports {IN_1}] -to [get_pins {IN_1|combout}] (скорее всего вот так правильно), то тоже все нормально. Поэтому и вопрос как же все таки правильно?
Go to the top of the page
 
+Quote Post
des00
сообщение Nov 5 2012, 18:56
Сообщение #3


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Iptash @ Nov 5 2012, 08:42) *
Поэтому и вопрос как же все таки правильно?

Да возможна куча вариантов. Если посмотреть SDC and TimeQuest API Reference Manual то вот краткое описание команды set_max_delay
Цитата
Specifies a maximum delay exception for a given path.
The maximum delay is similar to changing the setup relationship (latching clock edge - launching clock edge), except that it can be applied to input or output ports without input or output delays assigned to
them. Maximum delays are always relative to any clock network delays (if the source or destination is a register) or any input or output delays (if the source or destination is a port). Therefore, input delays and
clock latencies are added to the data arrival times. Clock latencies also added to data required times and output delays are subtracted from data required times.

The -from and -to values are collections of clocks, registers, ports, pins, or cells in the design. If the -from or -to values are not specified, the collection is converted automatically into [get_keepers *]. It is worth
noting that if the counterpart to the unspecified collection is a clock collection, it is more efficient to explicitly specify this collection as a clock collection but only if the clock collection also generates the
desired assignment.

Так что вам предоставлен весь спектр возможностей по идентификации приемника сигнала %)

Цитата(winipuh @ Nov 5 2012, 09:36) *
хмм... Интересно, а почему TimeQuest не выдает предупреждений, если требование по max_delay не выполняется?
set_max_delay -from [get_ports {en*}] -to [get_pins {d|d}] 2.0
TimeQuest рапортует, что максимальная задержка "From node en1 To node d|d" составляет 2.277 нс. Однако никаких предупреждений по этому поводу не выводит...

Писал про это вроде в публикациях, что я пришел в выводу что квартус задержки крутить/выравнивать практически не умеет. Более того, в пакетном тесте, проверки временных ограничений (Report Top Failing Paths), проверка задержек вообще не включена (до ква 9.1 точно). Потому и пользоваться надо этим очень осторожно.
Цитата
Нужен des00!!! sm.gif

И не стоит считать меня истиной в последней инстанции, на форуме есть куда более знающие разработчики, но они редко пишут %(

Цитата(Iptash @ Nov 5 2012, 12:21) *
Входной фильтр конечно же стоит. Без него никак. Только фильтр в виде сдвигового регистра не работает, чем длинее цепочка, тем хуже результат.

Вот это странно, при измерении периода асинхронного сигнала нарезкой опорным клоком, ЕМНИП ошибка должна быть 2*T, где T - период нарезки и не должно зависеть от длинны цепочки.


--------------------
Go to the top of the page
 
+Quote Post
Iptash
сообщение Nov 5 2012, 19:37
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936



Цитата(des00 @ Nov 5 2012, 22:56) *
Вот это странно, при измерении периода асинхронного сигнала нарезкой опорным клоком, ЕМНИП ошибка должна быть 2*T, где T - период нарезки и не должно зависеть от длинны цепочки.

Вот, практически так. Измерение очень точное, поэтому сразу заметно. Возможно это в MAX II только, в др. девайсах не пробовал.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 9th August 2025 - 00:23
Рейтинг@Mail.ru


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