使用Genus retime技术的实现原理

设计中经常会碰到一些非常复杂的逻辑,组合逻辑层数非常多,往往造成无法满足设计的时钟频率要求。
cadence综合工具genus支持retime技术。
retime技术的原理非常简单。例如下图,两级flop之间的组合逻辑太大,限制了时钟频率。
retime技术类似pipeline。retime技术在两级flop之间插入retime stage flop,把复杂的组合逻辑分割成里几个部分,每个部分的组合逻辑层数都相对较小,使得每一级都能工作在较高的频率,从而满足整个设计的时钟要求。
当然,retime技术不是“免费”的。
-        插入了中间级,latency增加了。上图中latency增加了3个cycle。
-        插入了中间级flop,面积功耗都会大一些。
下面是一个实例。这个设计实现乘+加(multiply-add)运算。这类运算在dsp中很常见。这里的乘法器是16位输入乘16位输入,得到32位结果,再和符号扩展(sign extended)后的第三个输入相加。
综合用genus,target 65nm的库。顺便插一句,很多朋友总以为只要上了先进工艺,timing的问题就解决了。做产品与做科研不同。做产品是要讲成本的。上了先进工艺只能说明你资金充裕。使用成熟工艺,虽然慢很多却能实现一样的performance,这才是真正的设计能力。
首先来看看最直接的实现方案。这里输入锁存后再运算,运算结果锁存后再输出。这样做屏蔽了input delay,output delay对运算逻辑timing的影响,可以更好地评测运算逻辑的速度。
这里也可以看到,手动插入pipeline stages很难,尤其是乘法运算。这是一个整体,无法手动切割。当然有朋友可能会说,例化synopsys designware里的multi-stage multiplier。那样当然也是可以的,优缺点你也知道了,这里就不赘述了。
genus综合后最差的路径如下。
时钟周期为9ns,positive slack 26ps,能满足。也就是说这个实现方案最多也就是只能跑110mhz左右。如果系统的要求是400mhz,这个最直白的实现方案显示是不行的。
下面再来看看使用genus retime技术的实现方法。在这个实现中把multiply-add放到了一个独立的module中,这样做是为了在genus综合中单独将这个module的retime打开。
genus综合时在syn_generic之前关闭整个设计地retime,打开multiply_add_pipeline模块地retime。
genus综合结果如下。
可以看到,时钟提高到了2.5ns (400mhz),依然能满足,slack为0。
这里还要提一下,genus retime的算法非常聪明。rtl里我们给了中间三级32*3=96个dff,实际上最后genus并没有全部用掉96个dff,只用了2+9+31个dff置换为retime中间级flop,其余的都优化掉了。可以说genus retime真的很“省”。
总结一下,genus retime技术通过移动pipeline flop的位置将复杂组合逻辑分割成几级,可以大大提高电路的速度。


黑鲨游戏手机2Pro流光紫将于11月1日发售 搭载高通骁龙855Plus+12GB内存
PowerVR技术高质量的全景环绕可视化系统
低迷的半导体市场 如何抓住汽车MCU这颗“救心丸”
充电宝那个牌子质量好
音频编解码器的作用、选择要点及使用技巧
使用Genus retime技术的实现原理
2017中国航天三大任务是什么?“嫦娥”再访广寒引瞩目
MIT人工突触芯片新突破:可以精确地控制电流的强度
荣耀手机海外市场销量上涨幅度明显
PCB线路板的价格组成因素解析
令人拍案称绝的世界上最薄触屏:厚度与头发丝相当
浅谈5G的发展趋势与如何推动5G融入千行百业加快数字化转型步伐
英特尔宣布将建造第一台每秒可进行百亿亿次浮点运算的超级计算机 预计2021年交付
跨链加密货币交易秒完成,首个闪电网络交易所SparkSwap问世
基于集成学习的决策介绍(下)
iPhone XR线下发售无人问津iPhone XR销售将冷门
一种新型的锗化硅(SiGe)干式选择性各向同性原子层蚀刻技术
工业级双轴倾角传感器采用牛顿第二定律
SQLServer AlwaysOn在阿里云的前世今生
业务支撑系统的TD改造