VHDL学习:利用Quartus自带库3步快速完成状态机
来源:互联网 发布:mac rstudio xcode 编辑:程序博客网 时间:2024/06/06 01:03
Quartus自带库里面有各种编程语言的模板,供开发者参考。
初学者利用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;
3 0
- VHDL学习:利用Quartus自带库3步快速完成状态机
- VHDL状态机
- 利用ComboBox自带属性完成自动补全功能
- VHDL描述状态机
- 状态机的VHDL设计
- 自步学习
- 零基础带你3步快速掌握iSCSI搭建
- 3步带你快速了解特斯拉“巨大充电宝”
- 带你3步快速掌握iSCSI搭建
- 利用java自带库进行排序
- VHDL状态机控制ADC0809[转贴]
- Python自然语言处理(一)--利用NLTK自带方法完成NLP基本任务
- Python自然语言处理(一)--利用NLTK自带方法完成NLP基本任务
- Python自然语言处理(一)--利用NLTK自带方法完成NLP基本任务
- Python自然语言处理(一)--利用NLTK自带方法完成NLP基本任务
- 【CUDA自带实例学习】1.快速排序
- My First Quartus II VHDL Template
- 自步学习之SPLD
- C# Winform 跨线程更新UI控件常用方法汇总
- 第一个Lua程序 Game.lua
- Leetcode 400. Nth Digit (Easy) (cpp)
- 算法题:电梯 每层只能上或者下固定层数
- WebService调用时的异常:Not enough message parts were received for the operation
- VHDL学习:利用Quartus自带库3步快速完成状态机
- UVALive 6590 Digraphs (DFS找环找通路)
- 开通博客,记录菜鸟的成长历程
- UVa 1363 Joseph's Problem
- H5离线缓存机制-manifest
- 55. Jump Game
- Linear Algebra - Lesson 1. 方程组的集合解释
- ubuntu终端su认证失败:允许su到root的方法
- C#线程中安全访问控件(重用委托,避免繁复的delegate,Invoke)总结