// // // Design file: I2C_ROM.v // Daniel Ogilvie, SingMai Electronics // 23rd November 2008 // // Data file for I2C_control.v // module I2C_ROM ( input wire Clk27, // 27MHz line locked clock input wire [8:0] address, // 9 bit phase word input wire RESETn, // Power on reset output reg [7:0] I2C_data // ROM data output ); reg [8:0] addr_d1; // Latched input address always @ (posedge Clk27 or negedge RESETn) begin if ( !RESETn ) begin addr_d1 <= 9'b000000000; end else begin addr_d1 <= address; end end always @ (*) begin case (addr_d1) 9'h000: I2C_data = 8'h00; 9'h001: I2C_data = 8'h98; 9'h002: I2C_data = 8'h01; 9'h003: I2C_data = 8'h6B; 9'h004: I2C_data = 8'h40; 9'h005: I2C_data = 8'h64; // Change to $64 for Ext-clk input 9'h006: I2C_data = 8'h80; 9'h007: I2C_data = 8'h40; 9'h008: I2C_data = 8'h00; 9'h009: I2C_data = 8'h60; 9'h00A: I2C_data = 8'h00; 9'h00B: I2C_data = 8'h40; 9'h00C: I2C_data = 8'h00; 9'h00D: I2C_data = 8'h40; 9'h00E: I2C_data = 8'h00; 9'h00F: I2C_data = 8'h00; // Green offset control 9'h010: I2C_data = 8'h80; 9'h011: I2C_data = 8'h40; 9'h012: I2C_data = 8'h00; 9'h013: I2C_data = 8'h20; 9'h014: I2C_data = 8'hC0; 9'h015: I2C_data = 8'h7F; 9'h016: I2C_data = 8'hC6; 9'h017: I2C_data = 8'h0A; 9'h018: I2C_data = 8'h04; 9'h019: I2C_data = 8'h04; 9'h01A: I2C_data = 8'h0A; 9'h01B: I2C_data = 8'h04; 9'h01C: I2C_data = 8'h14; 9'h01D: I2C_data = 8'h13; // Turn off auto offset 9'h01E: I2C_data = 8'hFF; 9'h01F: I2C_data = 8'h60; 9'h020: I2C_data = 8'h94; 9'h021: I2C_data = 8'h90; 9'h022: I2C_data = 8'h07; 9'h023: I2C_data = 8'h20; 9'h024: I2C_data = 8'h32; 9'h025: I2C_data = 8'h14; 9'h026: I2C_data = 8'h08; 9'h027: I2C_data = 8'h6F; 9'h028: I2C_data = 8'h10; 9'h029: I2C_data = 8'h70; 9'h02A: I2C_data = 8'hBF; 9'h02B: I2C_data = 8'h02; 9'h02C: I2C_data = 8'h00; 9'h02D: I2C_data = 8'h00; 9'h02E: I2C_data = 8'h00; 9'h02F: I2C_data = 8'hE8; 9'h030: I2C_data = 8'hE0; 9'h031: I2C_data = 8'h00; 9'h032: I2C_data = 8'h00; 9'h033: I2C_data = 8'h54; 9'h034: I2C_data = 8'h00; 9'h035: I2C_data = 8'h9C; 9'h036: I2C_data = 8'h80; 9'h037: I2C_data = 8'h20; 9'h038: I2C_data = 8'h00; 9'h039: I2C_data = 8'h00; 9'h03A: I2C_data = 8'h00; 9'h03B: I2C_data = 8'h00; 9'h03C: I2C_data = 8'h00; 9'h03D: I2C_data = 8'h00; 9'h03E: I2C_data = 8'h00; 9'h03F: I2C_data = 8'h00; 9'h040: I2C_data = 8'h00; 9'h041: I2C_data = 8'h00; 9'h042: I2C_data = 8'h00; 9'h043: I2C_data = 8'h00; 9'h044: I2C_data = 8'h00; 9'h045: I2C_data = 8'h00; 9'h046: I2C_data = 8'h01; 9'h047: I2C_data = 8'h00; 9'h048: I2C_data = 8'h4C; 9'h049: I2C_data = 8'h08; 9'h04A: I2C_data = 8'h00; 9'h04B: I2C_data = 8'hA0; 9'h04C: I2C_data = 8'h80; 9'h04D: I2C_data = 8'h80; 9'h04E: I2C_data = 8'h00; 9'h04F: I2C_data = 8'h00; 9'h050: I2C_data = 8'h00; 9'h051: I2C_data = 8'h00; 9'h052: I2C_data = 8'h00; 9'h053: I2C_data = 8'h00; 9'h054: I2C_data = 8'h00; 9'h055: I2C_data = 8'h00; 9'h056: I2C_data = 8'h00; 9'h057: I2C_data = 8'h00; 9'h058: I2C_data = 8'h00; 9'h059: I2C_data = 8'h00; 9'h05A: I2C_data = 8'h00; 9'h05B: I2C_data = 8'h00; 9'h05C: I2C_data = 8'h00; 9'h05D: I2C_data = 8'h00; 9'h05E: I2C_data = 8'h00; 9'h05F: I2C_data = 8'h00; 9'h060: I2C_data = 8'h00; 9'h061: I2C_data = 8'h00; 9'h062: I2C_data = 8'h00; 9'h063: I2C_data = 8'h00; 9'h064: I2C_data = 8'h00; 9'h065: I2C_data = 8'h00; 9'h066: I2C_data = 8'h00; 9'h067: I2C_data = 8'h00; 9'h068: I2C_data = 8'h00; 9'h069: I2C_data = 8'h00; 9'h06A: I2C_data = 8'h00; 9'h06B: I2C_data = 8'h00; 9'h06C: I2C_data = 8'h00; 9'h06D: I2C_data = 8'h00; 9'h06E: I2C_data = 8'h00; 9'h06F: I2C_data = 8'h00; 9'h070: I2C_data = 8'h00; 9'h071: I2C_data = 8'h00; 9'h072: I2C_data = 8'h00; 9'h073: I2C_data = 8'h00; 9'h074: I2C_data = 8'h00; 9'h075: I2C_data = 8'h10; 9'h076: I2C_data = 8'h00; 9'h077: I2C_data = 8'hC8; 9'h078: I2C_data = 8'h14; 9'h079: I2C_data = 8'h00; 9'h07A: I2C_data = 8'h00; 9'h07B: I2C_data = 8'h01; 9'h07C: I2C_data = 8'h00; 9'h07D: I2C_data = 8'h10; 9'h07E: I2C_data = 8'h00; 9'h07F: I2C_data = 8'h00; 9'h080: I2C_data = 8'h00; 9'h081: I2C_data = 8'h1F; 9'h082: I2C_data = 8'h7C; 9'h083: I2C_data = 8'hF0; 9'h084: I2C_data = 8'h21; 9'h085: I2C_data = 8'h00; 9'h086: I2C_data = 8'h00; 9'h087: I2C_data = 8'h00; 9'h088: I2C_data = 8'h00; 9'h089: I2C_data = 8'h00; 9'h08A: I2C_data = 8'h00; 9'h08B: I2C_data = 8'h00; 9'h08C: I2C_data = 8'h00; 9'h08D: I2C_data = 8'h00; 9'h08E: I2C_data = 8'h00; 9'h08F: I2C_data = 8'h00; 9'h090: I2C_data = 8'h00; 9'h091: I2C_data = 8'h00; 9'h092: I2C_data = 8'h00; 9'h093: I2C_data = 8'h00; 9'h094: I2C_data = 8'h00; 9'h095: I2C_data = 8'h00; 9'h096: I2C_data = 8'h00; 9'h097: I2C_data = 8'h00; 9'h098: I2C_data = 8'h00; 9'h099: I2C_data = 8'h00; 9'h09A: I2C_data = 8'h00; 9'h09B: I2C_data = 8'h00; 9'h09C: I2C_data = 8'h00; 9'h09D: I2C_data = 8'h00; 9'h09E: I2C_data = 8'h00; 9'h09F: I2C_data = 8'h00; 9'h0A0: I2C_data = 8'h00; 9'h0A1: I2C_data = 8'h00; 9'h0A2: I2C_data = 8'h00; 9'h0A3: I2C_data = 8'h00; 9'h0A4: I2C_data = 8'h00; 9'h0A5: I2C_data = 8'h00; 9'h0A6: I2C_data = 8'h00; 9'h0A7: I2C_data = 8'h00; 9'h0A8: I2C_data = 8'h00; 9'h0A9: I2C_data = 8'h00; 9'h0AA: I2C_data = 8'h00; 9'h0AB: I2C_data = 8'h00; 9'h0AC: I2C_data = 8'h00; 9'h0AD: I2C_data = 8'h00; 9'h0AE: I2C_data = 8'h00; 9'h0AF: I2C_data = 8'h00; 9'h0B0: I2C_data = 8'h00; 9'h0B1: I2C_data = 8'h00; 9'h0B2: I2C_data = 8'h00; 9'h0B3: I2C_data = 8'h08; 9'h0B4: I2C_data = 8'h00; 9'h0B5: I2C_data = 8'hC8; 9'h0B6: I2C_data = 8'h00; 9'h0B7: I2C_data = 8'h00; 9'h0B8: I2C_data = 8'h00; 9'h0B9: I2C_data = 8'h00; 9'h0BA: I2C_data = 8'hFC; 9'h0BB: I2C_data = 8'h00; 9'h0BC: I2C_data = 8'h00; 9'h0BD: I2C_data = 8'h00; 9'h0BE: I2C_data = 8'h00; 9'h0BF: I2C_data = 8'h00; 9'h0C0: I2C_data = 8'h00; 9'h0C1: I2C_data = 8'h00; 9'h0C2: I2C_data = 8'h00; 9'h0C3: I2C_data = 8'h00; 9'h0C4: I2C_data = 8'h00; 9'h0C5: I2C_data = 8'hC0; 9'h0C6: I2C_data = 8'h00; 9'h0C7: I2C_data = 8'h00; 9'h0C8: I2C_data = 8'h00; 9'h0C9: I2C_data = 8'h00; 9'h0CA: I2C_data = 8'h00; 9'h0CB: I2C_data = 8'h00; 9'h0CC: I2C_data = 8'h00; 9'h0CD: I2C_data = 8'h00; 9'h0CE: I2C_data = 8'h00; 9'h0CF: I2C_data = 8'h00; 9'h0D0: I2C_data = 8'h00; 9'h0D1: I2C_data = 8'h00; 9'h0D2: I2C_data = 8'h00; 9'h0D3: I2C_data = 8'h00; 9'h0D4: I2C_data = 8'h00; 9'h0D5: I2C_data = 8'h00; 9'h0D6: I2C_data = 8'h00; 9'h0D7: I2C_data = 8'h00; 9'h0D8: I2C_data = 8'h00; 9'h0D9: I2C_data = 8'h00; 9'h0DA: I2C_data = 8'h00; 9'h0DB: I2C_data = 8'h00; 9'h0DC: I2C_data = 8'h00; 9'h0DD: I2C_data = 8'h00; 9'h0DE: I2C_data = 8'h00; 9'h0DF: I2C_data = 8'h00; 9'h0E0: I2C_data = 8'h00; 9'h0E1: I2C_data = 8'h00; 9'h0E2: I2C_data = 8'h00; 9'h0E3: I2C_data = 8'h00; 9'h0E4: I2C_data = 8'h00; 9'h0E5: I2C_data = 8'h00; 9'h0E6: I2C_data = 8'h00; 9'h0E7: I2C_data = 8'h00; 9'h0E8: I2C_data = 8'h00; 9'h0E9: I2C_data = 8'h00; 9'h0EA: I2C_data = 8'h00; 9'h0EB: I2C_data = 8'h00; 9'h0EC: I2C_data = 8'h00; 9'h0ED: I2C_data = 8'h00; 9'h0EE: I2C_data = 8'h00; 9'h0EF: I2C_data = 8'h00; 9'h0F0: I2C_data = 8'h00; 9'h0F1: I2C_data = 8'h00; 9'h0F2: I2C_data = 8'h00; 9'h0F3: I2C_data = 8'h00; 9'h0F4: I2C_data = 8'h00; 9'h0F5: I2C_data = 8'h00; 9'h0F6: I2C_data = 8'h00; 9'h0F7: I2C_data = 8'h00; 9'h0F8: I2C_data = 8'h00; 9'h0F9: I2C_data = 8'h00; 9'h0FA: I2C_data = 8'h00; 9'h0FB: I2C_data = 8'h00; 9'h0FC: I2C_data = 8'h00; 9'h0FD: I2C_data = 8'h00; 9'h0FE: I2C_data = 8'h00; 9'h0FF: I2C_data = 8'h00; 9'h100: I2C_data = 8'h00; 9'h101: I2C_data = 8'h98; 9'h102: I2C_data = 8'h01; 9'h103: I2C_data = 8'h6C; 9'h104: I2C_data = 8'h00; 9'h105: I2C_data = 8'h60; 9'h106: I2C_data = 8'h80; 9'h107: I2C_data = 8'h40; 9'h108: I2C_data = 8'h00; 9'h109: I2C_data = 8'h40; 9'h10A: I2C_data = 8'h00; 9'h10B: I2C_data = 8'h40; 9'h10C: I2C_data = 8'h00; 9'h10D: I2C_data = 8'h40; 9'h10E: I2C_data = 8'h00; 9'h10F: I2C_data = 8'h16; 9'h110: I2C_data = 8'h80; 9'h111: I2C_data = 8'h40; 9'h112: I2C_data = 8'h00; 9'h113: I2C_data = 8'h20; 9'h114: I2C_data = 8'hC0; 9'h115: I2C_data = 8'h7F; 9'h116: I2C_data = 8'hC6; 9'h117: I2C_data = 8'h0A; 9'h118: I2C_data = 8'h04; 9'h119: I2C_data = 8'h04; 9'h11A: I2C_data = 8'h0A; 9'h11B: I2C_data = 8'h04; 9'h11C: I2C_data = 8'h14; 9'h11D: I2C_data = 8'h33; 9'h11E: I2C_data = 8'hFF; 9'h11F: I2C_data = 8'h60; 9'h120: I2C_data = 8'h94; 9'h121: I2C_data = 8'h90; 9'h122: I2C_data = 8'h07; 9'h123: I2C_data = 8'h20; 9'h124: I2C_data = 8'h32; 9'h125: I2C_data = 8'h14; 9'h126: I2C_data = 8'h08; 9'h127: I2C_data = 8'h6F; 9'h128: I2C_data = 8'h10; 9'h129: I2C_data = 8'h70; 9'h12A: I2C_data = 8'hBF; 9'h12B: I2C_data = 8'h02; 9'h12C: I2C_data = 8'h00; 9'h12D: I2C_data = 8'h00; 9'h12E: I2C_data = 8'h00; 9'h12F: I2C_data = 8'hE8; 9'h130: I2C_data = 8'hE0; 9'h131: I2C_data = 8'h00; 9'h132: I2C_data = 8'h00; 9'h133: I2C_data = 8'h54; 9'h134: I2C_data = 8'h00; 9'h135: I2C_data = 8'h9C; 9'h136: I2C_data = 8'h80; 9'h137: I2C_data = 8'h20; 9'h138: I2C_data = 8'h00; 9'h139: I2C_data = 8'h00; 9'h13A: I2C_data = 8'h00; 9'h13B: I2C_data = 8'h00; 9'h13C: I2C_data = 8'h00; 9'h13D: I2C_data = 8'h00; 9'h13E: I2C_data = 8'h00; 9'h13F: I2C_data = 8'h00; 9'h140: I2C_data = 8'h00; 9'h141: I2C_data = 8'h00; 9'h142: I2C_data = 8'h00; 9'h143: I2C_data = 8'h00; 9'h144: I2C_data = 8'h00; 9'h145: I2C_data = 8'h00; 9'h146: I2C_data = 8'h01; 9'h147: I2C_data = 8'h00; 9'h148: I2C_data = 8'h4C; 9'h149: I2C_data = 8'h08; 9'h14A: I2C_data = 8'h00; 9'h14B: I2C_data = 8'hA0; 9'h14C: I2C_data = 8'h80; 9'h14D: I2C_data = 8'h80; 9'h14E: I2C_data = 8'h00; 9'h14F: I2C_data = 8'h00; 9'h150: I2C_data = 8'h00; 9'h151: I2C_data = 8'h00; 9'h152: I2C_data = 8'h00; 9'h153: I2C_data = 8'h00; 9'h154: I2C_data = 8'h00; 9'h155: I2C_data = 8'h00; 9'h156: I2C_data = 8'h00; 9'h157: I2C_data = 8'h00; 9'h158: I2C_data = 8'h00; 9'h159: I2C_data = 8'h00; 9'h15A: I2C_data = 8'h00; 9'h15B: I2C_data = 8'h00; 9'h15C: I2C_data = 8'h00; 9'h15D: I2C_data = 8'h00; 9'h15E: I2C_data = 8'h00; 9'h15F: I2C_data = 8'h00; 9'h160: I2C_data = 8'h00; 9'h161: I2C_data = 8'h00; 9'h162: I2C_data = 8'h00; 9'h163: I2C_data = 8'h00; 9'h164: I2C_data = 8'h00; 9'h165: I2C_data = 8'h00; 9'h166: I2C_data = 8'h00; 9'h167: I2C_data = 8'h00; 9'h168: I2C_data = 8'h00; 9'h169: I2C_data = 8'h00; 9'h16A: I2C_data = 8'h00; 9'h16B: I2C_data = 8'h00; 9'h16C: I2C_data = 8'h00; 9'h16D: I2C_data = 8'h00; 9'h16E: I2C_data = 8'h00; 9'h16F: I2C_data = 8'h00; 9'h170: I2C_data = 8'h00; 9'h171: I2C_data = 8'h00; 9'h172: I2C_data = 8'h00; 9'h173: I2C_data = 8'h00; 9'h174: I2C_data = 8'h00; 9'h175: I2C_data = 8'h11; 9'h176: I2C_data = 8'h00; 9'h177: I2C_data = 8'hC8; 9'h178: I2C_data = 8'h04; 9'h179: I2C_data = 8'h00; 9'h17A: I2C_data = 8'h00; 9'h17B: I2C_data = 8'h01; 9'h17C: I2C_data = 8'h00; 9'h17D: I2C_data = 8'h10; 9'h17E: I2C_data = 8'h00; 9'h17F: I2C_data = 8'h00; 9'h180: I2C_data = 8'h00; 9'h181: I2C_data = 8'h1F; 9'h182: I2C_data = 8'h7C; 9'h183: I2C_data = 8'hF0; 9'h184: I2C_data = 8'h21; 9'h185: I2C_data = 8'h00; 9'h186: I2C_data = 8'h00; 9'h187: I2C_data = 8'h00; 9'h188: I2C_data = 8'h00; 9'h189: I2C_data = 8'h00; 9'h18A: I2C_data = 8'h00; 9'h18B: I2C_data = 8'h00; 9'h18C: I2C_data = 8'h00; 9'h18D: I2C_data = 8'h00; 9'h18E: I2C_data = 8'h00; 9'h18F: I2C_data = 8'h00; 9'h190: I2C_data = 8'h00; 9'h191: I2C_data = 8'h00; 9'h192: I2C_data = 8'h00; 9'h193: I2C_data = 8'h00; 9'h194: I2C_data = 8'h00; 9'h195: I2C_data = 8'h00; 9'h196: I2C_data = 8'h00; 9'h197: I2C_data = 8'h00; 9'h198: I2C_data = 8'h00; 9'h199: I2C_data = 8'h00; 9'h19A: I2C_data = 8'h00; 9'h19B: I2C_data = 8'h00; 9'h19C: I2C_data = 8'h00; 9'h19D: I2C_data = 8'h00; 9'h19E: I2C_data = 8'h00; 9'h19F: I2C_data = 8'h00; 9'h1A0: I2C_data = 8'h00; 9'h1A1: I2C_data = 8'h00; 9'h1A2: I2C_data = 8'h00; 9'h1A3: I2C_data = 8'h00; 9'h1A4: I2C_data = 8'h00; 9'h1A5: I2C_data = 8'h00; 9'h1A6: I2C_data = 8'h00; 9'h1A7: I2C_data = 8'h00; 9'h1A8: I2C_data = 8'h00; 9'h1A9: I2C_data = 8'h00; 9'h1AA: I2C_data = 8'h00; 9'h1AB: I2C_data = 8'h00; 9'h1AC: I2C_data = 8'h00; 9'h1AD: I2C_data = 8'h00; 9'h1AE: I2C_data = 8'h00; 9'h1AF: I2C_data = 8'h00; 9'h1B0: I2C_data = 8'h00; 9'h1B1: I2C_data = 8'h00; 9'h1B2: I2C_data = 8'h00; 9'h1B3: I2C_data = 8'h08; 9'h1B4: I2C_data = 8'h00; 9'h1B5: I2C_data = 8'hC8; 9'h1B6: I2C_data = 8'h00; 9'h1B7: I2C_data = 8'h00; 9'h1B8: I2C_data = 8'h00; 9'h1B9: I2C_data = 8'h00; 9'h1BA: I2C_data = 8'hFC; 9'h1BB: I2C_data = 8'h00; 9'h1BC: I2C_data = 8'h00; 9'h1BD: I2C_data = 8'h00; 9'h1BE: I2C_data = 8'h00; 9'h1BF: I2C_data = 8'h00; 9'h1C0: I2C_data = 8'h00; 9'h1C1: I2C_data = 8'h00; 9'h1C2: I2C_data = 8'h00; 9'h1C3: I2C_data = 8'h00; 9'h1C4: I2C_data = 8'h00; 9'h1C5: I2C_data = 8'hC0; 9'h1C6: I2C_data = 8'h00; 9'h1C7: I2C_data = 8'h00; 9'h1C8: I2C_data = 8'h00; 9'h1C9: I2C_data = 8'h00; 9'h1CA: I2C_data = 8'h00; 9'h1CB: I2C_data = 8'h00; 9'h1CC: I2C_data = 8'h00; 9'h1CD: I2C_data = 8'h00; 9'h1CE: I2C_data = 8'h00; 9'h1CF: I2C_data = 8'h00; 9'h1D0: I2C_data = 8'h00; 9'h1D1: I2C_data = 8'h00; 9'h1D2: I2C_data = 8'h00; 9'h1D3: I2C_data = 8'h00; 9'h1D4: I2C_data = 8'h00; 9'h1D5: I2C_data = 8'h00; 9'h1D6: I2C_data = 8'h00; 9'h1D7: I2C_data = 8'h00; 9'h1D8: I2C_data = 8'h00; 9'h1D9: I2C_data = 8'h00; 9'h1DA: I2C_data = 8'h00; 9'h1DB: I2C_data = 8'h00; 9'h1DC: I2C_data = 8'h00; 9'h1DD: I2C_data = 8'h00; 9'h1DE: I2C_data = 8'h00; 9'h1DF: I2C_data = 8'h00; 9'h1E0: I2C_data = 8'h00; 9'h1E1: I2C_data = 8'h00; 9'h1E2: I2C_data = 8'h00; 9'h1E3: I2C_data = 8'h00; 9'h1E4: I2C_data = 8'h00; 9'h1E5: I2C_data = 8'h00; 9'h1E6: I2C_data = 8'h00; 9'h1E7: I2C_data = 8'h00; 9'h1E8: I2C_data = 8'h00; 9'h1E9: I2C_data = 8'h00; 9'h1EA: I2C_data = 8'h00; 9'h1EB: I2C_data = 8'h00; 9'h1EC: I2C_data = 8'h00; 9'h1ED: I2C_data = 8'h00; 9'h1EE: I2C_data = 8'h00; 9'h1EF: I2C_data = 8'h00; 9'h1F0: I2C_data = 8'h00; 9'h1F1: I2C_data = 8'h00; 9'h1F2: I2C_data = 8'h00; 9'h1F3: I2C_data = 8'h00; 9'h1F4: I2C_data = 8'h00; 9'h1F5: I2C_data = 8'h00; 9'h1F6: I2C_data = 8'h00; 9'h1F7: I2C_data = 8'h00; 9'h1F8: I2C_data = 8'h00; 9'h1F9: I2C_data = 8'h00; 9'h1FA: I2C_data = 8'h00; 9'h1FB: I2C_data = 8'h00; 9'h1FC: I2C_data = 8'h00; 9'h1FD: I2C_data = 8'h00; 9'h1FE: I2C_data = 8'h00; 9'h1FF: I2C_data = 8'h00; endcase end endmodule