原创 (原创)HDL中的unsigned与signed

2012-8-28 20:27 1430 19 19 分类: FPGA/CPLD

unsigned与signed:想必大家在C语言是经常用到,可不知HDL语言中的unsigned与signed是否常用罗!

 

其含义与C语言中的意思无异,区别主要是取值范围。

unsigned和signed在一种类型下,unsigned表示在这个范围大小的整数,signed一般都是在这个范围内的从负到正,即其最高位为符号位。

 

unsigned( 无符号整数 ):无符号整数 (unsigned) 和前面的" 标准逻辑" 向量 (std_logic_vector) 信号相似, 并且可以相互转换。注:定义无符号数时必须指明这个无号整数的位数序列编号是从高到低 , 一定要使用 downto 的序列

 

unsigned与std_logic_vector互相转换如下:

signal a : std_logic_vector(3 downto 0);
signal b : unsigned(3 downto 0);

b <= unsigned(a);
a <= std_logic_vector(b);

 

signed(有符号整数):数据类型表示一个有符号的数值,综合器将其解释为补码,该的最高位是符号位,最高位0 表示为正数,最高位为1表示为负数,补码是指除最高位数据的补码。

 

如:signed("1101") = -5

signed("0111") = 7

 

作者:tdyizhen1314

(现从事LED行业,专注于户外大型LED显示屏控制系统的研发,希望与大家一起交流,共同进步)

邮箱: 495567585@qq.com  

         td.logic@hotmail.com

文章评论0条评论)

登录后参与讨论
我要评论
0
19
关闭 站长推荐上一条 /2 下一条