目录

1.资源优化

1.1 资源共享

1.2 逻辑优化

1.3 串行化

2. 速度优化

2.1 流水线设计

2.2 寄存器配平 (Register Balancing)

2.3 关键路径法

2.4乒乓操作法

2.5 加法树法



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

  1. 资源优化

  2. 速度优化

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

资源优化意义:

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

Ø当耗用资源过多时会严重影响优化的实现。

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

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

1.资源优化

1.1 资源共享

通过一个例子进行说明。现需要实现功能:通过选择信号s来选择执行A0*B还是A1*B的。

描述方式1:对两个乘法电路进行选择

RTL结构:

图1:先乘后选择

描述方式2: 对乘项进行选择

RTL结构:

图2:先选择后乘

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

总结:

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

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

1.2 逻辑优化

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

例:要实现一个变量*常数。

描述方式1:构建有一个两输入的乘法器:m<=a*b,然后对其中一个端口赋予常数。

描述方式2:采用一个常数乘法器实现

经过对比,后者占用的资源要明显少于前者。

1.3 串行化

将原来耗用资源巨大、单时钟周期内完成的并行执行的逻辑块分割开,提取出相同的逻辑模块(一般为组合逻辑块),在时间上利用该逻辑模块,用多个时钟周期完成相同的功能,其代价是工作速度被大为降低。

例 :实现

描述方式1: 采用并行逻辑设计

RTL结构:

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

2. 速度优化

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

2.1 流水线设计

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

未使用流水线

未使用流水线设计,存在一个延时较大的组合逻辑块,该设计从输入到输出需经过的时间至少Ta(还有其他延迟,如Tco),所以Tclk>Ta.,那么 fmax≈1/Ta。

使用流水线

使用了两级流水线后,两个组合逻辑块的延时分别为T1、T2,设置T1≈T2,且Ta=T1+T2,Tclk可接近T1,其最高工作频率为:

fmax ≈ fmax1 ≈ fmax2 ≈ 1/T1 ≈ 1/T2,最高工作频率比未使用流水线,速度提高了近一倍。

例1:

例2:

流水线工作节拍示意图

例3: 普通的8位加法器

例4:采用流水线加法器实现8位加法器:用3个4bit加法器以及多个锁存器实现

描述:

例3和例4同是8位加法器设计描述,前者是普通加法器的描述方式,后者是二级流水线描述方式。将8位加法分成两个4位加法操作,其中用锁存器隔离。

2.2 寄存器配平 (Register Balancing)

寄存器配平是使较长路径缩短较短路径加长,使其达到平衡从而提高工作频率的一种技术。

下图所示的设计中,若两个组合逻辑块的延时差别过大,若T1>T2,则总体的工作频率 fmax取决于T1, 即最大的延时模块。

对上图的不合理设计进行改进,改进后为如下所示的结构,即将原本设计中的组合逻辑1的部分逻辑转移到组合逻辑2中,使t1≈t2,且T1+T2=t1+t2, T1>t1则总体的工作频率 fmax提高。

2.3 关键路径法

关键路径:指设计中从输入到输出经过的延时最长的逻辑路径。优化关键路径是提高设计工作速度的有效方法。

EDA工具中的综合器及设计分析器都提供关键路径的信息以便设计者改进设计。Quartus II中的时序分析器可以帮助找到延时最长的关键路径。

关键路径法示意图

2.4乒乓操作法

乒乓操作法是FPGA开发中的一种数据缓冲优化设计技术,可视作另一种形式的流水线技术。通过“输入数据流选择单元”和“输出数据流选择单元”按节拍、相互配合的切换,将经过缓冲的数据流“无缝”地送到“数据流运算处理模块

乒乓操作数据缓存示意图

2.5 加法树法

      若要实现A+B+C。首先实现A+B,将其和锁存一个时钟周期再与C相加。

数字电路基础:系统设计优化相关推荐

  1. 串讲数字电路与系统设计提前预告

    最近参加了几次教研活动,包括参加了Intel FPGA的教师大会.觉得还是有必要做点事情,来满足一下现在广大学生朋友和一些青年老师高涨的学习需求的. 想来想去啊,就觉得还是应该串讲一下数字电路与系统设 ...

  2. 移动前端开发基础与优化

    移动前端开发基础与优化 http://qywx.gitcafe.io/2014/11/22/%E7%A7%BB%E5%8A%A8%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91 ...

  3. ewb交通灯报告和文件_数字电路基础红绿灯实验报告.docx

    数字电路基础红绿灯实验报告 题目:红绿灯控制器 指导教师:莫琳 设计人员:谭晨曦班级:电信类111班日期:XX年5月25日 目录 一.设计任务书 二.设计框图及整机概述 三.各单元电路的设计方案及原理 ...

  4. 数字电路基础知识——乘法器的设计(二)( 串行、流水线、有符号数八位乘法器)

    数字电路基础知识--乘法器的设计(二)( 串行.流水线.有符号数八位乘法器) 前面一节关于乘法器的具体实现方式有很多种方法,均有各自的优缺点. 本节将再介绍一下两种乘法器的设计,分别用Verilog语 ...

  5. 数字电路基础知识——格雷码和二进制码的转换的算法和Verilog实现

    数字电路基础知识--格雷码和二进制码的转换的算法和Verilog实现 关于数字电路中的码制问题在这篇博客中已经做了详细分析, 数字电路基础知识--数字IC中的进制问题(原码,反码,补码以及各进制的转换 ...

  6. 数字电路基础知识——组合逻辑电路(奇偶校验电路、数据比较器的设计)

    数字电路基础知识--组合逻辑电路(奇偶校验器.比较器的Verilog设计) 本次主要介绍组合逻辑电路中的奇偶校验电路以及比较器的设计,以及相干的实例来熟悉这两种电路. 一.奇偶校验电路 奇偶校验码 奇 ...

  7. 数字电路技术可能出现的简答题_电子技术应用实验1(数字电路基础实验)答案公众号...

    朝代:作者: 电子技术应用实验1(数字电路基础实验)答案公众号 更多相关[单选,A2型题,A1/A2型题] 颅骨骨折时出现"熊猫眼"征,主要见于(). [单选,A2型题,A1/A2 ...

  8. FPGA系统性学习笔记连载_Day1数字电路基础篇

    FPGA系统性学习笔记连载_Day1数字电路基础篇 连载<叁芯智能FPGA设计与研发就业班-第一天> <数字电路基础1> 原创作者:紫枫术河 转载请联系群主授权,否则追究责任 ...

  9. 数字电路基础(五)算术运算电路

    数字电路基础(五)算术运算电路 一.二进制加法电路 1.半加器和全加器 (1)半加器 半加器是一个只考虑两个一位二进制数相加,而不考虑低位进位的运算电路.如下图所示是半加器的逻辑图: A A A和 B ...

  10. 数字电路基础(二)逻辑代数

    数字电路基础(二)逻辑代数 一.逻辑变量和逻辑函数 熟悉计算机编程语言的同学应该了解,在很多编程中存在一种布尔变量,它有且只有两个值真和假(True和False,有时也使用1和0).布尔变量本身实际上 ...

最新文章

  1. Object​.assign()
  2. CTFshow 命令执行 web52
  3. 非阻塞模式WinSock编程入门
  4. 测试工作——XPath
  5. android gallery2源码分析,Android4.2.2 Gallery2源码分析(8)——假装的Activity
  6. 高德地图 map.setcenter 动画_娄底三维动画制作公司价格2020行情-立艺数字
  7. 秒懂商用区块链关键技术:智能合约
  8. [渝粤教育] 西南科技大学 电气CAD 在线考试复习资料
  9. android实现截屏分享,Android截屏、保存、分享
  10. 数据结构队列的基本操作
  11. 当联想失去“联想”(4)- PC+换汤必须换药
  12. 黎曼的zeta函数(1)
  13. IM即时通讯/原生APP/H5聊天/在线客服/高仿VX/uniapp版本/视频通话/语音通话/带视频部署教程
  14. 新域名正在备案,静候佳音
  15. 手机 APP 安全登录的几种方式
  16. STM32F4开发板硬件简介
  17. 颜色搭配之BUTTONS 1.0
  18. 计算机基础教研活动记录,信息技术教研活动记录
  19. springMVC+ajax分页查询
  20. 商法——企业法律风险防范

热门文章

  1. 《自卑与超越》的优秀读后感作文4000字
  2. MFC学习之路(五)让人菊花一紧的错误
  3. Hadoop的特性和版本
  4. 企业舆情监测的意义是什么?为什么要做舆情监测?
  5. 2019年互联网裁员名单
  6. python 空字典定义方法
  7. 发现一个提供免费英文软件类书籍的网站[xgluxv]
  8. 软件测试VS软件开发 IT行业两大高薪岗位全方位对比 看完就知道选谁了
  9. 如何解决出现问题,你的PIN不可用,单击以重新设置PIN
  10. 计算机系统关机后自动重启,深度技术win7系统电脑关机后又自动开机如何解决【图文】...