时钟MUX电路结构的时序约束方法分析

一、最简单的设置(set_clock_exclusivity)

        对于时钟MUX而言,其output_pin上的时钟在任一时刻一定唯一。可以使用如下命令:

                           set_clock_exclusivity        -output output_pin
                                                                    [-type mux | user_defined]
                                                                    [-inputs input_pin_list]

        使用该命令可以指定一个cell,该单元上被指定的从输入传到输出引脚上的时钟是互斥的。其中,

                        -output output_pin:

                                        指定单个输出引脚为互斥点。根据-type选项的不同,该引脚输出的部分或全部时钟被认为是互斥的;

                        -type mux | user_defined:

                                        指定时钟互斥设置的类型。

                                        选项设置为“mux”则指定为mux单元的时钟互斥,此时不可也不必使用-inputs。选项设置为“user_defined”则mux或非mux单元都可以,且需要同时搭配-inputs选项。

                        -inputs input_pin_list:

                                        需要同“-type user_defined”一起使用,且与“-output”选项定义的pin应该在同一个cell上。仅仅指定的输入引脚到输出引脚通过的时钟是互斥的。

        该设置适用于“MUX前有逻辑”的电路。

        

        举例如下:pt_shell> set_clock_exclusivity -output MUX25/Z \
                                                                           [-type mux]

                          pt_shell> set_clock_exclusivity -output AND37/Z \
                                                                            -type user_defined \
                                                                            -inputs {AND37/A AND37/B}

                                        这里需要注意,如果该AND_cell为3输入或更多输入,则仅仅是分别通过A和B输入的时钟在Z输出引脚上互斥而已。

                

        其他命令:        remove_clock_exclusivity   

                                  report_clock [-exclusivity]

二、其他设置方法

        1、MUX前无逻辑

                此时,mux输入引脚上的时钟直接由port接入(图1),或只经过分频器(图2),输入时钟间没有timing_arc(时序弧),这种情况下不需要在mux的输出引脚上创建派生时钟,只需要:

                        ①设置输入时钟的同异步关系(set_clock_groups);

                        ②逻辑互斥的时钟关系,sdc命令如下:

                                set_clock_groups -logically_exclusive -group clk_1 \
                                                                                                -group clk_2

        2、mux前有逻辑

                时钟源clk_src进入mux之前驱动部分逻辑,且这部分逻辑与mux后的逻辑间存在timing_arc。如下图3所示:

                此时有两种方式去完成完整正确的约束:

                        ①在mux的输出点创建2个派生时钟,且另外用一个额外的时钟分组将这2个派生时钟设置为物理互斥-physically_exclusive)。

                        ②在MUX/I0前加一个时钟门控ICG如下图4,此时可以在ICG输出点创建一个一分频的派生时钟,且和DIV_N的分频时钟设置为逻辑互斥(-logically_exclusive)即可。

                其他mux前有逻辑的情况都可适用。

        

  • 5
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值