RegMap.v 28 KB

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