Verilog中 reg,integer

reg,integer

整数(integer)

integer类型也是一种寄存器数据类型,integer类型的变量为有符号数,而reg类型的变量则为无符号数,除非特别声明为有符号数

还有就是integer的位宽为宿主机的字的位数,但最小为32位,用integer的变量都可以用reg定义,只是用于计数更方便而已。

reg,integer,real,time都是寄存器数据类型,定义在Verilog中用来保存数值的变量,和实际的硬件电路中的寄存器有区别。

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

real类型是不可综合的。

1、verilog中常用的数据类型

Verilog中共有19种数据类型。

1)基本的四种类型:
reg型、wire型、integer型、parameter型。

其他类型:large型、medium型、small型、scalared型、time型、tri型、trio型、tril型、triand型、trior型、trireg型、vectored型、wand型和wor型。
这14中数据类型除time外都与基本逻辑单元建库有关。

2)四种基本类型区别:

reg              无符号整数变量,可以选择不同的位宽。

integer          有符号整数变量,32位宽,算术运算可产生2的补码。

real             有符号的浮点数,双精度。

time             无符号整数变量,64位宽(Verilog-XL仿真工具用64位的正数来记录仿真时刻)

用 reg 描述逻辑,integer 描述循环变量和计算, real 在系统模型中使用,time 和 realtime 保存测试装置的仿真时间。

2、integer使用规则

1)reg是无符号整形变量,integer是有符号类型
2)integer定义为32bit的总线
3)for循环变量需要使用integer类型
请小心使用小型宽度的 reg 作为循环变量 测试负值的 reg 也要非常小心 如果重复的加 减运算和reg 的值都作为无符号数处理 循环表达式就永远不会出错

reg [2:0] i; // i 的值永远在 0 到 7 之间
...
for ( i=0; i<8; i=i+1 ) // 循环不会停止
...
for ( i=-4; i<0; i=i+1 ) // 不会执行
...

在像上面的情况中 循环变量 i 应该用 integer 类型
下面的代码显示reg和integer的一般用法:

integer i;
reg [15:0] V;
reg Parity;

always @(V)
    for ( i = 0; i <= 15; i = i + 1 )
        Parity = Parity ^ V[i];

4)文件读写时使用integer类型来简化代码操作

///save data to files1
parameter N = 4;
integer file_ceo_id [N-1:0]; //注意此处变量正确定义方式

initial begin
    file_ceo_id[0] = $fopen("./ctrl_data0.txt","w");
    file_ceo_id[1] = $fopen("./ctrl_data1.txt","w");       
    file_ceo_id[2] = $fopen("./ctrl_data2.txt","w");       
    file_ceo_id[3] = $fopen("./ctrl_data3.txt","w");       
end

genvar i;                                          
generate                                           
    for (i=0;i<N;i=i+1)                       
    begin:W_FILES    ///
        always@( posedge clk)
        begin
            if  (rd_valid == 1'b1)
            begin
                $fdisplay(file_ceo_id[i], "%h", out_fifo_rdata);              
            end
        end   
    end
endgenerate 

原文链接:https://blog.csdn.net/liqiang9410/article/details/76983900

原文链接:https://blog.csdn.net/miffywm/article/details/98752443

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值