diff options
Diffstat (limited to 'techlibs/xilinx/tests/bram2.v')
-rw-r--r-- | techlibs/xilinx/tests/bram2.v | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/techlibs/xilinx/tests/bram2.v b/techlibs/xilinx/tests/bram2.v new file mode 100644 index 000000000..0a6013ca6 --- /dev/null +++ b/techlibs/xilinx/tests/bram2.v @@ -0,0 +1,35 @@ +module myram( + input rd_clk, + input [ 7:0] rd_addr, + output reg [17:0] rd_data, + input wr_clk, + input wr_enable, + input [ 7:0] wr_addr, + input [17:0] wr_data +); + reg [17:0] memory [0:255]; + integer i; + + function [17:0] hash(input [7:0] k); + reg [31:0] x; + begin + x = {k, ~k, k, ~k}; + x = x ^ (x << 13); + x = x ^ (x >> 17); + x = x ^ (x << 5); + hash = x; + end + endfunction + + initial begin + for (i = 0; i < 256; i = i+1) + memory[i] = hash(i); + end + + always @(posedge rd_clk) + rd_data <= memory[rd_addr]; + + always @(posedge wr_clk) + if (wr_enable) + memory[wr_addr] <= wr_data; +endmodule |