VHDL入门基础——语法规则(2)

VHDL基础语法(2)——数据类型篇

数据类型
1.Boolean:true fasle,用于逻辑运算
2.bit:0或1,用于逻辑运算
3.bit_vector:基于bit类型的数组,用于逻辑运算
4.整数integer:-(231)~ 231-1
5.实数real:-1.0E38~1.0E38,只可仿真不可综合
6.时间time:物理量(空格)单位,例如10 ms、20 μs。只可仿真不可综合
tips:
1.在实际的设计中,一般不会将外界接口输出设为Boolean类型,但是布尔型会隐形地出现在设计中,比如if (A>B)
2.位矢量bit_vector:看作是bit数组,在信号定义时必须指明数组个数和方向:
Signal a:bit_vector(0 to 7) --表示a是8位的数组,且最高位是a(0),最低位是a(7),若想要符合日常思维顺序,则改为:
Signal a:bit_vector(7 downto 0)
3.整数使用是需要标明范围range x to x

std_logic_1164
std_logic & std_logic_vector
9种类型:U(未初始)、Z(高阻)、-(dont care)
L(弱0)、0、W(weak unknown)
H(弱1)、1、X(forcing unknown)
tips:
1.可综合:0、1、Z、-
2.std_logic_vector是std_logic的类型数组

自定义数据类型
枚举类型:状态机
type x is (a1,a2…);
例:
type states is (step1、step2、step3);
signal state:states;
数组类型:RAM & ROM
type x is array(range) of 数据类型
例:
type byte is array(7downto 0) of bit;
type word is array(31 downto 0) of bit;

signal & port
信号和端口都是节点(node),信号是内部节点,端口是外部输入输出节点,因此可将信号看作不用指明数据流动方向的端口
port:
端口名1:端口方向 端口类型;
signal:
signal name1:type; --若赋初值只在仿真时有效,初值不可综合。
例:signal a,b,c:std_logic;
特殊的自定义数据类型见上;

变量
变量申明与信号极为类似,若赋初值只在仿真时有效,初值不可综合。但位置只能在进程(process)以及子程序中。
variable name:数据类型;
例:variable a,b,c:integer range 0 to 10;
tips:
1.赋值:常数;目标变量值;表达式
a:=5;
a:=b;
a:=b+c;

常量
constast name:type:=data;
例:constast a:integer:=20;

你可能感兴趣的:(vhdl,vhdl)