RegMap.v 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915
  1. //////////////////////////////////////////////////////////////////////////////////
  2. // Company: TAIR
  3. // Engineer:
  4. //
  5. // Create Date: 10/30/2023 11:24:31 AM
  6. // Design Name:
  7. // Module Name: RegMap
  8. // Project Name: S5443_V3_FPGA3
  9. // Target Devices: BOARD: BY5443v3. FPGA: xc7s25csga225-2
  10. // Tool Versions:
  11. // Description:
  12. //
  13. // Dependencies:
  14. //
  15. // Revision:
  16. // Revision 1.0 - File Created
  17. // Additional Comments:
  18. //
  19. //////////////////////////////////////////////////////////////////////////////////
  20. module RegMap #(
  21. parameter CMD_REG_WIDTH = 32,
  22. parameter ADDR_REG_WIDTH = 12
  23. )
  24. (
  25. input Clk_i,
  26. input Rst_i,
  27. input [1:0] SmcBe_i,
  28. input [CMD_REG_WIDTH/2-1:0] Data_i,
  29. input [ADDR_REG_WIDTH-1:0] Addr_i,
  30. input Val_i,
  31. input [CMD_REG_WIDTH-1:0] TxFifoCtrlReg0_i,
  32. input [CMD_REG_WIDTH-1:0] RxFifoCtrlReg0_i,
  33. input [CMD_REG_WIDTH-1:0] TxFifoCtrlReg1_i,
  34. input [CMD_REG_WIDTH-1:0] RxFifoCtrlReg1_i,
  35. input [CMD_REG_WIDTH-1:0] TxFifoCtrlReg2_i,
  36. input [CMD_REG_WIDTH-1:0] RxFifoCtrlReg2_i,
  37. input [CMD_REG_WIDTH-1:0] TxFifoCtrlReg3_i,
  38. input [CMD_REG_WIDTH-1:0] RxFifoCtrlReg3_i,
  39. input [CMD_REG_WIDTH-1:0] TxFifoCtrlReg4_i,
  40. input [CMD_REG_WIDTH-1:0] RxFifoCtrlReg4_i,
  41. input [CMD_REG_WIDTH-1:0] TxFifoCtrlReg5_i,
  42. input [CMD_REG_WIDTH-1:0] RxFifoCtrlReg5_i,
  43. input [CMD_REG_WIDTH-1:0] TxFifoCtrlReg6_i,
  44. input [CMD_REG_WIDTH-1:0] RxFifoCtrlReg6_i,
  45. input [6:0] LdReg_i,
  46. output reg [CMD_REG_WIDTH/2-1:0] Spi0CtrlReg_o,
  47. output reg [CMD_REG_WIDTH/2-1:0] Spi0ClkReg_o,
  48. output reg [CMD_REG_WIDTH/2-1:0] Spi0CsDelayReg_o,
  49. output reg [CMD_REG_WIDTH/2-1:0] Spi0CsCtrlReg_o,
  50. output reg [CMD_REG_WIDTH/2-1:0] Spi0TxFifoCtrlReg_o,
  51. output reg [CMD_REG_WIDTH/2-1:0] Spi0RxFifoCtrlReg_o,
  52. output reg [CMD_REG_WIDTH/2-1:0] Spi0TxFifoReg_o,
  53. output reg [CMD_REG_WIDTH/2-1:0] Spi0RxFifoReg_o,
  54. output reg [CMD_REG_WIDTH/2-1:0] Spi1CtrlReg_o,
  55. output reg [CMD_REG_WIDTH/2-1:0] Spi1ClkReg_o,
  56. output reg [CMD_REG_WIDTH/2-1:0] Spi1CsDelayReg_o,
  57. output reg [CMD_REG_WIDTH/2-1:0] Spi1CsCtrlReg_o,
  58. output reg [CMD_REG_WIDTH/2-1:0] Spi1TxFifoCtrlReg_o,
  59. output reg [CMD_REG_WIDTH/2-1:0] Spi1RxFifoCtrlReg_o,
  60. output reg [CMD_REG_WIDTH/2-1:0] Spi1TxFifoReg_o,
  61. output reg [CMD_REG_WIDTH/2-1:0] Spi1RxFifoReg_o,
  62. output reg [CMD_REG_WIDTH/2-1:0] Spi2CtrlReg_o,
  63. output reg [CMD_REG_WIDTH/2-1:0] Spi2ClkReg_o,
  64. output reg [CMD_REG_WIDTH/2-1:0] Spi2CsDelayReg_o,
  65. output reg [CMD_REG_WIDTH/2-1:0] Spi2CsCtrlReg_o,
  66. output reg [CMD_REG_WIDTH/2-1:0] Spi2TxFifoCtrlReg_o,
  67. output reg [CMD_REG_WIDTH/2-1:0] Spi2RxFifoCtrlReg_o,
  68. output reg [CMD_REG_WIDTH/2-1:0] Spi2TxFifoReg_o,
  69. output reg [CMD_REG_WIDTH/2-1:0] Spi2RxFifoReg_o,
  70. output reg [CMD_REG_WIDTH/2-1:0] Spi3CtrlReg_o,
  71. output reg [CMD_REG_WIDTH/2-1:0] Spi3ClkReg_o,
  72. output reg [CMD_REG_WIDTH/2-1:0] Spi3CsDelayReg_o,
  73. output reg [CMD_REG_WIDTH/2-1:0] Spi3CsCtrlReg_o,
  74. output reg [CMD_REG_WIDTH/2-1:0] Spi3TxFifoCtrlReg_o,
  75. output reg [CMD_REG_WIDTH/2-1:0] Spi3RxFifoCtrlReg_o,
  76. output reg [CMD_REG_WIDTH/2-1:0] Spi3TxFifoReg_o,
  77. output reg [CMD_REG_WIDTH/2-1:0] Spi3RxFifoReg_o,
  78. output reg [CMD_REG_WIDTH/2-1:0] Spi4CtrlReg_o,
  79. output reg [CMD_REG_WIDTH/2-1:0] Spi4ClkReg_o,
  80. output reg [CMD_REG_WIDTH/2-1:0] Spi4CsDelayReg_o,
  81. output reg [CMD_REG_WIDTH/2-1:0] Spi4CsCtrlReg_o,
  82. output reg [CMD_REG_WIDTH/2-1:0] Spi4TxFifoCtrlReg_o,
  83. output reg [CMD_REG_WIDTH/2-1:0] Spi4RxFifoCtrlReg_o,
  84. output reg [CMD_REG_WIDTH/2-1:0] Spi4TxFifoReg_o,
  85. output reg [CMD_REG_WIDTH/2-1:0] Spi4RxFifoReg_o,
  86. output reg [CMD_REG_WIDTH/2-1:0] Spi5CtrlReg_o,
  87. output reg [CMD_REG_WIDTH/2-1:0] Spi5ClkReg_o,
  88. output reg [CMD_REG_WIDTH/2-1:0] Spi5CsDelayReg_o,
  89. output reg [CMD_REG_WIDTH/2-1:0] Spi5CsCtrlReg_o,
  90. output reg [CMD_REG_WIDTH/2-1:0] Spi5TxFifoCtrlReg_o,
  91. output reg [CMD_REG_WIDTH/2-1:0] Spi5RxFifoCtrlReg_o,
  92. output reg [CMD_REG_WIDTH/2-1:0] Spi5TxFifoReg_o,
  93. output reg [CMD_REG_WIDTH/2-1:0] Spi5RxFifoReg_o,
  94. output reg [CMD_REG_WIDTH/2-1:0] Spi6CtrlReg_o,
  95. output reg [CMD_REG_WIDTH/2-1:0] Spi6ClkReg_o,
  96. output reg [CMD_REG_WIDTH/2-1:0] Spi6CsDelayReg_o,
  97. output reg [CMD_REG_WIDTH/2-1:0] Spi6CsCtrlReg_o,
  98. output reg [CMD_REG_WIDTH/2-1:0] Spi6TxFifoCtrlReg_o,
  99. output reg [CMD_REG_WIDTH/2-1:0] Spi6RxFifoCtrlReg_o,
  100. output reg [CMD_REG_WIDTH/2-1:0] Spi6TxFifoReg_o,
  101. output reg [CMD_REG_WIDTH/2-1:0] Spi6RxFifoReg_o,
  102. output [CMD_REG_WIDTH/2-1:0] SpiTxRxEnReg_o,
  103. output [CMD_REG_WIDTH-1:0] GPIOAReg_o,
  104. output [CMD_REG_WIDTH/2-1:0] AnsDataReg_o,
  105. output Led_o
  106. );
  107. //================================================================================
  108. // REG/WIRE
  109. //================================================================================
  110. (* dont_touch = "yes" *)reg [CMD_REG_WIDTH/2-1:0] spiTxRxEnReg;
  111. reg [CMD_REG_WIDTH/2-1:0] GPIOAReg;
  112. reg [CMD_REG_WIDTH/2-1:0] GPIOARegS;
  113. (* dont_touch = "yes" *)reg [CMD_REG_WIDTH/2-1:0] ansReg;
  114. (* dont_touch = "yes" *)reg [CMD_REG_WIDTH/2-1:0] ledReg;
  115. reg [1:0] beReg;
  116. //================================================================================
  117. // ASSIGNMENTS
  118. //================================================================================
  119. assign SpiTxRxEnReg_o = spiTxRxEnReg;
  120. assign GPIOAReg_o = {GPIOARegS, GPIOAReg};
  121. assign AnsDataReg_o = ansReg;
  122. assign Led_o = ledReg[0];
  123. //================================================================================
  124. // LOCALPARAMS
  125. //================================================================================
  126. localparam SPI_0_CTRL_ADDR = 12'h00;
  127. localparam SPI_0_CLK_ADDR = 12'h04;
  128. localparam SPI_0_CS_DELAY_ADDR = 12'h08;
  129. localparam SPI_0_CS_CTRL_ADDR = 12'h0c;
  130. localparam SPI_0_TX_FIFO_CTRL_ADDR_LSB = 12'h10;
  131. localparam SPI_0_TX_FIFO_CTRL_ADDR_MSB = 12'h12;
  132. localparam SPI_0_RX_FIFO_CTRL_ADDR_LSB = 12'h14;
  133. localparam SPI_0_RX_FIFO_CTRL_ADDR_MSB = 12'h16;
  134. localparam SPI_0_TX_FIFO = 12'h18;
  135. localparam SPI_0_RX_FIFO = 12'h1c;
  136. localparam SPI_1_CTRL_ADDR = 12'h50;
  137. localparam SPI_1_CLK_ADDR = 12'h54;
  138. localparam SPI_1_CS_DELAY_ADDR = 12'h58;
  139. localparam SPI_1_CS_CTRL_ADDR = 12'h5c;
  140. localparam SPI_1_TX_FIFO_CTRL_ADDR_LSB = 12'h60;
  141. localparam SPI_1_TX_FIFO_CTRL_ADDR_MSB = 12'h62;
  142. localparam SPI_1_RX_FIFO_CTRL_ADDR_LSB = 12'h64;
  143. localparam SPI_1_RX_FIFO_CTRL_ADDR_MSB = 12'h66;
  144. localparam SPI_1_TX_FIFO = 12'h68;
  145. localparam SPI_1_RX_FIFO = 12'h6c;
  146. localparam SPI_2_CTRL_ADDR = 12'hF0;
  147. localparam SPI_2_CLK_ADDR = 12'hF4;
  148. localparam SPI_2_CS_DELAY_ADDR = 12'hF8;
  149. localparam SPI_2_CS_CTRL_ADDR = 12'hFc;
  150. localparam SPI_2_TX_FIFO_CTRL_ADDR_LSB = 12'h100;
  151. localparam SPI_2_TX_FIFO_CTRL_ADDR_MSB = 12'h102;
  152. localparam SPI_2_RX_FIFO_CTRL_ADDR_LSB = 12'h104;
  153. localparam SPI_2_RX_FIFO_CTRL_ADDR_MSB = 12'h106;
  154. localparam SPI_2_TX_FIFO = 12'h108;
  155. localparam SPI_2_RX_FIFO = 12'h10c;
  156. localparam SPI_3_CTRL_ADDR = 12'h140;
  157. localparam SPI_3_CLK_ADDR = 12'h144;
  158. localparam SPI_3_CS_DELAY_ADDR = 12'h148;
  159. localparam SPI_3_CS_CTRL_ADDR = 12'h14c;
  160. localparam SPI_3_TX_FIFO_CTRL_ADDR_LSB = 12'h150;
  161. localparam SPI_3_TX_FIFO_CTRL_ADDR_MSB = 12'h152;
  162. localparam SPI_3_RX_FIFO_CTRL_ADDR_LSB = 12'h154;
  163. localparam SPI_3_RX_FIFO_CTRL_ADDR_MSB = 12'h156;
  164. localparam SPI_3_TX_FIFO = 12'h158;
  165. localparam SPI_3_RX_FIFO = 12'h15c;
  166. localparam SPI_4_CTRL_ADDR = 12'h190;
  167. localparam SPI_4_CLK_ADDR = 12'h194;
  168. localparam SPI_4_CS_DELAY_ADDR = 12'h198;
  169. localparam SPI_4_CS_CTRL_ADDR = 12'h19c;
  170. localparam SPI_4_TX_FIFO_CTRL_ADDR_LSB = 12'h1a0;
  171. localparam SPI_4_TX_FIFO_CTRL_ADDR_MSB = 12'h1a2;
  172. localparam SPI_4_RX_FIFO_CTRL_ADDR_LSB = 12'h1a4;
  173. localparam SPI_4_RX_FIFO_CTRL_ADDR_MSB = 12'h1a6;
  174. localparam SPI_4_TX_FIFO = 12'h1a8;
  175. localparam SPI_4_RX_FIFO = 12'h1ac;
  176. localparam SPI_5_CTRL_ADDR = 12'h1e0;
  177. localparam SPI_5_CLK_ADDR = 12'h1e4;
  178. localparam SPI_5_CS_DELAY_ADDR = 12'h1e8;
  179. localparam SPI_5_CS_CTRL_ADDR = 12'h1ec;
  180. localparam SPI_5_TX_FIFO_CTRL_ADDR_LSB = 12'h1f0;
  181. localparam SPI_5_TX_FIFO_CTRL_ADDR_MSB = 12'h1f2;
  182. localparam SPI_5_RX_FIFO_CTRL_ADDR_LSB = 12'h1f4;
  183. localparam SPI_5_RX_FIFO_CTRL_ADDR_MSB = 12'h1f6;
  184. localparam SPI_5_TX_FIFO = 12'h1f8;
  185. localparam SPI_5_RX_FIFO = 12'h1fc;
  186. localparam SPI_6_CTRL_ADDR = 12'h230;
  187. localparam SPI_6_CLK_ADDR = 12'h234;
  188. localparam SPI_6_CS_DELAY_ADDR = 12'h238;
  189. localparam SPI_6_CS_CTRL_ADDR = 12'h23c;
  190. localparam SPI_6_TX_FIFO_CTRL_ADDR_LSB = 12'h240;
  191. localparam SPI_6_TX_FIFO_CTRL_ADDR_MSB = 12'h242;
  192. localparam SPI_6_RX_FIFO_CTRL_ADDR_LSB = 12'h244;
  193. localparam SPI_6_RX_FIFO_CTRL_ADDR_MSB = 12'h246;
  194. localparam SPI_6_TX_FIFO = 12'h248;
  195. localparam SPI_6_RX_FIFO = 12'h24c;
  196. localparam SPI_TX_RX_EN = 12'hF00;
  197. localparam GPIO_CTRL_ADDR = 12'hFF0;
  198. localparam GPIO_CTRL_ADDR_S = 12'hFF2;
  199. localparam DEBUG_0_ADDR = 12'hFF8;
  200. localparam DEBUG_1_ADDR = 12'hFFC;
  201. //================================================================================
  202. // CODING
  203. //================================================================================
  204. always @(posedge Clk_i) begin
  205. if (!Rst_i) begin
  206. beReg <= 2'b0;
  207. end else begin
  208. beReg <= SmcBe_i;
  209. end
  210. end
  211. always @(posedge Clk_i) begin
  212. if (Rst_i) begin
  213. Spi0ClkReg_o <= 0;
  214. Spi0CtrlReg_o <= 0;
  215. Spi0CsDelayReg_o <= 0;
  216. Spi0CsCtrlReg_o <= 0;
  217. Spi0TxFifoCtrlReg_o <= 0;
  218. Spi0RxFifoCtrlReg_o <= 0;
  219. Spi1ClkReg_o <= 0;
  220. Spi1CtrlReg_o <= 0;
  221. Spi1CsDelayReg_o <= 0;
  222. Spi1CsCtrlReg_o <= 0;
  223. Spi1TxFifoCtrlReg_o <= 0;
  224. Spi1RxFifoCtrlReg_o <= 0;
  225. Spi2ClkReg_o <= 0;
  226. Spi2CtrlReg_o <= 0;
  227. Spi2CsDelayReg_o <= 0;
  228. Spi2CsCtrlReg_o <= 0;
  229. Spi2TxFifoCtrlReg_o <= 0;
  230. Spi2RxFifoCtrlReg_o <= 0;
  231. Spi3ClkReg_o <= 0;
  232. Spi3CtrlReg_o <= 0;
  233. Spi3CsDelayReg_o <= 0;
  234. Spi3CsCtrlReg_o <= 0;
  235. Spi3TxFifoCtrlReg_o <= 0;
  236. Spi3RxFifoCtrlReg_o <= 0;
  237. Spi4ClkReg_o <= 0;
  238. Spi4CtrlReg_o <= 0;
  239. Spi4CsDelayReg_o <= 0;
  240. Spi4CsCtrlReg_o <= 0;
  241. Spi4TxFifoCtrlReg_o <= 0;
  242. Spi4RxFifoCtrlReg_o <= 0;
  243. Spi5ClkReg_o <= 0;
  244. Spi5CtrlReg_o <= 0;
  245. Spi5CsDelayReg_o <= 0;
  246. Spi5CsCtrlReg_o <= 0;
  247. Spi5TxFifoCtrlReg_o <= 0;
  248. Spi5RxFifoCtrlReg_o <= 0;
  249. Spi6ClkReg_o <= 0;
  250. Spi6CtrlReg_o <= 0;
  251. Spi6CsDelayReg_o <= 0;
  252. Spi6CsCtrlReg_o <= 0;
  253. Spi6TxFifoCtrlReg_o <= 0;
  254. Spi6RxFifoCtrlReg_o <= 0;
  255. spiTxRxEnReg <= 0;
  256. GPIOAReg <= 0;
  257. GPIOARegS <= 0;
  258. ledReg <= 0;
  259. end
  260. else begin
  261. if (Val_i) begin
  262. case (beReg)
  263. 0 : begin
  264. case (Addr_i)
  265. SPI_0_CTRL_ADDR : begin
  266. Spi0CtrlReg_o <= Data_i;
  267. end
  268. SPI_0_CLK_ADDR : begin
  269. Spi0ClkReg_o <= Data_i;
  270. end
  271. SPI_0_CS_DELAY_ADDR : begin
  272. Spi0CsDelayReg_o <= Data_i;
  273. end
  274. SPI_0_CS_CTRL_ADDR : begin
  275. Spi0CsCtrlReg_o <= Data_i;
  276. end
  277. SPI_0_TX_FIFO_CTRL_ADDR_LSB : begin
  278. Spi0TxFifoCtrlReg_o <= Data_i;
  279. end
  280. SPI_0_RX_FIFO_CTRL_ADDR_LSB : begin
  281. Spi0RxFifoCtrlReg_o <= Data_i;
  282. end
  283. SPI_1_CTRL_ADDR : begin
  284. Spi1CtrlReg_o <= Data_i;
  285. end
  286. SPI_1_CLK_ADDR : begin
  287. Spi1ClkReg_o <= Data_i;
  288. end
  289. SPI_1_CS_DELAY_ADDR : begin
  290. Spi1CsDelayReg_o <= Data_i;
  291. end
  292. SPI_1_CS_CTRL_ADDR : begin
  293. Spi1CsCtrlReg_o <= Data_i;
  294. end
  295. SPI_1_TX_FIFO_CTRL_ADDR_LSB : begin
  296. Spi1TxFifoCtrlReg_o <= Data_i;
  297. end
  298. SPI_1_RX_FIFO_CTRL_ADDR_LSB : begin
  299. Spi1RxFifoCtrlReg_o <= Data_i;
  300. end
  301. SPI_2_CTRL_ADDR : begin
  302. Spi2CtrlReg_o <= Data_i;
  303. end
  304. SPI_2_CLK_ADDR : begin
  305. Spi2ClkReg_o <= Data_i;
  306. end
  307. SPI_2_CS_DELAY_ADDR : begin
  308. Spi2CsDelayReg_o <= Data_i;
  309. end
  310. SPI_2_CS_CTRL_ADDR : begin
  311. Spi2CsCtrlReg_o <= Data_i;
  312. end
  313. SPI_2_TX_FIFO_CTRL_ADDR_LSB : begin
  314. Spi2TxFifoCtrlReg_o <= Data_i;
  315. end
  316. SPI_2_RX_FIFO_CTRL_ADDR_LSB : begin
  317. Spi2RxFifoCtrlReg_o <= Data_i;
  318. end
  319. SPI_3_CTRL_ADDR : begin
  320. Spi3CtrlReg_o <= Data_i;
  321. end
  322. SPI_3_CLK_ADDR : begin
  323. Spi3ClkReg_o <= Data_i;
  324. end
  325. SPI_3_CS_DELAY_ADDR : begin
  326. Spi3CsDelayReg_o <= Data_i;
  327. end
  328. SPI_3_CS_CTRL_ADDR : begin
  329. Spi3CsCtrlReg_o <= Data_i;
  330. end
  331. SPI_3_TX_FIFO_CTRL_ADDR_LSB : begin
  332. Spi3TxFifoCtrlReg_o <= Data_i;
  333. end
  334. SPI_3_RX_FIFO_CTRL_ADDR_LSB : begin
  335. Spi3RxFifoCtrlReg_o <= Data_i;
  336. end
  337. SPI_4_CTRL_ADDR : begin
  338. Spi4CtrlReg_o <= Data_i;
  339. end
  340. SPI_4_CLK_ADDR : begin
  341. Spi4ClkReg_o <= Data_i;
  342. end
  343. SPI_4_CS_DELAY_ADDR : begin
  344. Spi4CsDelayReg_o <= Data_i;
  345. end
  346. SPI_4_CS_CTRL_ADDR : begin
  347. Spi4CsCtrlReg_o <= Data_i;
  348. end
  349. SPI_4_TX_FIFO_CTRL_ADDR_LSB : begin
  350. Spi4TxFifoCtrlReg_o <= Data_i;
  351. end
  352. SPI_4_RX_FIFO_CTRL_ADDR_LSB : begin
  353. Spi4RxFifoCtrlReg_o <= Data_i;
  354. end
  355. SPI_5_CTRL_ADDR : begin
  356. Spi5CtrlReg_o <= Data_i;
  357. end
  358. SPI_5_CLK_ADDR : begin
  359. Spi5ClkReg_o <= Data_i;
  360. end
  361. SPI_5_CS_DELAY_ADDR : begin
  362. Spi5CsDelayReg_o <= Data_i;
  363. end
  364. SPI_5_CS_CTRL_ADDR : begin
  365. Spi5CsCtrlReg_o <= Data_i;
  366. end
  367. SPI_5_TX_FIFO_CTRL_ADDR_LSB : begin
  368. Spi5TxFifoCtrlReg_o <= Data_i;
  369. end
  370. SPI_5_RX_FIFO_CTRL_ADDR_LSB : begin
  371. Spi5RxFifoCtrlReg_o <= Data_i;
  372. end
  373. SPI_6_CTRL_ADDR : begin
  374. Spi6CtrlReg_o <= Data_i;
  375. end
  376. SPI_6_CLK_ADDR : begin
  377. Spi6ClkReg_o <= Data_i;
  378. end
  379. SPI_6_CS_DELAY_ADDR : begin
  380. Spi6CsDelayReg_o <= Data_i;
  381. end
  382. SPI_6_CS_CTRL_ADDR : begin
  383. Spi6CsCtrlReg_o <= Data_i;
  384. end
  385. SPI_6_TX_FIFO_CTRL_ADDR_LSB : begin
  386. Spi6TxFifoCtrlReg_o <= Data_i;
  387. end
  388. SPI_6_RX_FIFO_CTRL_ADDR_LSB : begin
  389. Spi6RxFifoCtrlReg_o <= Data_i;
  390. end
  391. SPI_TX_RX_EN : begin
  392. spiTxRxEnReg <= Data_i;
  393. end
  394. GPIO_CTRL_ADDR : begin
  395. GPIOAReg <= Data_i;
  396. end
  397. GPIO_CTRL_ADDR_S : begin
  398. GPIOARegS <= Data_i;
  399. end
  400. DEBUG_0_ADDR : begin
  401. ledReg <= Data_i;
  402. end
  403. endcase
  404. end
  405. 1 : begin
  406. case (Addr_i)
  407. SPI_0_CTRL_ADDR : begin
  408. Spi0CtrlReg_o[15:8] <= Data_i[15:8];
  409. end
  410. SPI_0_CLK_ADDR : begin
  411. Spi0ClkReg_o[15:8] <= Data_i[15:8];
  412. end
  413. SPI_0_CS_DELAY_ADDR : begin
  414. Spi0CsDelayReg_o[15:8] <= Data_i[15:8];
  415. end
  416. SPI_0_CS_CTRL_ADDR : begin
  417. Spi0CsCtrlReg_o[15:8] <= Data_i[15:8];
  418. end
  419. SPI_0_TX_FIFO_CTRL_ADDR_LSB : begin
  420. Spi0TxFifoCtrlReg_o[15:8] <= Data_i[15:8];
  421. end
  422. SPI_0_RX_FIFO_CTRL_ADDR_LSB : begin
  423. Spi0RxFifoCtrlReg_o[15:8] <= Data_i[15:8];
  424. end
  425. SPI_1_CTRL_ADDR : begin
  426. Spi1CtrlReg_o[15:8] <= Data_i[15:8];
  427. end
  428. SPI_1_CLK_ADDR : begin
  429. Spi1ClkReg_o[15:8] <= Data_i[15:8];
  430. end
  431. SPI_1_CS_DELAY_ADDR : begin
  432. Spi1CsDelayReg_o[15:8] <= Data_i[15:8];
  433. end
  434. SPI_1_CS_CTRL_ADDR : begin
  435. Spi1CsCtrlReg_o[15:8] <= Data_i[15:8];
  436. end
  437. SPI_1_TX_FIFO_CTRL_ADDR_LSB : begin
  438. Spi1TxFifoCtrlReg_o[15:8] <= Data_i[15:8];
  439. end
  440. SPI_1_RX_FIFO_CTRL_ADDR_LSB : begin
  441. Spi1RxFifoCtrlReg_o[15:8] <= Data_i[15:8];
  442. end
  443. SPI_2_CTRL_ADDR : begin
  444. Spi2CtrlReg_o[15:8] <= Data_i[15:8];
  445. end
  446. SPI_2_CLK_ADDR : begin
  447. Spi2ClkReg_o[15:8] <= Data_i[15:8];
  448. end
  449. SPI_2_CS_DELAY_ADDR : begin
  450. Spi2CsDelayReg_o[15:8] <= Data_i[15:8];
  451. end
  452. SPI_2_CS_CTRL_ADDR : begin
  453. Spi2CsCtrlReg_o[15:8] <= Data_i[15:8];
  454. end
  455. SPI_2_TX_FIFO_CTRL_ADDR_LSB : begin
  456. Spi2TxFifoCtrlReg_o[15:8] <= Data_i[15:8];
  457. end
  458. SPI_2_RX_FIFO_CTRL_ADDR_LSB : begin
  459. Spi2RxFifoCtrlReg_o[15:8] <= Data_i[15:8];
  460. end
  461. SPI_3_CTRL_ADDR : begin
  462. Spi3CtrlReg_o[15:8] <= Data_i[15:8];
  463. end
  464. SPI_3_CLK_ADDR : begin
  465. Spi3ClkReg_o[15:8] <= Data_i[15:8];
  466. end
  467. SPI_3_CS_DELAY_ADDR : begin
  468. Spi3CsDelayReg_o[15:8] <= Data_i[15:8];
  469. end
  470. SPI_3_CS_CTRL_ADDR : begin
  471. Spi3CsCtrlReg_o[15:8] <= Data_i[15:8];
  472. end
  473. SPI_3_TX_FIFO_CTRL_ADDR_LSB : begin
  474. Spi3TxFifoCtrlReg_o[15:8] <= Data_i[15:8];
  475. end
  476. SPI_3_RX_FIFO_CTRL_ADDR_LSB : begin
  477. Spi3RxFifoCtrlReg_o[15:8] <= Data_i[15:8];
  478. end
  479. SPI_4_CTRL_ADDR : begin
  480. Spi4CtrlReg_o[15:8] <= Data_i[15:8];
  481. end
  482. SPI_4_CLK_ADDR : begin
  483. Spi4ClkReg_o[15:8] <= Data_i[15:8];
  484. end
  485. SPI_4_CS_DELAY_ADDR : begin
  486. Spi4CsDelayReg_o[15:8] <= Data_i[15:8];
  487. end
  488. SPI_4_CS_CTRL_ADDR : begin
  489. Spi4CsCtrlReg_o[15:8] <= Data_i[15:8];
  490. end
  491. SPI_4_TX_FIFO_CTRL_ADDR_LSB : begin
  492. Spi4TxFifoCtrlReg_o[15:8] <= Data_i[15:8];
  493. end
  494. SPI_4_RX_FIFO_CTRL_ADDR_LSB : begin
  495. Spi4RxFifoCtrlReg_o[15:8] <= Data_i[15:8];
  496. end
  497. SPI_5_CTRL_ADDR : begin
  498. Spi5CtrlReg_o[15:8] <= Data_i[15:8];
  499. end
  500. SPI_5_CLK_ADDR : begin
  501. Spi5ClkReg_o[15:8] <= Data_i[15:8];
  502. end
  503. SPI_5_CS_DELAY_ADDR : begin
  504. Spi5CsDelayReg_o[15:8] <= Data_i[15:8];
  505. end
  506. SPI_5_CS_CTRL_ADDR : begin
  507. Spi5CsCtrlReg_o[15:8] <= Data_i[15:8];
  508. end
  509. SPI_5_TX_FIFO_CTRL_ADDR_LSB : begin
  510. Spi5TxFifoCtrlReg_o[15:8] <= Data_i[15:8];
  511. end
  512. SPI_5_RX_FIFO_CTRL_ADDR_LSB : begin
  513. Spi5RxFifoCtrlReg_o[15:8] <= Data_i[15:8];
  514. end
  515. SPI_6_CTRL_ADDR : begin
  516. Spi6CtrlReg_o[15:8] <= Data_i[15:8];
  517. end
  518. SPI_6_CLK_ADDR : begin
  519. Spi6ClkReg_o[15:8] <= Data_i[15:8];
  520. end
  521. SPI_6_CS_DELAY_ADDR : begin
  522. Spi6CsDelayReg_o[15:8] <= Data_i[15:8];
  523. end
  524. SPI_6_CS_CTRL_ADDR : begin
  525. Spi6CsCtrlReg_o[15:8] <= Data_i[15:8];
  526. end
  527. SPI_6_TX_FIFO_CTRL_ADDR_LSB : begin
  528. Spi6TxFifoCtrlReg_o[15:8] <= Data_i[15:8];
  529. end
  530. SPI_6_RX_FIFO_CTRL_ADDR_LSB : begin
  531. Spi6RxFifoCtrlReg_o[15:8] <= Data_i[15:8];
  532. end
  533. SPI_TX_RX_EN : begin
  534. spiTxRxEnReg[15:8] <= Data_i[15:8];
  535. end
  536. GPIO_CTRL_ADDR : begin
  537. GPIOAReg[15:8] <= Data_i[15:8];
  538. end
  539. GPIO_CTRL_ADDR_S : begin
  540. GPIOARegS[15:8] <= Data_i[15:8];
  541. end
  542. DEBUG_0_ADDR : begin
  543. ledReg[15:8] <= Data_i[15:8];
  544. end
  545. endcase
  546. end
  547. 2 : begin
  548. case (Addr_i)
  549. SPI_0_CTRL_ADDR : begin
  550. Spi0CtrlReg_o[7:0] <= Data_i[7:0];
  551. end
  552. SPI_0_CLK_ADDR : begin
  553. Spi0ClkReg_o[7:0] <= Data_i[7:0];
  554. end
  555. SPI_0_CS_DELAY_ADDR : begin
  556. Spi0CsDelayReg_o[7:0] <= Data_i[7:0];
  557. end
  558. SPI_0_CS_CTRL_ADDR : begin
  559. Spi0CsCtrlReg_o[7:0] <= Data_i[7:0];
  560. end
  561. SPI_0_TX_FIFO_CTRL_ADDR_LSB : begin
  562. Spi0TxFifoCtrlReg_o[7:0] <= Data_i[7:0];
  563. end
  564. SPI_0_RX_FIFO_CTRL_ADDR_LSB : begin
  565. Spi0RxFifoCtrlReg_o[7:0] <= Data_i[7:0];
  566. end
  567. SPI_1_CTRL_ADDR : begin
  568. Spi1CtrlReg_o[7:0] <= Data_i[7:0];
  569. end
  570. SPI_1_CLK_ADDR : begin
  571. Spi1ClkReg_o[7:0] <= Data_i[7:0];
  572. end
  573. SPI_1_CS_DELAY_ADDR : begin
  574. Spi1CsDelayReg_o[7:0] <= Data_i[7:0];
  575. end
  576. SPI_1_CS_CTRL_ADDR : begin
  577. Spi1CsCtrlReg_o[7:0] <= Data_i[7:0];
  578. end
  579. SPI_1_TX_FIFO_CTRL_ADDR_LSB : begin
  580. Spi1TxFifoCtrlReg_o[7:0] <= Data_i[7:0];
  581. end
  582. SPI_1_RX_FIFO_CTRL_ADDR_LSB : begin
  583. Spi1RxFifoCtrlReg_o[7:0] <= Data_i[7:0];
  584. end
  585. SPI_2_CTRL_ADDR : begin
  586. Spi2CtrlReg_o[7:0] <= Data_i[7:0];
  587. end
  588. SPI_2_CLK_ADDR : begin
  589. Spi2ClkReg_o[7:0] <= Data_i[7:0];
  590. end
  591. SPI_2_CS_DELAY_ADDR : begin
  592. Spi2CsDelayReg_o[7:0] <= Data_i[7:0];
  593. end
  594. SPI_2_CS_CTRL_ADDR : begin
  595. Spi2CsCtrlReg_o[7:0] <= Data_i[7:0];
  596. end
  597. SPI_2_TX_FIFO_CTRL_ADDR_LSB : begin
  598. Spi2TxFifoCtrlReg_o[7:0] <= Data_i[7:0];
  599. end
  600. SPI_2_RX_FIFO_CTRL_ADDR_LSB : begin
  601. Spi2RxFifoCtrlReg_o[7:0] <= Data_i[7:0];
  602. end
  603. SPI_3_CTRL_ADDR : begin
  604. Spi3CtrlReg_o[7:0] <= Data_i[7:0];
  605. end
  606. SPI_3_CLK_ADDR : begin
  607. Spi3ClkReg_o[7:0] <= Data_i[7:0];
  608. end
  609. SPI_3_CS_DELAY_ADDR : begin
  610. Spi3CsDelayReg_o[7:0] <= Data_i[7:0];
  611. end
  612. SPI_3_CS_CTRL_ADDR : begin
  613. Spi3CsCtrlReg_o[7:0] <= Data_i[7:0];
  614. end
  615. SPI_3_TX_FIFO_CTRL_ADDR_LSB : begin
  616. Spi3TxFifoCtrlReg_o[7:0] <= Data_i[7:0];
  617. end
  618. SPI_3_RX_FIFO_CTRL_ADDR_LSB : begin
  619. Spi3RxFifoCtrlReg_o[7:0] <= Data_i[7:0];
  620. end
  621. SPI_4_CTRL_ADDR : begin
  622. Spi4CtrlReg_o[7:0] <= Data_i[7:0];
  623. end
  624. SPI_4_CLK_ADDR : begin
  625. Spi4ClkReg_o[7:0] <= Data_i[7:0];
  626. end
  627. SPI_4_CS_DELAY_ADDR : begin
  628. Spi4CsDelayReg_o[7:0] <= Data_i[7:0];
  629. end
  630. SPI_4_CS_CTRL_ADDR : begin
  631. Spi4CsCtrlReg_o[7:0] <= Data_i[7:0];
  632. end
  633. SPI_4_TX_FIFO_CTRL_ADDR_LSB : begin
  634. Spi4TxFifoCtrlReg_o[7:0] <= Data_i[7:0];
  635. end
  636. SPI_4_RX_FIFO_CTRL_ADDR_LSB : begin
  637. Spi4RxFifoCtrlReg_o[7:0] <= Data_i[7:0];
  638. end
  639. SPI_5_CTRL_ADDR : begin
  640. Spi5CtrlReg_o[7:0] <= Data_i[7:0];
  641. end
  642. SPI_5_CLK_ADDR : begin
  643. Spi5ClkReg_o[7:0] <= Data_i[7:0];
  644. end
  645. SPI_5_CS_DELAY_ADDR : begin
  646. Spi5CsDelayReg_o[7:0] <= Data_i[7:0];
  647. end
  648. SPI_5_CS_CTRL_ADDR : begin
  649. Spi5CsCtrlReg_o[7:0] <= Data_i[7:0];
  650. end
  651. SPI_5_TX_FIFO_CTRL_ADDR_LSB : begin
  652. Spi5TxFifoCtrlReg_o[7:0] <= Data_i[7:0];
  653. end
  654. SPI_5_RX_FIFO_CTRL_ADDR_LSB : begin
  655. Spi5RxFifoCtrlReg_o[7:0] <= Data_i[7:0];
  656. end
  657. SPI_6_CTRL_ADDR : begin
  658. Spi6CtrlReg_o[7:0] <= Data_i[7:0];
  659. end
  660. SPI_6_CLK_ADDR : begin
  661. Spi6ClkReg_o[7:0] <= Data_i[7:0];
  662. end
  663. SPI_6_CS_DELAY_ADDR : begin
  664. Spi6CsDelayReg_o[7:0] <= Data_i[7:0];
  665. end
  666. SPI_6_CS_CTRL_ADDR : begin
  667. Spi6CsCtrlReg_o[7:0] <= Data_i[7:0];
  668. end
  669. SPI_6_TX_FIFO_CTRL_ADDR_LSB : begin
  670. Spi6TxFifoCtrlReg_o[7:0] <= Data_i[7:0];
  671. end
  672. SPI_6_RX_FIFO_CTRL_ADDR_LSB : begin
  673. Spi6RxFifoCtrlReg_o[7:0] <= Data_i[7:0];
  674. end
  675. SPI_TX_RX_EN : begin
  676. spiTxRxEnReg[7:0] <= Data_i[7:0];
  677. end
  678. GPIO_CTRL_ADDR : begin
  679. GPIOAReg[7:0] <= Data_i[7:0];
  680. end
  681. GPIO_CTRL_ADDR_S : begin
  682. GPIOARegS[7:0] <= Data_i[7:0];
  683. end
  684. DEBUG_0_ADDR : begin
  685. ledReg[7:0] <= Data_i[7:0];
  686. end
  687. endcase
  688. end
  689. endcase
  690. end
  691. end
  692. end
  693. always @(*) begin
  694. if (Rst_i) begin
  695. ansReg = 0;
  696. end else begin
  697. case (Addr_i)
  698. SPI_0_CTRL_ADDR : begin
  699. ansReg = Spi0CtrlReg_o;
  700. end
  701. SPI_0_CLK_ADDR : begin
  702. ansReg = Spi0ClkReg_o;
  703. end
  704. SPI_0_CS_DELAY_ADDR : begin
  705. ansReg = Spi0CsDelayReg_o;
  706. end
  707. SPI_0_CS_CTRL_ADDR : begin
  708. ansReg = Spi0CsCtrlReg_o;
  709. end
  710. SPI_0_TX_FIFO_CTRL_ADDR_LSB : begin
  711. ansReg = TxFifoCtrlReg0_i[15:0];
  712. end
  713. SPI_0_TX_FIFO_CTRL_ADDR_MSB : begin
  714. ansReg = TxFifoCtrlReg0_i[31:16];
  715. end
  716. SPI_0_RX_FIFO_CTRL_ADDR_LSB : begin
  717. ansReg = RxFifoCtrlReg0_i[15:0];
  718. end
  719. SPI_0_RX_FIFO_CTRL_ADDR_MSB : begin
  720. ansReg = RxFifoCtrlReg0_i[31:16];
  721. end
  722. SPI_1_CTRL_ADDR : begin
  723. ansReg = Spi1CtrlReg_o;
  724. end
  725. SPI_1_CLK_ADDR : begin
  726. ansReg = Spi1ClkReg_o;
  727. end
  728. SPI_1_CS_DELAY_ADDR : begin
  729. ansReg = Spi1CsDelayReg_o;
  730. end
  731. SPI_1_CS_CTRL_ADDR : begin
  732. ansReg = Spi1CsCtrlReg_o;
  733. end
  734. SPI_1_TX_FIFO_CTRL_ADDR_LSB : begin
  735. ansReg = TxFifoCtrlReg1_i[15:0];
  736. end
  737. SPI_1_TX_FIFO_CTRL_ADDR_MSB : begin
  738. ansReg = TxFifoCtrlReg1_i[31:16];
  739. end
  740. SPI_1_RX_FIFO_CTRL_ADDR_LSB : begin
  741. ansReg = RxFifoCtrlReg1_i[15:0];
  742. end
  743. SPI_1_RX_FIFO_CTRL_ADDR_MSB : begin
  744. ansReg = RxFifoCtrlReg1_i[31:16];
  745. end
  746. SPI_2_CTRL_ADDR : begin
  747. ansReg = Spi2CtrlReg_o;
  748. end
  749. SPI_2_CLK_ADDR : begin
  750. ansReg = Spi2ClkReg_o;
  751. end
  752. SPI_2_CS_DELAY_ADDR : begin
  753. ansReg = Spi2CsDelayReg_o;
  754. end
  755. SPI_2_CS_CTRL_ADDR : begin
  756. ansReg = Spi2CsCtrlReg_o;
  757. end
  758. SPI_2_TX_FIFO_CTRL_ADDR_LSB : begin
  759. ansReg = TxFifoCtrlReg2_i[15:0];
  760. end
  761. SPI_2_TX_FIFO_CTRL_ADDR_MSB : begin
  762. ansReg = TxFifoCtrlReg2_i[31:16];
  763. end
  764. SPI_2_RX_FIFO_CTRL_ADDR_LSB : begin
  765. ansReg = RxFifoCtrlReg2_i[15:0];
  766. end
  767. SPI_2_RX_FIFO_CTRL_ADDR_MSB : begin
  768. ansReg = RxFifoCtrlReg2_i[31:16];
  769. end
  770. SPI_3_CTRL_ADDR : begin
  771. ansReg = Spi3CtrlReg_o;
  772. end
  773. SPI_3_CLK_ADDR : begin
  774. ansReg = Spi3ClkReg_o;
  775. end
  776. SPI_3_CS_DELAY_ADDR : begin
  777. ansReg = Spi3CsDelayReg_o;
  778. end
  779. SPI_3_CS_CTRL_ADDR : begin
  780. ansReg = Spi3CsCtrlReg_o;
  781. end
  782. SPI_3_TX_FIFO_CTRL_ADDR_LSB : begin
  783. ansReg = TxFifoCtrlReg3_i[15:0];
  784. end
  785. SPI_3_TX_FIFO_CTRL_ADDR_MSB : begin
  786. ansReg = TxFifoCtrlReg3_i[31:16];
  787. end
  788. SPI_3_RX_FIFO_CTRL_ADDR_LSB : begin
  789. ansReg = RxFifoCtrlReg3_i[15:0];
  790. end
  791. SPI_3_RX_FIFO_CTRL_ADDR_MSB : begin
  792. ansReg = RxFifoCtrlReg3_i[31:16];
  793. end
  794. SPI_4_CTRL_ADDR : begin
  795. ansReg = Spi4CtrlReg_o;
  796. end
  797. SPI_4_CLK_ADDR : begin
  798. ansReg = Spi4ClkReg_o;
  799. end
  800. SPI_4_CS_DELAY_ADDR : begin
  801. ansReg = Spi4CsDelayReg_o;
  802. end
  803. SPI_4_CS_CTRL_ADDR : begin
  804. ansReg = Spi4CsCtrlReg_o;
  805. end
  806. SPI_4_TX_FIFO_CTRL_ADDR_LSB : begin
  807. ansReg = TxFifoCtrlReg4_i[15:0];
  808. end
  809. SPI_4_TX_FIFO_CTRL_ADDR_MSB : begin
  810. ansReg = TxFifoCtrlReg4_i[31:16];
  811. end
  812. SPI_4_RX_FIFO_CTRL_ADDR_LSB : begin
  813. ansReg = RxFifoCtrlReg4_i[15:0];
  814. end
  815. SPI_4_RX_FIFO_CTRL_ADDR_MSB : begin
  816. ansReg = RxFifoCtrlReg4_i[31:16];
  817. end
  818. SPI_5_CTRL_ADDR : begin
  819. ansReg = Spi5CtrlReg_o;
  820. end
  821. SPI_5_CLK_ADDR : begin
  822. ansReg = Spi5ClkReg_o;
  823. end
  824. SPI_5_CS_DELAY_ADDR : begin
  825. ansReg = Spi5CsDelayReg_o;
  826. end
  827. SPI_5_CS_CTRL_ADDR : begin
  828. ansReg = Spi5CsCtrlReg_o;
  829. end
  830. SPI_5_TX_FIFO_CTRL_ADDR_LSB : begin
  831. ansReg = TxFifoCtrlReg5_i[15:0];
  832. end
  833. SPI_5_TX_FIFO_CTRL_ADDR_MSB : begin
  834. ansReg = TxFifoCtrlReg5_i[31:16];
  835. end
  836. SPI_5_RX_FIFO_CTRL_ADDR_LSB : begin
  837. ansReg = RxFifoCtrlReg5_i[15:0];
  838. end
  839. SPI_5_RX_FIFO_CTRL_ADDR_MSB : begin
  840. ansReg = RxFifoCtrlReg5_i[31:16];
  841. end
  842. SPI_6_CTRL_ADDR : begin
  843. ansReg = Spi6CtrlReg_o;
  844. end
  845. SPI_6_CLK_ADDR : begin
  846. ansReg = Spi6ClkReg_o;
  847. end
  848. SPI_6_CS_DELAY_ADDR : begin
  849. ansReg = Spi6CsDelayReg_o;
  850. end
  851. SPI_6_CS_CTRL_ADDR : begin
  852. ansReg = Spi6CsCtrlReg_o;
  853. end
  854. SPI_6_TX_FIFO_CTRL_ADDR_LSB : begin
  855. ansReg = TxFifoCtrlReg6_i[15:0];
  856. end
  857. SPI_6_TX_FIFO_CTRL_ADDR_MSB : begin
  858. ansReg = TxFifoCtrlReg6_i[31:16];
  859. end
  860. SPI_6_RX_FIFO_CTRL_ADDR_LSB : begin
  861. ansReg = RxFifoCtrlReg6_i[15:0];
  862. end
  863. SPI_6_RX_FIFO_CTRL_ADDR_MSB : begin
  864. ansReg = RxFifoCtrlReg6_i[31:16];
  865. end
  866. SPI_TX_RX_EN : begin
  867. ansReg = spiTxRxEnReg;
  868. end
  869. GPIO_CTRL_ADDR : begin
  870. ansReg = GPIOAReg;
  871. end
  872. GPIO_CTRL_ADDR_S : begin
  873. ansReg = {9'd0,LdReg_i};
  874. end
  875. DEBUG_0_ADDR : begin
  876. ansReg = ledReg;
  877. end
  878. default : begin
  879. ansReg = 0;
  880. end
  881. endcase
  882. end
  883. end
  884. endmodule