On 28/02/11 12:19 PM, Wesley W. Terpstra wrote:
The changes in this patch:
2. support register file backed by ram blocks
  => saves quite some area and speed on altera
  ... be sure to enable it using `define CFG_EBR_POSEDGE_REGISTER_FILE
... and of course you need this file too (not that it's much complicated).

module lm32_dp_ram(
        clk_i,
        rst_i,
        we_i,
        waddr_i,
        wdata_i,
        raddr_i,
        rdata_o);

parameter addr_width = 32;
parameter addr_depth = 1024;
parameter data_width = 8;

input clk_i;
input rst_i;
input we_i;
input [addr_width-1:0] waddr_i;
input [data_width-1:0] wdata_i;
input [addr_width-1:0] raddr_i;
output [data_width-1:0] rdata_o;

reg [data_width-1:0] ram[addr_depth-1:0];

reg [addr_width-1:0] raddr_r;
assign rdata_o = ram[raddr_r];

always @ (posedge clk_i)
begin
        if (we_i)
                ram[waddr_i] <= wdata_i;
        raddr_r <= raddr_i;
end

endmodule

_______________________________________________
http://lists.milkymist.org/listinfo.cgi/devel-milkymist.org
IRC: #milkymist@Freenode
Twitter: www.twitter.com/milkymistvj
Ideas? http://milkymist.uservoice.com

Reply via email to