X-Git-Url: http://git.joshuawise.com/firearm.git/blobdiff_plain/eacc5bf1a2c6cf0e72dfe45fd8526ec762a15f41..03bbc40b28ecb9fab7f459f627d3843ba3f10b16:/BlockRAM.v diff --git a/BlockRAM.v b/BlockRAM.v index 1731c30..e0eceeb 100644 --- a/BlockRAM.v +++ b/BlockRAM.v @@ -12,12 +12,10 @@ module BlockRAM( * 0x00004000. rdata and ready must be driven to zero if the * address is not within the range of this module. */ - wire decode = (bus_addr & ~32'h00003FFF) == 32'h00000000; - /* verilator lint_off WIDTH */ - wire [13:0] ramaddr = bus_addr & 32'h3FFC; /* mask off lower two bits + wire decode = bus_addr[31:14] == 18'b0; + wire [13:0] ramaddr = {bus_addr[13:2], 2'b0}; /* mask off lower two bits * for word alignment */ - /* verilator lint_on WIDTH */ - + reg [31:0] data [(16384 / 4 - 1):0]; reg [31:0] temprdata = 0; @@ -33,7 +31,7 @@ module BlockRAM( always @(posedge clk) begin if (bus_wr && decode) - data[ramaddr[13:2]] <= bus_wdata; + data[ramaddr[13:2]] = bus_wdata; /* This is not allowed to be conditional -- stupid Xilinx * blockram. */