Instance creation in Verilog
Creating an instance of a module is a very frequent task in Verilog. Let's see how efficiently can it be done
module sram #( parameter AW = 12, parameter DW = 32 )( input clk, input rstn, input wr, input rd, input [AW-1:0] addr, input [DW-1:0] wdata, output [DW-1:0] rdata ); // here goes the SRAM model // ... endmodule
wire w_clk;
wire w_rstn;
wire w_wr;
wire w_rd;
wire [ 7:0] w_addr;
wire [15:0] w_wdata;
wire [15:0] w_rdata;
sram #(
.AW (8),
.DW (16)
) i0_sram (
.clk (w_clk),
.rstn (w_rstn),
.wr (w_wr),
.rd (w_rd),
.addr (w_addr),
.wdata(w_wdata),
.rdata(w_rdata)
);