/drm/trunk/debug/mm/ml/forge_gcalc/rom_inv_rtl.v

http://github.com/zaqwes8811/decoder-reed-solomon · Verilog · 273 lines · 266 code · 0 blank · 7 comment · 0 complexity · bc02e03013288a48cef88d0bb9afc71f MD5 · raw file

  1. /*
  2. sync_rom rom_label(
  3. .clk(clk),
  4. .address(),
  5. .data_out());
  6. */
  7. module sync_rom(clk, address, data_out);
  8. input clk;
  9. input [7:0] address;
  10. output [7:0] data_out;
  11. // local ///
  12. reg [7:0] data_out;
  13. always @ (posedge clk) begin
  14. case (address)
  15. 8'b0: data_out <= 8'b1;
  16. 8'b1: data_out <= 8'b10;
  17. 8'b10: data_out <= 8'b100;
  18. 8'b11: data_out <= 8'b1000;
  19. 8'b100: data_out <= 8'b10000;
  20. 8'b101: data_out <= 8'b100000;
  21. 8'b110: data_out <= 8'b1000000;
  22. 8'b111: data_out <= 8'b10000000;
  23. 8'b1000: data_out <= 8'b11101;
  24. 8'b1001: data_out <= 8'b111010;
  25. 8'b1010: data_out <= 8'b1110100;
  26. 8'b1011: data_out <= 8'b11101000;
  27. 8'b1100: data_out <= 8'b11001101;
  28. 8'b1101: data_out <= 8'b10000111;
  29. 8'b1110: data_out <= 8'b10011;
  30. 8'b1111: data_out <= 8'b100110;
  31. 8'b10000: data_out <= 8'b1001100;
  32. 8'b10001: data_out <= 8'b10011000;
  33. 8'b10010: data_out <= 8'b101101;
  34. 8'b10011: data_out <= 8'b1011010;
  35. 8'b10100: data_out <= 8'b10110100;
  36. 8'b10101: data_out <= 8'b1110101;
  37. 8'b10110: data_out <= 8'b11101010;
  38. 8'b10111: data_out <= 8'b11001001;
  39. 8'b11000: data_out <= 8'b10001111;
  40. 8'b11001: data_out <= 8'b11;
  41. 8'b11010: data_out <= 8'b110;
  42. 8'b11011: data_out <= 8'b1100;
  43. 8'b11100: data_out <= 8'b11000;
  44. 8'b11101: data_out <= 8'b110000;
  45. 8'b11110: data_out <= 8'b1100000;
  46. 8'b11111: data_out <= 8'b11000000;
  47. 8'b100000: data_out <= 8'b10011101;
  48. 8'b100001: data_out <= 8'b100111;
  49. 8'b100010: data_out <= 8'b1001110;
  50. 8'b100011: data_out <= 8'b10011100;
  51. 8'b100100: data_out <= 8'b100101;
  52. 8'b100101: data_out <= 8'b1001010;
  53. 8'b100110: data_out <= 8'b10010100;
  54. 8'b100111: data_out <= 8'b110101;
  55. 8'b101000: data_out <= 8'b1101010;
  56. 8'b101001: data_out <= 8'b11010100;
  57. 8'b101010: data_out <= 8'b10110101;
  58. 8'b101011: data_out <= 8'b1110111;
  59. 8'b101100: data_out <= 8'b11101110;
  60. 8'b101101: data_out <= 8'b11000001;
  61. 8'b101110: data_out <= 8'b10011111;
  62. 8'b101111: data_out <= 8'b100011;
  63. 8'b110000: data_out <= 8'b1000110;
  64. 8'b110001: data_out <= 8'b10001100;
  65. 8'b110010: data_out <= 8'b101;
  66. 8'b110011: data_out <= 8'b1010;
  67. 8'b110100: data_out <= 8'b10100;
  68. 8'b110101: data_out <= 8'b101000;
  69. 8'b110110: data_out <= 8'b1010000;
  70. 8'b110111: data_out <= 8'b10100000;
  71. 8'b111000: data_out <= 8'b1011101;
  72. 8'b111001: data_out <= 8'b10111010;
  73. 8'b111010: data_out <= 8'b1101001;
  74. 8'b111011: data_out <= 8'b11010010;
  75. 8'b111100: data_out <= 8'b10111001;
  76. 8'b111101: data_out <= 8'b1101111;
  77. 8'b111110: data_out <= 8'b11011110;
  78. 8'b111111: data_out <= 8'b10100001;
  79. 8'b1000000: data_out <= 8'b1011111;
  80. 8'b1000001: data_out <= 8'b10111110;
  81. 8'b1000010: data_out <= 8'b1100001;
  82. 8'b1000011: data_out <= 8'b11000010;
  83. 8'b1000100: data_out <= 8'b10011001;
  84. 8'b1000101: data_out <= 8'b101111;
  85. 8'b1000110: data_out <= 8'b1011110;
  86. 8'b1000111: data_out <= 8'b10111100;
  87. 8'b1001000: data_out <= 8'b1100101;
  88. 8'b1001001: data_out <= 8'b11001010;
  89. 8'b1001010: data_out <= 8'b10001001;
  90. 8'b1001011: data_out <= 8'b1111;
  91. 8'b1001100: data_out <= 8'b11110;
  92. 8'b1001101: data_out <= 8'b111100;
  93. 8'b1001110: data_out <= 8'b1111000;
  94. 8'b1001111: data_out <= 8'b11110000;
  95. 8'b1010000: data_out <= 8'b11111101;
  96. 8'b1010001: data_out <= 8'b11100111;
  97. 8'b1010010: data_out <= 8'b11010011;
  98. 8'b1010011: data_out <= 8'b10111011;
  99. 8'b1010100: data_out <= 8'b1101011;
  100. 8'b1010101: data_out <= 8'b11010110;
  101. 8'b1010110: data_out <= 8'b10110001;
  102. 8'b1010111: data_out <= 8'b1111111;
  103. 8'b1011000: data_out <= 8'b11111110;
  104. 8'b1011001: data_out <= 8'b11100001;
  105. 8'b1011010: data_out <= 8'b11011111;
  106. 8'b1011011: data_out <= 8'b10100011;
  107. 8'b1011100: data_out <= 8'b1011011;
  108. 8'b1011101: data_out <= 8'b10110110;
  109. 8'b1011110: data_out <= 8'b1110001;
  110. 8'b1011111: data_out <= 8'b11100010;
  111. 8'b1100000: data_out <= 8'b11011001;
  112. 8'b1100001: data_out <= 8'b10101111;
  113. 8'b1100010: data_out <= 8'b1000011;
  114. 8'b1100011: data_out <= 8'b10000110;
  115. 8'b1100100: data_out <= 8'b10001;
  116. 8'b1100101: data_out <= 8'b100010;
  117. 8'b1100110: data_out <= 8'b1000100;
  118. 8'b1100111: data_out <= 8'b10001000;
  119. 8'b1101000: data_out <= 8'b1101;
  120. 8'b1101001: data_out <= 8'b11010;
  121. 8'b1101010: data_out <= 8'b110100;
  122. 8'b1101011: data_out <= 8'b1101000;
  123. 8'b1101100: data_out <= 8'b11010000;
  124. 8'b1101101: data_out <= 8'b10111101;
  125. 8'b1101110: data_out <= 8'b1100111;
  126. 8'b1101111: data_out <= 8'b11001110;
  127. 8'b1110000: data_out <= 8'b10000001;
  128. 8'b1110001: data_out <= 8'b11111;
  129. 8'b1110010: data_out <= 8'b111110;
  130. 8'b1110011: data_out <= 8'b1111100;
  131. 8'b1110100: data_out <= 8'b11111000;
  132. 8'b1110101: data_out <= 8'b11101101;
  133. 8'b1110110: data_out <= 8'b11000111;
  134. 8'b1110111: data_out <= 8'b10010011;
  135. 8'b1111000: data_out <= 8'b111011;
  136. 8'b1111001: data_out <= 8'b1110110;
  137. 8'b1111010: data_out <= 8'b11101100;
  138. 8'b1111011: data_out <= 8'b11000101;
  139. 8'b1111100: data_out <= 8'b10010111;
  140. 8'b1111101: data_out <= 8'b110011;
  141. 8'b1111110: data_out <= 8'b1100110;
  142. 8'b1111111: data_out <= 8'b11001100;
  143. 8'b10000000: data_out <= 8'b10000101;
  144. 8'b10000001: data_out <= 8'b10111;
  145. 8'b10000010: data_out <= 8'b101110;
  146. 8'b10000011: data_out <= 8'b1011100;
  147. 8'b10000100: data_out <= 8'b10111000;
  148. 8'b10000101: data_out <= 8'b1101101;
  149. 8'b10000110: data_out <= 8'b11011010;
  150. 8'b10000111: data_out <= 8'b10101001;
  151. 8'b10001000: data_out <= 8'b1001111;
  152. 8'b10001001: data_out <= 8'b10011110;
  153. 8'b10001010: data_out <= 8'b100001;
  154. 8'b10001011: data_out <= 8'b1000010;
  155. 8'b10001100: data_out <= 8'b10000100;
  156. 8'b10001101: data_out <= 8'b10101;
  157. 8'b10001110: data_out <= 8'b101010;
  158. 8'b10001111: data_out <= 8'b1010100;
  159. 8'b10010000: data_out <= 8'b10101000;
  160. 8'b10010001: data_out <= 8'b1001101;
  161. 8'b10010010: data_out <= 8'b10011010;
  162. 8'b10010011: data_out <= 8'b101001;
  163. 8'b10010100: data_out <= 8'b1010010;
  164. 8'b10010101: data_out <= 8'b10100100;
  165. 8'b10010110: data_out <= 8'b1010101;
  166. 8'b10010111: data_out <= 8'b10101010;
  167. 8'b10011000: data_out <= 8'b1001001;
  168. 8'b10011001: data_out <= 8'b10010010;
  169. 8'b10011010: data_out <= 8'b111001;
  170. 8'b10011011: data_out <= 8'b1110010;
  171. 8'b10011100: data_out <= 8'b11100100;
  172. 8'b10011101: data_out <= 8'b11010101;
  173. 8'b10011110: data_out <= 8'b10110111;
  174. 8'b10011111: data_out <= 8'b1110011;
  175. 8'b10100000: data_out <= 8'b11100110;
  176. 8'b10100001: data_out <= 8'b11010001;
  177. 8'b10100010: data_out <= 8'b10111111;
  178. 8'b10100011: data_out <= 8'b1100011;
  179. 8'b10100100: data_out <= 8'b11000110;
  180. 8'b10100101: data_out <= 8'b10010001;
  181. 8'b10100110: data_out <= 8'b111111;
  182. 8'b10100111: data_out <= 8'b1111110;
  183. 8'b10101000: data_out <= 8'b11111100;
  184. 8'b10101001: data_out <= 8'b11100101;
  185. 8'b10101010: data_out <= 8'b11010111;
  186. 8'b10101011: data_out <= 8'b10110011;
  187. 8'b10101100: data_out <= 8'b1111011;
  188. 8'b10101101: data_out <= 8'b11110110;
  189. 8'b10101110: data_out <= 8'b11110001;
  190. 8'b10101111: data_out <= 8'b11111111;
  191. 8'b10110000: data_out <= 8'b11100011;
  192. 8'b10110001: data_out <= 8'b11011011;
  193. 8'b10110010: data_out <= 8'b10101011;
  194. 8'b10110011: data_out <= 8'b1001011;
  195. 8'b10110100: data_out <= 8'b10010110;
  196. 8'b10110101: data_out <= 8'b110001;
  197. 8'b10110110: data_out <= 8'b1100010;
  198. 8'b10110111: data_out <= 8'b11000100;
  199. 8'b10111000: data_out <= 8'b10010101;
  200. 8'b10111001: data_out <= 8'b110111;
  201. 8'b10111010: data_out <= 8'b1101110;
  202. 8'b10111011: data_out <= 8'b11011100;
  203. 8'b10111100: data_out <= 8'b10100101;
  204. 8'b10111101: data_out <= 8'b1010111;
  205. 8'b10111110: data_out <= 8'b10101110;
  206. 8'b10111111: data_out <= 8'b1000001;
  207. 8'b11000000: data_out <= 8'b10000010;
  208. 8'b11000001: data_out <= 8'b11001;
  209. 8'b11000010: data_out <= 8'b110010;
  210. 8'b11000011: data_out <= 8'b1100100;
  211. 8'b11000100: data_out <= 8'b11001000;
  212. 8'b11000101: data_out <= 8'b10001101;
  213. 8'b11000110: data_out <= 8'b111;
  214. 8'b11000111: data_out <= 8'b1110;
  215. 8'b11001000: data_out <= 8'b11100;
  216. 8'b11001001: data_out <= 8'b111000;
  217. 8'b11001010: data_out <= 8'b1110000;
  218. 8'b11001011: data_out <= 8'b11100000;
  219. 8'b11001100: data_out <= 8'b11011101;
  220. 8'b11001101: data_out <= 8'b10100111;
  221. 8'b11001110: data_out <= 8'b1010011;
  222. 8'b11001111: data_out <= 8'b10100110;
  223. 8'b11010000: data_out <= 8'b1010001;
  224. 8'b11010001: data_out <= 8'b10100010;
  225. 8'b11010010: data_out <= 8'b1011001;
  226. 8'b11010011: data_out <= 8'b10110010;
  227. 8'b11010100: data_out <= 8'b1111001;
  228. 8'b11010101: data_out <= 8'b11110010;
  229. 8'b11010110: data_out <= 8'b11111001;
  230. 8'b11010111: data_out <= 8'b11101111;
  231. 8'b11011000: data_out <= 8'b11000011;
  232. 8'b11011001: data_out <= 8'b10011011;
  233. 8'b11011010: data_out <= 8'b101011;
  234. 8'b11011011: data_out <= 8'b1010110;
  235. 8'b11011100: data_out <= 8'b10101100;
  236. 8'b11011101: data_out <= 8'b1000101;
  237. 8'b11011110: data_out <= 8'b10001010;
  238. 8'b11011111: data_out <= 8'b1001;
  239. 8'b11100000: data_out <= 8'b10010;
  240. 8'b11100001: data_out <= 8'b100100;
  241. 8'b11100010: data_out <= 8'b1001000;
  242. 8'b11100011: data_out <= 8'b10010000;
  243. 8'b11100100: data_out <= 8'b111101;
  244. 8'b11100101: data_out <= 8'b1111010;
  245. 8'b11100110: data_out <= 8'b11110100;
  246. 8'b11100111: data_out <= 8'b11110101;
  247. 8'b11101000: data_out <= 8'b11110111;
  248. 8'b11101001: data_out <= 8'b11110011;
  249. 8'b11101010: data_out <= 8'b11111011;
  250. 8'b11101011: data_out <= 8'b11101011;
  251. 8'b11101100: data_out <= 8'b11001011;
  252. 8'b11101101: data_out <= 8'b10001011;
  253. 8'b11101110: data_out <= 8'b1011;
  254. 8'b11101111: data_out <= 8'b10110;
  255. 8'b11110000: data_out <= 8'b101100;
  256. 8'b11110001: data_out <= 8'b1011000;
  257. 8'b11110010: data_out <= 8'b10110000;
  258. 8'b11110011: data_out <= 8'b1111101;
  259. 8'b11110100: data_out <= 8'b11111010;
  260. 8'b11110101: data_out <= 8'b11101001;
  261. 8'b11110110: data_out <= 8'b11001111;
  262. 8'b11110111: data_out <= 8'b10000011;
  263. 8'b11111000: data_out <= 8'b11011;
  264. 8'b11111001: data_out <= 8'b110110;
  265. 8'b11111010: data_out <= 8'b1101100;
  266. 8'b11111011: data_out <= 8'b11011000;
  267. 8'b11111100: data_out <= 8'b10101101;
  268. 8'b11111101: data_out <= 8'b1000111;
  269. 8'b11111110: data_out <= 8'b10001110;
  270. 8'b11111111: data_out <= 8'b0;
  271. endcase
  272. end
  273. endmodule