Цитата(SM @ Mar 27 2014, 12:40)

То, что пути исключены из временного анализа, как раз и приводит к тому, что оно как развелось, так и развелось, без какой либо оптимизации. Так что, как вариант, второй способ сделать время повторяемым, кроме ручного вставления LUT, может быть, задание жесткого set_max_delay на путь, чтобы он не давал возможностей втыкать эти feeder-ы, или жесткие set_max_delay и set_min_delay одновременно, чтобы он разводку делал в совсем жестких временных рамках...
А как правильно все это дело описать?
Вот к примеру следующий код:
CODE
module TRIGGERS(DATA, SIGNALa, CLK);
output [3:0] DATA;
input SIGNALa;
input CLK;
reg [3:0] triggers;
always @(posedge CLK)
triggers <= {4{SIGNALa}};
assign DATA = triggers;
endmodule
SDC-файл:
CODE
create_clock -name "CLK" -period 4.000ns [get_ports {CLK}]
create_clock -name "SIGNALa" -period 1.000us [get_ports {SIGNALa}]
set_clock_groups -asynchronous -group {SIGNALa}
set_max_delay 7.039ns -from [get_ports {SIGNALa}] -to triggers[*]
set_min_delay 7.035ns -from [get_ports {SIGNALa}] -to triggers[*]
SIGNALa – внешний асинхронный сигнал, не знаю как его правильно описать, описываю как асинхронный clock.
В итоге TimeQuest все проглотил, но вместо требуемых 7.035-7.039нс,
Цитата
report_path -from {SIGNALa} -to {triggers[*]} -npaths 10 -panel_name {Report Path}
выдает 6.900нс.
Проект в Quartus 13.0
Нажмите для просмотра прикрепленного файла