FPGA-数据类型-integer


今天看代码时遇到了integer,只知道这是个整数类型,可详细的内容却一窍不通,查看了资料---《verilog数字VLSI设计教程》。其中是这么写到的:

大多数的矢量类型(reg或者net)都被默认当做无符号数。integer和real是个例外,它们被默认为当做有符号数。通常,real类型是不可综合的。

假设在没有溢出的情况下,不管是无符号数还是有符号数,它们都是二进制的一串数值而已;而当这个值被当做某种类型比较时:又符号数的MSB被用来表示这个数字的符号,而无符号数的MSB则是位权最高的那一位。无论采用什么样的二进制格式,一个无符号数永远也不能成为负值。

下面是一个和符号位有关的例子:

 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
module integer_reg(clk,negA,negI);
input clk;
  wire[31:0]A;
integer I;
output reg negA;
output reg negI;
assign A=-3;
always @(posedge clk)
     begin
     
     I=-3;
     if (A<0)
        negA<=1;
        else  negA<=0;
      if (I<0)
         negI<=1;
         else  negI<=0;
         end
      
endmodule

未命名1

对于关系算符,综合会有不同的结果,这取决于被比较的是有符号还是无符号数,会综合出无符号关系算符,或又符合关系算符.

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM