📄 test_dlx.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 + -