VHDL的数字数据类型
(1)整数(integer)
定义位置:在std库的standard程序包中进行定义。即数值范围为-2^31~2^31。
(2)无符号(unsigned)和有符号(signed)类型
定义位置:有符号(signed)和无符号(unsigned)逻辑信号定义在库IEEE的程序包std_logic_arith中。
无符号类型数据代表无符号数值,即代表0或正数;最左边的位为最高位。如:unsigned(“0110”)为+6,unsigned(“1010”)为+10.
有符号类型数据代表有符号数值,即可以是正数,0,负数;编译器将有符号数据类型作为一个补码的二进制数,最左边的位为符号位。
如:signed(“0110”)代表+6;signed(“1010”)代表-2。
程序:
library IEEE;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
entity data is
port( a,b:in unsigned(3 downto 0); %a,b:in signed(3 downto 0);
c:out std_logic
);
end data;
architecture m1 of data is
begin
c<='1' when a<b else '0';
end m1;
当定义成无符号数据类型时,若a="1000",b="0001",即a=8,b=1.则结果是a>b,c='0';
当定义成有符号数据类型时,若a="1000",b="0001",即a=-8,b=1.则结果是a<b,c='1';
上一篇: 一个关于VHDL的简介