mirror of https://github.com/VLSIDA/OpenRAM.git
Shrunk address register in multibank verilog
This commit is contained in:
parent
6b5fe8a096
commit
3f1a5a2051
|
|
@ -72,7 +72,7 @@ module {{ module_name }} (
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
{% for port in ports %}
|
{% for port in ports %}
|
||||||
reg [ADDR_WIDTH - 1 : 0] addr{{ port }}_reg;
|
reg [BANK_SEL - 1 : 0] addr{{ port }}_reg;
|
||||||
|
|
||||||
{% for bank in banks %}
|
{% for bank in banks %}
|
||||||
wire [DATA_WIDTH - 1 : 0] dout{{ port }}_bank{{ bank }};
|
wire [DATA_WIDTH - 1 : 0] dout{{ port }}_bank{{ bank }};
|
||||||
|
|
@ -122,13 +122,13 @@ module {{ module_name }} (
|
||||||
|
|
||||||
{% for port in ports %}
|
{% for port in ports %}
|
||||||
always @(posedge clk{{ port }}) begin
|
always @(posedge clk{{ port }}) begin
|
||||||
addr{{ port }}_reg <= addr{{ port }};
|
addr{{ port }}_reg <= addr{{ port }}[ADDR_WIDTH - 1 : ADDR_WIDTH - BANK_SEL];
|
||||||
end
|
end
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
{% for port in ports %}
|
{% for port in ports %}
|
||||||
always @(*) begin
|
always @(*) begin
|
||||||
case (addr{{ port }}_reg[ADDR_WIDTH - 1 : ADDR_WIDTH - BANK_SEL])
|
case (addr{{ port }}_reg)
|
||||||
{% for bank in banks %}
|
{% for bank in banks %}
|
||||||
{{ bank }}: begin
|
{{ bank }}: begin
|
||||||
dout{{ port }} = dout{{ port }}_bank{{ bank }};
|
dout{{ port }} = dout{{ port }}_bank{{ bank }};
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ module sram (
|
||||||
input web0;
|
input web0;
|
||||||
output reg [DATA_WIDTH - 1 : 0] dout0;
|
output reg [DATA_WIDTH - 1 : 0] dout0;
|
||||||
|
|
||||||
reg [ADDR_WIDTH - 1 : 0] addr0_reg;
|
reg [BANK_SEL - 1 : 0] addr0_reg;
|
||||||
|
|
||||||
wire [DATA_WIDTH - 1 : 0] dout0_bank0;
|
wire [DATA_WIDTH - 1 : 0] dout0_bank0;
|
||||||
|
|
||||||
|
|
@ -70,11 +70,11 @@ module sram (
|
||||||
);
|
);
|
||||||
|
|
||||||
always @(posedge clk0) begin
|
always @(posedge clk0) begin
|
||||||
addr0_reg <= addr0;
|
addr0_reg <= addr0[ADDR_WIDTH - 1 : ADDR_WIDTH - BANK_SEL];
|
||||||
end
|
end
|
||||||
|
|
||||||
always @(*) begin
|
always @(*) begin
|
||||||
case (addr0_reg[ADDR_WIDTH - 1 : ADDR_WIDTH - BANK_SEL])
|
case (addr0_reg)
|
||||||
0: begin
|
0: begin
|
||||||
dout0 = dout0_bank0;
|
dout0 = dout0_bank0;
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue