verilog语法:参数例化、赋值等

嵌入式技术

1367人已加入

描述

verilog语法 - 参数例化

1、参数定义parameter

 

module ram_1r1w 
#( 
parameter width=128,
parameter deepth=32
)
(
input               wclk,
input   [width-1:0]   wdin,
.....................................
input               rclk,
output  [width-1:0]  dout,
...................................
);
....................
....................
.....................
endmodule

 

可传递的参数例化建议放在module名的后面,如上所示,采用#( parameter  xxx=xxx, parameter xxx=xxx, ....)的格式,方便查看和修改。

2、参数例化

 

ram_1r1w
#(
 .width(128),
.deepth(96)
)
ram_1r1w_96x128
(
.wclk(wclk),
.wen(write_en),
.waddr(waddr),
.wdin(wdata),
.rclk(rclk),
.ren(read_en),
.raddr(raddr),
.dout(rdata)
);

 

在模块例化时可使用参数传递,格式如上所示

module_name #(.parameter1(xxx1),.paramter2(xxx2))

module_name_u0 ( .signal1(s1), .signal2(s2),.............);

参数例化括号内也可以使新的参数,如下所示

 

module mactx_32x128_fifo
#( 
parameter WIDTH=128,
parameter DEEPTH=32
)
(
input  wclk,
......................
input  rclk,
...................
)
................
................


ram_1r1w
#(
 .width(WIDTH),
 .deepth(DEEPTH)
)
ram_1r1w_u0
(
.wclk(wclk),
.wen(write_en),
.waddr(waddr),
.wdin(wdata),
.rclk(rclk),
.ren(read_en),
.raddr(raddr),
.dout(rdata)
);

 

verilog语法 - 用‘b,‘h,‘d赋值

1、几种不同的赋值方式

在Verilog编码过程中,经常会给信号赋值,赋值有时候需要指定信号位宽,如下所示。Verilog 2005 版本支持使用省略位宽的方式赋值。

 

//采用常数位宽直接赋值
wire [512-1:0] func_id;
assign func_id = 512'b0 ;
//采用宏定义 指定位宽
// `define  PCIE_FUNC_ID 512 ;
wire [512-1:0] func_id;
assign func_id = {(`PCIE_FUNC_ID){1’b0}}; 


//省略写法,省略位宽512bit
wire [512-1:0] func_id;
assign func_id = ’b0 ;

 

2、采用省略位宽的方式赋值

Verilog 2005 版本支持使用省略位宽的方式赋值,’b,’d,’h,采用省略位宽的方式可以向左主动补齐,如果省略了进制符合b/d/h/o,则默认是十进制。

 

Example 4—Automatic left padding 
reg [11:0] a, b, c, d; 
initial begin 
a = 'h x; // yields xxx 
b = 'h 3x; // yields 03x 
c = 'h z3; // yields zz3 
d = 'h 0z3; // yields 0z3 
end 
reg [84:0] e, f, g,j; 
e = 'h5; // yields {82{1'b0},3'b101} 
f = 'hx; // yields {85{1'hx}} 
g = 'hz; // yields {85{1'hz}}
j = ‘5 ; // yields {82{1'b0},3'b101} //新增

 

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分