




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、EDA技术,主讲:牛军浩,第八章 有限状态机设计技术,8.1 状态机的一般形式 8.2 Moore型状态机及其设计 8.3 Mealy型状态机设计 8.4 状态机图形编辑设计 8.5 不同编码类型状态机 8.6 安全状态机设计 8.7 硬件数字技术排除毛刺,教学目的,有限状态机是实现高效率、高可靠和高速控制逻辑系统的重要途径。主要应用于那些操作和控制流程非常明确的系统设计,如数字通信、自动化控制、家电设计领域。,8.1 状态机的一般形式,就理论而言,任何时序模型都可以归结为一个状态机; 用HDL语言可以设计不同表达方式和不同功能的状态机,且多数状态机都有相对固定的语句和程序表达方式; 把握这些
2、固定的语句表达部分,就能根据实际需要写出各种不同风格和不同目的的状态机。,1. 状态机特点和优势,(1)高效的顺序控制模型 (2)容易利用现有的EDA工具进行优化设计 (3)系统性能稳定,性能良好的同步时序逻辑模块 (4)设计实现效率高 (5)高速性能 (6)高可靠性能,8.1 状态机的一般形式,2. 状态机的分类,(1)从信号输出方式上分:Mealy型和Moore型 (2)从描述结构上分:单过程状态机和多过程状态机 (3)从状态表达方式上分:有符号化和确定状态编码 (4)从编码方式上分:有顺序编码、一位热码或其他,8.1 状态机的一般形式,3. 状态机的结构,(1)说明部分 使用TYPE语句
3、定义新的数据类型,此数据类型为枚举型,其元素通常用状态机的状态名定义。一般放在ARCHITECTURE和BEGIN之间。,8.1 状态机的一般形式,ARCHITECTURE .IS TYPE FSM_ST IS (s0,s1,s2,s3); SIGNAL current_state, next_state: FSM_ST; .,3. 状态机的结构,(2)主控时序进程 负责状态机的运转和在时钟驱动下进行状态转换的进 程状态机是随外部时钟信号,以同步时序方式工作的。 状态机的变化是由始终CLK的跳变决定的,如上升沿 或下降沿,当有效沿到来时,状态机才会向下一个状态跳变。一般主控时序进程不负责下一状
4、态具体取值,如S0,S1,S2,S3中的某一状态,当有效沿到来,时序进程只是机械地将代表次态的信号Next State中的内容送入现态的信号Current State中,而Next State内容完全由其他进程决定。,8.1 状态机的一般形式,3. 状态机的结构,8.1 状态机的一般形式,一般状态机结构框图,3. 状态机的结构,(3)主控组合进程 通过信号Current_Steta中的状态值,进入相应的状态,并在此状态中根据外部信号指令,如stata_inputs等向内或外发出控制信号,如comb_outputs,同时确定下一个状态的走向,也就是向next_state中附入相应的状态值。此状态
5、值通过next_state传给REG时序进程,直到下一个时钟到来再进入另一次的状态转换周期。,8.1 状态机的一般形式,3. 状态机的结构,(4)辅助进程 用于配合状态机工作的组合进程或时序进程。比如: 为完成某种算法的进程、配合状态机工作的其它时序进程、为稳定输出设置的数据锁存器等等。,8.1 状态机的一般形式,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY FSM_EXP IS PORT ( clk,reset : IN STD_LOGIC; state_inputs : IN STD_LOGIC_VECTOR (1 DOWNTO 0);
6、 comb_outputs : OUT INTEGER RANGE 0 TO 15 ); END FSM_EXP; ARCHITECTURE behv OF FSM_EXP IS TYPE FSM_ST IS (s0, s1, s2, s3); -数据类型定义,状态符号化 SIGNAL current_state, next_state: FSM_ST; BEGIN REG: PROCESS (reset,clk) -主控时序进程 BEGIN IF reset = 1 THEN current_state = s0;-检测异步复位信号 ELSIF clk=1 AND clkEVENT THEN
7、 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_state = s3; ELSE next_state = s0; END IF; END case; END PROCESS; END behv;
8、,Mealy型状态机的输出时当前状态和所有输入信号的函数,不依赖时钟的同步。 Moore型状态机的输出仅为当前状态的函数,必须等待时钟变化才能输出。,8.2 Moore状态机,Moore状态机的应用实例-A/D采样控制器设计 一般传统方法用CPU或单片机完成,编程简单,控制 灵活,但是控制周期长、速度慢。尤其当A/D本身速度 比较快时,单片机或CPU的速度极大限制了A/D高速性 能的应用。以AD674为例: AD674采样周期约为20us,也就是从启动到完成将模 拟信号和转换为12位数字信号的时间。通常对于模拟信 号的采样必须至少一个周期,假设为采样50个点, AD674要用时20us50=1
9、ms。若应用单片机或CPU采样 以单片机为例,过程如下:AD674初始化;启动采样 等待约20us;读数命令;将转换好的12位数从AD674读 入单片机;存入外部RAM;外部RAM地址加1。,整个控制周期至少30条指令,每条指令平均2个时钟周 期,单片机CLK为12MHZ,一个机器周期为1us,每条 指令耗时2us,30条指令执行周期60us,再加上AD674 采样周期20us,一个采样周期计80us,50个周期4ms。 用单片机控制AD674这样速度并不高的AD器件尚且不 能满足,则对于更高速的如TL5540(40MHZ,0.025us) 就更加无能为力。 若使用状态机控制A/D采样,包括数
10、据存入RAM( FPGA内部RAM存储速率小于10ns),整个采样周期需要 4-5个状态完成,若CLK为100MHZ,从一个状态到另一 个状态的时间就是10ns,则一个采样周期约为50ns,远 小于单片机的采样周期。这就是状态机的优点。,5.2.1 多进程状态机,采样状态机结构框图,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY ADCINT IS PORT( D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); -来自0809转换好的8位数据 CLK : IN STD_LOGIC;-状态机工作时钟 EOC :IN STD
11、_LOGIC;-转换状态指示,低电平表示正在转换 ALE : OUT STD_LOGIC; -8个模拟信号通道地址锁存信号 START : OUT STD_LOGIC; -转换开始信号 OE : OUT STD_LOGIC; -数据输出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
12、 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 ADDA = 1;-当ADDA=0,模拟信号进入通道IN0;当 ADDA=1,则进入通道IN1 Q = REGL; LOCK0 = LOCK ; COM: PROCESS(current_state,EOC) BEGIN -规定各状态转
13、换方式 CASE current_state IS,(接下页),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的上升 沿,将转换好的
14、数据锁入 BEGIN IF LOCK=1 AND LOCKEVENT THEN REGL = D ; END IF; END PROCESS LATCH1 ; END behav;,图5-6 ADC0809采样状态机工作时序,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;LOCK
15、=0; END CASE ; END PROCESS COM2 ;,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; ARCHITECTURE behav OF MEALY1 IS TYPE states IS (st0, st1, st2, st3,st4); SIGNAL STX : states ; BEGIN COMREG : PROCE
16、SS(CLK,RESET) BEGIN,8.1 Mealy状态机,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 = st0; END CASE ; END IF; END PROCESS COMREG ; COM1: PROCESS(STX,DATAIN) BEGIN -输出控制信号的进程,CASE STX IS WHEN st0 = IF DATAIN = 1
17、THEN Q IF DATAIN = 0 THEN Q IF DATAIN = 1 THEN Q IF DATAIN = 0 THEN Q IF DATAIN = 1 THEN Q Q=00000 ; END CASE ; END PROCESS COM1 ; END behav;,例8-5状态机工作时序图,【例8-6】 LIBRARY IEEE; -MEALY FSM USE IEEE.STD_LOGIC_1164.ALL; ENTITY MEALY2 IS PORT ( CLK ,DATAIN,RESET : IN STD_LOGIC; Q : OUT STD_LOGIC_VECTOR(4
18、 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) -决定转换状态的进程,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 = st0; END CASE ; END IF; END PROCESS COMREG ; COM1: PROCESS(STX,DATAIN,CLK) -输出控制信号的进程 VARIABLE Q2 : STD_LOGIC_VECTOR(4 DOW
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生物化学(第4版)课件 第2章 核酸化学
- 气候变化所致小岛国损失损害补偿责任问题研究
- 基于STSE教育理念的初中化学金属和金属材料的教学实践研究
- 下雨天安全教育
- 关爱妇女心理健康:现状与行动指南
- 颈椎间盘的护理课件
- 爆炸安全知识培训
- 人事劳资培训
- 项目管理人员安全教育培训
- 项目介绍课件模版
- 三防专项方案
- 《结直肠癌的影像诊断》课件
- 伐木合同协议书范本
- 地舒单抗治疗骨质疏松症
- 民宿托管运营合同协议
- 2025年保密教育线上培训考试试题及答案
- 系统化停车场管理方案数据分析与智能优化停车流程
- 变电运维安全管理
- 25春国家开放大学《中央银行理论与实务》形考任务1-4参考答案
- 卫生法规练习题库(附答案)
- 2025年-上海市安全员《C证》考试题库
评论
0/150
提交评论