一、 这两条约束语句都是针对板级延时而言的。
语句中必须的有是,时钟与port.
二、 set_input_delay
用于数据输入端口,调节数据输入与时钟输入到来的相位关系。
当FPGA外部送入FPGA内部寄存器数据时,会有两个时钟launch clock 与latch clock,前者负责将数据从外部寄存器中送出,后者要在setup 与hold都满足的条件下,将数据锁入FPGA内部寄存器。在这个过程中,如果launch clock已经将数据送出,并到达FPGA内部寄存器端口,而上一次的数据的hold时间还不足,就会冲掉前面这个数据,导致latch clock 锁存数据错误!方法就是用set_input_delay加在数据到达时间(data_arrival)上加延时,让数据推迟到达,让latch clock有足够的时间(一般为hold time)对数据锁存。
例: set_input_delay -clock { clk_in } -add_delay 1.200 [get_ports {data_in}]
图中input delay(data arrival)将数据到达时间延时1.2ns.
set_output_delay