




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1问题探讨全成斌存在的问题nSignal vs variablen对LE认识n资源是有限的240个LEn状态机23硬件描述与软件不同之处n信号n硬件连线的抽象n连接电路中元件n并行语句n多个语句同时执行n对应于电路中的不同部分ab4FPGA的基本单元Out D Q Clock Select 触发器In1 In2 In3 LUT 组合逻辑块组合逻辑块5有限状态机设计 61 一般有限状态机1.1 类型定义语句TYPEnTYPE语句用法nTYPE 数据类型名 IS 数据类型定义 OF 基本数据类型 ;nTYPE 数据类型名 IS 数据类型定义 ;n举例1. TYPE st1 IS ARRAY ( 0
2、 TO 15 ) OF STD_LOGIC ;2. TYPE week IS (sun,mon,tue,wed,thu,fri,sat) ; n子类型Subtype是原数据类型的一个子集 Subtype 子类型名 Is 基本数据类型 Range 约束范围; Subtype Digits Is Integer Range 0 To 9 ; 7枚举数据类型n属于自定义数据类型n枚举数据类型常用于状态机描述type stats is (S0, S1, S2, S3); - 定义状态机的四个状态Signal current_state,next_state:stats81.2 为什么要使用状态机 1、
3、状态机克服了纯硬件数字系统顺序方式控制不灵活的缺点。、状态机克服了纯硬件数字系统顺序方式控制不灵活的缺点。2、状态机的结构相对简单,设计方案相对固定。、状态机的结构相对简单,设计方案相对固定。3、状态机容易构成性能良好的同步时序逻辑模块。、状态机容易构成性能良好的同步时序逻辑模块。4、状态机的、状态机的VHDL表述丰富多样、有其独到的好处。表述丰富多样、有其独到的好处。5、在高速运算和控制方面,状态机更有其巨大的优势。、在高速运算和控制方面,状态机更有其巨大的优势。6、高可靠性。、高可靠性。9状态机实例状态机实例 ADC0809采样状态机采样状态机10简单计算器状态机111.3 一般状态机的结
4、构 1. 说明部分说明部分 说明部分一般放在结构体的说明部分一般放在结构体的ARCHITECTURE 和和BEGIN之之间,例如:间,例如:ARCHITECTURE .IS TYPE FSM_ST IS (s0,s1,s2,s3); SIGNAL current_state, next_state: FSM_ST; . 一般用枚举数据类型描述状态机的状态;一般用枚举数据类型描述状态机的状态; 用一个信号存储当前状态。用一个信号存储当前状态。121.3 一般状态机的结构2. 主控时序进程主控时序进程 描述在时钟的驱动下,状态转换的进程描述在时钟的驱动下,状态转换的进程comb_outputsst
5、ate_inputsresetclkFSM:s_machineCOMnext_statecurrent_statePROCESSREGPROCESS图图1 一般状态机结构框图一般状态机结构框图 131.3 一般状态机的结构3. 主控组合进程主控组合进程n给出状态机输出给出状态机输出n确定下一状态的走向确定下一状态的走向4. 辅助进程辅助进程 辅助状态机工作的进程,比如数据锁存辅助状态机工作的进程,比如数据锁存14【例例1】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY s_machine IS PORT ( clk,reset : IN STD_
6、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 (
7、reset,clk) -主控时序进程主控时序进程 BEGIN IF reset = 1 THEN current_state = s0;-检测异步复位信号检测异步复位信号 ELSIF clk=1 AND clkEVENT THEN current_state comb_outputs= 5; IF state_inputs = 00 THEN next_state=s0; ELSE next_state comb_outputs= 8; IF state_inputs = 00 THEN next_state=s1; ELSE next_state comb_outputs= 12; IF s
8、tate_inputs = 11 THEN next_state = s0; ELSE next_state comb_outputs = 14; IF state_inputs = 11 THEN next_state = s3; ELSE next_state = s0; END IF; END case; END PROCESS; END behv; 16两种状态机nMoore型状态机n输出信号仅与当前状态有关nMealy型状态机n输出信号由当前状态与输入共同决定。172 Moore2 Moore状态机设计状态机设计 2.1 MooreMoore状态机设计状态机设计 图图2 ADC080
9、9工作时序工作时序 182 Moore2 Moore状态机设计状态机设计 2.1 MooreMoore状态机设计状态机设计 图图3 控制控制ADC0809采样状态图采样状态图 【例例2】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_LOGIC; -转换状态指示,低电平表示正在转换转换状态指示,低电平表
10、示正在转换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 AD
11、CINT 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; - 转换后数据输出锁存时钟信号转换后数据输出锁存时钟信号 接下页接下页20BEGINADDA = 1;-当当ADDA=0,模拟信号进入通道,模拟信号进入通道IN0;当;当ADDA=1,则进入通道,则进入通道IN1Q = REGL;
12、 LOCK0 ALE=0;START=0;LOCK=0;OE=0; next_state ALE=1;START=1;LOCK=0;OE=0; next_state ALE=0;START=0;LOCK=0;OE=0; IF (EOC=1) THEN next_state = st3; -EOC=1表明转换结束表明转换结束 ELSE next_state ALE=0;START=0;LOCK=0;OE=1; next_state ALE=0;START=0;LOCK=1;OE=1; next_state next_state = st0; END CASE ; END PROCESS COM
13、; 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 REGL = D ; END IF; END PROCESS LATCH1 ;
14、 END behav; 212 Moore2 Moore状态机设计状态机设计 2.1 MooreMoore状态机设计状态机设计 图图4 ADC0809采样状态机工作时序采样状态机工作时序 【例例4】 Mealy状态机设计状态机设计 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
15、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 IF DATAIN = 1 THEN STX IF DATAIN = 0 THEN STX IF DATAIN = 1 THEN STX STX IF DATAIN = 1 THEN Q = 10000 ; ELSE Q IF D
16、ATAIN = 0 THEN Q = 10111 ; ELSE Q IF DATAIN = 1 THEN Q = 10101 ; ELSE Q IF DATAIN = 0 THEN Q = 11011 ; ELSE Q IF DATAIN = 1 THEN Q = 11101 ; ELSE Q Q=00000 ; END CASE ; END PROCESS COM1 ;END behav; 3 Mealy状态机设计状态机设计 233 Mealy3 Mealy状态机设计状态机设计 图图5 例例4状态机工作时序图状态机工作时序图 24【例例5】将将Q锁存后再输出,改善毛刺现象。锁存后再输出,改善
17、毛刺现象。LIBRARY IEEE; -MEALY FSMUSE IEEE.STD_LOGIC_1164.ALL;ENTITY MEALY2 IS PORT ( CLK ,DATAIN,RESET : IN STD_LOGIC; Q : OUT STD_LOGIC_VECTOR(4 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);
18、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 IF DATAIN=1 THEN Q2 :=10000; ELSE Q2:=01010; END IF; WHEN st1= IF DATAIN=0 THEN Q2 :=10111; ELSE Q2:=10100; END IF; WHEN st2= IF DATAIN=1 THEN Q2 :=10101; ELSE Q2:=10011; END IF; WHEN st3= IF DATAI
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学生地震安全知识
- 2025届云南昆明市黄冈实验学校高三二诊模拟考试化学试卷含解析
- 2025年工业用橡胶制品:胶管项目合作计划书
- 作文:小白兔课件
- 2025年酞菁颜料项目建议书
- 口腔科健康教育
- 浙江省杭州市西湖区杭州学军中学2025届高考化学三模试卷含解析
- 中考数学高频考点专项练习:专题15 考点34 与圆有关的位置关系 (3)及答案
- 贵州省长顺县二中2025年高三压轴卷化学试卷含解析
- 广告色彩设计课件
- 2025年护工考试试题及答案
- 2025届成都市2022级高中毕业班第二次诊断性检测语文试题及答案
- 2025届北京市第四中学顺义分校高三零模英语试题(原卷版+解析版)
- 全国第9个近视防控月活动总结
- 智能传感器研发-第1篇-深度研究
- 2025至2030年中国快速换模系统数据监测研究报告
- 2025年举办科普月的活动总结(3篇)
- 2025年高三语文上学期期末考试作文题目解析及范文:关于鸿沟的思考
- 2025年春新人教版化学九年级下册课件 第十一单元 化学与社会 课题1 化学与人体健康
- 【小学数学课件】搭积木课件
- 牛羊肉知识培训课件大全
评论
0/150
提交评论