网站建设费 无形资产,郑州营销型网站推广,比较好的网站建设论坛,自助建站系统免费加盟一、背景 在进行时序分析时#xff0c;工具默认对所有的时序路径进行分析#xff0c;在实际的设计中#xff0c;存在一些路径不属于逻辑功能的#xff0c;或者不需要进行时序分析的路径#xff0c;使用set_false_path对该路径进行约束#xff0c;时序分析时工具将会直接忽…一、背景 在进行时序分析时工具默认对所有的时序路径进行分析在实际的设计中存在一些路径不属于逻辑功能的或者不需要进行时序分析的路径使用set_false_path对该路径进行约束时序分析时工具将会直接忽略路径不进行分析。
1.1 设置false path的场景
可以设置为false path的路径包括
a)跨时钟域中添加的进行两次同步的逻辑单元
b) 只在FPGA通电启动时的寄存器
c)复位或测试的逻辑模块
d)异步的分布式RAM中读时钟和写时钟之间的路径
下面展示一个对于上面提到的非功能单元的路径在两个触发器中级联了两个选择器选择器的选项信号相同。 1.2 set_false_path的优势
a)减少运行时间将一些路径设置为false path后时序分析工具无需耗费时间对该路径进行分析也不需要对非功能模块路径进行优化可以节省时间
b)提高QOR(quality of results)将路径设置为false path可以极大地提高QOR综合布局后的质量优化设计也会极大地受工具尝试解决的时序问题影响。 因为如果非功能模块的路径存在时序违例时工具可能尝试去修复这些违例这不仅会导致设计因为逻辑复制而变大也可能因为非功能模块有更大的违例而忽略了实际功能模块的违例问题。只有正确的设置约束才能获取最好的结果。
二、set_false_path
2.1 设置说明
进入Timing Constraints选择Exceptions中Set False Path Set False Path设置界面如下 Start Point设置false path的起点可以为Cell pins,clocks,cells,I/O ports
Through Points设置false path经过的中间路径可以为Nets,cells,cell pins;
End Points设置false path的终点可以为Cell pins,clocks,cells,I/O ports Setup/Hold设置False path的路径的分析类型为Setup 或hold不勾选时两者都会为False Path
Rise/Fall设置False path的路径中生效的边沿不勾选时不会进行边沿区分
Remove existing path exceptions before setting false path勾选后如果设置的路径上已存在其他exceptions约束则会将其覆盖不勾选则保留原有的约束。
备注当使用through时没有设置-from和-to参数时需注意所有经过through设置的线路都会被视为false path。
2.2 细节区分
a)多个-through时顺序不同结果不同下面两条约束不是等价的第一条表示先通过cell1/pin1再通过cell2/pin2的路径第二条约束则相反
set_false_path -through cell1/pin1 -through cell2/pin2
set_false_path -through cell2/pin2 -through cell1/pin1
b)get_cells连接多个单元时表示从复位端口reset到多个cellsff1_reg,ff2_reg,ff3_reg中的路径都将设为false path
set_false_path -from [get_ports reset] -to [get_cells {ff1_reg ff2_reg ff3_reg}]
c)不对两个异步时钟clk1,clk2间的路径进行分析只会将从clk1到clk2间的路径设置为false path
set_false_path -from [get_clocks clk1] -to [get_clocks clk2]
d)如果要对clk1到clk2clk2到clk1的路径都设置为false path则需要两条约束命令
set_false_path -from [get_clocks clk1] -to [get_clocks clk2]
set_false_path -from [get_clocks clk2] -to [get_clocks clk1]
e)当需要对多个异步时钟间都不进行时序分析时对异步时钟两两间设置false path则太繁琐此时可使用set_clock_groups代替
set_clock_groups -name clk_group -asynchronous -group [get_clocks clk1] -group [get_clocks clk2] -group [get_clocks clk3]
f)在两个寄存器间的非正常逻辑功能路径中设置false path可以只使用两个through而不用指定start point和end point 命令中MUX1/a0和MUX2/a1位置不能换交换后则表示先经过MUX2/a1再经过MUX1/a0
set_false_path -through [get_pins MUX1/a0] -through [get_pins MUX2/a1]
f)对于异步双端口分布式RAM写操作和RAM的时钟是同步的读操作可以不同步因此在写时钟和读时钟间设置false path符合设计需求rd_clk为读时钟wr_clk为写时钟有两种约束方式可以实现 方法一、设置从写寄存器到读寄存器的false path
set_false_path -from [get_cells write_registers] -to [get_cells read_registers] 方法二、设置从写使能端口WE到RAM的路径
set_false_path -from [get_cells -hier -filter {REF_NAME ~ RAM* IS_SEQUENTIAL NAME ~ PATTERN_FOR_DISTRIBUTED_RAMS}]
三、工程示例
工程代码
module timing(clk1,clk2,clk3,clk4,ce,d1,d2,out,ff1_2,ff4 );
input clk1,clk2,clk3,clk4,ce,d1,d2;
output out,ff1_2,ff4;
reg ff1,ff1_2,ff2,ff3,ff4;
wire comb,comb4;
always(posedge clk1,negedge ce)
beginif(!ce)beginff10;ff1_20;endelse beginff1d1;ff1_2ff1;end
end
always(posedge clk2,negedge ce)
beginif(!ce)ff20;else beginff2d2;end
end
assign combff1*ff2;
always(posedge clk3,negedge ce)
beginif(!ce)ff30;else beginff3comb;end
end
assign outff3;
assign comb4ff1_2*out;
always(posedge clk4,negedge ce)
beginif(!ce)ff40;else beginff4comb4;end
end
endmodule
主时钟和生成时钟约束
create_clock -period 10.000 -name create_clk1 -waveform {0.000 5.000} [get_ports clk1]create_generated_clock -name gen_clk_2 -source [get_pins ff1_reg/C] -divide_by 4 -add -master_clock create_clk1 [get_pins ff2_reg/C]create_generated_clock -name gen_clk_3 -source [get_pins ff1_reg/C] -multiply_by 4 -add -master_clock create_clk1 [list [get_pins ff2_reg/C] [get_pins ff3_reg/C]]create_generated_clock -name gen_clk_4 -source [get_pins ff1_reg/C] -edges {1 4 5} -edge_shift {0.000 1.000 0.000} -add -master_clock create_clk1 [get_pins ff4_reg/C]未设置set_false_path时异步时钟路径create_clk1存在到gen_clk_4的路径下图蓝色线所示路径 设置create_clk1到gen_clk_4的false path约束inter-clock paths中只剩gen_clk_3到gen_clk_4的路径无create_clk1到gen_clk_4的路径
set_false_path -from [get_clocks create_clk1] -to [get_clocks gen_clk_4] 四、参考资料
用户手册ug903-vivado-using-constraints-en-us-2022.2.pdf
链接https://pan.baidu.com/s/17AK_-J4wRXiFLtLTorlrwg?pwdmylt
提取码mylt