summaryrefslogtreecommitdiff
path: root/DRAM.h
blob: bc36a931de3115764d419a1dbba93d9f44c99050 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#pragma once

#include <verilated.h>
#include <verilated_vcd_c.h>

#include <stdio.h>

/* DRAM
 * A basic device simulating DRAM.
 */
struct DRAM {
    uint8_t *buf;

    DRAM();
    ~DRAM();

    CData prev_clk;
    CData clk;
    CData we;
    uint64_t claddr;
    VlWide<4>* cldata;

    void apply(
        CData clk,
        CData we,
        uint64_t claddr,
        VlWide<4>* cldata);
    
    void eval();

    void posedge_clk();
};