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

Subversion Repositories xulalx25soc

[/] [xulalx25soc/] [trunk/] [bench/] [cpp/] [sdramsim.h] - Blame information for rev 4

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

Line No. Rev Author Line
1 4 dgisselq
#ifndef SDRAMSIM_H
2
 
3
#define NBANKS  4
4
#define POWERED_UP_STATE        6
5
#define CLK_RATE_HZ             100000000 // = 100 MHz = 100 * 10^6
6
#define PWRUP_WAIT_CKS          ((int)(.000200 * CLK_RATE_HZ))
7
#define MAX_BANKOPEN_TIME       ((int)(.000100 * CLK_RATE_HZ))
8
#define MAX_REFRESH_TIME        ((int)(.064 * CLK_RATE_HZ))
9
 
10
class   SDRAMSIM {
11
        int     m_pwrup;
12
        short   *m_mem;
13
        short   m_last_value, m_qmem[4];
14
        int     m_bank_status[NBANKS];
15
        int     m_bank_row[NBANKS];
16
        int     m_bank_open_time[NBANKS];
17
        unsigned        *m_refresh_time;
18
        int             m_refresh_loc, m_nrefresh;
19
        int     m_qloc, m_qdata[8], m_qmask, m_wr_addr;
20
        int     m_clocks_till_idle;
21
        bool    m_next_wr;
22
        unsigned        m_fail;
23
public:
24
        SDRAMSIM(void) {
25
                m_mem = new short[(1<<24)]; // 32 MB, or 16 Mshorts
26
 
27
                m_refresh_time = new unsigned[(1<<13)];
28
                for(int i=0; i<m_nrefresh; i++)
29
                        m_refresh_time[i] = 0;
30
                m_refresh_loc = 0;
31
 
32
                m_pwrup = 0;
33
                m_clocks_till_idle = 0;
34
 
35
                m_last_value = 0;
36
                m_clocks_till_idle = PWRUP_WAIT_CKS;
37
                m_wr_addr = 0;
38
 
39
                m_qloc  = 0;
40
                m_qmask = 7;
41
 
42
                m_next_wr = true;
43
                m_fail = 0;
44
        }
45
 
46
        ~SDRAMSIM(void) {
47
                delete m_mem;
48
        }
49
 
50
        short operator()(int clk, int cke,
51
                        int cs_n, int ras_n, int cas_n, int we_n, int bs,
52
                                unsigned addr,
53
                        int driv, short data);
54
        int     pwrup(void) const { return m_pwrup; }
55
};
56
 
57
#endif

powered by: WebSVN 2.1.0

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