VHDL状态机用户自定义数据类型

举报
吴梦青 发表于 2022/05/26 18:47:03 2022/05/26
【摘要】 状态机是时序模型。状态机的说明部分主要是用户自定义数据类型。本文概括了4种用户自定义数据类型。同时简要研究了Moore型和Mealy型两种状态机。

本文针对VHDL有效状态机的说明部分做一个简单的总结。

状态机

状态机的说明部分主要是用户自定义数据类型。

根据信号的输出方式,状态机分为Mealy型和Moore型。

根据输出时序,Moore属于同步输出状态机,Mealy属于异步输出状态机。

区别:

Moore的输出依据当前状态输入信号

Mealy的输出依据当前状态

Moore比Mealy多一个时钟周期;

用户自定义数据类型

  1. 限定性数组型数据类型定义

(将一组具有相同数据类型的元素集合在一起构成的新的数据类型)

  • 一维数组
TYPE 数组名 IS ARRAY(数组范围)OF 基本数据类型;

eg:TYPE STB IS ARRAY(7 DOWNTO 0)OF STD_LOGIC;

定义了一个数组型数据类型,名字为STB

该数据类型包含8个元素

每个元素的数据类型为STD_LOGIC

  • 二维数组
TYPE MATRIX IS ARRAY(127 DOWNTO 0)OF STD_LOGIC_VECTOR(7 DOWNTO 0);

该数据类型包含128个单元,每个单元中包含8个元素

  1. 非限定性数组型数据类型定义(不定义数据下标取值范围)
TYPE 数组名 IS ARRAY(数组下标名 RANGE<>)OF 数据类型;

eg: TYPE BIT_VECTOR IS ARRAY(NATURAL RANGE<>)OF BIT;

定义了一个数组型数据类型,名字为BIT_VECTOR

该数据类型包含的元素未确定

每个元素的数据类型为BIT(0或1)

  1. 枚举型数据类型(明确数据范围)
TYPE 数据类型名 IS 数据类型定义表述;

eg1:TYPE MY_LOGIC IS ('1','Z','U','0');

eg2:TYPE M_STATE IS (ST0, ST1, ST2, ST3, ST4ST5, ST6);

SIGNAL PRESENT_STATE,NEXT_STATE:M_STATE;

定义一个枚举型数据类型名为MY_LOGIC

eg1包含4个取值

eg2包含6个“文本符号”取值

  1. 枚举型子类型数据类型(是TYPE所定义的原数据类型的一个子集)
SUBTYPE 子类型名 IS 基本数据类型 RANGE 约束范围;

eg: SUBTYPE digits IS INTEGER RANGE 0 TO 9;

本文介绍了四种VHDL自定义数据类型的方法,是为后面的状态机的学习打好基础。
我要写的是VHDL有效状态机,虽然不是前端后端服务端,但是也是技术对不对,所以我觉得是可以参加这个活动的,本来我看那个征文写的条条框框挺多的,我就有点害怕了,但是我看到后面说不少于500字,我才觉得轻松点了。如果不行我就不写这个了呗。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。