📄 mips_trace.cpp
字号:
_do_trace(tf, queue->next_state, "next_state"); _do_trace(tf, queue->buffer, "buffer"); _do_trace(tf, queue->buffer_write, "buffer_write"); _do_trace(tf, queue->buffer_clear, "buffer_clear");}void trace_router_arbiter( sc_trace_file *tf, OUTPUT_ARBITER* arbiter ){ _do_trace(tf, arbiter->arb_req0, "arb_req0"); _do_trace(tf, arbiter->arb_req1, "arb_req1"); _do_trace(tf, arbiter->arb_grant0, "arb_grant0"); _do_trace(tf, arbiter->arb_grant1, "arb_grant1"); _do_trace(tf, arbiter->ch0ctrl->current_state, "ch0.current_state"); _do_trace(tf, arbiter->ch1ctrl->current_state, "ch1.current_state"); _do_trace(tf, arbiter->arbiter->channel_busy, "arbiter.channel_busy"); _do_trace(tf, arbiter->arbiter->selected_channel, "arbiter.selected_channel"); }void trace_router_switch( sc_trace_file *tf, CROSSBAR3x3* swtch ){ _do_trace(tf, swtch->grant0, "grant0"); _do_trace(tf, swtch->grant1, "grant1"); _do_trace(tf, swtch->grant2, "grant2"); }void trace_router_1dim( sc_trace_file *tf, ECUBE_ROUTER_1DIM *router ){ _do_trace(tf, router->data0in, "conn.data0in"); _do_trace(tf, router->data1in, "conn.data1in"); _do_trace(tf, router->data2in, "conn.data2in"); _do_trace(tf, router->data0out, "conn.data0out"); _do_trace(tf, router->data1out, "conn.data1out"); _do_trace(tf, router->data2out, "conn.data2out"); _do_trace(tf, router->select0, "conn.select0"); _do_trace(tf, router->select1, "conn.select1"); _do_trace(tf, router->select2, "conn.select2"); _do_trace(tf, router->rqs0, "conn.rqs0"); _do_trace(tf, router->rqs1, "conn.rqs1"); _do_trace(tf, router->rqs2, "conn.rqs2"); _do_trace(tf, router->req0in, "conn.req0in"); _do_trace(tf, router->req1in, "conn.req1in"); _do_trace(tf, router->req2in, "conn.req2in"); _do_trace(tf, router->req0out, "conn.req0out"); _do_trace(tf, router->req1out, "conn.req1out"); _do_trace(tf, router->req2out, "conn.req2out"); _do_trace(tf, router->ack0in, "conn.ack0in"); _do_trace(tf, router->ack1in, "conn.ack1in"); _do_trace(tf, router->ack2in, "conn.ack2in"); _do_trace(tf, router->ack0out, "conn.ack0out"); _do_trace(tf, router->ack1out, "conn.ack1out"); _do_trace(tf, router->ack2out, "conn.ack2out"); _do_trace(tf, router->arb_data0, "conn.arb_data0"); _do_trace(tf, router->arb_data1, "conn.arb_data1"); _do_trace(tf, router->arb_req0, "conn.arb_req0"); _do_trace(tf, router->arb_req1, "conn.arb_req1"); _do_trace(tf, router->arb_ack0, "conn.arb_ack0"); _do_trace(tf, router->arb_ack1, "conn.arb_ack1"); push_prefix("x0inctrl."); trace_router_inctrl( tf, router->x0inctrl ); pop_prefix(); push_prefix("x1inctrl."); trace_router_inctrl( tf, router->x1inctrl ); pop_prefix(); push_prefix("dinctrl."); trace_router_inctrl( tf, router->dinctrl ); pop_prefix(); push_prefix("x0queue."); trace_router_queue( tf, router->x0queue ); pop_prefix(); push_prefix("x1queue."); trace_router_queue( tf, router->x1queue ); pop_prefix(); push_prefix("dqueue."); trace_router_queue( tf, router->dqueue ); pop_prefix(); push_prefix("arbiter."); trace_router_arbiter( tf, router->arbiter ); pop_prefix(); push_prefix("switch."); trace_router_switch( tf, router->swtch ); pop_prefix();}void trace_router( sc_trace_file *tf, ECUBE_ROUTER *router, const char *prefix ){ push_prefix(prefix); _do_trace(tf, router->xydata, "xydata"); _do_trace(tf, router->xyreq, "xyreq"); _do_trace(tf, router->xyack, "xyack"); push_prefix("xrouter."); trace_router_1dim( tf, router->xrouter ); pop_prefix(); push_prefix("yrouter."); trace_router_1dim( tf, router->yrouter ); pop_prefix(); pop_prefix();}//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void trace_netif( sc_trace_file *tf, NETWORK_INTERFACE *netif, const char *prefix ){ push_prefix( prefix ); _do_trace(tf, netif->buffer_addr, "buffer_addr"); _do_trace(tf, netif->buffer_in, "buffer_in"); _do_trace(tf, netif->buffer_out, "buffer_out"); _do_trace(tf, netif->send_flit, "send_flit"); _do_trace(tf, netif->next_send_flit, "next_send_flit"); _do_trace(tf, netif->send_current_state, "send_current_state"); _do_trace(tf, netif->send_next_state, "send_next_state"); _do_trace(tf, netif->rcv_flit, "rcv_flit"); _do_trace(tf, netif->rcv_current_state, "rcv_current_state"); pop_prefix();}//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void trace_netmips( sc_trace_file *tf, NETmMIPS *mips, const char *prefix ){ push_prefix( prefix ); _do_trace(tf, mips->dout, "dout"); _do_trace(tf, mips->din, "din"); _do_trace(tf, mips->r, "r"); _do_trace(tf, mips->w, "w"); _do_trace(tf, mips->rdyr, "rdyr"); _do_trace(tf, mips->rdyw, "rdyw"); _do_trace(tf, mips->wdata, "wdata"); _do_trace(tf, mips->waddr, "waddr"); _do_trace(tf, mips->send_eop, "send_eop"); _do_trace(tf, mips->rcv_eop, "rcv_eop"); pop_prefix();}//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void trace_mainmem( sc_trace_file *tf, CACHE_MAINMEM *memory, const char *prefix ){ push_prefix( prefix ); _do_trace(tf, memory->mem_addr, "mem_addr"); _do_trace(tf, memory->mem_dout, "mem_dout"); _do_trace(tf, memory->mem_din, "mem_din"); _do_trace(tf, memory->mem_ww, "mem_ww"); _do_trace(tf, memory->mem_wb, "mem_wb"); _do_trace(tf, memory->mem_r, "mem_r"); _do_trace(tf, memory->mem_clk, "mem_clk"); _do_trace(tf, memory->arbiter->addr0_reg, "arbiter.addr0_reg"); _do_trace(tf, memory->arbiter->addr1_reg, "arbiter.addr1_reg"); _do_trace(tf, memory->arbiter->din0_reg, "arbiter.din0_reg"); _do_trace(tf, memory->arbiter->din1_reg, "arbiter.din1_reg"); _do_trace(tf, memory->arbiter->ww0_reg, "arbiter.ww0_reg"); _do_trace(tf, memory->arbiter->ww1_reg, "arbiter.ww1_reg"); _do_trace(tf, memory->arbiter->wb0_reg, "arbiter.wb0_reg"); _do_trace(tf, memory->arbiter->wb1_reg, "arbiter.wb1_reg"); _do_trace(tf, memory->arbiter->r0_reg, "arbiter.r0_reg"); _do_trace(tf, memory->arbiter->r1_reg, "arbiter.r1_reg"); _do_trace(tf, memory->arbiter->grant, "arbiter.grant"); _do_trace(tf, memory->arbiter->reg0, "arbiter.reg0"); _do_trace(tf, memory->arbiter->reg1, "arbiter.reg1"); _do_trace(tf, memory->arbiter->clr0, "arbiter.clr0"); _do_trace(tf, memory->arbiter->clr1, "arbiter.clr1"); /* char stbuf[32]; for (int i = 0; i < RAMSIZE+ROMSIZE; i+=4) { sprintf(stbuf, "memory.mem(%d)", i); _do_trace(tf, memory->memory->bram0->memory[i/4], stbuf); sprintf(stbuf, "memory.mem(%d)", i+1); _do_trace(tf, memory->memory->bram1->memory[i/4], stbuf); sprintf(stbuf, "memory.mem(%d)", i+2); _do_trace(tf, memory->memory->bram2->memory[i/4], stbuf); sprintf(stbuf, "memory.mem(%d)", i+3); _do_trace(tf, memory->memory->bram3->memory[i/4], stbuf); } */ pop_prefix();}//added by fbz to monitor memdev operationvoid trace_memdev( sc_trace_file *tf, MEMDEV * memdev, const char *prefix ){ push_prefix( prefix); _do_trace(tf, memdev->a_read, "mem_dev.a_read"); _do_trace(tf, memdev->a_read_reg, "mem_dev.a_read_reg"); _do_trace(tf, memdev->d_read, "mem_dev.d_read"); _do_trace(tf, memdev->d_write, "mem_dev.d_write"); _do_trace(tf, memdev->w, "mem_dev.w"); _do_trace(tf, memdev->r, "mem_dev.r"); _do_trace(tf, memdev->dmem_wait, "mem_dev.dmem_wait"); _do_trace(tf, memdev->ram_dout, "mem_dev.ram_dout"); _do_trace(tf, memdev->ram_wait, "mem_dev.ram_wait"); _do_trace(tf, memdev->ram_w, "mem_dev.ram_w"); _do_trace(tf, memdev->ram_r, "mem_dev.ram_r"); _do_trace(tf, memdev->ram_addr, "mem_dev.ram_addr"); _do_trace(tf, memdev->ram_din, "mem_dev.ram_din"); _do_trace(tf, memdev->dev_dout, "mem_dev.dev_dout"); _do_trace(tf, memdev->dev_rdyr, "mem_dev.dev_rdyr"); _do_trace(tf, memdev->dev_rdyw, "mem_dev.dev_rdyw"); _do_trace(tf, memdev->dev_w, "mem_dev.dev_w"); _do_trace(tf, memdev->dev_r, "mem_dev.dev_r"); _do_trace(tf, memdev->dev_din, "mem_dev.dev_din"); _do_trace(tf, memdev->dev_wdata, "mem_dev.dev_wdata"); _do_trace(tf, memdev->dev_waddr, "mem_dev.dev_waddr"); _do_trace(tf, memdev->dev_rcv_eop, "mem_dev.dev_rcv_eop"); _do_trace(tf, memdev->dev_send_eop, "mem_dev.dev_send_eop"); _do_trace(tf, memdev->bufw, "mem_dev.bufw"); _do_trace(tf, memdev->dev_buffer, "mem_dev.dev_buffer"); _do_trace(tf, memdev->sending, "mem_dev.sending"); _do_trace(tf, memdev->n_sending, "mem_dev.n_sending"); pop_prefix();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -