|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
以下是 Quartus II 中自带的一个定制ram的Template
不明白其中的2**ADDR_WIDTH-1是为什么 特别是其中的**是什么意思?
大虾们赐教下啊!!
// Quartus II Verilog Template
// True Dual Port RAM with dual clocks
module ram1
#(parameter DATA_WIDTH=8, ADDR_WIDTH=10)
(
input [(DATA_WIDTH-1):0] data_a,
input [(ADDR_WIDTH-1):0] addr_a, addr_b,
input wr_a, rd_b, clk_a, clk_b,
output reg [(DATA_WIDTH-1):0] q_b
);
// Declare the RAM variable
reg [DATA_WIDTH-1:0] ram[2**ADDR_WIDTH-1:0];
always @ (posedge clk_a)
begin
// Port A
if (wr_a)
begin
ram[addr_a] <= data_a;
end
else ;
end
always @ (posedge clk_b)
begin
// Port B
if (rd_b)
begin
q_b <= ram[addr_b];
end
else ;
end
endmodule |
|