VHDL状态机用户自定义数据类型
【摘要】 状态机是时序模型。状态机的说明部分主要是用户自定义数据类型。本文概括了4种用户自定义数据类型。同时简要研究了Moore型和Mealy型两种状态机。
本文针对VHDL有效状态机的说明部分做一个简单的总结。
状态机
状态机的说明部分主要是用户自定义数据类型。
根据信号的输出方式,状态机分为Mealy型和Moore型。
根据输出时序,Moore属于同步输出状态机,Mealy属于异步输出状态机。
区别:
Moore的输出依据当前状态和输入信号;
Mealy的输出依据当前状态;
Moore比Mealy多一个时钟周期;
用户自定义数据类型
- 限定性数组型数据类型定义
(将一组具有相同数据类型的元素集合在一起构成的新的数据类型)
- 一维数组
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个元素
- 非限定性数组型数据类型定义(不定义数据下标取值范围)
TYPE 数组名 IS ARRAY(数组下标名 RANGE<>)OF 数据类型;
eg: TYPE BIT_VECTOR IS ARRAY(NATURAL RANGE<>)OF BIT;
定义了一个数组型数据类型,名字为BIT_VECTOR
该数据类型包含的元素未确定
每个元素的数据类型为BIT(0或1)
- 枚举型数据类型(明确数据范围)
TYPE 数据类型名 IS 数据类型定义表述;
eg1:TYPE MY_LOGIC IS ('1','Z','U','0');
eg2:TYPE M_STATE IS (ST0, ST1, ST2, ST3, ST4,ST5, ST6);
SIGNAL PRESENT_STATE,NEXT_STATE:M_STATE;
定义一个枚举型数据类型名为MY_LOGIC
eg1包含4个取值
eg2包含6个“文本符号”取值
- 枚举型子类型数据类型(是TYPE所定义的原数据类型的一个子集)
SUBTYPE 子类型名 IS 基本数据类型 RANGE 约束范围;
eg: SUBTYPE digits IS INTEGER RANGE 0 TO 9;
本文介绍了四种VHDL自定义数据类型的方法,是为后面的状态机的学习打好基础。
我要写的是VHDL有效状态机,虽然不是前端后端服务端,但是也是技术对不对,所以我觉得是可以参加这个活动的,本来我看那个征文写的条条框框挺多的,我就有点害怕了,但是我看到后面说不少于500字,我才觉得轻松点了。如果不行我就不写这个了呗。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)