set_input_delay与set_out_delay理解
set_input_delay
当fpga 外部送入fpga内部寄存器数据时,会有时钟launch clk以及latch clock,前者负责将数据从外部寄存器中送出,后者要在setup和hold都满足的情况下将数据锁入fpga内部寄存器,在这个过程中,如果launch clk将数据送出到达fpga内部寄存器端口,上一次的数据hold time(当前launch clk相当于上一个latch clk)没有满足,上一个数据就不能被正确锁存,而采用set_input_delay就是在数据到达时间上加延时,让latch时钟可以将数据正确锁存。(一般为hold time)
set_out_delay
当fpga 内部送入fpga外部寄存器数据时,也应该会有时钟launch clk以及latch clock,前者负责将数据从内部寄存器中送出,后者要在setup和hold都满足的情况下将数据锁入fpga外部寄存器,在这个过程中,如果latch clk已经到来,由于板级延时之类的关系,导致数据不能及时到达fpga外部寄存器端口,从而setup time不够,导致采样数据出错,这个时候在数据到达set_output_delay一个负值,或者对latch时钟延时一个正值,即可使得满足建立时间。
注意:
在设置约束的过程中,set_input_delay时launch clk应该为外部器件的数据发送时钟,如果没有,可以设置一个虚拟时钟,latch clk应该为fpga内部采样时钟;set_output_delay时launch clk应该为fpag内部的数据发送时钟,latch clk应该为fpga外部数据锁存时钟,如果没有,可以设置一个虚拟时钟;
就是描述时钟与数据的相位
set_input_delay 为了满足latch的建立时间而有一个最大延时,为了满足保持时间有个最小延迟
set_output_delay
本文详细解析了FPGA设计中的set_input_delay与set_output_delay概念。set_input_delay用于确保外部数据进入FPGA时能够满足保持时间要求,通过增加输入延时来保障数据的正确锁存。而set_output_delay则是在数据从FPGA输出到外部时,通过调整延时确保满足建立时间要求,避免数据采样错误。
5万+

被折叠的 条评论
为什么被折叠?



