文章目录

  • 0.IC系统设计优化主要有两方面:
  • 1.资源优化
  • 2. 速度优化

0.IC系统设计优化主要有两方面:

  • 资源优化

    • 无论是在ASIC还是FPGA中,硬件设计资源即面积(Area)是一个重要的技术指标。

    • 资源优化意义:

      1.可使用规模更小的可编程器件,降低系统成本,提高性价比。

      2.当耗用资源过多时会严重影响时序性能。

      3.为后续技术升级留下更多的可编程资源。

      4.资源耗用太多会使器件功耗显著上升。

  • 速度优化

1.资源优化

  • 1.1 资源共享
    通过一个例子进行说明。现需要实现功能:通过选择信号s来选择执行A0 * B还是A1 * B的。
    描述方式1:对两个乘法电路进行选择
    RTL结构:

    图1:先乘后选择
    描述方式2: 对乘项进行选择
    RTL结构:

    图2:先选择后乘

  • 两种方式一比较,后者在逻辑结果上没有任何改变,但却节省了一个代价高昂的乘法器,使得整个设计占用的面积几乎减少了一半。

总结:

  • 资源共享主要针对数据通路中耗费逻辑资源较多的模块,通过选择、复用的方式共享使用该模块,达到减少资源使用、优化面积的目的。

  • 并不是在任何情况下都能以此法实现资源优化,输入与门之类的模块使用资源共享是无意义的,有时甚至会增加资源的使用(多路选择器的面积显然要大于与门)。高级的HDL综合器,如QuartusII和Synplify Pro等,通过设置能自动识别设计中需要资源共享的逻辑结构,自动地进行资源共享。

  • 1.2 逻辑优化
    使用优化后的逻辑进行设计,可以明显减少资源的占用。

    • 状态机的设计要尽可能简洁,不要搞出不必要的,多个状态对同一个数据做处理。
    • if语句中用单bit的标志位代替多bit的数据来进行条件判断。
    • 设计尽可能简洁,不要弄出冗余赋值。
  • 1.3 串行化
    将原来耗用资源巨大、单时钟周期内完成的并行执行的逻辑块分割开,提取出相同的逻辑模块(一般为组合逻辑块),在时间上利用该逻辑模块,用多个时钟周期完成相同的功能,其代价是工作速度被大为降低。

    • 例 :实现

    • 描述方式1: 采用并行逻辑设计:分别相乘再相加

    • 描述方式2:采用串行化设计,逐个相乘逐个相加:只需要勇1个8位的乘法器和1个16位的加法器。但是速度明显会降低,将需要耗时5个clk才能完成一次运算,并且还需要一个附加信号start。

2. 速度优化

一般来说,速度优化比资源优化更重要,需要优先考虑。速度优化包括:FPGA的结构特性、HDL综合器性能、系统电路特性、PCB制版情况等,也包括Verilog的编程风格。下面主要讨论电路结构方面的速度优化方法。

  • 2.1 流水线设计
    流水线(Pipelining)是一种在复杂组合逻辑之间添加寄存器的方法,是最常用的速度优化技术之一。它能显著地提高设计电路的运行速度上限。

  • 2.2 寄存器配平 (Register Balancing)
    寄存器配平是使较长路径缩短,较短路径加长,使其达到平衡从而提高工作频率的一种技术。
    若设计中,若两个组合逻辑块的延时差别过大,若T1>T2,则总体的工作频率 fmax取决于T1, 即最大的延时模块。对不合理设计进行改进,即将原本设计中的组合逻辑1的部分逻辑转移到组合逻辑2中,使t1≈t2,且T1+T2=t1+t2, T1>t1则总体的工作频率 fmax提高。

  • 2.3 关键路径法
    关键路径:指设计中从输入到输出经过的延时最长的逻辑路径。优化关键路径是提高设计工作速度的有效方法。
    EDA工具中的综合器及设计分析器都提供关键路径的信息以便设计者改进设计。Quartus中的静态时序分析工具可以帮助找到延时最长的关键路径。

  • 2.4 乒乓操作法
    乒乓操作法是FPGA开发中的一种数据缓冲优化设计技术,可视作另一种形式的流水线技术。乒乓操作本质是使用2倍的硬件资源,通过将数据产生时间和数据使用时间重叠,解决一个数据生产效率低于数据使用效率的问题。是一种拿面积换性能的方法。通过“输入数据流选择单元”和“输出数据流选择单元”按节拍、相互配合的切换,将经过缓冲的数据流“无缝”地送到“数据流运算处理模块。

  • 2.5 树形结构法
    若要实现A+B+C+D。首先实现AB=A+B,CD=C+D,将AB/CD锁存一个时钟周期再相加。树形结构法和上面面积优化提到的串行化是相反的。

本文为CSDN博主「风中少年01」的原创文章,有删减和修订
原文链接:https://blog.csdn.net/qq_26652069/article/details/100634180

IC/FPGA系统设计的速度和面积优化相关推荐

  1. FPGA系统设计三大黄金法则

    FPGA系统设计三大黄金法则 一.面积与速度的平衡互换原则         这里的面积指的是FPGA的芯片资源,包括逻辑资源和I/O资源等:这里的速度指的是FPGA工作的最高频率(和DSP或者ARM不 ...

  2. FPGA电子设计系统的资源优化(面积优化)与速度优化

    一.电子设计系统的面积优化与速度优化 1.资源优化: ①资源共享:针对数据通路中耗费逻辑资源较多的模块,通过选择.复用的方式共享使用该模块,达到减少资源使用.优化面积的目的: ②逻辑优化:使用优化后的 ...

  3. (17)FPGA速度和面积互换原则

    (17)FPGA速度和面积互换原则 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)FPGA速度和面积互换原则 5)结语 1.2 FPGA简介 FPGA(Field Pr ...

  4. FPGA 设计怎样进行面积优化(逻辑资源占用量优化)

    FPGA面积优化 1 对于速度要求不是非常高的情况下,我们能够把流水线设计成迭代的形式,从而反复利用FPGA功能同样的资源. 2 对于控制逻辑小于共享逻辑时,控制逻辑资源能够用来复用,比如FIR滤波器 ...

  5. (139)FPGA面试题-FPGA设计中的速度和面积互换原则

    1.1 FPGA面试题-FPGA设计中的速度和面积互换原则 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题-FPGA设计中的速度和面积互换原则: 5)结束 ...

  6. IC/FPGA大疆笔试题分析(预分析)

    上午刚参加完一场面试,晚上又有大疆的FPGA笔试题要做,下午临时磨刀,找点往年的笔试题练练手: 1 如果只使用2选1mux完成异或逻辑,至少需要几个mux? 这类问题,我在以前的博客中练习过:http ...

  7. 数字IC/FPGA设计面试与工作_sky

    请问:对于找工作刷题,怎么看? 热身有必要,但是规劝一句:题目是刷不完的.面试通过了,后面还得再工作15年.你咋刷? 得想的长远些.做题不是终点.刷题,面试为了啥? 建议刷题是补充,平时多积累数字IC ...

  8. IC/FPGA笔试/面试题分析(九)关于FIFO最小深度计算的问题

    IC/FPGA逻辑设计笔试题中最常见的体型莫过于FIFO最小深度的计算了,以前看到过计算FIFO最小深度,需要代入公式,直到看到这篇文档,才觉得使用逻辑分析的方法来看更能让人理解的更为深刻. 文档把计 ...

  9. 数字IC/FPGA设计之——学习路径

    对于在校生或刚学习数字IC/FPGA设计的小伙伴来说,通常迷惑于一个问题:这个方向需要掌握哪些基础知识,学习路径是什么样的? 面对网上各种公众号,知乎分享,应该怎么学习呢? SiliconThink( ...

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

    前言:数字芯片设计工程师在设计的时候要考虑三个方面,PPA,即Performance.Power和Area.本文讲解在实际项目中,如何对前端面积进行有效优化. 理论方法 本文首先参考书籍<FPG ...

最新文章

  1. 基于OpenCV的车辆变道检测
  2. PKU ACM 1258 Agri-Net http://acm.pku.edu.cn/JudgeOnline/problem?id=1258
  3. 使用require.js和backbone实现简单单页应用实践
  4. 事务对性能影响_开启英特尔事务扩展技术(TSX),即可提升intel CPU 近40%性能
  5. javaweb学习总结(十八)——JSP属性范围
  6. linux下文件权限管理
  7. Subversion 1.5 安装配置指南
  8. php 加密类,php加密类
  9. Python2.x还是3.x?
  10. css display: inline-block 去间隙
  11. Android的内容观察者
  12. 可编译运行的安卓USB/OTG摄像头程序
  13. 算法:求岛屿的数量200. Number of Islands
  14. Flutter入门学习--(18)添加本地资源图片
  15. 深度学习项目实施流程
  16. android 支付宝参数说明,android 支付宝 接入流程总结
  17. 苦禅箜mm让我帮她做的作业
  18. 电脑提醒没有权限在此位置保存文件怎么办?
  19. android里面的Activity体系结构(3)_ActivityRecord和Activity状态变化分析说明
  20. C# 索引器(Indexer) this关键字的作用

热门文章

  1. 《IT时代周刊》:雅虎兵败中国
  2. 开发QQ桌球瞄准器(1):桌球瞄准器介绍与使用方法
  3. 大学计算机应用基础教程读后感,计算机应用基础的课程学习体会
  4. c语言间接级别不同_间接寻址不同问题?求解决!
  5. 提速数字化转型,云徙科技批量建设数字中台
  6. DOSBOX常用快捷键DEBUG指令
  7. pe下修复linux磁盘分区,找回丢失的Linux分区及Grub修复过程
  8. 刽子手游戏 做题笔记
  9. Android 自定义高德地图比例尺
  10. 关于Ajax原理与使用方式,收藏这一篇文章就够了!!