OpenCores
URL https://opencores.org/ocsvn/zet86/zet86/trunk

Subversion Repositories zet86

[/] [zet86/] [trunk/] [sim/] [memory.v] - Blame information for rev 35

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 zeus
`timescale 1ns/10ps
2
 
3
module memory (
4 35 zeus
    // Wishbone slave interface
5
    input         wb_clk_i,
6
    input         wb_rst_i,
7
    input  [15:0] wb_dat_i,
8
    output [15:0] wb_dat_o,
9
    input  [19:1] wb_adr_i,
10
    input         wb_we_i,
11
    input  [ 1:0] wb_sel_i,
12
    input         wb_stb_i,
13
    input         wb_cyc_i,
14
    output        wb_ack_o
15 2 zeus
  );
16
 
17
  // Registers and nets
18 35 zeus
  reg  [15:0] ram[2**19-1:0];
19 2 zeus
 
20 35 zeus
  wire       we;
21
  wire [7:0] bhw, blw;
22 2 zeus
 
23
  // Assignments
24 35 zeus
  assign wb_dat_o = ram[wb_adr_i];
25
  assign wb_ack_o = wb_stb_i;
26
  assign we       = wb_we_i & wb_stb_i & wb_cyc_i;
27 2 zeus
 
28 35 zeus
  assign bhw = wb_sel_i[1] ? wb_dat_i[15:8]
29
                           : ram[wb_adr_i][15:8];
30
  assign blw = wb_sel_i[0] ? wb_dat_i[7:0]
31
                           : ram[wb_adr_i][7:0];
32
 
33 2 zeus
  // Behaviour
34 35 zeus
  always @(posedge wb_clk_i)
35
    if (we) ram[wb_adr_i] <= { bhw, blw };
36 2 zeus
 
37 35 zeus
  initial $readmemh("/home/zeus/zet/sim/data.rtlrom",
38
                    ram, 19'h78000);
39 2 zeus
endmodule

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.