/** * ModCanvas contructor. */ ModCanvas::ModCanvas(char *name, QObject *parent) : QCanvas(parent) { canvas_sizex=150; canvas_sizey=20; resize(canvas_sizex,canvas_sizey); setBackgroundColor(QColor("White")); QCanvasText *nameLabel=new QCanvasText(name,this); nameLabel->setTextFlags(AlignHCenter); nameLabel->move(canvas_sizex/2,1); nameLabel->setVisible(true); setDoubleBuffering(true); }
void DW1000Class::begin(int irq, int rst) { // generous initial init/wake-up-idle delay delay(5); // start SPI SPI.begin(); SPI.usingInterrupt(irq); // pin and basic member setup _rst = rst; _irq = irq; _deviceMode = IDLE_MODE; pinMode(_rst, OUTPUT); digitalWrite(_rst, HIGH); // reset chip (either soft or hard) if(_rst <= 0) { softReset(); } else { reset(); } // try locking clock at PLL speed (should be done already, // but just to be sure) enableClock(AUTO_CLOCK); delay(5); // default network and node id writeValueToBytes(_networkAndAddress, 0xFF, LEN_PANADR); writeNetworkIdAndDeviceAddress(); // default system configuration memset(_syscfg, 0, LEN_SYS_CFG); setDoubleBuffering(false); setInterruptPolarity(true); writeSystemConfigurationRegister(); // default interrupt mask, i.e. no interrupts clearInterrupts(); writeSystemEventMaskRegister(); // attach interrupt attachInterrupt(_irq, DW1000Class::handleInterrupt, RISING); }
CCanvas::CCanvas (QWidget * parent, const char *name) :Q3Canvas (parent, name) { setDoubleBuffering (true); }
MIPSarchCanvas::MIPSarchCanvas(mips &m, QObject *parent) : Q3Canvas(parent), mips1(m) { // set background to MipsArch.png QPixmap backFig("GUI/MIPS_datapathPipe4.png"); resize(backFig.width(),backFig.height()); setBackgroundPixmap(backFig); // create and position the items that display the port values PortValItem *portVal; Q3CanvasText *qText; // instruction labels in stages qText=new Q3CanvasText("nop",this); qText->setTextFlags(Qt::AlignLeft | Qt::AlignTop); qText->setVisible(true); qText->move(10,6); qText->setColor(QColor("red")); instStage.push_back(qText); pcStage.push_back(new PortValRead(mips1.PCreg->dout,"PC")); validpcStage.push_back(new PortValRead(mips1.reg_if_id->valid_if,"valid_PC")); qText=new Q3CanvasText("nop",this); qText->setTextFlags(Qt::AlignLeft | Qt::AlignTop); qText->setVisible(true); qText->move(253,6); qText->setColor(QColor("red")); instStage.push_back(qText); pcStage.push_back(new PortValRead(mips1.reg_if_id->PC_id,"PC_id")); validpcStage.push_back(new PortValRead(mips1.reg_if_id->valid_id,"valid_PC_id")); qText=new Q3CanvasText("nop",this); qText->setTextFlags(Qt::AlignLeft | Qt::AlignTop); qText->setVisible(true); qText->move(484,6); qText->setColor(QColor("red")); instStage.push_back(qText); pcStage.push_back(new PortValRead(mips1.reg_id_exe->PC_exe,"PC_exe")); validpcStage.push_back(new PortValRead(mips1.reg_id_exe->valid_exe,"valid_PC_exe")); qText=new Q3CanvasText("nop",this); qText->setTextFlags(Qt::AlignLeft | Qt::AlignTop); qText->setVisible(true); qText->move(661,6); qText->setColor(QColor("red")); instStage.push_back(qText); pcStage.push_back(new PortValRead(mips1.reg_exe_mem->PC_mem,"PC_mem")); validpcStage.push_back(new PortValRead(mips1.reg_exe_mem->valid_mem,"valid_PC_mem")); qText=new Q3CanvasText("nop",this); qText->setTextFlags(Qt::AlignLeft | Qt::AlignTop); qText->setVisible(true); qText->move(800,6); qText->setColor(QColor("red")); instStage.push_back(qText); pcStage.push_back(new PortValRead(mips1.reg_mem_wb->PC_wb,"PC_wb")); validpcStage.push_back(new PortValRead(mips1.reg_mem_wb->valid_wb,"valid_PC_wb")); // value of port signals // IF portVal=new PortValItem(this,mips1.instmem->addr, "PC"); portVal->move(81,260); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.add4->res, "PC4"); portVal->move(110,91); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.PCreg->din, "NPC"); portVal->move(11,239); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.instmem->inst, "inst"); portVal->move(153,245); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); //ID portVal=new PortValItem(this,mips1.ctrl->RegWrite, "RegWrite"); portVal->move(383,54); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.ctrl->MemtoReg, "MemtoReg"); portVal->move(383,66); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.ctrl->Branch, "Branch"); portVal->move(383,78); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.ctrl->MemRead, "MemRead"); portVal->move(383,90); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.ctrl->MemWrite, "MemWrite"); portVal->move(383,102); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.ctrl->ALUSrc, "ALUSrc"); portVal->move(383,114); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.ctrl->ALUOp, "ALUOp"); portVal->move(383,126); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.ctrl->RegDst, "RegDst"); portVal->move(383,138); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.reg_if_id->inst_id, "inst_id"); portVal->move(218,256); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.dec1->opcode, "opcode"); portVal->move(290,95); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.dec1->funct, "funct"); portVal->move(290,130); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.dec1->rd, "rd"); portVal->move(370,360); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.dec1->imm, "imm"); portVal->move(299,383); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.rfile->reg1, "r1"); portVal->move(334,224); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.rfile->reg2, "r2"); portVal->move(334,243); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.rfile->data1, "r1_out"); portVal->move(422,222); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.rfile->data2, "r2_out"); portVal->move(422,251); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.e1->dout, "imm_ext"); portVal->move(403,398); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.hazard_unit->enable_pc, "enable_pc"); portVal->move(124,412); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.hazard_unit->reset_idexe, "reset_haz_idexe"); portVal->move(280,422); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); //EXE portVal=new PortValItem(this,mips1.reg_id_exe->RegWrite_exe, "RegWrite_exe"); portVal->move(475,54); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.reg_id_exe->MemtoReg_exe, "MemtoReg_exe"); portVal->move(475,66); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.reg_id_exe->Branch_exe, "Branch_exe"); portVal->move(475,78); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.reg_id_exe->MemRead_exe, "MemRead_exe"); portVal->move(475,90); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.reg_id_exe->MemWrite_exe, "MemWrite_exe"); portVal->move(475,102); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.reg_id_exe->ALUSrc_exe, "ALUSrc_exe"); portVal->move(475,114); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.reg_id_exe->ALUOp_exe, "ALUOp_exe"); portVal->move(475,126); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.reg_id_exe->rega_exe, "rega_exe"); portVal->move(472,220); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.reg_id_exe->regb_exe, "regb_exe"); portVal->move(472,250); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.alu1->din2, "alu_din2"); portVal->move(535,287); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.reg_id_exe->WriteReg_exe, "WriteReg_exe"); portVal->move(475,348); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.reg_id_exe->PC4_exe, "PC4_exe"); portVal->move(472,171); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.addbr->res, "BranchTarget"); portVal->move(599,167); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.sl2->dout, "addr_ext"); portVal->move(519,192); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.alu1->dout, "alu_dout"); portVal->move(591,269); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.alu1->zero, "zero"); portVal->move(591,236); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); //MEM portVal=new PortValItem(this,mips1.reg_exe_mem->RegWrite_mem, "RegWrite_mem"); portVal->move(652,54); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.reg_exe_mem->MemtoReg_mem, "MemtoReg_mem"); portVal->move(652,66); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.reg_exe_mem->Branch_mem, "Branch_mem"); portVal->move(652,78); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.reg_exe_mem->MemRead_mem, "MemRead_mem"); portVal->move(652,90); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.reg_exe_mem->MemWrite_mem, "MemWrite_mem"); portVal->move(652,102); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.reg_exe_mem->aluOut_mem, "aluOut_mem"); portVal->move(652,250); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.reg_exe_mem->regb_mem, "regb_mem"); portVal->move(684,294); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.reg_exe_mem->WriteReg_mem, "WriteReg_mem"); portVal->move(652,349); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.datamem->dout, "dmem.dout"); portVal->move(758,300); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.reg_exe_mem->Zero_mem, "Zero_mem"); portVal->move(663,205); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.a1->dout, "BranchTaken"); portVal->move(449,3); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.reg_exe_mem->BranchTarget_mem, "BranchTarget_mem"); portVal->move(485,24); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); //WB portVal=new PortValItem(this,mips1.reg_mem_wb->memOut_wb, "memOut_wb"); portVal->move(806,290); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.reg_mem_wb->aluOut_wb, "aluOut_wb"); portVal->move(806,328); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.reg_mem_wb->MemtoReg_wb, "MemtoReg_wb"); portVal->move(806,63); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.reg_mem_wb->WriteReg_wb, "WriteReg_wb"); portVal->move(612,417); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.reg_mem_wb->RegWrite_wb, "RegWrite_wb"); portVal->move(612,395); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); portVal=new PortValItem(this,mips1.rfile->datawr, "WriteVal"); portVal->move(612,430); portVal->setColor(QColor("blue")); portValVec.push_back(portVal); updateArch(); setDoubleBuffering(true); }