一、数据类型
1. VHDL标准预先提供,无需添加任何库文件
integer:32位整数类型,范围-2147483647 ~ 2147483646;
signal tmp : integer range 0 to 31;
natural:integer 子类型,非负实数;
定义:subtype NATURAL is INTEGER range 0 to INTEGER'HIGH
positive:integer 子类型,正实数;
定义:subtype POSITIVE is INTEGER range 1 to INTEGER'HIGH
real:实数浮点类型,范围- 1.0E38 ~ + 1.0E38,不可综合,只在仿真平台使用;
bit :逻辑值,只能取值0,1;vhdl2008版标准定义:type BIT is ('0','1');
与std_logic的区别是std_logic有九种状态,如在判断上升沿的时候可以体现:
bit:1)if clk’event and clk = ‘1’ then… 2)if rising_edge(clk) then …
std_logic:1)if rising_edge(clk) then …
bit_vector:位矢量,逻辑值的组合;
定义:type BIT_VECTOR is array (NATURAL range <>) of BIT;
boolean:布尔型,取值true,false,定义:type BOOLEAN is (FALSE, TRUE);
severity level:消息类型,不可综合;
定义:type SEVERITY_LEVEL is (NOTE, WARNING, ERROR, FAILURE);
time:时间物理类型,不可综合,取值称为物理文字包括:1)整数或者浮点类型;
2)单位名称(fs,ps,ns,us,ms,sec,min,hr)
fs是基单位,ps/ns/ms…为导出单位;取值如下:
1 fs --> 注意中间的空格
5 ps --> 5000fs
4.3 ps --> 4300fs
6.4 fs --> 6fs, fs是基单位,所以抹掉小数点
范围-(2^31 - 1) ~ 2^31 – 1 fs
character:字符,256个取值;
string:字符串,区分大小写;
定义:type STRING is array (POSITIVE range <>) of CHARACTER
2. 自定义类型
1. std_logic_1164库定义,使用前必须声明此库的使用,如:
1)std_ulogic:未决断的标准逻辑位,共九种状态;
2)std_logic:已决断的标准逻辑位,共九种状态;
定义:subtype std_logic is resolved std_ulogic;
3)std_logic_vector:标准逻辑位矢量;
定义:type&

本文详细介绍了VHDL中的数据类型,包括标准类型如integer、natural、positive、real、bit、bit_vector等,以及自定义类型如std_logic、std_logic_vector、signed和unsigned。此外,还讲解了运算符的用法,如赋值、逻辑、算术、比较、并置和移位运算。最后提到了类型转换函数在std_logic_1164库中的应用。
1345

被折叠的 条评论
为什么被折叠?



