⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main_net.cpp

📁 国外开源的一个片上网络系统的源代码
💻 CPP
字号:
/* *  TU Eindhoven *  Eindhoven, The Netherlands * *  Name            :    * *  Author          :   A.S.Slusarczyk@tue.nl * *  Date            :    * *  Function        :    * */#define NOVCD//#define MIPSVCD//#define MEMVCD//#define ROUTERVCD#include "netmips.h"#include "router.h"#include "_network2x2.h"#include "mips_trace.h"#ifdef MEM_DBG#include "dbg_mem.h"#endif#include <time.h>sc_signal<bool> clk;unsigned sim_time = 0, period = 10;int sc_main(int argc, char *argv[]){  char stbuf[1024];    sc_signal< bool > rst, en;    sc_trace_file *tf;  tf = sc_create_vcd_trace_file("mips");#include "_network2x2.cpp"#ifdef MEM_DBG  dbg_mem_init( dp_x0y0.mips, dp_x0y1.mips, dp_x1y0.mips, dp_x1y1.mips );#endif    sc_initialize();  clk = 0; rst = 1; en = 0;   sc_cycle(period/2);  clk = 1;   sc_cycle(period/2);  rst = 0;  clk = 0;   sc_cycle(period/2);      en = 1;    /*   *	Simulate program execution   */  int max_time = 0;  if (argc == 2) max_time = atoi(argv[1]);  if (max_time == 0) max_time = 500;  bool e00=false, e10=false, e01=false, e11=false;    int dump_time = time(0);    while( max_time < 0 || sim_time < (unsigned)max_time )	{	  clk = 0;	  sc_cycle(period/2);	  clk = 1;	  sc_cycle(period/2);	  sim_time += period;      if( sim_time % 10000 == 0 ){        cout << dec << sim_time << '/' << max_time << " @ " << sc_time_stamp() << " PC:";        hack_pc();      }            if( !e00 && dp_x0y0_pc.read().to_uint() == 0x28 ) {        cout << "FINISHED x0y0 @ " << sc_time_stamp() << endl;        e00 = true;      }      if( !e10 && dp_x1y0_pc.read().to_uint() == 0x28 ) {        cout << "FINISHED x1y0 @ " << sc_time_stamp() << endl;        e10 = true;      }      if( !e01 && dp_x0y1_pc.read().to_uint() == 0x28 ) {        cout << "FINISHED x0y1 @ " << sc_time_stamp() << endl;        e01 = true;      }      if( !e11 && dp_x1y1_pc.read().to_uint() == 0x28 ) {        cout << "FINISHED x1y1 @ " << sc_time_stamp() << endl;        e11 = true;      }      if( e00 && e10 && e01 && e11 ) {        cout << "ALL FINISHED @ " << sc_time_stamp() << endl;        break;      }            if( time(0) - dump_time >= 60 ){        dump_time = time(0);        dp_x0y0.mips->dmem->mem_dump("mips_ram.x0y0.dump");        dp_x0y1.mips->dmem->mem_dump("mips_ram.x0y1.dump");        dp_x1y0.mips->dmem->mem_dump("mips_ram.x1y0.dump");        dp_x1y1.mips->dmem->mem_dump("mips_ram.x1y1.dump");      }    }#ifndef CACHE	dp_x0y0.mips->dmem->mem_dump("mips_ram.x0y0.dump");	dp_x0y1.mips->dmem->mem_dump("mips_ram.x0y1.dump");	dp_x1y0.mips->dmem->mem_dump("mips_ram.x1y0.dump");	dp_x1y1.mips->dmem->mem_dump("mips_ram.x1y1.dump");#else	dp_x0y0.mips->memory->memory->mem_dump("mem.x0y0.dump");	dp_x0y1.mips->memory->memory->mem_dump("mem.x0y1.dump");	dp_x1y0.mips->memory->memory->mem_dump("mem.x1y0.dump");	dp_x1y1.mips->memory->memory->mem_dump("mem.x1y1.dump");#endif  sc_close_vcd_trace_file(tf);  return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -