数字系统设计基本方法资料PPT课件_第1页
数字系统设计基本方法资料PPT课件_第2页
数字系统设计基本方法资料PPT课件_第3页
数字系统设计基本方法资料PPT课件_第4页
数字系统设计基本方法资料PPT课件_第5页
已阅读5页,还剩46页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.1 1.1 系统需求分析系统需求分析主要内容:主要内容:l 确定系统的基本功能。确定系统的基本功能。l 确定输入和输出信号。确定输入和输出信号。l 确定各功能模块之间的互相关系。确定各功能模块之间的互相关系。 l 确定系统具体指标。确定系统具体指标。1 1 数字系统设计的一般步骤数字系统设计的一般步骤 通常分为:系统需求分析、算法设计、算法描述、系统结构选择、系通常分为:系统需求分析、算法设计、算法描述、系统结构选择、系统具体设计、系统仿真与验证。统具体设计、系统仿真与验证。第1页/共51页1.2 1.2 算法设计与算法描述算法设计与算法描述 算法设计结果要用算法描述来表达,因此两者总是共

2、存的,在系统设计时很难算法设计结果要用算法描述来表达,因此两者总是共存的,在系统设计时很难分出先后。分出先后。 算法描述大致可分为算法描述大致可分为行为描述、行为描述、RTLRTL描述描述( (寄存器传输描述寄存器传输描述) ) 以及算法流程图、以及算法流程图、算法状态机图描述算法状态机图描述几个阶段。几个阶段。第2页/共51页 系统结构选择与算法设计有很大关系,不同的算法可以实现同一个系统的功能。系统结构选择与算法设计有很大关系,不同的算法可以实现同一个系统的功能。当然,同一个算法也可以用不同的系统结构来实现。当然,同一个算法也可以用不同的系统结构来实现。 1.3 1.3 系统结构选择系统结

3、构选择FSM1FSM2数据寄存器状态寄存器数据寄存器状态寄存器FSM4数据寄存器状态寄存器FSM3数据寄存器状态寄存器clk系统时钟第3页/共51页 数字系统的数字系统的垂直结构垂直结构和和水平结构水平结构 M231M232M233M234M241M242M243M244M431M432M433M21M24M22M23M41M44M42M43M1M5M2M4M3底层顶层第4页/共51页 在系统结构选定以后,根据系统各功能模块的算法描述,用在系统结构选定以后,根据系统各功能模块的算法描述,用HDLHDL语言对其进行语言对其进行编程了。为了便于编程仿真和验证,在系统具体设计时应将各功能模块的输入和

4、输编程了。为了便于编程仿真和验证,在系统具体设计时应将各功能模块的输入和输出及各模块之间的相互联系用框图形式标注清楚。出及各模块之间的相互联系用框图形式标注清楚。1.4 1.4 系统具体设计系统具体设计第5页/共51页 数字系统逻辑设计是否正确,在设计完成以后应进行仿真和验证。仿真可分为数字系统逻辑设计是否正确,在设计完成以后应进行仿真和验证。仿真可分为功功能仿真能仿真和和时序仿真时序仿真。1.5 1.5 系统仿真与验证系统仿真与验证第6页/共51页2 数字系统并发处理的设计 2.1 并发处理的基本概念 所谓并发处理,就是在一个时钟周期内若干个电路并发工作,完成若干个处理操作。例如,某一个程序

5、要完成如下三步运算:A=A+CB=C+DC=E+D 第7页/共51页如果这三步处理在一个时钟周期内完成,那么就算并发处理。这样做就可以使处理速度提高3倍。 对等式右边进行计算时钟进入S3状态代入A、B、C值;进入S4状态AACBCDCED状态S4S3S4第8页/共51页 并发处理不仅可以用于顺序程序的处理,也可以用于分支程序的处理,如图所示。 图 分支程序的并发处理(a) 分支的并发处理;(b) 对应的电路实现 选择器A寄存器B1A3B寄存器B1B2C寄存器S3S2状态比较器选择信号AB(b)判断AB,进行各分支的对应运算时钟进入S1状态其他时,S1AA3BB1状态S3AB1BB2状态S2AB

6、时代入各计算结果(a)S2S3第9页/共51页2.2 并发处理的基本方法 并发处理应该是没有顺序概念的,也就是说,各并发处理过程是在一个时钟周期中进行处理和结果代入的,其先后顺序对结果不会产生影响。 并发处理实例 S3S4A100B20A20121B100AB1BA状态S4时钟状态S3S4(A)10021(B)20100第10页/共51页 1简单的前后合并处理 在前后两个状态中,如果处理是相对独立的,前面的操作结果不作为后续的操作内容,这两个处理可以设计成并发的。例如:第1个时钟完成A=C+1第2个时钟完成B=B+1这两个处理不具继承性,可设计成两个处理并发操作: A=C+1 B=B+1 1个

7、时钟周期完成第11页/共51页 2正向引用合并处理 在前后两个状态中,如果处理是有关连的,前面的操作结果要作为后续的操作数,如:第1个时钟 A=C+1第2个时钟 B=A+2为了使两个处理可以并发地在一个时钟周期中进行,就可以采用正向引用合并处理方法。 A=C+1 B=(C+1)+1 1个时钟周期完成第12页/共51页 3分支条件与处理合并S1S2S3S4AA1B0时其他S1S3S4其他AA1AA1B0时(a)S1S2S3S5S4A0时其他AA1AA2S1S3S5其他AA2AA1A0时(b)第13页/共51页4分支条件合并其他S5S3S4B0时A0时其他S3S4S5A0且B0A0且B0其他S1S

8、2S1第14页/共51页S1S2S3Af1(A,B)Bf2(A,B)Af3(A,B)Bf4(A,B)S2S4S3S5S1条件成立Af1(A,B)Bf2(A,B)Af3(A,B)Bf4(A,B)条件不成立Af5(A,B)Bf6(A,B)Af7(f5(A,B),f6(A,B)Bf8(f5(A,B),f6(A,B)S1S3Af3(f1(A,B),f2(A,B)Bf4(f1(A,B)S1Af3(f1(A,B),f2(A,B)Bf4(f1(A,B),f2(A,B)S3S5Af7(f5(A,B),f6(A,B)Bf8(f5(A,B),f6(A,B)条件成立条件不成立(a)(b)多个处理并发设计实例多个处理

9、并发设计实例第15页/共51页图图3-7 多个处理并发设计实例多个处理并发设计实例A f1(A,B)Bf2(A,B)条件(A,B)成立Af3(A,B)Bf4(A,B)条件(A,B)不成立A f5(A,B)Bf6(A,B)S1S3S5修改判断条件条件(f1(A,B),f2(A,B)成立Af3(f1(A,B),f2(A,B)Bf4(f1(A,B),f2(A,B)条件(f1(A,B),f2(A,B)不成立Af5(f1(A,B),f2(A,B)Bf6(f1(A,B),f2(A,B)(c)S4S3S2S1第16页/共51页 5时间空间拓展S10S5S9S8S7S6S1S2S3S4S0AABAABAABA

10、ABAA10B用一个加法器实现,需10个时钟周期ABABAA10B用10个加法器实现,只需1个时钟周期(a)(b)BBBBBBBB第17页/共51页图3-8 时间空间拓展处理实例(a) 时间拓展示意图;(b) 空间拓展示意图;(c) 流水线拓展示意图 BQ DQ DQ DQ D2B4BQ DAQ D2BAA6BQ DA4BA10B(c)4B6B2BBAA10BA4B第18页/共51页3 系统结构的选择和设计 模块的水平结构和垂直结构(a) 垂直结构;(b) 水平结构 子块1子块2运算电路子块3子块4状态机(b)更细的部分处理更细的部分处理更细的部分处理部分处理部分处理整体处理(a)模块第19页

11、/共51页3.1 3.1 系统模块之间的连接系统模块之间的连接 l上层模块与下层模块的连接上层模块与下层模块的连接 上层模块可以用上层模块可以用PORT MAPPORT MAP语句来调用下层的模块,实现两个模块之间的连接。语句来调用下层的模块,实现两个模块之间的连接。 . . ENTITY module A IS ENTITY module A ISPORT(PORT( datain: IN STD_LOGICdatain: IN STD_LOGIC; dataout: OUT STD_LOGIC)dataout: OUT STD_LOGIC); END module AEND module

12、A; ARCHITECTURE rtl OF module A IS ARCHITECTURE rtl OF module A IS . . END rtl END rtl ;第20页/共51页 ENTITY module B IS .END module B;ARCHITECTURE rtl OF module B IS COMPONENT module APORT( datain: IN STD_LOGIC; dataout: OUT STD_LOGIC);END COMPONENT;SIGNAL sig A: STD_LOGIC;SIGNAL sig B: STD_LOGIC;BEGIN

13、 U2: module A PORT MAP (sig A,sig B);END rtl ; 第21页/共51页l在同一层中的各模块是通过所定义的信号连接起来的。 . ENTITY module A ISPORT( din: IN STD_LOGIC; dout: OUT STD_LOGIC);END module A;.ENTITY module B IS PORT(din: IN STD_LOGIC;dout: OUT STD_LOGIC);END module B;.第22页/共51页.ENTITY module C IS END module C ;ARCHITECTURE rtl O

14、F module C IS COMPONENT module A .END COMPONENT; COMPONENT module B .END COMPONENT;SIGNAL sigab , sigba: STD_LOGIC;BEGIN U3: module A PORT MAP(sigab,sigba); U4: module B PORT MAP(sigba,sigab);END rtl; ABsigabsigba第23页/共51页l函数和过程的调用函数和过程的调用 使用函数语句使用函数语句(FUNCTION)(FUNCTION)和过程语句和过程语句( (PROCEDUREPROCED

15、URE) )。需要再次强调的是,。需要再次强调的是,如果将电路写成函数模块,如果将电路写成函数模块,其输入可以有多个,但是其输出只能有一个其输入可以有多个,但是其输出只能有一个。如。如果电路有果电路有多个输入和多个输出多个输入和多个输出,就应用过程模块来编写。,就应用过程模块来编写。第24页/共51页4 4 数字系统设计中的几个工程实际问题数字系统设计中的几个工程实际问题 4.14.1影响系统工作速度的主要因素影响系统工作速度的主要因素 所谓系统的工作速度,是指系统以何种时钟频率工作。系统的处理时间可以表示所谓系统的工作速度,是指系统以何种时钟频率工作。系统的处理时间可以表示为为处理时间处理时

16、间= =时钟周期时钟周期处理所需时钟周期数处理所需时钟周期数两个途径:两个途径:减小时钟周期减小时钟周期和和减小时钟周期数减小时钟周期数第25页/共51页临界路径长度临界路径长度(Critical Path)(Critical Path) 在数字系统中,临界路径长度决定了系统的工作速度。临界路径是指从系统输在数字系统中,临界路径长度决定了系统的工作速度。临界路径是指从系统输入到系统输出的各条路径中信号通过时间最长的那一条路径。该路径长度将决定系入到系统输出的各条路径中信号通过时间最长的那一条路径。该路径长度将决定系统的最高工作速度。统的最高工作速度。SIGNAL aRegSIGNAL aReg

17、:INTEGER RANGE 0 TO (2INTEGER RANGE 0 TO (2* * *31-1)31-1);SIGNAL bRegSIGNAL bReg:INTEGER RANGE 0 TO (2INTEGER RANGE 0 TO (2* * *31-1)31-1);SIGNAL cRegSIGNAL cReg:INTEGER RANGE 0 TO (2INTEGER RANGE 0 TO (2* * *31-1)31-1);TYPE STATENAME IS (S0TYPE STATENAME IS (S0、S1S1、S2)S2);SIGNAL stateRegSIGNAL st

18、ateReg:STATENAMESTATENAME; 第26页/共51页BEGINPROCESS (clk)BEGINIF(clk EVENT AND clk=1) THEN CASE stateReg ISWHEN S0=aReg=in0;bReg=in1;cReg=in2;stateRegaReg=aReg* (bReg*cReg);临界路径bReg=bReg;cReg=cReg;stateRegaReg=aReg*2;bReg=bReg;cReg=cReg;stateReg=S0;END CASE;END IF;END PROCESS; 第27页/共51页 可以看出,可以看出,aReg=

19、aRegaRegaReg=in0;bReg=in1;cReg=in2;stateReg aReg=aReg*bReg;bReg= bReg; cReg=cReg;stateReg=S2;WHEN S2 aReg=aReg*(cReg*2);bReg= bReg;cReg=cReg;stateReg=S0;END CASE;END IF;END PROCESS; 第32页/共51页增加状态数或寄存器数。增加处理的时钟周期(状态数)个数和寄存器数可以达到缩短临界路径长度的目的。S0AABCBB1CBCS1S2AA2BBCC(a)S0S0S1S2AABBBCCAACBB1CBCAA2BBCC(b)增

20、加状态减少临界路径长度的实例(a) 系统原状态图;(b) 添加状态后的状态图 第33页/共51页增加寄存器减小临界路径长度(a) 系统原状态图;(b) 增加寄存器后的状态图 S0AABCBA1CBCS1S2AA2BBCC(a)S0AABBA1CBCCCS1S2AAC2BBCC(b)第34页/共51页 2) 2) 改变临界路径上的处理顺序改变临界路径上的处理顺序 加法和乘法运算所需要的时间是不一样的,为了提高系统的速度,通常把运算加法和乘法运算所需要的时间是不一样的,为了提高系统的速度,通常把运算速度慢的计算放在运算树的短枝上。速度慢的计算放在运算树的短枝上。(ab)cde(b)cbaedcde

21、ab(ab)cde11ns6ns1ns(a)(a) (a) 加法运算加法运算1 ns1 ns,乘法运算,乘法运算5 ns5 ns情况下的数据流图;情况下的数据流图;(b) (b) 加法运算加法运算5 ns5 ns,乘法运算,乘法运算1 ns1 ns情况下为数据流图情况下为数据流图 第35页/共51页 3) 3) 提高各个运算器的速度提高各个运算器的速度 如果提高各运算器本身的速度,那么无论在任何情况下,都可以达到提高系统如果提高各运算器本身的速度,那么无论在任何情况下,都可以达到提高系统速度的目的。速度的目的。第36页/共51页4.2 4.2 缩小电路规模和降低功耗的方法缩小电路规模和降低功耗

22、的方法缩小电路规模的方法缩小电路规模的方法 缩小电路规模的最基本方法是在设计时尽可能缩小电路规模的最基本方法是在设计时尽可能共享资源共享资源。 1) 1) 共享组合电路的部件共享组合电路的部件 例如,在计算例如,在计算A+(BA+(BC)C)和和(B(BC)C)2 2时,时,(B(BC)C)是相同的,可以用一个电路来是相同的,可以用一个电路来实现。实现。 2) 2) 共享寄存器共享寄存器 要尽可能减少变量和信号量的设置,能共享的尽可能共享。假如,现有要尽可能减少变量和信号量的设置,能共享的尽可能共享。假如,现有100100个个3232位的冗余寄存器,那么就需要位的冗余寄存器,那么就需要3200

23、3200个触发器。个触发器。第37页/共51页 3) 3) 共享连线共享连线 连线也是一种资源。利用三态门使多个输出共享一条总线,这是共享总线的一连线也是一种资源。利用三态门使多个输出共享一条总线,这是共享总线的一种形式。种形式。 4) 4) 展开处理空间实现资源共享展开处理空间实现资源共享 对数据流图的处理顺序进行适当调整就可以缩小数据流图的规模。例如:对数据流图的处理顺序进行适当调整就可以缩小数据流图的规模。例如:改改变处理顺序缩小电路规模。变处理顺序缩小电路规模。ACADBCBDAAACADBCBD(a)ABCDAA(AB)(CD)(b)第38页/共51页 在在RTLRTL级上降低系统功

24、耗的方法级上降低系统功耗的方法 功耗是单片系统的一个很重要的指标,功耗愈低,系统的寿命、可靠性和体积功耗是单片系统的一个很重要的指标,功耗愈低,系统的寿命、可靠性和体积也愈低。也愈低。 1) 1) 缩小电路的规模缩小电路的规模 电路规模愈小,当然功耗也就愈小。前述的缩小电路规模的方法,对降低功耗电路规模愈小,当然功耗也就愈小。前述的缩小电路规模的方法,对降低功耗都有实际意义。都有实际意义。 第39页/共51页系统的基本电路结构系统的基本电路结构ABABABplusminusmultB选择器选择器127resetAnexta2) 2) 停止不必要的运算处理停止不必要的运算处理第40页/共51页&

25、amp;ABS0&ABS1&ABS2&BS31选择器127resetA (1) (1) 只允许必要的运算电路工作只允许必要的运算电路工作(2) (2) 寄存器的值没有必要改变时不要改变。寄存器的值没有必要改变时不要改变。第41页/共51页 3) 3) 减少竞争冒险的总量减少竞争冒险的总量 由于组合电路的信号在多条路径中传输延时不同,因而就会产生竞争冒险现象。由于组合电路的信号在多条路径中传输延时不同,因而就会产生竞争冒险现象。 在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一

26、致叫竞争。产生毛刺叫冒险。时间不一致叫竞争。产生毛刺叫冒险。 4) 4) 控制时钟控制时钟 降低时钟频率,用降低时钟频率,用“与门与门”控制某些工作单元,使其在不工作期间不提供时钟控制某些工作单元,使其在不工作期间不提供时钟等措施,降低系统的功耗。等措施,降低系统的功耗。 第42页/共51页系统误操作的成因及其消除办法 由于设计不当或存在的缺陷诱发的误操作大致有以下几种: (1) 冒险现象。冒险现象通常在信号发生变化时产生,其产生原因主要是输入信号经不同路径传输,而出现不同的延时所引起的。 (2) 不遵守既定的定时关系clkD破坏定时关系情况D建立时间保持时间DclkQclkQQ正常情况第43

27、页/共51页node1= aReg +bReg;node2= cReg +node1;node3= dReg +node2;node4= eReg +node3;node5= fReg +node4;nextA = gReg +node5; 第44页/共51页树型加法器连接的VHDL语言程序清单如下:node1= aReg +bReg;node2= cReg +dReg;node3= eReg +fReg;node4= node1 +node2;node5= node3 +gReg;nextA =node4+node5; 第45页/共51页ARCHITECTURE rtl OF state_8 IS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论