首页 > 其他分享 >cdc-inferred clock

cdc-inferred clock

时间:2022-12-07 16:46:00浏览次数:33  
标签:group netlist cdc clock inferred 时钟

1、为什么会有inferred clock

我们在cdc运行之前会通过netlist clock定义顶层的clock ports,之后cdc会基于我们定义的clock ports分析clock tree。

但是由于设计的复杂性,例如有black boxes的clock,cdc工具会将它们split为一个单独的clock tree,如果在clock tree上面有组合逻辑,例如MUX会使分析更加复杂。因此cdc工具分析后会认为除了user 定义的clock之外,clock tree还有其他的clock,这些工具推出来的clcok 就称为 inferred clock。

2、如何处理inferred clock

由于工具会将inferred clock定义为单独的clock group,而一般情况下这是我们不期望的,这些clock一般和我们定义的clock是一个group的,或者是它们自己是一个group的,如果cclock 定义不准确,会导致工具进行一些不必要的crosing 分析。总之在进行cdc分析之前,我们必须将inferred clock 清掉,确保我们的cdc分析准确。

常见的可能导致inferred clock的情况如下表

Class

description

fix

primary

来自于top port

重新通过netlist clock为它分配clock group

black box

输出于black box

如果有必要,重新通过netlist clock为它分配clock group

gated MUX

来自于clock MUX output。

cdc工具会假设mux输出的两个clock都异步于source clock。针对这种情况,我们有三种选择(1) 通过netlist clock为它分配clock group (2)使用netlist constant on the MUX select,使inferred clock依然于driver clock一个group (3)Use modal analysis

gated combo

clock通过组合逻辑驱动,这个组合逻辑可能是多个时钟驱动的;或者驱动组合逻辑时钟没有identified

cdc工具会认为这个时钟和所有其他的时钟是异步的,我们有三种选择(1) 通过netlist clock为它分配clock group (2)使用netlist constant,使inferred clock依然于driver clock一个group (3)Use modal analysis

undriven

时钟没有driven

添加时钟的driven 信号,或者将时钟设置为异步的,再或者netlist clock为它分配clock group。如何选择都基于设计具体分析

上表所描述的modal分析,就是指通过将组合逻辑的信号或者MUX的选择信号进一步指定,描述,让工具可以更准确的推测出clock tree结构,详情可以参考cdc_user guide 文档。

标签:group,netlist,cdc,clock,inferred,时钟
From: https://www.cnblogs.com/xiaoyong5/p/16963533.html

相关文章