VHDL语言第四讲

上传人:油条 文档编号:27542983 上传时间:2018-01-10 格式:PPT 页数:75 大小:1.42MB
返回 下载 相关 举报
VHDL语言第四讲_第1页
第1页 / 共75页
VHDL语言第四讲_第2页
第2页 / 共75页
VHDL语言第四讲_第3页
第3页 / 共75页
VHDL语言第四讲_第4页
第4页 / 共75页
VHDL语言第四讲_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《VHDL语言第四讲》由会员分享,可在线阅读,更多相关《VHDL语言第四讲(75页珍藏版)》请在金锄头文库上搜索。

1、数字电子技术实验教程,VHDL语言 第三讲 状态机设计,8.1 一般有限状态机设计,KX康芯科技,8.1.1 数据类型定义语句,TYPE语句的用法如下: TYPE 数据类型名 IS 数据类型定义 OF 基本数据类型 ;或 TYPE 数据类型名 IS 数据类型定义 ;,TYPE st1 IS ARRAY ( 0 TO 15 ) OF STD_LOGIC ;TYPE week IS (sun,mon,tue,wed,thu,fri,sat) ;,8.1 一般有限状态机设计,KX康芯科技,8.1.1 数据类型定义语句,TYPE m_state IS ( st0,st1,st2,st3,st4,st5

2、 ) ; SIGNAL present_state,next_state : m_state ;,TYPE BOOLEAN IS (FALSE,TRUE) ;,TYPE my_logic IS ( 1 ,Z ,U ,0 ) ; SIGNAL s1 : my_logic ; s1 = Z ;,SUBTYPE 子类型名 IS 基本数据类型 RANGE 约束范围;,SUBTYPE digits IS INTEGER RANGE 0 to 9 ;,8.1 一般有限状态机设计,KX康芯科技,8.1.2 为什么要使用状态机,8.1 一般有限状态机设计,KX康芯科技,8.1.3 一般有限状态机的设计,1.

3、说明部分,ARCHITECTURE .ISTYPE FSM_ST IS (s0,s1,s2,s3); SIGNAL current_state, next_state: FSM_ST; .,8.1 一般有限状态机设计,KX康芯科技,8.1.3 一般有限状态机的设计,2. 主控时序进程,图8-1 一般状态机结构框图,8.1 一般有限状态机设计,KX康芯科技,8.1.3 一般有限状态机的设计,3. 主控组合进程,4. 辅助进程,【例8-1】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY s_machine IS PORT ( clk,reset :

4、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;-将现态和次态定义为新的数据类型BEGIN REG: PROCESS (reset,clk) -主控时序进程 (接下页),K

5、X康芯科技,BEGIN IF reset = 1 THEN current_state comb_outputs comb_outputs comb_outputs comb_outputs = 14; IF state_inputs = 11 THEN next_state = s3; ELSE next_state = s0; END IF; END case; END PROCESS; END behv;,8.1 一般有限状态机设计,KX康芯科技,8.1.3 一般有限状态机的设计,图8-2a 例8-1状态机的工作时序,4. 辅助进程,8.1 一般有限状态机设计,KX康芯科技,8.1.3

6、一般有限状态机的设计,图8-2b 打开QuartusII状态图观察器,4. 辅助进程,8.1 一般有限状态机设计,KX康芯科技,8.1.3 一般有限状态机的设计,图8-2c 例8-1的状态图,4. 辅助进程,8.2 Moore型有限状态机设,KX康芯科技,8.2.1 多进程有限状态机,图8-3 ADC0809工作时序,8.2 Moore型有限状态机设,KX康芯科技,8.2.1 多进程有限状态机,图8-4 控制ADC0809采样状态图,KX康芯科技,8.2.1 多进程有限状态机,图8-5 采样状态机结构框图,KX康芯科技,【例8-2】LIBRARY IEEE;USE IEEE.STD_LOGIC

7、_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; -数据输出3态控制信号 ADDA : OUT STD_LOGIC; -信号通道最低位控制信号 LOCK0 : OUT S

8、TD_LOGIC; -观察数据锁存时钟 Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -8位数据输出END ADCINT;ARCHITECTURE behav OF ADCINT ISTYPE states IS (st0, st1, st2, st3,st4) ; -定义各状态子类型 SIGNAL current_state, next_state: states :=st0 ; SIGNAL REGL : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL LOCK : STD_LOGIC; - 转换后数据输出锁存时钟信号 BEGIN A

9、DDA ALE=0;START=0;LOCK=0;OE=0; next_state ALE ALE ALE ALE 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 ;- 由信号current_state将当前状态值带出此进程:REG LATCH1: PROCESS (LOCK) - 此进程中,在LOCK的上升沿,将转换好的数据锁入 BEGIN

10、IF LOCK=1 AND LOCKEVENT THEN REGL next_state next_state IF (EOC=1) THEN next_state next_state next_state next_state ALEALEALEALEALE ALE=0;START=0;LOCK=0; END CASE ; END PROCESS COM2 ;,8.2 Moore型有限状态机设,KX康芯科技,8.2.1 多进程有限状态机,图8-6 ADC0809采样状态机工作时序,8.2 Moore型有限状态机设,KX康芯科技,8.2.2 单进程Moore型有限状态机,【例8-4】LIBR

11、ARY 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 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

12、IF RST =1 THEN C_ST = ST0 ; Q IF DATAIN =10 THEN C_ST IF DATAIN =11 THEN C_ST IF DATAIN =01 THEN C_ST IF DATAIN =00 THEN C_ST IF DATAIN =11 THEN C_ST C_ST = ST0; END CASE; END IF; END PROCESS;END behav;,8.2 Moore型有限状态机设,KX康芯科技,8.2.2 单进程Moore型有限状态机,图8-7 例8-4状态机综合后的部分主要RTL电路模块(Synplify综合),8.2 Moore型有限

13、状态机设,KX康芯科技,8.2.2 单进程Moore型有限状态机,图8-8 例8-4单进程状态机工作时序,8.2 Moore型有限状态机设,KX康芯科技,8.2.2 单进程Moore型有限状态机,图8-9 对应于例8-4的二进程状态机工作时序图,8.3 Mealy型有限状态机设计,KX康芯科技,【例8-5】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY MEALY1 ISPORT ( CLK ,DATAIN,RESET : IN STD_LOGIC; Q : OUT STD_LOGIC_VECTOR(4 DOWNTO 0);END MEALY1;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 = st2; END IF; (接下页),

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

当前位置:首页 > 行业资料 > 其它行业文档

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