欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

VHDL的数字数据类型

最编程 2024-08-14 22:07:17
...

(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';