RegMap.v 60 KB

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