Verilog语法中parameter与localparam的区别
来源:互联网 发布:小学教学视频软件 编辑:程序博客网 时间:2024/05/18 02:28
注:parameter可用作在顶层模块中例化底层模块时传递参数的接口,localparam的作用域仅仅限于当前module,不能作为参数传递的接口。
`timescale 1ns/100psmodule mem ( clka, wea, addra, dina, clkb, addrb, doutb); parameter DATA_WIDTH = 16; parameter ADDR_WIDTH = 5; localparam DW = DATA_WIDTH - 1; localparam AW = ADDR_WIDTH - 1; input clka; input wea; input [AW:0] addra; input [DW:0] dina; input clkb; input [AW:0] addrb; output [DW:0] doutb; reg [DW:0] m_ram[0:((2**ADDR_WIDTH)-1)]; reg [DW:0] doutb; always @(posedge clka) begin if (wea == 1'b1) begin m_ram[addra] <= dina; end end always @(posedge clkb) begin doutb <= m_ram[addrb]; endendmodule
在顶层文件中例化mem module时可以这样做:
mem #(.DATA_WIDTH(DATA_WIDTH), .ADDR_WIDTH(6)) i_mem ( .clka (adc_clk), .wea (adc_wr), .addra (adc_waddr), .dina (adc_wdata), .clkb (dma_clk), .addrb (dma_raddr), .doutb (dma_rdata_s));
也可以将底层模块的parameter参数置于module端口声明之前,例如:
`timescale 1ns/100psmodule mem #(parameter DATA_WIDTH = 16 parameter ADDR_WIDTH = 5) ( input clka, input wea, input [AW:0] addra, input [DW:0] dina, input clkb, input [AW:0] addrb, output [DW:0] doutb ); localparam DW = DATA_WIDTH - 1; localparam AW = ADDR_WIDTH - 1; reg [DW:0] m_ram[0:((2**ADDR_WIDTH)-1)]; reg [DW:0] doutb; always @(posedge clka) begin if (wea == 1'b1) begin m_ram[addra] <= dina; end end always @(posedge clkb) begin doutb <= m_ram[addrb]; endendmodule
1 0
- Verilog语法中parameter与localparam的区别
- verilog中define、parameter、localparam的区别
- Verilog 中 define parameter localparam的区别
- verilog语言中define,parameter和localparam的区别
- localparam和parameter的区别
- Verilog中parameter与define的区别
- Verilog基础知识0(`define、parameter、localparam三者的区别及举例)
- verilog代码中的"parameter" "#" "localparam"
- verilog parameter localparam define使用
- `define、parameter、localparam三者的区别
- `define、parameter、localparam区别
- Verilog中parameter和define的区别
- Verilog中parameter和define的区别
- Verilog中parameter和define的区别
- Verilog中parameter和define的区别
- parameter localparam
- Verilog中parameter、reg和wire区别
- Verilog define和parameter的区别
- 模态对话框与非模态对话的几种销毁方法与区别
- 利用mybatis-generator-core自动生成代码
- php操作redis方法详解
- lnmp、lamp、lnmpa一键安装包
- mongodb 查询
- Verilog语法中parameter与localparam的区别
- Struts2 中的值栈
- Spring,ehcache整合报错
- Nodejs学习笔记(三)
- 编译android sdk方法
- unity3d常用的游戏对象引用技巧
- 架构设计:系统间通信(11)——RPC实例Apache Thrift 上篇
- rabbitmq 实现原理
- ios epub电子书阅读器demo