0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在RTL编码中考虑延时、面积、功耗与布线的问题

冬至子 来源:Andy的ICer之路 作者:AndyICer 2023-06-05 15:42 次阅读

在RTL编码中考虑延时

01

看下面一段代码,第四个else if 分支中的数据信号DATA_is_late_arriving延时比较高,要怎么处理,将电路的性能提高?

图片

一般最高优先级给最迟到的关键信号,因此要将DATA_is_late_arriving这个信号单独拿出来分析,代码如下:

图片

再来看下面一段代码以及其电路图,假设A信号到来比较晚,如何修改能够提高电路性能?

图片

图片

核心思想还是将延迟高的信号往后面优先级更高的地方放 ,只需做小小修改即可,代码如下:

图片

图片

在RTL编码中考虑面积

02

随着芯片工艺的进步和生产成本的降低,其实面积已经显得没有时序问题那么重要。一般综合过程中可以对面积进行优化,但是在RTL设计的时候还是需要尽量减小面积的开销,这样可以达到事半功倍的效果。

例如RTL代码中的一个“+”可能对应着一个64位的加法器,所以条件语句中的比较运算,我们要判断其必要性,是否能用更简单的运算代替。

比如判断A是否小于32(if(A<32)),可以改成判断A的第五位是否为0(if(A[5]==1'b0)),这两种表达形式是等价的,但是后者的判断条件更节省面积,相当于用一个1bit的逻辑门代替一个6bit的比较器,如果我们遇到定值的比较都可以这么操作。

如果必须使用复杂的运算符,则应考虑是否可以资源共享,尽管电路逻辑综合工具也会在综合的过程中采用资源共享的方法进行优化,但是,综合器的策略是有限的,因此,在编写RTL的时候,应该尽量考虑共享,而不是把这项工作完全留给综合工具。

图片

如上面的代码所示,右边是修改之后的代码,这样可以减少两个不必要的加法器,实际的设计中资源共享可能不会像这样明显,因此平时应该按照这样的思路多多练习。

还有一种情况就是关于多比特位的信号问题, 多比特位操作意味着成倍使用资源 ,在使用多比特位的信号时,看看这个信号是否所有比特位都需要参与操作,如果不是,则可以只对需要的部分比特进行操作。例如访问RAM的地址有8比特,而写入操作时从0开始,每隔32个地址写入一个值,地址的产生可以有两种写法。显然右边这种写法操作的比特位会比左边的代码少。

图片

在RTL编码中考虑功耗

03

一个电路中的功耗影响因素主要以下4个因素: 该点电路的翻转次数、电路的工作频率、该点的电容还有电压值

但是负载电容、工作电压和工作频率这些都是RTL设计无法改变的因素,因此在RTL级设计主要考虑尽量降低电路的翻转频率。

主要措施包括如下:

①门控时钟

②增加使能信号,使得部分电路只有在需要工作时才工作;

(门控时钟与增加使能的区别是:门控时钟是关掉时钟,而使能关闭的是电路的功能,但是时钟仍然在翻转,显然门控时钟更好)

③对芯片各个模块进行控制,在需要工作时才工作;

④除了有用信号和时钟的翻转会消耗功耗,组合逻辑产生的毛刺也会大量消耗功耗。但是毛刺在设计中无法避免,因此,只有尽量减少毛刺在电路中的传播,才可以减少功耗。即在设计中,尽量把产生毛刺的电路放在传播路径的最后。另外可以使用一些减少毛刺的技术;

⑤对于有限状态机,可以通过低功耗编码来减少电路的翻转,比如将二进制编码改为独热码、格雷码等。

在RTL编码中考虑布线问题

04

如果可以在RTL编码阶段考虑代码,可能对布线产生的影响就可以避免最后出现无法布通的情况。

热点是指设计的功能需要在一个面积内占用大量的布线资源。热点产生原因:RTL编码时使用了特定的结构,如很大的mux。

图片

这种结构产生的热点,在综合的时候,导致的延迟是看不出来的,只有到了布线阶段才能给看到它的负面影响。因此,我们在RTL阶段应该重视这种电路,及早发现可能在布线阶段产生的问题。

如果设计的功能中确实需要采用很大的mux,可以通过其他方式改变他的结构。其基本的思想就是将一个大的mux分解为多级较小的mux。

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RAM
    RAM
    +关注

    关注

    7

    文章

    1322

    浏览量

    113714
  • 比较器
    +关注

    关注

    14

    文章

    1526

    浏览量

    106501
  • 加法器
    +关注

    关注

    6

    文章

    174

    浏览量

    29733
  • RTL
    RTL
    +关注

    关注

    1

    文章

    377

    浏览量

    59077
  • 门控时钟
    +关注

    关注

    0

    文章

    27

    浏览量

    8895
收藏 人收藏

    评论

    相关推荐

    FPGA管教分配需要考虑因素

    FPGA验证是其中的重要的组成部分,如何有效的利用FPGA 的资源,管脚分配也是必须考虑的一个重要问题。一般较好的方法是综合过程中通过时序的一些约束让对应的工具自动分配,但是从研发的时间段上来考虑
    发表于 01-10 22:40

    IC芯片功耗有哪些降低方法? 

    :一是可以通过优化布线减少功耗,互连正在开始支配开关功耗,就像在前几个工艺节点支配时序一样。今天,设计师有能力通过布线优化来减少功耗。二是可
    发表于 06-29 16:46

    请问怎么折中考虑电源功率因数和效率

    如何折中考虑电源设计当中,功率因数和效率的关系
    发表于 04-24 02:46

    高速PCB的布线需要考虑哪些事项?

    PCB(印制电路板)布线高速电路中具有关键作用,那么高速PCB的布线需要考虑哪些事项呢? 这个问题大家考虑过吗?
    发表于 08-02 06:46

    【设计技巧】PCB设计中考虑电磁兼容(上)

    PCB 板上,尽量缩短和减少各元器件之间的引线和连接。3)高频下工作的电路,要考虑元器件之间的分布参数。一般电路应尽可能使元器件平行排列。4)尽可能地减小环路面积,以抑制辐射干扰
    发表于 08-13 08:00

    【设计技巧】PCB设计中考虑电磁兼容(下)

    理,还可以上,下两层也是大面积的铺地。这样,使信号的上,下,左,右都有地包着。保证信号的干净。3)信号的回流面积最小定律PCB设计中,每根信号最好能做到与地的回流路径最短,如下图所示回路面积
    发表于 08-13 08:30

    新手求助UPF低功耗设计能否RTL仿真中实现呢?

    RTL设计完毕之后,如何来验证设计的正确性?UPF低功耗设计能否RTL仿真中实现呢?
    发表于 06-18 08:21

    介绍RTL设计引入的后端实现过程中的布线问题

    RTL设计引入的后端实现过程中的布线(routing)问题。后端物理实现需要完成芯片中布局布线(place&routing)的工作。物理实现过程中routing之前
    发表于 04-11 17:11

    功耗单稳延时器电路图

    功耗单稳延时器电路图
    发表于 04-13 10:35 1136次阅读
    微<b class='flag-5'>功耗</b>单稳<b class='flag-5'>延时</b>器电路图

    基于RTL的16位嵌入式微控制器(A8096)的设计

      这里描述了一款自主研发的16位嵌入式微控制器(A8096)的设计与实现,基于RTL级设计方法使用VerilogHDL进行设计描述,在设计中,采用硬布线控制方式,减少了面积功耗,同
    发表于 08-27 10:41 1112次阅读

    基于瑞昱RTL系列的超低延时蓝牙耳机方案

    基于瑞昱RTL系列的超低延时蓝牙耳机方案
    发表于 05-12 10:21 46次下载

    芯片RTL设计中如何做到低功耗设计

    ,不要让你的芯片徒增功耗。 数据通路寄存器打拍 数据寄存器打拍带上vld,不加复位逻辑,这样会省去寄存器复位电路的布线面积,而且工具还会给寄存器自动插时钟门控,还达到了降低功耗的效果。至于寄存器不复位,一些刚学习的朋友可能会感觉
    的头像 发表于 08-26 10:29 3636次阅读

    RTL设计中如何做到低功耗设计

    做芯片第一应该关注的是芯片的PPA(Performance, Power, Area),本篇浅显的部分讨论,第二个 P,Power功耗,在RTL设计中如何做到低功耗设计,对于移动设备续航的十分重要,不要让你的芯片徒增
    的头像 发表于 04-13 08:12 1706次阅读

    RTL编码书写中如何考虑时延与布线的问题呢?

    分if-else,case 的各种情况分开讨论,主要目的是将分支支路中 晚到的信号放到离输出最近的一级中
    的头像 发表于 06-27 10:36 522次阅读
    在<b class='flag-5'>RTL</b><b class='flag-5'>编码</b>书写中如何<b class='flag-5'>考虑</b>时延与<b class='flag-5'>布线</b>的问题呢?

    如何通过优化RTL减少功耗

    对于功耗估算来说,架构阶段为时过早,物理设计阶段为时已晚。有一种趋势是在项目的RTL阶段分析power hot spots。与后期分析相比,基于 RTL功耗分析更快、更容易执行,迭
    的头像 发表于 04-05 09:15 1416次阅读
    如何通过优化<b class='flag-5'>RTL</b>减少<b class='flag-5'>功耗</b>