(未完成)
1、 关于parameter和localparam的使用
parameter可用作在顶层模块中例化底层模块时传递参数的接口,localparam的作用域仅仅限于当前module,不能作为参数传递的接口;
如在底层文件中声明:
parameter DATA_WIDTH = 16;
parameter ADDR_WIDTH = 5;
localparam DW = DATA_WIDTH - 1;
localparam AW = ADDR_WIDTH - 1;
在顶层文件中例化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));
也可以这样做:
`timescale 1ns/100ps
module 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 [D