数字电路基础:系统设计优化

目录

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综合器,如QuartusIISynplify 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。

使用流水线

使用了两级流水线后,两个组合逻辑块的延时分别为T1T2,设置T1T2,Ta=T1+T2Tclk可接近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中,使t1t2,且T1+T2=t1+t2T1>t1则总体的工作频率 fmax提高。

2.3 关键路径法

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

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

关键路径法示意图

2.4乒乓操作法

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

乒乓操作数据缓存示意图

2.5 加法树法

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

 

 

  • 40
    点赞
  • 156
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
数字电路系统设计是计算机科学与工程领域的重要基础学科。它涉及了数字电子技术、数字信号处理和计算机系统结构等内容,对于理解和设计计算机硬件系统至关重要。以下是数字电路系统设计基础学习的一些意义: 1. 理解计算机硬件工作原理:数字电路是计算机硬件的基础,通过学习数字电路原理,可以深入了解计算机内部的工作原理和数据处理过程。这对于理解计算机体系结构、指令执行和数据传输等方面至关重要。 2. 设计优化数字电路:学习数字电路系统设计可以培养设计优化数字电路的能力。掌握常用的逻辑门、组合逻辑和时序逻辑等概念,可以帮助设计并实现各种数字电路,如加法器、多路选择器、寄存器和计数器等。同时,学习数字电路优化技术可以提高电路性能,减少功耗和面积等。 3. 面向硬件的编程与调试:学习数字电路系统设计可以帮助理解硬件编程和调试的基本原理。对于进行硬件描述语言(HDL)编程,如Verilog或VHDL,有一定的基础知识可以更好地理解和实现硬件逻辑。此外,了解数字电路设计和调试方法可以帮助解决硬件系统中的故障和问题。 4. 培养解决实际问题的能力:数字电路系统设计的学习过程中,需要通过实践来理解和应用所学的知识。通过设计和实现各种数字电路,可以培养解决实际问题的能力和动手能力。这对于计算机科学和工程领域的学习和工作都具有重要意义。 总之,数字电路系统设计基础的学习对于理解计算机硬件系统、进行硬件设计和调试以及解决实际问题都具有重要意义。它是计算机科学与工程领域中必不可少的基础学科之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值