EDA技术实用教程(第二版) 教学课件 ppt 作者 潘松 黄继业 第2版ppt 第7章_有限状态机设计与LPM应用

上传人:E**** 文档编号:89186494 上传时间:2019-05-20 格式:PPT 页数:105 大小:1.25MB
返回 下载 相关 举报
EDA技术实用教程(第二版) 教学课件 ppt 作者 潘松 黄继业 第2版ppt 第7章_有限状态机设计与LPM应用_第1页
第1页 / 共105页
EDA技术实用教程(第二版) 教学课件 ppt 作者 潘松 黄继业 第2版ppt 第7章_有限状态机设计与LPM应用_第2页
第2页 / 共105页
EDA技术实用教程(第二版) 教学课件 ppt 作者 潘松 黄继业 第2版ppt 第7章_有限状态机设计与LPM应用_第3页
第3页 / 共105页
EDA技术实用教程(第二版) 教学课件 ppt 作者 潘松 黄继业 第2版ppt 第7章_有限状态机设计与LPM应用_第4页
第4页 / 共105页
EDA技术实用教程(第二版) 教学课件 ppt 作者 潘松 黄继业 第2版ppt 第7章_有限状态机设计与LPM应用_第5页
第5页 / 共105页
点击查看更多>>
资源描述

《EDA技术实用教程(第二版) 教学课件 ppt 作者 潘松 黄继业 第2版ppt 第7章_有限状态机设计与LPM应用》由会员分享,可在线阅读,更多相关《EDA技术实用教程(第二版) 教学课件 ppt 作者 潘松 黄继业 第2版ppt 第7章_有限状态机设计与LPM应用(105页珍藏版)》请在金锄头文库上搜索。

1、第7章 有限状态机设计与LPM应用,EDA技术实用教程,7.1 一般有限状态机的设计,7.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) ;,7.1 一般有限状态机的设计,7.1.1 用户自定义数据类型定义语句,TYPE m_state IS ( st0,st1,

2、st2,st3,st4,st5 ) ; 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 ;,7.1 一般有限状态机的设计,7.1.1 用户自定义数据类型定义语句,子类型SUBTYPE的语句格式如下: SUBTYPE 子类型名 IS 基本数据类型 RANGE 约束范围;,SUBTYPE digits IS INTEGER RANGE 0 to

3、 9 ;,7.1.2 为什么要使用状态机,7.1 一般有限状态机的设计, 有限状态机克服了纯硬件数字系统顺序方式控制不灵活的缺点。, 状态机的结构模式相对简单。, 状态机容易构成性能良好的同步时序逻辑模块。, 状态机的VHDL表述丰富多样。, 在高速运算和控制方面,状态机更有其巨大的优势。, 就可靠性而言,状态机的优势也是十分明显的。,7.1.3 一般有限状态机的设计,7.1 一般有限状态机的设计,1. 说明部分,ARCHITECTURE .IS TYPE FSM_ST IS (s0,s1,s2,s3); SIGNAL current_state, next_state: FSM_ST; .,

4、7.1.3 一般有限状态机的设计,7.1 一般有限状态机的设计,2. 主控时序进程,图7-1 一般状态机结构框图工作示意图,3. 主控组合进程,7.1.3 一般有限状态机的设计,控组合进程的任务是根据外部输入的控制信号(包括来自状态机外部的信号和来自状态机内部其它非主控的组合或时序进程的信号),或(和)当前状态的状态值确定下一状态(next_state)的取向,即next_state的取值内容,以及确定对外输出或对内部其它组合或时序进程输出控制信号的内容。,7.1 一般有限状态机的设计,4. 辅助进程,【例7-1】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.A

5、LL; 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; BEGIN REG: PROCESS (reset,clk)

6、 BEGIN IF reset = 1 THEN current_state = s0; ELSIF clk=1 AND clkEVENT THEN current_state = next_state; END IF; END PROCESS; COM:PROCESS(current_state, state_Inputs),接下页,BEGIN CASE current_state IS WHEN s0 = comb_outputs comb_outputs comb_outputs comb_outputs = 14; IF state_inputs = “11“ THEN next_st

7、ate = s3; ELSE next_state = s0; END IF; END case; END PROCESS; END behv;,接上页,7.1.3 一般有限状态机的设计,7.1 一般有限状态机的设计,4. 辅助进程,图7-2 例7-1状态机的工作时序图,7.2.1 多进程有限状态机,7.2 Moore型有限状态机的设计,图7-3 ADC0809工作时序,7.2.1 多进程有限状态机,7.2 Moore型有限状态机的设计,图7-4 控制ADC0809采样状态图,7.2.1 多进程有限状态机,图7-5 采样状态机结构框图,【例7-2】 LIBRARY IEEE; LIBRARY

8、IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY ADCINT IS PORT (D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); CLK ,EOC : IN STD_LOGIC; ALE, START, OE, ADDA,LOCK0 : OUT STD_LOGIC; Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); END ADCINT; ARCHITECTURE behav OF ADCINT IS TYPE states IS (st0, st1, st2, st3,st4) ; -定义各状态子类型 SI

9、GNAL current_state, next_state: states :=st0 ; SIGNAL REGL : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL LOCK : STD_LOGIC; - 转换后数据输出锁存时钟信号 BEGIN ADDA = 1;-当ADDA=0,模拟信号进入0809通道0;当ADDA=1,则进入通道1 Q = REGL; LOCK0 = LOCK ; COM: PROCESS(current_state,EOC) BEGIN -规定各状态转换方式 接下页,7.2.1 三进程有限状态机,CASE current_state IS

10、WHEN st0=ALEALE 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 IF LOCK=1 AND LOCKEVENT THEN

11、REGL = D ; END IF; END PROCESS LATCH1 ; END behav;,7.2.1 多进程有限状态机,7.2 Moore型有限状态机的设计,图7-6 ADC0809采样状态机工作时序,【例7-3】 COM1: PROCESS(current_state,EOC) BEGIN CASE current_state IS WHEN st0= next_state next_state IF (EOC=1) THEN next_state next_state next_state next_state ALEALEALEALEALE ALE=0;START=0;LOC

12、K=0; END CASE ; END PROCESS COM2 ;,7.2.1 三进程有限状态机,7.2.2 单进程Moore型有限状态机,7.2 Moore型有限状态机的设计,【例7-4】 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 DOWNTO 0); END MOORE1; ARCHITECTURE behav OF

13、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 IF DATAIN =“10“ THEN C_ST IF DATAIN =“11“ THEN C_ST IF DATAIN =“01“ THEN C_ST = ST3 ; ELSE C_ST = ST0 ;END IF; Q = “1100“ ;,接上页 WHEN ST3 = IF DATAIN =“00“ THEN C_ST IF DAT

14、AIN =“11“ THEN C_ST C_ST = ST0; END CASE; END IF; END PROCESS; END behav;,7.2.2 单进程Moore型有限状态机,7.2 Moore型有限状态机的设计,图7-7 例7-4状态机综合后的RTL电路模块,7.2.2 单进程Moore型有限状态机,7.2 Moore型有限状态机的设计,图7-8 例7-4单进程状态机工作时序,7.2.2 单进程Moore型有限状态机,7.2 Moore型有限状态机的设计,图7-9 对应于例7-4的2进程状态机工作时序图,7.3 Mealy型有限状态机的设计,【例7-5】 LIBRARY IEE

15、E; 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; 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 TH

16、EN STX = ST0; ELSIF CLKEVENT AND CLK = 1 THEN CASE STX IS,接上页 WHEN st0 = 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 = st0; END CASE ; END IF; END PROCESS COMREG ; COM1: PROCESS(STX,DATAIN) BEGIN -输出控制信号的进程 CASE STX IS END behav;,接上页 WHEN st0 =

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

当前位置:首页 > 高等教育 > 大学课件

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