版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数字系统相关设计基础 数字系统相关设计基础 第第 13 章数字系统设计基础章数字系统设计基础 数字系统的设计模型数字系统的设计模型 数字系统的设计方法数字系统的设计方法 数字系统的设计准则数字系统的设计准则 数字系统的设计步骤数字系统的设计步骤 本章小结本章小结 数字系统设计举例数字系统设计举例 VHDLVHDL状态机状态机 数字系统相关设计基础 13.1数字系统的设计模型数字系统的设计模型 数字系统指的是交互式的、以离散形式表示的,数字系统指的是交互式的、以离散形式表示的, 具有存储、传输、信息处理能力的逻辑子系统的集具有存储、传输、信息处理能力的逻辑子系统的集 合。用于描述数字系统的模型有
2、多种,各种模型描合。用于描述数字系统的模型有多种,各种模型描 述数字系统的侧重点不同。图述数字系统的侧重点不同。图13.1介绍了一种普遍介绍了一种普遍 采用的模型。这种模型根据数字系统的定义,将整采用的模型。这种模型根据数字系统的定义,将整 个系统划分为两个模块或两个子系统:数据处理子个系统划分为两个模块或两个子系统:数据处理子 系统和控制子系统。系统和控制子系统。 数字系统相关设计基础 图13.1 数字系统的设计模型 控制子系统 外部控制系统 时钟控制与条件信号 数据输入数据输出 数据处理子系统 数字系统相关设计基础 数据处理子系统主要完成数据的采集、存储、运数据处理子系统主要完成数据的采集
3、、存储、运 算和传输。算和传输。 数据处理子系统主要由存储器、运算器、数据选数据处理子系统主要由存储器、运算器、数据选 择器等功能电路组成。择器等功能电路组成。 数据处理子系统与外界进行数据交换,在控制子数据处理子系统与外界进行数据交换,在控制子 系统系统( (或称控制器或称控制器) )发出的控制信号作用下,数据处理子发出的控制信号作用下,数据处理子 系统将进行数据的存储和运算等操作。系统将进行数据的存储和运算等操作。 控制子系统是执行数字系统算法的核心,具有记控制子系统是执行数字系统算法的核心,具有记 忆功能,因此控制子系统是时序系统。控制子系统由组忆功能,因此控制子系统是时序系统。控制子系
4、统由组 合逻辑电路和触发器组成,与数据处理子系统共用时钟。合逻辑电路和触发器组成,与数据处理子系统共用时钟。 数字系统相关设计基础 把数字系统划分为控制子系统和数据处理子系统两把数字系统划分为控制子系统和数据处理子系统两 个主要部分,使设计者面对的电路规模减小,二者可以个主要部分,使设计者面对的电路规模减小,二者可以 分别设计分别设计 ; 采采 用用 该该 模模 型型 的的 优优 点点 由于数字系统中控制子系统的逻辑关系比较复杂,由于数字系统中控制子系统的逻辑关系比较复杂, 将其独立划分出来后,可突出设计重点和分散设计难点;将其独立划分出来后,可突出设计重点和分散设计难点; 当数字系统划分为控
5、制子系统和数据处理子系统后,当数字系统划分为控制子系统和数据处理子系统后, 逻辑分工清楚,各自的任务。逻辑分工清楚,各自的任务。 数字系统相关设计基础 13.2数字系统的设计方法数字系统的设计方法 数字系统设计有多种方法,如模块设计法、自数字系统设计有多种方法,如模块设计法、自 顶向下设计法和自底向上设计法等。数字系统的设顶向下设计法和自底向上设计法等。数字系统的设 计一般采用自顶向下、由粗到细、逐步求精的方法。计一般采用自顶向下、由粗到细、逐步求精的方法。 数字系统相关设计基础 一、自底向上的设计方法一、自底向上的设计方法 传统的电子设计流程通常是自底向上的,即首传统的电子设计流程通常是自底
6、向上的,即首 先确定构成系统的最底层的电路模块或元件的结构先确定构成系统的最底层的电路模块或元件的结构 和功能,然后根据主系统的功能要求,将它们组合和功能,然后根据主系统的功能要求,将它们组合 成更大的功能块,使它们的结构和功能满足高层系成更大的功能块,使它们的结构和功能满足高层系 统的要求。以此流程,逐步向上递推,直至完成整统的要求。以此流程,逐步向上递推,直至完成整 个目标系统的设计。个目标系统的设计。 数字系统相关设计基础 系统测试与性能分析 完整系统 功能模块 基本元器件 缺点:缺点: 1、设计过程依赖现有的通、设计过程依赖现有的通 用元器件、手工及经验;用元器件、手工及经验; 2、设
7、计后期的仿真和调试、设计后期的仿真和调试 3、自下而上思想的局限性、自下而上思想的局限性 4、设计周期长、灵活性差、设计周期长、灵活性差、 效率低效率低 传统电路设计方法:传统电路设计方法: 自下而上(自下而上(Bottom-Up)的设计方法)的设计方法 数字系统相关设计基础 二、自顶向下的设计方法二、自顶向下的设计方法 将数字系统的整体逐步分解为各个子系统和模将数字系统的整体逐步分解为各个子系统和模 块,若子系统规模较大,则还需将子系统进一步分块,若子系统规模较大,则还需将子系统进一步分 解为更小的子系统和模快,层层分解,直至整个系解为更小的子系统和模快,层层分解,直至整个系 统中各个子系统
8、关系合理,并便于逻辑电路级的设统中各个子系统关系合理,并便于逻辑电路级的设 计和实现为止。自上而下设计中可逐层描述,逐层计和实现为止。自上而下设计中可逐层描述,逐层 仿真,保证满足系统指标。仿真,保证满足系统指标。 数字系统相关设计基础 自顶向下设计方法是一种模块化设计方法。对设计自顶向下设计方法是一种模块化设计方法。对设计 的描述从上到下逐步由粗略到详细,符合常规的逻辑思的描述从上到下逐步由粗略到详细,符合常规的逻辑思 维习惯;维习惯; 优优 点点 针对具体的设计,实施自顶向下的设计方法的形式针对具体的设计,实施自顶向下的设计方法的形式 会有所不同,但均需遵循以下两条原则:逐层分解功能会有所
9、不同,但均需遵循以下两条原则:逐层分解功能 和分层次进行设计。同时,应在各个设计层次上,考虑和分层次进行设计。同时,应在各个设计层次上,考虑 相应的仿真验证问题。相应的仿真验证问题。 适合多个设计者同时进行设计。随着技术的不断进适合多个设计者同时进行设计。随着技术的不断进 步,许多设计由一个设计者已无法完成,由多个设计者步,许多设计由一个设计者已无法完成,由多个设计者 分工协作完成一项设计的情况越来越多分工协作完成一项设计的情况越来越多; 数字系统相关设计基础 13.3数字系统的设计准则数字系统的设计准则 进行数字系统设计时,通常需要考虑多方面的进行数字系统设计时,通常需要考虑多方面的 条件和
10、要求,如设计的功能和性能要求,元器件的条件和要求,如设计的功能和性能要求,元器件的 资源分配和设计工具的可实现性,系统的开发费用资源分配和设计工具的可实现性,系统的开发费用 和成本等。虽然具体设计的条件和要求千差万别,和成本等。虽然具体设计的条件和要求千差万别, 实现的方法也各不相同,但数字系统设计还是具备实现的方法也各不相同,但数字系统设计还是具备 一些共同的方法和准则的。一些共同的方法和准则的。 数字系统相关设计基础 一、分割准则一、分割准则 自顶向下的设计方法或其他层次化的设计方法,自顶向下的设计方法或其他层次化的设计方法, 需要对系统功能进行分割,然后用逻辑语言进行描需要对系统功能进行
11、分割,然后用逻辑语言进行描 述。分割过程中,若分割过粗,则不易用逻辑语言述。分割过程中,若分割过粗,则不易用逻辑语言 表达;分割过细,则带来不必要的重复和繁琐。表达;分割过细,则带来不必要的重复和繁琐。 二、系统的可观测性二、系统的可观测性 在系统设计中,应该同时考虑功能检查和性能在系统设计中,应该同时考虑功能检查和性能 的测试,即系统观测性的问题。一些有经验的设计的测试,即系统观测性的问题。一些有经验的设计 者会自觉地在设计系统的同时设计观测电路,即观者会自觉地在设计系统的同时设计观测电路,即观 测器,指示系统内部的工作状态。测器,指示系统内部的工作状态。 数字系统相关设计基础 三、同步和异
12、步电路三、同步和异步电路 异步电路会造成较大延时和逻辑竞争,容易引异步电路会造成较大延时和逻辑竞争,容易引 起系统的不稳定,而同步电路则是按照统一的时钟起系统的不稳定,而同步电路则是按照统一的时钟 工作,稳定性好。因此,在设计时应尽可能采用同工作,稳定性好。因此,在设计时应尽可能采用同 步电路进行设计,避免使用异步电路。在必须使用步电路进行设计,避免使用异步电路。在必须使用 异步电路时,应采取措施来避免竞争和增加稳定性。异步电路时,应采取措施来避免竞争和增加稳定性。 四、最优化设计四、最优化设计 由于可编程器件的逻辑资源、连接资源和由于可编程器件的逻辑资源、连接资源和I/O资资 源有限,器件的
13、速度和性能也是有限的,用器件设源有限,器件的速度和性能也是有限的,用器件设 计系统的过程相当于求最优解的过程,因此,需要计系统的过程相当于求最优解的过程,因此,需要 给定两个约束条件:边界条件和最优化目标。给定两个约束条件:边界条件和最优化目标。 数字系统相关设计基础 五、系统设计的艺术五、系统设计的艺术 一个系统的设计,通常需要经过反复的修改、 一个系统的设计,通常需要经过反复的修改、 优化才能达到设计的要求。一个好的设计,应该满优化才能达到设计的要求。一个好的设计,应该满 足足“和谐和谐”的基本特征,对数字系统可以根据以下的基本特征,对数字系统可以根据以下 几点做出判断:设计是否总体上流畅
14、,无拖泥带水几点做出判断:设计是否总体上流畅,无拖泥带水 的感觉;资源分配、的感觉;资源分配、I/O分配是否合理,设计上和分配是否合理,设计上和 性能上是否有瓶颈,系统结构是否协调;是否具有性能上是否有瓶颈,系统结构是否协调;是否具有 良好的可观测性;是否易于修改和移植;器件的特良好的可观测性;是否易于修改和移植;器件的特 点是否能得到充分的发挥。点是否能得到充分的发挥。 数字系统相关设计基础 数字系统设计中的第一步是明确系统的任务。 数字系统设计中的第一步是明确系统的任务。 在设计任务书中,可用各种方式提出对整个数字系在设计任务书中,可用各种方式提出对整个数字系 统的逻辑要求,常用的方式有自
15、然语言、逻辑流程统的逻辑要求,常用的方式有自然语言、逻辑流程 图、时序图或几种方法的结合。当系统较大或逻辑图、时序图或几种方法的结合。当系统较大或逻辑 关系较复杂时,系统任务关系较复杂时,系统任务(逻辑要求逻辑要求)逻辑的表述和逻辑的表述和 理解都不是一件容易的工作。所以,分析系统的任理解都不是一件容易的工作。所以,分析系统的任 务必须细致、全面,不能有理解上的偏差和疏漏。务必须细致、全面,不能有理解上的偏差和疏漏。 一、系统任务分析一、系统任务分析 13.4数字系统的设计步骤数字系统的设计步骤 数字系统相关设计基础 二、确定逻辑算法二、确定逻辑算法 实现系统逻辑运算的方法称为逻辑算法,也简
16、实现系统逻辑运算的方法称为逻辑算法,也简 称为算法。一个数字系统的逻辑运算往往有多种算称为算法。一个数字系统的逻辑运算往往有多种算 法,设计者的任务不但是要找出各种算法,还必须法,设计者的任务不但是要找出各种算法,还必须 比较优劣,取长补短,从中确定最合理的一种。数比较优劣,取长补短,从中确定最合理的一种。数 字系统的算法是逻辑设计的基础,算法不同,则系字系统的算法是逻辑设计的基础,算法不同,则系 统的结构也不同,算法的合理与否直接影响系统结统的结构也不同,算法的合理与否直接影响系统结 构的合理性。确定算法是数字系统设计中最具创造构的合理性。确定算法是数字系统设计中最具创造 性的一环,也是最难
17、的一步。性的一环,也是最难的一步。 数字系统相关设计基础 三、建立系统及子系统模型三、建立系统及子系统模型 当算法明确后,应根据算法构造系统的硬件框 当算法明确后,应根据算法构造系统的硬件框 架架(也称为系统框图也称为系统框图),将系统划分为若干个部分,将系统划分为若干个部分, 各部分分别承担算法中不同的逻辑操作功能。如果各部分分别承担算法中不同的逻辑操作功能。如果 某一部分的规模仍嫌大,则需进一步划分。划分后某一部分的规模仍嫌大,则需进一步划分。划分后 的各个部分应逻辑功能清楚,规模大小合适,便于的各个部分应逻辑功能清楚,规模大小合适,便于 进行电路级的设计。进行电路级的设计。 数字系统相关
18、设计基础 四、系统(或模块)逻辑描述四、系统(或模块)逻辑描述 当系统中各个子系统 当系统中各个子系统(指最低层子系统指最低层子系统)和模块的和模块的 逻辑功能和结构确定后,则需采用比较规范的形式逻辑功能和结构确定后,则需采用比较规范的形式 来描述系统的逻辑功能。设计方案的描述方法可以来描述系统的逻辑功能。设计方案的描述方法可以 有多种,常用的有方框图、流程图和描述语言等。有多种,常用的有方框图、流程图和描述语言等。 对系统的逻辑描述可先采用较粗略的逻辑流程 对系统的逻辑描述可先采用较粗略的逻辑流程 图,再将逻辑流程图逐步细化为详细逻辑流程图,图,再将逻辑流程图逐步细化为详细逻辑流程图, 最后
19、将详细逻辑流程图表示成与硬件有对应关系的最后将详细逻辑流程图表示成与硬件有对应关系的 形式,为下一步的电路级设计提供依据。形式,为下一步的电路级设计提供依据。 数字系统相关设计基础 五、逻辑电路级设计及系统仿真五、逻辑电路级设计及系统仿真 电路级设计是指选择合理的器件和连接关系以 电路级设计是指选择合理的器件和连接关系以 实现系统逻辑要求。电路级设计的结果常采用两种实现系统逻辑要求。电路级设计的结果常采用两种 方式来表达:电路图方式和硬件描述语言方式。方式来表达:电路图方式和硬件描述语言方式。 EDA软件允许以这两种方式输入,以便作后续的处软件允许以这两种方式输入,以便作后续的处 理。理。 数
20、字系统相关设计基础 六、系统的物理实现六、系统的物理实现 物理实现是指用实际的器件实现数字系统的设 物理实现是指用实际的器件实现数字系统的设 计,用仪表测量设计的电路是否符合设计要求。现计,用仪表测量设计的电路是否符合设计要求。现 在的数字系统往往采用大规模和超大规模集成电路,在的数字系统往往采用大规模和超大规模集成电路, 由于器件集成度高、导线密集,故一般在电路设计由于器件集成度高、导线密集,故一般在电路设计 完成后即设计印刷电路板,在印刷电路板上组装电完成后即设计印刷电路板,在印刷电路板上组装电 路进行测试。需要注意的是,印刷电路板本身的物路进行测试。需要注意的是,印刷电路板本身的物 理特
21、性也会影响电路的逻辑关系。理特性也会影响电路的逻辑关系。 数字系统相关设计基础 13.5数字系统的设计举例数字系统的设计举例 【例例13.1】数字频率计的设计数字频率计的设计 1. 方案构思:方案构思: 8位十进制数字频率计可以由一个测频位十进制数字频率计可以由一个测频 控制信号发生器控制信号发生器TESTCTL、八个有时钟使、八个有时钟使 能的十进制计数器能的十进制计数器CNT10、一个、一个32位锁存位锁存 器器REG32B组成。组成。 数字系统相关设计基础 2. 顶层电路的设计及顶层电路的设计及VHDL实现:实现: 1) 顶层电路逻辑图顶层电路逻辑图 图13.2 8位十进制数字频率计逻辑
22、图 SD31.0 REG32B TESTCTL GND FSIN CLK DOUT31.0 SD31.28 SD27.24 SD23.20 SD19.16 SD15.12 SD11.8 SD7.4 SD3.0 DOUT31.0 DIN31.0 LOAD CLKCQ3.0 CARRY_OUT ENA CLR CNT10CNT10 CLKCQ3.0 CARRY_OUT ENA CLR CNT10CNT10 CLKCQ3.0 CARRY_OUT ENA CLR CNT10CNT10 CLKCQ3.0 CARRY_OUT ENA CLR CNT10 CNT10 CLKCQ3.0 CARRY_OUT E
23、NA CLR CNT10 CNT10 CLKCQ3.0 CARRY_OUT ENA CLR CLKCQ3.0 CARRY_OUT ENA CLR CNT10 CLKCQ3.0 CARRY_OUT ENA CLR LOAD CLR_CNT TSTEN RST CLK U0 U9 U2 U1 U3 U4U8 U7 U6 U5 SE SC SL S1 S2 S3 S4 S5 S6 S7 S8 数字系统相关设计基础 n2) 顶层的顶层的VHDL源程序源程序 nLIBRARY IEEE; nUSE IEEE.STD_LOGIC_1164.ALL; nENTITY FREQ IS n PORT(FSIN:
24、IN STD_LOGIC; n CLK:IN STD_LOGIC; n DOUT:OUT STD_LOGIC_VECTOR(31 DOWNTO 0); nEND ENTITY FREQ; nARCHITECTURE ART OF FREQ IS 数字系统相关设计基础 nCOMPONENT 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;
25、 nCOMPONENT REG32B IS n -待调用的32位锁存器端口定义 n nCOMPONENT TESTCTL IS n -待调用的测频控制信号发生器端口定义 数字系统相关设计基础 n nSIGNAL SE,SC,SL:STD_LOGIC; nSIGNAL S1,S2,S3,S4,S5,S6,S7,S7,S8: STD_LOGIC; nSIGNAL SD:STD_LOGIC_VECTOR(31 DOWNTO 0); nBEGIN nU0:TESTCTL PORT MAP(CLK=CLK,TSTEN=SE, CLR_CNT=SC,LOAD=SL); nU1:CNT10 PORT MAP
26、(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,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 DOWN
27、TO 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(LOAD=SL,DIN=SD(31 DOWNTO 0), DOUT=DOUT); nEND ARCHITECTURE ART; 数字系统相关设计基础 3. 次级模块电路的分析与设计:次级模块电路的分析与设计: 1) 32位
28、锁存器位锁存器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; 数字系统相关设计基础 nAR
29、CHITECTURE ART OF REG32B IS nBEGIN nPROCESS ( LOAD, DIN ) IS nBEGIN nIF LOAD EVENT AND LOAD= 1 THEN DOUT=DIN; -锁存输入数据 n END IF; nEND PROCESS; nEND ARCHITECTURE ART; 数字系统相关设计基础 3) 十进制计数器十进制计数器CNT10的设计的设计 n 此十进制计数器的特殊之处是,有 一时钟使能输入端ENA,用于锁定计数 值。当高电平时计数允许,低电平时计 数禁止。 数字系统相关设计基础 4) 十进制计数器十进制计数器CNT10的的VHDL
30、源程序源程序 nLIBRARY IEEE; nUSE IEEE.STD_LOGIC_1164.ALL; nENTITY CNT10 IS n PORT (CLK:IN STD_LOGIC;-计数时钟信号 n CLR:IN STD_LOGIC; -清零信号 n ENA:IN STD_LOGIC; -计数使能 信号 n CQ:OUT INTEGER RANGE 0 TO 15;-4 位计数结果输出 n CARRY_OUT:OUT STD_LOGIC); -计数进位 数字系统相关设计基础 nEND ENTITY CNT10; nARCHITECTURE ART OF CNT10 IS nSIGNAL
31、 CQI :INTEGER RANGE 0 TO 15; nBEGIN nPROCESS(CLK,CLR,ENA) IS nBEGIN nIF CLR= 1 THEN CQI= 0; -计数器异步清零 nELSIF CLKEVENT AND CLK= 1 THEN n IF ENA= 1 THEN 数字系统相关设计基础 n IF CQI9 THEN CQI=CQI+1; n ELSE CQI=0;END IF-等于9,则计数器清 零 n END IF; n END IF; n END PROCESS; n PROCESS (CQI) IS n BEGIN n IF CQI=9 THEN CAR
32、RY_OUT= 1;-进位输出 n ELSE CARRY_OUT= 0;END IF; n END PROCESS; n CQ=CQI; nEND ARCHITECTURE ART; 数字系统相关设计基础 4、 测频控制信号发生器设计测频控制信号发生器设计 频率测量的基本原理是计算每秒钟内待 测信号的脉冲个数。 测频控制信号发生器的工作时序如图 13.3所示。为了产生这个时序图,需首先建 立一个由D触发器构成的二分频器,在每次 时钟CLK上沿到来时其值翻转。 数字系统相关设计基础 图13.3 测频控制信号发生器工作时序 I RST I CLK O TSTEN O LOAD O CLR_CNT
33、数字系统相关设计基础 n测频控制信号发生器的源程序测频控制信号发生器的源程序 nLIBRARY IEEE; nUSE IEEE.STD_LOGIC_1164.ALL; nUSE IEEE.STD_LOGIC_UNSIGNED.ALL nENTITY TESTCTL IS n PORT (CLK:IN STD_LOGIC; -1 Hz测频控制时 钟 n TSTEN:OUT STD_LOGIC; -计数器时钟使 能 n CLR_CNT:OUT STD_LOGIC;-计数器清零 n LOAD:OUT STD_LOGIC); -输出锁存信号 数字系统相关设计基础 nEND ENTITY TESTCTL
34、; nARCHITECTURE ART OF TESTCTL IS nSIGNAL DIV2CLK :STD_LOGIC; nBEGIN nPROCESS ( CLK ) IS n BEGIN nIF CLKEVENT AND CLK= 1 THEN -1 HZ时 钟二分频 nDIV2CLK=NOT DIV2CLK; nEND IF ; 数字系统相关设计基础 nEND PROCESS; nPROCESS ( CLK,DIV2CLK ) IS nBEGIN n IF CLK= 0 AND DIV2CLK = 0 THEN n -产生计数器清零信号 n CLR_CNT= 1; n ELSE CLR
35、_CNT= 0 ; END IF; n END PROCESS; n LOAD=NOT DIV2CLK; TSTEN=DIV2CLK; nEND ARCHITECTURE ART; 数字系统相关设计基础 13.6VHDL状态机状态机 状态机克服了纯硬件数字系统顺序方式控制不灵活状态机克服了纯硬件数字系统顺序方式控制不灵活 的缺点;的缺点; 优优 势势 由于状态机的结构相对简单,设计方案相对固定,由于状态机的结构相对简单,设计方案相对固定, 容易构成性能良好的同步时序逻辑模块;容易构成性能良好的同步时序逻辑模块; 在高速运算和控制方面,状态机更有其巨大的优势;在高速运算和控制方面,状态机更有其巨
36、大的优势; 高可靠性。高可靠性。 与与VHDLVHDL的其他描述方式相比,状态机的的其他描述方式相比,状态机的VHDLVHDL表述丰表述丰 富多样、程序层次分明,结构清晰,易读易懂;在排错、富多样、程序层次分明,结构清晰,易读易懂;在排错、 修改和模块移植方面也有其独到的好处;修改和模块移植方面也有其独到的好处; 数字系统相关设计基础 一、状态机设计相关语句一、状态机设计相关语句 TYPE 数据类型名数据类型名 IS 数据类型定义数据类型定义 OF 基本数据类型基本数据类型 ; TYPE 数据类型名数据类型名 IS 数据类型定义数据类型定义 ; TYPE st1 IS ARRAY ( 0 TO
37、 15 ) OF STD_LOGIC ; TYPE week IS (sun,mon,tue,wed,thu,fri,sat) ; TYPE m_state IS ( st0,st1,st2,st3,st4,st5 ) ; SIGNAL present_state,next_state : m_state ; 1 1、 类型定义语句类型定义语句 数字系统相关设计基础 (1). 说明部分说明部分 ARCHITECTURE .IS TYPE FSM_ST IS (s0,s1,s2,s3); SIGNAL current_state, next_state: FSM_ST; . 2 2、 状态机结构
38、状态机结构 数字系统相关设计基础 (2). 主控时序进程主控时序进程 comb_outputs state_inputs reset clk FSM:s_machine COM next_state current_state PROCESS REG PROCESS 图图13.4 13.4 一般状态机结构框图一般状态机结构框图 2 2、 状态机结构状态机结构 数字系统相关设计基础 (3). 主控组合进程主控组合进程 (4). 辅助进程辅助进程 2 2、 状态机结构状态机结构 数字系统相关设计基础 【例例13.2】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.AL
39、L; ENTITY s_machine IS PORT ( clk,reset : IN STD_LOGIC; state_inputs : IN STD_LOGIC_VECTOR (0 TO 1); comb_outputs : OUT INTEGER RANGE 0 TO 15 ); END s_machine; ARCHITECTURE behv OF s_machine IS TYPE FSM_ST IS (s0, s1, s2, s3); -数据类型定义,状态符号化数据类型定义,状态符号化 SIGNAL current_state, next_state: FSM_ST;-将现态和次
40、态定义为新将现态和次态定义为新 的数据类型的数据类型 BEGIN REG: PROCESS (reset,clk) -主控时序进程主控时序进程 BEGIN IF reset = 1 THEN current_state = s0;-检测异步复位信号检测异步复位信号 ELSIF clk=1 AND clkEVENT THEN current_state comb_outputs= 5; IF state_inputs = 00 THEN next_state=s0; ELSE next_state comb_outputs= 8; IF state_inputs = 00 THEN next_s
41、tate=s1; ELSE next_state comb_outputs= 12; IF state_inputs = 11 THEN next_state = s0; ELSE next_state comb_outputs = 14; IF state_inputs = 11 THEN next_state = s3; ELSE next_state = s0; END IF; END case; END PROCESS; END behv; 数字系统相关设计基础 图图13.5 13.5 例例13.213.2状态机的工作时序状态机的工作时序 数字系统相关设计基础 3 3、 状态机类型状态
42、机类型 从状态机的信号输出方式上分,有从状态机的信号输出方式上分,有MooreMoore型和型和MealyMealy型型 两类状态机。两类状态机。 从输出时序上看,从输出时序上看,MealyMealy型属于异步输出状态机,其型属于异步输出状态机,其 输出是当前状态和所有输入信号的函数,它的输出是在输输出是当前状态和所有输入信号的函数,它的输出是在输 入变化后立即发生的,不依赖时钟的同步。入变化后立即发生的,不依赖时钟的同步。 MooreMoore型属于型属于 同步输出状态机,其输出仅为当前状态的函数,这类状态同步输出状态机,其输出仅为当前状态的函数,这类状态 机在输入发生变化时必须等待时钟的到
43、来,时钟使状态发机在输入发生变化时必须等待时钟的到来,时钟使状态发 生变化时才导致输出的变化。生变化时才导致输出的变化。 数字系统相关设计基础 图图13.613.6 ADC0809工作时序工作时序 二、二、Moore状态机状态机 1 1、 多进程状态机多进程状态机 数字系统相关设计基础 图图13.7 13.7 控制控制ADC0809采样状态图采样状态图 数字系统相关设计基础 5.2.1 5.2.1 多进程状态机多进程状态机 图图13.813.8 采样状态机结构框图采样状态机结构框图 数字系统相关设计基础 【例例13.313.3】 LIBRARY IEEE; USE IEEE.STD_LOGIC
44、_1164.ALL; ENTITY ADCINT IS PORT(D : IN STD_LOGIC_VECTOR(7 DOWNTO 0);-来自来自0809转换好的转换好的8位数据位数据 CLK : IN STD_LOGIC; -状态机工作时钟状态机工作时钟 EOC : IN STD_LOGIC; -转换状态指示,低电平表示正在转换转换状态指示,低电平表示正在转换 ALE : OUT STD_LOGIC; -8个模拟信号通道地址锁存信号个模拟信号通道地址锁存信号 START : OUT STD_LOGIC; -转换开始信号转换开始信号 OE : OUT STD_LOGIC; -数据输出数据输出
45、3态控制信号态控制信号 ADDA : OUT STD_LOGIC; -信号通道最低位控制信号信号通道最低位控制信号 LOCK0 : OUT STD_LOGIC; -观察数据锁存时钟观察数据锁存时钟 Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -8位数据输出位数据输出 END ADCINT; ARCHITECTURE behav OF ADCINT IS TYPE states IS (st0, st1, st2, st3,st4) ; -定义各状态子类型定义各状态子类型 SIGNAL current_state, next_state: states :=st0
46、 ; SIGNAL REGL : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL LOCK : STD_LOGIC; - 转换后数据输出锁存时钟信号转换后数据输出锁存时钟信号 BEGIN ADDA = 1;-当当ADDA=0,模拟信号进入通道,模拟信号进入通道IN0;当;当ADDA=1,则进入通道,则进入通道IN1 Q = REGL; LOCK0 ALE=0;START=0;LOCK=0;OE=0; next_state ALE=1;START=1;LOCK=0;OE=0; next_state ALE=0;START=0;LOCK=0;OE=0; IF (EOC=1
47、) THEN next_state = st3; -EOC=1表明转换结束表明转换结束 ELSE next_state ALE=0;START=0;LOCK=0;OE=1; next_state ALE=0;START=0;LOCK=1;OE=1;next_state next_state = st0; END CASE ; END PROCESS COM ; REG: PROCESS (CLK) BEGIN IF (CLKEVENT AND CLK=1) THEN current_state=next_state; END IF; END PROCESS REG ; - 由信号由信号curr
48、ent_state将当前状态值带出此进程将当前状态值带出此进程:REG LATCH1: PROCESS (LOCK) - 此进程中,在此进程中,在LOCK的上升沿,将转换好的数据锁入的上升沿,将转换好的数据锁入 BEGIN IF LOCK=1 AND LOCKEVENT THEN REGL next_state next_state IF (EOC=1) THEN next_state = st3; ELSE next_state next_state next_state next_state ALE=0;START=0;LOCK=0;OEALE=1;START=1;LOCK=0;OEALE
49、=0;START=0;LOCK=0;OEALE=0;START=0;LOCK=0;OEALE=0;START=0;LOCK=1;OE ALE=0;START=0;LOCK=0; END CASE ; END PROCESS COM2 ; 数字系统相关设计基础 【例例13.513.5】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY MOORE1 IS PORT (DATAIN :IN STD_LOGIC_VECTOR(1 DOWNTO 0); CLK,RST : IN STD_LOGIC; Q : OUT STD_LOGIC_VECTOR(3
50、 DOWNTO 0); END MOORE1; ARCHITECTURE behav OF MOORE1 IS TYPE ST_TYPE IS (ST0, ST1, ST2, ST3,ST4); SIGNAL C_ST : ST_TYPE ; BEGIN PROCESS(CLK,RST) BEGIN IF RST =1 THEN C_ST = ST0 ; Q IF DATAIN =10 THEN C_ST = ST1 ; ELSE C_ST = ST0 ; END IF; Q IF DATAIN =11 THEN C_ST = ST2 ; ELSE C_ST = ST1 ;END IF; Q
51、IF DATAIN =01 THEN C_ST = ST3 ; ELSE C_ST = ST0 ;END IF; Q IF DATAIN =00 THEN C_ST = ST4 ; ELSE C_ST = ST2 ;END IF; Q IF DATAIN =11 THEN C_ST = ST0 ; ELSE C_ST = ST3 ;END IF; Q C_ST = ST0; END CASE; END IF; END PROCESS; END behav; 数字系统相关设计基础 图图13.1013.10 例例13.5状态机综合后的部分主要状态机综合后的部分主要RTL电路模块(电路模块(Synp
52、lify综合)综合) 数字系统相关设计基础 图图13.1113.11 例例13.5单进程状态机工作时序单进程状态机工作时序 数字系统相关设计基础 图图13.1213.12 对应例对应例13.513.5的二进程状态机工作时序图的二进程状态机工作时序图 数字系统相关设计基础 【例例13.613.6】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY MEALY1 IS PORT ( CLK ,DATAIN,RESET : IN STD_LOGIC; Q : OUT STD_LOGIC_VECTOR(4 DOWNTO 0); END MEALY1;
53、ARCHITECTURE behav OF MEALY1 IS TYPE states IS (st0, st1, st2, st3,st4); SIGNAL STX : states ; BEGIN COMREG : PROCESS(CLK,RESET) BEGIN -决定转换状态的进程决定转换状态的进程 IF RESET =1 THEN STX IF DATAIN = 1 THEN STX IF DATAIN = 0 THEN STX IF DATAIN = 1 THEN STX IF DATAIN = 0 THEN STX IF DATAIN = 1 THEN STX STX IF DA
54、TAIN = 1 THEN Q = 10000 ; ELSE Q IF DATAIN = 0 THEN Q = 10111 ; ELSE Q IF DATAIN = 1 THEN Q = 10101 ; ELSE Q IF DATAIN = 0 THEN Q = 11011 ; ELSE Q IF DATAIN = 1 THEN Q = 11101 ; ELSE Q Q=00000 ; END CASE ; END PROCESS COM1 ; END behav; 数字系统相关设计基础 【例例13.713.7】 LIBRARY IEEE; -MEALY FSM USE IEEE.STD_LO
55、GIC_1164.ALL; ENTITY MEALY2 IS PORT ( CLK ,DATAIN,RESET : IN STD_LOGIC; Q : OUT STD_LOGIC_VECTOR(4 DOWNTO 0); END MEALY2; ARCHITECTURE behav OF MEALY2 IS TYPE states IS (st0, st1, st2, st3,st4); SIGNAL STX : states ; SIGNAL Q1 : STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN COMREG : PROCESS(CLK,RESET) -决定转换状态
56、的进程决定转换状态的进程 BEGIN IF RESET =1 THEN STX IF DATAIN = 1 THEN STX IF DATAIN = 0 THEN STX IF DATAIN = 1 THEN STX IF DATAIN = 0 THEN STX IF DATAIN = 1 THEN STX STX IF DATAIN=1 THEN Q2 :=10000; ELSE Q2:=01010; END IF; WHEN st1= IF DATAIN=0 THEN Q2 :=10111; ELSE Q2:=10100; END IF; WHEN st2= IF DATAIN=1 THE
57、N Q2 :=10101; ELSE Q2:=10011; END IF; WHEN st3= IF DATAIN=0 THEN Q2 :=11011; ELSE Q2:=01001; END IF; WHEN st4= IF DATAIN=1 THEN Q2 :=11101; ELSE Q2:=01101; END IF; WHEN OTHERS = Q2:=00000 ; END CASE ; IF CLKEVENT AND CLK = 1 THEN Q1=Q2; END IF; END PROCESS COM1 ; Q = Q1 ; END behav; 数字系统相关设计基础 图图13.
58、1313.13 例例13.6状态机工作时序图状态机工作时序图 数字系统相关设计基础 图图13.1413.14 例例13.7状态机工作时序图状态机工作时序图 数字系统相关设计基础 表表13.113.1 控制信号状态编码表控制信号状态编码表 状态状态 状状 态态 编编 码码 STARTALEOELOCKB功功 能能 说说 明明 ST0 00000初始态初始态 ST111000启动转换启动转换 ST200001若测得若测得EOC=1时,转下一状态时,转下一状态ST3 ST300100输出转换好的数据输出转换好的数据 ST400110利用利用LOCK的上升沿将转换好的数据锁存的上升沿将转换好的数据锁存
59、 四四 、状态编码、状态编码 1 1、 直接输出型编码直接输出型编码 数字系统相关设计基础 5.4 5.4 状态编码状态编码 5.4.1 5.4.1 直接输出型编码直接输出型编码 【例例13.8】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY AD0809 IS . PORT (D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); CLK ,EOC : IN STD_LOGIC; ALE, START, OE, ADDA : OUT STD_LOGIC; c_state : OUT STD_LOGIC_VECTOR(4 DOWNTO 0); Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); END AD0809; ARCHITECTURE behav OF AD0809 IS SIGNAL current_state, next_state: STD_LOGIC_VECTOR(4 DOWNTO 0 ); CONSTANT st0 : STD_LOGIC_VECTOR(4 DOWNTO 0) := 00000 ; CONSTANT st1 : STD_LOGIC_VECTOR(4 DOWNTO 0) := 11000 ; CONSTANT st2 : STD_LOGI
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版环保物流绿色包装运输合同规范3篇
- 二零二五版个人房产抵押贷款债权转让合同3篇
- 二零二五版财务会计岗位聘用合同9篇
- 二零二五版智能家居股份制合作合同范本3篇
- 二零二五年度钢结构工程钢筋加工与配送合同范本3篇
- 二零二五版工业4.0工厂生产承包服务合同模板3篇
- 二零二五年房产共有权份额转让产权买卖合同范本含份额调整方案3篇
- 二零二五版个人承包公司物流运输合作合同书6篇
- 二零二五版安徽省劳动合同解除争议调解服务合同2篇
- 二零二五年度能源股权转让居间服务合同范本2篇
- 大型活动联合承办协议
- 工程项目采购与供应链管理研究
- 2024年吉林高考语文试题及答案 (2) - 副本
- 拆除电缆线施工方案
- 搭竹架合同范本
- Neo4j介绍及实现原理
- 焊接材料-DIN-8555-标准
- 工程索赔真实案例范本
- 重症医学科运用PDCA循环降低ICU失禁性皮炎发生率品管圈QCC持续质量改进成果汇报
- 个人股权证明书
- 医院运送工作介绍
评论
0/150
提交评论