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

📄 testbench.v

📁 包含跳转
💻 V
字号:
`timescale 1ns/1psmodule testbench;    wire [7:0] data_bus,address_out,data_in;    wire RW;        reg clk;    reg reset;        CPU b (.data_out(data_bus),.address_out,.CS,.READ,.WRITE,.clk,.reset);    memory m (.mem_data(data_bus),.mem_address(address_out),.CS(CS),.READ(READ),.WRITE(WRITE));                   always #50 clk=~clk;    initial     begin   /* $monitor($time,,,"AC=%h,AB_sel=%b,IR=%d,PC=%d,state=%d,mux_DB_sel=%b,mem[%d]=%h,GR[%d]=%h,ALU=%h,GR_address=%d,GR_out=%h,GR[1]=%h,GR[0]=%h,C=%b,Z=%b ,ARLE=%B,,AR=%b,,IRLE=%B,,IR=%b,,CPU_in=%B,CPU_data=%b,CPU_address=%b,CLE=%B,ZLE=%B,ACLE=%B,GRLE=%B,PCLE=%B,PCCE=%B",                b.AC.register_out,b.mux_AB_sel,b.IR.register_out,b.PC.pc_out,b.CU.state,b.mux_DB_sel,b.AR.register_out,m.mem[127],b.IR.register_out[2:0],b.GR.GR_out,b.ALU.ALU_O,b.GR.GR_address,b.GR.GR_out,b.GR.register[1],b.GR.register[0],b.C.register_out,b.Z.register_out       ,b.CU.ARLE,b.AR.register_out,b.CU.IRLE,b.IR.register_out,b.data_in,b.data_out,b.address_out,b.CU.CLE,b.CU.ZLE,b.CU.ACLE,b.CU.GRLE,b.CU.PCLE,b.CU.PCCE);        */                //$monitor($time,,,"IR=%b  AC=%b  STATE=%b",b.IR.register_out,b.AC.register_out,b.CU.state);                //$monitor($time,,,"IR=%B  DB_sel=%b  MUL1=%b  MUL2=%b  MUL3L=%b  MUL3H=%b  mem[16]=%b mem[17]=%b mem[18]=%b  mem[19]=%b state=%b",b.IR.register_out,b.mux_DB_sel,b.MUL1_out,b.MUL2_out,b.MUL3L_out,b.MUL3H_out,m.mem[16],m.mem[17],m.mem[18],m.mem[19],b.CU.state);              $monitor($time,,,"IR=%b DB_sel=%b DIV1_out=%b DIV2_out=%B QUOT=%b REMD=%b  MEM[16]=%b  MEM[17]=%B  MEM[18]=%B  MEM[19]=%B state=%b",b.IR.register_out,b.mux_DB_sel,b.DIV1_out,b.DIV2_out,b.QUOT_out,b.REMD_out,m.mem[16],m.mem[17],m.mem[18],m.mem[19],b.CU.state);                clk='b0;        reset='b0;        //multiply test        /* m.mem[0]=8'b10000000;   //mov mul1,mi;        m.mem[1]=8'b00010000;   //the address of mi;        m.mem[16]=8'b00110011;  //the data;        m.mem[2]=8'b10001000;   //mov mul1,mi;        m.mem[3]=8'b00010001;   //the address of mi;        m.mem[17]=8'b00000100;  //the data;        m.mem[4]=8'b10010000;   //multiply;        m.mem[5]=8'b10011000;   //mov mi,mul3l;        m.mem[6]=8'b00010010;   //the address of mi;        m.mem[7]=8'b10100000;   //mov mi,mul3h;        m.mem[8]=8'b00010011; */   //the address of mi;                //DIV test        m.mem[0]=8'b10101000;        m.mem[1]=8'b00010000;        m.mem[16]=8'b00001111;        m.mem[2]=8'b10110000;        m.mem[3]=8'b00010001;        m.mem[17]=8'b0000110;        m.mem[4]=8'b10111000;        m.mem[5]=8'b11000000;        m.mem[6]=8'b00010010;        m.mem[7]=8'b11001000;        m.mem[8]=8'b00010011;                        //others' test        /*m.mem[0]='h0;        m.mem[4]='h10;        m.mem[1]=4;        m.mem[2]='b1000;        m.mem[3]='d127;        m.mem[5]='b11001;        m.mem[6]='h0;        m.mem[7]=119;        m.mem[119]='h37;        m.mem[8]='b00100000;        m.mem[9]='b00101000;        m.mem[10]='b110000;        m.mem[11]='b111000;        m.mem[12]='b1000000;        m.mem[13]='b01001000;        m.mem[14]='b01010000;        m.mem[15]='b01011000;        m.mem[16]='b01111000;        m.mem[17]=8;*/                               #1 reset=1;                reset= #2000 'b0;                #5000 $stop;            end                endmodule            

⌨️ 快捷键说明

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