马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
最近做综合所遇到的问题总结及思考 设计中存在多个时钟输入,而几乎每个时钟都有经过分频传递给子模块做时钟,而且每个分频时钟都经过了门控,所以这是我遇到的时序最为复杂的最难处理的设计了。 现在就设计中所存在的各种case做逐一分析,以求能做到书本理论和实际设计向结合。
Case1 门控时钟
这即是一个门控时钟的例子 时钟CLK_IN经过多个控制信号的逻辑控制之后才输出给时序模块,首先声明,设计中绝大部分门控电路都是手工的,即 Assign clk_gated=clk&enable; Always @(posedge clk_gated) Begin … End
综合的时候的处理是 Create_clock –name –p [get_ports CLK_IN] 我的问题是,所有手工的门控时钟是不是不被DC理解为门控时钟呢,因为我的所有门控时钟都是手工的,没有条用ICG单元,也没有用一个时序器件DFF和一个与门结构,最后使用report_clock_gating命令却有下面的结果,被门控的寄存器为0,这是为啥呢? Clock GatingSummary ------------------------------------------------------------ | Number of Clock gatingelements | 0 | | | | | Number of Gatedregisters | 0 (0.00%) | | | | | Number of Ungatedregisters | 531 (100.00%) | | | | | Total number ofregisters | 531 | ------------------------------------------------------------
我在这里有一个疑问,书上介绍说可以采用 Set_clock_gating_style Replace_clock_gates 命令来将手工门控时钟取代,在这里有没有这个取代的必要,如果取代的话,都有哪些门控时钟进行了取代操作,在命令中没有指定哪些时钟被取代,哪些不取代;如果没有取代的必要的化,那就是下面的问题,就是如何保证门控时钟的时序问题 我用了下面的命令 set_clock_gating_check -setup 0.3 -hold 0.3 这里留有的余量都是0.3,这个值到底够不够? 下面的warning可能跟这个check有关
Gated clock latch is not created for cell'MI96/X6187/C9'on pin 'B' in design 'DIGITAL_LOGIC1'. (TIM-141) Information: Generated Clock (X1129_Q) hasnon_unate sense on master source pin. (TIM-193) No controlling value could be found for theclock gating cell 'MI170/X865/U1' for the clock pin 'A'. (TIM-128) Warning: A non-unate path in clock networkfor clock 'CLK_IN' from pin 'MI170/X865/U1/Z' is detected. (TIM-052) 所有这些warning是不是可以waived? |