ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

数字芯片设计中的面积优化方法

2021-03-15 17:03:13  阅读:208  来源: 互联网

标签:数字 芯片 面积 内存 模块 寄存器 优化


前言:数字芯片设计工程师在设计的时候要考虑三个方面,PPA,即Performance、Power和Area。本文讲解在实际项目中,如何对前端面积进行有效优化。

理论方法

本文首先参考书籍《FPGA设计实战演练(高级技巧篇)》第七章,如何在书写代码时进行面积优化,其中主要方法有以下几个方面。

  • 操作符平衡

其中举例,比如:

result <= a * b * c * d;假设abcd是4bit寄存器,书中讲述那么在综合之后的结果是使用了3个乘法器,分别是4bit、8bit和12bit乘法器。

如果更改成:

result_new <= (a * b) * (c * d);综合之后的结果尽管也用3个乘法器,但是是2个4bit和1个8bit乘法器。

但是我并没有自己验证过,对于书中所述情况存疑,我认为编译器可能会自动优化这种简单的情况。

  • 打破设计流水

增加流水的好处之一是缩减组合路径长度,提高设计频率,虽然不能降低单次计算时间,但是可以降低整体计算时间,相当于PPA中的performance,但是缺点是会带来area的面积增加。所以在性能允许的前提下,可以适当去除流水,减少寄存器使用,降低面积。此外,书中举了一个例子,就是在乘法器输出端可以增加一级流水,而不带来面积增加,原因在于乘法器本身输出端会有寄存器,如果增加一级流水,那么乘法器原有输出端的寄存器就会整合到增加的一级流水的寄存器,优化时序的同时不带来面积增加。

  • 资源共享
  1. 在互斥操作中共享操作符
  2. 共享表达式
  3. 共享逻辑功能模块

上述思想顾名思义,考虑的都是资源复用的问题。资源复用的前提是条件互斥,也就是不能在同一时刻都有对某一资源的使用请求,那么可以进行复用。复用的资源可以是加减乘除比较器等运算资源,也可以是寄存器、RAM等存储资源,或者是逻辑功能模块。

  • 其他面积优化方法
  1. 取消异步复位
  2. 使用FPGA厂家原语

如果一些寄存器不需要在复位时进行清零,那么可以考虑取消异步复位来节省资源,比如自己搭建RAM,其中的寄存器阵列如果不需要复位可以取消掉。

实际方法

在数字芯片设计的实际过程中,如果需要对上一版芯片进行面积优化,真正考虑的都是大块的memory优化,很少会细扣上述的某些方法,因为带来的收益比不高。在我所参与的一个视频数字防抖芯片的设计中,我需要对上一版芯片的面积优化掉百分之四十以上。具体方法是,首先看DC综合报告,统计面积占用情况,并查看面积占比高的模块,面积大的原因是什么。

  • 出窗设计

以视频芯片或者AI芯片为例,由于需要对输入串行数据进行卷积运算,比如卷积核大小为9X9,那么就至少需要缓存8行数据,第九行数据输入时整合已经缓存的8行数据,输出9X9窗口。这里需要注意尽量不要缓存9行数据,尽管会带来逻辑的简单,但是会导致面积的增加。

  • 共享内存

在芯片设计中一般为了性能,会采用流水设计,但是由于颗粒度划分精度问题,每一块内存资源未必是每一个cycle都被占用。举例说明:我所参与的项目中,前人在一个顶层模块中划分为5个子模块,5个子模块都要和DDR交互,分别需要缓存几行数据用于后续计算。但是经过时序分析可以发现,每个子模块是顺序执行,不会同时发起请求,并且颗粒度较大,所以可以考虑选取5个子模块中需要memory最大模块的内存,作为5个模块的公用内存,当哪个模块需要访问内存时即发起请求,这样可以理论上最大节省80%内存(当5个子模块内存大小相同时)。而在没有大量并行矩阵运算时,内存的面积大小基本决定了整体的面积大小,所以作为芯片设计工程师,在面积优化时,应把内存优化作为首要目标。

--------------------------------------------------END---------------------------------------------------

 

 

标签:数字,芯片,面积,内存,模块,寄存器,优化
来源: https://blog.csdn.net/weixin_43537385/article/details/114834850

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有