zoukankan      html  css  js  c++  java
  • [转] verilog中的integer和reg的差别

    http://www.cnblogs.com/dangxia/archive/2012/03/10/2389685.html

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

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

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

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

    reg[31:0] A;
    integer I;
    ...
    A=-1;
    I=-1;//both A and I hold 32'hffffffff
    //
    if(I>32'h0)
        $display("I is positive.")
    else $display("I is not positive");//Prints "I is not positive"
    if(A>32'h0)
        $display("A is positive");//Prints "A is positive"
    else $display("I is not positive");

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

  • 相关阅读:
    两人合作
    JUnit单元测试
    结对编程-——游戏五子棋
    使用Junit等工具进行单元测试
    软件工程
    两人项目---打飞机的游戏
    使用Junit等工具进行单元测试
    软件工程
    使用Junit等工具进行单元测试
    软件工程
  • 原文地址:https://www.cnblogs.com/woshitianma/p/2838477.html
Copyright © 2011-2022 走看看