VHDL硬件描述语言与数字逻辑电路设计 第10章.ppt

VHDL硬件描述语言与数字逻辑电路设计 第10章.ppt

ID:56448291

大小:1.24 MB

页数:185页

时间:2020-06-18

VHDL硬件描述语言与数字逻辑电路设计 第10章.ppt_第1页
VHDL硬件描述语言与数字逻辑电路设计 第10章.ppt_第2页
VHDL硬件描述语言与数字逻辑电路设计 第10章.ppt_第3页
VHDL硬件描述语言与数字逻辑电路设计 第10章.ppt_第4页
VHDL硬件描述语言与数字逻辑电路设计 第10章.ppt_第5页
资源描述:

《VHDL硬件描述语言与数字逻辑电路设计 第10章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第10章数字系统的实际设计技巧10.1数字系统优化的基本方法10.2数字系统设计中的工程实际问题在数字系统设计初期,人们根据系统功能总会画出一些满足系统要求的电路框图,在这些电路框图中往往存在一些不合理或冗余的部分需要进行进一步优化,以提高系统的整体性能。这种冗余的部分在生成门级电路以后是很难去除的。因此,必须在电路框图阶段进行优化。10.1数字系统优化的基本方法10.1.1相同电路的处理在系统设计的前期,设计人员不一定预先知道有多处存在着相同的运算电路,只有在画出电路框图后才会发现它们的存在。例如在图10-

2、1(a)中,2个状态都需进行B+1运算,要正确实现其功能需要3个B+1的运算电路。但是,进行优化以后实际上只要用1个B+1的运算电路就可以实现正确的逻辑功能,如图10-1(b)所示。图10-1多个相同运算电路优化实例 (a)有多个相同运算的电路;(b)优化后采用一个运算电路如图10-1(a)所示,未优化的VHDL语言程序清单如下:   ARCHITECTURErtloftestIS   SIGNALaReg,bReg,cReg:INTEGERRANGE0TO1023;      BEGIN   PROCESS

3、(clk)IS   BEGIN   IF(clk'EVENTANDclk='1')THEN   CASEstateRegIS…WHENSO=>   aReg<=bReg+1;   bReg<=bReg+1;   cReg<=aReg;   stateReg<=S1;   WHENS1=>   aReg<=aReg;   bReg<=cReg;   cReg<=bReg+1;   stateReg<=S0;ENDCASE;   ENDIF;  ENDPROCESS;   ENDARCHITECTURErtl  

4、 如图10-1(b)所示,优化后的VHDL语言程序清单如下:   ARCHITECTURErtlOFtestIS      SIGNALnode:INTEGERRANGE0TO1023;      BEGIN   node<=bReg+1;……PROCESS(clk)IS   BEGIN   IF(clk'EVENTANDclk='1')THEN   CASEstateRegIS   WHENS0=>   aReg<=node;   bReg<=node;   cReg<=aReg;   stateReg<=

5、S1;   WHEN   aReg<=aReg;   bReg<=cReg;cReg<=node;   stateReg<=S0;   ENDCASE;   ENDIF;   ENDPROCESS;   ENDARCHITECTURErtl;10.1.2运算顺序的改变在设计电路时适当地改变运算顺序就可以达到优化电路的目的。如图10-2(a)所示,为了进行node(b×a)+(b×c)的运算,按常规的运算顺序画出的数据流图如图10-2(a)中的左图所示。为实现该运算,需要2个乘法器和1个加法器。现在用因式分解的

6、方法来改变原式的运算顺序,即先作加法后再进行乘法运算,即nodeb×(a+c),其数据流图如图10-2(a)中的右图所示。修改运算顺序后,实现该运算只需1个乘法器和1个加法器。显然,这样就减少了电路的规模。图10-2(b)示出了另一种改变计算顺序的方法。原式node(((a+b)+c)+d)经改变后变为node((a+b)+(c+d)),这样做可使运算电路的级数减少,(a+b)和(c+d)可以进行并行运算,从而提高了电路的运算速度。   在用VHDL语言编程时,可以在源程序中加括号来改变运算顺序,也可以将中间

7、运算结果视为节点来控制运算顺序。这样做可使源程序在编译或综合时就能达到优化电路的目的。图10-2改变运算顺序优化电路 (a)缩小了电路规模;(b)提高了运算速度10.1.3常数运算的运用在前面已经提到,计算机工作时状态有Fetch、Decode等,在形成门级电路时通常将这些状态名赋以常数值,如Fetch赋以0,Decode赋以1等。在运算式中使用布尔代数性质对常数进行操作可简化运算电路。例如:   xAND'1'='x'   xAND'0'='0'   xOR'1'='1'   xOR'0'='x'   这种

8、情况下,EDA软件在编译时都能进行自动化处理,其原因也就在于此。10.1.4相同运算电路的使用在设计电路时,即使参与运算的数据不同,只要不是进行同时运算,两个不同的运算就可以由一个运算电路来实现。例如,图10-3(a)是一个未经优化的数据流图,图中需要使用2个乘法电路。考虑到A×B在S0状态下进行运算,C×D在S1状态下进行运算,这2个乘法器运算操作是在不同时间内进行的,因此该电路可以同用一个乘法器

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。