- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
VHDL的结构非常适合编写状态机,而且编写方式不唯一,电路的集成也会随着编写的方式而改变。状态机的设计主要用到casewhen和ifelse两种语句。Casewhen用来指定并行的行为,而ifthenelse用来设计优先度的编码逻辑。
分析状态机有如下特点:
对于状态的描述一般先声明一个枚举数据类型,语句如下:
Typestate_typeis(idle,tap1,tap2,tap3,tap4);
对于存储当前状态的对象一般用是一个信号,即:
Signalstate:state_type;
对于状态机的下一个状态的判断一般是通过对时钟上升沿判断的ifthenelse语句内嵌casewhen语句
对于状态机的输出则可以用一个条件或者选择信号声明语句,或者再用一个case语句来实现信号输出。
状态机分为三大类型:
Moore状态机:次态=f(现状),输出=f(现状),即输出信号是直接由状态寄存器译码得到
Mealy状态机:次态=f(现状,输入),输出=f(现状,输入),即以现时的输入信号结合即将变成次态的现状编码成信号输出。
混合型状态机
我们用一个序列信号发生器的实例来做练习。(状态机将在以后的很多实例中加以运用,请掌握其编写方法)
序列信号就是一些串行的周期性信号,这些信号在每个循环周期内1和0数码按一定的规则顺序排列。下面所讲解的序列发生器能够按规定输出8位’0’,’1’
代码如下:
逐行解释:
10:清零复位信号,高电平复位清零。
12:序列信号输出。因为是8位的端口,但序列信号是串行的,所以相当于有8路的序列信号,任取一位端口就是一个序列信号输出。
17:用type声明一种枚举类型。共8中状态,每个状态都对应唯一的一种输出,至于在什么状态输出什么信号则由程序决定。
18:定义一个state类型信号量,其初始的状态为s0。
19-26:用constant定义一些常量,这些常量将作为在不同状态时的输出信号。
32-34:清零复位时执行的动作。33,输出为value0,34,状态为s0。
35-65:用case语句实现状态的变换。在上升沿的驱动下,状态从s0-s1-s2-s3-s4-s5-s6-s7-s0循环。61-63,若状态机跑飞,及时将状态置为为s0,这样状态机就能恢复正常了。
其状态机转换图:
仿真波形图:
可任取seq_sig的一位作为序列信号的输出,如若选择seq_sig[7]作为序列信号输出,则为,若选择seq_sig[6作为序列信号输出,则为。
还可参考串口的发送模块uart_t,串口的接收模块uart_r和spi中的相关操作。
您可能关注的文档
最近下载
- 标准图集-12D101-5-110KV 及以下电缆敷设.pdf VIP
- 2024年家政服务员资格证考试(工作职责)试题库与答案.pdf VIP
- 专监委托授权书.docx
- 通用汽车GVDP全球整车开发流程原版.ppt
- 应达电炉安全操作规程.docx VIP
- 第一单元 5以内数的认识和加、减法 整理和复习 课件(共26张PPT)人教版(2024)数学一年级上册.pptx VIP
- 高考英语-必背800高频词汇汇总素材.pdf VIP
- 建筑工程材料检测取样标准.doc
- 2024年四川凉山州会东县考试招聘事业单位工作人员11人【综合基础知识500题】高频考点模拟试题及参考答案解析.docx
- 房建施工安全应急预案.doc
文档评论(0)