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

Subversion Repositories wbddr3

[/] [wbddr3/] [trunk/] [bench/] [cpp/] [ddrsdramsim.cpp] - Diff between revs 9 and 12

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 9 Rev 12
Line 46... Line 46...
                ckREFI = 1560, // 7.8us @ 200MHz = 7.8e-6 * 200e6 = 1560
                ckREFI = 1560, // 7.8us @ 200MHz = 7.8e-6 * 200e6 = 1560
                ckREFIn = nREF*ckREFI - (nREF-1) * ckRFC;
                ckREFIn = nREF*ckREFI - (nREF-1) * ckRFC;
 
 
#include "ddrsdramsim.h"
#include "ddrsdramsim.h"
void    BANKINFO::tick(int cmd, unsigned addr) {
void    BANKINFO::tick(int cmd, unsigned addr) {
 
        if (m_wcounter)
 
                m_wcounter--;
        switch(cmd) {
        switch(cmd) {
                case DDR_PRECHARGE:
                case DDR_PRECHARGE:
                        m_state = 6;
                        m_state = 6;
                        // While the specification allows precharging an already
                        // While the specification allows precharging an already
                        // precharged bank, we can keep that from happening
                        // precharged bank, we can keep that from happening
Line 57... Line 59...
                        // assert(m_state&7);
                        // assert(m_state&7);
                        // Only problem is, this will currently break our
                        // Only problem is, this will currently break our
                        // refresh logic.
                        // refresh logic.
                        break;
                        break;
                case DDR_ACTIVATE:
                case DDR_ACTIVATE:
 
                        assert(m_wcounter == 0);
                        m_state = 1;
                        m_state = 1;
                        m_row = addr & 0x7fff;
                        m_row = addr & 0x7fff;
                        break;
                        break;
                case DDR_READ: case DDR_WRITE:
                case DDR_READ: case DDR_WRITE:
 
                        if (DDR_READ)
 
                                assert(m_wcounter == 0);
 
                        else
 
                                m_wcounter = 3+4+4;
                        printf("BANK::R/W Request, m_state = %d\n", m_state);
                        printf("BANK::R/W Request, m_state = %d\n", m_state);
                        assert((m_state&7) == 7);
                        assert((m_state&7) == 7);
                        break;
                        break;
                case DDR_ZQS:
                case DDR_ZQS:
                        assert((m_state&7) == 0);
                        assert((m_state&7) == 0);

powered by: WebSVN 2.1.0

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