// // RiSC-16 skeleton // `define ADD 3'd0 `define ADDI 3'd1 `define NAND 3'd2 `define LUI 3'd3 `define SW 3'd4 `define LW 3'd5 `define BNE 3'd6 `define JALR 3'd7 `define EXTEND 3'd7 `define INSTRUCTION_OP 15:13 // opcode `define INSTRUCTION_RA 12:10 // rA `define INSTRUCTION_RB 9:7 // rB `define INSTRUCTION_RC 2:0 // rC `define INSTRUCTION_IM 6:0 // immediate (7-bit) `define INSTRUCTION_LI 9:0 // large unsigned immediate (10-bit, 0-extended) `define INSTRUCTION_SB 6 // immediate's sign bit `define FORW_BRANCH 1'b0 `define BACK_BRANCH 1'b1 `define ZERO 16'd0 `define HALTINSTRUCTION { `EXTEND, 3'd0, 3'd0, 3'd7, 4'd1 } module RiSC (clk); input clk; reg [15:0] rf[0:7]; reg [15:0] pc; reg [15:0] m[0:65535]; always @(negedge clk) begin rf[0] <= `ZERO; end endmodule