`include "opcode.v" module rom(address, data); input [11:0] address; output [7:0] data; assign data = ROM(address); function [7:0] ROM; input [11:0] address; case (address) 0: ROM = {`OUT_Im, 4'h7}; 1: ROM = {`ADD_A_Im, 4'h1}; 2: ROM = {`JNC_Im, 4'h0}; 3: ROM = {4'h0, 4'h0}; 4: ROM = {`MOV_B_Im, 4'h0}; 5: ROM = {`ADD_A_Im, 4'h1}; 6: ROM = {`JNC_Im, 4'h0}; 7: ROM = {4'h0, 4'h4}; 8: ROM = {`MOV_A_B, 4'h0}; 9: ROM = {`OUT_Im, 4'h6}; 10: ROM = {`ADD_A_Im, 4'h1}; 11: ROM = {`JNC_Im, 4'h0}; 12: ROM = {4'h0, 4'h9}; 13: ROM = {`MOV_A_B, 4'h0}; 14: ROM = {`OUT_Im, 4'h6}; 15: ROM = {`ADD_A_Im, 4'h1}; 16: ROM = {`JNC_Im, 4'h0}; 17: ROM = {4'h0, 4'hE}; 18: ROM = {`MOV_A_B, 4'h0}; 19: ROM = {`OUT_Im, 4'h0}; 20: ROM = {`OUT_Im, 4'h0}; 21: ROM = {`OUT_Im, 4'h0}; 22: ROM = {`OUT_Im, 4'h4}; 23: ROM = {`ADD_A_Im, 4'h1}; 24: ROM = {`JNC_Im, 4'h0}; 25: ROM = {4'h1, 4'h3}; 26: ROM = {`OUT_Im, 4'h8}; 27: ROM = {`OUT_Im, 4'h8}; 28: ROM = {`JNC_Im, 4'h0}; 29: ROM = {4'h1, 4'hA}; 32: ROM = {`OUT_Im, 4'h3}; 33: ROM = {`OUT_Im, 4'h6}; 34: ROM = {`OUT_Im, 4'hC}; 35: ROM = {`OUT_Im, 4'h8}; 36: ROM = {`OUT_Im, 4'h8}; 37: ROM = {`OUT_Im, 4'hC}; 38: ROM = {`OUT_Im, 4'h6}; 39: ROM = {`OUT_Im, 4'h3}; 40: ROM = {`OUT_Im, 4'h1}; 41: ROM = {`JMP_Im, 4'h0}; 42: ROM = {4'h2, 4'h0}; // default: endcase // case(address) endfunction // ROM endmodule // rom