- 主题:讨论:一个模块有两种不同的时钟频率如何设计
假设有一个逻辑,有两种工作模式,每个模式的critical path不一样长,所以时钟频率
也不一样
举例:
模式1,此时critical path是4ns,周期是4ns
模式2,此时critical path是5ns,周期是5ns
注意两个模式的critical path是不同的逻辑,只在自己所在的模式下才有意义
假设先在模式1工作100个周期,再在模式2工作100个周期,如此反复
应该如何设计呢?
想到的方案有:multi cycle
只用一个1ns的时钟,在模式1下的critical path设为multicycle为4,在模式2下的cri
tical path设为multicycle为5
请大家帮忙看看还有什么其他方案么?
--
修改:Xaoyao FROM 101.87.107.*
FROM 101.87.107.*
做两个模块,成本也不高。
【 在 Xaoyao (劳动最光荣) 的大作中提到: 】
: 假设有一个逻辑,有两种工作模式,每个模式的critical path不一样长,所以时钟频率
: 也不一样
: 举例:
: ...................
--
FROM 123.113.218.*
如果设计是指综合,STA和PR的话,那就create两个时钟,一个4ns, 一个5ns,同时送进去,然后设这两个时钟互为async: "set_clock_groups -async -group clk1 -group clk2". 这样DC, PT和布局布线工具ICC/INNOVUS应该都能同时识别它们,这是数字实现的常规做法
或者如果你能分成两个mode的话,就弄一个时钟,两个SDC, 一个SDC里面4ns周期,另一个SDC里面5ns周期,PR和STA的时候用multi-mode模式,PR时把这两个不同mode的SDC都读进去,工具都能认,这也是常规操作
【 在 Xaoyao 的大作中提到: 】
: 假设有一个逻辑,有两种工作模式,每个模式的critical path不一样长,所以时钟频率
: 也不一样
: 举例:
: ...................
--
修改:SouthTiger07 FROM 49.7.64.*
FROM 114.240.88.*
统一按4纳秒周期signoff
【 在 Xaoyao 的大作中提到: 】
: 假设有一个逻辑,有两种工作模式,每个模式的critical path不一样长,所以时钟频率
: 也不一样
: 举例:
: ...................
--
FROM 218.205.55.*
一般的做法是在一种频率模式下综合,然后STA分别检查两种模式的timing。
如果timing不满足,可以考虑综合时over constrain。
按理说不会的,综合时选择逻辑没有bypass,timing会更差,STA很容易满足。
--
FROM 101.87.11.*
嗯,sdc是这样做我明白了,可以的
但设计怎么做
一个时钟怎么实现4ns周期和5ns周期的切换
注意这个切换是以100个周期为单位的
切换的很频繁
我说的muticycle的方案,包括sdc和设计都要相应的做,sdc就是设muticylce,设计就是用1ns的时钟,做两个多周期逻辑
【 在 SouthTiger07 的大作中提到: 】
: 如果设计是指综合,STA和PR的话,那就create两个时钟,一个4ns, 一个5ns,同时送进去,然后设这两个时钟互为async: "set_clock_groups -async -group clk1 -group clk2". 这样DC, PT和布局布线工具ICC/INNOVUS应该都能同时识别它们,这是数字实现的常规做法
:
: 或者如果你能分成两个mode的话,就弄一个时钟,两个SDC, 一个SDC里面4ns周期,另一个SDC里面5ns周期,PR和STA的时候用multi-mode模式,PR时把这两个不同mode的SDC都读进去,工具都能认,这也是常规操作
: ....................
- 来自「最水木 for iPhone13,4」
※ 修改:·Xaoyao 于 May 24 19:31:12 2021 修改本文·[FROM: 220.196.192.*]
※ 来源:·最水木 客户端·[FROM: 220.196.192.*]
修改:Xaoyao FROM 220.196.192.*
FROM 220.196.192.*
设计上的做法可以参考DFT里面的at speed test看看怎么切换的,也许能有些帮助,at speed test也是在两个时钟之间来回切,可能一个是高速时钟一个是低速时钟,切的速度要求也挺高。回到这个例子,在外面弄一个4ns, 一个5ns的时钟,通过clk mux接进去,然后控制clk mux端的sel,估计也能做到,当然,clk mux 的sel端要满足一定的时序要求,具体怎么约束,DFT里面的设计估计能提供一些参考,我对DFT这块不熟,找个做过DFT 的人问问可能就有头绪了。
如果能再有一个约束,每次切换可以给2~3周期的稳定时间(10~12ns),那就更好办了:外面用1ns的主时钟,分频产生4ns的clk1 和5ns的clk2, 通过clk mux送进去,然后clk mux的sel 由1ns时钟控制,每次切换有个10ns时间让sel翻转,肯定足够了,正好这个过程中还可以把这个模块的一些控制寄存器给配置好,进行内部工作模式的切换
【 在 Xaoyao 的大作中提到: 】
: 嗯,sdc是这样做我明白了,可以的
: 但设计怎么做
: 一个时钟怎么实现4ns周期和5ns周期的切换
: ...................
--
修改:SouthTiger07 FROM 114.240.88.*
FROM 114.240.88.*
multicorner signoff呗
【 在 Xaoyao 的大作中提到: 】
: 假设有一个逻辑,有两种工作模式,每个模式的critical path不一样长,所以时钟频率
: 也不一样
: 举例:
: ...................
--
FROM 223.104.42.*