电子设计自动化-lzs-chaper7

上传人:woxinch****an2018 文档编号:56967962 上传时间:2018-10-17 格式:PPT 页数:69 大小:1.90MB
返回 下载 相关 举报
电子设计自动化-lzs-chaper7_第1页
第1页 / 共69页
电子设计自动化-lzs-chaper7_第2页
第2页 / 共69页
电子设计自动化-lzs-chaper7_第3页
第3页 / 共69页
电子设计自动化-lzs-chaper7_第4页
第4页 / 共69页
电子设计自动化-lzs-chaper7_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《电子设计自动化-lzs-chaper7》由会员分享,可在线阅读,更多相关《电子设计自动化-lzs-chaper7(69页珍藏版)》请在金锄头文库上搜索。

1、有限状态机设计,在数字电路系统中,有限状态机是一种十分重要的时序逻辑电路模块,它对数字系统的设计具有十分重要的作用。,根据有限状态机是否使用输入信号,经常将其划分为Moore型有限状态机和Mealy型有限状态机两种类型。,Moore型有限状态机,Moore型有限状态机的输出信号仅与当前状态有关,即可以把Moore型有限状态机的输出看成是当前状态的函数。,Moore型有限状态机结构框图,Mealy型有限状态机的输出信号不仅与当前状态有关,而且还与所有的输入信号有关,即可以把Mealy型有限状态机的输出看成是当前状态和所有输入信号的函数。,Mealy型有限状态机,Mealy型有限状态机结构框图,有

2、限状态机的描述方式,有限状态机的VHDL描述可以有多种不同的方式。一般来说,一个用来描述有限状态机功能的VHDL语音程序中应该包含以下几个内容:,至少包括一个状态信号,用来指定有限状态机的状态; 状态转移指定和输出指定,对应于控制单元中与每个控制步有关的转移条件; 时钟信号,一般用来进行同步; 同步或异步复位信号。,有限状态机的常见描述方式,一、设计任务,某工作过程有两个状态s0和s1。当发生复位时,过程处于s0。当控制信号input=1时,每来一个时钟clk的上升沿,状态转换一次;否则,保持s1状态不变。在s0时,电路输出0;在s1时,电路输出1。试设计该控制电路。,1 莫尔型状态机,二、算

3、法设计,用IF语句和CASE语句描述该设计。,三、VHDL源程序,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;,ENTITY statmach ISPORT(reset,clk,input:IN STD_LOGIC;y:OUT STD_LOGIC); END statmach; ARCHITECTURE beh OF statmach IS TYPE STATE_TYPE IS (s0,s1); SIGNAL state:STATE_TYPE; BEGINPROCESS(clk,reset)BEGINIF reset= 0 THENstatestateI

4、F input= 1 THENstate=s0;ELSEstate=s1;END IF;END CASE;END IF;END PROCESS;y= 1 WHEN state=s1 ELSE0;END beh;,2、在本设计中用到了自定义的枚举类型数据s0和s1,用以表示工作过程的两个状态。,四、程序说明,1、莫尔状态机的输出逻辑仅与当前的状态有关,而与输入变量无关,输入变量的作用只是与当前状态一起决定下一状态是什么。,一、设计任务,某一工作过程有四个状态s0、s1、s2、s3,控制输入信号为input,输出信号为y。在时钟clk作用下的状态转换关系如图所示。试设计该控制电路。,2 米利型状态

5、机,二、算法设计,用IF语句和CASE语句描述该设计。,三、VHDL源程序,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY statmach_4 ISPORT(clk,reset,input:IN STD_LOGIC;y:OUT INTEGER RANGE 0 TO 4); END statmach_4; ARCHITECTURE beh OF statmach_4 IS TYPE state_type IS (s0,s1,s2,s3); SIGNAL state:state_type; BEGIN,P1:PROCESS(clk,reset)

6、BEGINIF reset= 0 THENstateIF input= 1 THEN stateIF input= 1 THEN stateIF input= 1 THEN state=s3;ELSE stateIF input= 1 THEN stateIF input= 1 THEN y=0;ELSE yIF input= 1 THEN yIF input= 1 THEN y=2;ELSE yIF input= 1 THEN y=3;ELSE y=4;END IF;END CASE;END PROCESS; END beh;,四、程序说明,Mealy型状态机的输出逻辑不仅与当前状态有关,还

7、与当前的输入变量有关。输入变量的作用不仅是与当前状态一起决定下一状态是什么,还决定当前状态的输出逻辑。,Mealy型状态机仿真波形如下图所示。,数字系统设计实例,1、数字钟控制器,一、设计任务与要求,试设计一个显示时(2位)、分(2位)、秒(2位)的多功能电子钟。具体要求如下:1、具有时、分、秒计数显示功能,以24 小时循环计时;2、设计分频器产生1HZ的时钟源;3、LED动态显示时、分、秒;,二、相关知识,数字钟是计数器的一个典型应用,按钟表的工作原理,数字钟可分为如图几个部分:,1、脉冲电路功能:根据所提供的不同频率的脉冲源,设计不同的分频器,从而得到1Hz的时基脉冲和相应的扫描电路的脉冲

8、源。,2、计数电路功能:完成秒、分的60进制和时24进制计数器的设计,以及对分、时的调整和整点报时的设计。,3、显示电路:完成BCD码的译码和显示功能。,根据设计要求,采用DE2开发板实现硬件连接电路,该系统总共有2个输入:clk基准脉冲,采用DE2开发板内部的50M晶振时钟、res清零,采用拨码按键SW0控制,6个数码管HEX0-HEX5显示输出。,二、系统设计,下图为系统方块图。该系统共有5个模块组成,分别为分频器,产生1秒信号、秒计数器seccount、分计数器mincout、时计数器count24和LED显示译码器。其工作原理是,分频器输出信号同时加到秒、分、时的脉冲输入端,采用并行计

9、数的方式,秒的进位端接到分的使能端上,分的进位端接到时的使能端上,完成秒、分、时的循环计数,LED显示译码器完成计数器输出的BCD的译码。,秒显示,分显示,时显示,1、秒分频器模块,秒分频器是一个产生1秒信号的分频器,在输入时钟信号有效的情况下,将输入50MHZ的开发板内部时钟信号作为计数脉冲,输出1秒的时钟信号。相应的VHDL源程序如下。,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY sec_clk ISPORT(CLK_50: IN STD_LOGIC;clk_div1:

10、OUT STD_LOGIC);END ENTITY sec_clk;,ARCHITECTURE rtl OF sec_clk ISSIGNAL count: STD_LOGIC_VECTOR(25 DOWNTO 0);BEGINPROCESS(CLK_50)BEGINIF(CLK_50event AND CLK_50=1) THENIF(count(25)=1) THENcount0);ELSEcount=count+1;END IF;END IF;END PROCESS;clk_div18)THEN aout=“0000“;bout=“0000“; cout=1;,ELSEaout=aout

11、+1;END IF;ELSEIF(aout=9)THENaout=“0000“;bout=bout+1;ELSEaout=aout+1;cout=0;END IF;END IF;END IF;END IF;,END PROCESS;a=aout;b=bout;ca8)THEN,aout=“0000“;bout=“0000“;cout=1;ELSE aout=aout+1;END IF;ELSEIF(aout=9)THENaout=“0000“;bout=bout+1;ELSE aout=aout+1; cout=0;END IF;END IF;END IF;END IF;,END PROCES

12、S;a=aout;b=bout;ca=cout; END rtl;,4、时计数器模块,时计数器是一个24进制的BCD计数器,与秒、分计数器相似,分的进位信号是它的使能控制端,相应的VHDL源程序如下。,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; UE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY count24 ISPORT(en,res,clk:IN STD_LOGIC;ca:OUT STD_LOGIC;a,b:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END;,ARCHITECTURE rtl of count24 is SIGNAL aout,bout: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL cout: STD_LOGIC; BEGIN PROCESS(en,clk,res)BEGINIF(res=0)THENaout=“0000“;bout=“0000“;cout=0;ELSIF(clkEVENT AND clk=1)THEN,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 高中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号