双时钟(含组合逻辑输出时钟)的时钟约束
时间:10-02
整理:3721RD
点击:
一个模块有两个时钟输入,clk1和clk2,clk3是clk1和clk2的组合逻辑输出(例如是clk1和clk2的二选一),在这个待综合模块里,只有clk1和clk3两个时钟在跑,由这两个时钟驱动的相关信号之间是有关联的。请问这种情况综合时,时钟的约束怎么写。
我的大概是这样的,其中clkA高频,CLKB低频,
clk_mux输出CLKB时,clk_mux所驱动的reg采样的是外部输入的input,
clk_mux输出CLKA时,clk_mux所驱动的reg是和CLKA驱动的那部分电路完全同步的。
还有一个问题不太理解,看到有的说Mux可以自动穿透,不用约束Mux后的时钟;还有的约束直接指定某个cell的输出,可是我在综合时还不知道是什么cell啊,只是RTL的代码,只是功能上看是个Mux,可实际综合出来可能是nand,Aoi之类的组合,请问在综合阶段而不是Pt或Pr阶段要怎么约束他们。

# 分别约束clkA和clkB
create_clock -name clk_100 -period 10 [get_ports clkA]
create_clock -name clk_125 -period 8 [get_ports clkB] -add
#设置互斥时钟
set_clock_groups -exclusive -group {clk_100} -group {clk_125}
这是来自Altera的例子。

我的大概是这样的,其中clkA高频,CLKB低频,
clk_mux输出CLKB时,clk_mux所驱动的reg采样的是外部输入的input,
clk_mux输出CLKA时,clk_mux所驱动的reg是和CLKA驱动的那部分电路完全同步的。
还有一个问题不太理解,看到有的说Mux可以自动穿透,不用约束Mux后的时钟;还有的约束直接指定某个cell的输出,可是我在综合时还不知道是什么cell啊,只是RTL的代码,只是功能上看是个Mux,可实际综合出来可能是nand,Aoi之类的组合,请问在综合阶段而不是Pt或Pr阶段要怎么约束他们。

顶一下
二楼,学习了,我觉得“看到有的说Mux可以自动穿透,不用约束Mux后的时钟;”这句话是对的
