RegMap.v 59 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462
  1. module RegMap #(
  2. parameter CmdRegWidth = 32,
  3. parameter AddrRegWidth = 12
  4. )
  5. (
  6. input [CmdRegWidth/2-1:0] Data_i,
  7. input [AddrRegWidth-1:0] Addr_i,
  8. input Clk_i,
  9. input Rst_i,
  10. input wrEn_i,
  11. input rdEn_i,
  12. input [1:0] BE_i,
  13. output [CmdRegWidth/2-1:0] Spi0CtrlReg_o,
  14. output [CmdRegWidth/2-1:0] Spi0ClkReg_o,
  15. output [CmdRegWidth/2-1:0] Spi0CsDelayReg_o,
  16. output [CmdRegWidth/2-1:0] Spi0CsCtrlReg_o,
  17. output [CmdRegWidth/2-1:0] Spi0TxFifoCtrlReg_o,
  18. output [CmdRegWidth/2-1:0] Spi0RxFifoCtrlReg_o,
  19. output [CmdRegWidth/2-1:0] Spi0TxFifoReg_o,
  20. output [CmdRegWidth/2-1:0] Spi0RxFifoReg_o,
  21. output [CmdRegWidth/2-1:0] Spi1CtrlReg_o,
  22. output [CmdRegWidth/2-1:0] Spi1ClkReg_o,
  23. output [CmdRegWidth/2-1:0] Spi1CsDelayReg_o,
  24. output [CmdRegWidth/2-1:0] Spi1CsCtrlReg_o,
  25. output [CmdRegWidth/2-1:0] Spi1TxFifoCtrlReg_o,
  26. output [CmdRegWidth/2-1:0] Spi1RxFifoCtrlReg_o,
  27. output [CmdRegWidth/2-1:0] Spi1TxFifoReg_o,
  28. output [CmdRegWidth/2-1:0] Spi1RxFifoReg_o,
  29. output [CmdRegWidth/2-1:0] Spi2CtrlReg_o,
  30. output [CmdRegWidth/2-1:0] Spi2ClkReg_o,
  31. output [CmdRegWidth/2-1:0] Spi2CsDelayReg_o,
  32. output [CmdRegWidth/2-1:0] Spi2CsCtrlReg_o,
  33. output [CmdRegWidth/2-1:0] Spi2TxFifoCtrlReg_o,
  34. output [CmdRegWidth/2-1:0] Spi2RxFifoCtrlReg_o,
  35. output [CmdRegWidth/2-1:0] Spi2TxFifoReg_o,
  36. output [CmdRegWidth/2-1:0] Spi2RxFifoReg_o,
  37. output [CmdRegWidth/2-1:0] Spi3CtrlReg_o,
  38. output [CmdRegWidth/2-1:0] Spi3ClkReg_o,
  39. output [CmdRegWidth/2-1:0] Spi3CsDelayReg_o,
  40. output [CmdRegWidth/2-1:0] Spi3CsCtrlReg_o,
  41. output [CmdRegWidth/2-1:0] Spi3TxFifoCtrlReg_o,
  42. output [CmdRegWidth/2-1:0] Spi3RxFifoCtrlReg_o,
  43. output [CmdRegWidth/2-1:0] Spi3TxFifoReg_o,
  44. output [CmdRegWidth/2-1:0] Spi3RxFifoReg_o,
  45. output [CmdRegWidth/2-1:0] Spi4CtrlReg_o,
  46. output [CmdRegWidth/2-1:0] Spi4ClkReg_o,
  47. output [CmdRegWidth/2-1:0] Spi4CsDelayReg_o,
  48. output [CmdRegWidth/2-1:0] Spi4CsCtrlReg_o,
  49. output [CmdRegWidth/2-1:0] Spi4TxFifoCtrlReg_o,
  50. output [CmdRegWidth/2-1:0] Spi4RxFifoCtrlReg_o,
  51. output [CmdRegWidth/2-1:0] Spi4TxFifoReg_o,
  52. output [CmdRegWidth/2-1:0] Spi4RxFifoReg_o,
  53. output [CmdRegWidth/2-1:0] Spi5CtrlReg_o,
  54. output [CmdRegWidth/2-1:0] Spi5ClkReg_o,
  55. output [CmdRegWidth/2-1:0] Spi5CsDelayReg_o,
  56. output [CmdRegWidth/2-1:0] Spi5CsCtrlReg_o,
  57. output [CmdRegWidth/2-1:0] Spi5TxFifoCtrlReg_o,
  58. output [CmdRegWidth/2-1:0] Spi5RxFifoCtrlReg_o,
  59. output [CmdRegWidth/2-1:0] Spi5TxFifoReg_o,
  60. output [CmdRegWidth/2-1:0] Spi5RxFifoReg_o,
  61. output [CmdRegWidth/2-1:0] Spi6CtrlReg_o,
  62. output [CmdRegWidth/2-1:0] Spi6ClkReg_o,
  63. output [CmdRegWidth/2-1:0] Spi6CsDelayReg_o,
  64. output [CmdRegWidth/2-1:0] Spi6CsCtrlReg_o,
  65. output [CmdRegWidth/2-1:0] Spi6TxFifoCtrlReg_o,
  66. output [CmdRegWidth/2-1:0] Spi6RxFifoCtrlReg_o,
  67. output [CmdRegWidth/2-1:0] Spi6TxFifoReg_o,
  68. output [CmdRegWidth/2-1:0] Spi6RxFifoReg_o,
  69. output [CmdRegWidth/2-1:0] SpiTxRxEnReg_o,
  70. output [CmdRegWidth/2-1:0] GPIOAReg_o,
  71. output [CmdRegWidth/2-1:0] AnsDataReg_o,
  72. output Led_o
  73. );
  74. //================================================================================
  75. // REG/WIRE
  76. //================================================================================
  77. reg [CmdRegWidth/2-1:0] Spi0CtrlReg;
  78. reg [CmdRegWidth/2-1:0] Spi0ClkReg;
  79. reg [CmdRegWidth/2-1:0] Spi0CsDelayReg;
  80. reg [CmdRegWidth/2-1:0] Spi0CsCtrlReg;
  81. reg [CmdRegWidth/2-1:0] Spi0TxFifoCtrlReg;
  82. reg [CmdRegWidth/2-1:0] Spi0RxFifoCtrlReg;
  83. reg [CmdRegWidth/2-1:0] Spi0TxFifoReg;
  84. reg [CmdRegWidth/2-1:0] Spi0RxFifoReg;
  85. reg [CmdRegWidth/2-1:0] Spi1CtrlReg;
  86. reg [CmdRegWidth/2-1:0] Spi1ClkReg;
  87. reg [CmdRegWidth/2-1:0] Spi1CsDelayReg;
  88. reg [CmdRegWidth/2-1:0] Spi1CsCtrlReg;
  89. reg [CmdRegWidth/2-1:0] Spi1TxFifoCtrlReg;
  90. reg [CmdRegWidth/2-1:0] Spi1RxFifoCtrlReg;
  91. reg [CmdRegWidth/2-1:0] Spi1TxFifoReg;
  92. reg [CmdRegWidth/2-1:0] Spi1RxFifoReg;
  93. reg [CmdRegWidth/2-1:0] Spi2CtrlReg;
  94. reg [CmdRegWidth/2-1:0] Spi2ClkReg;
  95. reg [CmdRegWidth/2-1:0] Spi2CsDelayReg;
  96. reg [CmdRegWidth/2-1:0] Spi2CsCtrlReg;
  97. reg [CmdRegWidth/2-1:0] Spi2TxFifoCtrlReg;
  98. reg [CmdRegWidth/2-1:0] Spi2RxFifoCtrlReg;
  99. reg [CmdRegWidth/2-1:0] Spi2TxFifoReg;
  100. reg [CmdRegWidth/2-1:0] Spi2RxFifoReg;
  101. reg [CmdRegWidth/2-1:0] Spi3CtrlReg;
  102. reg [CmdRegWidth/2-1:0] Spi3ClkReg;
  103. reg [CmdRegWidth/2-1:0] Spi3CsDelayReg;
  104. reg [CmdRegWidth/2-1:0] Spi3CsCtrlReg;
  105. reg [CmdRegWidth/2-1:0] Spi3TxFifoCtrlReg;
  106. reg [CmdRegWidth/2-1:0] Spi3RxFifoCtrlReg;
  107. reg [CmdRegWidth/2-1:0] Spi3TxFifoReg;
  108. reg [CmdRegWidth/2-1:0] Spi3RxFifoReg;
  109. reg [CmdRegWidth/2-1:0] Spi4CtrlReg;
  110. reg [CmdRegWidth/2-1:0] Spi4ClkReg;
  111. reg [CmdRegWidth/2-1:0] Spi4CsDelayReg;
  112. reg [CmdRegWidth/2-1:0] Spi4CsCtrlReg;
  113. reg [CmdRegWidth/2-1:0] Spi4TxFifoCtrlReg;
  114. reg [CmdRegWidth/2-1:0] Spi4RxFifoCtrlReg;
  115. reg [CmdRegWidth/2-1:0] Spi4TxFifoReg;
  116. reg [CmdRegWidth/2-1:0] Spi4RxFifoReg;
  117. reg [CmdRegWidth/2-1:0] Spi5CtrlReg;
  118. reg [CmdRegWidth/2-1:0] Spi5ClkReg;
  119. reg [CmdRegWidth/2-1:0] Spi5CsDelayReg;
  120. reg [CmdRegWidth/2-1:0] Spi5CsCtrlReg;
  121. reg [CmdRegWidth/2-1:0] Spi5TxFifoCtrlReg;
  122. reg [CmdRegWidth/2-1:0] Spi5RxFifoCtrlReg;
  123. reg [CmdRegWidth/2-1:0] Spi5TxFifoReg;
  124. reg [CmdRegWidth/2-1:0] Spi5RxFifoReg;
  125. reg [CmdRegWidth/2-1:0] Spi6CtrlReg;
  126. reg [CmdRegWidth/2-1:0] Spi6ClkReg;
  127. reg [CmdRegWidth/2-1:0] Spi6CsDelayReg;
  128. reg [CmdRegWidth/2-1:0] Spi6CsCtrlReg;
  129. reg [CmdRegWidth/2-1:0] Spi6TxFifoCtrlReg;
  130. reg [CmdRegWidth/2-1:0] Spi6RxFifoCtrlReg;
  131. reg [CmdRegWidth/2-1:0] Spi6TxFifoReg;
  132. reg [CmdRegWidth/2-1:0] Spi6RxFifoReg;
  133. reg [CmdRegWidth/2-1:0] SpiTxRxEnReg;
  134. reg [CmdRegWidth/2-1:0] GPIOAReg;
  135. reg [CmdRegWidth/2-1:0] ansReg;
  136. //================================================================================
  137. // ASSIGNMENTS
  138. //================================================================================
  139. assign Spi0CtrlReg_o = Spi0CtrlReg;
  140. assign Spi0ClkReg_o = Spi0ClkReg;
  141. assign Spi0CsDelayReg_o = Spi0CsDelayReg;
  142. assign Spi0CsCtrlReg_o = Spi0CsCtrlReg;
  143. assign Spi0TxFifoCtrlReg_o = Spi0TxFifoCtrlReg;
  144. assign Spi0RxFifoCtrlReg_o = Spi0RxFifoCtrlReg;
  145. assign Spi0TxFifoReg_o = Spi0TxFifoReg;
  146. assign Spi0RxFifoReg_o = Spi0RxFifoReg;
  147. assign Spi1CtrlReg_o = Spi1CtrlReg;
  148. assign Spi1ClkReg_o = Spi1ClkReg;
  149. assign Spi1CsDelayReg_o = Spi1CsDelayReg;
  150. assign Spi1CsCtrlReg_o = Spi1CsCtrlReg;
  151. assign Spi1TxFifoCtrlReg_o = Spi1TxFifoCtrlReg;
  152. assign Spi1RxFifoCtrlReg_o = Spi1RxFifoCtrlReg;
  153. assign Spi1TxFifoReg_o = Spi1TxFifoReg;
  154. assign Spi1RxFifoReg_o = Spi1RxFifoReg;
  155. assign Spi2CtrlReg_o = Spi2CtrlReg;
  156. assign Spi2ClkReg_o = Spi2ClkReg;
  157. assign Spi2CsDelayReg_o = Spi2CsDelayReg;
  158. assign Spi2CsCtrlReg_o = Spi2CsCtrlReg;
  159. assign Spi2TxFifoCtrlReg_o = Spi2TxFifoCtrlReg;
  160. assign Spi2RxFifoCtrlReg_o = Spi2RxFifoCtrlReg;
  161. assign Spi2TxFifoReg_o = Spi2TxFifoReg;
  162. assign Spi2RxFifoReg_o = Spi2RxFifoReg;
  163. assign Spi3CtrlReg_o = Spi3CtrlReg;
  164. assign Spi3ClkReg_o = Spi3ClkReg;
  165. assign Spi3CsDelayReg_o = Spi3CsDelayReg;
  166. assign Spi3CsCtrlReg_o = Spi3CsCtrlReg;
  167. assign Spi3TxFifoCtrlReg_o = Spi3TxFifoCtrlReg;
  168. assign Spi3RxFifoCtrlReg_o = Spi3RxFifoCtrlReg;
  169. assign Spi3TxFifoReg_o = Spi3TxFifoReg;
  170. assign Spi3RxFifoReg_o = Spi3RxFifoReg;
  171. assign Spi4CtrlReg_o = Spi4CtrlReg;
  172. assign Spi4ClkReg_o = Spi4ClkReg;
  173. assign Spi4CsDelayReg_o = Spi4CsDelayReg;
  174. assign Spi4CsCtrlReg_o = Spi4CsCtrlReg;
  175. assign Spi4TxFifoCtrlReg_o = Spi4TxFifoCtrlReg;
  176. assign Spi4RxFifoCtrlReg_o = Spi4RxFifoCtrlReg;
  177. assign Spi4TxFifoReg_o = Spi4TxFifoReg;
  178. assign Spi4RxFifoReg_o = Spi4RxFifoReg;
  179. assign Spi5CtrlReg_o = Spi5CtrlReg;
  180. assign Spi5ClkReg_o = Spi5ClkReg;
  181. assign Spi5CsDelayReg_o = Spi5CsDelayReg;
  182. assign Spi5CsCtrlReg_o = Spi5CsCtrlReg;
  183. assign Spi5TxFifoCtrlReg_o = Spi5TxFifoCtrlReg;
  184. assign Spi5RxFifoCtrlReg_o = Spi5RxFifoCtrlReg;
  185. assign Spi5TxFifoReg_o = Spi5TxFifoReg;
  186. assign Spi5RxFifoReg_o = Spi5RxFifoReg;
  187. assign Spi6CtrlReg_o = Spi6CtrlReg;
  188. assign Spi6ClkReg_o = Spi6ClkReg;
  189. assign Spi6CsDelayReg_o = Spi6CsDelayReg;
  190. assign Spi6CsCtrlReg_o = Spi6CsCtrlReg;
  191. assign Spi6TxFifoCtrlReg_o = Spi6TxFifoCtrlReg;
  192. assign Spi6RxFifoCtrlReg_o = Spi6RxFifoCtrlReg;
  193. assign Spi6TxFifoReg_o = Spi6TxFifoReg;
  194. assign Spi6RxFifoReg_o = Spi6RxFifoReg;
  195. assign SpiTxRxEnReg_o = SpiTxRxEnReg;
  196. assign GPIOAReg_o = GPIOAReg;
  197. assign AnsDataReg_o = ansReg;
  198. //================================================================================
  199. // LOCALPARAMS
  200. //================================================================================
  201. localparam Spi0CtrlAddr = 12'h00;
  202. localparam Spi0ClkAddr = 12'h04;
  203. localparam Spi0CsDelayAddr = 12'h08;
  204. localparam Spi0CsCtrlAddr = 12'h0c;
  205. localparam Spi0TxFifoCtrlAddr = 12'h10;
  206. localparam Spi0RxFifoCtrlAddr = 12'h14;
  207. localparam Spi0TxFifo = 12'h18;
  208. localparam Spi0RxFifo = 12'h1c;
  209. localparam Spi1CtrlAddr = 12'h50;
  210. localparam Spi1ClkAddr = 12'h54;
  211. localparam Spi1CsDelayAddr = 12'h58;
  212. localparam Spi1CsCtrlAddr = 12'h5c;
  213. localparam Spi1TxFifoCtrlAddr = 12'h60;
  214. localparam Spi1RxFifoCtrlAddr = 12'h64;
  215. localparam Spi1TxFifo = 12'h68;
  216. localparam Spi1RxFifo = 12'h6c;
  217. localparam Spi2CtrlAddr = 12'hF0;
  218. localparam Spi2ClkAddr = 12'hF4;
  219. localparam Spi2CsDelayAddr = 12'hF8;
  220. localparam Spi2CsCtrlAddr = 12'hFc;
  221. localparam Spi2TxFifoCtrlAddr = 12'h100;
  222. localparam Spi2RxFifoCtrlAddr = 12'h104;
  223. localparam Spi2TxFifo = 12'h108;
  224. localparam Spi2RxFifo = 12'h10c;
  225. localparam Spi3CtrlAddr = 12'h140;
  226. localparam Spi3ClkAddr = 12'h144;
  227. localparam Spi3CsDelayAddr = 12'h148;
  228. localparam Spi3CsCtrlAddr = 12'h14c;
  229. localparam Spi3TxFifoCtrlAddr = 12'h150;
  230. localparam Spi3RxFifoCtrlAddr = 12'h154;
  231. localparam Spi3TxFifo = 12'h158;
  232. localparam Spi3RxFifo = 12'h15c;
  233. localparam Spi4CtrlAddr = 12'h190;
  234. localparam Spi4ClkAddr = 12'h194;
  235. localparam Spi4CsDelayAddr = 12'h198;
  236. localparam Spi4CsCtrlAddr = 12'h19c;
  237. localparam Spi4TxFifoCtrlAddr = 12'h1a0;
  238. localparam Spi4RxFifoCtrlAddr = 12'h1a4;
  239. localparam Spi4TxFifo = 12'h1a8;
  240. localparam Spi4RxFifo = 12'h1ac;
  241. localparam Spi5CtrlAddr = 12'h1e0;
  242. localparam Spi5ClkAddr = 12'h1e4;
  243. localparam Spi5CsDelayAddr = 12'h1e8;
  244. localparam Spi5CsCtrlAddr = 12'h1ec;
  245. localparam Spi5TxFifoCtrlAddr = 12'h1f0;
  246. localparam Spi5RxFifoCtrlAddr = 12'h1f4;
  247. localparam Spi5TxFifo = 12'h1f8;
  248. localparam Spi5RxFifo = 12'h1fc;
  249. localparam Spi6CtrlAddr = 12'h230;
  250. localparam Spi6ClkAddr = 12'h234;
  251. localparam Spi6CsDelayAddr = 12'h238;
  252. localparam Spi6CsCtrlAddr = 12'h23c;
  253. localparam Spi6TxFifoCtrlAddr = 12'h240;
  254. localparam Spi6RxFifoCtrlAddr = 12'h244;
  255. localparam Spi6TxFifo = 12'h248;
  256. localparam Spi6RxFifo = 12'h24c;
  257. localparam SpiTxRxEn = 12'hF00;
  258. localparam GPIOCtrlAddr = 12'hFF0;
  259. //================================================================================
  260. always @(posedge Clk_i) begin
  261. if (Rst_i) begin
  262. Spi0ClkReg <= 0;
  263. Spi0CtrlReg <= 0;
  264. Spi0CsDelayReg <= 0;
  265. Spi0CsCtrlReg <= 0;
  266. Spi0TxFifoCtrlReg <= 0;
  267. Spi0RxFifoCtrlReg <= 0;
  268. Spi0TxFifoReg <= 0;
  269. Spi0RxFifoReg <= 0;
  270. Spi1ClkReg <= 0;
  271. Spi1CtrlReg <= 0;
  272. Spi1CsDelayReg <= 0;
  273. Spi1CsCtrlReg <= 0;
  274. Spi1TxFifoCtrlReg <= 0;
  275. Spi1RxFifoCtrlReg <= 0;
  276. Spi1TxFifoReg <= 0;
  277. Spi1RxFifoReg <= 0;
  278. Spi2ClkReg <= 0;
  279. Spi2CtrlReg <= 0;
  280. Spi2CsDelayReg <= 0;
  281. Spi2CsCtrlReg <= 0;
  282. Spi2TxFifoCtrlReg <= 0;
  283. Spi2RxFifoCtrlReg <= 0;
  284. Spi2TxFifoReg <= 0;
  285. Spi2RxFifoReg <= 0;
  286. Spi3ClkReg <= 0;
  287. Spi3CtrlReg <= 0;
  288. Spi3CsDelayReg <= 0;
  289. Spi3CsCtrlReg <= 0;
  290. Spi3TxFifoCtrlReg <= 0;
  291. Spi3RxFifoCtrlReg <= 0;
  292. Spi3TxFifoReg <= 0;
  293. Spi3RxFifoReg <= 0;
  294. Spi4ClkReg <= 0;
  295. Spi4CtrlReg <= 0;
  296. Spi4CsDelayReg <= 0;
  297. Spi4CsCtrlReg <= 0;
  298. Spi4TxFifoCtrlReg <= 0;
  299. Spi4RxFifoCtrlReg <= 0;
  300. Spi4TxFifoReg <= 0;
  301. Spi4RxFifoReg <= 0;
  302. Spi5ClkReg <= 0;
  303. Spi5CtrlReg <= 0;
  304. Spi5CsDelayReg <= 0;
  305. Spi5CsCtrlReg <= 0;
  306. Spi5TxFifoCtrlReg <= 0;
  307. Spi5RxFifoCtrlReg <= 0;
  308. Spi5TxFifoReg <= 0;
  309. Spi5RxFifoReg <= 0;
  310. Spi6ClkReg <= 0;
  311. Spi6CtrlReg <= 0;
  312. Spi6CsDelayReg <= 0;
  313. Spi6CsCtrlReg <= 0;
  314. Spi6TxFifoCtrlReg <= 0;
  315. Spi6RxFifoCtrlReg <= 0;
  316. Spi6TxFifoReg <= 0;
  317. Spi6RxFifoReg <= 0;
  318. SpiTxRxEnReg <= 0;
  319. GPIOAReg <= 0;
  320. end
  321. else begin
  322. if (!wrEn_i) begin
  323. case (BE_i)
  324. 0 : begin
  325. case (Addr_i)
  326. Spi0CtrlAddr : begin
  327. Spi0CtrlReg <= Data_i;
  328. end
  329. Spi0ClkAddr : begin
  330. Spi0ClkReg <= Data_i;
  331. end
  332. Spi0CsDelayAddr : begin
  333. Spi0CsDelayReg <= Data_i;
  334. end
  335. Spi0CsCtrlAddr : begin
  336. Spi0CsCtrlReg <= Data_i;
  337. end
  338. Spi0TxFifoCtrlAddr : begin
  339. Spi0TxFifoCtrlReg <= Data_i;
  340. end
  341. Spi0RxFifoCtrlAddr : begin
  342. Spi0RxFifoCtrlReg <= Data_i;
  343. end
  344. Spi0TxFifo : begin
  345. Spi0TxFifoReg <= Data_i;
  346. end
  347. Spi0RxFifo : begin
  348. Spi0RxFifoReg <= Data_i;
  349. end
  350. Spi1CtrlAddr : begin
  351. Spi1CtrlReg <= Data_i;
  352. end
  353. Spi1ClkAddr : begin
  354. Spi1ClkReg <= Data_i;
  355. end
  356. Spi1CsDelayAddr : begin
  357. Spi1CsDelayReg <= Data_i;
  358. end
  359. Spi1CsCtrlAddr : begin
  360. Spi1CsCtrlReg <= Data_i;
  361. end
  362. Spi1TxFifoCtrlAddr : begin
  363. Spi1TxFifoCtrlReg <= Data_i;
  364. end
  365. Spi1RxFifoCtrlAddr : begin
  366. Spi1RxFifoCtrlReg <= Data_i;
  367. end
  368. Spi1TxFifo : begin
  369. Spi1TxFifoReg <= Data_i;
  370. end
  371. Spi1RxFifo : begin
  372. Spi1RxFifoReg <= Data_i;
  373. end
  374. Spi2CtrlAddr : begin
  375. Spi2CtrlReg <= Data_i;
  376. end
  377. Spi2ClkAddr : begin
  378. Spi2ClkReg <= Data_i;
  379. end
  380. Spi2CsDelayAddr : begin
  381. Spi2CsDelayReg <= Data_i;
  382. end
  383. Spi2CsCtrlAddr : begin
  384. Spi2CsCtrlReg <= Data_i;
  385. end
  386. Spi2TxFifoCtrlAddr : begin
  387. Spi2TxFifoCtrlReg <= Data_i;
  388. end
  389. Spi2RxFifoCtrlAddr : begin
  390. Spi2RxFifoCtrlReg <= Data_i;
  391. end
  392. Spi2TxFifo : begin
  393. Spi2TxFifoReg <= Data_i;
  394. end
  395. Spi2RxFifo : begin
  396. Spi2RxFifoReg <= Data_i;
  397. end
  398. Spi3CtrlAddr : begin
  399. Spi3CtrlReg <= Data_i;
  400. end
  401. Spi3ClkAddr : begin
  402. Spi3ClkReg <= Data_i;
  403. end
  404. Spi3CsDelayAddr : begin
  405. Spi3CsDelayReg <= Data_i;
  406. end
  407. Spi3CsCtrlAddr : begin
  408. Spi3CsCtrlReg <= Data_i;
  409. end
  410. Spi3TxFifoCtrlAddr : begin
  411. Spi3TxFifoCtrlReg <= Data_i;
  412. end
  413. Spi3RxFifoCtrlAddr : begin
  414. Spi3RxFifoCtrlReg <= Data_i;
  415. end
  416. Spi3TxFifo : begin
  417. Spi3TxFifoReg <= Data_i;
  418. end
  419. Spi3RxFifo : begin
  420. Spi3RxFifoReg <= Data_i;
  421. end
  422. Spi4CtrlAddr : begin
  423. Spi4CtrlReg <= Data_i;
  424. end
  425. Spi4ClkAddr : begin
  426. Spi4ClkReg <= Data_i;
  427. end
  428. Spi4CsDelayAddr : begin
  429. Spi4CsDelayReg <= Data_i;
  430. end
  431. Spi4CsCtrlAddr : begin
  432. Spi4CsCtrlReg <= Data_i;
  433. end
  434. Spi4TxFifoCtrlAddr : begin
  435. Spi4TxFifoCtrlReg <= Data_i;
  436. end
  437. Spi4RxFifoCtrlAddr : begin
  438. Spi4RxFifoCtrlReg <= Data_i;
  439. end
  440. Spi4TxFifo : begin
  441. Spi4TxFifoReg <= Data_i;
  442. end
  443. Spi4RxFifo : begin
  444. Spi4RxFifoReg <= Data_i;
  445. end
  446. Spi5CtrlAddr : begin
  447. Spi5CtrlReg <= Data_i;
  448. end
  449. Spi5ClkAddr : begin
  450. Spi5ClkReg <= Data_i;
  451. end
  452. Spi5CsDelayAddr : begin
  453. Spi5CsDelayReg <= Data_i;
  454. end
  455. Spi5CsCtrlAddr : begin
  456. Spi5CsCtrlReg <= Data_i;
  457. end
  458. Spi5TxFifoCtrlAddr : begin
  459. Spi5TxFifoCtrlReg <= Data_i;
  460. end
  461. Spi5RxFifoCtrlAddr : begin
  462. Spi5RxFifoCtrlReg <= Data_i;
  463. end
  464. Spi5TxFifo : begin
  465. Spi5TxFifoReg <= Data_i;
  466. end
  467. Spi5RxFifo : begin
  468. Spi5RxFifoReg <= Data_i;
  469. end
  470. Spi6CtrlAddr : begin
  471. Spi6CtrlReg <= Data_i;
  472. end
  473. Spi6ClkAddr : begin
  474. Spi6ClkReg <= Data_i;
  475. end
  476. Spi6CsDelayAddr : begin
  477. Spi6CsDelayReg <= Data_i;
  478. end
  479. Spi6CsCtrlAddr : begin
  480. Spi6CsCtrlReg <= Data_i;
  481. end
  482. Spi6TxFifoCtrlAddr : begin
  483. Spi6TxFifoCtrlReg <= Data_i;
  484. end
  485. Spi6RxFifoCtrlAddr : begin
  486. Spi6RxFifoCtrlReg <= Data_i;
  487. end
  488. Spi6TxFifo : begin
  489. Spi6TxFifoReg <= Data_i;
  490. end
  491. Spi6RxFifo : begin
  492. Spi6RxFifoReg <= Data_i;
  493. end
  494. SpiTxRxEn : begin
  495. SpiTxRxEnReg <= Data_i;
  496. end
  497. GPIOCtrlAddr : begin
  498. GPIOAReg <= Data_i;
  499. end
  500. endcase
  501. end
  502. 1 : begin
  503. case (Addr_i)
  504. Spi0CtrlAddr : begin
  505. Spi0CtrlReg[15:8] <= Data_i[15:8];
  506. end
  507. Spi0ClkAddr : begin
  508. Spi0ClkReg[15:8] <= Data_i[15:8];
  509. end
  510. Spi0CsDelayAddr : begin
  511. Spi0CsDelayReg[15:8] <= Data_i[15:8];
  512. end
  513. Spi0CsCtrlAddr : begin
  514. Spi0CsCtrlReg[15:8] <= Data_i[15:8];
  515. end
  516. Spi0TxFifoCtrlAddr : begin
  517. Spi0TxFifoCtrlReg[15:8] <= Data_i[15:8];
  518. end
  519. Spi0RxFifoCtrlAddr : begin
  520. Spi0RxFifoCtrlReg[15:8] <= Data_i[15:8];
  521. end
  522. Spi0TxFifo : begin
  523. Spi0TxFifoReg[15:8] <= Data_i[15:8];
  524. end
  525. Spi0RxFifo : begin
  526. Spi0RxFifoReg[15:8] <= Data_i[15:8];
  527. end
  528. Spi1CtrlAddr : begin
  529. Spi1CtrlReg[15:8] <= Data_i[15:8];
  530. end
  531. Spi1ClkAddr : begin
  532. Spi1ClkReg[15:8] <= Data_i[15:8];
  533. end
  534. Spi1CsDelayAddr : begin
  535. Spi1CsDelayReg[15:8] <= Data_i[15:8];
  536. end
  537. Spi1CsCtrlAddr : begin
  538. Spi1CsCtrlReg[15:8] <= Data_i[15:8];
  539. end
  540. Spi1TxFifoCtrlAddr : begin
  541. Spi1TxFifoCtrlReg[15:8] <= Data_i[15:8];
  542. end
  543. Spi1RxFifoCtrlAddr : begin
  544. Spi1RxFifoCtrlReg[15:8] <= Data_i[15:8];
  545. end
  546. Spi1TxFifo : begin
  547. Spi1TxFifoReg[15:8] <= Data_i[15:8];
  548. end
  549. Spi1RxFifo : begin
  550. Spi1RxFifoReg[15:8] <= Data_i[15:8];
  551. end
  552. Spi2CtrlAddr : begin
  553. Spi2CtrlReg[15:8] <= Data_i[15:8];
  554. end
  555. Spi2ClkAddr : begin
  556. Spi2ClkReg[15:8] <= Data_i[15:8];
  557. end
  558. Spi2CsDelayAddr : begin
  559. Spi2CsDelayReg[15:8] <= Data_i[15:8];
  560. end
  561. Spi2CsCtrlAddr : begin
  562. Spi2CsCtrlReg[15:8] <= Data_i[15:8];
  563. end
  564. Spi2TxFifoCtrlAddr : begin
  565. Spi2TxFifoCtrlReg[15:8] <= Data_i[15:8];
  566. end
  567. Spi2RxFifoCtrlAddr : begin
  568. Spi2RxFifoCtrlReg[15:8] <= Data_i[15:8];
  569. end
  570. Spi2TxFifo : begin
  571. Spi2TxFifoReg[15:8] <= Data_i[15:8];
  572. end
  573. Spi2RxFifo : begin
  574. Spi2RxFifoReg[15:8] <= Data_i[15:8];
  575. end
  576. Spi3CtrlAddr : begin
  577. Spi3CtrlReg[15:8] <= Data_i[15:8];
  578. end
  579. Spi3ClkAddr : begin
  580. Spi3ClkReg[15:8] <= Data_i[15:8];
  581. end
  582. Spi3CsDelayAddr : begin
  583. Spi3CsDelayReg[15:8] <= Data_i[15:8];
  584. end
  585. Spi3CsCtrlAddr : begin
  586. Spi3CsCtrlReg[15:8] <= Data_i[15:8];
  587. end
  588. Spi3TxFifoCtrlAddr : begin
  589. Spi3TxFifoCtrlReg[15:8] <= Data_i[15:8];
  590. end
  591. Spi3RxFifoCtrlAddr : begin
  592. Spi3RxFifoCtrlReg[15:8] <= Data_i[15:8];
  593. end
  594. Spi3TxFifo : begin
  595. Spi3TxFifoReg[15:8] <= Data_i[15:8];
  596. end
  597. Spi3RxFifo : begin
  598. Spi3RxFifoReg[15:8] <= Data_i[15:8];
  599. end
  600. Spi4CtrlAddr : begin
  601. Spi4CtrlReg[15:8] <= Data_i[15:8];
  602. end
  603. Spi4ClkAddr : begin
  604. Spi4ClkReg[15:8] <= Data_i[15:8];
  605. end
  606. Spi4CsDelayAddr : begin
  607. Spi4CsDelayReg[15:8] <= Data_i[15:8];
  608. end
  609. Spi4CsCtrlAddr : begin
  610. Spi4CsCtrlReg[15:8] <= Data_i[15:8];
  611. end
  612. Spi4TxFifoCtrlAddr : begin
  613. Spi4TxFifoCtrlReg[15:8] <= Data_i[15:8];
  614. end
  615. Spi4RxFifoCtrlAddr : begin
  616. Spi4RxFifoCtrlReg[15:8] <= Data_i[15:8];
  617. end
  618. Spi4TxFifo : begin
  619. Spi4TxFifoReg[15:8] <= Data_i[15:8];
  620. end
  621. Spi4RxFifo : begin
  622. Spi4RxFifoReg[15:8] <= Data_i[15:8];
  623. end
  624. Spi5CtrlAddr : begin
  625. Spi5CtrlReg[15:8] <= Data_i[15:8];
  626. end
  627. Spi5ClkAddr : begin
  628. Spi5ClkReg[15:8] <= Data_i[15:8];
  629. end
  630. Spi5CsDelayAddr : begin
  631. Spi5CsDelayReg[15:8] <= Data_i[15:8];
  632. end
  633. Spi5CsCtrlAddr : begin
  634. Spi5CsCtrlReg[15:8] <= Data_i[15:8];
  635. end
  636. Spi5TxFifoCtrlAddr : begin
  637. Spi5TxFifoCtrlReg[15:8] <= Data_i[15:8];
  638. end
  639. Spi5RxFifoCtrlAddr : begin
  640. Spi5RxFifoCtrlReg[15:8] <= Data_i[15:8];
  641. end
  642. Spi5TxFifo : begin
  643. Spi5TxFifoReg[15:8] <= Data_i[15:8];
  644. end
  645. Spi5RxFifo : begin
  646. Spi5RxFifoReg[15:8] <= Data_i[15:8];
  647. end
  648. Spi6CtrlAddr : begin
  649. Spi6CtrlReg[15:8] <= Data_i[15:8];
  650. end
  651. Spi6ClkAddr : begin
  652. Spi6ClkReg[15:8] <= Data_i[15:8];
  653. end
  654. Spi6CsDelayAddr : begin
  655. Spi6CsDelayReg[15:8] <= Data_i[15:8];
  656. end
  657. Spi6CsCtrlAddr : begin
  658. Spi6CsCtrlReg[15:8] <= Data_i[15:8];
  659. end
  660. Spi6TxFifoCtrlAddr : begin
  661. Spi6TxFifoCtrlReg[15:8] <= Data_i[15:8];
  662. end
  663. Spi6RxFifoCtrlAddr : begin
  664. Spi6RxFifoCtrlReg[15:8] <= Data_i[15:8];
  665. end
  666. Spi6TxFifo : begin
  667. Spi6TxFifoReg[15:8] <= Data_i[15:8];
  668. end
  669. Spi6RxFifo : begin
  670. Spi6RxFifoReg[15:8] <= Data_i[15:8];
  671. end
  672. SpiTxRxEn : begin
  673. SpiTxRxEnReg[15:8] <= Data_i[15:8];
  674. end
  675. GPIOCtrlAddr : begin
  676. GPIOAReg[15:8] <= Data_i[15:8];
  677. end
  678. endcase
  679. end
  680. 2 : begin
  681. case (Addr_i)
  682. Spi0CtrlAddr : begin
  683. Spi0CtrlReg[7:0] <= Data_i[7:0];
  684. end
  685. Spi0ClkAddr : begin
  686. Spi0ClkReg[7:0] <= Data_i[7:0];
  687. end
  688. Spi0CsDelayAddr : begin
  689. Spi0CsDelayReg[7:0] <= Data_i[7:0];
  690. end
  691. Spi0CsCtrlAddr : begin
  692. Spi0CsCtrlReg[7:0] <= Data_i[7:0];
  693. end
  694. Spi0TxFifoCtrlAddr : begin
  695. Spi0TxFifoCtrlReg[7:0] <= Data_i[7:0];
  696. end
  697. Spi0RxFifoCtrlAddr : begin
  698. Spi0RxFifoCtrlReg[7:0] <= Data_i[7:0];
  699. end
  700. Spi0TxFifo : begin
  701. Spi0TxFifoReg[7:0] <= Data_i[7:0];
  702. end
  703. Spi0RxFifo : begin
  704. Spi0RxFifoReg[7:0] <= Data_i[7:0];
  705. end
  706. Spi1CtrlAddr : begin
  707. Spi1CtrlReg[7:0] <= Data_i[7:0];
  708. end
  709. Spi1ClkAddr : begin
  710. Spi1ClkReg[7:0] <= Data_i[7:0];
  711. end
  712. Spi1CsDelayAddr : begin
  713. Spi1CsDelayReg[7:0] <= Data_i[7:0];
  714. end
  715. Spi1CsCtrlAddr : begin
  716. Spi1CsCtrlReg[7:0] <= Data_i[7:0];
  717. end
  718. Spi1TxFifoCtrlAddr : begin
  719. Spi1TxFifoCtrlReg[7:0] <= Data_i[7:0];
  720. end
  721. Spi1RxFifoCtrlAddr : begin
  722. Spi1RxFifoCtrlReg[7:0] <= Data_i[7:0];
  723. end
  724. Spi1TxFifo : begin
  725. Spi1TxFifoReg[7:0] <= Data_i[7:0];
  726. end
  727. Spi1RxFifo : begin
  728. Spi1RxFifoReg[7:0] <= Data_i[7:0];
  729. end
  730. Spi2CtrlAddr : begin
  731. Spi2CtrlReg[7:0] <= Data_i[7:0];
  732. end
  733. Spi2ClkAddr : begin
  734. Spi2ClkReg[7:0] <= Data_i[7:0];
  735. end
  736. Spi2CsDelayAddr : begin
  737. Spi2CsDelayReg[7:0] <= Data_i[7:0];
  738. end
  739. Spi2CsCtrlAddr : begin
  740. Spi2CsCtrlReg[7:0] <= Data_i[7:0];
  741. end
  742. Spi2TxFifoCtrlAddr : begin
  743. Spi2TxFifoCtrlReg[7:0] <= Data_i[7:0];
  744. end
  745. Spi2RxFifoCtrlAddr : begin
  746. Spi2RxFifoCtrlReg[7:0] <= Data_i[7:0];
  747. end
  748. Spi2TxFifo : begin
  749. Spi2TxFifoReg[7:0] <= Data_i[7:0];
  750. end
  751. Spi2RxFifo : begin
  752. Spi2RxFifoReg[7:0] <= Data_i[7:0];
  753. end
  754. Spi3CtrlAddr : begin
  755. Spi3CtrlReg[7:0] <= Data_i[7:0];
  756. end
  757. Spi3ClkAddr : begin
  758. Spi3ClkReg[7:0] <= Data_i[7:0];
  759. end
  760. Spi3CsDelayAddr : begin
  761. Spi3CsDelayReg[7:0] <= Data_i[7:0];
  762. end
  763. Spi3CsCtrlAddr : begin
  764. Spi3CsCtrlReg[7:0] <= Data_i[7:0];
  765. end
  766. Spi3TxFifoCtrlAddr : begin
  767. Spi3TxFifoCtrlReg[7:0] <= Data_i[7:0];
  768. end
  769. Spi3RxFifoCtrlAddr : begin
  770. Spi3RxFifoCtrlReg[7:0] <= Data_i[7:0];
  771. end
  772. Spi3TxFifo : begin
  773. Spi3TxFifoReg[7:0] <= Data_i[7:0];
  774. end
  775. Spi3RxFifo : begin
  776. Spi3RxFifoReg[7:0] <= Data_i[7:0];
  777. end
  778. Spi4CtrlAddr : begin
  779. Spi4CtrlReg[7:0] <= Data_i[7:0];
  780. end
  781. Spi4ClkAddr : begin
  782. Spi4ClkReg[7:0] <= Data_i[7:0];
  783. end
  784. Spi4CsDelayAddr : begin
  785. Spi4CsDelayReg[7:0] <= Data_i[7:0];
  786. end
  787. Spi4CsCtrlAddr : begin
  788. Spi4CsCtrlReg[7:0] <= Data_i[7:0];
  789. end
  790. Spi4TxFifoCtrlAddr : begin
  791. Spi4TxFifoCtrlReg[7:0] <= Data_i[7:0];
  792. end
  793. Spi4RxFifoCtrlAddr : begin
  794. Spi4RxFifoCtrlReg[7:0] <= Data_i[7:0];
  795. end
  796. Spi4TxFifo : begin
  797. Spi4TxFifoReg[7:0] <= Data_i[7:0];
  798. end
  799. Spi4RxFifo : begin
  800. Spi4RxFifoReg[7:0] <= Data_i[7:0];
  801. end
  802. Spi5CtrlAddr : begin
  803. Spi5CtrlReg[7:0] <= Data_i[7:0];
  804. end
  805. Spi5ClkAddr : begin
  806. Spi5ClkReg[7:0] <= Data_i[7:0];
  807. end
  808. Spi5CsDelayAddr : begin
  809. Spi5CsDelayReg[7:0] <= Data_i[7:0];
  810. end
  811. Spi5CsCtrlAddr : begin
  812. Spi5CsCtrlReg[7:0] <= Data_i[7:0];
  813. end
  814. Spi5TxFifoCtrlAddr : begin
  815. Spi5TxFifoCtrlReg[7:0] <= Data_i[7:0];
  816. end
  817. Spi5RxFifoCtrlAddr : begin
  818. Spi5RxFifoCtrlReg[7:0] <= Data_i[7:0];
  819. end
  820. Spi5TxFifo : begin
  821. Spi5TxFifoReg[7:0] <= Data_i[7:0];
  822. end
  823. Spi5RxFifo : begin
  824. Spi5RxFifoReg[7:0] <= Data_i[7:0];
  825. end
  826. Spi6CtrlAddr : begin
  827. Spi6CtrlReg[7:0] <= Data_i[7:0];
  828. end
  829. Spi6ClkAddr : begin
  830. Spi6ClkReg[7:0] <= Data_i[7:0];
  831. end
  832. Spi6CsDelayAddr : begin
  833. Spi6CsDelayReg[7:0] <= Data_i[7:0];
  834. end
  835. Spi6CsCtrlAddr : begin
  836. Spi6CsCtrlReg[7:0] <= Data_i[7:0];
  837. end
  838. Spi6TxFifoCtrlAddr : begin
  839. Spi6TxFifoCtrlReg[7:0] <= Data_i[7:0];
  840. end
  841. Spi6RxFifoCtrlAddr : begin
  842. Spi6RxFifoCtrlReg[7:0] <= Data_i[7:0];
  843. end
  844. Spi6TxFifo : begin
  845. Spi6TxFifoReg[7:0] <= Data_i[7:0];
  846. end
  847. Spi6RxFifo : begin
  848. Spi6RxFifoReg[7:0] <= Data_i[7:0];
  849. end
  850. SpiTxRxEn : begin
  851. SpiTxRxEnReg[7:0] <= Data_i[7:0];
  852. end
  853. GPIOCtrlAddr : begin
  854. GPIOAReg[7:0] <= Data_i[7:0];
  855. end
  856. endcase
  857. end
  858. endcase
  859. end
  860. end
  861. end
  862. always @(*) begin
  863. if (Rst_i) begin
  864. ansReg = 0;
  865. end
  866. else begin
  867. if (!rdEn_i) begin
  868. case(BE_i)
  869. 0 : begin
  870. case (Addr_i)
  871. Spi0CtrlAddr : begin
  872. ansReg = Spi0CtrlReg;
  873. end
  874. Spi0ClkAddr : begin
  875. ansReg = Spi0ClkReg;
  876. end
  877. Spi0CsDelayAddr : begin
  878. ansReg = Spi0CsDelayReg;
  879. end
  880. Spi0CsCtrlAddr : begin
  881. ansReg = Spi0CsCtrlReg;
  882. end
  883. Spi0TxFifoCtrlAddr : begin
  884. ansReg = Spi0TxFifoCtrlReg;
  885. end
  886. Spi0RxFifoCtrlAddr : begin
  887. ansReg = Spi0RxFifoCtrlReg;
  888. end
  889. Spi0TxFifo : begin
  890. ansReg = Spi0TxFifoReg;
  891. end
  892. Spi0RxFifo : begin
  893. ansReg = Spi0RxFifoReg;
  894. end
  895. Spi1CtrlAddr : begin
  896. ansReg = Spi1CtrlReg;
  897. end
  898. Spi1ClkAddr : begin
  899. ansReg = Spi1ClkReg;
  900. end
  901. Spi1CsDelayAddr : begin
  902. ansReg = Spi1CsDelayReg;
  903. end
  904. Spi1CsCtrlAddr : begin
  905. ansReg = Spi1CsCtrlReg;
  906. end
  907. Spi1TxFifoCtrlAddr : begin
  908. ansReg = Spi1TxFifoCtrlReg;
  909. end
  910. Spi1RxFifoCtrlAddr : begin
  911. ansReg = Spi1RxFifoCtrlReg;
  912. end
  913. Spi1TxFifo : begin
  914. ansReg = Spi1TxFifoReg;
  915. end
  916. Spi1RxFifo : begin
  917. ansReg = Spi1RxFifoReg;
  918. end
  919. Spi2CtrlAddr : begin
  920. ansReg = Spi2CtrlReg;
  921. end
  922. Spi2ClkAddr : begin
  923. ansReg = Spi2ClkReg;
  924. end
  925. Spi2CsDelayAddr : begin
  926. ansReg = Spi2CsDelayReg;
  927. end
  928. Spi2CsCtrlAddr : begin
  929. ansReg = Spi2CsCtrlReg;
  930. end
  931. Spi2TxFifoCtrlAddr : begin
  932. ansReg = Spi2TxFifoCtrlReg;
  933. end
  934. Spi2RxFifoCtrlAddr : begin
  935. ansReg = Spi2RxFifoCtrlReg;
  936. end
  937. Spi2TxFifo : begin
  938. ansReg = Spi2TxFifoReg;
  939. end
  940. Spi2RxFifo : begin
  941. ansReg = Spi2RxFifoReg;
  942. end
  943. Spi3CtrlAddr : begin
  944. ansReg = Spi3CtrlReg;
  945. end
  946. Spi3ClkAddr : begin
  947. ansReg = Spi3ClkReg;
  948. end
  949. Spi3CsDelayAddr : begin
  950. ansReg = Spi3CsDelayReg;
  951. end
  952. Spi3CsCtrlAddr : begin
  953. ansReg = Spi3CsCtrlReg;
  954. end
  955. Spi3TxFifoCtrlAddr : begin
  956. ansReg = Spi3TxFifoCtrlReg;
  957. end
  958. Spi3RxFifoCtrlAddr : begin
  959. ansReg = Spi3RxFifoCtrlReg;
  960. end
  961. Spi3TxFifo : begin
  962. ansReg = Spi3TxFifoReg;
  963. end
  964. Spi3RxFifo : begin
  965. ansReg = Spi3RxFifoReg;
  966. end
  967. Spi4CtrlAddr : begin
  968. ansReg = Spi4CtrlReg;
  969. end
  970. Spi4ClkAddr : begin
  971. ansReg = Spi4ClkReg;
  972. end
  973. Spi4CsDelayAddr : begin
  974. ansReg = Spi4CsDelayReg;
  975. end
  976. Spi4CsCtrlAddr : begin
  977. ansReg = Spi4CsCtrlReg;
  978. end
  979. Spi4TxFifoCtrlAddr : begin
  980. ansReg = Spi4TxFifoCtrlReg;
  981. end
  982. Spi4RxFifoCtrlAddr : begin
  983. ansReg = Spi4RxFifoCtrlReg;
  984. end
  985. Spi4TxFifo : begin
  986. ansReg = Spi4TxFifoReg;
  987. end
  988. Spi4RxFifo : begin
  989. ansReg = Spi4RxFifoReg;
  990. end
  991. Spi5CtrlAddr : begin
  992. ansReg = Spi5CtrlReg;
  993. end
  994. Spi5ClkAddr : begin
  995. ansReg = Spi5ClkReg;
  996. end
  997. Spi5CsDelayAddr : begin
  998. ansReg = Spi5CsDelayReg;
  999. end
  1000. Spi5CsCtrlAddr : begin
  1001. ansReg = Spi5CsCtrlReg;
  1002. end
  1003. Spi5TxFifoCtrlAddr : begin
  1004. ansReg = Spi5TxFifoCtrlReg;
  1005. end
  1006. Spi5RxFifoCtrlAddr : begin
  1007. ansReg = Spi5RxFifoCtrlReg;
  1008. end
  1009. Spi5TxFifo : begin
  1010. ansReg = Spi5TxFifoReg;
  1011. end
  1012. Spi5RxFifo : begin
  1013. ansReg = Spi5RxFifoReg;
  1014. end
  1015. Spi6CtrlAddr : begin
  1016. ansReg = Spi6CtrlReg;
  1017. end
  1018. Spi6ClkAddr : begin
  1019. ansReg = Spi6ClkReg;
  1020. end
  1021. Spi6CsDelayAddr : begin
  1022. ansReg = Spi6CsDelayReg;
  1023. end
  1024. Spi6CsCtrlAddr : begin
  1025. ansReg = Spi6CsCtrlReg;
  1026. end
  1027. Spi6TxFifoCtrlAddr : begin
  1028. ansReg = Spi6TxFifoCtrlReg;
  1029. end
  1030. Spi6RxFifoCtrlAddr : begin
  1031. ansReg = Spi6RxFifoCtrlReg;
  1032. end
  1033. Spi6TxFifo : begin
  1034. ansReg = Spi6TxFifoReg;
  1035. end
  1036. Spi6RxFifo : begin
  1037. ansReg = Spi6RxFifoReg;
  1038. end
  1039. SpiTxRxEn : begin
  1040. ansReg = SpiTxRxEnReg;
  1041. end
  1042. GPIOCtrlAddr : begin
  1043. ansReg = GPIOAReg;
  1044. end
  1045. endcase
  1046. end
  1047. 1 : begin
  1048. case (Addr_i)
  1049. Spi0CtrlAddr : begin
  1050. ansReg = Spi0CtrlReg[15:8];
  1051. end
  1052. Spi0ClkAddr : begin
  1053. ansReg = Spi0ClkReg[15:8];
  1054. end
  1055. Spi0CsDelayAddr : begin
  1056. ansReg = Spi0CsDelayReg[15:8];
  1057. end
  1058. Spi0CsCtrlAddr : begin
  1059. ansReg = Spi0CsCtrlReg[15:8];
  1060. end
  1061. Spi0TxFifoCtrlAddr : begin
  1062. ansReg = Spi0TxFifoCtrlReg[15:8];
  1063. end
  1064. Spi0RxFifoCtrlAddr : begin
  1065. ansReg = Spi0RxFifoCtrlReg[15:8];
  1066. end
  1067. Spi0TxFifo : begin
  1068. ansReg = Spi0TxFifoReg[15:8];
  1069. end
  1070. Spi0RxFifo : begin
  1071. ansReg = Spi0RxFifoReg[15:8];
  1072. end
  1073. Spi1CtrlAddr : begin
  1074. ansReg = Spi1CtrlReg[15:8];
  1075. end
  1076. Spi1ClkAddr : begin
  1077. ansReg = Spi1ClkReg[15:8];
  1078. end
  1079. Spi1CsDelayAddr : begin
  1080. ansReg = Spi1CsDelayReg[15:8];
  1081. end
  1082. Spi1CsCtrlAddr : begin
  1083. ansReg = Spi1CsCtrlReg[15:8];
  1084. end
  1085. Spi1TxFifoCtrlAddr : begin
  1086. ansReg = Spi1TxFifoCtrlReg[15:8];
  1087. end
  1088. Spi1RxFifoCtrlAddr : begin
  1089. ansReg = Spi1RxFifoCtrlReg[15:8];
  1090. end
  1091. Spi1TxFifo : begin
  1092. ansReg = Spi1TxFifoReg[15:8];
  1093. end
  1094. Spi1RxFifo : begin
  1095. ansReg = Spi1RxFifoReg[15:8];
  1096. end
  1097. Spi2CtrlAddr : begin
  1098. ansReg = Spi2CtrlReg[15:8];
  1099. end
  1100. Spi2ClkAddr : begin
  1101. ansReg = Spi2ClkReg[15:8];
  1102. end
  1103. Spi2CsDelayAddr : begin
  1104. ansReg = Spi2CsDelayReg[15:8];
  1105. end
  1106. Spi2CsCtrlAddr : begin
  1107. ansReg = Spi2CsCtrlReg[15:8];
  1108. end
  1109. Spi2TxFifoCtrlAddr : begin
  1110. ansReg = Spi2TxFifoCtrlReg[15:8];
  1111. end
  1112. Spi2RxFifoCtrlAddr : begin
  1113. ansReg = Spi2RxFifoCtrlReg[15:8];
  1114. end
  1115. Spi2TxFifo : begin
  1116. ansReg = Spi2TxFifoReg[15:8];
  1117. end
  1118. Spi2RxFifo : begin
  1119. ansReg = Spi2RxFifoReg[15:8];
  1120. end
  1121. Spi3CtrlAddr : begin
  1122. ansReg = Spi3CtrlReg[15:8];
  1123. end
  1124. Spi3ClkAddr : begin
  1125. ansReg = Spi3ClkReg[15:8];
  1126. end
  1127. Spi3CsDelayAddr : begin
  1128. ansReg = Spi3CsDelayReg[15:8];
  1129. end
  1130. Spi3CsCtrlAddr : begin
  1131. ansReg = Spi3CsCtrlReg[15:8];
  1132. end
  1133. Spi3TxFifoCtrlAddr : begin
  1134. ansReg = Spi3TxFifoCtrlReg[15:8];
  1135. end
  1136. Spi3RxFifoCtrlAddr : begin
  1137. ansReg = Spi3RxFifoCtrlReg[15:8];
  1138. end
  1139. Spi3TxFifo : begin
  1140. ansReg = Spi3TxFifoReg[15:8];
  1141. end
  1142. Spi3RxFifo : begin
  1143. ansReg = Spi3RxFifoReg[15:8];
  1144. end
  1145. Spi4CtrlAddr : begin
  1146. ansReg = Spi4CtrlReg[15:8];
  1147. end
  1148. Spi4ClkAddr : begin
  1149. ansReg = Spi4ClkReg[15:8];
  1150. end
  1151. Spi4CsDelayAddr : begin
  1152. ansReg = Spi4CsDelayReg[15:8];
  1153. end
  1154. Spi4CsCtrlAddr : begin
  1155. ansReg = Spi4CsCtrlReg[15:8];
  1156. end
  1157. Spi4TxFifoCtrlAddr : begin
  1158. ansReg = Spi4TxFifoCtrlReg[15:8];
  1159. end
  1160. Spi4RxFifoCtrlAddr : begin
  1161. ansReg = Spi4RxFifoCtrlReg[15:8];
  1162. end
  1163. Spi4TxFifo : begin
  1164. ansReg = Spi4TxFifoReg[15:8];
  1165. end
  1166. Spi4RxFifo : begin
  1167. ansReg = Spi4RxFifoReg[15:8];
  1168. end
  1169. Spi5CtrlAddr : begin
  1170. ansReg = Spi5CtrlReg[15:8];
  1171. end
  1172. Spi5ClkAddr : begin
  1173. ansReg = Spi5ClkReg[15:8];
  1174. end
  1175. Spi5CsDelayAddr : begin
  1176. ansReg = Spi5CsDelayReg[15:8];
  1177. end
  1178. Spi5CsCtrlAddr : begin
  1179. ansReg = Spi5CsCtrlReg[15:8];
  1180. end
  1181. Spi5TxFifoCtrlAddr : begin
  1182. ansReg = Spi5TxFifoCtrlReg[15:8];
  1183. end
  1184. Spi5RxFifoCtrlAddr : begin
  1185. ansReg = Spi5RxFifoCtrlReg[15:8];
  1186. end
  1187. Spi5TxFifo : begin
  1188. ansReg = Spi5TxFifoReg[15:8];
  1189. end
  1190. Spi5RxFifo : begin
  1191. ansReg = Spi5RxFifoReg[15:8];
  1192. end
  1193. Spi6CtrlAddr : begin
  1194. ansReg = Spi6CtrlReg[15:8];
  1195. end
  1196. Spi6ClkAddr : begin
  1197. ansReg = Spi6ClkReg[15:8];
  1198. end
  1199. Spi6CsDelayAddr : begin
  1200. ansReg = Spi6CsDelayReg[15:8];
  1201. end
  1202. Spi6CsCtrlAddr : begin
  1203. ansReg = Spi6CsCtrlReg[15:8];
  1204. end
  1205. Spi6TxFifoCtrlAddr : begin
  1206. ansReg = Spi6TxFifoCtrlReg[15:8];
  1207. end
  1208. Spi6RxFifoCtrlAddr : begin
  1209. ansReg = Spi6RxFifoCtrlReg[15:8];
  1210. end
  1211. Spi6TxFifo : begin
  1212. ansReg = Spi6TxFifoReg[15:8];
  1213. end
  1214. Spi6RxFifo : begin
  1215. ansReg = Spi6RxFifoReg[15:8];
  1216. end
  1217. SpiTxRxEn : begin
  1218. ansReg = SpiTxRxEnReg[15:8];
  1219. end
  1220. GPIOCtrlAddr : begin
  1221. ansReg = GPIOAReg[15:8];
  1222. end
  1223. endcase
  1224. end
  1225. 2 : begin
  1226. case (Addr_i)
  1227. Spi0CtrlAddr : begin
  1228. ansReg = Spi0CtrlReg[7:0];
  1229. end
  1230. Spi0ClkAddr : begin
  1231. ansReg = Spi0ClkReg[7:0];
  1232. end
  1233. Spi0CsDelayAddr : begin
  1234. ansReg = Spi0CsDelayReg[7:0];
  1235. end
  1236. Spi0CsCtrlAddr : begin
  1237. ansReg = Spi0CsCtrlReg[7:0];
  1238. end
  1239. Spi0TxFifoCtrlAddr : begin
  1240. ansReg = Spi0TxFifoCtrlReg[7:0];
  1241. end
  1242. Spi0RxFifoCtrlAddr : begin
  1243. ansReg = Spi0RxFifoCtrlReg[7:0];
  1244. end
  1245. Spi0TxFifo : begin
  1246. ansReg = Spi0TxFifoReg[7:0];
  1247. end
  1248. Spi0RxFifo : begin
  1249. ansReg = Spi0RxFifoReg[7:0];
  1250. end
  1251. Spi1CtrlAddr : begin
  1252. ansReg = Spi1CtrlReg[7:0];
  1253. end
  1254. Spi1ClkAddr : begin
  1255. ansReg = Spi1ClkReg[7:0];
  1256. end
  1257. Spi1CsDelayAddr : begin
  1258. ansReg = Spi1CsDelayReg[7:0];
  1259. end
  1260. Spi1CsCtrlAddr : begin
  1261. ansReg = Spi1CsCtrlReg[7:0];
  1262. end
  1263. Spi1TxFifoCtrlAddr : begin
  1264. ansReg = Spi1TxFifoCtrlReg[7:0];
  1265. end
  1266. Spi1RxFifoCtrlAddr : begin
  1267. ansReg = Spi1RxFifoCtrlReg[7:0];
  1268. end
  1269. Spi1TxFifo : begin
  1270. ansReg = Spi1TxFifoReg[7:0];
  1271. end
  1272. Spi1RxFifo : begin
  1273. ansReg = Spi1RxFifoReg[7:0];
  1274. end
  1275. Spi2CtrlAddr : begin
  1276. ansReg = Spi2CtrlReg[7:0];
  1277. end
  1278. Spi2ClkAddr : begin
  1279. ansReg = Spi2ClkReg[7:0];
  1280. end
  1281. Spi2CsDelayAddr : begin
  1282. ansReg = Spi2CsDelayReg[7:0];
  1283. end
  1284. Spi2CsCtrlAddr : begin
  1285. ansReg = Spi2CsCtrlReg[7:0];
  1286. end
  1287. Spi2TxFifoCtrlAddr : begin
  1288. ansReg = Spi2TxFifoCtrlReg[7:0];
  1289. end
  1290. Spi2RxFifoCtrlAddr : begin
  1291. ansReg = Spi2RxFifoCtrlReg[7:0];
  1292. end
  1293. Spi2TxFifo : begin
  1294. ansReg = Spi2TxFifoReg[7:0];
  1295. end
  1296. Spi2RxFifo : begin
  1297. ansReg = Spi2RxFifoReg[7:0];
  1298. end
  1299. Spi3CtrlAddr : begin
  1300. ansReg = Spi3CtrlReg[7:0];
  1301. end
  1302. Spi3ClkAddr : begin
  1303. ansReg = Spi3ClkReg[7:0];
  1304. end
  1305. Spi3CsDelayAddr : begin
  1306. ansReg = Spi3CsDelayReg[7:0];
  1307. end
  1308. Spi3CsCtrlAddr : begin
  1309. ansReg = Spi3CsCtrlReg[7:0];
  1310. end
  1311. Spi3TxFifoCtrlAddr : begin
  1312. ansReg = Spi3TxFifoCtrlReg[7:0];
  1313. end
  1314. Spi3RxFifoCtrlAddr : begin
  1315. ansReg = Spi3RxFifoCtrlReg[7:0];
  1316. end
  1317. Spi3TxFifo : begin
  1318. ansReg = Spi3TxFifoReg[7:0];
  1319. end
  1320. Spi3RxFifo : begin
  1321. ansReg = Spi3RxFifoReg[7:0];
  1322. end
  1323. Spi4CtrlAddr : begin
  1324. ansReg = Spi4CtrlReg[7:0];
  1325. end
  1326. Spi4ClkAddr : begin
  1327. ansReg = Spi4ClkReg[7:0];
  1328. end
  1329. Spi4CsDelayAddr : begin
  1330. ansReg = Spi4CsDelayReg[7:0];
  1331. end
  1332. Spi4CsCtrlAddr : begin
  1333. ansReg = Spi4CsCtrlReg[7:0];
  1334. end
  1335. Spi4TxFifoCtrlAddr : begin
  1336. ansReg = Spi4TxFifoCtrlReg[7:0];
  1337. end
  1338. Spi4RxFifoCtrlAddr : begin
  1339. ansReg = Spi4RxFifoCtrlReg[7:0];
  1340. end
  1341. Spi4TxFifo : begin
  1342. ansReg = Spi4TxFifoReg[7:0];
  1343. end
  1344. Spi4RxFifo : begin
  1345. ansReg = Spi4RxFifoReg[7:0];
  1346. end
  1347. Spi5CtrlAddr : begin
  1348. ansReg = Spi5CtrlReg[7:0];
  1349. end
  1350. Spi5ClkAddr : begin
  1351. ansReg = Spi5ClkReg[7:0];
  1352. end
  1353. Spi5CsDelayAddr : begin
  1354. ansReg = Spi5CsDelayReg[7:0];
  1355. end
  1356. Spi5CsCtrlAddr : begin
  1357. ansReg = Spi5CsCtrlReg[7:0];
  1358. end
  1359. Spi5TxFifoCtrlAddr : begin
  1360. ansReg = Spi5TxFifoCtrlReg[7:0];
  1361. end
  1362. Spi5RxFifoCtrlAddr : begin
  1363. ansReg = Spi5RxFifoCtrlReg[7:0];
  1364. end
  1365. Spi5TxFifo : begin
  1366. ansReg = Spi5TxFifoReg[7:0];
  1367. end
  1368. Spi5RxFifo : begin
  1369. ansReg = Spi5RxFifoReg[7:0];
  1370. end
  1371. Spi6CtrlAddr : begin
  1372. ansReg = Spi6CtrlReg[7:0];
  1373. end
  1374. Spi6ClkAddr : begin
  1375. ansReg = Spi6ClkReg[7:0];
  1376. end
  1377. Spi6CsDelayAddr : begin
  1378. ansReg = Spi6CsDelayReg[7:0];
  1379. end
  1380. Spi6CsCtrlAddr : begin
  1381. ansReg = Spi6CsCtrlReg[7:0];
  1382. end
  1383. Spi6TxFifoCtrlAddr : begin
  1384. ansReg = Spi6TxFifoCtrlReg[7:0];
  1385. end
  1386. Spi6RxFifoCtrlAddr : begin
  1387. ansReg = Spi6RxFifoCtrlReg[7:0];
  1388. end
  1389. Spi6TxFifo : begin
  1390. ansReg = Spi6TxFifoReg[7:0];
  1391. end
  1392. Spi6RxFifo : begin
  1393. ansReg = Spi6RxFifoReg[7:0];
  1394. end
  1395. SpiTxRxEn : begin
  1396. ansReg = SpiTxRxEnReg[7:0];
  1397. end
  1398. GPIOCtrlAddr : begin
  1399. ansReg = GPIOAReg[7:0];
  1400. end
  1401. endcase
  1402. end
  1403. endcase
  1404. end
  1405. else begin
  1406. ansReg = 0;
  1407. end
  1408. end
  1409. end
  1410. endmodule