VHDL学习:利用Quartus自带库3步快速完成状态机
2016-09-23 00:57
260 查看
Quartus自带库里面有各种编程语言的模板,供开发者参考。
初学者利用VHDL实现状态机比较生疏的情况下,可以调出该模板,适当修改即可。
本文将描述如何利用Quartus自带库调出状态机模板,并适当修改完成状态机。
=========================================================
step one
新建VHDL文档,右键选择Insert Template
step two
在列表中选择状态机,点击Insert。这里以Mearly型状态机为例
step three
修改具体代码。
生成的代码如下:
初学者利用VHDL实现状态机比较生疏的情况下,可以调出该模板,适当修改即可。
本文将描述如何利用Quartus自带库调出状态机模板,并适当修改完成状态机。
=========================================================
step one
新建VHDL文档,右键选择Insert Template
step two
在列表中选择状态机,点击Insert。这里以Mearly型状态机为例
step three
修改具体代码。
生成的代码如下:
library ieee; use ieee.std_logic_1164.all; -- 在这里修改器件名称/输入输出 entity four_state_mealy_state_machine is port ( clk : in std_logic; input : in std_logic; reset : in std_logic; output : out std_logic_vector(1 downto 0) ); end entity; architecture rtl of four_state_mealy_state_machine is -- 在这里修改状态名称 可以直接利用replace进行替换 type state_type is (s0, s1, s2, s3); signal state : state_type; begin -- 在clk的边沿跟新状态机的状态 -- 在这里修改跳转条件 process (clk, reset) begin if reset = '1' then state <= s0; elsif (rising_edge(clk)) then -- state为现在的状态,下面的list为现态分别为s0,s1,s2,s3跳转到其他状态的条件 case state is when s0=> -- 当现态为s0,跳转到其他状态的条件 -- 列出s0所有可能出现的状态转移,在这里用if语句描述即可 -- 其他状态类似 if input = '1' then state <= s1; else state <= s0; end if; ...... end case; end if; end process; -- 由于我们选的是Mearly型状态机,根据现态输出 -- 在这里修改不同的状态的输出 process (state, input) begin case state is -- 若现在状态为s0 且输入为1 则输出00 -- 这里可以修改为其他的条件,描述现态为s0时需要处理的内容 -- 其他状态类似 when s0=> if input = '1' then output <= "00"; else output <= "01"; end if; ...... end case; end process; end rtl;
相关文章推荐
- 利用Windows 7自带功能完成磁盘数据加密
- 我的OpenCV学习笔记(三):利用操作像素完成简单的图像处理:加入椒盐噪声、图像翻转、改变对比度、图像锐化
- 【iOS开发-68】APP下载案例:利用tableView自带的cell布局+缓存池cell复用时注意按钮状态的检查
- 三、快速学习创建版本库、管理修改、查看状态、分支、标签、变基、克隆远程版本库
- 如何利用业余时间快速完成私单
- 利用 vimtutor 快速学习 gvim
- web前端学习笔记---利用css+filter完成简单的图片透明效果
- 树莓派学习笔记(4):利用yeelink实现在线硬件状态监控
- [JAVA语言学习][小技巧]利用Batch批处理脚本实现控制台快速编译执行JAVA程序
- 【提高学习效率】☞(利用 批处理 快速实现 WIN+R 打开软件)
- 利用python自带的包, 快速建立一个web服务器
- 利用 nagios 自带的插件来监控 mysql 的主从同步状态 (监控多实例)
- 利用ELMAH和Sqlite快速完成错误日志的捕获和存储
- 利用ComboBox自带属性完成自动补全功能
- 【学习笔记】WIN7系统下利用自带IIS配置服务器
- 利用反向工程快速学习源码
- 学习整理:程序员最重要的品质:利用好二八原则,快速编程,熟练编程
- MVC3学习第七章 排山倒海第三变----利用MVC3实现数据验证以及完成用户数据的编辑
- iOS APP利用系统自带库监听网络状态
- Python自然语言处理(一)--利用NLTK自带方法完成NLP基本任务