RegMap.v 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960
  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. /*Spi Tx/Rx FIFO Flags */
  206. localparam SPI_TX_RX_FLAGS = 12'hF0C;
  207. localparam GPIO_CTRL_ADDR = 12'hFF0;
  208. localparam GPIO_CTRL_ADDR_S = 12'hFF2;
  209. /* LD Mask and LD Register */
  210. localparam LD_REG_ADDR = 12'hFF4;
  211. localparam LD_MASK_ADDR = 12'hFF8;
  212. //================================================================================
  213. // CODING
  214. //================================================================================
  215. always @(posedge Clk_i) begin
  216. if (!Rst_i) begin
  217. beReg <= 2'b0;
  218. end else begin
  219. beReg <= SmcBe_i;
  220. end
  221. end
  222. always @(posedge Clk_i) begin
  223. if (Rst_i) begin
  224. Spi0ClkReg_o <= 0;
  225. Spi0CtrlReg_o <= 0;
  226. Spi0CsDelayReg_o <= 0;
  227. Spi0CsCtrlReg_o <= 0;
  228. Spi0TxFifoCtrlReg_o <= 0;
  229. Spi0RxFifoCtrlReg_o <= 0;
  230. Spi1ClkReg_o <= 0;
  231. Spi1CtrlReg_o <= 0;
  232. Spi1CsDelayReg_o <= 0;
  233. Spi1CsCtrlReg_o <= 0;
  234. Spi1TxFifoCtrlReg_o <= 0;
  235. Spi1RxFifoCtrlReg_o <= 0;
  236. Spi2ClkReg_o <= 0;
  237. Spi2CtrlReg_o <= 0;
  238. Spi2CsDelayReg_o <= 0;
  239. Spi2CsCtrlReg_o <= 0;
  240. Spi2TxFifoCtrlReg_o <= 0;
  241. Spi2RxFifoCtrlReg_o <= 0;
  242. Spi3ClkReg_o <= 0;
  243. Spi3CtrlReg_o <= 0;
  244. Spi3CsDelayReg_o <= 0;
  245. Spi3CsCtrlReg_o <= 0;
  246. Spi3TxFifoCtrlReg_o <= 0;
  247. Spi3RxFifoCtrlReg_o <= 0;
  248. Spi4ClkReg_o <= 0;
  249. Spi4CtrlReg_o <= 0;
  250. Spi4CsDelayReg_o <= 0;
  251. Spi4CsCtrlReg_o <= 0;
  252. Spi4TxFifoCtrlReg_o <= 0;
  253. Spi4RxFifoCtrlReg_o <= 0;
  254. Spi5ClkReg_o <= 0;
  255. Spi5CtrlReg_o <= 0;
  256. Spi5CsDelayReg_o <= 0;
  257. Spi5CsCtrlReg_o <= 0;
  258. Spi5TxFifoCtrlReg_o <= 0;
  259. Spi5RxFifoCtrlReg_o <= 0;
  260. Spi6ClkReg_o <= 0;
  261. Spi6CtrlReg_o <= 0;
  262. Spi6CsDelayReg_o <= 0;
  263. Spi6CsCtrlReg_o <= 0;
  264. Spi6TxFifoCtrlReg_o <= 0;
  265. Spi6RxFifoCtrlReg_o <= 0;
  266. spiTxRxEnReg <= 0;
  267. SpiTxRxEnSetReg_o <= 0;
  268. SpiTxRxEnClrReg_o <= 0;
  269. LdMaskReg_o <= 0;
  270. GPIOAReg <= 0;
  271. GPIOARegS <= 0;
  272. ledReg <= 0;
  273. end
  274. else begin
  275. if (Val_i) begin
  276. case (beReg)
  277. 0 : begin
  278. case (Addr_i)
  279. SPI_0_CTRL_ADDR : begin
  280. Spi0CtrlReg_o <= Data_i;
  281. end
  282. SPI_0_CLK_ADDR : begin
  283. Spi0ClkReg_o <= Data_i;
  284. end
  285. SPI_0_CS_DELAY_ADDR : begin
  286. Spi0CsDelayReg_o <= Data_i;
  287. end
  288. SPI_0_CS_CTRL_ADDR : begin
  289. Spi0CsCtrlReg_o <= Data_i;
  290. end
  291. SPI_0_TX_FIFO_CTRL_ADDR_LSB : begin
  292. Spi0TxFifoCtrlReg_o <= Data_i;
  293. end
  294. SPI_0_RX_FIFO_CTRL_ADDR_LSB : begin
  295. Spi0RxFifoCtrlReg_o <= Data_i;
  296. end
  297. SPI_1_CTRL_ADDR : begin
  298. Spi1CtrlReg_o <= Data_i;
  299. end
  300. SPI_1_CLK_ADDR : begin
  301. Spi1ClkReg_o <= Data_i;
  302. end
  303. SPI_1_CS_DELAY_ADDR : begin
  304. Spi1CsDelayReg_o <= Data_i;
  305. end
  306. SPI_1_CS_CTRL_ADDR : begin
  307. Spi1CsCtrlReg_o <= Data_i;
  308. end
  309. SPI_1_TX_FIFO_CTRL_ADDR_LSB : begin
  310. Spi1TxFifoCtrlReg_o <= Data_i;
  311. end
  312. SPI_1_RX_FIFO_CTRL_ADDR_LSB : begin
  313. Spi1RxFifoCtrlReg_o <= Data_i;
  314. end
  315. SPI_2_CTRL_ADDR : begin
  316. Spi2CtrlReg_o <= Data_i;
  317. end
  318. SPI_2_CLK_ADDR : begin
  319. Spi2ClkReg_o <= Data_i;
  320. end
  321. SPI_2_CS_DELAY_ADDR : begin
  322. Spi2CsDelayReg_o <= Data_i;
  323. end
  324. SPI_2_CS_CTRL_ADDR : begin
  325. Spi2CsCtrlReg_o <= Data_i;
  326. end
  327. SPI_2_TX_FIFO_CTRL_ADDR_LSB : begin
  328. Spi2TxFifoCtrlReg_o <= Data_i;
  329. end
  330. SPI_2_RX_FIFO_CTRL_ADDR_LSB : begin
  331. Spi2RxFifoCtrlReg_o <= Data_i;
  332. end
  333. SPI_3_CTRL_ADDR : begin
  334. Spi3CtrlReg_o <= Data_i;
  335. end
  336. SPI_3_CLK_ADDR : begin
  337. Spi3ClkReg_o <= Data_i;
  338. end
  339. SPI_3_CS_DELAY_ADDR : begin
  340. Spi3CsDelayReg_o <= Data_i;
  341. end
  342. SPI_3_CS_CTRL_ADDR : begin
  343. Spi3CsCtrlReg_o <= Data_i;
  344. end
  345. SPI_3_TX_FIFO_CTRL_ADDR_LSB : begin
  346. Spi3TxFifoCtrlReg_o <= Data_i;
  347. end
  348. SPI_3_RX_FIFO_CTRL_ADDR_LSB : begin
  349. Spi3RxFifoCtrlReg_o <= Data_i;
  350. end
  351. SPI_4_CTRL_ADDR : begin
  352. Spi4CtrlReg_o <= Data_i;
  353. end
  354. SPI_4_CLK_ADDR : begin
  355. Spi4ClkReg_o <= Data_i;
  356. end
  357. SPI_4_CS_DELAY_ADDR : begin
  358. Spi4CsDelayReg_o <= Data_i;
  359. end
  360. SPI_4_CS_CTRL_ADDR : begin
  361. Spi4CsCtrlReg_o <= Data_i;
  362. end
  363. SPI_4_TX_FIFO_CTRL_ADDR_LSB : begin
  364. Spi4TxFifoCtrlReg_o <= Data_i;
  365. end
  366. SPI_4_RX_FIFO_CTRL_ADDR_LSB : begin
  367. Spi4RxFifoCtrlReg_o <= Data_i;
  368. end
  369. SPI_5_CTRL_ADDR : begin
  370. Spi5CtrlReg_o <= Data_i;
  371. end
  372. SPI_5_CLK_ADDR : begin
  373. Spi5ClkReg_o <= Data_i;
  374. end
  375. SPI_5_CS_DELAY_ADDR : begin
  376. Spi5CsDelayReg_o <= Data_i;
  377. end
  378. SPI_5_CS_CTRL_ADDR : begin
  379. Spi5CsCtrlReg_o <= Data_i;
  380. end
  381. SPI_5_TX_FIFO_CTRL_ADDR_LSB : begin
  382. Spi5TxFifoCtrlReg_o <= Data_i;
  383. end
  384. SPI_5_RX_FIFO_CTRL_ADDR_LSB : begin
  385. Spi5RxFifoCtrlReg_o <= Data_i;
  386. end
  387. SPI_6_CTRL_ADDR : begin
  388. Spi6CtrlReg_o <= Data_i;
  389. end
  390. SPI_6_CLK_ADDR : begin
  391. Spi6ClkReg_o <= Data_i;
  392. end
  393. SPI_6_CS_DELAY_ADDR : begin
  394. Spi6CsDelayReg_o <= Data_i;
  395. end
  396. SPI_6_CS_CTRL_ADDR : begin
  397. Spi6CsCtrlReg_o <= Data_i;
  398. end
  399. SPI_6_TX_FIFO_CTRL_ADDR_LSB : begin
  400. Spi6TxFifoCtrlReg_o <= Data_i;
  401. end
  402. SPI_6_RX_FIFO_CTRL_ADDR_LSB : begin
  403. Spi6RxFifoCtrlReg_o <= Data_i;
  404. end
  405. SPI_TX_RX_EN : begin
  406. spiTxRxEnReg <= Data_i;
  407. end
  408. SPI_TX_RX_EN_SET : begin
  409. spiTxRxEnReg <= spiTxRxEnReg | Data_i;
  410. end
  411. SPI_TX_RX_EN_CLR : begin
  412. spiTxRxEnReg <= (spiTxRxEnReg) & (~Data_i);
  413. end
  414. LD_MASK_ADDR : begin
  415. LdMaskReg_o <= Data_i;
  416. end
  417. GPIO_CTRL_ADDR : begin
  418. GPIOAReg <= Data_i;
  419. end
  420. GPIO_CTRL_ADDR_S : begin
  421. GPIOARegS <= Data_i;
  422. end
  423. endcase
  424. end
  425. 1 : begin
  426. case (Addr_i)
  427. SPI_0_CTRL_ADDR : begin
  428. Spi0CtrlReg_o[15:8] <= Data_i[15:8];
  429. end
  430. SPI_0_CLK_ADDR : begin
  431. Spi0ClkReg_o[15:8] <= Data_i[15:8];
  432. end
  433. SPI_0_CS_DELAY_ADDR : begin
  434. Spi0CsDelayReg_o[15:8] <= Data_i[15:8];
  435. end
  436. SPI_0_CS_CTRL_ADDR : begin
  437. Spi0CsCtrlReg_o[15:8] <= Data_i[15:8];
  438. end
  439. SPI_0_TX_FIFO_CTRL_ADDR_LSB : begin
  440. Spi0TxFifoCtrlReg_o[15:8] <= Data_i[15:8];
  441. end
  442. SPI_0_RX_FIFO_CTRL_ADDR_LSB : begin
  443. Spi0RxFifoCtrlReg_o[15:8] <= Data_i[15:8];
  444. end
  445. SPI_1_CTRL_ADDR : begin
  446. Spi1CtrlReg_o[15:8] <= Data_i[15:8];
  447. end
  448. SPI_1_CLK_ADDR : begin
  449. Spi1ClkReg_o[15:8] <= Data_i[15:8];
  450. end
  451. SPI_1_CS_DELAY_ADDR : begin
  452. Spi1CsDelayReg_o[15:8] <= Data_i[15:8];
  453. end
  454. SPI_1_CS_CTRL_ADDR : begin
  455. Spi1CsCtrlReg_o[15:8] <= Data_i[15:8];
  456. end
  457. SPI_1_TX_FIFO_CTRL_ADDR_LSB : begin
  458. Spi1TxFifoCtrlReg_o[15:8] <= Data_i[15:8];
  459. end
  460. SPI_1_RX_FIFO_CTRL_ADDR_LSB : begin
  461. Spi1RxFifoCtrlReg_o[15:8] <= Data_i[15:8];
  462. end
  463. SPI_2_CTRL_ADDR : begin
  464. Spi2CtrlReg_o[15:8] <= Data_i[15:8];
  465. end
  466. SPI_2_CLK_ADDR : begin
  467. Spi2ClkReg_o[15:8] <= Data_i[15:8];
  468. end
  469. SPI_2_CS_DELAY_ADDR : begin
  470. Spi2CsDelayReg_o[15:8] <= Data_i[15:8];
  471. end
  472. SPI_2_CS_CTRL_ADDR : begin
  473. Spi2CsCtrlReg_o[15:8] <= Data_i[15:8];
  474. end
  475. SPI_2_TX_FIFO_CTRL_ADDR_LSB : begin
  476. Spi2TxFifoCtrlReg_o[15:8] <= Data_i[15:8];
  477. end
  478. SPI_2_RX_FIFO_CTRL_ADDR_LSB : begin
  479. Spi2RxFifoCtrlReg_o[15:8] <= Data_i[15:8];
  480. end
  481. SPI_3_CTRL_ADDR : begin
  482. Spi3CtrlReg_o[15:8] <= Data_i[15:8];
  483. end
  484. SPI_3_CLK_ADDR : begin
  485. Spi3ClkReg_o[15:8] <= Data_i[15:8];
  486. end
  487. SPI_3_CS_DELAY_ADDR : begin
  488. Spi3CsDelayReg_o[15:8] <= Data_i[15:8];
  489. end
  490. SPI_3_CS_CTRL_ADDR : begin
  491. Spi3CsCtrlReg_o[15:8] <= Data_i[15:8];
  492. end
  493. SPI_3_TX_FIFO_CTRL_ADDR_LSB : begin
  494. Spi3TxFifoCtrlReg_o[15:8] <= Data_i[15:8];
  495. end
  496. SPI_3_RX_FIFO_CTRL_ADDR_LSB : begin
  497. Spi3RxFifoCtrlReg_o[15:8] <= Data_i[15:8];
  498. end
  499. SPI_4_CTRL_ADDR : begin
  500. Spi4CtrlReg_o[15:8] <= Data_i[15:8];
  501. end
  502. SPI_4_CLK_ADDR : begin
  503. Spi4ClkReg_o[15:8] <= Data_i[15:8];
  504. end
  505. SPI_4_CS_DELAY_ADDR : begin
  506. Spi4CsDelayReg_o[15:8] <= Data_i[15:8];
  507. end
  508. SPI_4_CS_CTRL_ADDR : begin
  509. Spi4CsCtrlReg_o[15:8] <= Data_i[15:8];
  510. end
  511. SPI_4_TX_FIFO_CTRL_ADDR_LSB : begin
  512. Spi4TxFifoCtrlReg_o[15:8] <= Data_i[15:8];
  513. end
  514. SPI_4_RX_FIFO_CTRL_ADDR_LSB : begin
  515. Spi4RxFifoCtrlReg_o[15:8] <= Data_i[15:8];
  516. end
  517. SPI_5_CTRL_ADDR : begin
  518. Spi5CtrlReg_o[15:8] <= Data_i[15:8];
  519. end
  520. SPI_5_CLK_ADDR : begin
  521. Spi5ClkReg_o[15:8] <= Data_i[15:8];
  522. end
  523. SPI_5_CS_DELAY_ADDR : begin
  524. Spi5CsDelayReg_o[15:8] <= Data_i[15:8];
  525. end
  526. SPI_5_CS_CTRL_ADDR : begin
  527. Spi5CsCtrlReg_o[15:8] <= Data_i[15:8];
  528. end
  529. SPI_5_TX_FIFO_CTRL_ADDR_LSB : begin
  530. Spi5TxFifoCtrlReg_o[15:8] <= Data_i[15:8];
  531. end
  532. SPI_5_RX_FIFO_CTRL_ADDR_LSB : begin
  533. Spi5RxFifoCtrlReg_o[15:8] <= Data_i[15:8];
  534. end
  535. SPI_6_CTRL_ADDR : begin
  536. Spi6CtrlReg_o[15:8] <= Data_i[15:8];
  537. end
  538. SPI_6_CLK_ADDR : begin
  539. Spi6ClkReg_o[15:8] <= Data_i[15:8];
  540. end
  541. SPI_6_CS_DELAY_ADDR : begin
  542. Spi6CsDelayReg_o[15:8] <= Data_i[15:8];
  543. end
  544. SPI_6_CS_CTRL_ADDR : begin
  545. Spi6CsCtrlReg_o[15:8] <= Data_i[15:8];
  546. end
  547. SPI_6_TX_FIFO_CTRL_ADDR_LSB : begin
  548. Spi6TxFifoCtrlReg_o[15:8] <= Data_i[15:8];
  549. end
  550. SPI_6_RX_FIFO_CTRL_ADDR_LSB : begin
  551. Spi6RxFifoCtrlReg_o[15:8] <= Data_i[15:8];
  552. end
  553. SPI_TX_RX_EN : begin
  554. spiTxRxEnReg[15:8] <= Data_i[15:8];
  555. end
  556. SPI_TX_RX_EN_SET : begin
  557. spiTxRxEnReg[15:8] <= spiTxRxEnReg[15:8] | Data_i[15:8];
  558. end
  559. SPI_TX_RX_EN_CLR : begin
  560. spiTxRxEnReg[15:8] <= (spiTxRxEnReg[15:8]) & (~Data_i[15:8]);
  561. end
  562. LD_MASK_ADDR : begin
  563. LdMaskReg_o[15:8] <= Data_i[15:8];
  564. end
  565. GPIO_CTRL_ADDR : begin
  566. GPIOAReg[15:8] <= Data_i[15:8];
  567. end
  568. GPIO_CTRL_ADDR_S : begin
  569. GPIOARegS[15:8] <= Data_i[15:8];
  570. end
  571. endcase
  572. end
  573. 2 : begin
  574. case (Addr_i)
  575. SPI_0_CTRL_ADDR : begin
  576. Spi0CtrlReg_o[7:0] <= Data_i[7:0];
  577. end
  578. SPI_0_CLK_ADDR : begin
  579. Spi0ClkReg_o[7:0] <= Data_i[7:0];
  580. end
  581. SPI_0_CS_DELAY_ADDR : begin
  582. Spi0CsDelayReg_o[7:0] <= Data_i[7:0];
  583. end
  584. SPI_0_CS_CTRL_ADDR : begin
  585. Spi0CsCtrlReg_o[7:0] <= Data_i[7:0];
  586. end
  587. SPI_0_TX_FIFO_CTRL_ADDR_LSB : begin
  588. Spi0TxFifoCtrlReg_o[7:0] <= Data_i[7:0];
  589. end
  590. SPI_0_RX_FIFO_CTRL_ADDR_LSB : begin
  591. Spi0RxFifoCtrlReg_o[7:0] <= Data_i[7:0];
  592. end
  593. SPI_1_CTRL_ADDR : begin
  594. Spi1CtrlReg_o[7:0] <= Data_i[7:0];
  595. end
  596. SPI_1_CLK_ADDR : begin
  597. Spi1ClkReg_o[7:0] <= Data_i[7:0];
  598. end
  599. SPI_1_CS_DELAY_ADDR : begin
  600. Spi1CsDelayReg_o[7:0] <= Data_i[7:0];
  601. end
  602. SPI_1_CS_CTRL_ADDR : begin
  603. Spi1CsCtrlReg_o[7:0] <= Data_i[7:0];
  604. end
  605. SPI_1_TX_FIFO_CTRL_ADDR_LSB : begin
  606. Spi1TxFifoCtrlReg_o[7:0] <= Data_i[7:0];
  607. end
  608. SPI_1_RX_FIFO_CTRL_ADDR_LSB : begin
  609. Spi1RxFifoCtrlReg_o[7:0] <= Data_i[7:0];
  610. end
  611. SPI_2_CTRL_ADDR : begin
  612. Spi2CtrlReg_o[7:0] <= Data_i[7:0];
  613. end
  614. SPI_2_CLK_ADDR : begin
  615. Spi2ClkReg_o[7:0] <= Data_i[7:0];
  616. end
  617. SPI_2_CS_DELAY_ADDR : begin
  618. Spi2CsDelayReg_o[7:0] <= Data_i[7:0];
  619. end
  620. SPI_2_CS_CTRL_ADDR : begin
  621. Spi2CsCtrlReg_o[7:0] <= Data_i[7:0];
  622. end
  623. SPI_2_TX_FIFO_CTRL_ADDR_LSB : begin
  624. Spi2TxFifoCtrlReg_o[7:0] <= Data_i[7:0];
  625. end
  626. SPI_2_RX_FIFO_CTRL_ADDR_LSB : begin
  627. Spi2RxFifoCtrlReg_o[7:0] <= Data_i[7:0];
  628. end
  629. SPI_3_CTRL_ADDR : begin
  630. Spi3CtrlReg_o[7:0] <= Data_i[7:0];
  631. end
  632. SPI_3_CLK_ADDR : begin
  633. Spi3ClkReg_o[7:0] <= Data_i[7:0];
  634. end
  635. SPI_3_CS_DELAY_ADDR : begin
  636. Spi3CsDelayReg_o[7:0] <= Data_i[7:0];
  637. end
  638. SPI_3_CS_CTRL_ADDR : begin
  639. Spi3CsCtrlReg_o[7:0] <= Data_i[7:0];
  640. end
  641. SPI_3_TX_FIFO_CTRL_ADDR_LSB : begin
  642. Spi3TxFifoCtrlReg_o[7:0] <= Data_i[7:0];
  643. end
  644. SPI_3_RX_FIFO_CTRL_ADDR_LSB : begin
  645. Spi3RxFifoCtrlReg_o[7:0] <= Data_i[7:0];
  646. end
  647. SPI_4_CTRL_ADDR : begin
  648. Spi4CtrlReg_o[7:0] <= Data_i[7:0];
  649. end
  650. SPI_4_CLK_ADDR : begin
  651. Spi4ClkReg_o[7:0] <= Data_i[7:0];
  652. end
  653. SPI_4_CS_DELAY_ADDR : begin
  654. Spi4CsDelayReg_o[7:0] <= Data_i[7:0];
  655. end
  656. SPI_4_CS_CTRL_ADDR : begin
  657. Spi4CsCtrlReg_o[7:0] <= Data_i[7:0];
  658. end
  659. SPI_4_TX_FIFO_CTRL_ADDR_LSB : begin
  660. Spi4TxFifoCtrlReg_o[7:0] <= Data_i[7:0];
  661. end
  662. SPI_4_RX_FIFO_CTRL_ADDR_LSB : begin
  663. Spi4RxFifoCtrlReg_o[7:0] <= Data_i[7:0];
  664. end
  665. SPI_5_CTRL_ADDR : begin
  666. Spi5CtrlReg_o[7:0] <= Data_i[7:0];
  667. end
  668. SPI_5_CLK_ADDR : begin
  669. Spi5ClkReg_o[7:0] <= Data_i[7:0];
  670. end
  671. SPI_5_CS_DELAY_ADDR : begin
  672. Spi5CsDelayReg_o[7:0] <= Data_i[7:0];
  673. end
  674. SPI_5_CS_CTRL_ADDR : begin
  675. Spi5CsCtrlReg_o[7:0] <= Data_i[7:0];
  676. end
  677. SPI_5_TX_FIFO_CTRL_ADDR_LSB : begin
  678. Spi5TxFifoCtrlReg_o[7:0] <= Data_i[7:0];
  679. end
  680. SPI_5_RX_FIFO_CTRL_ADDR_LSB : begin
  681. Spi5RxFifoCtrlReg_o[7:0] <= Data_i[7:0];
  682. end
  683. SPI_6_CTRL_ADDR : begin
  684. Spi6CtrlReg_o[7:0] <= Data_i[7:0];
  685. end
  686. SPI_6_CLK_ADDR : begin
  687. Spi6ClkReg_o[7:0] <= Data_i[7:0];
  688. end
  689. SPI_6_CS_DELAY_ADDR : begin
  690. Spi6CsDelayReg_o[7:0] <= Data_i[7:0];
  691. end
  692. SPI_6_CS_CTRL_ADDR : begin
  693. Spi6CsCtrlReg_o[7:0] <= Data_i[7:0];
  694. end
  695. SPI_6_TX_FIFO_CTRL_ADDR_LSB : begin
  696. Spi6TxFifoCtrlReg_o[7:0] <= Data_i[7:0];
  697. end
  698. SPI_6_RX_FIFO_CTRL_ADDR_LSB : begin
  699. Spi6RxFifoCtrlReg_o[7:0] <= Data_i[7:0];
  700. end
  701. SPI_TX_RX_EN : begin
  702. spiTxRxEnReg[7:0] <= Data_i[7:0];
  703. end
  704. SPI_TX_RX_EN_SET : begin
  705. spiTxRxEnReg[7:0] <= spiTxRxEnReg[7:0] | Data_i[7:0];
  706. end
  707. SPI_TX_RX_EN_CLR : begin
  708. spiTxRxEnReg[7:0] <= (spiTxRxEnReg[7:0]) & (~Data_i[7:0]);
  709. end
  710. LD_MASK_ADDR : begin
  711. LdMaskReg_o[7:0] <= Data_i[7:0];
  712. end
  713. GPIO_CTRL_ADDR : begin
  714. GPIOAReg[7:0] <= Data_i[7:0];
  715. end
  716. GPIO_CTRL_ADDR_S : begin
  717. GPIOARegS[7:0] <= Data_i[7:0];
  718. end
  719. endcase
  720. end
  721. endcase
  722. end
  723. end
  724. end
  725. always @(*) begin
  726. if (Rst_i) begin
  727. ansReg = 0;
  728. end else begin
  729. case (Addr_i)
  730. SPI_0_CTRL_ADDR : begin
  731. ansReg = Spi0CtrlReg_o;
  732. end
  733. SPI_0_CLK_ADDR : begin
  734. ansReg = Spi0ClkReg_o;
  735. end
  736. SPI_0_CS_DELAY_ADDR : begin
  737. ansReg = Spi0CsDelayReg_o;
  738. end
  739. SPI_0_CS_CTRL_ADDR : begin
  740. ansReg = Spi0CsCtrlReg_o;
  741. end
  742. SPI_0_TX_FIFO_CTRL_ADDR_LSB : begin
  743. ansReg = TxFifoCtrlReg0_i[15:0];
  744. end
  745. SPI_0_TX_FIFO_CTRL_ADDR_MSB : begin
  746. ansReg = TxFifoCtrlReg0_i[31:16];
  747. end
  748. SPI_0_RX_FIFO_CTRL_ADDR_LSB : begin
  749. ansReg = RxFifoCtrlReg0_i[15:0];
  750. end
  751. SPI_0_RX_FIFO_CTRL_ADDR_MSB : begin
  752. ansReg = RxFifoCtrlReg0_i[31:16];
  753. end
  754. SPI_1_CTRL_ADDR : begin
  755. ansReg = Spi1CtrlReg_o;
  756. end
  757. SPI_1_CLK_ADDR : begin
  758. ansReg = Spi1ClkReg_o;
  759. end
  760. SPI_1_CS_DELAY_ADDR : begin
  761. ansReg = Spi1CsDelayReg_o;
  762. end
  763. SPI_1_CS_CTRL_ADDR : begin
  764. ansReg = Spi1CsCtrlReg_o;
  765. end
  766. SPI_1_TX_FIFO_CTRL_ADDR_LSB : begin
  767. ansReg = TxFifoCtrlReg1_i[15:0];
  768. end
  769. SPI_1_TX_FIFO_CTRL_ADDR_MSB : begin
  770. ansReg = TxFifoCtrlReg1_i[31:16];
  771. end
  772. SPI_1_RX_FIFO_CTRL_ADDR_LSB : begin
  773. ansReg = RxFifoCtrlReg1_i[15:0];
  774. end
  775. SPI_1_RX_FIFO_CTRL_ADDR_MSB : begin
  776. ansReg = RxFifoCtrlReg1_i[31:16];
  777. end
  778. SPI_2_CTRL_ADDR : begin
  779. ansReg = Spi2CtrlReg_o;
  780. end
  781. SPI_2_CLK_ADDR : begin
  782. ansReg = Spi2ClkReg_o;
  783. end
  784. SPI_2_CS_DELAY_ADDR : begin
  785. ansReg = Spi2CsDelayReg_o;
  786. end
  787. SPI_2_CS_CTRL_ADDR : begin
  788. ansReg = Spi2CsCtrlReg_o;
  789. end
  790. SPI_2_TX_FIFO_CTRL_ADDR_LSB : begin
  791. ansReg = TxFifoCtrlReg2_i[15:0];
  792. end
  793. SPI_2_TX_FIFO_CTRL_ADDR_MSB : begin
  794. ansReg = TxFifoCtrlReg2_i[31:16];
  795. end
  796. SPI_2_RX_FIFO_CTRL_ADDR_LSB : begin
  797. ansReg = RxFifoCtrlReg2_i[15:0];
  798. end
  799. SPI_2_RX_FIFO_CTRL_ADDR_MSB : begin
  800. ansReg = RxFifoCtrlReg2_i[31:16];
  801. end
  802. SPI_3_CTRL_ADDR : begin
  803. ansReg = Spi3CtrlReg_o;
  804. end
  805. SPI_3_CLK_ADDR : begin
  806. ansReg = Spi3ClkReg_o;
  807. end
  808. SPI_3_CS_DELAY_ADDR : begin
  809. ansReg = Spi3CsDelayReg_o;
  810. end
  811. SPI_3_CS_CTRL_ADDR : begin
  812. ansReg = Spi3CsCtrlReg_o;
  813. end
  814. SPI_3_TX_FIFO_CTRL_ADDR_LSB : begin
  815. ansReg = TxFifoCtrlReg3_i[15:0];
  816. end
  817. SPI_3_TX_FIFO_CTRL_ADDR_MSB : begin
  818. ansReg = TxFifoCtrlReg3_i[31:16];
  819. end
  820. SPI_3_RX_FIFO_CTRL_ADDR_LSB : begin
  821. ansReg = RxFifoCtrlReg3_i[15:0];
  822. end
  823. SPI_3_RX_FIFO_CTRL_ADDR_MSB : begin
  824. ansReg = RxFifoCtrlReg3_i[31:16];
  825. end
  826. SPI_4_CTRL_ADDR : begin
  827. ansReg = Spi4CtrlReg_o;
  828. end
  829. SPI_4_CLK_ADDR : begin
  830. ansReg = Spi4ClkReg_o;
  831. end
  832. SPI_4_CS_DELAY_ADDR : begin
  833. ansReg = Spi4CsDelayReg_o;
  834. end
  835. SPI_4_CS_CTRL_ADDR : begin
  836. ansReg = Spi4CsCtrlReg_o;
  837. end
  838. SPI_4_TX_FIFO_CTRL_ADDR_LSB : begin
  839. ansReg = TxFifoCtrlReg4_i[15:0];
  840. end
  841. SPI_4_TX_FIFO_CTRL_ADDR_MSB : begin
  842. ansReg = TxFifoCtrlReg4_i[31:16];
  843. end
  844. SPI_4_RX_FIFO_CTRL_ADDR_LSB : begin
  845. ansReg = RxFifoCtrlReg4_i[15:0];
  846. end
  847. SPI_4_RX_FIFO_CTRL_ADDR_MSB : begin
  848. ansReg = RxFifoCtrlReg4_i[31:16];
  849. end
  850. SPI_5_CTRL_ADDR : begin
  851. ansReg = Spi5CtrlReg_o;
  852. end
  853. SPI_5_CLK_ADDR : begin
  854. ansReg = Spi5ClkReg_o;
  855. end
  856. SPI_5_CS_DELAY_ADDR : begin
  857. ansReg = Spi5CsDelayReg_o;
  858. end
  859. SPI_5_CS_CTRL_ADDR : begin
  860. ansReg = Spi5CsCtrlReg_o;
  861. end
  862. SPI_5_TX_FIFO_CTRL_ADDR_LSB : begin
  863. ansReg = TxFifoCtrlReg5_i[15:0];
  864. end
  865. SPI_5_TX_FIFO_CTRL_ADDR_MSB : begin
  866. ansReg = TxFifoCtrlReg5_i[31:16];
  867. end
  868. SPI_5_RX_FIFO_CTRL_ADDR_LSB : begin
  869. ansReg = RxFifoCtrlReg5_i[15:0];
  870. end
  871. SPI_5_RX_FIFO_CTRL_ADDR_MSB : begin
  872. ansReg = RxFifoCtrlReg5_i[31:16];
  873. end
  874. SPI_6_CTRL_ADDR : begin
  875. ansReg = Spi6CtrlReg_o;
  876. end
  877. SPI_6_CLK_ADDR : begin
  878. ansReg = Spi6ClkReg_o;
  879. end
  880. SPI_6_CS_DELAY_ADDR : begin
  881. ansReg = Spi6CsDelayReg_o;
  882. end
  883. SPI_6_CS_CTRL_ADDR : begin
  884. ansReg = Spi6CsCtrlReg_o;
  885. end
  886. SPI_6_TX_FIFO_CTRL_ADDR_LSB : begin
  887. ansReg = TxFifoCtrlReg6_i[15:0];
  888. end
  889. SPI_6_TX_FIFO_CTRL_ADDR_MSB : begin
  890. ansReg = TxFifoCtrlReg6_i[31:16];
  891. end
  892. SPI_6_RX_FIFO_CTRL_ADDR_LSB : begin
  893. ansReg = RxFifoCtrlReg6_i[15:0];
  894. end
  895. SPI_6_RX_FIFO_CTRL_ADDR_MSB : begin
  896. ansReg = RxFifoCtrlReg6_i[31:16];
  897. end
  898. SPI_TX_RX_EN : begin
  899. ansReg = spiTxRxEnReg;
  900. end
  901. SPI_TX_RX_EN_SET : begin
  902. ansReg = SpiTxRxEnSetReg_o;
  903. end
  904. SPI_TX_RX_EN_CLR : begin
  905. ansReg = SpiTxRxEnClrReg_o;
  906. end
  907. LD_MASK_ADDR : begin
  908. ansReg = LdMaskReg_o;
  909. end
  910. LD_REG_ADDR : begin
  911. ansReg = {9'd0,LdReg_i};
  912. end
  913. SPI_TX_RX_FLAGS : begin
  914. ansReg = {1'h0, RxFifoCtrlReg6_i[2], RxFifoCtrlReg5_i[2], RxFifoCtrlReg4_i[2], RxFifoCtrlReg3_i[2], RxFifoCtrlReg2_i[2], RxFifoCtrlReg1_i[2], RxFifoCtrlReg0_i[2], 1'h0, TxFifoCtrlReg6_i[2], TxFifoCtrlReg5_i[2], TxFifoCtrlReg4_i[2], TxFifoCtrlReg3_i[2], TxFifoCtrlReg2_i[2], TxFifoCtrlReg1_i[2], TxFifoCtrlReg0_i[2]};
  915. end
  916. GPIO_CTRL_ADDR : begin
  917. ansReg = GPIOAReg;
  918. end
  919. GPIO_CTRL_ADDR_S : begin
  920. ansReg = {9'd0,LdReg_i};
  921. end
  922. default : begin
  923. ansReg = 0;
  924. end
  925. endcase
  926. end
  927. end
  928. endmodule