第5章基本逻辑电路的VHDL设计_第1页
第5章基本逻辑电路的VHDL设计_第2页
第5章基本逻辑电路的VHDL设计_第3页
第5章基本逻辑电路的VHDL设计_第4页
第5章基本逻辑电路的VHDL设计_第5页
已阅读5页,还剩95页未读 继续免费阅读

下载本文档

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

文档简介

1、第第5章章 基本逻辑电路的基本逻辑电路的VHDL设计设计【学习目标【学习目标】 通过本章学习应掌握组合逻辑电路设计,主要有基本门电路、编码器、译码器、加法器、三态输出电路等组合逻辑电路设计技术;时序逻辑电路设计,主要有触发器、移位寄存器、计数器等时序逻辑电路设计技术;状态机基本概念、状态机设计流程、一般有限状态机的VHDL设计、Moore型有限状态机设计、Mealy型有限状态机设计、有限状态机的编码等。5.1 组合逻辑电路设计组合逻辑电路设计5.1.1 基本门电路设计基本门电路设计 1与非门电路与非门电路 与非门电路包括二输入与非门、三输入与非门、四输入与非门和多输入与非门等。下面介绍二输入与

2、非门电路的设计方法,其他的设计方法与二输入与非门的设计方法类似,在这里不作更多论述。二输入与非门电路的逻辑方程式为Y= ,逻辑真值表见表5.1,二输入与非门的电路符号如图5.1所示AB输入输出ABY001011101110表5.1 二输入与非门的真值表 图5.1 二输入与非门的电路符号 5.1 组合逻辑电路设计组合逻辑电路设计5.1.1 基本门电路设计基本门电路设计 1与非门电路与非门电路(1)VHDL设计方法二输入与非门电路的逻辑真值表见表5.1,二输入与非门的电路符号如图5.1所示。5.1.1 基本门电路设计基本门电路设计 1与非门电路与非门电路(1)VHDL设计方法【例【例5.1】二输入

3、与非门的VHDL描述方法一:LIBRARY ieee;USE ieee.STD_LOGIC_1164.ALL;ENTITY nand_2 ISPORT (a, b: IN STD_LOGIC; y: OUT STD_LOGIC);END;ARCHITECTURE one OF nand_2 ISBEGINy=a nand b;END;5.1 组合逻辑电路设计组合逻辑电路设计5.1.1 基本门电路设计基本门电路设计 1与非门电路与非门电路(1)VHDL设计方法【例【例5.2】二输入与非门的VHDL描述方法二:LIBRARY ieee;USE ieee.STD_LOGIC_1164.ALL;ENT

4、ITY nand_2 ISPORT (a, b: INSTD_LOGIC; y: OUTSTD_LOGIC);END;ARCHITECTURE one OF nand_2 ISSIGNAL ab: STD_LOGIC_VECTOR (1 DOWNTO 0);BEGINaby” 相当于THEN或于是 when 01=yyyy=null;end case;end process;end; 5.1 组合逻辑电路设计组合逻辑电路设计(a) 用nand实现的二输入 与非门的RTL电路(b)用 case语句实现的二输入 与非门的RTL电路图5.2 二输入与非门RTL电路 5.1 组合逻辑电路设计组合逻辑电

5、路设计5.1.1 基本门电路设计基本门电路设计 1与非门电路与非门电路(1)VHDL设计方法 二输入与非门的功能仿真结果如图5.3所示,观察波形可知,输入为a与b,输出为y,且其逻辑关系满足二输入与非门真值表的要求。 图5.3 二输入与非门的功能仿真图5.1 组合逻辑电路设计组合逻辑电路设计5.1.1 基本门电路设计基本门电路设计 1与非门电路与非门电路(2)仿真结果)仿真结果5.1.1 基本门电路设计基本门电路设计2 基本逻辑门电路的基本逻辑门电路的VHDL描述描述【例【例5.3】基本逻辑门电路的VHDL描述LIBRARY ieee;USE ieee.STD_LOGIC_1164.ALL;E

6、NTITY gate ISPORT (a, b: IN STD_LOGIC; y1,y2,y3,y4,y5,y6: OUT STD_LOGIC);END;ARCHITECTURE one OF gate IS BEGIN y1=a and b; -构成与门 y2=a or b; -构成或门 y3= not a ; -构成非门 y4=a nand b; -构成与非门 y5=a nor b; -构成异或门 y6yyyyyyyyy=000; end case; end process; end process; end;5.1 组合逻辑电路设计组合逻辑电路设计5.1.2 编码器设计编码器设计1. 8

7、线线-3线编码器的线编码器的VHDL描述描述 本例中,运用了case语句完成了编码器内部逻辑结构设计,其RTL电路图如图5.4所示。 图5.4 8线-3线编码器的RTL电路图 5.1 组合逻辑电路设计组合逻辑电路设计5.1.2 编码器设计编码器设计1. 8线线-3线编码器的线编码器的VHDL描述描述2. 8线线-3线编码器的功能仿真线编码器的功能仿真 8线-3线编码器的功能仿真结果如图5.5所示。图5.5 8线-3线编码器功能仿真波形图 5.1 组合逻辑电路设计组合逻辑电路设计5.1.2 编码器设计编码器设计5.1.3 译码器设计译码器设计 译码是编码的逆过程,它的功能是将具有特定含义的二进制

8、码进行辨别,并转换成控制信号。具有译码功能的逻辑电路称为译码器。5.1 组合逻辑电路设计组合逻辑电路设计5.1.3 译码器设计译码器设计1. 2线线- 4线译码器线译码器 2线-4线译码器的真值表见表5.3所示。 输入 输出 A1 A2Z3Z2Z1Z0000001010010100100111000表5.3 2线-4线译码器的真值表 5.1 组合逻辑电路设计组合逻辑电路设计(1)2线线-4线译码器的线译码器的VHDL设计设计library ieee; -【例【例5.5】 2线-4线译码器的VHDL代码use ieee.std_logic_1164.all;use ieee.std_logic_

9、unsigned.all;entity decode_24 isport (a: in std_logic_vector(1 downto 0); z: out std_logic_vector(3 downto 0);end ;architecture str of decode_24 isBeginwith a select z LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED NULL ; END CASE; END PROCESS; END;5.1 组合逻辑电路设计组合逻辑电路设计5.1.3 译码器设计译码器

10、设计 2. 7段数码显示译码器设计段数码显示译码器设计 例5.6中输出信号LED 的7位分别接数码管的7个段,高位在左,低位在右。例如当LED输出为“1101111”时,数码管的7个段:g、f、e、d、c、b、a分别接1、1、0、1、1、1、1;接有高电平的段点亮,低电平的段不亮,于是数码管显示“9”,其功能仿真如图5.8所示。图5.8 7段数码显示译码电路功能仿真波形 5.1 组合逻辑电路设计组合逻辑电路设计5.1.3 译码器设计译码器设计 2. 7段数码显示译码器设计段数码显示译码器设计5.1.4 加法器设计加法器设计1.四位二进制全加器的VHDL5.1 组合逻辑电路设计组合逻辑电路设计【

11、例【例5.7】 四位二进制全加器的VHDL描述 LIBRARY ieee; USE ieee.STD_LOGIC_1164.ALL; USE ieee.STD_LOGIC_unsigned.ALL; ENTITY adder_4bit IS PORT (a, b: IN STD_LOGIC_VECTOR(3 DOWNTO 0); ci: IN STD_LOGIC; s: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); co: OUT STD_LOGIC); END; ARCHITECTURE one OF adder_4bit IS SIGNAL temp: STD_LOG

12、IC_VECTOR (4 DOWNTO 0); BEGIN temp=(0&a)+b+ci; s=temp (3 downto 0); co=temp(4); END;图5.9 4位二进制全加器的RTL电路图 5.1 组合逻辑电路设计组合逻辑电路设计5.1.4 加法器设计加法器设计2 4位全加器的仿真结果仿真结果 例5.7中的4位全加器的功能仿真结果如图5-10所示,其时序仿真结果如图5-17所示。从波形中可以看出, 当a、b和ci取不同的值时,执行a+b+ci操作后,和数s与进位co均满足4位全加器的逻辑功能要求。5.10 4位二进制全加器的功能仿真结果 5.1 组合逻辑电路设计组合逻辑电路

13、设计5.1.4 加法器设计加法器设计5.1.5 三态门与双向缓冲电路设计三态门与双向缓冲电路设计 三态门,是指逻辑门的输出除有高、低电平两种状态外,还有第三种状态高阻状态的门电路,高阻态相当于隔断状态。三态门都有一个EN为控制使能端,来控制门电路的通断。具备这三种状态的器件就叫做三态(门、总线、.)。VHDL设计中,如果用STD_LOGIC数据类型的Z对一个变量赋值,即会引入三态门,并在使能信号的控制下可使其输出呈高阻态,这等效于使三态门禁止输出。 5.1 组合逻辑电路设计组合逻辑电路设计5.1.5 三态门与双向缓冲电路设计三态门与双向缓冲电路设计1三态门设计三态门设计 【例5.8】4位三态控

14、制门电路的VHDL描述LIBRARY ieee;USE ieee.STD_LOGIC_1164.ALL;USE ieee.STD_LOGIC_unsigned.ALL;ENTITY tri_gate IS PORT(en : IN STD_LOGIC; din: IN STD_LOGIC_VECTOR(3 DOWNTO 0); dout: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END;ARCHITECTURE one OF tri_gate IS BEGIN PROCESS (en ,din) BEGIN IF (en=1) then dout=din; else

15、dout=ZZZZ; end if; end process;END;5.1 组合逻辑电路设计组合逻辑电路设计图5.11 三态门电路的RTL电路5.1 组合逻辑电路设计组合逻辑电路设计5.1.5 三态门与双向缓冲电路设计三态门与双向缓冲电路设计1三态门设计三态门设计图5.12 三态门电路的功能仿真图 5.1 组合逻辑电路设计组合逻辑电路设计5.1.5 三态门与双向缓冲电路设计三态门与双向缓冲电路设计1三态门设计三态门设计2. 双向总线缓冲器双向总线缓冲器 双向总线缓冲器用于对数据总线的驱动和缓冲,典型双向总线缓冲电路图如图5.13所示。 一般双向总线缓冲器的模式为:两个数据端口a、 b,一个使

16、能端en,一个方向控制端dr。其操作行为真值表如表5.4所示。 5.1 组合逻辑电路设计组合逻辑电路设计5.1.5 三态门与双向缓冲电路设计三态门与双向缓冲电路设计2. 双向总线缓冲器双向总线缓冲器 ain=a; a=aout; 图5.13 双向总线驱动电路 如果A为输入端口,即ain=a时,aout应为“ZZZZZZZZ”EnDr功能00a=b01b=a1X高阻表5.4双向总线驱动电路真值表 5.1 组合逻辑电路设计组合逻辑电路设计5.1.5 三态门与双向缓冲电路设计三态门与双向缓冲电路设计2. 双向总线缓冲器双向总线缓冲器【例【例5.9】 双向总线缓冲器的VHDL描述library iee

17、e;use ieee.std_logic_1164.all;ENTITY DUB_GATE ISPORT (a,b: INOUT STD_LOGIC_VECTOR(7 DOWNTO 0);en: IN STD_LOGIC;dr: INOUT STD_LOGIC);END DUB_GATE;ARCHITECTURE a OF DUB_GATE ISSIGNAL abuf, bbuf: STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINP1: PROCESS (a, dr, en)BEGINif (en=0) and (dr=1) thenbbuf = a; -接下页5.1 组合

18、逻辑电路设计组合逻辑电路设计5.1.5 三态门与双向缓冲电路设计三态门与双向缓冲电路设计 else - 接上页 bbuf=ZZZZZZZZ;end if;b=bbuf; END PROCESS;P2: PROCESS (b,dr,en)BEGINif (en=0) and (dr=0) thenabuf = b;elseabuf=ZZZZZZZZ;end if;a=abuf;END PROCESS;END a;5.1 组合逻辑电路设计组合逻辑电路设计5.1.5 三态门与双向缓冲电路设计三态门与双向缓冲电路设计图5.14 双向总线缓冲器的RTL电路图5.1 组合逻辑电路设计组合逻辑电路设计5.1

19、.5 三态门与双向缓冲电路设计三态门与双向缓冲电路设计 双向总线缓冲器的RTL电路图如图5.14所示。5.2 时序逻辑电路设计时序逻辑电路设计5.2.1 触发器设计触发器设计 1.RS触发器设计触发器设计 RS触发器由两个与非门(或者或非门)的输入和输出交触发器由两个与非门(或者或非门)的输入和输出交叉连接而成,如图叉连接而成,如图5.15所示,所示, 真值表见表真值表见表5.5。 图5.15 RS触发器原理图 输入输出RSQQ非0001011010不变不变11不定不定表5.5 RS触发器真值表5.2.1 触发器设计触发器设计 1.RS触发器设计触发器设计【例5.10】 RS触发器的VHDL程

20、序代码 LIBRARY ieee;USE ieee.STD_LOGIC_1164.ALL;ENTITY RSFF IS PORT(R, S: IN STD_LOGIC; Q, QB: OUT STD_LOGIC);END;ARCHITECTURE one OF RSFF ISSIGNAL Q_TEMP,QB_TEMP: STD_LOGIC;BEGIN Q_TEMP=S NAND QB_TEMP; QB_TEMP=R NAND Q_TEMP; Q=Q_TEMP; QB=QB_TEMP;END; 5.2 时序逻辑电路设计时序逻辑电路设计BUF (CUT)SQQBnode1Q_TEMP0QB_TEM

21、P0R图5.16 RS触发器的RTL电路图5.17 RS触发器功能仿真波形图5.2 时序逻辑电路设计时序逻辑电路设计5.2.1 触发器设计触发器设计 1.RS触发器设计触发器设计5.2.1 触发器设计触发器设计 2. JK触发器设计触发器设计 JK触发器的状态方程是:Q_tmp=j +q_temp。用VHDL逻辑表达式对JK触发器进行描述。其真值表见表5.6所示。 输入输出jkq00保持01010111翻转表5.6 JK触发器真值表5.2 时序逻辑电路设计时序逻辑电路设计5.2.1 触发器设计触发器设计 【例5.11】 JK触发器VHDL程序library ieee;use ieee.std_

22、logic_1164.all;entity jkff1 is port (j, k, clk: in std_logic; q: out std_logic);end;architecture one of jkff1 is signal q_temp :std_logic;begin p1:processbegin wait until(clkevent and clk=1); q_temp=(j and (not q_temp) or (not k) and q_temp);end process; q=q_temp;end; 5.2 时序逻辑电路设计时序逻辑电路设计图5.18 JK触发器

23、的RTL电路图5.19 JK触发器的功能仿真图5.2 时序逻辑电路设计时序逻辑电路设计5.2.1 触发器设计触发器设计 2. JK触发器设计触发器设计 5.2.2 移位寄存器设计移位寄存器设计 移位寄存器是一个具有移位功能的寄存器,是指寄存器中所存的代码能够在移位脉冲的作用下依次左移或右移。既能左移又能右移的称为双向移位寄存器,只需要改变左、右移的控制信号便可实现双向移位要求。根据移位寄存器存取信息的方式不同分为:串入串出、串入并出、并入串出、并入并出四种形式。 5.2 时序逻辑电路设计时序逻辑电路设计5.2.2 移位寄存器设计移位寄存器设计【例5.12】8位右移移位寄存器的VHDL描述LIB

24、RARY ieee;USE ieee.STD_LOGIC_1164.ALL;ENTITY SHFRT IS PORT (CLK, LOAD: IN STD_LOGIC; DIN: IN STD_LOGIC_VECTOR (7 DOWNTO 0); QB: OUT STD_LOGIC);END;ARCHITECTURE ONE OF SHFRT ISBEGIN -接下页5.2 时序逻辑电路设计时序逻辑电路设计 PROCESS (CLK, LOAD) -接上页 VARIABLE REG8:STD_LOGIC_VECTOR (7 DOWNTO 0); BEGIN IF CLKEVENT AND CL

25、K=1 THEN IF LOAD=1 THEN REG8:=DIN; ELSE REG8 (6 DOWNTO 0):=REG8(7 DOWNTO 1); END IF; END IF; QB0); -计数器高电平复位 ELSIF CLKEVENT AND CLK=1 THEN IF EN=1 THEN -计数器控制端高电平有效 IF CQI0); END IF; END IF; END IF; IF CQI=15 THEN COUT=1; -计数满16产生一个进位 ELSE COUT=0; END IF; CQ0 THEN CQI: =CQI-1; ELSE CQI: =1111; END I

26、F; END IF; END IF; CQ=CQI; END PROCESS;END; 5.2 时序逻辑电路设计时序逻辑电路设计十六进制减法计数器的仿真结果如图5.24所示。图5.24 十六进制减法计数器功能仿真波形图 5.2 时序逻辑电路设计时序逻辑电路设计5.2.3计数器设计计数器设计 3.异步计数器设计异步计数器设计 异步计数器,它的下一位计数器的输出作为上一位计数器的时钟信号,这样一级一级串行连接起来就构成了一个异步计数器。 用VHDL语言描述异步逻辑电路时,由于一个时钟进程只能构成对应单一时钟信号的时序电路,如果在进程中需要构成多触发器时序电路,也只能产生对应某个单一时钟的同步时序逻

27、辑,异步时序逻辑一般采取多个时钟进程来构成。 5.2 时序逻辑电路设计时序逻辑电路设计5.2.3计数器设计计数器设计【例5.15】4个触发器构成的异步计数器的VHDL底层模块程序library ieee;use ieee.std_logic_1164.all;entity dffr isport (clk, clr, d:in std_logic; q, qb: out std_logic);end;architecture str of dffr issignal q_in:std_logic;Begin -接下页5.2 时序逻辑电路设计时序逻辑电路设计5.2.3计数器设计计数器设计qb=n

28、ot(q_in); -接上页q=q_in;process (clk) begin if (clr=1) then q_in=0; elsif (clkevent and clk=1) then q_in=d; end if;end process;end; 5.2 时序逻辑电路设计时序逻辑电路设计5.2.3计数器设计计数器设计图5.25 异步计数器的底层模块的RTL电路图 5.2 时序逻辑电路设计时序逻辑电路设计5.2.3计数器设计计数器设计【例5.16】 4个触发器构成的异步计数器的顶层VHDL描述library ieee;use ieee.std_logic_1164.all;entity

29、 rplcont isport(clk,clr:in std_logic; count:out std_logic_vector(3 downto 0);end;architecture str of rplcont issignal count_in_bar:std_logic_vector(4 downto 0);-接下页5.2 时序逻辑电路设计时序逻辑电路设计5.2.3计数器设计计数器设计component dffr is -接上页port(clk,clr,d:in std_logic; q,qb:out std_logic);end component;begin count_in_b

30、ar(0)count_in_bar(i), clr=clr,d=count_in_bar(i+1), q=count(i),qb=count_in_bar(i+1);end generate;end;5.2 时序逻辑电路设计时序逻辑电路设计5.2.3计数器设计计数器设计图5.26 4个触发器构成的异步计数器的RTL电路图5.2 时序逻辑电路设计时序逻辑电路设计5.2.3计数器设计计数器设计 5.3.1 状态机概述状态机概述1.什么是状态机什么是状态机 通俗地说,状态机就是事物存在状态的一种综合描述。 比如,一个单向路口的一盏红绿灯,它有“亮红灯”、“亮绿灯”和“亮黄灯”3种状态。在不同情况下,

31、3种状态可以互相转换。转换的条件可以是经过多少时间,比如经过30秒钟由“亮红灯”状态变为“亮绿灯”状态;也可以是特殊条件,比如有紧急事件,不论处于什么状态都将转变为“亮红灯”状态。而所谓的状态机,就是对这盏红绿灯3种状态的综合描述,说明任意两个状态之间的转变条件。 5.3 状态机的设计状态机的设计 状态机是由状态寄存器状态寄存器和组合逻辑电路组合逻辑电路构成的,能够根据控制信号按照预先设定的状态进行状态转移,是协调相关信号动作、完成特定操作的控制中心。 状态机可归纳为4个要素:即现态、条件、动作及次态即现态、条件、动作及次态。这样的归纳,主要是出于对状态机的内在因果关系的考虑。“现态”和“条件

32、”是因,“动作”和“次态”是果。 5.3 状态机的设计状态机的设计 5.3.1 状态机概述状态机概述1.什么是状态机什么是状态机 现态现态:是指当前所处的状态。条件:条件:又称为“事件”。当一个条件被满足,将会触发一个动作,或者执行一次状态的迁移。动作:动作:条件满足后执行的动作。动作执行完毕后,可以迁移到新的状态,也可以仍旧保持原状态。动作不是必需的,当条件满足后,也可以不执行任何动作,直接迁移到新状态。次态:次态:条件满足后要迁往的新状态。“次态”是相对于“现态”而言的,“次态”一旦被激活,就转变成新的“现态”了。 5.3 状态机的设计状态机的设计 5.3.1 状态机概述状态机概述1.什么

33、是状态机什么是状态机 根据时序输出信号产生机理的不同,状态机可以分成两类:摩尔摩尔(Moore)型型状态机和和米勒米勒(Mealy)型型状态机。 两种状态机的区别:两种状态机的区别: 前者的输出仅是当前状态的函数,后着的输出 是当前状态和输入信号的函数。 米勒型状态机输出的变化先于摩尔型。 5.3 状态机的设计状态机的设计 5.3.1 状态机概述状态机概述1.什么是状态机什么是状态机 所有的状态均可表达为CASE WHEN结构中的一条CASE语句,而状态的转移则通过IF_THEN_ELSE语句实现。 应用VHDL设计有限状态机的流程如图5.27所示。 5.3 状态机的设计状态机的设计 5.3.

34、1 状态机概述状态机概述2. 有限状态机的设计流程有限状态机的设计流程根据系统要求建立状态转移图根据状态转移图编写VHDL代码利用EDA工具进行仿真和验证 图5.27 VHDL设计有限状态机的流程图 (1)选择状态机类型(2)建立状态表或者画出状态图(3)根据状态表或状态图,构建状态机的VHDL模型(4)利用EDA工具进行仿真、验证 5.3 状态机的设计状态机的设计 5.3.1 状态机概述状态机概述2. 有限状态机的设计流程有限状态机的设计流程5.3.2 一般有限状态机的一般有限状态机的VHDL设计设计 一般和最常用的状态机通常包含: 说明部分 主控时序进程 主控组合进程 辅助进程几个部分5.

35、3 状态机的设计状态机的设计 1说明部分说明部分 使用TYPE语句定义新的数据类型,此数据类型为枚举型, 其元素通常都用状态机的状态名来定义; 状态变量(如现态和次态)应定义为信号,便于信 息传递; 并将状态变量的数据类型定义为含有既定状态元素的新定 义的数据类型; 说明部分一般放在结构体的ARCHITECTURE和BEGIN之 间。 5.3 状态机的设计状态机的设计 5.3.2 一般有限状态机的一般有限状态机的VHDL设计设计 2主控时序进程主控时序进程 主控时序进程是指负责状态机运转和在时钟驱动下负责状态 转换的进程; 状态机是随外部时钟信号、以同步时序方式工作的; 状态机向下一状态(包括

36、再次进入本状态)转换的实现仅仅取 决于时钟信号的到来。 5.3 状态机的设计状态机的设计 5.3.2 一般有限状态机的一般有限状态机的VHDL设计设计 3. 主控组合进程主控组合进程 主控组合进程的任务是根据外部输入的控制信号 (包括来自状态机外部的信号和来自状态机内部其他非主控的组合或时序进程的信号),或/和当前状态的状态值确定下一状态(next_state)的取向,即next_state的取值内容; 确定对外输出或对内部其他组合或时序进程输出控制信号的内容。5.3 状态机的设计状态机的设计 5.3.2 一般有限状态机的一般有限状态机的VHDL设计设计 5.3 状态机的设计状态机的设计4辅助

37、进程辅助进程 辅助进程用于配合状态机工作的组合进程或时序进程。例如为了完成某种算法的进程,或用于配合状态机工作的其他时序进程,或为了稳定输出设置的数据锁存器等。 5.3.2 一般有限状态机的一般有限状态机的VHDL设计设计 图5.28 一个状态机的结构框图5.3 状态机的设计状态机的设计 5.3.2 一般有限状态机的一般有限状态机的VHDL设计设计 【例5.17】一般有限状态机的VHDL设计,利用状态机设计方法输出一个方波信号。LIBRARY ieee;USE ieee.STD_LOGIC_1164.ALL;ENTITY A_EXAMPLE IS PORT (clk,reset:IN STD_

38、LOGIC; output:OUT STD_LOGIC);END;ARCHITECTURE ONE OF A_EXAMPLE IS TYPE STATE_TYPE IS(S0,S1,S2,S3); -状态机说明部分SIGNAL state: STATE_TYPE;BEGIN -接下页5.3 状态机的设计状态机的设计 5.3.2 一般有限状态机的一般有限状态机的VHDL设计设计 -接上页REG:PROCESS(clk,reset) -状态机主控时序进程 BEGIN IF reset=1 THEN state statestatestatestateoutputoutputoutputoutput

39、=0; END CASE;END PROCESS;END;5.3 状态机的设计状态机的设计 5.3.2 一般有限状态机的一般有限状态机的VHDL设计设计 clkresets0s10101outputoutput1output0resetstateclk图5.29 状态机设计输出一个方波信号的RTL电路 图5.30 利用一般状态机设计方法实现的方波信号5.3 状态机的设计状态机的设计 5.3.2 一般有限状态机的一般有限状态机的VHDL设计设计 5.3.3摩尔摩尔(Moore)型状态机设计型状态机设计 如图5.31所示是摩尔型状态机的结构图,图中的输出只与当前的状态有关,而与当前的输入信号无关。

40、 其状态图如图5.32所示,摩尔状态机的VHDL描述如例5.18所示。 图5.31 摩尔型状态机的结构图5.3 状态机的设计状态机的设计 图5.32 摩尔型状态机的状态图5.3 状态机的设计状态机的设计 5.3.3摩尔摩尔(Moore)型状态机设计型状态机设计 【例5.18】摩尔状态机的VHDL描述library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity moore_state isport(clk,x_in,rst:in std_lo

41、gic; key_en:out std_logic; y:out std_logic_vector(3 downto 0);end ;architecture str of moore_state istype state_type is (s1,s2,s3,s4);signal state:state_type;beginp1_state_p:process(clk,rst)Begin -接下页5.3 状态机的设计状态机的设计 5.3.3摩尔摩尔(Moore)型状态机设计型状态机设计 if rst=1 then state if x_in=0 then state if x_in=1 the

42、n state if x_in=0 then state if x_in=1 then statestatey=0001;key_eny=0010;key_eny=0100;key_eny=1000;key_ennull; end case;end process;end; 5.3 状态机的设计状态机的设计 5.3.3摩尔摩尔(Moore)型状态机设计型状态机设计 x_inclkresets1s2s3s4key_en0clkx_inrstkey_eny3.0state图5.33 摩尔型状态机的RTL电路图RTL电路图如图5.33所示,仿真波形如图5.34所示。5.3 状态机的设计状态机的设计 5.3.3摩尔摩尔(Moore)型状态机设计型状态机设计 图5.34 摩尔型状态机的仿真波形5.3.4 米勒米勒(Mealy)型状态机设计型状态机设计 如图5.35所示是米勒型状态机的结构图,图中的输出不仅与当前状态有关,还与当前输入信号有关。米勒型状态机的状态图如图5.36所示。 图5.35 米勒型状态机的结构图5.3 状态机的设计状态机的设计 图5.36

温馨提示

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

评论

0/150

提交评论