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

Subversion Repositories wbddr3

[/] [wbddr3/] [trunk/] [bench/] [cpp/] [ddrsdram_tb.cpp] - Diff between revs 4 and 6

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

Rev 4 Rev 6
Line 80... Line 80...
                        m_core->o_ddr_bus_oe,
                        m_core->o_ddr_bus_oe,
                        m_core->o_ddr_addr,
                        m_core->o_ddr_addr,
                        m_core->o_ddr_ba,
                        m_core->o_ddr_ba,
                        m_core->o_ddr_data);
                        m_core->o_ddr_data);
 
 
 
                bool    writeout = (!m_core->v__DOT__reset_override);
 
 
 
                if (writeout) {
 
                        int cmd;
 
                        cmd = (m_core->o_ddr_reset_n?0:32)
 
                                |(m_core->o_ddr_cke?0:16)
 
                                |(m_core->o_ddr_cs_n?8:0)
 
                                |(m_core->o_ddr_ras_n?4:0)
 
                                |(m_core->o_ddr_cas_n?2:0)
 
                                |(m_core->o_ddr_we_n?1:0);
                printf("%08lx-WB: %s/%s %s%s%s %s@0x%08x[%08x/%08x] -- ",
                printf("%08lx-WB: %s/%s %s%s%s %s@0x%08x[%08x/%08x] -- ",
                        m_tickcount,
                        m_tickcount,
                        (m_core->i_wb_cyc)?"CYC":"   ",
                        (m_core->i_wb_cyc)?"CYC":"   ",
                        (m_core->i_wb_stb)?"STB":"   ",
                        (m_core->i_wb_stb)?"STB":"   ",
                        (m_core->o_wb_stall)?"STALL":"     ",
                        (m_core->o_wb_stall)?"STALL":"     ",
Line 110... Line 120...
                        (m_core->o_ddr_ba),
                        (m_core->o_ddr_ba),
                        (m_core->o_ddr_addr),
                        (m_core->o_ddr_addr),
                        (m_core->i_ddr_data),
                        (m_core->i_ddr_data),
                        (m_core->o_ddr_data));
                        (m_core->o_ddr_data));
 
 
                // Reset logic
                        /*
                printf(" RST(%06x%s[%d] - %08x->%08x)",
                        // Reset logic
                        m_core->v__DOT__reset_timer,
                        printf(" RST(%06x%s[%d] - %08x->%08x)",
                        (m_core->v__DOT__reset_ztimer)?"Z":" ",
                                m_core->v__DOT__reset_timer,
                        (m_core->v__DOT__reset_address),
                                (m_core->v__DOT__reset_ztimer)?"Z":" ",
                        (m_core->v__DOT__reset_instruction),
                                (m_core->v__DOT__reset_address),
                        (m_core->v__DOT__reset_cmd));
                                (m_core->v__DOT__reset_instruction),
 
                                (m_core->v__DOT__reset_cmd));
 
                        */
 
 
 
                        printf(" %s%03x[%d]%04x:%d",
 
                                (m_core->v__DOT__r_pending)?"R":" ",
 
                                (m_core->v__DOT__r_row),
 
                                (m_core->v__DOT__r_bank),
 
                                (m_core->v__DOT__r_col),0);
 
                                // (m_core->v__DOT__r_sub));
 
                        printf(" %s%s%s",
 
                                (m_core->v__DOT__all_banks_closed)?"b":"B",
 
                                (m_core->v__DOT__need_close_bank)?"C":"N",
 
                                //:(m_core->v__DOT__maybe_close_next_bank)?"c":"N",
 
                                (m_core->v__DOT__need_open_bank)?"O":"K");
 
                                // :(m_core->v__DOT__maybe_open_next_bank)?"o":"K");
 
                        for(int i=0; i<8; i++) {
 
                                printf("%s%x@%05x%s",
 
                                        (m_core->v__DOT__r_bank==i)?"R":"[",
 
                                        m_core->v__DOT__bank_status[i],
 
                                        m_core->v__DOT__bank_address[i],
 
                                        (m_core->v__DOT__r_nxt_bank==i)?"N":"]");
 
                        }
 
 
 
 
                extern int gbl_state, gbl_counts;
                extern int gbl_state, gbl_counts;
                printf(" %d:%08x ", gbl_state, gbl_counts);
                        printf(" %2d:%08x ", gbl_state, gbl_counts);
 
 
 
                        printf(" %s%s%s%s%s:%08x:%08x",
 
                                (m_core->v__DOT__reset_override)?"R":" ",
 
                                (m_core->v__DOT__need_refresh)?"N":" ",
 
                                (m_core->v__DOT__need_close_bank)?"C":" ",
 
                                (m_core->v__DOT__need_open_bank)?"O":" ",
 
                                (m_core->v__DOT__valid_bank)?"V":" ",
 
                                m_core->v__DOT__activate_bank_cmd,
 
                                m_core->v__DOT__cmd);
 
 
 
                        printf(" F%05x:%d%d%d:%d:%08x",
 
                                m_core->v__DOT__refresh_clk,
 
                                m_core->v__DOT__need_refresh,
 
                                m_core->v__DOT__midrefresh,
 
                                m_core->v__DOT__endrefresh,
 
                                m_core->v__DOT__midrefresh_hctr,
 
                                m_core->v__DOT__midrefresh_lctr);
 
 
                if (m_core->v__DOT__reset_override)
                if (m_core->v__DOT__reset_override)
                        printf(" OVERRIDE");
                        printf(" OVERRIDE");
 
                        //if(m_core->v__DOT__last_open_bank)printf(" LST-OPEN");
 
                        switch(cmd) {
 
                        case DDR_MRSET:     printf(" MRSET"); break;
 
                        case DDR_REFRESH:   printf(" REFRESH"); break;
 
                        case DDR_PRECHARGE: printf(" PRECHARGE%s", (m_core->o_ddr_addr&0x400)?"-ALL":""); break;
 
                        case DDR_ACTIVATE:  printf(" ACTIVATE"); break;
 
                        case DDR_WRITE:     printf(" WRITE"); break;
 
                        case DDR_READ:      printf(" READ"); break;
 
                        case DDR_ZQS:       printf(" ZQS"); break;
 
                        case DDR_NOOP:      printf(" NOOP"); break;
 
                        default: printf(" Unknown-CMD(%02x)", cmd); break;
 
                        }
 
 
 
                        // Decode the command
 
 
                printf("\n");
                printf("\n");
 
                }
 
 
                m_core->eval();
                m_core->eval();
                m_core->i_clk = 0;
                m_core->i_clk = 0;
                m_core->eval();
                m_core->eval();
 
 

powered by: WebSVN 2.1.0

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