微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > 如何对ripple counter添加时序约束

如何对ripple counter添加时序约束

时间:10-02 整理:3721RD 点击:
像这种既是数据线又是时钟线的模块,如何进行时序约束

寻了个方法如下:
首先,在不设置TC(timing constraints)情况下,进行一次编译(compile)
然后,从生成的网表(netlist)中,找出相对应的寄存器,使用create_generated_clock设置时钟约束
最后,将这些约束添加进来,再进行一次编译(compile_ultra)
e.g.DFFdiv2_reg(.D(n0), .CK(Clk),.Q(div2), .QN(n0));
DFFdiv4_reg(.D(n1), .CK(div2),.Q(div4), .QN(n1));
Note: DFF -> posedge
div2_reg:
create_clock -name Clk -period 1000 -waveform {0 500} [get_ports Clk]
set_clock_uncertainty -setup 5 Clk
set_clock_uncertainty -hold1 Clk
set_propagated_clock Clk
div4_reg:
create_generated_clock -name div2_reg -source Clk -edges {1 3 5} div2
set_clock_uncertainty -setup 4div2_reg
set_clock_uncertainty -hold0.5 div2_reg
set_propagated_clock div2_reg
Note:
1、先compile一次,再compile_ultra一次,一方面可以避免formal verification不通过,一方面可以减少一定的面积
2、对于复杂的异步逻辑,只能通过post-simulation确保时序没有问题

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top