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;

VHDL学习:利用Quartus自带库3步快速完成状态机的更多相关文章

  1. day-9 sklearn库和python自带库实现最近邻KNN算法

    K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一.该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的 ...

  2. Django学习之django自带的contentType表 GenericRelation GenericForeignKey

    Django学习之django自带的contentType表   通过django的contentType表来搞定一个表里面有多个外键的简单处理: 摘自:https://blog.csdn.net/a ...

  3. day 94 Django学习之django自带的contentType表

    Django学习之django自带的contentType表   通过django的contentType表来搞定一个表里面有多个外键的简单处理: 摘自:https://blog.csdn.net/a ...

  4. ecCodes 学习 利用ecCodes Python API对GRIB文件进行读写

    参考 https://www.ecmwf.int/assets/elearning/eccodes/eccodes2/story_html5.htmlhttps://confluence.ecmwf. ...

  5. day 93 Django学习之django自带的contentType表

    Django学习之django自带的contentType表   通过django的contentType表来搞定一个表里面有多个外键的简单处理: 摘自:https://blog.csdn.net/a ...

  6. 转载——利用C#自带组件强壮程序日志

    利用C#自带组件强壮程序日志   在项目正式上线后,如果出现错误,异常,崩溃等情况 我们往往第一想到的事就是查看日志 所以日志对于一个系统的维护是非常重要的 声明 正文中的代码只是一个栗子,一个非常简 ...

  7. day 91 Django学习之django自带的contentType表

      Django学习之django自带的contentType表   通过django的contentType表来搞定一个表里面有多个外键的简单处理: 摘自:https://blog.csdn.net ...

  8. seaJs学习笔记2 – seaJs组建库的使用

    原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...

  9. 利用jdk自带的运行监控工具JConsole观察分析Java程序的运行

    利用jdk自带的运行监控工具JConsole观察分析Java程序的运行 原文链接 一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能 ...

随机推荐

  1. 初学django搭建一个通讯录应用

    ---恢复内容开始--- django搭建一个通讯录应用 一.环境介绍 window10 64位 Django-1.5.12 python 2.7 Sqlite3 二.基本安装 python2.7安装 ...

  2. C++ STL pair详解

    一.解释: p { margin-bottom: 0.25cm; direction: ltr; color: #00000a; line-height: 120%; text-align: left ...

  3. LoadRunner入门(一)

    以LR自带的web系统为例(前提条件:已安装好lordrunner 11 ): 一.WebTours系统 是lordrunner自带一个飞机订票系统网站,支持IE浏览器 1. WebTours服务启动 ...

  4. 自定义MySQL函数

    1.MySQL创建函数语法: CREATE [DEFINER = { user | CURRENT_USER }] FUNCTION sp_name ([func_parameter[,...]]) ...

  5. HTML5 新点总结-持续

    H5新的表单元素:datalist datalist的表现形式和原先的select标签相似,但是datalist想要发挥作用需要input标签的帮助:这样就可以在input标签中显示类似select下 ...

  6. 调整ORACLE用户关闭密码有效期

    --调整ORACLE用户关闭密码有效期  ----------------------------------2013/11/12 在oracle中执行一下操作:1.查看用户的proifle是那个,一 ...

  7. Swoole笔记(四)

    Process Process是swoole内置的进程管理模块,用来替代PHP的pcntl扩展. swoole_process支持重定向标准输入和输出,在子进程内echo不会打印屏幕,而是写入管道,读 ...

  8. ubuntu操作系统以及开发环境的安装

    网盘视频:里面包含了centos,ubuntu,Solaris 三种目前比较主流的操作系统的安装,以及他们的开发环境的安装 https://pan.baidu.com/disk/home#list/v ...

  9. Linux 日常使用小记

    一.Oracle VirtualBox安装Linux7.0全屏设置 1. 点击菜单栏 设备 –> 分配光驱 –> 选择一个虚拟光盘,找到VirtualBox安装目录下的VBoxGuestA ...

  10. RoboCup仿真3D TC笔记(2014年合肥中国公开赛 仿真3D比赛环境搭建)

    所谓“TC“,就是Technology Committee(技术委员),讲的好像很厉害,实则就一“网管”. TC的技术含量其实不高,但是涉及的东西很多很杂,网上零零散散的都有,在这里我想总的整理一下, ...