- q : bufferr integer rang 15 dwonto 0 -- 定义q为buffer类型的端口,此端口的数据类型为integer,此整数的取值范围是从15到0。
注:
1.integer 的取值可用符号的32位2进制数表示。
2.需要注意的是,VHDL仿真器将integer类型作为有符号数处理,而VHDL综合器则将integer作为无符号数处理。而且VHDL综合器要求必须使用rang子句为所定义的数限定范围,然后根据所限定的范围来确定此信号或变量的2进制的位数,因为VHDL综合器无法综合未限定范围的恶整数类型的信号和变量。
3.整数在表达式中不加引号,而逻辑数必须加引号,一位的加单引号,一位以上的加双引号。
4.natural,positive 为integer的子类型。
- 关于signal
signal可作为内部的节点,这就决定它不需要像端口那样定义模式,即数据i流动不受方向限制,可用来建立寄存器等。
- 关于算数运算
VHDL规定加减等算数操作符对应的操作数只能是integer,而当不同数据类型间运算操作的时候就要调用运算符重载函数 ieee库中的std_logic_unsigned程序包中,其中预定义的操作符有+、-、*、=、>=、<=、>、<、/=、and、mod等,用法如下:</