关于学习FPGA,Verilog HDL,的基本知识(五)

3、时间

声明时间的关键词是time,它是unsigned 的64位数据,用以转存仿真时的系统时间,通常利用系统函数“$time"来取得系统时间。声明时间类型变量的格式如下:

time time_id1, time_id2, ..., time_idn[ msb:lsb ];

其中,time 为关键词,表示变量为时间类型变量; msb 和lsb 是表明范围界限的常量表达式,如果未定义界限,每个标识符存储一个至少 64位的时间值;

        time_id1, time_id2, ...为定义的时间类型变量名称;
        时间类型的寄存器只存储无符号数。举例如下:

time condition_happen_time;
'''
if (condition)
    condition_happen_time = $ time;
'''
always@ (posedgeclk)
bedin
    $monitor($time, "dataoutput = % d",dout);
end

4、参数

        参数数据类型用来定义在程序内部仿真时保持不变的常数,以增进程序的可读性。其声明格式如下:

parameter paraml = constexpr1, param2 = constexpr2 ... , paramN = constexprN;

        其中parameter为关键词,表示变量为参数数据类型变量;

        paraml , param2  ... , paramN为定义参数数据类型变量名称;

        constexpr1,  constexpr2 ... ,constexprN为参数数据类型变量的初始值。举例如下:

parameter fetch = 2'b01,
    decode =2'b01,
    execute,    
    width = 1024,
    heigh = 768;
    ...
resolution = width* heigh;

5、存储器

        将多个位的寄存器组合而成的数据类型称为存储器,存储器的下标即为地址。存储器使用如下方式说明:

reg [msb:1sb] memory1[upper1 :lower1], memory2[ upper2:lower2], ... ;

        其中,reg 为关键词,表示变量为寄存器类型变量; msb 和Isb是表明范围界限的常量表达式; memory1, memor2 为定义的寄存器类型变量名称; upper1 、lower1 为每个寄存器的位宽。举例如下:

reg[ 7 : 0 ] men[ 0 : 1023 ];      //声明一个深度1K,宽度为8位的存储器

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值