对于图中的clk mux,首先create两个clk create_clock-name clk_1 -period$clk_period$clk1_src_pin-add create_clock -name clk_2 -period$clk_period$clk2_src_pin–add clk1和clk2异步,mux后产生的时钟不用创建派生时钟只需设置异步关系即可 set_clock_groups -asynchronous -name clk_async -group “clk...
physically_exclusive代表两个clock group在物理意义上相互排斥,比如在一个source pin上定义了两个时钟。 logically_exclusive代表两个clock group在逻辑上相互排斥,比如两个clock经过MUX选择器。一个简单的例子: ***set_clock_groups -physically_exclusive *** ***-group {CLK1 CLK2} ***-group {CLK3 CLK4} ...
对于单元B1的管脚I1选择它的驱动单元为MUX21,会有两个时钟关联,从clk1时钟的F1触发器的A时序弧经过MUX21驱动I1,另一条是从clk2时钟的F2触发器的B时序弧经过MUX21驱动I1。 set_driving_cell -lib_cell MUX21 -from_pin A -clock CLK1 [get_ports I1] set_driving_cell -lib_cell MUX21 -from_pin ...
在多个模式中选择的时候,设定指定单一模式(相当于mux选择器); 通过SDC命令set_case_analysis定义恒定状态约束; 如上图,假如CLK_SEL为0时,选择PLLdiv6_input,CLK_SEL为1时,选择PLLdiv2_input,则可设 set_case_analysis0[get_pins{mux.CLK_SEL}] 上述定义模式端口mux.CLK_SEL恒定状态为0; 可以是0,1,rising...
logically_exclusive代表两个clock group在逻辑上相互排斥,比如两个clock经过MUX选择器。一个简单的例子: set_clock_groups -physically_exclusive -group {CLK1 CLK2}-group {CLK3 CLK4} clock group的定义异常谨慎,需要和前端再三确认。 时钟的定义就到此为止了,只是一些基础的概念,具体命令还有很多延伸扩展的内容...
多个时钟是同步的,但是逻辑是相互排斥的,比如通过MUX二选一的时钟,他们之间的时序路径也不需要分析,为了让工具不再优化两时钟之间的时序,可以用两种命令约束: 方法1: set_false_path -from [get_clocks CLK1] -to [get_clocks CLK2] 方法2: set_clock_group -logically_exclusive -group CLK1 -group CLK2...
logically_exclusive代表两个clock group在逻辑上相互排斥,比如两个clock经过MUX选择器。一个简单的例子: set_clock_groups -physically_exclusive \ -group {CLK1 CLK2}-group {CLK3 CLK4} clock group的定义异常谨慎,需要和前端再三确认。 原文链接:https://mp.weixin.qq.com/s?__biz=MzI1MzAyNTA1Mg==&mid...
-source [get_pins FF1/CLK] \ -divide_by 2 \ -invert \ [get_pins FF1/Q] 同一点定义多个generated clock 在实际电路中比较常见的情况是,不同的场景下使用不同频率的时钟来驱动电路,如下图所示,同一个时钟,与经过二分频,四分频后的时钟经过MUX输出给电路使用。
图中的interface还是controller钟TCK前ICG的E端由to_mbist_tck_en决定,gating_bistclk_tck_mux的S端为INJECT_TCK信号。核心代码如下: # MUX: assignINJECT_TCK = MBISTPG_EN_INT & BIST_HOLD_INT & (~LV_TM); #tessent_persistent_cell_GATING_TCK: ...
set_input_delay-max-add_delay-clock[get_clocks{CLK}]15[get_ports{IO}]set_input_delay-min-add_delay-clock[get_clocks{CLK}]15[get_ports{IO}] -add_delay:通知工具除了现存的约束外,这是一个额外的约束,不会覆盖前一个约束;如果没有-add_delay,那么后面的约束会覆盖前面的约束。