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

📄 test_dlx.v

📁 这是我个人写的DLX处理器流水线的Verilog代码
💻 V
字号:
//*************************************************************//////                    test dlxpipeline //                   author : linzhengyi////*************************************************************//`timescale 1ns/100psmodule test;reg clock_i;reg reset_i;reg [31:0] inst_i;wire [31:0] pc_o;wire [31:0] mem_addr_o;wire [31:0] mdata_i;wire [31:0] mdata_o;wire mem_wr_en_o;dlxpipeline lzy(.clock(clock_i),.reset(reset_i),.pc(pc_o),.inst_in(inst_i),.memdata_in(mdata_i),                .memdata_out(mdata_o),.mem_addr(mem_addr_o),.mem_wr_en(mem_wr_en_o));			         RAM_BLOCK ram(.adr_i(mem_addr_o),.clk_i(clock_i),.we_i(mem_wr_en_o),.data_i(mdata_o),.data_o(mdata_i));			 initial  begin  	  	clock_i = 1'b1;  	reset_i = 1'b1;  	                    //  opcode  rs1  rd  imm           //  opcode  rs1  rs2  rd  func            //  opcode   offset                    //    6      5    5   16           //    6      5    5   5    11             //    6        26                       //inst_i = {6'b010000,5'b00001,5'b00010,16'b0000_1111_0000_1010};   //             ADDI      R1        R2            imm            	    #30; 	  	reset_i = 1'b0;  	#20;  	reset_i = 1'b1;  	#40;  	  	    inst_i = {6'b010000,5'b00001,5'b00010,16'b0000_1111_0000_1010};     //  reg[R1] + imm -> reg[R2]    //           ADDI      R1       R2            3850    #10;        inst_i = {6'b010010,5'b00011,5'b00100,16'b0000_1111_1111_0110};     //  reg[R3] - imm -> reg[R4]    //           SUBI      R3       R4             4086    #10;		        inst_i = {6'b010101,5'b00101,5'b00110,16'b1000_0100_0110_0000};     //  reg[R5] | imm -> reg[R6]    //            ORI      R5       R6            33888    #10;	        inst_i = {6'b110000,5'b00111,5'b01000,5'b01001,11'b0000_0001_111};  //  if(reg[R7]==reg[R8]) 1 -> reg[R9] or 0 -> reg[R9]    //           SEQ       R7       R8       R9           15    #10;        inst_i = {6'b100000,5'b01010,5'b00000,16'b0000_0000_0000_1110};     //  if(reg[R10]==0) PC + imm16 + 4 ->PC    //           BEQZ      R10                        14    #10;        inst_i = {6'b100011,5'b01011,5'b00000,16'b0000_0000_0000_0000};     //   PC + 8-> reg[R31], reg[R11] -> PC    //           JALR      R11                        #10;	              			    inst_i = {6'b010111,5'b00010,5'b01100,16'b0000_0000_0000_0101};     //  reg[R2] << imm -> reg[R12]    //           SLLI      R2       R12             5    #10;		         inst_i = {6'b001010,5'b00100,5'b00110,16'b0000_0000_0000_1000};     //   reg[R6] -> Mem[8 + reg[R4]]    //             SW       R4       R6             #8    #10;               inst_i = {6'b000101,5'b10001,5'b10110,16'b0000_0000_0001_0111};     //   Mem[imm + reg[R17]] -> reg[R22]    //             LW       R17       R22           #23    #10;            inst_i = {6'b011001,5'b00100,5'b11100,16'b0000_0000_0000_0101};     //  sign>> imm ## reg[R2] >> imm -> reg[R28]    //           SRAI      R4       R28             5    #10;    		            #2000;        //#2000;   // $display("%b",s_o);      $stop;      endalways #5   clock_i = ~clock_i;endmodule

⌨️ 快捷键说明

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