Advertisement
Guest User

Untitled

a guest
Mar 28th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 37.50 KB | None | 0 0
  1. module control(
  2. input [3:0] ten, one,
  3. input clk,
  4. input resetn,
  5.  
  6. output reg out_x, out_y;
  7. );
  8. reg [7:0] x_coordinate1, y_coordinate1, x_coordinate2, y_coordinate2;
  9. x_coordinate1 <= 8'd50;
  10. y_coordinate1 <= 8'd50;
  11. x_coordinate2 <= 8'd54;
  12. y_coordinate2 <= 8'd50;
  13. reg [7:0] current_state, next_state;
  14.  
  15. localparam S_WAIT1 = 8'd0,
  16. S_DRAW1_0 = 8'd1,
  17. S_DRAW1_0_CYCLE_0 = 8'd2,
  18. S_DRAW1_0_CYCLE_1 = 8'd3,
  19. S_DRAW1_0_CYCLE_2 = 8'd4,
  20. S_DRAW1_0_CYCLE_3 = 8'd5,
  21. S_DRAW1_0_CYCLE_4 = 8'd6,
  22. S_DRAW1_0_CYCLE_5 = 8'd7,
  23. S_DRAW1_0_CYCLE_6 = 8'd8,
  24. S_DRAW1_0_CYCLE_7 = 8'd9,
  25. S_DRAW1_0_CYCLE_8 = 8'd10,
  26. S_DRAW1_0_CYCLE_9 = 8'd11,
  27. S_DRAW1_0_CYCLE_10 = 8'd12,
  28. S_DRAW1_0_CYCLE_11 = 8'd13,
  29. S_DRAW1_1 = 8'd14,
  30. S_DRAW1_1_CYCLE_0 = 8'd15,
  31. S_DRAW1_1_CYCLE_1 = 8'd16,
  32. S_DRAW1_1_CYCLE_2 = 8'd17,
  33. S_DRAW1_1_CYCLE_3 = 8'd18,
  34. S_DRAW1_1_CYCLE_4 = 8'd19,
  35. S_DRAW1_1_CYCLE_5 = 8'd20,
  36. S_DRAW1_1_CYCLE_6 = 8'd21,
  37. S_DRAW1_1_CYCLE_7 = 8'd22,
  38. S_DRAW1_2 = 8'd23,
  39. S_DRAW1_2_CYCLE_0 = 8'd24,
  40. S_DRAW1_2_CYCLE_1 = 8'd25,
  41. S_DRAW1_2_CYCLE_2 = 8'd26,
  42. S_DRAW1_2_CYCLE_3 = 8'd27,
  43. S_DRAW1_2_CYCLE_4 = 8'd28,
  44. S_DRAW1_2_CYCLE_5 = 8'd29,
  45. S_DRAW1_2_CYCLE_6 = 8'd30,
  46. S_DRAW1_2_CYCLE_7 = 8'd31,
  47. S_DRAW1_2_CYCLE_8 = 8'd32,
  48. S_DRAW1_2_CYCLE_9 = 8'd33,
  49. S_DRAW1_2_CYCLE_10 = 8'd34,
  50. S_DRAW1_3 = 8'd35,
  51. S_DRAW1_3_CYCLE_0 = 8'd36,
  52. S_DRAW1_3_CYCLE_1 = 8'd37,
  53. S_DRAW1_3_CYCLE_2 = 8'd38,
  54. S_DRAW1_3_CYCLE_3 = 8'd39,
  55. S_DRAW1_3_CYCLE_4 = 8'd40,
  56. S_DRAW1_3_CYCLE_5 = 8'd41,
  57. S_DRAW1_3_CYCLE_6 = 8'd42,
  58. S_DRAW1_3_CYCLE_7 = 8'd43,
  59. S_DRAW1_3_CYCLE_8 = 8'd44,
  60. S_DRAW1_3_CYCLE_9 = 8'd45,
  61. S_DRAW1_3_CYCLE_10 = 8'd46,
  62. S_DRAW1_4 = 8'd47,
  63. S_DRAW1_4_CYCLE_0 = 8'd48,
  64. S_DRAW1_4_CYCLE_1 = 8'd49,
  65. S_DRAW1_4_CYCLE_2 = 8'd50,
  66. S_DRAW1_4_CYCLE_3 = 8'd51,
  67. S_DRAW1_4_CYCLE_4 = 8'd52,
  68. S_DRAW1_4_CYCLE_5 = 8'd53,
  69. S_DRAW1_4_CYCLE_6 = 8'd54,
  70. S_DRAW1_4_CYCLE_7 = 8'd55,
  71. S_DRAW1_4_CYCLE_8 = 8'd56,
  72. S_DRAW1_5 = 8'd57,
  73. S_DRAW1_5_CYCLE_0 = 8'd58,
  74. S_DRAW1_5_CYCLE_1 = 8'd59,
  75. S_DRAW1_5_CYCLE_2 = 8'd60,
  76. S_DRAW1_5_CYCLE_3 = 8'd61,
  77. S_DRAW1_5_CYCLE_4 = 8'd62,
  78. S_DRAW1_5_CYCLE_5 = 8'd63,
  79. S_DRAW1_5_CYCLE_6 = 8'd64,
  80. S_DRAW1_5_CYCLE_7 = 8'd65,
  81. S_DRAW1_5_CYCLE_8 = 8'd66,
  82. S_DRAW1_5_CYCLE_9 = 8'd67,
  83. S_DRAW1_5_CYCLE_10 = 8'd68,
  84. S_DRAW1_6 = 8'd69,
  85. S_DRAW1_6_CYCLE_0 = 8'd70,
  86. S_DRAW1_6_CYCLE_1 = 8'd71,
  87. S_DRAW1_6_CYCLE_2 = 8'd72,
  88. S_DRAW1_6_CYCLE_3 = 8'd73,
  89. S_DRAW1_6_CYCLE_4 = 8'd74,
  90. S_DRAW1_6_CYCLE_5 = 8'd75,
  91. S_DRAW1_6_CYCLE_6 = 8'd76,
  92. S_DRAW1_6_CYCLE_7 = 8'd77,
  93. S_DRAW1_6_CYCLE_8 = 8'd78,
  94. S_DRAW1_6_CYCLE_9 = 8'd79,
  95. S_DRAW1_6_CYCLE_10 = 8'd80,
  96. S_DRAW1_6_CYCLE_11 = 8'd81,
  97. S_DRAW1_7 = 8'd82,
  98. S_DRAW1_7_CYCLE_0 = 8'd83,
  99. S_DRAW1_7_CYCLE_1 = 8'd84,
  100. S_DRAW1_7_CYCLE_2 = 8'd85,
  101. S_DRAW1_7_CYCLE_3 = 8'd86,
  102. S_DRAW1_7_CYCLE_4 = 8'd87,
  103. S_DRAW1_7_CYCLE_5 = 8'd88,
  104. S_DRAW1_7_CYCLE_6 = 8'd89,
  105. S_DRAW1_8 = 8'd90,
  106. S_DRAW1_8_CYCLE_0 = 8'd91,
  107. S_DRAW1_8_CYCLE_1 = 8'd92,
  108. S_DRAW1_8_CYCLE_2 = 8'd93,
  109. S_DRAW1_8_CYCLE_3 = 8'd94,
  110. S_DRAW1_8_CYCLE_4 = 8'd95,
  111. S_DRAW1_8_CYCLE_5 = 8'd96,
  112. S_DRAW1_8_CYCLE_6 = 8'd97,
  113. S_DRAW1_8_CYCLE_7 = 8'd98,
  114. S_DRAW1_8_CYCLE_8 = 8'd99,
  115. S_DRAW1_8_CYCLE_9 = 8'd100,
  116. S_DRAW1_8_CYCLE_10 = 8'd101,
  117. S_DRAW1_8_CYCLE_11 = 8'd102,
  118. S_DRAW1_8_CYCLE_12 = 8'd103,
  119. S_DRAW1_9 = 8'd104,
  120. S_DRAW1_9_CYCLE_0 = 8'd105,
  121. S_DRAW1_9_CYCLE_1 = 8'd106,
  122. S_DRAW1_9_CYCLE_2 = 8'd107,
  123. S_DRAW1_9_CYCLE_3 = 8'd108,
  124. S_DRAW1_9_CYCLE_4 = 8'd109,
  125. S_DRAW1_9_CYCLE_5 = 8'd110,
  126. S_DRAW1_9_CYCLE_6 = 8'd111,
  127. S_DRAW1_9_CYCLE_7 = 8'd112,
  128. S_DRAW1_9_CYCLE_8 = 8'd113,
  129. S_DRAW1_9_CYCLE_9 = 8'd114,
  130. S_WAIT2 = 8'd115,
  131. S_DRAW2_0 = 8'd116,
  132. S_DRAW2_0_CYCLE_0 = 8'd117,
  133. S_DRAW2_0_CYCLE_1 = 8'd118,
  134. S_DRAW2_0_CYCLE_2 = 8'd119,
  135. S_DRAW2_0_CYCLE_3 = 8'd120,
  136. S_DRAW2_0_CYCLE_4 = 8'd121,
  137. S_DRAW2_0_CYCLE_5 = 8'd122,
  138. S_DRAW2_0_CYCLE_6 = 8'd123,
  139. S_DRAW2_0_CYCLE_7 = 8'd124,
  140. S_DRAW2_0_CYCLE_8 = 8'd125,
  141. S_DRAW2_0_CYCLE_9 = 8'd126,
  142. S_DRAW2_0_CYCLE_10 = 8'd127,
  143. S_DRAW2_0_CYCLE_11 = 8'd128,
  144. S_DRAW2_1 = 8'd129,
  145. S_DRAW2_1_CYCLE_0 = 8'd130,
  146. S_DRAW2_1_CYCLE_1 = 8'd131,
  147. S_DRAW2_1_CYCLE_2 = 8'd132,
  148. S_DRAW2_1_CYCLE_3 = 8'd133,
  149. S_DRAW2_1_CYCLE_4 = 8'd134,
  150. S_DRAW2_1_CYCLE_5 = 8'd135,
  151. S_DRAW2_1_CYCLE_6 = 8'd136,
  152. S_DRAW2_1_CYCLE_7 = 8'd137,
  153. S_DRAW2_2 = 8'd138,
  154. S_DRAW2_2_CYCLE_0 = 8'd139,
  155. S_DRAW2_2_CYCLE_1 = 8'd140,
  156. S_DRAW2_2_CYCLE_2 = 8'd141,
  157. S_DRAW2_2_CYCLE_3 = 8'd142,
  158. S_DRAW2_2_CYCLE_4 = 8'd143,
  159. S_DRAW2_2_CYCLE_5 = 8'd144,
  160. S_DRAW2_2_CYCLE_6 = 8'd145,
  161. S_DRAW2_2_CYCLE_7 = 8'd146,
  162. S_DRAW2_2_CYCLE_8 = 8'd147,
  163. S_DRAW2_2_CYCLE_9 = 8'd148,
  164. S_DRAW2_2_CYCLE_10 = 8'd149,
  165. S_DRAW2_3 = 8'd150,
  166. S_DRAW2_3_CYCLE_0 = 8'd151,
  167. S_DRAW2_3_CYCLE_1 = 8'd152,
  168. S_DRAW2_3_CYCLE_2 = 8'd153,
  169. S_DRAW2_3_CYCLE_3 = 8'd154,
  170. S_DRAW2_3_CYCLE_4 = 8'd155,
  171. S_DRAW2_3_CYCLE_5 = 8'd156,
  172. S_DRAW2_3_CYCLE_6 = 8'd157,
  173. S_DRAW2_3_CYCLE_7 = 8'd158,
  174. S_DRAW2_3_CYCLE_8 = 8'd159,
  175. S_DRAW2_3_CYCLE_9 = 8'd160,
  176. S_DRAW2_3_CYCLE_10 = 8'd161,
  177. S_DRAW2_4 = 8'd162,
  178. S_DRAW2_4_CYCLE_0 = 8'd163,
  179. S_DRAW2_4_CYCLE_1 = 8'd164,
  180. S_DRAW2_4_CYCLE_2 = 8'd165,
  181. S_DRAW2_4_CYCLE_3 = 8'd166,
  182. S_DRAW2_4_CYCLE_4 = 8'd167,
  183. S_DRAW2_4_CYCLE_5 = 8'd168,
  184. S_DRAW2_4_CYCLE_6 = 8'd169,
  185. S_DRAW2_4_CYCLE_7 = 8'd170,
  186. S_DRAW2_4_CYCLE_8 = 8'd171,
  187. S_DRAW2_5 = 8'd172,
  188. S_DRAW2_5_CYCLE_0 = 8'd173,
  189. S_DRAW2_5_CYCLE_1 = 8'd174,
  190. S_DRAW2_5_CYCLE_2 = 8'd175,
  191. S_DRAW2_5_CYCLE_3 = 8'd176,
  192. S_DRAW2_5_CYCLE_4 = 8'd177,
  193. S_DRAW2_5_CYCLE_5 = 8'd178,
  194. S_DRAW2_5_CYCLE_6 = 8'd179,
  195. S_DRAW2_5_CYCLE_7 = 8'd180,
  196. S_DRAW2_5_CYCLE_8 = 8'd181,
  197. S_DRAW2_5_CYCLE_9 = 8'd182,
  198. S_DRAW2_5_CYCLE_10 = 8'd183,
  199. S_DRAW2_6 = 8'd184,
  200. S_DRAW2_6_CYCLE_0 = 8'd185,
  201. S_DRAW2_6_CYCLE_1 = 8'd186,
  202. S_DRAW2_6_CYCLE_2 = 8'd187,
  203. S_DRAW2_6_CYCLE_3 = 8'd188,
  204. S_DRAW2_6_CYCLE_4 = 8'd189,
  205. S_DRAW2_6_CYCLE_5 = 8'd190,
  206. S_DRAW2_6_CYCLE_6 = 8'd191,
  207. S_DRAW2_6_CYCLE_7 = 8'd192,
  208. S_DRAW2_6_CYCLE_8 = 8'd193,
  209. S_DRAW2_6_CYCLE_9 = 8'd194,
  210. S_DRAW2_6_CYCLE_10 = 8'd195,
  211. S_DRAW2_6_CYCLE_11 = 8'd196,
  212. S_DRAW2_7 = 8'd197,
  213. S_DRAW2_7_CYCLE_0 = 8'd198,
  214. S_DRAW2_7_CYCLE_1 = 8'd199,
  215. S_DRAW2_7_CYCLE_2 = 8'd200,
  216. S_DRAW2_7_CYCLE_3 = 8'd201,
  217. S_DRAW2_7_CYCLE_4 = 8'd202,
  218. S_DRAW2_7_CYCLE_5 = 8'd203,
  219. S_DRAW2_7_CYCLE_6 = 8'd204,
  220. S_DRAW2_8 = 8'd205,
  221. S_DRAW2_8_CYCLE_0 = 8'd206,
  222. S_DRAW2_8_CYCLE_1 = 8'd207,
  223. S_DRAW2_8_CYCLE_2 = 8'd208,
  224. S_DRAW2_8_CYCLE_3 = 8'd209,
  225. S_DRAW2_8_CYCLE_4 = 8'd210,
  226. S_DRAW2_8_CYCLE_5 = 8'd211,
  227. S_DRAW2_8_CYCLE_6 = 8'd212,
  228. S_DRAW2_8_CYCLE_7 = 8'd213,
  229. S_DRAW2_8_CYCLE_8 = 8'd214,
  230. S_DRAW2_8_CYCLE_9 = 8'd215,
  231. S_DRAW2_8_CYCLE_10 = 8'd216,
  232. S_DRAW2_8_CYCLE_11 = 8'd217,
  233. S_DRAW2_8_CYCLE_12 = 8'd218,
  234. S_DRAW2_9 = 8'd219,
  235. S_DRAW2_9_CYCLE_0 = 8'd220,
  236. S_DRAW2_9_CYCLE_1 = 8'd221,
  237. S_DRAW2_9_CYCLE_2 = 8'd222,
  238. S_DRAW2_9_CYCLE_3 = 8'd223,
  239. S_DRAW2_9_CYCLE_4 = 8'd224,
  240. S_DRAW2_9_CYCLE_5 = 8'd225,
  241. S_DRAW2_9_CYCLE_6 = 8'd226,
  242. S_DRAW2_9_CYCLE_7 = 8'd227,
  243. S_DRAW2_9_CYCLE_8 = 8'd228,
  244. S_DRAW2_9_CYCLE_9 = 8'd229;
  245.  
  246.  
  247. // Next state logic aka our state table
  248. always@(*)
  249. begin: state_table
  250. case (current_state)
  251. S_WAIT1: begin
  252. if (ten == 4'd0) next_state = S_DRAW1_0;
  253. else if (ten == 4'd1) next_state = S_DRAW1_1;
  254. else if (ten == 4'd2) next_state = S_DRAW1_2;
  255. else if (ten == 4'd3) next_state = S_DRAW1_3;
  256. else if (ten == 4'd4) next_state = S_DRAW1_4;
  257. else if (ten == 4'd5) next_state = S_DRAW1_5;
  258. else if (ten == 4'd6) next_state = S_DRAW1_6;
  259. else if (ten == 4'd7) next_state = S_DRAW1_7;
  260. else if (ten == 4'd8) next_state = S_DRAW1_8;
  261. else if (ten == 4'd9) next_state = S_DRAW1_9;
  262. end
  263. S_DRAW1_0: next_state = S_DRAW1_0_CYCLE_0;
  264. S_DRAW1_0_CYCLE_0: next_state = S_DRAW1_0_CYCLE_1;
  265. S_DRAW1_0_CYCLE_1: next_state = S_DRAW1_0_CYCLE_2;
  266. S_DRAW1_0_CYCLE_2: next_state = S_DRAW1_0_CYCLE_3;
  267. S_DRAW1_0_CYCLE_3: next_state = S_DRAW1_0_CYCLE_4;
  268. S_DRAW1_0_CYCLE_4: next_state = S_DRAW1_0_CYCLE_5;
  269. S_DRAW1_0_CYCLE_5: next_state = S_DRAW1_0_CYCLE_6;
  270. S_DRAW1_0_CYCLE_6: next_state = S_DRAW1_0_CYCLE_7;
  271. S_DRAW1_0_CYCLE_7: next_state = S_DRAW1_0_CYCLE_8;
  272. S_DRAW1_0_CYCLE_8: next_state = S_DRAW1_0_CYCLE_9;
  273. S_DRAW1_0_CYCLE_9: next_state = S_DRAW1_0_CYCLE_10;
  274. S_DRAW1_0_CYCLE_10: next_state = S_DRAW1_0_CYCLE_11;
  275. S_DRAW1_0_CYCLE_11: next_state = S_WAIT2;
  276. S_DRAW1_1: next_state = S_DRAW1_1_CYCLE_0;
  277. S_DRAW1_1_CYCLE_0: next_state = S_DRAW1_1_CYCLE_1;
  278. S_DRAW1_1_CYCLE_1: next_state = S_DRAW1_1_CYCLE_2;
  279. S_DRAW1_1_CYCLE_2: next_state = S_DRAW1_1_CYCLE_3;
  280. S_DRAW1_1_CYCLE_3: next_state = S_DRAW1_1_CYCLE_4;
  281. S_DRAW1_1_CYCLE_4: next_state = S_DRAW1_1_CYCLE_5;
  282. S_DRAW1_1_CYCLE_5: next_state = S_DRAW1_1_CYCLE_6;
  283. S_DRAW1_1_CYCLE_6: next_state = S_DRAW1_1_CYCLE_7;
  284. S_DRAW1_1_CYCLE_7: next_state = S_WAIT2;
  285. S_DRAW1_2: next_state = S_DRAW1_2_CYCLE_0;
  286. S_DRAW1_2_CYCLE_0: next_state = S_DRAW1_2_CYCLE_1;
  287. S_DRAW1_2_CYCLE_1: next_state = S_DRAW1_2_CYCLE_2;
  288. S_DRAW1_2_CYCLE_2: next_state = S_DRAW1_2_CYCLE_3;
  289. S_DRAW1_2_CYCLE_3: next_state = S_DRAW1_2_CYCLE_4;
  290. S_DRAW1_2_CYCLE_4: next_state = S_DRAW1_2_CYCLE_5;
  291. S_DRAW1_2_CYCLE_5: next_state = S_DRAW1_2_CYCLE_6;
  292. S_DRAW1_2_CYCLE_6: next_state = S_DRAW1_2_CYCLE_7;
  293. S_DRAW1_2_CYCLE_7: next_state = S_DRAW1_2_CYCLE_8;
  294. S_DRAW1_2_CYCLE_8: next_state = S_DRAW1_2_CYCLE_9;
  295. S_DRAW1_2_CYCLE_9: next_state = S_DRAW1_2_CYCLE_10;
  296. S_DRAW1_2_CYCLE_10: next_state = S_WAIT2;
  297. S_DRAW1_3: next_state = S_DRAW1_3_CYCLE_0;
  298. S_DRAW1_3_CYCLE_0: next_state = S_DRAW1_3_CYCLE_1;
  299. S_DRAW1_3_CYCLE_1: next_state = S_DRAW1_3_CYCLE_2;
  300. S_DRAW1_3_CYCLE_2: next_state = S_DRAW1_3_CYCLE_3;
  301. S_DRAW1_3_CYCLE_3: next_state = S_DRAW1_3_CYCLE_4;
  302. S_DRAW1_3_CYCLE_4: next_state = S_DRAW1_3_CYCLE_5;
  303. S_DRAW1_3_CYCLE_5: next_state = S_DRAW1_3_CYCLE_6;
  304. S_DRAW1_3_CYCLE_6: next_state = S_DRAW1_3_CYCLE_7;
  305. S_DRAW1_3_CYCLE_7: next_state = S_DRAW1_3_CYCLE_8;
  306. S_DRAW1_3_CYCLE_8: next_state = S_DRAW1_3_CYCLE_9;
  307. S_DRAW1_3_CYCLE_9: next_state = S_DRAW1_3_CYCLE_10;
  308. S_DRAW1_3_CYCLE_10: next_state = S_WAIT2;
  309. S_DRAW1_4: next_state = S_DRAW1_4_CYCLE_0;
  310. S_DRAW1_4_CYCLE_0: next_state = S_DRAW1_4_CYCLE_1;
  311. S_DRAW1_4_CYCLE_1: next_state = S_DRAW1_4_CYCLE_2;
  312. S_DRAW1_4_CYCLE_2: next_state = S_DRAW1_4_CYCLE_3;
  313. S_DRAW1_4_CYCLE_3: next_state = S_DRAW1_4_CYCLE_4;
  314. S_DRAW1_4_CYCLE_4: next_state = S_DRAW1_4_CYCLE_5;
  315. S_DRAW1_4_CYCLE_5: next_state = S_DRAW1_4_CYCLE_6;
  316. S_DRAW1_4_CYCLE_6: next_state = S_DRAW1_4_CYCLE_7;
  317. S_DRAW1_4_CYCLE_7: next_state = S_DRAW1_4_CYCLE_8;
  318. S_DRAW1_4_CYCLE_8: next_state = S_WAIT2;
  319. S_DRAW1_5: next_state = S_DRAW1_5_CYCLE_0;
  320. S_DRAW1_5_CYCLE_0: next_state = S_DRAW1_5_CYCLE_1;
  321. S_DRAW1_5_CYCLE_1: next_state = S_DRAW1_5_CYCLE_2;
  322. S_DRAW1_5_CYCLE_2: next_state = S_DRAW1_5_CYCLE_3;
  323. S_DRAW1_5_CYCLE_3: next_state = S_DRAW1_5_CYCLE_4;
  324. S_DRAW1_5_CYCLE_4: next_state = S_DRAW1_5_CYCLE_5;
  325. S_DRAW1_5_CYCLE_5: next_state = S_DRAW1_5_CYCLE_6;
  326. S_DRAW1_5_CYCLE_6: next_state = S_DRAW1_5_CYCLE_7;
  327. S_DRAW1_5_CYCLE_7: next_state = S_DRAW1_5_CYCLE_8;
  328. S_DRAW1_5_CYCLE_8: next_state = S_DRAW1_5_CYCLE_9;
  329. S_DRAW1_5_CYCLE_9: next_state = S_DRAW1_5_CYCLE_10;
  330. S_DRAW1_5_CYCLE_10: next_state = S_WAIT2;
  331. S_DRAW1_6: next_state = S_DRAW1_6_CYCLE_0;
  332. S_DRAW1_6_CYCLE_0: next_state = S_DRAW1_6_CYCLE_1;
  333. S_DRAW1_6_CYCLE_1: next_state = S_DRAW1_6_CYCLE_2;
  334. S_DRAW1_6_CYCLE_2: next_state = S_DRAW1_6_CYCLE_3;
  335. S_DRAW1_6_CYCLE_3: next_state = S_DRAW1_6_CYCLE_4;
  336. S_DRAW1_6_CYCLE_4: next_state = S_DRAW1_6_CYCLE_5;
  337. S_DRAW1_6_CYCLE_5: next_state = S_DRAW1_6_CYCLE_6;
  338. S_DRAW1_6_CYCLE_6: next_state = S_DRAW1_6_CYCLE_7;
  339. S_DRAW1_6_CYCLE_7: next_state = S_DRAW1_6_CYCLE_8;
  340. S_DRAW1_6_CYCLE_8: next_state = S_DRAW1_6_CYCLE_9;
  341. S_DRAW1_6_CYCLE_9: next_state = S_DRAW1_6_CYCLE_10;
  342. S_DRAW1_6_CYCLE_10: next_state = S_DRAW1_6_CYCLE_11;
  343. S_DRAW1_6_CYCLE_11: next_state = S_WAIT2;
  344. S_DRAW1_7: next_state = S_DRAW1_7_CYCLE_0;
  345. S_DRAW1_7_CYCLE_0: next_state = S_DRAW1_7_CYCLE_1;
  346. S_DRAW1_7_CYCLE_1: next_state = S_DRAW1_7_CYCLE_2;
  347. S_DRAW1_7_CYCLE_2: next_state = S_DRAW1_7_CYCLE_3;
  348. S_DRAW1_7_CYCLE_3: next_state = S_DRAW1_7_CYCLE_4;
  349. S_DRAW1_7_CYCLE_4: next_state = S_DRAW1_7_CYCLE_5;
  350. S_DRAW1_7_CYCLE_5: next_state = S_DRAW1_7_CYCLE_6;
  351. S_DRAW1_7_CYCLE_6: next_state = S_WAIT2;
  352. S_DRAW1_8: next_state = S_DRAW1_8_CYCLE_0;
  353. S_DRAW1_8_CYCLE_0: next_state = S_DRAW1_8_CYCLE_1;
  354. S_DRAW1_8_CYCLE_1: next_state = S_DRAW1_8_CYCLE_2;
  355. S_DRAW1_8_CYCLE_2: next_state = S_DRAW1_8_CYCLE_3;
  356. S_DRAW1_8_CYCLE_3: next_state = S_DRAW1_8_CYCLE_4;
  357. S_DRAW1_8_CYCLE_4: next_state = S_DRAW1_8_CYCLE_5;
  358. S_DRAW1_8_CYCLE_5: next_state = S_DRAW1_8_CYCLE_6;
  359. S_DRAW1_8_CYCLE_6: next_state = S_DRAW1_8_CYCLE_7;
  360. S_DRAW1_8_CYCLE_7: next_state = S_DRAW1_8_CYCLE_8;
  361. S_DRAW1_8_CYCLE_8: next_state = S_DRAW1_8_CYCLE_9;
  362. S_DRAW1_8_CYCLE_9: next_state = S_DRAW1_8_CYCLE_10;
  363. S_DRAW1_8_CYCLE_10: next_state = S_DRAW1_8_CYCLE_11;
  364. S_DRAW1_8_CYCLE_11: next_state = S_DRAW1_8_CYCLE_12;
  365. S_DRAW1_8_CYCLE_12: next_state = S_WAIT2;
  366. S_DRAW1_9: next_state = S_DRAW1_9_CYCLE_0;
  367. S_DRAW1_9_CYCLE_0: next_state = S_DRAW1_9_CYCLE_1;
  368. S_DRAW1_9_CYCLE_1: next_state = S_DRAW1_9_CYCLE_2;
  369. S_DRAW1_9_CYCLE_2: next_state = S_DRAW1_9_CYCLE_3;
  370. S_DRAW1_9_CYCLE_3: next_state = S_DRAW1_9_CYCLE_4;
  371. S_DRAW1_9_CYCLE_4: next_state = S_DRAW1_9_CYCLE_5;
  372. S_DRAW1_9_CYCLE_5: next_state = S_DRAW1_9_CYCLE_6;
  373. S_DRAW1_9_CYCLE_6: next_state = S_DRAW1_9_CYCLE_7;
  374. S_DRAW1_9_CYCLE_7: next_state = S_DRAW1_9_CYCLE_8;
  375. S_DRAW1_9_CYCLE_8: next_state = S_DRAW1_9_CYCLE_9;
  376. S_DRAW1_9_CYCLE_9: next_state = S_WAIT2;
  377. S_WAIT2: begin
  378. if (one == 4'd0) next_state = S_DRAW2_0;
  379. else if (one == 4'd1) next_state = S_DRAW2_1;
  380. else if (one == 4'd2) next_state = S_DRAW2_2;
  381. else if (one == 4'd3) next_state = S_DRAW2_3;
  382. else if (one == 4'd4) next_state = S_DRAW2_4;
  383. else if (one == 4'd5) next_state = S_DRAW2_5;
  384. else if (one == 4'd6) next_state = S_DRAW2_6;
  385. else if (one == 4'd7) next_state = S_DRAW2_7;
  386. else if (one == 4'd8) next_state = S_DRAW2_8;
  387. else if (one == 4'd9) next_state = S_DRAW2_9;
  388. end
  389. S_DRAW2_0: next_state = S_DRAW2_0_CYCLE_0;
  390. S_DRAW2_0_CYCLE_0: next_state = S_DRAW2_0_CYCLE_1;
  391. S_DRAW2_0_CYCLE_1: next_state = S_DRAW2_0_CYCLE_2;
  392. S_DRAW2_0_CYCLE_2: next_state = S_DRAW2_0_CYCLE_3;
  393. S_DRAW2_0_CYCLE_3: next_state = S_DRAW2_0_CYCLE_4;
  394. S_DRAW2_0_CYCLE_4: next_state = S_DRAW2_0_CYCLE_5;
  395. S_DRAW2_0_CYCLE_5: next_state = S_DRAW2_0_CYCLE_6;
  396. S_DRAW2_0_CYCLE_6: next_state = S_DRAW2_0_CYCLE_7;
  397. S_DRAW2_0_CYCLE_7: next_state = S_DRAW2_0_CYCLE_8;
  398. S_DRAW2_0_CYCLE_8: next_state = S_DRAW2_0_CYCLE_9;
  399. S_DRAW2_0_CYCLE_9: next_state = S_DRAW2_0_CYCLE_10;
  400. S_DRAW2_0_CYCLE_10: next_state = S_DRAW2_0_CYCLE_11;
  401. S_DRAW2_0_CYCLE_11: next_state = S_WAIT2;
  402. S_DRAW2_1: next_state = S_DRAW2_1_CYCLE_0;
  403. S_DRAW2_1_CYCLE_0: next_state = S_DRAW2_1_CYCLE_1;
  404. S_DRAW2_1_CYCLE_1: next_state = S_DRAW2_1_CYCLE_2;
  405. S_DRAW2_1_CYCLE_2: next_state = S_DRAW2_1_CYCLE_3;
  406. S_DRAW2_1_CYCLE_3: next_state = S_DRAW2_1_CYCLE_4;
  407. S_DRAW2_1_CYCLE_4: next_state = S_DRAW2_1_CYCLE_5;
  408. S_DRAW2_1_CYCLE_5: next_state = S_DRAW2_1_CYCLE_6;
  409. S_DRAW2_1_CYCLE_6: next_state = S_DRAW2_1_CYCLE_7;
  410. S_DRAW2_1_CYCLE_7: next_state = S_WAIT2;
  411. S_DRAW2_2: next_state = S_DRAW2_2_CYCLE_0;
  412. S_DRAW2_2_CYCLE_0: next_state = S_DRAW2_2_CYCLE_1;
  413. S_DRAW2_2_CYCLE_1: next_state = S_DRAW2_2_CYCLE_2;
  414. S_DRAW2_2_CYCLE_2: next_state = S_DRAW2_2_CYCLE_3;
  415. S_DRAW2_2_CYCLE_3: next_state = S_DRAW2_2_CYCLE_4;
  416. S_DRAW2_2_CYCLE_4: next_state = S_DRAW2_2_CYCLE_5;
  417. S_DRAW2_2_CYCLE_5: next_state = S_DRAW2_2_CYCLE_6;
  418. S_DRAW2_2_CYCLE_6: next_state = S_DRAW2_2_CYCLE_7;
  419. S_DRAW2_2_CYCLE_7: next_state = S_DRAW2_2_CYCLE_8;
  420. S_DRAW2_2_CYCLE_8: next_state = S_DRAW2_2_CYCLE_9;
  421. S_DRAW2_2_CYCLE_9: next_state = S_DRAW2_2_CYCLE_10;
  422. S_DRAW2_2_CYCLE_10: next_state = S_WAIT2;
  423. S_DRAW2_3: next_state = S_DRAW2_3_CYCLE_0;
  424. S_DRAW2_3_CYCLE_0: next_state = S_DRAW2_3_CYCLE_1;
  425. S_DRAW2_3_CYCLE_1: next_state = S_DRAW2_3_CYCLE_2;
  426. S_DRAW2_3_CYCLE_2: next_state = S_DRAW2_3_CYCLE_3;
  427. S_DRAW2_3_CYCLE_3: next_state = S_DRAW2_3_CYCLE_4;
  428. S_DRAW2_3_CYCLE_4: next_state = S_DRAW2_3_CYCLE_5;
  429. S_DRAW2_3_CYCLE_5: next_state = S_DRAW2_3_CYCLE_6;
  430. S_DRAW2_3_CYCLE_6: next_state = S_DRAW2_3_CYCLE_7;
  431. S_DRAW2_3_CYCLE_7: next_state = S_DRAW2_3_CYCLE_8;
  432. S_DRAW2_3_CYCLE_8: next_state = S_DRAW2_3_CYCLE_9;
  433. S_DRAW2_3_CYCLE_9: next_state = S_DRAW2_3_CYCLE_10;
  434. S_DRAW2_3_CYCLE_10: next_state = S_WAIT2;
  435. S_DRAW2_4: next_state = S_DRAW2_4_CYCLE_0;
  436. S_DRAW2_4_CYCLE_0: next_state = S_DRAW2_4_CYCLE_1;
  437. S_DRAW2_4_CYCLE_1: next_state = S_DRAW2_4_CYCLE_2;
  438. S_DRAW2_4_CYCLE_2: next_state = S_DRAW2_4_CYCLE_3;
  439. S_DRAW2_4_CYCLE_3: next_state = S_DRAW2_4_CYCLE_4;
  440. S_DRAW2_4_CYCLE_4: next_state = S_DRAW2_4_CYCLE_5;
  441. S_DRAW2_4_CYCLE_5: next_state = S_DRAW2_4_CYCLE_6;
  442. S_DRAW2_4_CYCLE_6: next_state = S_DRAW2_4_CYCLE_7;
  443. S_DRAW2_4_CYCLE_7: next_state = S_DRAW2_4_CYCLE_8;
  444. S_DRAW2_4_CYCLE_8: next_state = S_WAIT2;
  445. S_DRAW2_5: next_state = S_DRAW2_5_CYCLE_0;
  446. S_DRAW2_5_CYCLE_0: next_state = S_DRAW2_5_CYCLE_1;
  447. S_DRAW2_5_CYCLE_1: next_state = S_DRAW2_5_CYCLE_2;
  448. S_DRAW2_5_CYCLE_2: next_state = S_DRAW2_5_CYCLE_3;
  449. S_DRAW2_5_CYCLE_3: next_state = S_DRAW2_5_CYCLE_4;
  450. S_DRAW2_5_CYCLE_4: next_state = S_DRAW2_5_CYCLE_5;
  451. S_DRAW2_5_CYCLE_5: next_state = S_DRAW2_5_CYCLE_6;
  452. S_DRAW2_5_CYCLE_6: next_state = S_DRAW2_5_CYCLE_7;
  453. S_DRAW2_5_CYCLE_7: next_state = S_DRAW2_5_CYCLE_8;
  454. S_DRAW2_5_CYCLE_8: next_state = S_DRAW2_5_CYCLE_9;
  455. S_DRAW2_5_CYCLE_9: next_state = S_DRAW2_5_CYCLE_10;
  456. S_DRAW2_5_CYCLE_10: next_state = S_WAIT2;
  457. S_DRAW2_6: next_state = S_DRAW2_6_CYCLE_0;
  458. S_DRAW2_6_CYCLE_0: next_state = S_DRAW2_6_CYCLE_1;
  459. S_DRAW2_6_CYCLE_1: next_state = S_DRAW2_6_CYCLE_2;
  460. S_DRAW2_6_CYCLE_2: next_state = S_DRAW2_6_CYCLE_3;
  461. S_DRAW2_6_CYCLE_3: next_state = S_DRAW2_6_CYCLE_4;
  462. S_DRAW2_6_CYCLE_4: next_state = S_DRAW2_6_CYCLE_5;
  463. S_DRAW2_6_CYCLE_5: next_state = S_DRAW2_6_CYCLE_6;
  464. S_DRAW2_6_CYCLE_6: next_state = S_DRAW2_6_CYCLE_7;
  465. S_DRAW2_6_CYCLE_7: next_state = S_DRAW2_6_CYCLE_8;
  466. S_DRAW2_6_CYCLE_8: next_state = S_DRAW2_6_CYCLE_9;
  467. S_DRAW2_6_CYCLE_9: next_state = S_DRAW2_6_CYCLE_10;
  468. S_DRAW2_6_CYCLE_10: next_state = S_DRAW2_6_CYCLE_11;
  469. S_DRAW2_6_CYCLE_11: next_state = S_WAIT2;
  470. S_DRAW2_7: next_state = S_DRAW2_7_CYCLE_0;
  471. S_DRAW2_7_CYCLE_0: next_state = S_DRAW2_7_CYCLE_1;
  472. S_DRAW2_7_CYCLE_1: next_state = S_DRAW2_7_CYCLE_2;
  473. S_DRAW2_7_CYCLE_2: next_state = S_DRAW2_7_CYCLE_3;
  474. S_DRAW2_7_CYCLE_3: next_state = S_DRAW2_7_CYCLE_4;
  475. S_DRAW2_7_CYCLE_4: next_state = S_DRAW2_7_CYCLE_5;
  476. S_DRAW2_7_CYCLE_5: next_state = S_DRAW2_7_CYCLE_6;
  477. S_DRAW2_7_CYCLE_6: next_state = S_WAIT2;
  478. S_DRAW2_8: next_state = S_DRAW2_8_CYCLE_0;
  479. S_DRAW2_8_CYCLE_0: next_state = S_DRAW2_8_CYCLE_1;
  480. S_DRAW2_8_CYCLE_1: next_state = S_DRAW2_8_CYCLE_2;
  481. S_DRAW2_8_CYCLE_2: next_state = S_DRAW2_8_CYCLE_3;
  482. S_DRAW2_8_CYCLE_3: next_state = S_DRAW2_8_CYCLE_4;
  483. S_DRAW2_8_CYCLE_4: next_state = S_DRAW2_8_CYCLE_5;
  484. S_DRAW2_8_CYCLE_5: next_state = S_DRAW2_8_CYCLE_6;
  485. S_DRAW2_8_CYCLE_6: next_state = S_DRAW2_8_CYCLE_7;
  486. S_DRAW2_8_CYCLE_7: next_state = S_DRAW2_8_CYCLE_8;
  487. S_DRAW2_8_CYCLE_8: next_state = S_DRAW2_8_CYCLE_9;
  488. S_DRAW2_8_CYCLE_9: next_state = S_DRAW2_8_CYCLE_10;
  489. S_DRAW2_8_CYCLE_10: next_state = S_DRAW2_8_CYCLE_11;
  490. S_DRAW2_8_CYCLE_11: next_state = S_DRAW2_8_CYCLE_12;
  491. S_DRAW2_8_CYCLE_12: next_state = S_WAIT2;
  492. S_DRAW2_9: next_state = S_DRAW2_9_CYCLE_0;
  493. S_DRAW2_9_CYCLE_0: next_state = S_DRAW2_9_CYCLE_1;
  494. S_DRAW2_9_CYCLE_1: next_state = S_DRAW2_9_CYCLE_2;
  495. S_DRAW2_9_CYCLE_2: next_state = S_DRAW2_9_CYCLE_3;
  496. S_DRAW2_9_CYCLE_3: next_state = S_DRAW2_9_CYCLE_4;
  497. S_DRAW2_9_CYCLE_4: next_state = S_DRAW2_9_CYCLE_5;
  498. S_DRAW2_9_CYCLE_5: next_state = S_DRAW2_9_CYCLE_6;
  499. S_DRAW2_9_CYCLE_6: next_state = S_DRAW2_9_CYCLE_7;
  500. S_DRAW2_9_CYCLE_7: next_state = S_DRAW2_9_CYCLE_8;
  501. S_DRAW2_9_CYCLE_8: next_state = S_DRAW2_9_CYCLE_9;
  502. S_DRAW2_9_CYCLE_9: next_state = S_WAIT2;
  503. default: next_state = S_WAIT1;
  504. endcase
  505. end // state_table
  506.  
  507.  
  508. // Output logic aka all of our datapath control signals
  509. always @(*)
  510. begin: enable_signals
  511. // By default make all our signals 0
  512. NIGGER;
  513.  
  514. case (current_state)
  515. S_DRAW1_0_CYCLE_0: begin
  516. out_x <= x_coordinate1;
  517. out_y <= y_coordinate1;
  518. end
  519. S_DRAW1_0_CYCLE_1: begin
  520. out_x <= x_coordinate1 + 8'd1;
  521. out_y <= y_coordinate1;
  522. end
  523. S_DRAW1_0_CYCLE_2: begin
  524. out_x <= x_coordinate1 + 8'd2;
  525. out_y <= y_coordinate1;
  526. end
  527. S_DRAW1_0_CYCLE_3: begin
  528. out_x <= x_coordinate1;
  529. out_y <= y_coordinate1 + 8'd1;
  530. end
  531. S_DRAW1_0_CYCLE_4: begin
  532. out_x <= x_coordinate1;
  533. out_y <= y_coordinate1 + 8'd2;
  534. end
  535. S_DRAW1_0_CYCLE_5: begin
  536. out_x <= x_coordinate1;
  537. out_y <= y_coordinate1 + 8'd3;
  538. end
  539. S_DRAW1_0_CYCLE_6: begin
  540. out_x <= x_coordinate1 + 8'd2;
  541. out_y <= y_coordinate1 + 8'd1;
  542. end
  543. S_DRAW1_0_CYCLE_7: begin
  544. out_x <= x_coordinate1 + 8'd2;
  545. out_y <= y_coordinate1 + 8'd2;
  546. end
  547. S_DRAW1_0_CYCLE_8: begin
  548. out_x <= x_coordinate1 + 8'd2;
  549. out_y <= y_coordinate1 + 8'd3;
  550. end
  551. S_DRAW1_0_CYCLE_9: begin
  552. out_x <= x_coordinate1;
  553. out_y <= y_coordinate1 + 8'd4;
  554. end
  555. S_DRAW1_0_CYCLE_10: begin
  556. out_x <= x_coordinate1 + 8'd1;
  557. out_y <= y_coordinate1 + 8'd4;
  558. end
  559. S_DRAW1_0_CYCLE_11: begin
  560. out_x <= x_coordinate1 + 8'd2;
  561. out_y <= y_coordinate1 + 8'd4;
  562. end
  563.  
  564.  
  565. S_DRAW1_1_CYCLE_0: begin
  566. out_x <= x_coordinate1;
  567. out_y <= y_coordinate1;
  568. end
  569. S_DRAW1_1_CYCLE_1: begin
  570. out_x <= x_coordinate1 + 8'd1;
  571. out_y <= y_coordinate1;
  572. end
  573. S_DRAW1_1_CYCLE_2: begin
  574. out_x <= x_coordinate1 + 8'd2;
  575. out_y <= y_coordinate1;
  576. end
  577. S_DRAW1_1_CYCLE_3: begin
  578. out_x <= x_coordinate1 + 8'd1;
  579. out_y <= y_coordinate1 + 8'd1;
  580. end
  581. S_DRAW1_1_CYCLE_4: begin
  582. out_x <= x_coordinate1 + 8'd1;
  583. out_y <= y_coordinate1 + 8'd2;
  584. end
  585. S_DRAW1_1_CYCLE_5: begin
  586. out_x <= x_coordinate1 + 8'd1;
  587. out_y <= y_coordinate1 + 8'd3;
  588. end
  589. S_DRAW1_1_CYCLE_6: begin
  590. out_x <= x_coordinate1 + 8'd1;
  591. out_y <= y_coordinate1 + 8'd4;
  592. end
  593. S_DRAW1_1_CYCLE_7: begin
  594. out_x <= x_coordinate1;
  595. out_y <= y_coordinate1 + 8'd4;
  596. end
  597.  
  598. S_DRAW1_2_CYCLE_0: begin
  599. out_x <= x_coordinate1;
  600. out_y <= y_coordinate1;
  601. end
  602. S_DRAW1_2_CYCLE_1: begin
  603. out_x <= x_coordinate1;
  604. out_y <= y_coordinate1 + 8'd1;
  605. end
  606. S_DRAW1_2_CYCLE_2: begin
  607. out_x <= x_coordinate1;
  608. out_y <= y_coordinate1 + 8'd2;
  609. end
  610. S_DRAW1_2_CYCLE_3: begin
  611. out_x <= x_coordinate1 + 8'd1;
  612. out_y <= y_coordinate1;
  613. end
  614. S_DRAW1_2_CYCLE_4: begin
  615. out_x <= x_coordinate1 + 8'd2;
  616. out_y <= y_coordinate1;
  617. end
  618. S_DRAW1_2_CYCLE_5: begin
  619. out_x <= x_coordinate1 + 8'd1;
  620. out_y <= y_coordinate1 + 8'd2;
  621. end
  622. S_DRAW1_2_CYCLE_6: begin
  623. out_x <= x_coordinate1 + 8'd2;
  624. out_y <= y_coordinate1 + 8'd2;
  625. end
  626. S_DRAW1_2_CYCLE_7: begin
  627. out_x <= x_coordinate1 + 8'd2;
  628. out_y <= y_coordinate1 + 8'd3;
  629. end
  630. S_DRAW1_2_CYCLE_8: begin
  631. out_x <= x_coordinate1 + 8'd2;
  632. out_y <= y_coordinate1 + 8'd4;
  633. end
  634. S_DRAW1_2_CYCLE_9: begin
  635. out_x <= x_coordinate1 + 8'd1;
  636. out_y <= y_coordinate1 + 8'd4;
  637. end
  638. S_DRAW1_2_CYCLE_10: begin
  639. out_x <= x_coordinate1;
  640. out_y <= y_coordinate1 + 8'd4;
  641. end
  642.  
  643.  
  644. S_DRAW1_3_CYCLE_0: begin
  645. out_x <= x_coordinate1;
  646. out_y <= y_coordinate1;
  647. end
  648. S_DRAW1_3_CYCLE_1: begin
  649. out_x <= x_coordinate1 + 8'b1;
  650. out_y <= y_coordinate1;
  651. end
  652. S_DRAW1_3_CYCLE_2: begin
  653. out_x <= x_coordinate1 + 8'b2;
  654. out_y <= y_coordinate1;
  655. end
  656. S_DRAW1_3_CYCLE_3: begin
  657. out_x <= x_coordinate1 + 8'd2;
  658. out_y <= y_coordinate1 + 8'd1;
  659. end
  660. S_DRAW1_3_CYCLE_4: begin
  661. out_x <= x_coordinate1 + 8'd2;
  662. out_y <= y_coordinate1 + 8'd2;
  663. end
  664. S_DRAW1_3_CYCLE_5: begin
  665. out_x <= x_coordinate1 + 8'd2;
  666. out_y <= y_coordinate1 + 8'd3;
  667. end
  668. S_DRAW1_3_CYCLE_6: begin
  669. out_x <= x_coordinate1 + 8'd2;
  670. out_y <= y_coordinate1 + 8'd4;
  671. end
  672. S_DRAW1_3_CYCLE_7: begin
  673. out_x <= x_coordinate1 + 8'd1;
  674. out_y <= y_coordinate1 + 8'd4;
  675. end
  676. S_DRAW1_3_CYCLE_8: begin
  677. out_x <= x_coordinate1;
  678. out_y <= y_coordinate1 + 8'd4;
  679. end
  680. S_DRAW1_3_CYCLE_9: begin
  681. out_x <= x_coordinate1 + 8'd1;
  682. out_y <= y_coordinate1 + 8'd2;
  683. end
  684.  
  685.  
  686. S_DRAW1_4_CYCLE_0: begin
  687. out_x <= x_coordinate1 + 8'd2;
  688. out_y <= y_coordinate1;
  689. end
  690. S_DRAW1_4_CYCLE_0: begin
  691. out_x <= x_coordinate1 + 8'd2;
  692. out_y <= y_coordinate1 + 8'd1;
  693. end
  694. S_DRAW1_4_CYCLE_0: begin
  695. out_x <= x_coordinate1 + 8'd2;
  696. out_y <= y_coordinate1 + 8'd2;
  697. end
  698. S_DRAW1_4_CYCLE_0: begin
  699. out_x <= x_coordinate1 + 8'd2;
  700. out_y <= y_coordinate1 + 8'd3;
  701. end
  702. S_DRAW1_4_CYCLE_0: begin
  703. out_x <= x_coordinate1 + 8'd2;
  704. out_y <= y_coordinate1 + 8'd4;
  705. end
  706. S_DRAW1_4_CYCLE_0: begin
  707. out_x <= x_coordinate1 + 8'd1;
  708. out_y <= y_coordinate1 + 8'd2;
  709. end
  710. S_DRAW1_4_CYCLE_0: begin
  711. out_x <= x_coordinate1;
  712. out_y <= y_coordinate1 + 8'd2;
  713. end
  714. S_DRAW1_4_CYCLE_0: begin
  715. out_x <= x_coordinate1;
  716. out_y <= y_coordinate1 + 8'd3;
  717. end
  718. S_DRAW1_4_CYCLE_0: begin
  719. out_x <= x_coordinate1;
  720. out_y <= y_coordinate1 + 8'd4;
  721. end
  722.  
  723.  
  724. S_DRAW1_5_CYCLE_0: begin
  725. out_x <= x_coordinate1;
  726. out_y <= y_coordinate1;
  727. end
  728. S_DRAW1_5_CYCLE_1: begin
  729. out_x <= x_coordinate1 + 8'd1;
  730. out_y <= y_coordinate1;
  731. end
  732. S_DRAW1_5_CYCLE_2: begin
  733. out_x <= x_coordinate1 + 8'd2;
  734. out_y <= y_coordinate1;
  735. end
  736. S_DRAW1_5_CYCLE_3: begin
  737. out_x <= x_coordinate1 + 8'd2;
  738. out_y <= y_coordinate1 + 8'd1;
  739. end
  740. S_DRAW1_5_CYCLE_4: begin
  741. out_x <= x_coordinate1 + 8'd2;
  742. out_y <= y_coordinate1 + 8'd2;
  743. end
  744. S_DRAW1_5_CYCLE_5: begin
  745. out_x <= x_coordinate1 + 8'd1;
  746. out_y <= y_coordinate1 + 8'd2;
  747. end
  748. S_DRAW1_5_CYCLE_6: begin
  749. out_x <= x_coordinate1;
  750. out_y <= y_coordinate1 + 8'd2;
  751. end
  752. S_DRAW1_5_CYCLE_7: begin
  753. out_x <= x_coordinate1;
  754. out_y <= y_coordinate1 + 8'd3;
  755. end
  756. S_DRAW1_5_CYCLE_8: begin
  757. out_x <= x_coordinate1;
  758. out_y <= y_coordinate1 + 8'd4;
  759. end
  760. S_DRAW1_5_CYCLE_9: begin
  761. out_x <= x_coordinate1 + 8'd1;
  762. out_y <= y_coordinate1 + 8'd4;
  763. end
  764. S_DRAW1_5_CYCLE_10: begin
  765. out_x <= x_coordinate1 + 8'd2;
  766. out_y <= y_coordinate1 + 8'd4;
  767. end
  768.  
  769.  
  770. S_DRAW1_6_CYCLE_0: begin
  771. out_x <= x_coordinate1;
  772. out_y <= y_coordinate1;
  773. end
  774. S_DRAW1_6_CYCLE_1: begin
  775. out_x <= x_coordinate1 + 8'd1;
  776. out_y <= y_coordinate1;
  777. end
  778. S_DRAW1_6_CYCLE_2: begin
  779. out_x <= x_coordinate1 + 8'd2;
  780. out_y <= y_coordinate1;
  781. end
  782. S_DRAW1_6_CYCLE_3: begin
  783. out_x <= x_coordinate1 + 8'd2;
  784. out_y <= y_coordinate1 + 8'd1;
  785. end
  786. S_DRAW1_6_CYCLE_4: begin
  787. out_x <= x_coordinate1 + 8'd2;
  788. out_y <= y_coordinate1 + 8'd2;
  789. end
  790. S_DRAW1_6_CYCLE_5: begin
  791. out_x <= x_coordinate1 + 8'd1;
  792. out_y <= y_coordinate1 + 8'd2;
  793. end
  794. S_DRAW1_6_CYCLE_6: begin
  795. out_x <= x_coordinate1;
  796. out_y <= y_coordinate1 + 8'd2;
  797. end
  798. S_DRAW1_6_CYCLE_7: begin
  799. out_x <= x_coordinate1;
  800. out_y <= y_coordinate1 + 8'd3;
  801. end
  802. S_DRAW1_6_CYCLE_8: begin
  803. out_x <= x_coordinate1;
  804. out_y <= y_coordinate1 + 8'd4;
  805. end
  806. S_DRAW1_6_CYCLE_9: begin
  807. out_x <= x_coordinate1 + 8'd1;
  808. out_y <= y_coordinate1 + 8'd4;
  809. end
  810. S_DRAW1_6_CYCLE_10: begin
  811. out_x <= x_coordinate1 + 8'd2;
  812. out_y <= y_coordinate1 + 8'd4;
  813. end
  814. S_DRAW1_6_CYCLE_11: begin
  815. out_x <= x_coordinate1;
  816. out_y <= y_coordinate1 + 8'd1;
  817. end
  818.  
  819.  
  820. S_DRAW1_7_CYCLE_0: begin
  821. out_x <= x_coordinate1 + 8'd2;
  822. out_y <= y_coordinate1;
  823. end
  824. S_DRAW1_7_CYCLE_1: begin
  825. out_x <= x_coordinate1 + 8'd2;
  826. out_y <= y_coordinate1 + 8'd1;
  827. end
  828. S_DRAW1_7_CYCLE_2: begin
  829. out_x <= x_coordinate1 + 8'd2;
  830. out_y <= y_coordinate1 + 8'd2;
  831. end
  832. S_DRAW1_7_CYCLE_3: begin
  833. out_x <= x_coordinate1 + 8'd2;
  834. out_y <= y_coordinate1 + 8'd3;
  835. end
  836. S_DRAW1_7_CYCLE_4: begin
  837. out_x <= x_coordinate1 + 8'd2;
  838. out_y <= y_coordinate1 + 8'd4;
  839. end
  840. S_DRAW1_7_CYCLE_5: begin
  841. out_x <= x_coordinate1 + 8'd1;
  842. out_y <= y_coordinate1 + 8'd4;
  843. end
  844. S_DRAW1_7_CYCLE_6: begin
  845. out_x <= x_coordinate1;
  846. out_y <= y_coordinate1 + 8'd4;
  847. end
  848.  
  849.  
  850. S_DRAW1_8_CYCLE_0: begin
  851. out_x <= x_coordinate1;
  852. out_y <= y_coordinate1;
  853. end
  854. S_DRAW1_8_CYCLE_1: begin
  855. out_x <= x_coordinate1 + 8'd1;
  856. out_y <= y_coordinate1;
  857. end
  858. S_DRAW1_8_CYCLE_2: begin
  859. out_x <= x_coordinate1 + 8'd2;
  860. out_y <= y_coordinate1;
  861. end
  862. S_DRAW1_8_CYCLE_3: begin
  863. out_x <= x_coordinate1;
  864. out_y <= y_coordinate1 + 8'd1;
  865. end
  866. S_DRAW1_8_CYCLE_4: begin
  867. out_x <= x_coordinate1;
  868. out_y <= y_coordinate1 + 8'd2;
  869. end
  870. S_DRAW1_8_CYCLE_5: begin
  871. out_x <= x_coordinate1;
  872. out_y <= y_coordinate1 + 8'd3;
  873. end
  874. S_DRAW1_8_CYCLE_6: begin
  875. out_x <= x_coordinate1 + 8'd2;
  876. out_y <= y_coordinate1 + 8'd1;
  877. end
  878. S_DRAW1_8_CYCLE_7: begin
  879. out_x <= x_coordinate1 + 8'd2;
  880. out_y <= y_coordinate1 + 8'd2;
  881. end
  882. S_DRAW1_8_CYCLE_8: begin
  883. out_x <= x_coordinate1 + 8'd2;
  884. out_y <= y_coordinate1 + 8'd3;
  885. end
  886. S_DRAW1_8_CYCLE_9: begin
  887. out_x <= x_coordinate1;
  888. out_y <= y_coordinate1 + 8'd4;
  889. end
  890. S_DRAW1_8_CYCLE_10: begin
  891. out_x <= x_coordinate1 + 8'd1;
  892. out_y <= y_coordinate1 + 8'd4;
  893. end
  894. S_DRAW1_8_CYCLE_11: begin
  895. out_x <= x_coordinate1 + 8'd2;
  896. out_y <= y_coordinate1 + 8'd4;
  897. end
  898. S_DRAW1_8_CYCLE_12: begin
  899. out_x <= x_coordinate1 + 8'd1;
  900. out_y <= y_coordinate1 + 8'd2;
  901. end
  902.  
  903.  
  904. S_DRAW1_9_CYCLE_0: begin
  905. out_x <= x_coordinate1 + 8'd2;
  906. out_y <= y_coordinate1;
  907. end
  908. S_DRAW1_9_CYCLE_1: begin
  909. out_x <= x_coordinate1 + 8'd2;
  910. out_y <= y_coordinate1 + 8'd1;
  911. end
  912. S_DRAW1_9_CYCLE_2: begin
  913. out_x <= x_coordinate1 + 8'd2;
  914. out_y <= y_coordinate1 + 8'd2;
  915. end
  916. S_DRAW1_9_CYCLE_3: begin
  917. out_x <= x_coordinate1 + 8'd2;
  918. out_y <= y_coordinate1 + 8'd3;
  919. end
  920. S_DRAW1_9_CYCLE_4: begin
  921. out_x <= x_coordinate1 + 8'd2;
  922. out_y <= y_coordinate1 + 8'd4;
  923. end
  924. S_DRAW1_9_CYCLE_5: begin
  925. out_x <= x_coordinate1 + 8'd1;
  926. out_y <= y_coordinate1 + 8'd4;
  927. end
  928. S_DRAW1_9_CYCLE_6: begin
  929. out_x <= x_coordinate1;
  930. out_y <= y_coordinate1 + 8'd4;
  931. end
  932. S_DRAW1_9_CYCLE_7: begin
  933. out_x <= x_coordinate1;
  934. out_y <= y_coordinate1 + 8'd3;
  935. end
  936. S_DRAW1_9_CYCLE_8: begin
  937. out_x <= x_coordinate1;
  938. out_y <= y_coordinate1 + 8'd2;
  939. end
  940. S_DRAW1_9_CYCLE_9: begin
  941. out_x <= x_coordinate1 + 8'd1;
  942. out_y <= y_coordinate1 + 8'd2;
  943. end
  944.  
  945.  
  946. // default: // don't need default since we already made sure all of our outputs were assigned a value at the start of the always block
  947. endcase
  948. end // enable_signals
  949.  
  950. // current_state registers
  951. always@(posedge clk)
  952. begin: state_FFs
  953. if(!resetn)
  954. current_state <= S_LOAD_X;
  955. else
  956. current_state <= next_state;
  957. end // state_FFS
  958. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement