jake的个人空间 http://blog.eetop.cn/1592 [收藏] [复制] [分享] [RSS]

日志

数字前端 高速设计技巧(1) – retime

热度 12已有 982 次阅读2021-8-24 02:41 |系统分类:芯片设计

设计中经常会碰到一些非常复杂的逻辑,组合逻辑层数非常多,往往造成无法满足设计的时钟频率要求。

Cadence综合工具Genus支持retime技术。

Retime技术的原理非常简单。例如下图,两级flop之间的组合逻辑太大,限制了时钟频率。

image.png

Retime技术类似pipelineRetime技术在两级flop之间插入retime stage flop,把复杂的组合逻辑分割成里几个部分,每个部分的组合逻辑层数都相对较小,使得每一级都能工作在较高的频率,从而满足整个设计的时钟要求。

image.png

当然,retime技术不是“免费”的。

-        插入了中间级,latency增加了。上图中latency增加了3cycle

-        插入了中间级flop,面积功耗都会大一些。

下面是一个实例。这个设计实现乘+(multiply-add)运算。这类运算在dsp中很常见。这里的乘法器是16位输入乘16位输入,得到32位结果,再和符号扩展(sign extended)后的第三个输入相加。

综合用Genustarget 65nm的库。顺便插一句,很多朋友总以为只要上了先进工艺,timing的问题就解决了。做产品与做科研不同。做产品是要讲成本的。上了先进工艺只能说明你资金充裕。使用成熟工艺,虽然慢很多却能实现一样的performance,这才是真正的设计能力。

首先来看看最直接的实现方案。这里输入锁存后再运算,运算结果锁存后再输出。这样做屏蔽了input delayoutput delay对运算逻辑timing的影响,可以更好地评测运算逻辑的速度。

image.png

这里也可以看到,手动插入pipeline stages很难,尤其是乘法运算。这是一个整体,无法手动切割。当然有朋友可能会说,例化Synopsys DesignWare里的multi-stage multiplier。那样当然也是可以的,优缺点你也知道了,这里就不赘述了。

Genus综合后最差的路径如下。

image.png

image.png

时钟周期为9nspositive slack 26ps,能满足。也就是说这个实现方案最多也就是只能跑110MHz左右。如果系统的要求是400MHz,这个最直白的实现方案显示是不行的。

下面再来看看使用Genus retime技术的实现方法。在这个实现中把multiply-add放到了一个独立的module中,这样做是为了在Genus综合中单独将这个moduleretime打开。

image.png

image.png

Genus综合时在syn_generic之前关闭整个设计地retime,打开multiply_add_pipeline模块地retime

image.png

Genus综合结果如下。

image.png

可以看到,时钟提高到了2.5ns (400MHz),依然能满足,slack0

这里还要提一下,Genus retime的算法非常聪明。RTL里我们给了中间三级32*3=96DFF,实际上最后Genus并没有全部用掉96DFF,只用了2+9+31DFF置换为retime中间级flop,其余的都优化掉了。可以说Genus retime真的很“省”。

总结一下,Genus retime技术通过移动pipeline flop的位置将复杂组合逻辑分割成几级,可以大大提高电路的速度。

发表评论 评论 (4 个评论)

回复 bysg312 2021-9-4 13:33
所以这就需要在前期设计时,把这个乘法器需要消耗的pipeline级数预估出来,然后写成对应级数的dff,这样才能保证retime以后,该模块的输出仍然正常
回复 jake 2021-9-4 13:57
bysg312: 所以这就需要在前期设计时,把这个乘法器需要消耗的pipeline级数预估出来,然后写成对应级数的dff,这样才能保证retime以后,该模块的输出仍然正常 ...
是的,前期工作要做各种估算,时序,功耗。很多时候前期工作就是RTL to GDSII prototype flow
回复 zhh124 2021-9-7 15:06
这同样要等待多个cycle才能得到结果吧
回复 jake 2021-9-14 07:42
zhh124: 这同样要等待多个cycle才能得到结果吧
Throughput不变,latency多了

facelist

您需要登录后才可以评论 登录 | 注册

关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| 在线咨询 |  EETOP 创芯网 ( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2021-9-21 22:55 , Processed in 0.031186 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部