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

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

3天内不再提示

ASIC单个模块的设计和优化思路

ruikundianzi 来源: 硅农 作者: 硅农 2022-10-12 15:27 次阅读

ASIC设计中详细设计方案的确定非常重要,同样的设计,别人可以用比你小30%的面积和少30%的处理时间来实现,这才是设计工程师的价值体现之处。任何设计在最开始的时候都是一头雾水,场景复杂,各种耦合。我们要做的是将所有的场景都整理出来,然后想办法进行归一。任何一开始觉得不可能做到的任务最后都能找到解决方法。这本来看似是没有规律的世界,但人类就是去不断寻找和发现这个物质世界的运行规律。当然,即使第一版设计我们尽可能的考虑到了更多的场景和实现方案,但是最后实现阶段还是会有一些考虑不周全和不合理的实现,由于时间成本原因,决定放到下一版再修改。这个过程就叫做优化!那么,如何优化一个设计?

找大寄存器组

首先是找设计中的大寄存器组,寄存器是面积较大的基本单元了,寄存器的数量决定了设计整体的面积数量级。小容量的存储用regfile,一般寄存器组用到了上千bit,就要考虑是否用RAM。上万bit的就是不合理的设计。

看到大寄存器组是要重点关注优化的对象,要注意的是,寄存器组是可以随意在任意bit取值的,RAM是需要一拍一拍的读取的,所以需要在高并行度和面积之前做折中(trade off)。数据通路寄存器打拍过多,肯定不合理,一个数据打一拍最起码是几十个bit,打多拍,就上百bit。而换一个设计思路,在控制上多少逻辑,控制信号+计数器,多做几组也就拢共几十个bit的样子。比如前一级模块传过来的数据和valid信号,数据是要晚几拍才使用,应该做成前一级模块先给valid信号,数据晚几拍再来,避免数据打拍。在数据通路上出现一些组合逻辑路径并不长,打了一拍,这样虽然时序会更好,但是最后增加的面积来说并不值得,所以多余的寄存器打拍完全可以“干”掉。

重定时

Retiming就是重新调整时序,例如电路中遇到复杂的组合逻辑,延迟过大,电路时序不满足,这个时候采用流水线技术,在组合逻辑中插入寄存器加流水线,进行操作,面积换速度思想。

fa9d9b74-49e2-11ed-a3b6-dac502259ad0.png

任何的数字电路都可以等效成组合逻辑加D触发器打拍,两个D触发器之间的组合逻辑路径决定了,系统的工作频率,决定芯片的性能。所以为了提高芯片的工作频率,使用流水线技术在组合逻辑中插入寄存器。

fab3d7f4-49e2-11ed-a3b6-dac502259ad0.png

插入寄存器的位置需要慎重选择,不同的位置数据的打拍所消耗的寄存器的数量也不同,比方说你在位置a消耗25bit寄存器,位置b消耗20bit寄存器,能省则省。

fac5f1f0-49e2-11ed-a3b6-dac502259ad0.png

前面插入寄存器的位置使得comb1的延迟为30ns,comb2的延迟为10ns,系统的最高工作频率是由最长路径决定的。也就是说你这个系统最高工作频率的周期,不小于30ns,前面是插入pipeline,这个时候我们不改变时序,采用重定时技术,使得各个组合逻辑之间的延迟相当。

疯狂复用

找计算逻辑相同的单元,复用最常见的就是计数器,能用一个计数器实现的,就别用俩,底层模块之间相同的逻辑尽量使用一块电路,减少重复的设计。基本逻辑单元的共享举例,面积:加法器 > 比较器 > 选择器。加比选。乘法器本质上也是全加器。所以就有先选后比,先选后加,先选后乘。画个图意思一下。

fad5549c-49e2-11ed-a3b6-dac502259ad0.png

faea6a76-49e2-11ed-a3b6-dac502259ad0.png

这里的加法器可以换成任何逻辑或模块。

乘法器分时复用度提高

在计算模块中乘法器也是非常大的一部分逻辑,一个设计要考虑PPA最优,就要考虑乘法器的数量多少以及复用能不能最大化,追求最好的设计是整个数据通路中乘法器空闲不下来。乘法器调用方法,一般是在乘法器的输入保证寄存器输入,结果输出到各个复用模块时打一拍再使用。可以做成在进行完乘法运算后,就打拍,这样消耗的寄存器会少很多。画个图意思一下(单bit)。

faff1246-49e2-11ed-a3b6-dac502259ad0.png

修改前

fb1c8f1a-49e2-11ed-a3b6-dac502259ad0.png

修改后修改完后的寄存器省了很多,但是乘法器的输出寄存器负载会变大,不过后端综合时约束了max_fan_out工具会自动插buffer和复制寄存器,经过实测还是会节省很多面积,把一些优化工作可以交给工具去做,了解它,信任它,使用它。

RAM的复用

从设计的整体来看,RAM也可以复用,前面处理用过的ram,现在空下来,后面能否用。

最后

总结一下ASIC单个模块的设计/优化思路,列出所有条件,然后归一,复用,面积与速度呼唤的思想贯穿始终。

审核编辑:汤梓红

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

    关注

    34

    文章

    1164

    浏览量

    119669
  • 寄存器
    +关注

    关注

    30

    文章

    5184

    浏览量

    118364

原文标题:如何优化一个设计?

文章出处:【微信号:IP与SoC设计,微信公众号:IP与SoC设计】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于ASIC单个模块的设计/优化思路

    ASIC设计中详细设计方案的确定非常重要,同样的设计,别人可以用比你小30%的面积和少30%的处理时间来实现,这才是设计工程师的价值体现之处。
    发表于 10-12 15:28 363次阅读

    RT-Thread Studio怎么为单个c文件打开编译器优化

    RT-Thread Studio怎么为单个c文件打开编译器优化
    发表于 02-19 06:45

    怎么利用Synphony HLS为ASIC和FPGA架构生成最优化RTL代码?

    相比,能够为通信和多媒体应用提供高达10倍速的更高的设计和验证能力。Synphony HLS为ASIC 和 FPGA的应用、架构和快速原型生成最优化的RTL。Synphony HLS解决方案架构图
    发表于 08-13 08:21

    GPRS优化思路总结报告

    GPRS优化思路总结报告:一、概述 2二、无线优化思路 2三、(E)GPRS网络资源容量分析优化 53.1、
    发表于 07-27 21:29 26次下载

    基于ASIC/SoC的UART核的设计

    基于ASIC/SoC的UART核的设计 摘要:本文描述了通用异步收发机UART(Universal Asynchronous Receive Transmitter)核的一种优化设计实现的设计流程。通过采用划分功能模块使结构直
    发表于 06-19 09:55 26次下载

    ASIC,ASIC是什么意思

    ASIC,ASIC是什么意思 ASIC(Application Specific Integrated Circuits)即专用集成电路,是指应特定用户要求和特定电子系统的需要而设计、制造
    发表于 03-26 17:10 7423次阅读

    GPRS优化思路总结报告_李青春

    (E)GPRS 优化思路通信网络优化,GSM上网,PDCH,EDGEGPRS.
    发表于 01-14 15:21 4次下载

    asic是什么意思_ASIC设计过程

    本文首先介绍了asic的概念,其次介绍了ASIC的特点,最后介绍了ASIC设计过程。
    发表于 04-23 10:53 8155次阅读

    FPGA模块化设计与AlteraHardCopy结构化ASIC

    本文档的主要内容详细介绍的是FPGA模块化设计与AlteraHardCopy结构化ASIC
    发表于 01-20 17:03 6次下载
    FPGA<b class='flag-5'>模块</b>化设计与AlteraHardCopy结构化<b class='flag-5'>ASIC</b>

    VoLTE优化思路干货资料下载

    电子发烧友网为你提供VoLTE优化思路干货资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助到广大的电子工程师们。
    发表于 04-23 08:42 9次下载
    VoLTE<b class='flag-5'>优化</b><b class='flag-5'>思路</b>干货资料下载

    日常网络优化思路资料下载

    电子发烧友网为你提供日常网络优化思路资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助到广大的电子工程师们。
    发表于 04-25 08:41 2次下载
    日常网络<b class='flag-5'>优化</b><b class='flag-5'>思路</b>资料下载

    FPGA_ASIC-S698MSoC芯片中EDAC模块的设计与实现

    FPGA_ASIC-S698MSoC芯片中EDAC模块的设计与实现(第四届星载电源技术学术研讨会)-该文档为FPGA_ASIC-S698MSoC芯片中EDAC模块的设计与实现总结文档,
    发表于 09-15 11:05 6次下载
    FPGA_<b class='flag-5'>ASIC</b>-S698MSoC芯片中EDAC<b class='flag-5'>模块</b>的设计与实现

    【GCC编译优化系列】实战分析C代码遇到的编译问题及解决思路

    【GCC编译优化系列】实战分析C工程代码可能遇到的编译问题及其解决思路
    的头像 发表于 07-10 23:15 1083次阅读
    【GCC编译<b class='flag-5'>优化</b>系列】实战分析C代码遇到的编译问题及解决<b class='flag-5'>思路</b>

    关于手动伺服优化调整思路分享

    常规的伺服优化调整一般需要用到SERVO GUIDE 软件,而对于一些不是很懂该软件操作的客户或者在现场无法进行在线联网调整的情况下,手动调整就显得比较关键实用,在此提供手动伺服优化调整思路
    发表于 01-29 12:18 1881次阅读

    单个MOS管可以构成的模块

    单个MOS管可以构成的模块单个MOS管可以构成各种各样的电路模块,这些电路模块可以应用在不同的领域,例如电力电子、通信、计算机等。本文将
    的头像 发表于 09-18 18:20 735次阅读