在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: yaya126

[原创] low power RTL 设计优化

[复制链接]
 楼主| 发表于 2017-9-21 12:59:43 | 显示全部楼层
Reducebit width.

最简单的比如 4 10 bits数相加,也许就会有人得出需要13bit的结论

C code: F=  A+B+C+D

Wire [10:0] F_pre1 = A[9:0] + B[9:0];

Wire [11:0] F_pre2 = F_pre1 + C[9:0];

Wire [12:0]F     = F_pre2 + D[9:0]; //sum of four10bit only need 12bit result.


特别是有些计算,如果能够通过简单推导或者合并降低位宽,那会既省面积又省power.


Hardmacrovs Register:

Tsmc 40 nm工艺下面,简单对比单个寄存器和sram的大小,

SDFCNQD1BWP    5.2u2  (Min size )

SDFCNQD2BWP    5.9 u2

For 1prf128x36=5458u2, each bit is 1.18u2

Forsparm576x32=12884, each bit is 0.69u2

Forspram 896x48=23515u2, each bit is 0.546u2

通过查手册,知道单次读写的power, 以便在大量数据需要寄存时,分析到底是用hardmaco 还是 DFF.

 楼主| 发表于 2017-9-21 13:21:51 | 显示全部楼层
Logicbalancing:综合工具在时序紧的时候更多的用并行逻辑来减少计算delay, 在时序松的时候用串行逻辑来减少面积,如果我们在写code的时候能把一些不在关键路径上的逻辑拆开,这样能优化面积,同时减少power.
如下图,非关键路径第一拍逻辑多,第2拍逻辑少。
balance1.JPG

balance后的结构如下:
balance2.JPG

一个具体实例如下:两个时序很紧的加法器balance后area power的变换。 area power都有下降


  

Style

  
  

Power

  
  

area

  
  

No-balance

  
  

6.491e-06

  
  

729.06

  
  

Balance

  
  

5.618e-06

  
  

373.08

  


当然,如果为了balance 逻辑需要寄存大量的中间结果也是不合适的,上面power没降这么多是因为增加寄存器hold中间结果,这个最好能有工具提供优化提示。
发表于 2017-9-25 15:29:44 | 显示全部楼层
顶顶顶顶
发表于 2017-9-25 20:46:39 | 显示全部楼层
markmarkmarkmark
发表于 2017-9-26 09:10:40 | 显示全部楼层
值得学习
发表于 2017-9-26 09:23:38 | 显示全部楼层
回复 1# yaya126


    期待更新,赞
发表于 2017-9-26 18:16:37 | 显示全部楼层
回复 22# yaya126


   very good!!
发表于 2017-9-27 10:21:56 | 显示全部楼层
不错不错
发表于 2017-10-11 21:13:49 | 显示全部楼层
unnecessary reset可以用formal工具检查出来

rtl2rtl的slec是个formal工具都能做
发表于 2017-10-12 02:44:25 | 显示全部楼层
本帖最后由 csgood 于 2017-10-12 06:01 编辑

多谢,好东西,有干货。

LZ能具体讲一下关于2D reg array的问题吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-11-16 22:02 , Processed in 0.022702 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表