6,verilog仿真语法模版_常量与变量声明

Signal,constant & variable declarations

1.整数型(32-bit integer)

   integer <name>;

2.实数型(64-bit floating point,real)

   real <name>;

3.时间型(64-bit floating point,time)

   time <name>;

4.参数

1)Local parameter

//Integer型: 
localparam integer <name> = <value>;

//Real型:   
localparam real <name> = <value>;

//Realtime型:   
localparam realtime <name> = <value>;

//Signed&ranged型:   
localparam signed [upper:lower] <name> = <value>;

//Signed&unranged型:   
localparam signed <name> = <value>;

//Time型:   
localparam time <name> = <value>;

//Un-typed& ranged型:   
localparam [upper:lower] <name> = <value>;

//Un-typed& unranged型: 
localparam <name> = <value>;

2)Parameter

//Integer型: 
parameter integer <name> = <value>;

//Real型:   
parameter real <name> = <value>;

//Realtime型:   
parameter realtime <name> = <value>;

//Signed&ranged型:   
parameter signed [upper:lower] <name> = <value>;

//Signed&unranged型:   
parameter signed <name> = <value>;

//Time型:   
parameter time <name> = <value>;

//Un-typed& ranged型:   
parameter [upper:lower] <name> = <value>;

//Un-typed& unranged型: 
parameter <name> = <value>;

3)例子说明

参数是 Verilog 在代码中定义常量的一种方法。参数对于定义总线宽度、内存深度、状态机、时钟周期以及整个设计和测试平台中使用的其他有用常量非常有用。参数设计可使代码更具参数化,从而提高代码的可维护性和简洁性。参数主要有两种类型:parameterlocal parameterlocal parameter的作用与parameter相同,但其内容不能通过外部传递或修改。defparam 允许从测试平台或设计的不同层级重新分配参数值。parameter允许在例化的模块实例声明中重新指定参数值。local parameterparameter的位宽大小均可按指定的位数设置,并且/或者可带符号值、integerrealtime(64 位精度)或realtime(双精度浮点)值。

// Example declaring a parameter and local parameter

// Define pi as a local real parameter since I do not want to ever change this

localparam real pi = 3.14;

// Define BUS_WIDTH as a parameter with a default value of 8

parameter BUS_WIDTH = 8;

// Use this parameter to define the width of a declared register

reg [BUS_WIDTH-1:0] my_reg;

// Use a defparam from testbench to change BUS_WIDTH to 16 for the instantiated

// design instance UUT

defparam UUT.BUS_WIDTH = 16;

// Alternatively to the defparam, I could have done this using the named parameter //value assignment when I instantiate UUT

my_design #(

   .BUS_WIDTH(16)

) UUT (

   .A(A),

   .B(B),

   .C(C)

);

5.Reg

1)二维Reg数组声明

//二维1k × 18:  
reg [17:0] <name> [1023:0];

//二维2k × 9:   
reg [8:0] <name> [2047:0];

//二维8k × 2:   
reg [1:0] <name> [8191:0];

//二维16 × 1:   
reg <name> [15:0];

//二维16 k × 1: 
 reg <name> [16383:0];

//二维512 × 36: 
reg [35:0] <name> [511:0];

2)Reg声明&初始化

//有符号8bit:   
reg signed [7:0] <name> = 8'sh00;

//有符号64bit:  
reg signed [63:0] <name> = 64'sh0000000000000000;

//无符号8bit:   
reg [7:0] <name> = 8'h00;

//无符号64bit:  
reg [63:0] <name> = 64'h0000000000000000;

3)Reg声明

//有符号8bit:   
reg signed [7:0] <name>;

//有符号64bit:  
reg signed [63:0] <name>;

//无符号8bit:   
reg [7:0] <name>;

//无符号64bit:  
reg [63:0] <name>;

6.Wire

1)wire声明

//有符号8bit:   
wire signed [7:0] <name>;

//有符号64bit:  
wire signed [63:0] <name>;

//无符号8bit:   
wire [7:0] <name>;

//无符号64bit:  
wire [63:0] <name>;

点赞加关注博主(ID:FPGA小飞)的博文,咱们一起学习、一起进步吧~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值