axi_tdl 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1189) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +8 -0
  3. data/CODE_OF_CONDUCT.md +74 -0
  4. data/Gemfile +6 -0
  5. data/Gemfile.lock +43 -0
  6. data/LICENSE +504 -0
  7. data/README.md +311 -0
  8. data/Rakefile +18 -0
  9. data/axi_tdl.gemspec +43 -0
  10. data/bin/console +14 -0
  11. data/bin/setup +8 -0
  12. data/lib/.rspec +1 -0
  13. data/lib/axi/AXI4/axi4_combin_wr_rd_batch.sv +59 -0
  14. data/lib/axi/AXI4/axi4_direct.sv +137 -0
  15. data/lib/axi/AXI4/axi4_direct_A1.sv +229 -0
  16. data/lib/axi/AXI4/axi4_direct_B1.sv +74 -0
  17. data/lib/axi/AXI4/axi4_direct_verb.sv +79 -0
  18. data/lib/axi/AXI4/axi4_direct_verc.sv +146 -0
  19. data/lib/axi/AXI4/axi4_dpram_cache.rb +106 -0
  20. data/lib/axi/AXI4/axi4_dpram_cache.sv +112 -0
  21. data/lib/axi/AXI4/axi4_long_to_axi4_wide.sv +85 -0
  22. data/lib/axi/AXI4/axi4_long_to_axi4_wide_A1.sv +96 -0
  23. data/lib/axi/AXI4/axi4_long_to_axi4_wide_track.sv +118 -0
  24. data/lib/axi/AXI4/axi4_long_to_axi4_wide_verb.sv +131 -0
  25. data/lib/axi/AXI4/axi4_pipe/axi4_pipe.sv +44 -0
  26. data/lib/axi/AXI4/axi4_pipe/axi4_pipe_verb.sv +45 -0
  27. data/lib/axi/AXI4/axi4_pipe/axi4_rd_pipe.sv +111 -0
  28. data/lib/axi/AXI4/axi4_pipe/axi4_rd_pipe_verb.sv +113 -0
  29. data/lib/axi/AXI4/axi4_pipe/axi4_wr_pipe.sv +142 -0
  30. data/lib/axi/AXI4/axi4_pipe/axi4_wr_pipe_verb.sv +146 -0
  31. data/lib/axi/AXI4/axi4_rd_auxiliary_batch_gen.sv +134 -0
  32. data/lib/axi/AXI4/axi4_rd_auxiliary_gen.sv +89 -0
  33. data/lib/axi/AXI4/axi4_rd_auxiliary_gen_A1.sv +109 -0
  34. data/lib/axi/AXI4/axi4_rd_burst_track.sv +164 -0
  35. data/lib/axi/AXI4/axi4_wr_aux_bind_data.sv +121 -0
  36. data/lib/axi/AXI4/axi4_wr_auxiliary_batch_gen.sv +140 -0
  37. data/lib/axi/AXI4/axi4_wr_auxiliary_gen.sv +102 -0
  38. data/lib/axi/AXI4/axi4_wr_auxiliary_gen_without_resp.sv +91 -0
  39. data/lib/axi/AXI4/axi4_wr_burst_track.sv +146 -0
  40. data/lib/axi/AXI4/axi_stream_add_addr_len.sv +50 -0
  41. data/lib/axi/AXI4/axi_stream_to_axi4_wr.sv +61 -0
  42. data/lib/axi/AXI4/axi_stream_to_axi4_wr_verb.sv.bak +123 -0
  43. data/lib/axi/AXI4/axis_to_axi4_wr.rb +149 -0
  44. data/lib/axi/AXI4/axis_to_axi4_wr.sv +141 -0
  45. data/lib/axi/AXI4/full_axi4_to_axis.sv +188 -0
  46. data/lib/axi/AXI4/full_axi4_to_axis_partition_wr_rd.sv +208 -0
  47. data/lib/axi/AXI4/id_record.sv +55 -0
  48. data/lib/axi/AXI4/idata_pool_axi4.sv +110 -0
  49. data/lib/axi/AXI4/interconnect/AXI4_interconnect_M2S.sv +291 -0
  50. data/lib/axi/AXI4/interconnect/axi4_mix_interconnect_M2S.sv +72 -0
  51. data/lib/axi/AXI4/interconnect/axi4_rd_interconnect_M2S.sv +148 -0
  52. data/lib/axi/AXI4/interconnect/axi4_rd_mix_interconnect_M2S.sv +255 -0
  53. data/lib/axi/AXI4/interconnect/axi4_rd_mix_interconnect_M2S.sv.bak +255 -0
  54. data/lib/axi/AXI4/interconnect/axi4_rd_mix_interconnect_M2S_A1.sv +286 -0
  55. data/lib/axi/AXI4/interconnect/axi4_rd_mix_interconnect_M2S_A2.sv +281 -0
  56. data/lib/axi/AXI4/interconnect/axi4_wr_interconnect_M2S.sv +235 -0
  57. data/lib/axi/AXI4/interconnect/axi4_wr_interconnect_M2S_A1.sv +283 -0
  58. data/lib/axi/AXI4/interconnect/axi4_wr_mix_interconnect_M2S.sv +32 -0
  59. data/lib/axi/AXI4/long_axi4_to_wide_axi4.sv.bak +251 -0
  60. data/lib/axi/AXI4/odata_pool_axi4.sv +134 -0
  61. data/lib/axi/AXI4/odata_pool_axi4_A1.sv +165 -0
  62. data/lib/axi/AXI4/odata_pool_axi4_A2.sv +159 -0
  63. data/lib/axi/AXI4/odata_pool_axi4_A3.sv +183 -0
  64. data/lib/axi/AXI4/packet_fifo/axi4_packet_fifo.sv +61 -0
  65. data/lib/axi/AXI4/packet_fifo/axi4_rd_packet_fifo.sv +282 -0
  66. data/lib/axi/AXI4/packet_fifo/axi4_wr_packet_fifo.sv +181 -0
  67. data/lib/axi/AXI4/packet_merge/axi4_merge.sv +60 -0
  68. data/lib/axi/AXI4/packet_merge/axi4_merge_rd.sv +279 -0
  69. data/lib/axi/AXI4/packet_merge/axi4_merge_wr.sv +267 -0
  70. data/lib/axi/AXI4/packet_partition/axi4_partition.sv +36 -0
  71. data/lib/axi/AXI4/packet_partition/axi4_partition_OD.sv +66 -0
  72. data/lib/axi/AXI4/packet_partition/axi4_partition_rd.sv +211 -0
  73. data/lib/axi/AXI4/packet_partition/axi4_partition_rd_OD.sv +322 -0
  74. data/lib/axi/AXI4/packet_partition/axi4_partition_rd_verb.rb +80 -0
  75. data/lib/axi/AXI4/packet_partition/axi4_partition_rd_verb.sv +93 -0
  76. data/lib/axi/AXI4/packet_partition/axi4_partition_wr.sv +239 -0
  77. data/lib/axi/AXI4/packet_partition/axi4_partition_wr_OD.sv +302 -0
  78. data/lib/axi/AXI4/packet_partition/data_inf_partition.rb +293 -0
  79. data/lib/axi/AXI4/packet_partition/data_inf_partition.sv +307 -0
  80. data/lib/axi/AXI4/vcs_axi4_array_comptable.sv +35 -0
  81. data/lib/axi/AXI4/vcs_axi4_comptable.sv +330 -0
  82. data/lib/axi/AXI4/wide_axis_to_axi4_wr.rb +149 -0
  83. data/lib/axi/AXI4/wide_axis_to_axi4_wr.sv +140 -0
  84. data/lib/axi/AXI4/width_convert/axi4_data_combin_aflag_pipe.sv +239 -0
  85. data/lib/axi/AXI4/width_convert/axi4_data_combin_aflag_pipe_A1.sv +204 -0
  86. data/lib/axi/AXI4/width_convert/axi4_data_convert.sv +312 -0
  87. data/lib/axi/AXI4/width_convert/axi4_data_convert_A1.sv +217 -0
  88. data/lib/axi/AXI4/width_convert/data_combin.sv +366 -0
  89. data/lib/axi/AXI4/width_convert/data_combin.sv.bak +290 -0
  90. data/lib/axi/AXI4/width_convert/data_destruct.sv +304 -0
  91. data/lib/axi/AXI4/width_convert/feed_check.sv +94 -0
  92. data/lib/axi/AXI4/width_convert/len_convert.sv.bak +61 -0
  93. data/lib/axi/AXI4/width_convert/odd_width_convert.sv +229 -0
  94. data/lib/axi/AXI4/width_convert/odd_width_convert_verb.sv +105 -0
  95. data/lib/axi/AXI4/width_convert/simple_data_pipe.sv +40 -0
  96. data/lib/axi/AXI4/width_convert/simple_data_pipe_slaver.sv +33 -0
  97. data/lib/axi/AXI4/width_convert/width_combin.sv +113 -0
  98. data/lib/axi/AXI4/width_convert/width_convert.sv +87 -0
  99. data/lib/axi/AXI4/width_convert/width_convert_verb.sv +249 -0
  100. data/lib/axi/AXI4/width_convert/width_destruct.sv +206 -0
  101. data/lib/axi/AXI4/width_convert/width_destruct_A1.sv +251 -0
  102. data/lib/axi/AXI_BFM/AXI_BFM_PKG.sv +1039 -0
  103. data/lib/axi/AXI_BFM/Data_C_BFM_PKG.sv +97 -0
  104. data/lib/axi/AXI_BFM/axi4_error_chk.sv +298 -0
  105. data/lib/axi/AXI_BFM/axi4_illegal_bfm_pkg.sv +607 -0
  106. data/lib/axi/AXI_BFM/axi_lite_master.sv +102 -0
  107. data/lib/axi/AXI_BFM/axi_lite_tb.sv +23 -0
  108. data/lib/axi/AXI_BFM/axi_master.sv +185 -0
  109. data/lib/axi/AXI_BFM/axi_mirror.sv +266 -0
  110. data/lib/axi/AXI_BFM/axi_mm_tb.sv +134 -0
  111. data/lib/axi/AXI_BFM/axi_slaver.sv.bak +340 -0
  112. data/lib/axi/AXI_BFM/axistreambfm.sv +117 -0
  113. data/lib/axi/AXI_Lite/axi4_to_lite.sv +36 -0
  114. data/lib/axi/AXI_Lite/axi_lite_configure.sv +356 -0
  115. data/lib/axi/AXI_Lite/axi_lite_configure_inf2.sv +365 -0
  116. data/lib/axi/AXI_Lite/axi_lite_configure_verb.sv.bck +370 -0
  117. data/lib/axi/AXI_Lite/axi_lite_interconnect_M2S.sv +437 -0
  118. data/lib/axi/AXI_Lite/axi_lite_interconnect_S2M.sv +359 -0
  119. data/lib/axi/AXI_Lite/axi_lite_interconnect_S2M.sv.bak +359 -0
  120. data/lib/axi/AXI_Lite/axi_lite_master_empty.sv +30 -0
  121. data/lib/axi/AXI_Lite/axi_lite_slaver_empty.sv +27 -0
  122. data/lib/axi/AXI_Lite/axil_direct.sv +52 -0
  123. data/lib/axi/AXI_Lite/common_configure_reg_interface/common_configure_reg_interface.sv +230 -0
  124. data/lib/axi/AXI_Lite/common_configure_reg_interface/common_configure_reg_interface.sv.bak +109 -0
  125. data/lib/axi/AXI_Lite/common_configure_reg_interface/jtag_to_axilite_wrapper.sv +56 -0
  126. data/lib/axi/AXI_Lite/gen_axi_lite_ctrl.sv +515 -0
  127. data/lib/axi/AXI_Lite/gen_axi_lite_ctrl_C1.sv +369 -0
  128. data/lib/axi/AXI_Lite/gen_axi_lite_ctrl_verb.sv +365 -0
  129. data/lib/axi/AXI_Lite/gen_axi_lite_ctrl_verc.sv +401 -0
  130. data/lib/axi/AXI_Lite/wr_lite_to_axis.sv +141 -0
  131. data/lib/axi/AXI_Lite/wr_lite_to_axis.sv.bak +141 -0
  132. data/lib/axi/AXI_stream/axi_stream_interconnect_M2S.sv +76 -0
  133. data/lib/axi/AXI_stream/axi_stream_interconnect_M2S_A1.sv +77 -0
  134. data/lib/axi/AXI_stream/axi_stream_interconnect_M2S_A2.sv +71 -0
  135. data/lib/axi/AXI_stream/axi_stream_interconnect_M2S_bind_tuser.sv +72 -0
  136. data/lib/axi/AXI_stream/axi_stream_interconnect_M2S_noaddr.sv +151 -0
  137. data/lib/axi/AXI_stream/axi_stream_interconnect_M2S_with_addr.sv +87 -0
  138. data/lib/axi/AXI_stream/axi_stream_interconnect_S2M.sv +65 -0
  139. data/lib/axi/AXI_stream/axi_stream_interconnect_S2M_auto.sv +50 -0
  140. data/lib/axi/AXI_stream/axi_stream_interconnect_S2M_with_info.sv +64 -0
  141. data/lib/axi/AXI_stream/axi_stream_interconnect_S2M_with_keep.sv.bak +64 -0
  142. data/lib/axi/AXI_stream/axi_stream_packet_fifo_with_info.sv.bak +49 -0
  143. data/lib/axi/AXI_stream/axi_stream_partition.sv +147 -0
  144. data/lib/axi/AXI_stream/axi_stream_partition_A1.sv +63 -0
  145. data/lib/axi/AXI_stream/axi_stream_planer.sv +51 -0
  146. data/lib/axi/AXI_stream/axi_stream_split_channel.rb +56 -0
  147. data/lib/axi/AXI_stream/axi_stream_split_channel.sv +149 -0
  148. data/lib/axi/AXI_stream/axi_streams_combin.sv +151 -0
  149. data/lib/axi/AXI_stream/axi_streams_combin_A1.sv +179 -0
  150. data/lib/axi/AXI_stream/axi_streams_scaler.sv +171 -0
  151. data/lib/axi/AXI_stream/axi_streams_scaler_A1.sv +179 -0
  152. data/lib/axi/AXI_stream/axis_append.sv +79 -0
  153. data/lib/axi/AXI_stream/axis_append_A1.sv +82 -0
  154. data/lib/axi/AXI_stream/axis_base_pipe.sv +184 -0
  155. data/lib/axi/AXI_stream/axis_combin_with_fifo.sv +69 -0
  156. data/lib/axi/AXI_stream/axis_connect_pipe.sv +86 -0
  157. data/lib/axi/AXI_stream/axis_connect_pipe_A1.sv.bak +170 -0
  158. data/lib/axi/AXI_stream/axis_connect_pipe_left_shift.sv +64 -0
  159. data/lib/axi/AXI_stream/axis_connect_pipe_right_shift.sv +64 -0
  160. data/lib/axi/AXI_stream/axis_connect_pipe_right_shift_verb.sv +70 -0
  161. data/lib/axi/AXI_stream/axis_connect_pipe_with_info.sv +93 -0
  162. data/lib/axi/AXI_stream/axis_direct.sv +55 -0
  163. data/lib/axi/AXI_stream/axis_direct_A1.sv +81 -0
  164. data/lib/axi/AXI_stream/axis_filter.sv +38 -0
  165. data/lib/axi/AXI_stream/axis_full_to_data_c.sv +26 -0
  166. data/lib/axi/AXI_stream/axis_head_cut.sv +67 -0
  167. data/lib/axi/AXI_stream/axis_head_cut_verb.sv +60 -0
  168. data/lib/axi/AXI_stream/axis_head_cut_verc.rb +175 -0
  169. data/lib/axi/AXI_stream/axis_head_cut_verc.sv +245 -0
  170. data/lib/axi/AXI_stream/axis_inct_s2m_with_flag.sv +84 -0
  171. data/lib/axi/AXI_stream/axis_insert_copy.rb +59 -0
  172. data/lib/axi/AXI_stream/axis_insert_copy.sv +66 -0
  173. data/lib/axi/AXI_stream/axis_intc_M2S_with_addr_inf.sv +114 -0
  174. data/lib/axi/AXI_stream/axis_intc_S2M_with_addr_inf.sv +85 -0
  175. data/lib/axi/AXI_stream/axis_interconnect_S2M_pipe.sv +75 -0
  176. data/lib/axi/AXI_stream/axis_length_cut.sv +64 -0
  177. data/lib/axi/AXI_stream/axis_length_fill.sv +194 -0
  178. data/lib/axi/AXI_stream/axis_length_split.sv +86 -0
  179. data/lib/axi/AXI_stream/axis_length_split_with_addr.sv +127 -0
  180. data/lib/axi/AXI_stream/axis_length_split_writh_user.sv +87 -0
  181. data/lib/axi/AXI_stream/axis_link_trigger.sv +81 -0
  182. data/lib/axi/AXI_stream/axis_master_empty.sv +26 -0
  183. data/lib/axi/AXI_stream/axis_mirror_to_master.sv +126 -0
  184. data/lib/axi/AXI_stream/axis_mirrors.sv +60 -0
  185. data/lib/axi/AXI_stream/axis_orthogonal.sv +66 -0
  186. data/lib/axi/AXI_stream/axis_ram_buffer.sv +118 -0
  187. data/lib/axi/AXI_stream/axis_rom_contect.rb +97 -0
  188. data/lib/axi/AXI_stream/axis_rom_contect.sv +110 -0
  189. data/lib/axi/AXI_stream/axis_rom_contect_sim.rb +102 -0
  190. data/lib/axi/AXI_stream/axis_rom_contect_sim.sv +113 -0
  191. data/lib/axi/AXI_stream/axis_slaver_empty.sv +22 -0
  192. data/lib/axi/AXI_stream/axis_slaver_pipe.sv +84 -0
  193. data/lib/axi/AXI_stream/axis_slaver_pipe_A1.sv +54 -0
  194. data/lib/axi/AXI_stream/axis_slaver_vector_empty.sv +27 -0
  195. data/lib/axi/AXI_stream/axis_split_channel_verb.rb +42 -0
  196. data/lib/axi/AXI_stream/axis_split_channel_verb.sv +62 -0
  197. data/lib/axi/AXI_stream/axis_to_axi4_or_lite.rb +127 -0
  198. data/lib/axi/AXI_stream/axis_to_axi4_or_lite.sv +153 -0
  199. data/lib/axi/AXI_stream/axis_to_data_inf.sv +34 -0
  200. data/lib/axi/AXI_stream/axis_to_lite_rd.sv +81 -0
  201. data/lib/axi/AXI_stream/axis_to_lite_wr.sv +71 -0
  202. data/lib/axi/AXI_stream/axis_uncompress.sv +147 -0
  203. data/lib/axi/AXI_stream/axis_uncompress_A1.sv +150 -0
  204. data/lib/axi/AXI_stream/axis_uncompress_verb.rb +32 -0
  205. data/lib/axi/AXI_stream/axis_uncompress_verb.sv +54 -0
  206. data/lib/axi/AXI_stream/axis_valve.sv +29 -0
  207. data/lib/axi/AXI_stream/axis_valve_with_pipe.sv +76 -0
  208. data/lib/axi/AXI_stream/axis_vector_master_empty.rb +11 -0
  209. data/lib/axi/AXI_stream/axis_vector_master_empty.sv +35 -0
  210. data/lib/axi/AXI_stream/axis_vector_slaver_empty.rb +11 -0
  211. data/lib/axi/AXI_stream/axis_vector_slaver_empty.sv +35 -0
  212. data/lib/axi/AXI_stream/check_stream_crc.sv +28 -0
  213. data/lib/axi/AXI_stream/data_c_to_axis_full.sv +23 -0
  214. data/lib/axi/AXI_stream/data_to_axis_inf.sv +103 -0
  215. data/lib/axi/AXI_stream/data_to_axis_inf_A1.sv +28 -0
  216. data/lib/axi/AXI_stream/data_width/axis_width_combin.sv +204 -0
  217. data/lib/axi/AXI_stream/data_width/axis_width_combin_A1.sv +220 -0
  218. data/lib/axi/AXI_stream/data_width/axis_width_convert.sv +49 -0
  219. data/lib/axi/AXI_stream/data_width/axis_width_destruct.sv +82 -0
  220. data/lib/axi/AXI_stream/data_width/axis_width_destruct_A1.sv +86 -0
  221. data/lib/axi/AXI_stream/ex_status/axis_ex_status.sv +97 -0
  222. data/lib/axi/AXI_stream/gen_big_field_table.sv +170 -0
  223. data/lib/axi/AXI_stream/gen_common_frame_table.sv +382 -0
  224. data/lib/axi/AXI_stream/gen_common_frame_table_bind_tuser.sv +428 -0
  225. data/lib/axi/AXI_stream/gen_origin_axis.sv +116 -0
  226. data/lib/axi/AXI_stream/gen_origin_axis_A1.sv +129 -0
  227. data/lib/axi/AXI_stream/gen_origin_axis_A2.sv +162 -0
  228. data/lib/axi/AXI_stream/gen_simple_axis.sv +164 -0
  229. data/lib/axi/AXI_stream/packet_fifo/axi_stream_long_fifo.sv +132 -0
  230. data/lib/axi/AXI_stream/packet_fifo/axi_stream_long_fifo_verb.sv +140 -0
  231. data/lib/axi/AXI_stream/packet_fifo/axi_stream_packet_fifo.sv +125 -0
  232. data/lib/axi/AXI_stream/packet_fifo/axi_stream_packet_fifo_B1.sv +142 -0
  233. data/lib/axi/AXI_stream/packet_fifo/axi_stream_packet_fifo_B1E.sv +198 -0
  234. data/lib/axi/AXI_stream/packet_fifo/axi_stream_packet_fifo_verb.sv +120 -0
  235. data/lib/axi/AXI_stream/packet_fifo/axi_stream_packet_fifo_with_info.sv +49 -0
  236. data/lib/axi/AXI_stream/packet_fifo/axi_stream_packet_long_fifo.sv +197 -0
  237. data/lib/axi/AXI_stream/packet_fifo/axi_stream_wide_fifo.sv +141 -0
  238. data/lib/axi/AXI_stream/packet_fifo/axis_pkt_fifo_filter_keep.sv +164 -0
  239. data/lib/axi/AXI_stream/packet_fifo/axis_pkt_fifo_filter_keep_A1.sv +166 -0
  240. data/lib/axi/AXI_stream/parse_big_field_table.sv +164 -0
  241. data/lib/axi/AXI_stream/parse_big_field_table_A1.sv +162 -0
  242. data/lib/axi/AXI_stream/parse_big_field_table_A2.sv +165 -0
  243. data/lib/axi/AXI_stream/parse_big_field_table_verb.sv +118 -0
  244. data/lib/axi/AXI_stream/parse_common_frame_table.sv +202 -0
  245. data/lib/axi/AXI_stream/parse_common_frame_table_A1.sv +521 -0
  246. data/lib/axi/AXI_stream/parse_common_frame_table_A2.sv +561 -0
  247. data/lib/axi/AXI_stream/stream_cache/axi_stream_cache.sv +46 -0
  248. data/lib/axi/AXI_stream/stream_cache/axi_stream_cache_35bit.sv +122 -0
  249. data/lib/axi/AXI_stream/stream_cache/axi_stream_cache_36_71bit.sv +71 -0
  250. data/lib/axi/AXI_stream/stream_cache/axi_stream_cache_72_95bit.sv +96 -0
  251. data/lib/axi/AXI_stream/stream_cache/axi_stream_cache_72_95bit_with_keep.sv +99 -0
  252. data/lib/axi/AXI_stream/stream_cache/axi_stream_cache_96_143bit.sv +119 -0
  253. data/lib/axi/AXI_stream/stream_cache/axi_stream_cache_A1.sv +49 -0
  254. data/lib/axi/AXI_stream/stream_cache/axi_stream_cache_B1.sv +82 -0
  255. data/lib/axi/AXI_stream/stream_cache/axi_stream_cache_mirror.sv +44 -0
  256. data/lib/axi/AXI_stream/stream_cache/axi_stream_cache_verb.sv +58 -0
  257. data/lib/axi/AXI_stream/stream_cache/axi_stream_long_cache.sv +55 -0
  258. data/lib/axi/AXI_stream/stream_crc.sv +67 -0
  259. data/lib/axi/AXI_stream/vcs_axis_comptable.sv +73 -0
  260. data/lib/axi/LICENSE +504 -0
  261. data/lib/axi/ReadME.md +6 -0
  262. data/lib/axi/SIM/tb_axi4_partition_20201105.sv +115 -0
  263. data/lib/axi/SIM/tb_axis_bfm_0504.sv +61 -0
  264. data/lib/axi/SIM/tb_axis_partitiom_0929.sv +102 -0
  265. data/lib/axi/SIM/tb_axis_s2m_pipe_1023.sv +163 -0
  266. data/lib/axi/SIM/tb_axis_to_axi4_0925.sv +107 -0
  267. data/lib/axi/SIM/tb_data_c_m2s_inf_20200114.sv +222 -0
  268. data/lib/axi/SIM/tb_data_c_m2s_inf_20201103.sv +245 -0
  269. data/lib/axi/SIM/tb_data_c_pipe_inf_20180417.sv +114 -0
  270. data/lib/axi/SIM/tb_wide_axis_to_axi4_wr.sv +81 -0
  271. data/lib/axi/axi4_to_xilinx_ddr_native/axi4_to_native_for_ddr_ip.sv +589 -0
  272. data/lib/axi/axi4_to_xilinx_ddr_native/axi4_to_native_for_ddr_ip_C1.sv +69 -0
  273. data/lib/axi/axi4_to_xilinx_ddr_native/axi4_to_native_for_ddr_ip_verb.sv +388 -0
  274. data/lib/axi/axi4_to_xilinx_ddr_native/axi4_to_native_for_ddr_ip_verc.sv +70 -0
  275. data/lib/axi/axi4_to_xilinx_ddr_native/ddr3_ip_native_to_axi4.sv +194 -0
  276. data/lib/axi/axi4_to_xilinx_ddr_native/ddr3_ip_wrapper_sim.sv +99 -0
  277. data/lib/axi/axi4_to_xilinx_ddr_native/ddr_axi4_to_axis.sv +188 -0
  278. data/lib/axi/axi4_to_xilinx_ddr_native/ddr_native_fifo.sv +156 -0
  279. data/lib/axi/axi4_to_xilinx_ddr_native/ddr_native_fifo_A1.sv +180 -0
  280. data/lib/axi/axi4_to_xilinx_ddr_native/ddr_native_fifo_verb.sv +269 -0
  281. data/lib/axi/axi4_to_xilinx_ddr_native/model_ddr_ip_app.sv +303 -0
  282. data/lib/axi/axi4_to_xilinx_ddr_native/tb_ddr3_ip_wrapper_sim.sv +154 -0
  283. data/lib/axi/cfg.yml +15 -0
  284. data/lib/axi/common/ClockSameDomain.sv +128 -0
  285. data/lib/axi/common/common_ram_sim_wrapper.rb +66 -0
  286. data/lib/axi/common/common_ram_sim_wrapper.sv +75 -0
  287. data/lib/axi/common/common_ram_wrapper.rb +71 -0
  288. data/lib/axi/common/common_ram_wrapper.sv +82 -0
  289. data/lib/axi/common/data_c_interface_dram.rb +90 -0
  290. data/lib/axi/common/data_c_interface_dram.sv +106 -0
  291. data/lib/axi/common/mem_format.coe +60 -0
  292. data/lib/axi/common/pipe_vld.sv +45 -0
  293. data/lib/axi/common/test_write_mem.sv +22 -0
  294. data/lib/axi/common/xilinx_hdl_dpram.sv +142 -0
  295. data/lib/axi/common/xilinx_hdl_dpram_sim.sv +176 -0
  296. data/lib/axi/common_fifo/common_fifo.sv +165 -0
  297. data/lib/axi/common_fifo/common_stack.sv +56 -0
  298. data/lib/axi/common_fifo/independent_clock_fifo.sv +200 -0
  299. data/lib/axi/common_fifo/independent_clock_fifo_a1.sv +202 -0
  300. data/lib/axi/common_fifo/independent_stack.sv +85 -0
  301. data/lib/axi/data_interface/data_connect_pipe.sv +228 -0
  302. data/lib/axi/data_interface/data_inf_A2B.sv +21 -0
  303. data/lib/axi/data_interface/data_inf_B2A.sv +21 -0
  304. data/lib/axi/data_interface/data_inf_c/data_bind.sv +74 -0
  305. data/lib/axi/data_interface/data_inf_c/data_c_cache.sv +49 -0
  306. data/lib/axi/data_interface/data_inf_c/data_c_direct.sv +51 -0
  307. data/lib/axi/data_interface/data_inf_c/data_c_direct_mirror.sv +28 -0
  308. data/lib/axi/data_interface/data_inf_c/data_c_intc_M2S_force_robin.rb.bak +268 -0
  309. data/lib/axi/data_interface/data_inf_c/data_c_intc_M2S_force_robin.sv +301 -0
  310. data/lib/axi/data_interface/data_inf_c/data_c_pipe_force_vld.sv +57 -0
  311. data/lib/axi/data_interface/data_inf_c/data_c_pipe_force_vld_bind_data.sv +81 -0
  312. data/lib/axi/data_interface/data_inf_c/data_c_pipe_inf.sv +130 -0
  313. data/lib/axi/data_interface/data_inf_c/data_c_pipe_inf_A1.sv +135 -0
  314. data/lib/axi/data_interface/data_inf_c/data_c_pipe_inf_left_shift.sv +158 -0
  315. data/lib/axi/data_interface/data_inf_c/data_c_pipe_inf_right_shift.sv +155 -0
  316. data/lib/axi/data_interface/data_inf_c/data_c_pipe_inf_right_shift_verb.sv +174 -0
  317. data/lib/axi/data_interface/data_inf_c/data_c_pipe_intc_M2S_C1.sv +296 -0
  318. data/lib/axi/data_interface/data_inf_c/data_c_pipe_intc_M2S_C1_with_id.sv +58 -0
  319. data/lib/axi/data_interface/data_inf_c/data_c_pipe_intc_M2S_best_last.sv +319 -0
  320. data/lib/axi/data_interface/data_inf_c/data_c_pipe_intc_M2S_best_robin.sv +293 -0
  321. data/lib/axi/data_interface/data_inf_c/data_c_pipe_intc_M2S_robin.sv +296 -0
  322. data/lib/axi/data_interface/data_inf_c/data_c_pipe_intc_M2S_robin_with_id.sv +46 -0
  323. data/lib/axi/data_interface/data_inf_c/data_c_pipe_intc_M2S_verc.sv +405 -0
  324. data/lib/axi/data_interface/data_inf_c/data_c_pipe_intc_M2S_verc_with_addr.sv +226 -0
  325. data/lib/axi/data_interface/data_inf_c/data_c_pipe_intc_M2S_verc_with_id.sv +54 -0
  326. data/lib/axi/data_interface/data_inf_c/data_c_pipe_latency.sv +68 -0
  327. data/lib/axi/data_interface/data_inf_c/data_c_scaler.sv +326 -0
  328. data/lib/axi/data_interface/data_inf_c/data_c_scaler_A1.sv +333 -0
  329. data/lib/axi/data_interface/data_inf_c/data_c_tmp_cache.sv +44 -0
  330. data/lib/axi/data_interface/data_inf_c/data_condition_mirror.sv +64 -0
  331. data/lib/axi/data_interface/data_inf_c/data_condition_valve.sv +53 -0
  332. data/lib/axi/data_interface/data_inf_c/data_connect_pipe_inf.sv +73 -0
  333. data/lib/axi/data_interface/data_inf_c/data_inf_c_M2S_with_addr_and_id.sv +66 -0
  334. data/lib/axi/data_interface/data_inf_c/data_inf_c_intc_M2S_with_id.sv +67 -0
  335. data/lib/axi/data_interface/data_inf_c/data_inf_c_intc_S2M.sv +70 -0
  336. data/lib/axi/data_interface/data_inf_c/data_inf_c_intc_S2M_A1.sv +72 -0
  337. data/lib/axi/data_interface/data_inf_c/data_inf_c_intc_S2M_with_lazy.sv +49 -0
  338. data/lib/axi/data_interface/data_inf_c/data_inf_c_interconnect_M2S.sv +50 -0
  339. data/lib/axi/data_interface/data_inf_c/data_inf_c_pipe_condition.sv +33 -0
  340. data/lib/axi/data_interface/data_inf_c/data_inf_c_planer.sv +50 -0
  341. data/lib/axi/data_interface/data_inf_c/data_inf_c_planer_A1.sv +53 -0
  342. data/lib/axi/data_interface/data_inf_c/data_intc_M2S_force_robin.sv +31 -0
  343. data/lib/axi/data_interface/data_inf_c/data_mirrors.sv +108 -0
  344. data/lib/axi/data_interface/data_inf_c/data_mirrors_verb.sv.bak +101 -0
  345. data/lib/axi/data_interface/data_inf_c/data_uncompress.sv +150 -0
  346. data/lib/axi/data_interface/data_inf_c/data_valve.sv +26 -0
  347. data/lib/axi/data_interface/data_inf_c/next_prio.sv +42 -0
  348. data/lib/axi/data_interface/data_inf_c/trigger_data_inf_c.sv +51 -0
  349. data/lib/axi/data_interface/data_inf_c/trigger_data_inf_c_A1.sv +54 -0
  350. data/lib/axi/data_interface/data_inf_c/trigger_ready_ctrl.sv +33 -0
  351. data/lib/axi/data_interface/data_inf_c/vcs_data_c_comptable.sv +40 -0
  352. data/lib/axi/data_interface/data_inf_cross_clk.sv +40 -0
  353. data/lib/axi/data_interface/data_inf_intc_M2S_force_addr_with_id.sv +62 -0
  354. data/lib/axi/data_interface/data_inf_intc_M2S_prio.sv +152 -0
  355. data/lib/axi/data_interface/data_inf_intc_M2S_prio_with_id.sv +55 -0
  356. data/lib/axi/data_interface/data_inf_interconnect_M2S_noaddr.sv +136 -0
  357. data/lib/axi/data_interface/data_inf_interconnect_M2S_with_id_noaddr.sv +55 -0
  358. data/lib/axi/data_interface/data_inf_planer.sv +59 -0
  359. data/lib/axi/data_interface/data_inf_planer_A1.sv +66 -0
  360. data/lib/axi/data_interface/data_inf_ticktock.sv +154 -0
  361. data/lib/axi/data_interface/data_interface.sv +91 -0
  362. data/lib/axi/data_interface/data_interface_pkg.sv +79 -0
  363. data/lib/axi/data_interface/data_pair_map.sv +152 -0
  364. data/lib/axi/data_interface/data_pair_map_A1.sv +159 -0
  365. data/lib/axi/data_interface/data_pair_map_A2.sv +212 -0
  366. data/lib/axi/data_interface/data_pipe_intc_M2S_addr.sv.bak +231 -0
  367. data/lib/axi/data_interface/data_pipe_interconnect.sv +290 -0
  368. data/lib/axi/data_interface/data_pipe_interconnect_M2S.sv +236 -0
  369. data/lib/axi/data_interface/data_pipe_interconnect_M2S.sv.bak1012 +237 -0
  370. data/lib/axi/data_interface/data_pipe_interconnect_M2S_A1.sv +241 -0
  371. data/lib/axi/data_interface/data_pipe_interconnect_M2S_verb.sv +302 -0
  372. data/lib/axi/data_interface/data_pipe_interconnect_M2S_verb.sv.bad_work +280 -0
  373. data/lib/axi/data_interface/data_pipe_interconnect_S2M.sv +332 -0
  374. data/lib/axi/data_interface/data_pipe_interconnect_S2M_A1.sv +376 -0
  375. data/lib/axi/data_interface/data_pipe_interconnect_S2M_verb.sv +265 -0
  376. data/lib/axi/data_interface/data_streams_combin.sv +592 -0
  377. data/lib/axi/data_interface/data_streams_combin_A1.sv +621 -0
  378. data/lib/axi/data_interface/data_streams_scaler.sv +593 -0
  379. data/lib/axi/data_interface/datainf_c_master_empty.sv +22 -0
  380. data/lib/axi/data_interface/datainf_c_slaver_empty.sv +22 -0
  381. data/lib/axi/data_interface/datainf_master_empty.sv +22 -0
  382. data/lib/axi/data_interface/datainf_slaver_empty.sv +22 -0
  383. data/lib/axi/data_interface/part_data_pair_map.sv +111 -0
  384. data/lib/axi/interface_define/axi_aux_inf.sv +206 -0
  385. data/lib/axi/interface_define/axi_inf.sv +1256 -0
  386. data/lib/axi/interface_define/axi_inf_verb.sv +42 -0
  387. data/lib/axi/interface_define/axi_interface_instance.svo +13 -0
  388. data/lib/axi/interface_define/axi_lite_inf.sv +345 -0
  389. data/lib/axi/interface_define/axi_stream_inf.sv +108 -0
  390. data/lib/axi/interface_define/bak/axi_aux_inf.sv +206 -0
  391. data/lib/axi/interface_define/bak/axi_inf_verb.sv +42 -0
  392. data/lib/axi/interface_define/bak/axi_interface_instance.svo +13 -0
  393. data/lib/axi/interface_define/bak/microblaze_inf.sv +136 -0
  394. data/lib/axi/interface_define/bak/xilinx_axi4_to_axi4.sv +87 -0
  395. data/lib/axi/interface_define/bak/xilinx_lite_to_lite.sv +128 -0
  396. data/lib/axi/interface_define/lite_inf2_to_inf.sv +38 -0
  397. data/lib/axi/interface_define/xilinx_axi4_to_axi4.sv +87 -0
  398. data/lib/axi/interface_define/xilinx_lite_to_lite.sv +128 -0
  399. data/lib/axi/macro/axil_macro.sv +132 -0
  400. data/lib/axi/macro/bak/axi4_base_files_add_to_vivado.tcl +28 -0
  401. data/lib/axi/macro/bak/axi_macro.sv +15 -0
  402. data/lib/axi/macro/bak/axis_base_files_add_to_vivado.tcl +26 -0
  403. data/lib/axi/macro/bak/base_files_add_to_vivado.tcl +24 -0
  404. data/lib/axi/macro/bak/data_inf_base_files_add_to_vivado.tcl +22 -0
  405. data/lib/axi/macro/bak/lite_inf_base_files_add_to_vivado.tcl +4 -0
  406. data/lib/axi/macro/bak/standard_tcl.rb +28 -0
  407. data/lib/axi/macro/bak/system_macro.sv +19 -0
  408. data/lib/axi/macro/bak/tcl_axi4_base_files_add_to_vivado.tcl +28 -0
  409. data/lib/axi/macro/bak/tcl_axis_base_files_add_to_vivado.tcl +26 -0
  410. data/lib/axi/macro/bak/tcl_base_files_add_to_vivado.tcl +24 -0
  411. data/lib/axi/macro/bak/tcl_data_inf_base_files_add_to_vivado.tcl +22 -0
  412. data/lib/axi/macro/bak/tcl_lite_inf_base_files_add_to_vivado.tcl +4 -0
  413. data/lib/axi/macro/bak/tcl_tmp.tcl +12 -0
  414. data/lib/axi/macro/bak/tmp.tcl +13 -0
  415. data/lib/axi/platform_ip/fifo_10_18bit_long.sv +125 -0
  416. data/lib/axi/platform_ip/fifo_145_216bit_A1.sv +167 -0
  417. data/lib/axi/platform_ip/fifo_217_288bit_A1.sv +191 -0
  418. data/lib/axi/platform_ip/fifo_36bit.sv +77 -0
  419. data/lib/axi/platform_ip/fifo_36bit_A1.sv +113 -0
  420. data/lib/axi/platform_ip/fifo_36kb_long.sv +145 -0
  421. data/lib/axi/platform_ip/fifo_37_72bit.sv +77 -0
  422. data/lib/axi/platform_ip/fifo_505_576bit_A1.sv +141 -0
  423. data/lib/axi/platform_ip/fifo_73_96bit.sv +102 -0
  424. data/lib/axi/platform_ip/fifo_97_144bit.sv +102 -0
  425. data/lib/axi/platform_ip/fifo_97_144bit_A1.sv +133 -0
  426. data/lib/axi/platform_ip/fifo_ku.sv +212 -0
  427. data/lib/axi/platform_ip/fifo_ku.sv.bak +488 -0
  428. data/lib/axi/platform_ip/fifo_ku_18bit.sv +138 -0
  429. data/lib/axi/platform_ip/fifo_ku_36bit.sv +148 -0
  430. data/lib/axi/platform_ip/fifo_ku_36kb_long.sv +135 -0
  431. data/lib/axi/platform_ip/fifo_ku_xbit_8192.sv.bak +107 -0
  432. data/lib/axi/platform_ip/fifo_wr_rd_mark.sv +94 -0
  433. data/lib/axi/platform_ip/ku_long_fifo_4bit.sv +189 -0
  434. data/lib/axi/platform_ip/long_fifo.sv +72 -0
  435. data/lib/axi/platform_ip/long_fifo_4bit.sv +156 -0
  436. data/lib/axi/platform_ip/long_fifo_4bit_8192.sv +133 -0
  437. data/lib/axi/platform_ip/long_fifo_4bit_SL8192.sv +133 -0
  438. data/lib/axi/platform_ip/long_fifo_verb.sv +110 -0
  439. data/lib/axi/platform_ip/wide_fifo.sv +66 -0
  440. data/lib/axi/platform_ip/wide_fifo_7series.sv +136 -0
  441. data/lib/axi/platform_ip/xilinx_fifo.sv +174 -0
  442. data/lib/axi/platform_ip/xilinx_fifo_A1.sv +223 -0
  443. data/lib/axi/platform_ip/xilinx_fifo_verb.sv +87 -0
  444. data/lib/axi/platform_ip/xilinx_fifo_verc.sv +87 -0
  445. data/lib/axi/platform_ip/xilinx_stream_packet_fifo_ip.sv +40 -0
  446. data/lib/axi/top/axi4_data_convert_2_20_tb.sv +126 -0
  447. data/lib/axi/top/axi4_data_convert_5_24_tb.sv +156 -0
  448. data/lib/axi/top/axi4_interconnnect_2_24_tb.sv +143 -0
  449. data/lib/axi/top/axi4_interconnnect_5_23_tb.sv +155 -0
  450. data/lib/axi/top/axi4_merge_tb_0331.sv +120 -0
  451. data/lib/axi/top/axi4_packet_fifo_2_28_tb.sv +107 -0
  452. data/lib/axi/top/axi4_partition_2_23_tb.sv +93 -0
  453. data/lib/axi/top/axi_stream_packet_fifo_2_28_tb.sv +78 -0
  454. data/lib/axi/top/axis_length_cut_2_28_tb.sv +79 -0
  455. data/lib/axi/top/axis_length_fill_8_18_tb.sv +81 -0
  456. data/lib/axi/top/common_fifo_2_27_tb.sv +77 -0
  457. data/lib/axi/top/data_convert_2_16_tb.sv +162 -0
  458. data/lib/axi/top/independent_fifo_2_27_tb.sv +90 -0
  459. data/lib/axi/top/long_to_wide_3_1_tb.sv +142 -0
  460. data/lib/axi/top/odd_width_convert_tb_420.sv +83 -0
  461. data/lib/axi/top/tb_axis_m2s_A1_0115.sv +158 -0
  462. data/lib/axi/top/tb_axis_width_combin_0913.sv +57 -0
  463. data/lib/axi/top/tb_axis_width_test_0914.sv +115 -0
  464. data/lib/axi/top/tb_data_c_inf_M2S_0823.sv +154 -0
  465. data/lib/axi/top/tb_data_c_inf_M2S_addr_0824.sv +252 -0
  466. data/lib/axi/top/tb_data_c_pipe_force_vld_1228.sv +96 -0
  467. data/lib/axi/top/tb_data_c_scaler_20180413.sv +187 -0
  468. data/lib/axi/top/tb_data_intc_S2M_0807.sv +168 -0
  469. data/lib/axi/top/tb_test_ku_fifo_0919.sv +98 -0
  470. data/lib/axi/top/width_convert_verb_tb_523.sv +68 -0
  471. data/lib/axi/video/video_stream_2_axi_stream.sv +90 -0
  472. data/lib/axi/video_interface/video_interface.sv +173 -0
  473. data/lib/axi_tdl.rb +6 -0
  474. data/lib/axi_tdl/version.rb +3 -0
  475. data/lib/spec/spec_helper.rb +100 -0
  476. data/lib/tdl/LICENSE +504 -0
  477. data/lib/tdl/Logic/Logic.tar.gz +0 -0
  478. data/lib/tdl/Logic/clock_rst_verb_auto.rb +99 -0
  479. data/lib/tdl/Logic/logic_edge.rb +194 -0
  480. data/lib/tdl/Logic/logic_latency.rb +197 -0
  481. data/lib/tdl/Logic/logic_main.rb +188 -0
  482. data/lib/tdl/Logic/logic_operator.rb.bak +128 -0
  483. data/lib/tdl/Logic/mdio_model_auto.rb +77 -0
  484. data/lib/tdl/Logic/path_lib.rb +7 -0
  485. data/lib/tdl/Logic/redefine_operator.rb +28 -0
  486. data/lib/tdl/ReadMe.md +295 -0
  487. data/lib/tdl/SDL/axi4/AXI4_interconnect_M2S_sdl.rb +10 -0
  488. data/lib/tdl/SDL/axi4/axi4_combin_wr_rd_batch_sdl.rb +10 -0
  489. data/lib/tdl/SDL/axi4/axi4_data_combin_aflag_pipe_A1_sdl.rb +38 -0
  490. data/lib/tdl/SDL/axi4/axi4_data_combin_aflag_pipe_sdl.rb +37 -0
  491. data/lib/tdl/SDL/axi4/axi4_data_convert_A1_sdl.rb +9 -0
  492. data/lib/tdl/SDL/axi4/axi4_data_convert_sdl.rb +9 -0
  493. data/lib/tdl/SDL/axi4/axi4_direct_A1_sdl.rb +14 -0
  494. data/lib/tdl/SDL/axi4/axi4_direct_B1_sdl.rb +9 -0
  495. data/lib/tdl/SDL/axi4/axi4_direct_sdl.rb +14 -0
  496. data/lib/tdl/SDL/axi4/axi4_direct_verb_sdl.rb +9 -0
  497. data/lib/tdl/SDL/axi4/axi4_direct_verc_sdl.rb +16 -0
  498. data/lib/tdl/SDL/axi4/axi4_long_to_axi4_wide_A1_sdl.rb +10 -0
  499. data/lib/tdl/SDL/axi4/axi4_long_to_axi4_wide_sdl.rb +9 -0
  500. data/lib/tdl/SDL/axi4/axi4_long_to_axi4_wide_track_sdl.rb +9 -0
  501. data/lib/tdl/SDL/axi4/axi4_long_to_axi4_wide_verb_sdl.rb +11 -0
  502. data/lib/tdl/SDL/axi4/axi4_merge_rd_sdl.rb +10 -0
  503. data/lib/tdl/SDL/axi4/axi4_merge_sdl.rb +10 -0
  504. data/lib/tdl/SDL/axi4/axi4_merge_wr_sdl.rb +10 -0
  505. data/lib/tdl/SDL/axi4/axi4_mix_interconnect_M2S_sdl.rb +10 -0
  506. data/lib/tdl/SDL/axi4/axi4_packet_fifo_sdl.rb +12 -0
  507. data/lib/tdl/SDL/axi4/axi4_partition_OD_sdl.rb +11 -0
  508. data/lib/tdl/SDL/axi4/axi4_partition_rd_OD_sdl.rb +10 -0
  509. data/lib/tdl/SDL/axi4/axi4_partition_rd_sdl.rb +11 -0
  510. data/lib/tdl/SDL/axi4/axi4_partition_sdl.rb +11 -0
  511. data/lib/tdl/SDL/axi4/axi4_partition_wr_OD_sdl.rb +10 -0
  512. data/lib/tdl/SDL/axi4/axi4_partition_wr_sdl.rb +11 -0
  513. data/lib/tdl/SDL/axi4/axi4_pipe_sdl.rb +9 -0
  514. data/lib/tdl/SDL/axi4/axi4_pipe_verb_sdl.rb +9 -0
  515. data/lib/tdl/SDL/axi4/axi4_rd_auxiliary_batch_gen_sdl.rb +11 -0
  516. data/lib/tdl/SDL/axi4/axi4_rd_auxiliary_gen_A1_sdl.rb +9 -0
  517. data/lib/tdl/SDL/axi4/axi4_rd_auxiliary_gen_sdl.rb +9 -0
  518. data/lib/tdl/SDL/axi4/axi4_rd_burst_track_sdl.rb +10 -0
  519. data/lib/tdl/SDL/axi4/axi4_rd_interconnect_M2S_sdl.rb +10 -0
  520. data/lib/tdl/SDL/axi4/axi4_rd_mix_interconnect_M2S_A1_sdl.rb +10 -0
  521. data/lib/tdl/SDL/axi4/axi4_rd_mix_interconnect_M2S_A2_sdl.rb +10 -0
  522. data/lib/tdl/SDL/axi4/axi4_rd_mix_interconnect_M2S_sdl.rb +10 -0
  523. data/lib/tdl/SDL/axi4/axi4_rd_packet_fifo_sdl.rb +11 -0
  524. data/lib/tdl/SDL/axi4/axi4_rd_pipe_sdl.rb +9 -0
  525. data/lib/tdl/SDL/axi4/axi4_rd_pipe_verb_sdl.rb +9 -0
  526. data/lib/tdl/SDL/axi4/axi4_wr_aux_bind_data_sdl.rb +9 -0
  527. data/lib/tdl/SDL/axi4/axi4_wr_auxiliary_batch_gen_sdl.rb +11 -0
  528. data/lib/tdl/SDL/axi4/axi4_wr_auxiliary_gen_sdl.rb +10 -0
  529. data/lib/tdl/SDL/axi4/axi4_wr_auxiliary_gen_without_resp_sdl.rb +10 -0
  530. data/lib/tdl/SDL/axi4/axi4_wr_burst_track_sdl.rb +10 -0
  531. data/lib/tdl/SDL/axi4/axi4_wr_interconnect_M2S_A1_sdl.rb +10 -0
  532. data/lib/tdl/SDL/axi4/axi4_wr_interconnect_M2S_sdl.rb +10 -0
  533. data/lib/tdl/SDL/axi4/axi4_wr_mix_interconnect_M2S_sdl.rb +10 -0
  534. data/lib/tdl/SDL/axi4/axi4_wr_packet_fifo_sdl.rb +11 -0
  535. data/lib/tdl/SDL/axi4/axi4_wr_pipe_sdl.rb +9 -0
  536. data/lib/tdl/SDL/axi4/axi4_wr_pipe_verb_sdl.rb +9 -0
  537. data/lib/tdl/SDL/axi4/axi_stream_add_addr_len_sdl.rb +11 -0
  538. data/lib/tdl/SDL/axi4/axi_stream_to_axi4_wr_sdl.rb +9 -0
  539. data/lib/tdl/SDL/axi4/data_combin_sdl.rb +20 -0
  540. data/lib/tdl/SDL/axi4/data_destruct_sdl.rb +19 -0
  541. data/lib/tdl/SDL/axi4/feed_check_sdl.rb +18 -0
  542. data/lib/tdl/SDL/axi4/full_axi4_to_axis_partition_wr_rd_sdl.rb +11 -0
  543. data/lib/tdl/SDL/axi4/full_axi4_to_axis_sdl.rb +10 -0
  544. data/lib/tdl/SDL/axi4/id_record_sdl.rb +19 -0
  545. data/lib/tdl/SDL/axi4/idata_pool_axi4_sdl.rb +18 -0
  546. data/lib/tdl/SDL/axi4/odata_pool_axi4_A1_sdl.rb +13 -0
  547. data/lib/tdl/SDL/axi4/odata_pool_axi4_A2_sdl.rb +10 -0
  548. data/lib/tdl/SDL/axi4/odata_pool_axi4_sdl.rb +19 -0
  549. data/lib/tdl/SDL/axi4/odd_width_convert_sdl.rb +19 -0
  550. data/lib/tdl/SDL/axi4/odd_width_convert_verb_sdl.rb +19 -0
  551. data/lib/tdl/SDL/axi4/simple_data_pipe_sdl.rb +16 -0
  552. data/lib/tdl/SDL/axi4/simple_data_pipe_slaver_sdl.rb +16 -0
  553. data/lib/tdl/SDL/axi4/vcs_axi4_array_comptable.rb +9 -0
  554. data/lib/tdl/SDL/axi4/vcs_axi4_array_comptable_sdl.rb +10 -0
  555. data/lib/tdl/SDL/axi4/vcs_axi4_comptable.rb +8 -0
  556. data/lib/tdl/SDL/axi4/vcs_axi4_comptable_sdl.rb +9 -0
  557. data/lib/tdl/SDL/axi4/width_combin_sdl.rb +20 -0
  558. data/lib/tdl/SDL/axi4/width_convert_sdl.rb +20 -0
  559. data/lib/tdl/SDL/axi4/width_convert_verb_sdl.rb +20 -0
  560. data/lib/tdl/SDL/axi4/width_destruct_A1_sdl.rb +22 -0
  561. data/lib/tdl/SDL/axi4/width_destruct_sdl.rb +19 -0
  562. data/lib/tdl/SDL/axistream/axi_stream_cache_35bit_sdl.rb +9 -0
  563. data/lib/tdl/SDL/axistream/axi_stream_cache_36_71bit_sdl.rb +9 -0
  564. data/lib/tdl/SDL/axistream/axi_stream_cache_72_95bit_sdl.rb +9 -0
  565. data/lib/tdl/SDL/axistream/axi_stream_cache_72_95bit_with_keep_sdl.rb +9 -0
  566. data/lib/tdl/SDL/axistream/axi_stream_cache_96_143bit_sdl.rb +9 -0
  567. data/lib/tdl/SDL/axistream/axi_stream_cache_B1_sdl.rb +9 -0
  568. data/lib/tdl/SDL/axistream/axi_stream_cache_mirror_sdl.rb +9 -0
  569. data/lib/tdl/SDL/axistream/axi_stream_cache_sdl.rb +9 -0
  570. data/lib/tdl/SDL/axistream/axi_stream_cache_verb_sdl.rb +9 -0
  571. data/lib/tdl/SDL/axistream/axi_stream_interconnect_M2S_A1_sdl.rb +11 -0
  572. data/lib/tdl/SDL/axistream/axi_stream_interconnect_M2S_A2_sdl.rb +13 -0
  573. data/lib/tdl/SDL/axistream/axi_stream_interconnect_M2S_bind_tuser_sdl.rb +11 -0
  574. data/lib/tdl/SDL/axistream/axi_stream_interconnect_M2S_noaddr_sdl.rb +11 -0
  575. data/lib/tdl/SDL/axistream/axi_stream_interconnect_M2S_sdl.rb +12 -0
  576. data/lib/tdl/SDL/axistream/axi_stream_interconnect_M2S_with_addr_sdl.rb +12 -0
  577. data/lib/tdl/SDL/axistream/axi_stream_interconnect_S2M_auto_sdl.rb +11 -0
  578. data/lib/tdl/SDL/axistream/axi_stream_interconnect_S2M_sdl.rb +12 -0
  579. data/lib/tdl/SDL/axistream/axi_stream_long_cache_sdl.rb +10 -0
  580. data/lib/tdl/SDL/axistream/axi_stream_long_fifo_sdl.rb +11 -0
  581. data/lib/tdl/SDL/axistream/axi_stream_long_fifo_verb_sdl.rb +11 -0
  582. data/lib/tdl/SDL/axistream/axi_stream_packet_fifo_B1E_sdl.rb +16 -0
  583. data/lib/tdl/SDL/axistream/axi_stream_packet_fifo_B1_sdl.rb +14 -0
  584. data/lib/tdl/SDL/axistream/axi_stream_packet_fifo_sdl.rb +10 -0
  585. data/lib/tdl/SDL/axistream/axi_stream_packet_fifo_verb_sdl.rb +13 -0
  586. data/lib/tdl/SDL/axistream/axi_stream_packet_fifo_with_info_sdl.rb +13 -0
  587. data/lib/tdl/SDL/axistream/axi_stream_packet_long_fifo_sdl.rb +11 -0
  588. data/lib/tdl/SDL/axistream/axi_stream_partition_A1_sdl.rb +11 -0
  589. data/lib/tdl/SDL/axistream/axi_stream_partition_sdl.rb +12 -0
  590. data/lib/tdl/SDL/axistream/axi_stream_wide_fifo_sdl.rb +10 -0
  591. data/lib/tdl/SDL/axistream/axi_streams_combin_A1_sdl.rb +15 -0
  592. data/lib/tdl/SDL/axistream/axi_streams_combin_sdl.rb +16 -0
  593. data/lib/tdl/SDL/axistream/axi_streams_scaler_A1_sdl.rb +14 -0
  594. data/lib/tdl/SDL/axistream/axi_streams_scaler_sdl.rb +15 -0
  595. data/lib/tdl/SDL/axistream/axis_append_A1_sdl.rb +18 -0
  596. data/lib/tdl/SDL/axistream/axis_append_sdl.rb +17 -0
  597. data/lib/tdl/SDL/axistream/axis_base_pipe_sdl.rb +10 -0
  598. data/lib/tdl/SDL/axistream/axis_combin_with_fifo_sdl.rb +14 -0
  599. data/lib/tdl/SDL/axistream/axis_connect_pipe_right_shift_sdl.rb +10 -0
  600. data/lib/tdl/SDL/axistream/axis_connect_pipe_sdl.rb +9 -0
  601. data/lib/tdl/SDL/axistream/axis_connect_pipe_with_info_sdl.rb +12 -0
  602. data/lib/tdl/SDL/axistream/axis_direct_A1_sdl.rb +11 -0
  603. data/lib/tdl/SDL/axistream/axis_direct_sdl.rb +9 -0
  604. data/lib/tdl/SDL/axistream/axis_ex_status_sdl.rb +12 -0
  605. data/lib/tdl/SDL/axistream/axis_filter_sdl.rb +10 -0
  606. data/lib/tdl/SDL/axistream/axis_full_to_data_c_sdl.rb +9 -0
  607. data/lib/tdl/SDL/axistream/axis_head_cut_sdl.rb +10 -0
  608. data/lib/tdl/SDL/axistream/axis_inct_s2m_with_flag_sdl.rb +11 -0
  609. data/lib/tdl/SDL/axistream/axis_intc_M2S_with_addr_inf_sdl.rb +11 -0
  610. data/lib/tdl/SDL/axistream/axis_intc_S2M_with_addr_inf_sdl.rb +12 -0
  611. data/lib/tdl/SDL/axistream/axis_interconnect_S2M_pipe_sdl.rb +15 -0
  612. data/lib/tdl/SDL/axistream/axis_length_cut_sdl.rb +10 -0
  613. data/lib/tdl/SDL/axistream/axis_length_fill_sdl.rb +10 -0
  614. data/lib/tdl/SDL/axistream/axis_length_split_sdl.rb +10 -0
  615. data/lib/tdl/SDL/axistream/axis_length_split_with_addr_sdl.rb +13 -0
  616. data/lib/tdl/SDL/axistream/axis_length_split_writh_user_sdl.rb +10 -0
  617. data/lib/tdl/SDL/axistream/axis_link_trigger_sdl.rb +12 -0
  618. data/lib/tdl/SDL/axistream/axis_master_empty_sdl.rb +8 -0
  619. data/lib/tdl/SDL/axistream/axis_mirror_to_master_sdl.rb +10 -0
  620. data/lib/tdl/SDL/axistream/axis_mirrors_sdl.rb +14 -0
  621. data/lib/tdl/SDL/axistream/axis_orthogonal_sdl.rb +10 -0
  622. data/lib/tdl/SDL/axistream/axis_pkt_fifo_filter_keep_A1_sdl.rb +10 -0
  623. data/lib/tdl/SDL/axistream/axis_pkt_fifo_filter_keep_sdl.rb +10 -0
  624. data/lib/tdl/SDL/axistream/axis_ram_buffer_sdl.rb +13 -0
  625. data/lib/tdl/SDL/axistream/axis_slaver_empty_sdl.rb +8 -0
  626. data/lib/tdl/SDL/axistream/axis_slaver_pipe_A1_sdl.rb +10 -0
  627. data/lib/tdl/SDL/axistream/axis_slaver_pipe_sdl.rb +9 -0
  628. data/lib/tdl/SDL/axistream/axis_slaver_vector_empty_sdl.rb +9 -0
  629. data/lib/tdl/SDL/axistream/axis_to_data_inf_sdl.rb +10 -0
  630. data/lib/tdl/SDL/axistream/axis_to_lite_rd_sdl.rb +11 -0
  631. data/lib/tdl/SDL/axistream/axis_to_lite_wr_sdl.rb +10 -0
  632. data/lib/tdl/SDL/axistream/axis_uncompress_A1_sdl.rb +12 -0
  633. data/lib/tdl/SDL/axistream/axis_uncompress_sdl.rb +11 -0
  634. data/lib/tdl/SDL/axistream/axis_valve_sdl.rb +10 -0
  635. data/lib/tdl/SDL/axistream/axis_valve_with_pipe_sdl.rb +11 -0
  636. data/lib/tdl/SDL/axistream/axis_width_combin_A1_sdl.rb +9 -0
  637. data/lib/tdl/SDL/axistream/axis_width_combin_sdl.rb +9 -0
  638. data/lib/tdl/SDL/axistream/axis_width_convert_sdl.rb +9 -0
  639. data/lib/tdl/SDL/axistream/axis_width_destruct_A1_sdl.rb +9 -0
  640. data/lib/tdl/SDL/axistream/axis_width_destruct_sdl.rb +9 -0
  641. data/lib/tdl/SDL/axistream/check_stream_crc_sdl.rb +8 -0
  642. data/lib/tdl/SDL/axistream/data_c_to_axis_full_sdl.rb +9 -0
  643. data/lib/tdl/SDL/axistream/data_to_axis_inf_A1_sdl.rb +10 -0
  644. data/lib/tdl/SDL/axistream/data_to_axis_inf_sdl.rb +11 -0
  645. data/lib/tdl/SDL/axistream/gen_big_field_table_sdl.rb +14 -0
  646. data/lib/tdl/SDL/axistream/gen_common_frame_table_sdl.rb +60 -0
  647. data/lib/tdl/SDL/axistream/gen_origin_axis_A1_sdl.rb +13 -0
  648. data/lib/tdl/SDL/axistream/gen_origin_axis_sdl.rb +12 -0
  649. data/lib/tdl/SDL/axistream/gen_simple_axis_sdl.rb +13 -0
  650. data/lib/tdl/SDL/axistream/parse_big_field_table_A1_sdl.rb +17 -0
  651. data/lib/tdl/SDL/axistream/parse_big_field_table_A2_sdl.rb +17 -0
  652. data/lib/tdl/SDL/axistream/parse_big_field_table_sdl.rb +17 -0
  653. data/lib/tdl/SDL/axistream/stream_crc_sdl.rb +9 -0
  654. data/lib/tdl/SDL/axistream/vcs_axis_comptable.rb +16 -0
  655. data/lib/tdl/SDL/axistream/vcs_axis_comptable_sdl.rb +9 -0
  656. data/lib/tdl/SDL/data_inf_c/data_bind_sdl.rb +10 -0
  657. data/lib/tdl/SDL/data_inf_c/data_c_cache_sdl.rb +9 -0
  658. data/lib/tdl/SDL/data_inf_c/data_c_direct_mirror_sdl.rb +9 -0
  659. data/lib/tdl/SDL/data_inf_c/data_c_direct_sdl.rb +9 -0
  660. data/lib/tdl/SDL/data_inf_c/data_c_intc_M2S_force_robin_sdl.rb +10 -0
  661. data/lib/tdl/SDL/data_inf_c/data_c_pipe_force_vld_bind_data_sdl.rb +13 -0
  662. data/lib/tdl/SDL/data_inf_c/data_c_pipe_force_vld_sdl.rb +9 -0
  663. data/lib/tdl/SDL/data_inf_c/data_c_pipe_inf_A1_sdl.rb +10 -0
  664. data/lib/tdl/SDL/data_inf_c/data_c_pipe_inf_right_shift_sdl.rb +13 -0
  665. data/lib/tdl/SDL/data_inf_c/data_c_pipe_inf_sdl.rb +9 -0
  666. data/lib/tdl/SDL/data_inf_c/data_c_pipe_intc_M2S_C1_sdl.rb +14 -0
  667. data/lib/tdl/SDL/data_inf_c/data_c_pipe_intc_M2S_C1_with_id_sdl.rb +16 -0
  668. data/lib/tdl/SDL/data_inf_c/data_c_pipe_intc_M2S_verc_sdl.rb +13 -0
  669. data/lib/tdl/SDL/data_inf_c/data_c_pipe_intc_M2S_verc_with_addr_sdl.rb +13 -0
  670. data/lib/tdl/SDL/data_inf_c/data_c_pipe_intc_M2S_verc_with_id_sdl.rb +15 -0
  671. data/lib/tdl/SDL/data_inf_c/data_c_pipe_latency_sdl.rb +10 -0
  672. data/lib/tdl/SDL/data_inf_c/data_c_scaler_A1_sdl.rb +16 -0
  673. data/lib/tdl/SDL/data_inf_c/data_c_scaler_sdl.rb +15 -0
  674. data/lib/tdl/SDL/data_inf_c/data_c_tmp_cache_sdl.rb +9 -0
  675. data/lib/tdl/SDL/data_inf_c/data_condition_mirror_sdl.rb +13 -0
  676. data/lib/tdl/SDL/data_inf_c/data_condition_valve_sdl.rb +13 -0
  677. data/lib/tdl/SDL/data_inf_c/data_connect_pipe_inf_sdl.rb +9 -0
  678. data/lib/tdl/SDL/data_inf_c/data_connect_pipe_sdl.rb +17 -0
  679. data/lib/tdl/SDL/data_inf_c/data_inf_A2B_sdl.rb +9 -0
  680. data/lib/tdl/SDL/data_inf_c/data_inf_B2A_sdl.rb +9 -0
  681. data/lib/tdl/SDL/data_inf_c/data_inf_c_M2S_with_addr_and_id_sdl.rb +17 -0
  682. data/lib/tdl/SDL/data_inf_c/data_inf_c_intc_M2S_with_id_sdl.rb +15 -0
  683. data/lib/tdl/SDL/data_inf_c/data_inf_c_intc_S2M_A1_sdl.rb +13 -0
  684. data/lib/tdl/SDL/data_inf_c/data_inf_c_intc_S2M_sdl.rb +12 -0
  685. data/lib/tdl/SDL/data_inf_c/data_inf_c_intc_S2M_with_lazy_sdl.rb +15 -0
  686. data/lib/tdl/SDL/data_inf_c/data_inf_c_interconnect_M2S_sdl.rb +12 -0
  687. data/lib/tdl/SDL/data_inf_c/data_inf_c_pipe_condition_sdl.rb +10 -0
  688. data/lib/tdl/SDL/data_inf_c/data_inf_c_planer_A1.rb +12 -0
  689. data/lib/tdl/SDL/data_inf_c/data_inf_c_planer_A1_sdl.rb +14 -0
  690. data/lib/tdl/SDL/data_inf_c/data_inf_c_planer_sdl.rb +13 -0
  691. data/lib/tdl/SDL/data_inf_c/data_inf_cross_clk_sdl.rb +9 -0
  692. data/lib/tdl/SDL/data_inf_c/data_inf_intc_M2S_force_addr_with_id_sdl.rb +19 -0
  693. data/lib/tdl/SDL/data_inf_c/data_inf_intc_M2S_prio_sdl.rb +14 -0
  694. data/lib/tdl/SDL/data_inf_c/data_inf_intc_M2S_prio_with_id_sdl.rb +17 -0
  695. data/lib/tdl/SDL/data_inf_c/data_inf_interconnect_M2S_noaddr_sdl.rb +14 -0
  696. data/lib/tdl/SDL/data_inf_c/data_inf_interconnect_M2S_with_id_noaddr_sdl.rb +17 -0
  697. data/lib/tdl/SDL/data_inf_c/data_inf_planer_A1_sdl.rb +15 -0
  698. data/lib/tdl/SDL/data_inf_c/data_inf_planer_sdl.rb +14 -0
  699. data/lib/tdl/SDL/data_inf_c/data_inf_ticktock_sdl.rb +18 -0
  700. data/lib/tdl/SDL/data_inf_c/data_intc_M2S_force_robin_sdl.rb +10 -0
  701. data/lib/tdl/SDL/data_inf_c/data_mirrors_sdl.rb +14 -0
  702. data/lib/tdl/SDL/data_inf_c/data_pair_map_A1_sdl.rb +16 -0
  703. data/lib/tdl/SDL/data_inf_c/data_pair_map_A2_sdl.rb +19 -0
  704. data/lib/tdl/SDL/data_inf_c/data_pair_map_sdl.rb +14 -0
  705. data/lib/tdl/SDL/data_inf_c/data_pipe_interconnect_M2S_A1_sdl.rb +19 -0
  706. data/lib/tdl/SDL/data_inf_c/data_pipe_interconnect_M2S_sdl.rb +17 -0
  707. data/lib/tdl/SDL/data_inf_c/data_pipe_interconnect_M2S_verb_sdl.rb +16 -0
  708. data/lib/tdl/SDL/data_inf_c/data_pipe_interconnect_S2M_A1_sdl.rb +19 -0
  709. data/lib/tdl/SDL/data_inf_c/data_pipe_interconnect_S2M_sdl.rb +16 -0
  710. data/lib/tdl/SDL/data_inf_c/data_pipe_interconnect_S2M_verb_sdl.rb +15 -0
  711. data/lib/tdl/SDL/data_inf_c/data_pipe_interconnect_sdl.rb +23 -0
  712. data/lib/tdl/SDL/data_inf_c/data_streams_combin_A1_sdl.rb +20 -0
  713. data/lib/tdl/SDL/data_inf_c/data_streams_combin_sdl.rb +20 -0
  714. data/lib/tdl/SDL/data_inf_c/data_streams_scaler_sdl.rb +19 -0
  715. data/lib/tdl/SDL/data_inf_c/data_uncompress_sdl.rb +11 -0
  716. data/lib/tdl/SDL/data_inf_c/data_valve_sdl.rb +10 -0
  717. data/lib/tdl/SDL/data_inf_c/datainf_c_master_empty_sdl.rb +8 -0
  718. data/lib/tdl/SDL/data_inf_c/datainf_c_slaver_empty_sdl.rb +8 -0
  719. data/lib/tdl/SDL/data_inf_c/datainf_master_empty_sdl.rb +8 -0
  720. data/lib/tdl/SDL/data_inf_c/datainf_slaver_empty_sdl.rb +8 -0
  721. data/lib/tdl/SDL/data_inf_c/latency_sdl.rb +8 -0
  722. data/lib/tdl/SDL/data_inf_c/next_prio_sdl.rb +12 -0
  723. data/lib/tdl/SDL/data_inf_c/part_data_pair_map_sdl.rb +19 -0
  724. data/lib/tdl/SDL/data_inf_c/trigger_data_inf_c_A1_sdl.rb +11 -0
  725. data/lib/tdl/SDL/data_inf_c/trigger_data_inf_c_sdl.rb +11 -0
  726. data/lib/tdl/SDL/data_inf_c/trigger_ready_ctrl_sdl.rb +12 -0
  727. data/lib/tdl/SDL/data_inf_c/vcs_data_c_comptable.rb +8 -0
  728. data/lib/tdl/SDL/data_inf_c/vcs_data_c_comptable_sdl.rb +9 -0
  729. data/lib/tdl/SDL/fifo/common_fifo_sdl.rb +20 -0
  730. data/lib/tdl/SDL/fifo/common_stack_sdl.rb +14 -0
  731. data/lib/tdl/SDL/fifo/independent_clock_fifo_a1_sdl.rb +21 -0
  732. data/lib/tdl/SDL/fifo/independent_clock_fifo_sdl.rb +20 -0
  733. data/lib/tdl/SDL/fifo/independent_stack_sdl.rb +18 -0
  734. data/lib/tdl/SDL/path_lib.rb +6 -0
  735. data/lib/tdl/VideoInf/simple_video_gen.rb +46 -0
  736. data/lib/tdl/VideoInf/video_from_axi4.rb +108 -0
  737. data/lib/tdl/VideoInf/video_lib.rb +8 -0
  738. data/lib/tdl/VideoInf/video_stream_2_axi_stream.rb +67 -0
  739. data/lib/tdl/VideoInf/video_to_axi4.rb +75 -0
  740. data/lib/tdl/auto_script/auto_gen_tdl.rb +49 -0
  741. data/lib/tdl/auto_script/autogensdl.rb +289 -0
  742. data/lib/tdl/auto_script/autogentdl_a2.rb +452 -0
  743. data/lib/tdl/auto_script/import_hdl.rb +35 -0
  744. data/lib/tdl/auto_script/import_sdl.rb +26 -0
  745. data/lib/tdl/auto_script/test_autogensdl.rb +73 -0
  746. data/lib/tdl/auto_script/tmp.rb +6 -0
  747. data/lib/tdl/auto_script/tmp/hdl_test_sdl.rb +12 -0
  748. data/lib/tdl/axi4/axi4_combin_wr_rd_batch_auto.rb +79 -0
  749. data/lib/tdl/axi4/axi4_direct.rb +36 -0
  750. data/lib/tdl/axi4/axi4_direct_A1_auto.rb +137 -0
  751. data/lib/tdl/axi4/axi4_direct_auto.rb +79 -0
  752. data/lib/tdl/axi4/axi4_direct_verb_auto.rb +71 -0
  753. data/lib/tdl/axi4/axi4_interconnect_verb.rb +323 -0
  754. data/lib/tdl/axi4/axi4_lib.rb +9 -0
  755. data/lib/tdl/axi4/axi4_long_to_axi4_wide_A1_auto.rb +79 -0
  756. data/lib/tdl/axi4/axi4_long_to_axi4_wide_auto.rb +71 -0
  757. data/lib/tdl/axi4/axi4_long_to_axi4_wide_verb_auto.rb +86 -0
  758. data/lib/tdl/axi4/axi4_packet_fifo_auto.rb +155 -0
  759. data/lib/tdl/axi4/axi4_pipe_auto.rb +127 -0
  760. data/lib/tdl/axi4/axi4_pipe_verb_auto.rb +127 -0
  761. data/lib/tdl/axi4/axi4_rd_auxiliary_gen_auto.rb +71 -0
  762. data/lib/tdl/axi4/axi4_wr_auxiliary_gen_without_resp_auto.rb +78 -0
  763. data/lib/tdl/axi4/axis_to_axi4_wr_auto.rb +85 -0
  764. data/lib/tdl/axi4/bak/__axi4_wr_auxiliary_gen_without_resp.rb +175 -0
  765. data/lib/tdl/axi4/bak/axi4_combin_wr_rd_batch_auto.rb +153 -0
  766. data/lib/tdl/axi4/bak/axi4_data_convert.rb +74 -0
  767. data/lib/tdl/axi4/bak/axi4_direct_auto.rb +153 -0
  768. data/lib/tdl/axi4/bak/axi4_direct_verb_auto.rb +126 -0
  769. data/lib/tdl/axi4/bak/axi4_interconnect.rb.bak +91 -0
  770. data/lib/tdl/axi4/bak/axi4_long_to_axi4_wide_A1_auto.rb +153 -0
  771. data/lib/tdl/axi4/bak/axi4_long_to_axi4_wide_auto.rb +126 -0
  772. data/lib/tdl/axi4/bak/axi4_long_to_axi4_wide_verb_auto.rb +179 -0
  773. data/lib/tdl/axi4/bak/axi4_packet_fifo.rb.bak +75 -0
  774. data/lib/tdl/axi4/bak/axi4_packet_fifo_auto.rb +259 -0
  775. data/lib/tdl/axi4/bak/axi4_partition_od.rb +84 -0
  776. data/lib/tdl/axi4/bak/axi4_pipe_auto.rb +174 -0
  777. data/lib/tdl/axi4/bak/axi4_wr_auxiliary_gen_without_resp_auto.rb +152 -0
  778. data/lib/tdl/axi4/bak/axis_to_axi4_wr_auto.rb +178 -0
  779. data/lib/tdl/axi4/bak/ddr3.rb +40 -0
  780. data/lib/tdl/axi4/bak/idata_pool_axi4_auto.rb +396 -0
  781. data/lib/tdl/axi4/bak/odata_pool_axi4_A1_auto.rb +230 -0
  782. data/lib/tdl/axi4/bak/odata_pool_axi4_auto.rb +386 -0
  783. data/lib/tdl/axi4/idata_pool_axi4_auto.rb +176 -0
  784. data/lib/tdl/axi4/odata_pool_axi4_A1_auto.rb +99 -0
  785. data/lib/tdl/axi4/odata_pool_axi4_auto.rb +141 -0
  786. data/lib/tdl/axi4/wide_axis_to_axi4_wr.rb +84 -0
  787. data/lib/tdl/axi4/wide_axis_to_axi4_wr_auto.rb +84 -0
  788. data/lib/tdl/axi_lite/axi_lite_master_empty_auto.rb +85 -0
  789. data/lib/tdl/axi_lite/axi_lite_slaver_empty_auto.rb +68 -0
  790. data/lib/tdl/axi_lite/bak/axi_lite_master_empty_auto.rb +95 -0
  791. data/lib/tdl/axi_lite/bak/axi_lite_slaver_empty_auto.rb +88 -0
  792. data/lib/tdl/axi_lite/bak/jtag_to_axilite_wrapper_auto.rb +112 -0
  793. data/lib/tdl/axi_lite/jtag_to_axilite_wrapper_auto.rb +63 -0
  794. data/lib/tdl/axi_lite/lite_cmd.rb +154 -0
  795. data/lib/tdl/axi_lite/prj_lib.rb +6 -0
  796. data/lib/tdl/axi_stream/axi_stream_cache_35bit_auto.rb +127 -0
  797. data/lib/tdl/axi_stream/axi_stream_cache_72_95bit_with_keep_auto.rb +127 -0
  798. data/lib/tdl/axi_stream/axi_stream_cache_B1_auto.rb +127 -0
  799. data/lib/tdl/axi_stream/axi_stream_cache_auto.rb +134 -0
  800. data/lib/tdl/axi_stream/axi_stream_cache_mirror_auto.rb +127 -0
  801. data/lib/tdl/axi_stream/axi_stream_cache_verb_auto.rb +127 -0
  802. data/lib/tdl/axi_stream/axi_stream_interconnect.rb +214 -0
  803. data/lib/tdl/axi_stream/axi_stream_interconnect_M2S.rb +85 -0
  804. data/lib/tdl/axi_stream/axi_stream_interconnect_M2S_A1.rb +129 -0
  805. data/lib/tdl/axi_stream/axi_stream_interconnect_M2S_A1_auto.rb +137 -0
  806. data/lib/tdl/axi_stream/axi_stream_interconnect_M2S_auto.rb +93 -0
  807. data/lib/tdl/axi_stream/axi_stream_interconnect_M2S_bind_tuser_auto.rb +137 -0
  808. data/lib/tdl/axi_stream/axi_stream_interconnect_S2M.rb +86 -0
  809. data/lib/tdl/axi_stream/axi_stream_interconnect_S2M_auto.rb +86 -0
  810. data/lib/tdl/axi_stream/axi_stream_interconnect_S2M_auto_auto.rb +91 -0
  811. data/lib/tdl/axi_stream/axi_stream_interconnect_S2M_with_keep.sv_auto.rb +93 -0
  812. data/lib/tdl/axi_stream/axi_stream_lib.rb +18 -0
  813. data/lib/tdl/axi_stream/axi_stream_long_cache_auto.rb +137 -0
  814. data/lib/tdl/axi_stream/axi_stream_long_fifo_auto.rb +146 -0
  815. data/lib/tdl/axi_stream/axi_stream_long_fifo_verb_auto.rb +146 -0
  816. data/lib/tdl/axi_stream/axi_stream_packet_fifo_auto.rb +137 -0
  817. data/lib/tdl/axi_stream/axi_stream_packet_fifo_with_info_auto.rb +164 -0
  818. data/lib/tdl/axi_stream/axi_stream_partition_A1_auto.rb +145 -0
  819. data/lib/tdl/axi_stream/axi_stream_partition_auto.rb +154 -0
  820. data/lib/tdl/axi_stream/axi_stream_wide_fifo_auto.rb +137 -0
  821. data/lib/tdl/axi_stream/axi_streams_combin_A1_auto.rb +184 -0
  822. data/lib/tdl/axi_stream/axi_streams_combin_auto.rb +193 -0
  823. data/lib/tdl/axi_stream/axi_streams_scaler_A1_auto.rb +175 -0
  824. data/lib/tdl/axi_stream/axi_streams_scaler_auto.rb +184 -0
  825. data/lib/tdl/axi_stream/axis_append_A1_auto.rb +209 -0
  826. data/lib/tdl/axi_stream/axis_append_auto.rb +200 -0
  827. data/lib/tdl/axi_stream/axis_combin_with_fifo_auto.rb +175 -0
  828. data/lib/tdl/axi_stream/axis_connect_pipe_A1.sv_auto.rb +127 -0
  829. data/lib/tdl/axi_stream/axis_connect_pipe_auto.rb +127 -0
  830. data/lib/tdl/axi_stream/axis_connect_pipe_with_info_auto.rb +155 -0
  831. data/lib/tdl/axi_stream/axis_direct_auto.rb +127 -0
  832. data/lib/tdl/axi_stream/axis_filter_auto.rb +136 -0
  833. data/lib/tdl/axi_stream/axis_full_to_data_c_auto.rb +71 -0
  834. data/lib/tdl/axi_stream/axis_head_cut_auto.rb +137 -0
  835. data/lib/tdl/axi_stream/axis_length_fill_auto.rb +136 -0
  836. data/lib/tdl/axi_stream/axis_length_split_auto.rb +136 -0
  837. data/lib/tdl/axi_stream/axis_length_split_with_addr_auto.rb +164 -0
  838. data/lib/tdl/axi_stream/axis_length_split_writh_user_auto.rb +136 -0
  839. data/lib/tdl/axi_stream/axis_link_trigger_auto.rb +93 -0
  840. data/lib/tdl/axi_stream/axis_master_empty_auto.rb +85 -0
  841. data/lib/tdl/axi_stream/axis_mirror_to_master_auto.rb +137 -0
  842. data/lib/tdl/axi_stream/axis_mirrors_auto.rb +173 -0
  843. data/lib/tdl/axi_stream/axis_pkt_fifo_filter_keep_A1_auto.rb +137 -0
  844. data/lib/tdl/axi_stream/axis_pkt_fifo_filter_keep_auto.rb +137 -0
  845. data/lib/tdl/axi_stream/axis_ram_buffer_auto.rb +164 -0
  846. data/lib/tdl/axi_stream/axis_slaver_empty_auto.rb +68 -0
  847. data/lib/tdl/axi_stream/axis_slaver_pipe_A1_auto.rb +137 -0
  848. data/lib/tdl/axi_stream/axis_slaver_pipe_auto.rb +127 -0
  849. data/lib/tdl/axi_stream/axis_to_axi4_or_lite_auto.rb +87 -0
  850. data/lib/tdl/axi_stream/axis_to_data_inf_auto.rb +79 -0
  851. data/lib/tdl/axi_stream/axis_to_lite_rd_auto.rb +87 -0
  852. data/lib/tdl/axi_stream/axis_to_lite_wr_auto.rb +79 -0
  853. data/lib/tdl/axi_stream/axis_uncompress_auto.rb +86 -0
  854. data/lib/tdl/axi_stream/axis_valve_auto.rb +136 -0
  855. data/lib/tdl/axi_stream/axis_valve_with_pipe_auto.rb +153 -0
  856. data/lib/tdl/axi_stream/axis_width_combin_A1_auto.rb +127 -0
  857. data/lib/tdl/axi_stream/axis_width_combin_auto.rb +127 -0
  858. data/lib/tdl/axi_stream/axis_width_convert_auto.rb +127 -0
  859. data/lib/tdl/axi_stream/axis_width_destruct_A1.sv_auto.rb +127 -0
  860. data/lib/tdl/axi_stream/axis_width_destruct_auto.rb +127 -0
  861. data/lib/tdl/axi_stream/bak/__axi_stream_interconnect_S2M.rb +186 -0
  862. data/lib/tdl/axi_stream/bak/_axis_mirrors.rb +270 -0
  863. data/lib/tdl/axi_stream/bak/axi4_to_native_for_ddr_ip_verb_auto.rb +343 -0
  864. data/lib/tdl/axi_stream/bak/axi_stream_S2M.rb +63 -0
  865. data/lib/tdl/axi_stream/bak/axi_stream_cache_35bit_auto.rb +138 -0
  866. data/lib/tdl/axi_stream/bak/axi_stream_cache_72_95bit_with_keep_auto.rb +138 -0
  867. data/lib/tdl/axi_stream/bak/axi_stream_cache_B1_auto.rb +138 -0
  868. data/lib/tdl/axi_stream/bak/axi_stream_cache_auto.rb +138 -0
  869. data/lib/tdl/axi_stream/bak/axi_stream_cache_mirror_auto.rb +138 -0
  870. data/lib/tdl/axi_stream/bak/axi_stream_cache_verb_auto.rb +138 -0
  871. data/lib/tdl/axi_stream/bak/axi_stream_interconnect_S2M_auto.rb +147 -0
  872. data/lib/tdl/axi_stream/bak/axi_stream_interconnect_S2M_with_keep.sv_auto.rb +166 -0
  873. data/lib/tdl/axi_stream/bak/axi_stream_long_fifo_auto.rb +177 -0
  874. data/lib/tdl/axi_stream/bak/axi_stream_packet_fifo_auto.rb +158 -0
  875. data/lib/tdl/axi_stream/bak/axi_stream_packet_fifo_with_info_auto.rb +215 -0
  876. data/lib/tdl/axi_stream/bak/axi_stream_partition_A1_auto.rb +176 -0
  877. data/lib/tdl/axi_stream/bak/axi_stream_partition_auto.rb +195 -0
  878. data/lib/tdl/axi_stream/bak/axi_streams_combin_auto.rb +274 -0
  879. data/lib/tdl/axi_stream/bak/axi_streams_scaler.rb +300 -0
  880. data/lib/tdl/axi_stream/bak/axi_streams_scaler_auto.rb +255 -0
  881. data/lib/tdl/axi_stream/bak/axis_append_A1.rb +265 -0
  882. data/lib/tdl/axi_stream/bak/axis_append_A1_auto.rb +310 -0
  883. data/lib/tdl/axi_stream/bak/axis_append_auto.rb +291 -0
  884. data/lib/tdl/axi_stream/bak/axis_combin_with_fifo_auto.rb +236 -0
  885. data/lib/tdl/axi_stream/bak/axis_connect_pipe.rb.bak +207 -0
  886. data/lib/tdl/axi_stream/bak/axis_connect_pipe_A1.sv_auto.rb +138 -0
  887. data/lib/tdl/axi_stream/bak/axis_connect_pipe_auto.rb +138 -0
  888. data/lib/tdl/axi_stream/bak/axis_connect_pipe_with_info_auto.rb +196 -0
  889. data/lib/tdl/axi_stream/bak/axis_direct_auto.rb +138 -0
  890. data/lib/tdl/axi_stream/bak/axis_filter_auto.rb +157 -0
  891. data/lib/tdl/axi_stream/bak/axis_length_fill_auto.rb +157 -0
  892. data/lib/tdl/axi_stream/bak/axis_length_split_auto.rb +157 -0
  893. data/lib/tdl/axi_stream/bak/axis_length_split_with_addr_auto.rb +215 -0
  894. data/lib/tdl/axi_stream/bak/axis_master_empty_auto.rb +95 -0
  895. data/lib/tdl/axi_stream/bak/axis_mirrors_auto.rb +234 -0
  896. data/lib/tdl/axi_stream/bak/axis_pkt_fifo_filter_keep_auto.rb +158 -0
  897. data/lib/tdl/axi_stream/bak/axis_ram_buffer_auto.rb +215 -0
  898. data/lib/tdl/axi_stream/bak/axis_slaver_empty_auto.rb +88 -0
  899. data/lib/tdl/axi_stream/bak/axis_slaver_pipe_A1_auto.rb +158 -0
  900. data/lib/tdl/axi_stream/bak/axis_slaver_pipe_auto.rb +138 -0
  901. data/lib/tdl/axi_stream/bak/axis_to_axi4_wr_auto.rb +205 -0
  902. data/lib/tdl/axi_stream/bak/axis_to_data_inf_auto.rb +108 -0
  903. data/lib/tdl/axi_stream/bak/axis_uncompress_auto.rb +147 -0
  904. data/lib/tdl/axi_stream/bak/axis_valve_auto.rb +157 -0
  905. data/lib/tdl/axi_stream/bak/axis_valve_with_pipe_auto.rb +157 -0
  906. data/lib/tdl/axi_stream/bak/axis_width_combin_auto.rb +138 -0
  907. data/lib/tdl/axi_stream/bak/axis_width_convert_auto.rb +138 -0
  908. data/lib/tdl/axi_stream/bak/axis_width_destruct_auto.rb +138 -0
  909. data/lib/tdl/axi_stream/bak/axis_wrapper_oled_auto.rb +230 -0
  910. data/lib/tdl/axi_stream/bak/check_stream_crc_auto.rb +88 -0
  911. data/lib/tdl/axi_stream/bak/data_to_axis_inf_A1.rb +129 -0
  912. data/lib/tdl/axi_stream/bak/data_to_axis_inf_A1_auto.rb +127 -0
  913. data/lib/tdl/axi_stream/bak/data_to_axis_inf_auto.rb +146 -0
  914. data/lib/tdl/axi_stream/bak/datainf_c_master_empty_auto.rb +115 -0
  915. data/lib/tdl/axi_stream/bak/datainf_c_slaver_empty_auto.rb +108 -0
  916. data/lib/tdl/axi_stream/bak/datainf_master_empty_auto.rb +115 -0
  917. data/lib/tdl/axi_stream/bak/datainf_slaver_empty_auto.rb +108 -0
  918. data/lib/tdl/axi_stream/bak/dynamic_port_cfg_auto.rb +246 -0
  919. data/lib/tdl/axi_stream/bak/dynnamic_addr_cfg_auto.rb +200 -0
  920. data/lib/tdl/axi_stream/bak/gen_big_field_table_auto.rb +210 -0
  921. data/lib/tdl/axi_stream/bak/gen_origin_axis_auto.rb +172 -0
  922. data/lib/tdl/axi_stream/bak/gen_simple_axis_auto.rb +191 -0
  923. data/lib/tdl/axi_stream/bak/idata_pool_axi4_auto.rb +346 -0
  924. data/lib/tdl/axi_stream/bak/parse_big_field_table_A1_auto.rb +292 -0
  925. data/lib/tdl/axi_stream/bak/parse_big_field_table_A2_auto.rb +292 -0
  926. data/lib/tdl/axi_stream/bak/parse_big_field_table_auto.rb +292 -0
  927. data/lib/tdl/axi_stream/bak/part_data_pair_map_auto.rb +362 -0
  928. data/lib/tdl/axi_stream/bak/simple_video_gen_A2.rb +146 -0
  929. data/lib/tdl/axi_stream/bak/simple_video_gen_A2_auto.rb +151 -0
  930. data/lib/tdl/axi_stream/bak/stream_crc_auto.rb +107 -0
  931. data/lib/tdl/axi_stream/bak/udp_server_bfm_auto.rb +131 -0
  932. data/lib/tdl/axi_stream/bak/udp_server_ctrl_bfm_auto.rb +131 -0
  933. data/lib/tdl/axi_stream/bak/video_to_VDMA.rb +153 -0
  934. data/lib/tdl/axi_stream/bak/video_to_VDMA_auto.rb +158 -0
  935. data/lib/tdl/axi_stream/check_stream_crc_auto.rb +63 -0
  936. data/lib/tdl/axi_stream/data_c_to_axis_full_auto.rb +71 -0
  937. data/lib/tdl/axi_stream/data_to_axis_inf_A1_auto.rb +78 -0
  938. data/lib/tdl/axi_stream/data_to_axis_inf_auto.rb +85 -0
  939. data/lib/tdl/axi_stream/gen_big_field_table_auto.rb +140 -0
  940. data/lib/tdl/axi_stream/gen_origin_axis_A1_auto.rb +131 -0
  941. data/lib/tdl/axi_stream/gen_origin_axis_auto.rb +122 -0
  942. data/lib/tdl/axi_stream/gen_simple_axis_auto.rb +131 -0
  943. data/lib/tdl/axi_stream/parse_big_field_table_A1_auto.rb +201 -0
  944. data/lib/tdl/axi_stream/parse_big_field_table_A2_auto.rb +201 -0
  945. data/lib/tdl/axi_stream/parse_big_field_table_auto.rb +201 -0
  946. data/lib/tdl/axi_stream/stream_crc_auto.rb +70 -0
  947. data/lib/tdl/basefunc.rb +338 -0
  948. data/lib/tdl/bfm/axi4_illegal_bfm.rb +203 -0
  949. data/lib/tdl/bfm/axi_stream/axi_stream_bfm.rb +351 -0
  950. data/lib/tdl/bfm/axi_stream/axis_bfm_exp.yml +38 -0
  951. data/lib/tdl/bfm/axi_stream/axis_bfm_module_build.rb +120 -0
  952. data/lib/tdl/bfm/axi_stream/axis_bfm_parse.rb +10 -0
  953. data/lib/tdl/bfm/axi_stream/axis_slice_to_logic.rb +71 -0
  954. data/lib/tdl/bfm/bfm_lib.rb +7 -0
  955. data/lib/tdl/bfm/logic_initial_block.rb +52 -0
  956. data/lib/tdl/cfg.yml +4 -0
  957. data/lib/tdl/class_hdl/hdl_always_comb.rb +54 -0
  958. data/lib/tdl/class_hdl/hdl_always_ff.rb +175 -0
  959. data/lib/tdl/class_hdl/hdl_assign.rb +49 -0
  960. data/lib/tdl/class_hdl/hdl_block_ifelse.rb +349 -0
  961. data/lib/tdl/class_hdl/hdl_data.rb +24 -0
  962. data/lib/tdl/class_hdl/hdl_ex_defarraychain.rb +231 -0
  963. data/lib/tdl/class_hdl/hdl_foreach.rb +114 -0
  964. data/lib/tdl/class_hdl/hdl_function.rb +277 -0
  965. data/lib/tdl/class_hdl/hdl_generate.rb +218 -0
  966. data/lib/tdl/class_hdl/hdl_initial.rb +147 -0
  967. data/lib/tdl/class_hdl/hdl_module_def.rb +447 -0
  968. data/lib/tdl/class_hdl/hdl_package.rb +150 -0
  969. data/lib/tdl/class_hdl/hdl_parameter.rb +73 -0
  970. data/lib/tdl/class_hdl/hdl_random.rb +31 -0
  971. data/lib/tdl/class_hdl/hdl_redefine_opertor.rb +653 -0
  972. data/lib/tdl/class_hdl/hdl_struct.rb +209 -0
  973. data/lib/tdl/class_hdl/hdl_verify.rb +136 -0
  974. data/lib/tdl/data_inf/_data_mirrors.rb +92 -0
  975. data/lib/tdl/data_inf/bak/_data_mirrors.rb +273 -0
  976. data/lib/tdl/data_inf/bak/common_fifo_auto.rb +279 -0
  977. data/lib/tdl/data_inf/bak/data_bind_auto.rb +128 -0
  978. data/lib/tdl/data_inf/bak/data_c_direct_auto.rb +138 -0
  979. data/lib/tdl/data_inf/bak/data_c_direct_mirror_auto.rb +138 -0
  980. data/lib/tdl/data_inf/bak/data_c_tmp_cache_auto.rb +138 -0
  981. data/lib/tdl/data_inf/bak/data_condition_mirror_auto.rb +216 -0
  982. data/lib/tdl/data_inf/bak/data_condition_valve_auto.rb +215 -0
  983. data/lib/tdl/data_inf/bak/data_connect_pipe.rb +80 -0
  984. data/lib/tdl/data_inf/bak/data_connect_pipe_inf_auto.rb +138 -0
  985. data/lib/tdl/data_inf/bak/data_inf_c_interconnect.rb +86 -0
  986. data/lib/tdl/data_inf/bak/data_inf_c_pipe_condition_auto.rb +157 -0
  987. data/lib/tdl/data_inf/bak/data_inf_cross_clk.rb +60 -0
  988. data/lib/tdl/data_inf/bak/data_inf_interconnect.rb +144 -0
  989. data/lib/tdl/data_inf/bak/data_inf_planer.rb +78 -0
  990. data/lib/tdl/data_inf/bak/data_inf_ticktack.rb +80 -0
  991. data/lib/tdl/data_inf/bak/data_inf_ticktock_auto.rb +0 -0
  992. data/lib/tdl/data_inf/bak/data_mirrors_auto.rb +234 -0
  993. data/lib/tdl/data_inf/bak/data_mirrors_verb.sv_auto.rb +234 -0
  994. data/lib/tdl/data_inf/bak/data_uncompress_auto.rb +177 -0
  995. data/lib/tdl/data_inf/bak/data_valve_auto.rb +127 -0
  996. data/lib/tdl/data_inf/bak/datainf_c_master_empty_auto.rb +95 -0
  997. data/lib/tdl/data_inf/bak/datainf_c_slaver_empty_auto.rb +88 -0
  998. data/lib/tdl/data_inf/bak/datainf_master_empty_auto.rb +95 -0
  999. data/lib/tdl/data_inf/bak/datainf_slaver_empty_auto.rb +88 -0
  1000. data/lib/tdl/data_inf/bak/independent_clock_fifo_auto.rb +298 -0
  1001. data/lib/tdl/data_inf/bak/part_data_pair_map_auto.rb +306 -0
  1002. data/lib/tdl/data_inf/common_fifo_auto.rb +141 -0
  1003. data/lib/tdl/data_inf/data_bind_auto.rb +79 -0
  1004. data/lib/tdl/data_inf/data_c_cache_auto.rb +135 -0
  1005. data/lib/tdl/data_inf/data_c_direct_auto.rb +127 -0
  1006. data/lib/tdl/data_inf/data_c_direct_mirror_auto.rb +127 -0
  1007. data/lib/tdl/data_inf/data_c_interconnect.rb +97 -0
  1008. data/lib/tdl/data_inf/data_c_pipe_force_vld_auto.rb +127 -0
  1009. data/lib/tdl/data_inf/data_c_pipe_inf_auto.rb +127 -0
  1010. data/lib/tdl/data_inf/data_c_pipe_intc_M2S_verc_auto.rb +123 -0
  1011. data/lib/tdl/data_inf/data_c_tmp_cache_auto.rb +127 -0
  1012. data/lib/tdl/data_inf/data_condition_mirror_auto.rb +165 -0
  1013. data/lib/tdl/data_inf/data_condition_valve_auto.rb +164 -0
  1014. data/lib/tdl/data_inf/data_connect_pipe_inf_auto.rb +127 -0
  1015. data/lib/tdl/data_inf/data_inf_c_pipe_condition_auto.rb +136 -0
  1016. data/lib/tdl/data_inf/data_mirrors_auto.rb +173 -0
  1017. data/lib/tdl/data_inf/data_mirrors_verb.sv_auto.rb +173 -0
  1018. data/lib/tdl/data_inf/data_uncompress_auto.rb +146 -0
  1019. data/lib/tdl/data_inf/data_valve_auto.rb +104 -0
  1020. data/lib/tdl/data_inf/datainf_c_master_empty_auto.rb +85 -0
  1021. data/lib/tdl/data_inf/datainf_c_slaver_empty_auto.rb +68 -0
  1022. data/lib/tdl/data_inf/datainf_master_empty_auto.rb +85 -0
  1023. data/lib/tdl/data_inf/datainf_slaver_empty_auto.rb +68 -0
  1024. data/lib/tdl/data_inf/independent_clock_fifo_auto.rb +141 -0
  1025. data/lib/tdl/data_inf/part_data_pair_map_auto.rb +149 -0
  1026. data/lib/tdl/data_inf/path_lib.rb +18 -0
  1027. data/lib/tdl/elements/Reset.rb +153 -0
  1028. data/lib/tdl/elements/axi4.rb +642 -0
  1029. data/lib/tdl/elements/axi_lite.rb +246 -0
  1030. data/lib/tdl/elements/axi_stream.rb +674 -0
  1031. data/lib/tdl/elements/clock.rb +193 -0
  1032. data/lib/tdl/elements/common_configure_reg.rb +135 -0
  1033. data/lib/tdl/elements/data_inf.rb +660 -0
  1034. data/lib/tdl/elements/logic.rb +356 -0
  1035. data/lib/tdl/elements/mail_box.rb +64 -0
  1036. data/lib/tdl/elements/originclass.rb +689 -0
  1037. data/lib/tdl/elements/parameter.rb +318 -0
  1038. data/lib/tdl/elements/track_inf.rb +163 -0
  1039. data/lib/tdl/elements/videoinf.rb +224 -0
  1040. data/lib/tdl/examples/10_random/exp_random.rb +13 -0
  1041. data/lib/tdl/examples/10_random/exp_random.sv +36 -0
  1042. data/lib/tdl/examples/11_test_unit/dve.tcl +64 -0
  1043. data/lib/tdl/examples/11_test_unit/exp_test_unit.rb +58 -0
  1044. data/lib/tdl/examples/11_test_unit/exp_test_unit.sv +35 -0
  1045. data/lib/tdl/examples/11_test_unit/exp_test_unit_constraints.xdc +25 -0
  1046. data/lib/tdl/examples/11_test_unit/modules/sub_md0.rb +23 -0
  1047. data/lib/tdl/examples/11_test_unit/modules/sub_md0.sv +41 -0
  1048. data/lib/tdl/examples/11_test_unit/modules/sub_md1.rb +25 -0
  1049. data/lib/tdl/examples/11_test_unit/modules/sub_md1.sv +41 -0
  1050. data/lib/tdl/examples/11_test_unit/tb_exp_test_unit.sv +28 -0
  1051. data/lib/tdl/examples/11_test_unit/tu0.sv +38 -0
  1052. data/lib/tdl/examples/11_test_unit/tu1.sv +28 -0
  1053. data/lib/tdl/examples/1_define_module/example1.rb +39 -0
  1054. data/lib/tdl/examples/1_define_module/exmple_md.sv +50 -0
  1055. data/lib/tdl/examples/2_hdl_class/always_comb.rb +99 -0
  1056. data/lib/tdl/examples/2_hdl_class/always_ff.rb +143 -0
  1057. data/lib/tdl/examples/2_hdl_class/case.rb +93 -0
  1058. data/lib/tdl/examples/2_hdl_class/foreach.rb +21 -0
  1059. data/lib/tdl/examples/2_hdl_class/function.rb +34 -0
  1060. data/lib/tdl/examples/2_hdl_class/generate.rb +62 -0
  1061. data/lib/tdl/examples/2_hdl_class/module_def.rb +33 -0
  1062. data/lib/tdl/examples/2_hdl_class/module_head_import_package.rb +36 -0
  1063. data/lib/tdl/examples/2_hdl_class/module_instance_test.rb +13 -0
  1064. data/lib/tdl/examples/2_hdl_class/package.rb +29 -0
  1065. data/lib/tdl/examples/2_hdl_class/package2.rb +21 -0
  1066. data/lib/tdl/examples/2_hdl_class/simple_assign.rb +39 -0
  1067. data/lib/tdl/examples/2_hdl_class/state_case.rb +65 -0
  1068. data/lib/tdl/examples/2_hdl_class/struct.rb +25 -0
  1069. data/lib/tdl/examples/2_hdl_class/struct_function.rb +28 -0
  1070. data/lib/tdl/examples/2_hdl_class/test_axi4_M2S.rb +16 -0
  1071. data/lib/tdl/examples/2_hdl_class/test_initial_assert.rb +11 -0
  1072. data/lib/tdl/examples/2_hdl_class/test_inst_sugar.rb +28 -0
  1073. data/lib/tdl/examples/2_hdl_class/test_module_port.rb +47 -0
  1074. data/lib/tdl/examples/2_hdl_class/test_module_var.rb +18 -0
  1075. data/lib/tdl/examples/2_hdl_class/tmp/always_comb_test.sv +108 -0
  1076. data/lib/tdl/examples/2_hdl_class/tmp/always_ff_test.sv +35 -0
  1077. data/lib/tdl/examples/2_hdl_class/tmp/case_test.sv +105 -0
  1078. data/lib/tdl/examples/2_hdl_class/tmp/head_pkg_module.sv +42 -0
  1079. data/lib/tdl/examples/2_hdl_class/tmp/init_module.sv +110 -0
  1080. data/lib/tdl/examples/2_hdl_class/tmp/module_instance_test.sv +31 -0
  1081. data/lib/tdl/examples/2_hdl_class/tmp/port_module.sv +99 -0
  1082. data/lib/tdl/examples/2_hdl_class/tmp/simple_assign_test.sv +27 -0
  1083. data/lib/tdl/examples/2_hdl_class/tmp/state_case_test.sv +78 -0
  1084. data/lib/tdl/examples/2_hdl_class/tmp/test_axi4_M2S.sv +30 -0
  1085. data/lib/tdl/examples/2_hdl_class/tmp/test_foreach.sv +34 -0
  1086. data/lib/tdl/examples/2_hdl_class/tmp/test_function.sv +52 -0
  1087. data/lib/tdl/examples/2_hdl_class/tmp/test_initial_assert.sv +31 -0
  1088. data/lib/tdl/examples/2_hdl_class/tmp/test_inst_sugar.sv +42 -0
  1089. data/lib/tdl/examples/2_hdl_class/tmp/test_module.sv +36 -0
  1090. data/lib/tdl/examples/2_hdl_class/tmp/test_module_port.sv +33 -0
  1091. data/lib/tdl/examples/2_hdl_class/tmp/test_module_var.sv +35 -0
  1092. data/lib/tdl/examples/2_hdl_class/tmp/test_package.sv +38 -0
  1093. data/lib/tdl/examples/2_hdl_class/tmp/test_package2.sv +36 -0
  1094. data/lib/tdl/examples/2_hdl_class/tmp/test_struct.sv +38 -0
  1095. data/lib/tdl/examples/2_hdl_class/tmp/test_struct_function.sv +44 -0
  1096. data/lib/tdl/examples/2_hdl_class/tmp/test_vcs_string.sv +27 -0
  1097. data/lib/tdl/examples/2_hdl_class/tmp/text_generate.sv +54 -0
  1098. data/lib/tdl/examples/2_hdl_class/vcs_string.rb +5 -0
  1099. data/lib/tdl/examples/3_hdl_sdl_instance/hdl_test.sv +13 -0
  1100. data/lib/tdl/examples/3_hdl_sdl_instance/main.rb +26 -0
  1101. data/lib/tdl/examples/3_hdl_sdl_instance/main_md.sv +42 -0
  1102. data/lib/tdl/examples/3_hdl_sdl_instance/sdl_md.sv +30 -0
  1103. data/lib/tdl/examples/3_hdl_sdl_instance/sdl_test.rb +9 -0
  1104. data/lib/tdl/examples/4_generate/example.rb +38 -0
  1105. data/lib/tdl/examples/4_generate/test_generate.sv +59 -0
  1106. data/lib/tdl/examples/5_logic_combin/login_combin.rb +22 -0
  1107. data/lib/tdl/examples/5_logic_combin/test_logic_combin.sv +36 -0
  1108. data/lib/tdl/examples/6_module_with_interface/example.rb +48 -0
  1109. data/lib/tdl/examples/6_module_with_interface/example_interface.sv +40 -0
  1110. data/lib/tdl/examples/6_module_with_interface/inf_collect.rb +54 -0
  1111. data/lib/tdl/examples/6_module_with_interface/inf_collect.sv +63 -0
  1112. data/lib/tdl/examples/7_module_with_package/body_package.rb +3 -0
  1113. data/lib/tdl/examples/7_module_with_package/body_package.sv +25 -0
  1114. data/lib/tdl/examples/7_module_with_package/example_pkg.rb +20 -0
  1115. data/lib/tdl/examples/7_module_with_package/example_pkg.sv +35 -0
  1116. data/lib/tdl/examples/7_module_with_package/head_package.rb +8 -0
  1117. data/lib/tdl/examples/7_module_with_package/head_package.sv +29 -0
  1118. data/lib/tdl/examples/8_top_module/dve.tcl +64 -0
  1119. data/lib/tdl/examples/8_top_module/example.rb +8 -0
  1120. data/lib/tdl/examples/8_top_module/pins.yml +7 -0
  1121. data/lib/tdl/examples/8_top_module/tb_test_top.sv +29 -0
  1122. data/lib/tdl/examples/8_top_module/test_top.sv +28 -0
  1123. data/lib/tdl/examples/8_top_module/test_top_constraints.xdc +37 -0
  1124. data/lib/tdl/examples/9_itegration/A_itgt/a_test_md.sv +29 -0
  1125. data/lib/tdl/examples/9_itegration/A_itgt/a_test_module.rb +6 -0
  1126. data/lib/tdl/examples/9_itegration/A_itgt/itgt_module_a_block.rb +34 -0
  1127. data/lib/tdl/examples/9_itegration/clock_manage/itgt_module_clock_manage.rb +33 -0
  1128. data/lib/tdl/examples/9_itegration/clock_manage/simple_clock.rb +7 -0
  1129. data/lib/tdl/examples/9_itegration/clock_manage/simple_clock.sv +29 -0
  1130. data/lib/tdl/examples/9_itegration/dve.tcl +64 -0
  1131. data/lib/tdl/examples/9_itegration/pins.yml +4 -0
  1132. data/lib/tdl/examples/9_itegration/tb_test_top.sv +29 -0
  1133. data/lib/tdl/examples/9_itegration/tb_test_tttop.sv +29 -0
  1134. data/lib/tdl/examples/9_itegration/test_top.sv +40 -0
  1135. data/lib/tdl/examples/9_itegration/test_top_constraints.xdc +29 -0
  1136. data/lib/tdl/examples/9_itegration/test_tttop.sv +40 -0
  1137. data/lib/tdl/examples/9_itegration/test_tttop_constraints.xdc +29 -0
  1138. data/lib/tdl/examples/9_itegration/top.rb +11 -0
  1139. data/lib/tdl/examples/readme.md +31 -0
  1140. data/lib/tdl/exlib/common_cfg_reg_inf.rb +139 -0
  1141. data/lib/tdl/exlib/constraints.rb +286 -0
  1142. data/lib/tdl/exlib/constraints_verb.rb +304 -0
  1143. data/lib/tdl/exlib/dve_tcl.rb +162 -0
  1144. data/lib/tdl/exlib/element_class_vars.rb +106 -0
  1145. data/lib/tdl/exlib/global_param.rb +108 -0
  1146. data/lib/tdl/exlib/integral_test/bak/integral_test.rb +206 -0
  1147. data/lib/tdl/exlib/integral_test/clock_itest.rb +28 -0
  1148. data/lib/tdl/exlib/integral_test/diff_clock_itest.rb +30 -0
  1149. data/lib/tdl/exlib/integral_test/io_itest.rb +41 -0
  1150. data/lib/tdl/exlib/integral_test/reset_itest.rb +31 -0
  1151. data/lib/tdl/exlib/integral_test/simple_logic_itest.rb +19 -0
  1152. data/lib/tdl/exlib/itegration.rb +307 -0
  1153. data/lib/tdl/exlib/itegration_verb.rb +913 -0
  1154. data/lib/tdl/exlib/parse_argv.rb +43 -0
  1155. data/lib/tdl/exlib/sdlmodule_sim.bak.rb +375 -0
  1156. data/lib/tdl/exlib/test_point.rb +287 -0
  1157. data/lib/tdl/global_scan.rb +134 -0
  1158. data/lib/tdl/rebuild_ele/axi4.rb +141 -0
  1159. data/lib/tdl/rebuild_ele/axi_lite.rb +56 -0
  1160. data/lib/tdl/rebuild_ele/axi_stream.rb +121 -0
  1161. data/lib/tdl/rebuild_ele/cm_ram_inf.sv +105 -0
  1162. data/lib/tdl/rebuild_ele/cm_ram_inf_define.rb +44 -0
  1163. data/lib/tdl/rebuild_ele/data_inf.rb +27 -0
  1164. data/lib/tdl/rebuild_ele/data_inf_c.rb +83 -0
  1165. data/lib/tdl/rebuild_ele/ele_base.rb +822 -0
  1166. data/lib/tdl/rebuild_ele/readme.md +1 -0
  1167. data/lib/tdl/sdlimplement/resource.yml +154 -0
  1168. data/lib/tdl/sdlimplement/sdl_impl_module.rb +391 -0
  1169. data/lib/tdl/sdlimplement/sdl_impl_param.rb +26 -0
  1170. data/lib/tdl/sdlimplement/test.rb +64 -0
  1171. data/lib/tdl/sdlmodule/bak/sdlmodule_varible_ex.rb +120 -0
  1172. data/lib/tdl/sdlmodule/generator_block_module.rb +84 -0
  1173. data/lib/tdl/sdlmodule/sdlmodule.rb +407 -0
  1174. data/lib/tdl/sdlmodule/sdlmodule_arraychain.rb +333 -0
  1175. data/lib/tdl/sdlmodule/sdlmodule_draw.rb +272 -0
  1176. data/lib/tdl/sdlmodule/sdlmodule_head_logo.txt +10 -0
  1177. data/lib/tdl/sdlmodule/sdlmodule_instance.rb +623 -0
  1178. data/lib/tdl/sdlmodule/sdlmodule_port_define.rb +374 -0
  1179. data/lib/tdl/sdlmodule/sdlmodule_varible.rb +160 -0
  1180. data/lib/tdl/sdlmodule/sdlmodule_vcs_comptable.rb +140 -0
  1181. data/lib/tdl/sdlmodule/techbench_module.rb +14 -0
  1182. data/lib/tdl/sdlmodule/test_unit_module.rb +138 -0
  1183. data/lib/tdl/sdlmodule/top_module.rb +543 -0
  1184. data/lib/tdl/tdl.rb +265 -0
  1185. data/lib/tdl/tdlerror/tdlerror.rb +8 -0
  1186. data/lib/tdl/testunit/test_all.rb +4 -0
  1187. data/lib/tdl/testunit/test_array_chain.rb +89 -0
  1188. data/lib/tdl/testunit/test_tmp.rb +47 -0
  1189. metadata +1301 -0
@@ -0,0 +1,22 @@
1
+ /**********************************************
2
+ _______________________________________
3
+ ___________ Cook Darwin __________
4
+ _______________________________________
5
+ descript:
6
+ author : Cook.Darwin
7
+ Version: VERA.0.0
8
+ creaded: 2017/6/13
9
+ madified:
10
+ ***********************************************/
11
+ `timescale 1ns/1ps
12
+ (* datainf_c = "true" *)
13
+ module datainf_c_master_empty (
14
+ (* data_down = "true" *)
15
+ data_inf_c.master master
16
+ );
17
+
18
+
19
+ assign master.valid = 1'b0;
20
+ assign master.data = '0;
21
+
22
+ endmodule
@@ -0,0 +1,22 @@
1
+ /**********************************************
2
+ _______________________________________
3
+ ___________ Cook Darwin __________
4
+ _______________________________________
5
+ descript:
6
+ author : Cook.Darwin
7
+ Version: VERA.0.0
8
+ creaded: 2017/6/13
9
+ madified:
10
+ ***********************************************/
11
+ `timescale 1ns/1ps
12
+ (* datainf_c = "true" *)
13
+ module datainf_c_slaver_empty (
14
+ (* data_up = "true" *)
15
+ data_inf_c.slaver slaver
16
+ );
17
+
18
+ assign slaver.ready = 1'b1;
19
+ // assign master.valid = 1'b0;
20
+ // assign master.data = '0;
21
+
22
+ endmodule
@@ -0,0 +1,22 @@
1
+ /**********************************************
2
+ _______________________________________
3
+ ___________ Cook Darwin __________
4
+ _______________________________________
5
+ descript:
6
+ author : Cook.Darwin
7
+ Version: VERA.0.0
8
+ creaded: 2017/6/13
9
+ madified:
10
+ ***********************************************/
11
+ `timescale 1ns/1ps
12
+ (* datainf = "true" *)
13
+ module datainf_master_empty (
14
+ (* data_down = "true" *)
15
+ data_inf.master master
16
+ );
17
+
18
+
19
+ assign master.valid = 1'b0;
20
+ assign master.data = '0;
21
+
22
+ endmodule
@@ -0,0 +1,22 @@
1
+ /**********************************************
2
+ _______________________________________
3
+ ___________ Cook Darwin __________
4
+ _______________________________________
5
+ descript:
6
+ author : Cook.Darwin
7
+ Version: VERA.0.0
8
+ creaded: 2017/6/13
9
+ madified:
10
+ ***********************************************/
11
+ `timescale 1ns/1ps
12
+ (* datainf = "true" *)
13
+ module datainf_slaver_empty (
14
+ (* data_up = "true" *)
15
+ data_inf.slaver slaver
16
+ );
17
+
18
+ assign slaver.ready = 1'b1;
19
+ // assign master.valid = 1'b0;
20
+ // assign master.data = '0;
21
+
22
+ endmodule
@@ -0,0 +1,111 @@
1
+ /**********************************************
2
+ _______________________________________
3
+ ___________ Cook Darwin __________
4
+ _______________________________________
5
+ descript:
6
+ author : Cook.Darwin
7
+ Version: VERA.0.0
8
+ creaded: 2017/6/7
9
+ madified:
10
+ ***********************************************/
11
+ // `include "define_macro.sv"
12
+ `timescale 1ns/1ps
13
+ (* datainf_c = "true" *)
14
+ module part_data_pair_map #(
15
+ parameter NUM = 8,
16
+ parameter ISIZE = 8,
17
+ parameter OSIZE = 8
18
+ )(
19
+ //-->> WRITE
20
+ data_inf_c.slaver write_inf, //data -> [ISIZE-1:0][OSIZE-1:0]
21
+ //-->> READ <<----------------
22
+ data_inf_c.slaver ipart_inf, //data -> [ISIZE-1:0] + other
23
+ data_inf_c.slaver opart_inf, //data -> [OSIZE-1:0] + other
24
+ //-->> DELETE
25
+ data_inf_c.slaver idel_inf, //data -> [ISIZE-1:0]
26
+ data_inf_c.slaver odel_inf, //data -> [OSIZE-1:0]
27
+ //-->> OUT
28
+ data_inf_c.master Oipart_inf, //data -> [ISIZE-1:0][OSIZE-1:0] + other
29
+ data_inf_c.master Oopart_inf, //data -> [ISIZE-1:0][OSIZE-1:0] + other
30
+ //-->> err
31
+ data_inf_c.master ierr_inf, //data -> [ISIZE-1:0]
32
+ data_inf_c.master oerr_inf //data -> [OSIZE-1:0]
33
+ );
34
+
35
+ // `CheckParamPair(fid_addr_len_inf.DSIZE,96)
36
+
37
+ data_inf_c #(.DSIZE(ISIZE)) iread_inf (ipart_inf.clock,ipart_inf.rst_n);
38
+ data_inf_c #(.DSIZE(ISIZE)) tmp_iread_inf (ipart_inf.clock,ipart_inf.rst_n);
39
+ data_inf_c #(.DSIZE(OSIZE)) oread_inf (ipart_inf.clock,ipart_inf.rst_n);
40
+ data_inf_c #(.DSIZE(ISIZE+OSIZE)) Oiread_inf (ipart_inf.clock,ipart_inf.rst_n);
41
+ data_inf_c #(.DSIZE(ISIZE+OSIZE)) Ooread_inf (ipart_inf.clock,ipart_inf.rst_n);
42
+
43
+ assign iread_inf.data = ipart_inf.data[ipart_inf.DSIZE-1-:ISIZE];
44
+ // assign iread_inf.data = '1;
45
+ assign iread_inf.valid = ipart_inf.valid;
46
+ assign ipart_inf.ready = iread_inf.ready;
47
+
48
+ assign oread_inf.data = opart_inf.data[opart_inf.DSIZE-1-:OSIZE];
49
+ assign oread_inf.valid = opart_inf.valid;
50
+ assign opart_inf.ready = oread_inf.ready;
51
+
52
+ data_pair_map_A2 #(
53
+ .ISIZE (ISIZE ),
54
+ .OSIZE (OSIZE ),
55
+ .NUM (NUM )
56
+ )data_pair_map_A2_inst(
57
+ //-->> WRITE
58
+ /* data_inf_c.slaver */ .write_inf (write_inf ), //data -> [ISIZE-1:0][OSIZE-1:0]
59
+ //-->> READ <<----------------
60
+ /* data_inf_c.slaver */ .iread_inf (iread_inf ), //data -> [ISIZE-1:0]
61
+ /* data_inf_c.slaver */ .oread_inf (oread_inf ), //data -> [OSIZE-1:0]
62
+ //-->> DELETE
63
+ /* data_inf_c.slaver */ .idel_inf (idel_inf ), //data -> [ISIZE-1:0]
64
+ /* data_inf_c.slaver */ .odel_inf (odel_inf ), //data -> [OSIZE-1:0]
65
+ //-->> OUT
66
+ /* data_inf_c.master */ .Oiread_inf (Oiread_inf ), //data -> [OSIZE-1:0]
67
+ /* data_inf_c.master */ .Ooread_inf (Ooread_inf ), //data -> [ISIZE-1:0]
68
+ //-->> err
69
+ /* data_inf_c.master */ .ierr_inf (ierr_inf ), //data -> [ISIZE-1:0]
70
+ /* data_inf_c.master */ .oerr_inf (oerr_inf ) //data -> [OSIZE-1:0]
71
+ );
72
+
73
+
74
+ logic [opart_inf.DSIZE-OSIZE-1:0] ipart_slaver_data;
75
+ logic [opart_inf.DSIZE-OSIZE-1:0] opart_slaver_data;
76
+
77
+ simple_data_pipe_slaver #(
78
+ .DSIZE (ipart_inf.DSIZE-ISIZE)
79
+ )simple_data_pipe_slaver_inst_i(
80
+ /* input */ .clock (ipart_inf.clock ),
81
+ /* input */ .rst_n (ipart_inf.rst_n ),
82
+ /* input [DSIZE-1:0] */ .indata (ipart_inf.data[ipart_inf.DSIZE-ISIZE-1:0]),
83
+ /* input */ .invalid (ipart_inf.valid ),
84
+ /* input */ .inready (ipart_inf.ready ),
85
+ /* output logic[DSIZE-1:0] */ .outdata (ipart_slaver_data ),
86
+ /* input */ .outvalid (Oiread_inf.valid ),
87
+ /* input */ .outready (Oiread_inf.ready )
88
+ );
89
+
90
+ simple_data_pipe_slaver #(
91
+ .DSIZE (opart_inf.DSIZE-OSIZE)
92
+ )simple_data_pipe_slaver_inst_o(
93
+ /* input */ .clock (opart_inf.clock ),
94
+ /* input */ .rst_n (opart_inf.rst_n ),
95
+ /* input [DSIZE-1:0] */ .indata (opart_inf.data[opart_inf.DSIZE-OSIZE-1:0]),
96
+ /* input */ .invalid (opart_inf.valid ),
97
+ /* input */ .inready (opart_inf.ready ),
98
+ /* output logic[DSIZE-1:0] */ .outdata (opart_slaver_data ),
99
+ /* input */ .outvalid (Ooread_inf.valid ),
100
+ /* input */ .outready (Ooread_inf.ready )
101
+ );
102
+
103
+ assign Oipart_inf.data = {Oiread_inf.data,ipart_slaver_data};
104
+ assign Oipart_inf.valid = Oiread_inf.valid;
105
+ assign Oiread_inf.ready = Oipart_inf.ready;
106
+
107
+ assign Oopart_inf.data = {Ooread_inf.data,opart_slaver_data};
108
+ assign Oopart_inf.valid = Ooread_inf.valid;
109
+ assign Ooread_inf.ready = Oopart_inf.ready;
110
+
111
+ endmodule
@@ -0,0 +1,206 @@
1
+ interface axi_wr_aux_inf();
2
+
3
+ logic[2:0] axi_awsize ;
4
+ logic[1:0] axi_awburst ;
5
+ logic[0:0] axi_awlock ;
6
+ logic[3:0] axi_awcache ;
7
+ logic[2:0] axi_awprot ;
8
+ logic[3:0] axi_awqos ;
9
+
10
+ modport master (
11
+ output axi_awsize ,
12
+ output axi_awburst ,
13
+ output axi_awlock ,
14
+ output axi_awcache ,
15
+ output axi_awprot ,
16
+ output axi_awqos
17
+ );
18
+
19
+ modport slaver (
20
+ input axi_awsize ,
21
+ input axi_awburst ,
22
+ input axi_awlock ,
23
+ input axi_awcache ,
24
+ input axi_awprot ,
25
+ input axi_awqos
26
+ );
27
+
28
+ endinterface : axi_wr_aux_inf
29
+
30
+ interface axi_rd_aux_inf();
31
+
32
+ logic[2:0] axi_arsize ;
33
+ logic[1:0] axi_arburst ;
34
+ logic[0:0] axi_arlock ;
35
+ logic[3:0] axi_arcache ;
36
+ logic[2:0] axi_arprot ;
37
+ logic[3:0] axi_arqos ;
38
+
39
+ modport master (
40
+ output axi_arsize ,
41
+ output axi_arburst ,
42
+ output axi_arlock ,
43
+ output axi_arcache ,
44
+ output axi_arprot ,
45
+ output axi_arqos
46
+ );
47
+
48
+ modport slaver (
49
+ input axi_arsize ,
50
+ input axi_arburst ,
51
+ input axi_arlock ,
52
+ input axi_arcache ,
53
+ input axi_arprot ,
54
+ input axi_arqos
55
+ );
56
+
57
+ endinterface : axi_rd_aux_inf
58
+
59
+ interface axi_aw_inf #(
60
+ parameter IDSIZE = 1,
61
+ parameter ASIZE = 32,
62
+ parameter LSIZE = 1
63
+ )();
64
+
65
+ logic[IDSIZE-1:0] axi_awid ;
66
+ logic[ASIZE-1:0] axi_awaddr ;
67
+ logic[LSIZE-1:0] axi_awlen ;
68
+ logic axi_awvalid ;
69
+ logic axi_awready ;
70
+
71
+ modport master (
72
+ output axi_awid ,
73
+ output axi_awaddr ,
74
+ output axi_awlen ,
75
+ output axi_awvalid,
76
+ input axi_awready
77
+ );
78
+
79
+ modport slaver (
80
+ input axi_awid ,
81
+ input axi_awaddr ,
82
+ input axi_awlen ,
83
+ input axi_awvalid,
84
+ output axi_awready
85
+ );
86
+
87
+ endinterface : axi_aw_inf
88
+
89
+ interface axi_ar_inf #(
90
+ parameter IDSIZE = 1,
91
+ parameter ASIZE = 32,
92
+ parameter LSIZE = 1
93
+ )();
94
+
95
+ logic[IDSIZE-1:0] axi_arid ;
96
+ logic[ASIZE-1:0] axi_araddr ;
97
+ logic[LSIZE-1:0] axi_arlen ;
98
+ logic axi_arvalid ;
99
+ logic axi_arready ;
100
+
101
+ modport master (
102
+ output axi_arid ,
103
+ output axi_araddr ,
104
+ output axi_arlen ,
105
+ output axi_arvalid,
106
+ input axi_arready
107
+ );
108
+
109
+ modport slaver (
110
+ input axi_arid ,
111
+ input axi_araddr ,
112
+ input axi_arlen ,
113
+ input axi_arvalid,
114
+ output axi_arready
115
+ );
116
+
117
+ endinterface : axi_ar_inf
118
+
119
+ interface axi_wdata_inf #(
120
+ parameter DSIZE = 32
121
+ )();
122
+
123
+ localparam STSIZE = DSIZE/8+(DSIZE%8 != 0);
124
+
125
+ logic[DSIZE-1:0] axi_wdata ;
126
+ logic[STSIZE-1:0] axi_wstrb ;
127
+ logic axi_wlast ;
128
+ logic axi_wvalid ;
129
+ logic axi_wready ;
130
+
131
+ modport master (
132
+ output axi_wdata ,
133
+ output axi_wstrb ,
134
+ output axi_wlast ,
135
+ output axi_wvalid ,
136
+ input axi_wready
137
+ );
138
+
139
+ modport slaver (
140
+ input axi_wdata ,
141
+ input axi_wstrb ,
142
+ input axi_wlast ,
143
+ input axi_wvalid ,
144
+ output axi_wready
145
+ );
146
+
147
+ endinterface : axi_wdata_inf
148
+
149
+ interface axi_rdata_inf #(
150
+ parameter DSIZE = 32,
151
+ parameter IDSIZE = 1
152
+ )();
153
+
154
+
155
+ logic[IDSIZE-1:0] axi_rid ;
156
+ logic[DSIZE-1:0] axi_rdata ;
157
+ logic[1:0] axi_rresp ;
158
+ logic axi_rlast ;
159
+ logic axi_rvalid ;
160
+ logic axi_rready ;
161
+
162
+ modport master (
163
+ input axi_rid ,
164
+ input axi_rdata ,
165
+ input axi_rresp ,
166
+ input axi_rlast ,
167
+ input axi_rvalid ,
168
+ output axi_rready
169
+ );
170
+
171
+ modport slaver (
172
+ output axi_rid ,
173
+ output axi_rdata ,
174
+ output axi_rresp ,
175
+ output axi_rlast ,
176
+ output axi_rvalid ,
177
+ input axi_rready
178
+ );
179
+
180
+
181
+ endinterface : axi_rdata_inf
182
+
183
+ interface axi_resp_inf #(
184
+ parameter IDSIZE = 1
185
+ )();
186
+
187
+ logic axi_bready ;
188
+ logic[IDSIZE-1:0] axi_bid ;
189
+ logic[1:0] axi_bresp ;
190
+ logic axi_bvalid ;
191
+
192
+ modport master (
193
+ output axi_bready ,
194
+ input axi_bid ,
195
+ input axi_bresp ,
196
+ input axi_bvalid
197
+ );
198
+
199
+ modport slaver (
200
+ input axi_bready ,
201
+ output axi_bid ,
202
+ output axi_bresp ,
203
+ output axi_bvalid
204
+ );
205
+
206
+ endinterface : axi_resp_inf
@@ -0,0 +1,1256 @@
1
+ `timescale 1ns/1ps
2
+ `include "define_macro.sv"
3
+ interface axi_inf #(
4
+ parameter IDSIZE = 1,
5
+ parameter ASIZE = 32,
6
+ parameter LSIZE = 1,
7
+ parameter DSIZE = 32,
8
+ `parameter_string MODE = "BOTH", //BOTH:0,ONLY_WRITE:1,ONLY_READ:2
9
+ parameter ADDR_STEP = 32'hFFFF_FFFF, // 1024 : 0
10
+ parameter real FreqM = 1
11
+ )(
12
+ input bit axi_aclk ,
13
+ input bit axi_aresetn
14
+ );
15
+
16
+ initial begin
17
+ if(MODE == "BOTH" || MODE == "ONLY_READ" || MODE == "ONLY_WRITE")
18
+ #(1ps);
19
+ else begin
20
+ $error("$t,AXI INFTERFACE MODE PARAMETER ERROR >>%s<<",MODE);
21
+ $finish;
22
+ end
23
+ end
24
+
25
+ logic timeout;
26
+
27
+ localparam STSIZE = DSIZE/8+(DSIZE%8 != 0);
28
+ //--->> addr write <<-------
29
+ logic[IDSIZE-1:0] axi_awid ;
30
+ logic[ASIZE-1:0] axi_awaddr ;
31
+ logic[LSIZE-1:0] axi_awlen ;
32
+ logic[2:0] axi_awsize ;
33
+ logic[1:0] axi_awburst ;
34
+ logic[0:0] axi_awlock ;
35
+ logic[3:0] axi_awcache ;
36
+ logic[2:0] axi_awprot ;
37
+ logic[3:0] axi_awqos ;
38
+ logic axi_awvalid ;
39
+ logic axi_awready ;
40
+ //---<< addr write >>-------
41
+ //--->> addr read <<--------
42
+ logic[IDSIZE-1:0] axi_arid ;
43
+ logic[ASIZE-1:0] axi_araddr ;
44
+ logic[LSIZE-1:0] axi_arlen ;
45
+ logic[2:0] axi_arsize ;
46
+ logic[1:0] axi_arburst ;
47
+ logic[0:0] axi_arlock ;
48
+ logic[3:0] axi_arcache ;
49
+ logic[2:0] axi_arprot ;
50
+ logic[3:0] axi_arqos ;
51
+ logic axi_arvalid ;
52
+ logic axi_arready ;
53
+ //---<< addr read >>--------
54
+ //--->> Response <<---------
55
+ logic axi_bready ;
56
+ logic[IDSIZE-1:0] axi_bid ;
57
+ logic[1:0] axi_bresp ;
58
+ logic axi_bvalid ;
59
+ //---<< Response >>---------
60
+ //--->> data write <<-------
61
+ logic[DSIZE-1:0] axi_wdata ;
62
+ logic[STSIZE-1:0] axi_wstrb ;
63
+ logic axi_wlast ;
64
+ logic axi_wvalid ;
65
+ logic axi_wready ;
66
+ //---<< data write >>-------
67
+ //--->> data read >>--------
68
+ logic axi_rready ;
69
+ logic[IDSIZE-1:0] axi_rid ;
70
+ logic[DSIZE-1:0] axi_rdata ;
71
+ logic[1:0] axi_rresp ;
72
+ logic axi_rlast ;
73
+ logic axi_rvalid ;
74
+ //---<< data read >>--------
75
+ //--->> error flag <<-------
76
+ // logic axi_wevld ;
77
+ // logic[3:0] axi_weresp ;
78
+ // logic axi_revld ;
79
+ // logic[3:0] axi_reresp ;
80
+ //---<< error flag >>-------
81
+
82
+ //--->> TIME CTRL <<---------------
83
+ always@(posedge axi_aclk,negedge axi_aresetn)begin:TIME_BLOCK
84
+ logic cen;
85
+ logic crst;
86
+ logic [23:0] tcnt;
87
+ if(~axi_aresetn)begin
88
+ tcnt <= 24'd0;
89
+ cen <= 1'b0;
90
+ crst <= 1'b0;
91
+ end else begin
92
+ //-->> COUNT ENABLE
93
+ if(axi_awready && axi_awvalid)
94
+ cen <= 1'b1;
95
+ else if(axi_arready && axi_arvalid)
96
+ cen <= 1'b1;
97
+ else if(axi_bready && axi_bvalid)
98
+ cen <= 1'b0;
99
+ else if(axi_rvalid && axi_rready)
100
+ cen <= 1'b0;
101
+ else cen <= cen;
102
+ //-->> COUNT RST
103
+ if(axi_awready && axi_awvalid)
104
+ crst <= 1'b1;
105
+ else if(axi_arready && axi_arvalid)
106
+ crst <= 1'b1;
107
+ else if(axi_wready && axi_wvalid)
108
+ crst <= 1'b1;
109
+ else if(axi_rready && axi_rvalid)
110
+ crst <= 1'b1;
111
+ else crst <= 1'b0;
112
+ //-->> COUNT
113
+ if(crst)
114
+ tcnt <= 24'd0;
115
+ else if(cen)
116
+ tcnt <= tcnt + 1'b1;
117
+ else tcnt <= tcnt;
118
+ //-->> RESULT
119
+ timeout <= &tcnt;
120
+ end
121
+ end
122
+ //---<< TIME CTRL >>---------------
123
+ //--->> AW_CNT <<-----------------
124
+ logic [LSIZE-1:0] axi_wcnt;
125
+
126
+ always@(posedge axi_aclk,negedge axi_aresetn)begin:WRITE_CNT
127
+ if(~axi_aresetn) axi_wcnt <= '0;
128
+ else begin
129
+ if(axi_wvalid && axi_wready && axi_wlast)
130
+ axi_wcnt <= '0;
131
+ else if(axi_wvalid && axi_wready)
132
+ axi_wcnt <= axi_wcnt + 1'b1;
133
+ else axi_wcnt <= axi_wcnt;
134
+ end
135
+ end
136
+ //---<< AW_CNT >>-----------------
137
+ //--->> AR_CNT <<-----------------
138
+ logic [LSIZE-1:0] axi_rcnt;
139
+
140
+ always@(posedge axi_aclk,negedge axi_aresetn)begin:READ_CNT
141
+ if(~axi_aresetn) axi_rcnt <= '0;
142
+ else begin
143
+ if(axi_rvalid && axi_rready && axi_rlast)
144
+ axi_rcnt <= '0;
145
+ else if(axi_rvalid && axi_rready)
146
+ axi_rcnt <= axi_rcnt + 1'b1;
147
+ else axi_rcnt <= axi_rcnt;
148
+ end
149
+ end
150
+ //---<< AR_CNT >>-----------------
151
+ //--->> MODE CTRL <<---------------
152
+ `ifdef VIVADO_ENV
153
+ generate
154
+ if(MODE=="ONLY_READ")begin
155
+ assign axi_awid = '0;
156
+ assign axi_awaddr = '0;
157
+ assign axi_awlen = '0;
158
+ assign axi_awsize = '0;
159
+ assign axi_awburst = '0;
160
+ assign axi_awlock = '0;
161
+ assign axi_awcache = '0;
162
+ assign axi_awprot = '0;
163
+ assign axi_awqos = '0;
164
+ assign axi_awvalid = '0;
165
+ assign axi_wdata = '0;
166
+ assign axi_wstrb = '0;
167
+ assign axi_wlast = '0;
168
+ assign axi_wvalid = '0;
169
+ assign axi_bready = '0;
170
+ end
171
+ endgenerate
172
+
173
+ generate
174
+ if(MODE=="ONLY_WRITE")begin
175
+ assign axi_arid = '0;
176
+ assign axi_araddr = '0;
177
+ assign axi_arlen = '0;
178
+ assign axi_arsize = '0;
179
+ assign axi_arburst = '0;
180
+ assign axi_arlock = '0;
181
+ assign axi_arcache = '0;
182
+ assign axi_arprot = '0;
183
+ assign axi_arqos = '0;
184
+ assign axi_arvalid = '0;
185
+ assign axi_rready = '0;
186
+ end
187
+ endgenerate
188
+ `endif
189
+
190
+ //---<< MODE CTRL >>---------------
191
+ modport slaver (
192
+ input axi_aclk ,
193
+ input axi_aresetn ,
194
+ input axi_awid ,
195
+ input axi_awaddr ,
196
+ input axi_awlen ,
197
+ input axi_awsize ,
198
+ input axi_awburst ,
199
+ input axi_awlock ,
200
+ input axi_awcache ,
201
+ input axi_awprot ,
202
+ input axi_awqos ,
203
+ input axi_awvalid ,
204
+ output axi_awready ,
205
+ input axi_wdata ,
206
+ input axi_wstrb ,
207
+ input axi_wlast ,
208
+ input axi_wvalid ,
209
+ output axi_wready ,
210
+ input axi_bready ,
211
+ output axi_bid ,
212
+ output axi_bresp ,
213
+ output axi_bvalid ,
214
+ input axi_arid ,
215
+ input axi_araddr ,
216
+ input axi_arlen ,
217
+ input axi_arsize ,
218
+ input axi_arburst ,
219
+ input axi_arlock ,
220
+ input axi_arcache ,
221
+ input axi_arprot ,
222
+ input axi_arqos ,
223
+ input axi_arvalid ,
224
+ output axi_arready ,
225
+ input axi_rready ,
226
+ output axi_rid ,
227
+ output axi_rdata ,
228
+ output axi_rresp ,
229
+ output axi_rlast ,
230
+ output axi_rvalid ,
231
+
232
+ input axi_wcnt,
233
+ input axi_rcnt,
234
+ // input axi_wevld ,
235
+ // input axi_weresp ,
236
+ // input axi_revld ,
237
+ // input axi_reresp ,
238
+ input timeout
239
+ );
240
+
241
+ modport master (
242
+ input axi_aclk ,
243
+ input axi_aresetn ,
244
+ output axi_awid ,
245
+ output axi_awaddr ,
246
+ output axi_awlen ,
247
+ output axi_awsize ,
248
+ output axi_awburst ,
249
+ output axi_awlock ,
250
+ output axi_awcache ,
251
+ output axi_awprot ,
252
+ output axi_awqos ,
253
+ output axi_awvalid ,
254
+ input axi_awready ,
255
+ output axi_wdata ,
256
+ output axi_wstrb ,
257
+ output axi_wlast ,
258
+ output axi_wvalid ,
259
+ input axi_wready ,
260
+ output axi_bready ,
261
+ input axi_bid ,
262
+ input axi_bresp ,
263
+ input axi_bvalid ,
264
+ output axi_arid ,
265
+ output axi_araddr ,
266
+ output axi_arlen ,
267
+ output axi_arsize ,
268
+ output axi_arburst ,
269
+ output axi_arlock ,
270
+ output axi_arcache ,
271
+ output axi_arprot ,
272
+ output axi_arqos ,
273
+ output axi_arvalid ,
274
+ input axi_arready ,
275
+ output axi_rready ,
276
+ input axi_rid ,
277
+ input axi_rdata ,
278
+ input axi_rresp ,
279
+ input axi_rlast ,
280
+ input axi_rvalid ,
281
+ input axi_wcnt,
282
+ input axi_rcnt,
283
+ // input axi_wevld ,
284
+ // input axi_weresp ,
285
+ // input axi_revld ,
286
+ // input axi_reresp ,
287
+ input timeout
288
+ );
289
+
290
+ modport master_wr (
291
+ input axi_aclk ,
292
+ input axi_aresetn ,
293
+ output axi_awid ,
294
+ output axi_awaddr ,
295
+ output axi_awlen ,
296
+ output axi_awsize ,
297
+ output axi_awburst ,
298
+ output axi_awlock ,
299
+ output axi_awcache ,
300
+ output axi_awprot ,
301
+ output axi_awqos ,
302
+ output axi_awvalid ,
303
+ input axi_awready ,
304
+ output axi_wdata ,
305
+ output axi_wstrb ,
306
+ output axi_wlast ,
307
+ output axi_wvalid ,
308
+ input axi_wready ,
309
+ output axi_bready ,
310
+ input axi_bid ,
311
+ input axi_bresp ,
312
+ input axi_bvalid ,
313
+ input axi_wcnt,
314
+ // input axi_rcnt,
315
+ input timeout
316
+ );
317
+
318
+ modport master_rd (
319
+ input axi_aclk ,
320
+ input axi_aresetn ,
321
+ output axi_arid ,
322
+ output axi_araddr ,
323
+ output axi_arlen ,
324
+ output axi_arsize ,
325
+ output axi_arburst ,
326
+ output axi_arlock ,
327
+ output axi_arcache ,
328
+ output axi_arprot ,
329
+ output axi_arqos ,
330
+ output axi_arvalid ,
331
+ input axi_arready ,
332
+ output axi_rready ,
333
+ input axi_rid ,
334
+ input axi_rdata ,
335
+ input axi_rresp ,
336
+ input axi_rlast ,
337
+ input axi_rvalid ,
338
+ // input axi_wcnt,
339
+ input axi_rcnt,
340
+ input timeout
341
+ );
342
+
343
+ modport slaver_wr (
344
+ input axi_aclk ,
345
+ input axi_aresetn ,
346
+ input axi_awid ,
347
+ input axi_awaddr ,
348
+ input axi_awlen ,
349
+ input axi_awsize ,
350
+ input axi_awburst ,
351
+ input axi_awlock ,
352
+ input axi_awcache ,
353
+ input axi_awprot ,
354
+ input axi_awqos ,
355
+ input axi_awvalid ,
356
+ output axi_awready ,
357
+ input axi_wdata ,
358
+ input axi_wstrb ,
359
+ input axi_wlast ,
360
+ input axi_wvalid ,
361
+ output axi_wready ,
362
+ input axi_bready ,
363
+ output axi_bid ,
364
+ output axi_bresp ,
365
+ output axi_bvalid ,
366
+ input axi_wcnt,
367
+ // input axi_rcnt,
368
+ input timeout
369
+ );
370
+
371
+ modport slaver_rd (
372
+ input axi_aclk ,
373
+ input axi_aresetn ,
374
+ input axi_arid ,
375
+ input axi_araddr ,
376
+ input axi_arlen ,
377
+ input axi_arsize ,
378
+ input axi_arburst ,
379
+ input axi_arlock ,
380
+ input axi_arcache ,
381
+ input axi_arprot ,
382
+ input axi_arqos ,
383
+ input axi_arvalid ,
384
+ output axi_arready ,
385
+ input axi_rready ,
386
+ output axi_rid ,
387
+ output axi_rdata ,
388
+ output axi_rresp ,
389
+ output axi_rlast ,
390
+ output axi_rvalid ,
391
+ // input axi_wcnt,
392
+ input axi_rcnt,
393
+ input timeout
394
+ );
395
+
396
+ modport master_wr_aux (
397
+ input axi_aclk ,
398
+ input axi_aresetn ,
399
+ output axi_awid ,
400
+ output axi_awaddr ,
401
+ output axi_awlen ,
402
+ output axi_awsize ,
403
+ output axi_awburst ,
404
+ output axi_awlock ,
405
+ output axi_awcache ,
406
+ output axi_awprot ,
407
+ output axi_awqos ,
408
+ output axi_awvalid ,
409
+ input axi_awready ,
410
+ // output axi_wdata ,
411
+ // output axi_wstrb ,
412
+ input axi_wlast ,
413
+ input axi_wvalid ,
414
+ input axi_wready ,
415
+ output axi_bready ,
416
+ input axi_bid ,
417
+ input axi_bresp ,
418
+ input axi_bvalid ,
419
+ input axi_wcnt,
420
+ input axi_rcnt,
421
+ input timeout
422
+ );
423
+
424
+ modport master_wr_aux_no_resp (
425
+ input axi_aclk ,
426
+ input axi_aresetn ,
427
+ output axi_awid ,
428
+ output axi_awaddr ,
429
+ output axi_awlen ,
430
+ output axi_awsize ,
431
+ output axi_awburst ,
432
+ output axi_awlock ,
433
+ output axi_awcache ,
434
+ output axi_awprot ,
435
+ output axi_awqos ,
436
+ output axi_awvalid ,
437
+ input axi_awready ,
438
+ // output axi_wdata ,
439
+ // output axi_wstrb ,
440
+ input axi_wlast ,
441
+ input axi_wvalid ,
442
+ input axi_wready ,
443
+ // input axi_bready ,
444
+ // input axi_bid ,
445
+ // input axi_bresp ,
446
+ // input axi_bvalid ,
447
+ input axi_wcnt,
448
+ // input axi_rcnt,
449
+ input timeout
450
+ );
451
+
452
+ modport master_rd_aux (
453
+ input axi_aclk ,
454
+ input axi_aresetn ,
455
+ output axi_arid ,
456
+ output axi_araddr ,
457
+ output axi_arlen ,
458
+ output axi_arsize ,
459
+ output axi_arburst ,
460
+ output axi_arlock ,
461
+ output axi_arcache ,
462
+ output axi_arprot ,
463
+ output axi_arqos ,
464
+ output axi_arvalid ,
465
+ input axi_arready ,
466
+ input axi_rready ,
467
+ input axi_rid ,
468
+ // input axi_rdata ,
469
+ input axi_rresp ,
470
+ input axi_rlast ,
471
+ input axi_rvalid ,
472
+ // input axi_wcnt,
473
+ input axi_rcnt,
474
+ input timeout
475
+ );
476
+
477
+ modport mirror (
478
+ input axi_aclk ,
479
+ input axi_aresetn ,
480
+ input axi_awid ,
481
+ input axi_awaddr ,
482
+ input axi_awlen ,
483
+ input axi_awsize ,
484
+ input axi_awburst ,
485
+ input axi_awlock ,
486
+ input axi_awcache ,
487
+ input axi_awprot ,
488
+ input axi_awqos ,
489
+ input axi_awvalid ,
490
+ input axi_awready ,
491
+ input axi_wdata ,
492
+ input axi_wstrb ,
493
+ input axi_wlast ,
494
+ input axi_wvalid ,
495
+ input axi_wready ,
496
+ input axi_bready ,
497
+ input axi_bid ,
498
+ input axi_bresp ,
499
+ input axi_bvalid ,
500
+ input axi_arid ,
501
+ input axi_araddr ,
502
+ input axi_arlen ,
503
+ input axi_arsize ,
504
+ input axi_arburst ,
505
+ input axi_arlock ,
506
+ input axi_arcache ,
507
+ input axi_arprot ,
508
+ input axi_arqos ,
509
+ input axi_arvalid ,
510
+ input axi_arready ,
511
+ input axi_rready ,
512
+ input axi_rid ,
513
+ input axi_rdata ,
514
+ input axi_rresp ,
515
+ input axi_rlast ,
516
+ input axi_rvalid ,
517
+ input axi_wcnt,
518
+ input axi_rcnt,
519
+ // output axi_wevld ,
520
+ // output axi_weresp ,
521
+ // output axi_revld ,
522
+ // output axi_reresp ,
523
+ input timeout
524
+ );
525
+
526
+ modport mirror_wr (
527
+ input axi_aclk ,
528
+ input axi_aresetn ,
529
+ input axi_awid ,
530
+ input axi_awaddr ,
531
+ input axi_awlen ,
532
+ input axi_awsize ,
533
+ input axi_awburst ,
534
+ input axi_awlock ,
535
+ input axi_awcache ,
536
+ input axi_awprot ,
537
+ input axi_awqos ,
538
+ input axi_awvalid ,
539
+ input axi_awready ,
540
+ input axi_wdata ,
541
+ input axi_wstrb ,
542
+ input axi_wlast ,
543
+ input axi_wvalid ,
544
+ input axi_wready ,
545
+ input axi_bready ,
546
+ input axi_bid ,
547
+ input axi_bresp ,
548
+ input axi_bvalid ,
549
+ input axi_wcnt,
550
+ // output axi_wevld ,
551
+ // output axi_weresp ,
552
+ // output axi_revld ,
553
+ // output axi_reresp ,
554
+ input timeout
555
+ );
556
+
557
+ modport mirror_rd (
558
+ input axi_aclk ,
559
+ input axi_aresetn ,
560
+ input axi_arid ,
561
+ input axi_araddr ,
562
+ input axi_arlen ,
563
+ input axi_arsize ,
564
+ input axi_arburst ,
565
+ input axi_arlock ,
566
+ input axi_arcache ,
567
+ input axi_arprot ,
568
+ input axi_arqos ,
569
+ input axi_arvalid ,
570
+ input axi_arready ,
571
+ input axi_rready ,
572
+ input axi_rid ,
573
+ input axi_rdata ,
574
+ input axi_rresp ,
575
+ input axi_rlast ,
576
+ input axi_rvalid ,
577
+ input axi_rcnt,
578
+ // output axi_wevld ,
579
+ // output axi_weresp ,
580
+ // output axi_revld ,
581
+ // output axi_reresp ,
582
+ input timeout
583
+ );
584
+
585
+ modport lite_master(
586
+ input axi_aclk ,
587
+ input axi_aresetn ,
588
+ output axi_awvalid ,
589
+ input axi_awready ,
590
+ output axi_awaddr ,
591
+ output axi_wvalid ,
592
+ input axi_wready ,
593
+ output axi_wdata ,
594
+ input axi_bresp ,
595
+ input axi_bvalid ,
596
+ output axi_bready ,
597
+ output axi_arvalid ,
598
+ input axi_arready ,
599
+ output axi_araddr ,
600
+ input axi_rvalid ,
601
+ output axi_rready ,
602
+ input axi_rdata ,
603
+ // input axi_rresp ,
604
+ input timeout
605
+ );
606
+
607
+ modport lite_slaver(
608
+ input axi_aclk ,
609
+ input axi_aresetn ,
610
+ input axi_awvalid ,
611
+ output axi_awready ,
612
+ input axi_awaddr ,
613
+ input axi_wvalid ,
614
+ output axi_wready ,
615
+ input axi_wdata ,
616
+ output axi_bresp ,
617
+ output axi_bvalid ,
618
+ input axi_bready ,
619
+ input axi_arvalid ,
620
+ output axi_arready ,
621
+ input axi_araddr ,
622
+ output axi_rvalid ,
623
+ input axi_rready ,
624
+ output axi_rdata ,
625
+ // output axi_rresp
626
+ input timeout
627
+ );
628
+
629
+ endinterface:axi_inf
630
+
631
+ interface axi_inf2 #(
632
+ parameter IDSIZE = 1,
633
+ parameter ASIZE = 32,
634
+ parameter LSIZE = 1,
635
+ parameter DSIZE = 32,
636
+ `parameter_string MODE = "BOTH", //BOTH:0,ONLY_WRITE:1,ONLY_READ:2
637
+ parameter ADDR_STEP = 32'hFFFF_FFFF // 1024 : 0
638
+ )(
639
+ input bit axi_aclk ,
640
+ input bit axi_aresetn
641
+ );
642
+
643
+ initial begin
644
+ if(MODE == "BOTH" || MODE == "ONLY_READ" || MODE == "ONLY_WRITE")
645
+ #(1ps);
646
+ else begin
647
+ $error("$t,AXI INFTERFACE MODE PARAMETER ERROR >>%s<<",MODE);
648
+ $finish;
649
+ end
650
+ end
651
+
652
+ logic timeout;
653
+
654
+ localparam STSIZE = DSIZE/8+(DSIZE%8 != 0);
655
+ //--->> addr write <<-------
656
+ wire[IDSIZE-1:0] axi_awid ;
657
+ wire[ASIZE-1:0] axi_awaddr ;
658
+ wire[LSIZE-1:0] axi_awlen ;
659
+ wire[2:0] axi_awsize ;
660
+ wire[1:0] axi_awburst ;
661
+ wire[0:0] axi_awlock ;
662
+ wire[3:0] axi_awcache ;
663
+ wire[2:0] axi_awprot ;
664
+ wire[3:0] axi_awqos ;
665
+ wire axi_awvalid ;
666
+ wire axi_awready ;
667
+ //---<< addr write >>-------
668
+ //--->> addr read <<--------
669
+ wire[IDSIZE-1:0] axi_arid ;
670
+ wire[ASIZE-1:0] axi_araddr ;
671
+ wire[LSIZE-1:0] axi_arlen ;
672
+ wire[2:0] axi_arsize ;
673
+ wire[1:0] axi_arburst ;
674
+ wire[0:0] axi_arlock ;
675
+ wire[3:0] axi_arcache ;
676
+ wire[2:0] axi_arprot ;
677
+ wire[3:0] axi_arqos ;
678
+ wire axi_arvalid ;
679
+ wire axi_arready ;
680
+ //---<< addr read >>--------
681
+ //--->> Response <<---------
682
+ wire axi_bready ;
683
+ wire[IDSIZE-1:0] axi_bid ;
684
+ wire[1:0] axi_bresp ;
685
+ wire axi_bvalid ;
686
+ //---<< Response >>---------
687
+ //--->> data write <<-------
688
+ wire[DSIZE-1:0] axi_wdata ;
689
+ wire[STSIZE-1:0] axi_wstrb ;
690
+ wire axi_wlast ;
691
+ wire axi_wvalid ;
692
+ wire axi_wready ;
693
+ //---<< data write >>-------
694
+ //--->> data read >>--------
695
+ wire axi_rready ;
696
+ wire[IDSIZE-1:0] axi_rid ;
697
+ wire[DSIZE-1:0] axi_rdata ;
698
+ wire[1:0] axi_rresp ;
699
+ wire axi_rlast ;
700
+ wire axi_rvalid ;
701
+ //---<< data read >>--------
702
+ //--->> error flag <<-------
703
+ // logic axi_wevld ;
704
+ // logic[3:0] axi_weresp ;
705
+ // logic axi_revld ;
706
+ // logic[3:0] axi_reresp ;
707
+ //---<< error flag >>-------
708
+
709
+ //--->> TIME CTRL <<---------------
710
+ always@(posedge axi_aclk,negedge axi_aresetn)begin:TIME_BLOCK
711
+ logic cen;
712
+ logic crst;
713
+ logic [23:0] tcnt;
714
+ if(~axi_aresetn)begin
715
+ tcnt <= 24'd0;
716
+ cen <= 1'b0;
717
+ crst <= 1'b0;
718
+ end else begin
719
+ //-->> COUNT ENABLE
720
+ if(axi_awready && axi_awvalid)
721
+ cen <= 1'b1;
722
+ else if(axi_arready && axi_arvalid)
723
+ cen <= 1'b1;
724
+ else if(axi_bready && axi_bvalid)
725
+ cen <= 1'b0;
726
+ else if(axi_rvalid && axi_rready)
727
+ cen <= 1'b0;
728
+ else cen <= cen;
729
+ //-->> COUNT RST
730
+ if(axi_awready && axi_awvalid)
731
+ crst <= 1'b1;
732
+ else if(axi_arready && axi_arvalid)
733
+ crst <= 1'b1;
734
+ else if(axi_wready && axi_wvalid)
735
+ crst <= 1'b1;
736
+ else if(axi_rready && axi_rvalid)
737
+ crst <= 1'b1;
738
+ else crst <= 1'b0;
739
+ //-->> COUNT
740
+ if(crst)
741
+ tcnt <= 24'd0;
742
+ else if(cen)
743
+ tcnt <= tcnt + 1'b1;
744
+ else tcnt <= tcnt;
745
+ //-->> RESULT
746
+ timeout <= &tcnt;
747
+ end
748
+ end
749
+ //---<< TIME CTRL >>---------------
750
+ //--->> AW_CNT <<-----------------
751
+ logic [LSIZE-1:0] axi_wcnt;
752
+
753
+ always@(posedge axi_aclk,negedge axi_aresetn)begin:WRITE_CNT
754
+ if(~axi_aresetn) axi_wcnt <= '0;
755
+ else begin
756
+ if(axi_wvalid && axi_wready && axi_wlast)
757
+ axi_wcnt <= '0;
758
+ else if(axi_wvalid && axi_wready)
759
+ axi_wcnt <= axi_wcnt + 1'b1;
760
+ else axi_wcnt <= axi_wcnt;
761
+ end
762
+ end
763
+ //---<< AW_CNT >>-----------------
764
+ //--->> AR_CNT <<-----------------
765
+ logic [LSIZE-1:0] axi_rcnt;
766
+
767
+ always@(posedge axi_aclk,negedge axi_aresetn)begin:READ_CNT
768
+ if(~axi_aresetn) axi_rcnt <= '0;
769
+ else begin
770
+ if(axi_rvalid && axi_rready && axi_rlast)
771
+ axi_rcnt <= '0;
772
+ else if(axi_rvalid && axi_rready)
773
+ axi_rcnt <= axi_rcnt + 1'b1;
774
+ else axi_rcnt <= axi_rcnt;
775
+ end
776
+ end
777
+ //---<< AR_CNT >>-----------------
778
+ //--->> MODE CTRL <<---------------
779
+ `ifdef VIVADO_ENV
780
+ generate
781
+ if(MODE=="ONLY_READ")begin
782
+ assign axi_awid = '0;
783
+ assign axi_awaddr = '0;
784
+ assign axi_awlen = '0;
785
+ assign axi_awsize = '0;
786
+ assign axi_awburst = '0;
787
+ assign axi_awlock = '0;
788
+ assign axi_awcache = '0;
789
+ assign axi_awprot = '0;
790
+ assign axi_awqos = '0;
791
+ assign axi_awvalid = '0;
792
+ assign axi_wdata = '0;
793
+ assign axi_wstrb = '0;
794
+ assign axi_wlast = '0;
795
+ assign axi_wvalid = '0;
796
+ assign axi_bready = '0;
797
+ end
798
+ endgenerate
799
+
800
+ generate
801
+ if(MODE=="ONLY_WRITE")begin
802
+ assign axi_arid = '0;
803
+ assign axi_araddr = '0;
804
+ assign axi_arlen = '0;
805
+ assign axi_arsize = '0;
806
+ assign axi_arburst = '0;
807
+ assign axi_arlock = '0;
808
+ assign axi_arcache = '0;
809
+ assign axi_arprot = '0;
810
+ assign axi_arqos = '0;
811
+ assign axi_arvalid = '0;
812
+ assign axi_rready = '0;
813
+ end
814
+ endgenerate
815
+ `endif
816
+
817
+ //---<< MODE CTRL >>---------------
818
+ modport slaver (
819
+ input axi_aclk ,
820
+ input axi_aresetn ,
821
+ input axi_awid ,
822
+ input axi_awaddr ,
823
+ input axi_awlen ,
824
+ input axi_awsize ,
825
+ input axi_awburst ,
826
+ input axi_awlock ,
827
+ input axi_awcache ,
828
+ input axi_awprot ,
829
+ input axi_awqos ,
830
+ input axi_awvalid ,
831
+ output axi_awready ,
832
+ input axi_wdata ,
833
+ input axi_wstrb ,
834
+ input axi_wlast ,
835
+ input axi_wvalid ,
836
+ output axi_wready ,
837
+ input axi_bready ,
838
+ output axi_bid ,
839
+ output axi_bresp ,
840
+ output axi_bvalid ,
841
+ input axi_arid ,
842
+ input axi_araddr ,
843
+ input axi_arlen ,
844
+ input axi_arsize ,
845
+ input axi_arburst ,
846
+ input axi_arlock ,
847
+ input axi_arcache ,
848
+ input axi_arprot ,
849
+ input axi_arqos ,
850
+ input axi_arvalid ,
851
+ output axi_arready ,
852
+ input axi_rready ,
853
+ output axi_rid ,
854
+ output axi_rdata ,
855
+ output axi_rresp ,
856
+ output axi_rlast ,
857
+ output axi_rvalid ,
858
+
859
+ input axi_wcnt,
860
+ input axi_rcnt,
861
+ // input axi_wevld ,
862
+ // input axi_weresp ,
863
+ // input axi_revld ,
864
+ // input axi_reresp ,
865
+ input timeout
866
+ );
867
+
868
+ modport master (
869
+ input axi_aclk ,
870
+ input axi_aresetn ,
871
+ output axi_awid ,
872
+ output axi_awaddr ,
873
+ output axi_awlen ,
874
+ output axi_awsize ,
875
+ output axi_awburst ,
876
+ output axi_awlock ,
877
+ output axi_awcache ,
878
+ output axi_awprot ,
879
+ output axi_awqos ,
880
+ output axi_awvalid ,
881
+ input axi_awready ,
882
+ output axi_wdata ,
883
+ output axi_wstrb ,
884
+ output axi_wlast ,
885
+ output axi_wvalid ,
886
+ input axi_wready ,
887
+ output axi_bready ,
888
+ input axi_bid ,
889
+ input axi_bresp ,
890
+ input axi_bvalid ,
891
+ output axi_arid ,
892
+ output axi_araddr ,
893
+ output axi_arlen ,
894
+ output axi_arsize ,
895
+ output axi_arburst ,
896
+ output axi_arlock ,
897
+ output axi_arcache ,
898
+ output axi_arprot ,
899
+ output axi_arqos ,
900
+ output axi_arvalid ,
901
+ input axi_arready ,
902
+ output axi_rready ,
903
+ input axi_rid ,
904
+ input axi_rdata ,
905
+ input axi_rresp ,
906
+ input axi_rlast ,
907
+ input axi_rvalid ,
908
+ input axi_wcnt,
909
+ input axi_rcnt,
910
+ // input axi_wevld ,
911
+ // input axi_weresp ,
912
+ // input axi_revld ,
913
+ // input axi_reresp ,
914
+ input timeout
915
+ );
916
+
917
+ modport master_wr (
918
+ input axi_aclk ,
919
+ input axi_aresetn ,
920
+ output axi_awid ,
921
+ output axi_awaddr ,
922
+ output axi_awlen ,
923
+ output axi_awsize ,
924
+ output axi_awburst ,
925
+ output axi_awlock ,
926
+ output axi_awcache ,
927
+ output axi_awprot ,
928
+ output axi_awqos ,
929
+ output axi_awvalid ,
930
+ input axi_awready ,
931
+ output axi_wdata ,
932
+ output axi_wstrb ,
933
+ output axi_wlast ,
934
+ output axi_wvalid ,
935
+ input axi_wready ,
936
+ output axi_bready ,
937
+ input axi_bid ,
938
+ input axi_bresp ,
939
+ input axi_bvalid ,
940
+ input axi_wcnt,
941
+ // input axi_rcnt,
942
+ input timeout
943
+ );
944
+
945
+ modport master_rd (
946
+ input axi_aclk ,
947
+ input axi_aresetn ,
948
+ output axi_arid ,
949
+ output axi_araddr ,
950
+ output axi_arlen ,
951
+ output axi_arsize ,
952
+ output axi_arburst ,
953
+ output axi_arlock ,
954
+ output axi_arcache ,
955
+ output axi_arprot ,
956
+ output axi_arqos ,
957
+ output axi_arvalid ,
958
+ input axi_arready ,
959
+ output axi_rready ,
960
+ input axi_rid ,
961
+ input axi_rdata ,
962
+ input axi_rresp ,
963
+ input axi_rlast ,
964
+ input axi_rvalid ,
965
+ // input axi_wcnt,
966
+ input axi_rcnt,
967
+ input timeout
968
+ );
969
+
970
+ modport slaver_wr (
971
+ input axi_aclk ,
972
+ input axi_aresetn ,
973
+ input axi_awid ,
974
+ input axi_awaddr ,
975
+ input axi_awlen ,
976
+ input axi_awsize ,
977
+ input axi_awburst ,
978
+ input axi_awlock ,
979
+ input axi_awcache ,
980
+ input axi_awprot ,
981
+ input axi_awqos ,
982
+ input axi_awvalid ,
983
+ output axi_awready ,
984
+ input axi_wdata ,
985
+ input axi_wstrb ,
986
+ input axi_wlast ,
987
+ input axi_wvalid ,
988
+ output axi_wready ,
989
+ input axi_bready ,
990
+ output axi_bid ,
991
+ output axi_bresp ,
992
+ output axi_bvalid ,
993
+ input axi_wcnt,
994
+ // input axi_rcnt,
995
+ input timeout
996
+ );
997
+
998
+ modport slaver_rd (
999
+ input axi_aclk ,
1000
+ input axi_aresetn ,
1001
+ input axi_arid ,
1002
+ input axi_araddr ,
1003
+ input axi_arlen ,
1004
+ input axi_arsize ,
1005
+ input axi_arburst ,
1006
+ input axi_arlock ,
1007
+ input axi_arcache ,
1008
+ input axi_arprot ,
1009
+ input axi_arqos ,
1010
+ input axi_arvalid ,
1011
+ output axi_arready ,
1012
+ input axi_rready ,
1013
+ output axi_rid ,
1014
+ output axi_rdata ,
1015
+ output axi_rresp ,
1016
+ output axi_rlast ,
1017
+ output axi_rvalid ,
1018
+ // input axi_wcnt,
1019
+ input axi_rcnt,
1020
+ input timeout
1021
+ );
1022
+
1023
+ modport master_wr_aux (
1024
+ input axi_aclk ,
1025
+ input axi_aresetn ,
1026
+ output axi_awid ,
1027
+ output axi_awaddr ,
1028
+ output axi_awlen ,
1029
+ output axi_awsize ,
1030
+ output axi_awburst ,
1031
+ output axi_awlock ,
1032
+ output axi_awcache ,
1033
+ output axi_awprot ,
1034
+ output axi_awqos ,
1035
+ output axi_awvalid ,
1036
+ input axi_awready ,
1037
+ // output axi_wdata ,
1038
+ // output axi_wstrb ,
1039
+ input axi_wlast ,
1040
+ input axi_wvalid ,
1041
+ input axi_wready ,
1042
+ output axi_bready ,
1043
+ input axi_bid ,
1044
+ input axi_bresp ,
1045
+ input axi_bvalid ,
1046
+ input axi_wcnt,
1047
+ input axi_rcnt,
1048
+ input timeout
1049
+ );
1050
+
1051
+ modport master_wr_aux_no_resp (
1052
+ input axi_aclk ,
1053
+ input axi_aresetn ,
1054
+ output axi_awid ,
1055
+ output axi_awaddr ,
1056
+ output axi_awlen ,
1057
+ output axi_awsize ,
1058
+ output axi_awburst ,
1059
+ output axi_awlock ,
1060
+ output axi_awcache ,
1061
+ output axi_awprot ,
1062
+ output axi_awqos ,
1063
+ output axi_awvalid ,
1064
+ input axi_awready ,
1065
+ // output axi_wdata ,
1066
+ // output axi_wstrb ,
1067
+ input axi_wlast ,
1068
+ input axi_wvalid ,
1069
+ input axi_wready ,
1070
+ // input axi_bready ,
1071
+ // input axi_bid ,
1072
+ // input axi_bresp ,
1073
+ // input axi_bvalid ,
1074
+ input axi_wcnt,
1075
+ // input axi_rcnt,
1076
+ input timeout
1077
+ );
1078
+
1079
+ modport master_rd_aux (
1080
+ input axi_aclk ,
1081
+ input axi_aresetn ,
1082
+ output axi_arid ,
1083
+ output axi_araddr ,
1084
+ output axi_arlen ,
1085
+ output axi_arsize ,
1086
+ output axi_arburst ,
1087
+ output axi_arlock ,
1088
+ output axi_arcache ,
1089
+ output axi_arprot ,
1090
+ output axi_arqos ,
1091
+ output axi_arvalid ,
1092
+ input axi_arready ,
1093
+ input axi_rready ,
1094
+ input axi_rid ,
1095
+ // input axi_rdata ,
1096
+ input axi_rresp ,
1097
+ input axi_rlast ,
1098
+ input axi_rvalid ,
1099
+ // input axi_wcnt,
1100
+ input axi_rcnt,
1101
+ input timeout
1102
+ );
1103
+
1104
+ modport mirror (
1105
+ input axi_aclk ,
1106
+ input axi_aresetn ,
1107
+ input axi_awid ,
1108
+ input axi_awaddr ,
1109
+ input axi_awlen ,
1110
+ input axi_awsize ,
1111
+ input axi_awburst ,
1112
+ input axi_awlock ,
1113
+ input axi_awcache ,
1114
+ input axi_awprot ,
1115
+ input axi_awqos ,
1116
+ input axi_awvalid ,
1117
+ input axi_awready ,
1118
+ input axi_wdata ,
1119
+ input axi_wstrb ,
1120
+ input axi_wlast ,
1121
+ input axi_wvalid ,
1122
+ input axi_wready ,
1123
+ input axi_bready ,
1124
+ input axi_bid ,
1125
+ input axi_bresp ,
1126
+ input axi_bvalid ,
1127
+ input axi_arid ,
1128
+ input axi_araddr ,
1129
+ input axi_arlen ,
1130
+ input axi_arsize ,
1131
+ input axi_arburst ,
1132
+ input axi_arlock ,
1133
+ input axi_arcache ,
1134
+ input axi_arprot ,
1135
+ input axi_arqos ,
1136
+ input axi_arvalid ,
1137
+ input axi_arready ,
1138
+ input axi_rready ,
1139
+ input axi_rid ,
1140
+ input axi_rdata ,
1141
+ input axi_rresp ,
1142
+ input axi_rlast ,
1143
+ input axi_rvalid ,
1144
+ input axi_wcnt,
1145
+ input axi_rcnt,
1146
+ // output axi_wevld ,
1147
+ // output axi_weresp ,
1148
+ // output axi_revld ,
1149
+ // output axi_reresp ,
1150
+ input timeout
1151
+ );
1152
+
1153
+ modport mirror_wr (
1154
+ input axi_aclk ,
1155
+ input axi_aresetn ,
1156
+ input axi_awid ,
1157
+ input axi_awaddr ,
1158
+ input axi_awlen ,
1159
+ input axi_awsize ,
1160
+ input axi_awburst ,
1161
+ input axi_awlock ,
1162
+ input axi_awcache ,
1163
+ input axi_awprot ,
1164
+ input axi_awqos ,
1165
+ input axi_awvalid ,
1166
+ input axi_awready ,
1167
+ input axi_wdata ,
1168
+ input axi_wstrb ,
1169
+ input axi_wlast ,
1170
+ input axi_wvalid ,
1171
+ input axi_wready ,
1172
+ input axi_bready ,
1173
+ input axi_bid ,
1174
+ input axi_bresp ,
1175
+ input axi_bvalid ,
1176
+ input axi_wcnt,
1177
+ // output axi_wevld ,
1178
+ // output axi_weresp ,
1179
+ // output axi_revld ,
1180
+ // output axi_reresp ,
1181
+ input timeout
1182
+ );
1183
+
1184
+ modport mirror_rd (
1185
+ input axi_aclk ,
1186
+ input axi_aresetn ,
1187
+ input axi_arid ,
1188
+ input axi_araddr ,
1189
+ input axi_arlen ,
1190
+ input axi_arsize ,
1191
+ input axi_arburst ,
1192
+ input axi_arlock ,
1193
+ input axi_arcache ,
1194
+ input axi_arprot ,
1195
+ input axi_arqos ,
1196
+ input axi_arvalid ,
1197
+ input axi_arready ,
1198
+ input axi_rready ,
1199
+ input axi_rid ,
1200
+ input axi_rdata ,
1201
+ input axi_rresp ,
1202
+ input axi_rlast ,
1203
+ input axi_rvalid ,
1204
+ input axi_rcnt,
1205
+ // output axi_wevld ,
1206
+ // output axi_weresp ,
1207
+ // output axi_revld ,
1208
+ // output axi_reresp ,
1209
+ input timeout
1210
+ );
1211
+
1212
+ modport lite_master(
1213
+ input axi_aclk ,
1214
+ input axi_aresetn ,
1215
+ output axi_awvalid ,
1216
+ input axi_awready ,
1217
+ output axi_awaddr ,
1218
+ output axi_wvalid ,
1219
+ input axi_wready ,
1220
+ output axi_wdata ,
1221
+ input axi_bresp ,
1222
+ input axi_bvalid ,
1223
+ output axi_bready ,
1224
+ output axi_arvalid ,
1225
+ input axi_arready ,
1226
+ output axi_araddr ,
1227
+ input axi_rvalid ,
1228
+ output axi_rready ,
1229
+ input axi_rdata ,
1230
+ // input axi_rresp ,
1231
+ input timeout
1232
+ );
1233
+
1234
+ modport lite_slaver(
1235
+ input axi_aclk ,
1236
+ input axi_aresetn ,
1237
+ input axi_awvalid ,
1238
+ output axi_awready ,
1239
+ input axi_awaddr ,
1240
+ input axi_wvalid ,
1241
+ output axi_wready ,
1242
+ input axi_wdata ,
1243
+ output axi_bresp ,
1244
+ output axi_bvalid ,
1245
+ input axi_bready ,
1246
+ input axi_arvalid ,
1247
+ output axi_arready ,
1248
+ input axi_araddr ,
1249
+ output axi_rvalid ,
1250
+ input axi_rready ,
1251
+ output axi_rdata ,
1252
+ // output axi_rresp
1253
+ input timeout
1254
+ );
1255
+
1256
+ endinterface:axi_inf2