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

📄 main_org.cpp

📁 改进的基于6个mips核的NOC网络
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	  sprintf(stbuf, "registers.reg(%d)", i);	  sc_trace(tf, mips.registers->rfile[i], stbuf);	}#else  sc_trace(tf, mips.bus_decoder_nb_instr_20_16, 	"bus_decoder_nb_instr_20_16");  sc_trace(tf, mips.bus_decoder_nb_instr_25_21, 	"bus_decoder_nb_instr_25_21");  for (int i = 0; i < REGSIZE; i++)	{	  sprintf(stbuf, "registers.reg(%d_1h)", i);	  sc_trace(tf, mips.registers->regs1->bramh->memory[i], stbuf);	  sprintf(stbuf, "registers.reg(%d_1l)", i);	  sc_trace(tf, mips.registers->regs1->braml->memory[i], stbuf);	  sprintf(stbuf, "registers.reg(%d_2h)", i);	  sc_trace(tf, mips.registers->regs2->bramh->memory[i], stbuf);	  sprintf(stbuf, "registers.reg(%d_2l)", i);	  sc_trace(tf, mips.registers->regs2->braml->memory[i], stbuf);	}  sc_trace(tf, mips.registers->regs1->DOAH,"registers1.DOAH");sc_trace(tf, mips.registers->regs1->DOAL,"registers1.DOAL");  sc_trace(tf, mips.registers->regs1->ADDRAH,"registers1.ADDRAH");sc_trace(tf, mips.registers->regs1->ADDRAL,"registers1.ADDRAL");  sc_trace(tf, mips.registers->regs1->DIAH,"registers1.DIAH");sc_trace(tf, mips.registers->regs1->DIAL,"registers1.DIAL");  sc_trace(tf, mips.registers->regs1->ENAH,"registers1.ENAH");sc_trace(tf, mips.registers->regs1->ENAL,"registers1.ENAL");  sc_trace(tf, mips.registers->regs1->WEAH,"registers1.WEAH");sc_trace(tf, mips.registers->regs1->WEAL,"registers1.WEAL");  sc_trace(tf, mips.registers->regs1->CLKAH,"registers1.CLKAH");sc_trace(tf, mips.registers->regs1->CLKAL,"registers1.CALKAL");  sc_trace(tf, mips.registers->regs1->RSTAH,"registers1.RSTAH");sc_trace(tf, mips.registers->regs1->RSTAL,"registers1.RSTAL");  sc_trace(tf, mips.registers->regs1->DOBH,"registers1.DOBH");sc_trace(tf, mips.registers->regs1->DOBL,"registers1.DOBL");  sc_trace(tf, mips.registers->regs1->ADDRBH,"registers1.ADDRBH");sc_trace(tf, mips.registers->regs1->ADDRBL,"registers1.ADDRBL");  sc_trace(tf, mips.registers->regs1->DIBH,"registers1.DIBH");sc_trace(tf, mips.registers->regs1->DIBL,"registers1.DIBL");  sc_trace(tf, mips.registers->regs1->ENBH,"registers1.ENBH");sc_trace(tf, mips.registers->regs1->ENBL,"registers1.ENBL");  sc_trace(tf, mips.registers->regs1->WEBH,"registers1.WEBH");sc_trace(tf, mips.registers->regs1->WEBL,"registers1.WEBL");  sc_trace(tf, mips.registers->regs1->CLKBH,"registers1.CLKBH");sc_trace(tf, mips.registers->regs1->CLKBL,"registers1.CBLKBL");  sc_trace(tf, mips.registers->regs1->RSTBH,"registers1.RSTBH");sc_trace(tf, mips.registers->regs1->RSTBL,"registers1.RSTBL");  sc_trace(tf, mips.registers->regs2->DOAH,"registers2.DOAH");sc_trace(tf, mips.registers->regs2->DOAL,"registers2.DOAL");  sc_trace(tf, mips.registers->regs2->ADDRAH,"registers2.ADDRAH");sc_trace(tf, mips.registers->regs2->ADDRAL,"registers2.ADDRAL");  sc_trace(tf, mips.registers->regs2->DIAH,"registers2.DIAH");sc_trace(tf, mips.registers->regs2->DIAL,"registers2.DIAL");  sc_trace(tf, mips.registers->regs2->ENAH,"registers2.ENAH");sc_trace(tf, mips.registers->regs2->ENAL,"registers2.ENAL");  sc_trace(tf, mips.registers->regs2->WEAH,"registers2.WEAH");sc_trace(tf, mips.registers->regs2->WEAL,"registers2.WEAL");  sc_trace(tf, mips.registers->regs2->CLKAH,"registers2.CLKAH");sc_trace(tf, mips.registers->regs2->CLKAL,"registers2.CALKAL");  sc_trace(tf, mips.registers->regs2->RSTAH,"registers2.RSTAH");sc_trace(tf, mips.registers->regs2->RSTAL,"registers2.RSTAL");  sc_trace(tf, mips.registers->regs2->DOBH,"registers2.DOBH");sc_trace(tf, mips.registers->regs2->DOBL,"registers2.DOBL");  sc_trace(tf, mips.registers->regs2->ADDRBH,"registers2.ADDRBH");sc_trace(tf, mips.registers->regs2->ADDRBL,"registers2.ADDRBL");  sc_trace(tf, mips.registers->regs2->DIBH,"registers2.DIBH");sc_trace(tf, mips.registers->regs2->DIBL,"registers2.DIBL");  sc_trace(tf, mips.registers->regs2->ENBH,"registers2.ENBH");sc_trace(tf, mips.registers->regs2->ENBL,"registers2.ENBL");  sc_trace(tf, mips.registers->regs2->WEBH,"registers2.WEBH");sc_trace(tf, mips.registers->regs2->WEBL,"registers2.WEBL");  sc_trace(tf, mips.registers->regs2->CLKBH,"registers2.CLKBH");sc_trace(tf, mips.registers->regs2->CLKBL,"registers2.CBLKBL");  sc_trace(tf, mips.registers->regs2->RSTBH,"registers2.RSTBH");sc_trace(tf, mips.registers->regs2->RSTBL,"registers2.RSTBL");#endif#ifndef BRAM  for (int i = 0; i < RAMSIZE; i++)	{	  sprintf(stbuf, "memory.dmem(%d)", i);	  sc_trace(tf, mips.dmem->ramfile[i], stbuf);	}#else  for (int i = 0; i < RAMSIZE ; i+=4)	{	  sprintf(stbuf, "memory.dmem(%d)", i);	  sc_trace(tf, mips.dmem->bram0->memory[i/4], stbuf);	  sprintf(stbuf, "memory.dmem(%d)", i+1);	  sc_trace(tf, mips.dmem->bram1->memory[i/4], stbuf);	  sprintf(stbuf, "memory.dmem(%d)", i+2);	  sc_trace(tf, mips.dmem->bram2->memory[i/4], stbuf);	  sprintf(stbuf, "memory.dmem(%d)", i+3);	  sc_trace(tf, mips.dmem->bram3->memory[i/4], stbuf);	}  sc_trace(tf, mips.dmem->DO1,"dmem.DO1");sc_trace(tf, mips.dmem->DO0,"dmem.DO0");  sc_trace(tf, mips.dmem->ADDR1,"dmem.ADDR1");sc_trace(tf, mips.dmem->ADDR0,"dmem.ADDR0");  sc_trace(tf, mips.dmem->DI1,"dmem.DI1");sc_trace(tf, mips.dmem->DI0,"dmem.DI0");  sc_trace(tf, mips.dmem->EN1,"dmem.EN1");sc_trace(tf, mips.dmem->EN0,"dmem.EN0");  sc_trace(tf, mips.dmem->WE1,"dmem.WE1");sc_trace(tf, mips.dmem->WE0,"dmem.WE0");  sc_trace(tf, mips.dmem->CLK1,"dmem.CLK1");sc_trace(tf, mips.dmem->CLK0,"dmem.CLK0");  sc_trace(tf, mips.dmem->RST1,"dmem.RST1");sc_trace(tf, mips.dmem->RST0,"dmem.RST0");  sc_trace(tf, mips.dmem->DO3,"dmem.DO3");sc_trace(tf, mips.dmem->DO2,"dmem.DO2");  sc_trace(tf, mips.dmem->ADDR3,"dmem.ADDR3");sc_trace(tf, mips.dmem->ADDR2,"dmem.ADDR2");  sc_trace(tf, mips.dmem->DI3,"dmem.DI3");sc_trace(tf, mips.dmem->DI2,"dmem.DI2");  sc_trace(tf, mips.dmem->EN3,"dmem.EN3");sc_trace(tf, mips.dmem->EN2,"dmem.EN2");  sc_trace(tf, mips.dmem->WE3,"dmem.WE3");sc_trace(tf, mips.dmem->WE2,"dmem.WE2");  sc_trace(tf, mips.dmem->CLK3,"dmem.CLK3");sc_trace(tf, mips.dmem->CLK2,"dmem.CLK2");  sc_trace(tf, mips.dmem->RST3,"dmem.RST3");sc_trace(tf, mips.dmem->RST2,"dmem.RST2");#ifdef SPYING  sc_trace(tf, mips.dmem->dDO1,"dbgdmem.DO1");sc_trace(tf, mips.dmem->dDO0,"dbgdmem.DO0");  sc_trace(tf, mips.dmem->dADDR1,"dbgdmem.ADDR1");sc_trace(tf, mips.dmem->dADDR0,"dbgdmem.ADDR0");  sc_trace(tf, mips.dmem->dDI1,"dbgdmem.DI1");sc_trace(tf, mips.dmem->dDI0,"dbgdmem.DI0");  sc_trace(tf, mips.dmem->dEN1,"dbgdmem.EN1");sc_trace(tf, mips.dmem->dEN0,"dbgdmem.EN0");  sc_trace(tf, mips.dmem->dWE1,"dbgdmem.WE1");sc_trace(tf, mips.dmem->dWE0,"dbgdmem.WE0");  sc_trace(tf, mips.dmem->dCLK1,"dbgdmem.CLK1");sc_trace(tf, mips.dmem->dCLK0,"dbgdmem.CLK0");  sc_trace(tf, mips.dmem->dRST1,"dbgdmem.RST1");sc_trace(tf, mips.dmem->dRST0,"dbgdmem.RST0");  sc_trace(tf, mips.dmem->dDO3,"dbgdmem.DO3");sc_trace(tf, mips.dmem->dDO2,"dbgdmem.DO2");  sc_trace(tf, mips.dmem->dADDR3,"dbgdmem.ADDR3");sc_trace(tf, mips.dmem->dADDR2,"dbgdmem.ADDR2");  sc_trace(tf, mips.dmem->dDI3,"dbgdmem.DI3");sc_trace(tf, mips.dmem->dDI2,"dbgdmem.DI2");  sc_trace(tf, mips.dmem->dEN3,"dbgdmem.EN3");sc_trace(tf, mips.dmem->dEN2,"dbgdmem.EN2");  sc_trace(tf, mips.dmem->dWE3,"dbgdmem.WE3");sc_trace(tf, mips.dmem->dWE2,"dbgdmem.WE2");  sc_trace(tf, mips.dmem->dCLK3,"dbgdmem.CLK3");sc_trace(tf, mips.dmem->dCLK2,"dbgdmem.CLK2");  sc_trace(tf, mips.dmem->dRST3,"dbgdmem.RST3");sc_trace(tf, mips.dmem->dRST2,"dbgdmem.RST2");#endif#endif#ifdef BROM  for (int i = 0; i < ROMSIZE ; i+=4)	{	  sprintf(stbuf, "memory.imem(%dh)", i);	  sc_trace(tf, mips.imem->bramh->memory[i/4], stbuf);	  sprintf(stbuf, "memory.imem(%dl)", i);	  sc_trace(tf, mips.imem->braml->memory[i/4], stbuf);	}  sc_trace(tf, mips.imem->DOH,"imem.DOH");sc_trace(tf, mips.imem->DOL,"imem.DOL");  sc_trace(tf, mips.imem->ADDRH,"imem.ADDRH");sc_trace(tf, mips.imem->ADDRL,"imem.ADDRL");  sc_trace(tf, mips.imem->DIH,"imem.DIH");sc_trace(tf, mips.imem->DIL,"imem.DIL");  sc_trace(tf, mips.imem->ENH,"imem.ENH");sc_trace(tf, mips.imem->ENL,"imem.ENL");  sc_trace(tf, mips.imem->WEH,"imem.WEH");sc_trace(tf, mips.imem->WEL,"imem.WEL");  sc_trace(tf, mips.imem->CLKH,"imem.CLKH");sc_trace(tf, mips.imem->CLKL,"imem.CLKL");  sc_trace(tf, mips.imem->RSTH,"imem.RSTH");sc_trace(tf, mips.imem->RSTL,"imem.RSTL");#else  for (int i = 0; i < ROMSIZE; i++)	{	  sprintf(stbuf, "memory.imem(%d)", i);	  sc_trace(tf, mips.imem->romfile[i], stbuf);	}#endif#ifdef SPYING  commin = 0;  comminout = 0;#endif  sc_initialize();  /*********************************************************************************	Start simulation  *********************************************************************************/  unsigned sim_time = 0, period = 20;  // reset the system  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   */  unsigned int max_time = 0;  if (argc == 2) max_time = atoi(argv[1]);  if (max_time == 0) max_time = 500;  while( max_time<0 || sim_time < max_time )	{	  clk = 0;	  sc_cycle(period/2);	  clk = 1;	  sc_cycle(period/2);	  sim_time += period;            unsigned pc = sc_uint<32>(mips.pc->out.read());      if( pc == 0x90 ) { cout << "END: " << sim_time/period << " cycles" << endl; break; }	}  mips.dmem->ram_dump("mips_ram.dump");  sc_close_vcd_trace_file(tf);  return 0;}

⌨️ 快捷键说明

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