URL
https://opencores.org/ocsvn/wbddr3/wbddr3/trunk
[/] [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);
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.