《第13章数字系统设计基础》由会员分享,可在线阅读,更多相关《第13章数字系统设计基础(89页珍藏版)》请在金锄头文库上搜索。
1、第13章 数字系统 设计基础第 13 章 数字系统设计基础数字系统的设计模型 数字系统的设计方法 数字系统的设计准则 数字系统的设计步骤本章小结数字系统设计举例 VHDL状态机13.1 数字系统的设计模型数字系统指的是交互式的、以离散形式表示的,具有存储、传输、信息处理能力的逻辑子系统的集 合。用于描述数字系统的模型有多种,各种模型描 述数字系统的侧重点不同。图13.1介绍了一种普遍采用的模型。这种模型根据数字系统的定义,将整 个系统划分为两个模块或两个子系统:数据处理子 系统和控制子系统。图13.1 数字系统的设计模型 数据处理子系统主要完成数据的采集、存储、运 算和传输。 数据处理子系统主
2、要由存储器、运算器、数据选 择器等功能电路组成。 数据处理子系统与外界进行数据交换,在控制子 系统(或称控制器)发出的控制信号作用下,数据处理子 系统将进行数据的存储和运算等操作。 控制子系统是执行数字系统算法的核心,具有记 忆功能,因此控制子系统是时序系统。控制子系统由组 合逻辑电路和触发器组成,与数据处理子系统共用时钟 。 把数字系统划分为控制子系统和数据处理子系统两个主要部分,使设计者面对的电路规模减小,二者可以分别设计 ;采 用 该 模 型 的 优 点 由于数字系统中控制子系统的逻辑关系比较复杂,将其独立划分出来后,可突出设计重点和分散设计难点; 当数字系统划分为控制子系统和数据处理子
3、系统后,逻辑分工清楚,各自的任务。 13.2 数字系统的设计方法数字系统设计有多种方法,如模块设计法、自顶向下设计法和自底向上设计法等。数字系统的设计一般采用自顶向下、由粗到细、逐步求精的方法。 一、自底向上的设计方法 传统的电子设计流程通常是自底向上的,即首先确定构成系统的最底层的电路模块或元件的结构和功能,然后根据主系统的功能要求,将它们组合成更大的功能块,使它们的结构和功能满足高层系统的要求。以此流程,逐步向上递推,直至完成整个目标系统的设计。 系统测试与性能分析完整系统功能模块基本元器件缺点:1、设计过程依赖现有的通 用元器件、手工及经验;2、设计后期的仿真和调试3、自下而上思想的局限
4、性4、设计周期长、灵活性差 、效率低传统电路设计方法:自下而上(Bottom-Up)的设计方法二、自顶向下的设计方法 将数字系统的整体逐步分解为各个子系统和模块,若子系统规模较大,则还需将子系统进一步分解为更小的子系统和模快,层层分解,直至整个系统中各个子系统关系合理,并便于逻辑电路级的设计和实现为止。自上而下设计中可逐层描述,逐层仿真,保证满足系统指标。 自顶向下设计方法是一种模块化设计方法。对设计的描述从上到下逐步由粗略到详细,符合常规的逻辑思维习惯;优点 针对具体的设计,实施自顶向下的设计方法的形式会有所不同,但均需遵循以下两条原则:逐层分解功能和分层次进行设计。同时,应在各个设计层次上
5、,考虑相应的仿真验证问题。 适合多个设计者同时进行设计。随着技术的不断进步,许多设计由一个设计者已无法完成,由多个设计者分工协作完成一项设计的情况越来越多;13.3 数字系统的设计准则进行数字系统设计时,通常需要考虑多方面的 条件和要求,如设计的功能和性能要求,元器件的 资源分配和设计工具的可实现性,系统的开发费用 和成本等。虽然具体设计的条件和要求千差万别, 实现的方法也各不相同,但数字系统设计还是具备 一些共同的方法和准则的。一、分割准则 自顶向下的设计方法或其他层次化的设计方法 ,需要对系统功能进行分割,然后用逻辑语言进行 描述。分割过程中,若分割过粗,则不易用逻辑语 言表达;分割过细,
6、则带来不必要的重复和繁琐。 二、系统的可观测性 在系统设计中,应该同时考虑功能检查和性能 的测试,即系统观测性的问题。一些有经验的设计 者会自觉地在设计系统的同时设计观测电路,即观 测器,指示系统内部的工作状态。三、同步和异步电路 异步电路会造成较大延时和逻辑竞争,容易引 起系统的不稳定,而同步电路则是按照统一的时钟 工作,稳定性好。因此,在设计时应尽可能采用同 步电路进行设计,避免使用异步电路。在必须使用 异步电路时,应采取措施来避免竞争和增加稳定性 。 四、最优化设计 由于可编程器件的逻辑资源、连接资源和I/O资 源有限,器件的速度和性能也是有限的,用器件设 计系统的过程相当于求最优解的过
7、程,因此,需要 给定两个约束条件:边界条件和最优化目标。 五、系统设计的艺术 一个系统的设计,通常需要经过反复的修改、 优化才能达到设计的要求。一个好的设计,应该满 足“和谐”的基本特征,对数字系统可以根据以下几点做出判断:设计是否总体上流畅,无拖泥带水的 感觉;资源分配、I/O分配是否合理,设计上和性能上是否有瓶颈,系统结构是否协调;是否具有良 好的可观测性;是否易于修改和移植;器件的特点 是否能得到充分的发挥。 数字系统设计中的第一步是明确系统的任务。在设计任务书中,可用各种方式提出对整个数字系统的逻辑要求,常用的方式有自然语言、逻辑流程图、时序图或几种方法的结合。当系统较大或逻辑关系较复
8、杂时,系统任务(逻辑要求)逻辑的表述和理解都不是一件容易的工作。所以,分析系统的任务必须细致、全面,不能有理解上的偏差和疏漏。 一、系统任务分析13.4 数字系统的设计步骤二、确定逻辑算法 实现系统逻辑运算的方法称为逻辑算法,也简称为算法。一个数字系统的逻辑运算往往有多种算法,设计者的任务不但是要找出各种算法,还必须比较优劣,取长补短,从中确定最合理的一种。数字系统的算法是逻辑设计的基础,算法不同,则系统的结构也不同,算法的合理与否直接影响系统结构的合理性。确定算法是数字系统设计中最具创造性的一环,也是最难的一步。三、建立系统及子系统模型 当算法明确后,应根据算法构造系统的硬件框架(也称为系统
9、框图),将系统划分为若干个部分,各部分分别承担算法中不同的逻辑操作功能。如果某一部分的规模仍嫌大,则需进一步划分。划分后的各个部分应逻辑功能清楚,规模大小合适,便于进行电路级的设计。四、系统(或模块)逻辑描述 当系统中各个子系统(指最低层子系统)和模块的 逻辑功能和结构确定后,则需采用比较规范的形式 来描述系统的逻辑功能。设计方案的描述方法可以 有多种,常用的有方框图、流程图和描述语言等。 对系统的逻辑描述可先采用较粗略的逻辑流程图,再将逻辑流程图逐步细化为详细逻辑流程图, 最后将详细逻辑流程图表示成与硬件有对应关系的 形式,为下一步的电路级设计提供依据。五、逻辑电路级设计及系统仿真 电路级设
10、计是指选择合理的器件和连接关系以实现系统逻辑要求。电路级设计的结果常采用两种方式来表达:电路图方式和硬件描述语言方式。EDA软件允许以这两种方式输入,以便作后续的处理。六、系统的物理实现 物理实现是指用实际的器件实现数字系统的设计,用仪表测量设计的电路是否符合设计要求。现在的数字系统往往采用大规模和超大规模集成电路,由于器件集成度高、导线密集,故一般在电路设计完成后即设计印刷电路板,在印刷电路板上组装电路进行测试。需要注意的是,印刷电路板本身的物理特性也会影响电路的逻辑关系。13.5 数字系统的设计举例【例13.1】数字频率计的设计1. 方案构思:8位十进制数字频率计可以由一个测频控制信号发生
11、器TESTCTL、八个有时钟使能的十进制计数器CNT10、一个32位锁存器REG32B组成。2. 顶层电路的设计及VHDL实现:1) 顶层电路逻辑图图13.2 8位十进制数字频率计逻辑图 n2) 顶层的VHDL源程序nLIBRARY IEEE;nUSE IEEE.STD_LOGIC_1164.ALL;nENTITY FREQ ISn PORT(FSIN:IN STD_LOGIC;n CLK:IN STD_LOGIC;n DOUT:OUT STD_LOGIC_VECTOR(31 DOWNTO 0);nEND ENTITY FREQ;nARCHITECTURE ART OF FREQ ISnCOM
12、PONENT CNT10 IS n -待调用的有时钟使能的十进制计数器端口定义n PORT(CLK,CLR,ENA:IN STD_LOGIC;n CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);n CARRY_OUT:OUT STD_LOGIC);nEND COMPONENT CNT10;nCOMPONENT REG32B ISn -待调用的32位锁存器端口定义n nCOMPONENT TESTCTL IS n -待调用的测频控制信号发生器端口定义n nSIGNAL SE,SC,SL:STD_LOGIC;nSIGNAL S1,S2,S3,S4,S5,S6,S7,S7,S
13、8:STD_LOGIC;nSIGNAL SD:STD_LOGIC_VECTOR(31 DOWNTO 0);nBEGINnU0:TESTCTL PORT MAP(CLK=CLK,TSTEN=SE, CLR_CNT=SC,LOAD=SL);nU1:CNT10 PORT MAP(CLK=FSIN,CLR=SC,ENA=SE,CQ=SD (3 DOWNTO 0),ARRY_OUT=S1); n -名字关联nU2:CNT10 PORT MAP(CLK=S1,CLR=SC,ENA=SE,CQ=SD (7 DOWNTO 4),CARRY_OUT=S2);nU3:CNT10 PORT MAP(S2,SC,SE
14、,SD (11 DOWNTO 8 ),S3);-位置关联nU4:CNT10 PORT MAP(S3,SC,SE,SD (15 DOWNTO 12),S4);nU5:CNT10 PORT MAP(S4,SC,SE,SD (19 DOWNTO 16),S5);nU6:CNT10 PORT MAP(S5,SC,SE,SD (23 DOWNTO 20),S6);nU7:CNT10 PORT MAP(S6,SC,SE,SD (27 DOWNTO 24),S7);nU8:CNT10 PORT MAP(S7,SC,SE,SD (31 DOWNTO 28),S8);nU9:REG32B PORT MAP(LO
15、AD=SL,DIN=SD(31 DOWNTO 0),DOUT=DOUT);nEND ARCHITECTURE ART;3. 次级模块电路的分析与设计:1) 32位锁存器REG32B的设计设置锁存器的好处是,显示的数据稳定,不会由于周期性的清零信号而不断闪烁。2) 32位锁存器的VHDL源程序nLIBRARY IEEE; nUSE IEEE.STD_LOGIC_1164.ALL;nENTITY REG32B IS n PORT(LOAD:IN STD_LOGIC;n DIN:IN STD_LOGIC_VECTOR(31 DOWNTO 0);n DOUT:OUT STD_LOGEC_VECTOR(31 DOWNTO 0);nEND ENTITY REG32B;nARCHITECTURE ART OF REG32B IS nBEGINnPROCESS ( LOAD, DIN ) ISnBEGINnIF LOAD EVENT AND LOAD= 1 THEN DOUT comb_outputs comb_outputs comb_outputs comb_outputs ALEALE ALE ALE ALE next_state next_state next_state IF (EO