axi_tdl 0.0.10 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/gem-push.yml +44 -0
  3. data/.github/workflows/ruby.yml +35 -0
  4. data/.gitignore +3 -1
  5. data/.travis.yml +9 -0
  6. data/Gemfile +4 -0
  7. data/README.EN.md +7 -2
  8. data/README.md +6 -2
  9. data/Rakefile +2 -6
  10. data/axi_tdl.gemspec +3 -4
  11. data/lib/axi/AXI4/axi4_direct_B1.sv +23 -23
  12. data/lib/axi/AXI4/axi4_dpram_cache.sv +33 -33
  13. data/lib/axi/AXI4/axis_to_axi4_wr.rb +1 -0
  14. data/lib/axi/AXI4/axis_to_axi4_wr.sv +20 -20
  15. data/lib/axi/AXI4/packet_partition/axi4_partition_rd_verb.sv +32 -32
  16. data/lib/axi/AXI4/packet_partition/data_inf_partition.rb +2 -0
  17. data/lib/axi/AXI4/packet_partition/data_inf_partition.sv +71 -71
  18. data/lib/axi/AXI4/wide_axis_to_axi4_wr.rb +2 -1
  19. data/lib/axi/AXI4/wide_axis_to_axi4_wr.sv +23 -23
  20. data/lib/axi/AXI_stream/axi_stream_split_channel.rb +7 -1
  21. data/lib/axi/AXI_stream/axis_head_cut_verb.sv +6 -2
  22. data/lib/axi/AXI_stream/axis_insert_copy.rb +18 -4
  23. data/lib/axi/AXI_stream/axis_sim_master_model.rb +28 -0
  24. data/lib/axi/AXI_stream/axis_sim_slaver_model.rb +26 -0
  25. data/lib/axi/AXI_stream/axis_sim_verify_by_coe.sv +101 -0
  26. data/lib/axi/AXI_stream/axis_split_channel_verb.rb +2 -0
  27. data/lib/axi/common/common_ram_sim_wrapper.sv +9 -9
  28. data/lib/axi/common/common_ram_wrapper.sv +12 -12
  29. data/lib/axi/data_interface/data_inf_c/data_c_pipe_sync_seam.sv +26 -26
  30. data/lib/axi/data_interface/data_inf_c/data_c_sim_master_model.sv +69 -0
  31. data/lib/axi/data_interface/data_inf_c/data_c_sim_slaver_model.sv +58 -0
  32. data/lib/axi/data_interface/data_inf_c/logic_sim_model.sv +64 -0
  33. data/lib/axi/techbench/tb_axi_stream_split_channel.rb +69 -0
  34. data/lib/axi/techbench/tb_axi_stream_split_channel.sv +149 -0
  35. data/lib/axi/techbench/tb_axis_split_channel_verb.rb +69 -0
  36. data/lib/axi/techbench/tb_axis_split_channel_verb.sv +125 -0
  37. data/lib/axi_tdl.rb +1 -0
  38. data/lib/axi_tdl/version.rb +1 -1
  39. data/lib/tdl/auto_script/autogensdl.rb +16 -5
  40. data/lib/tdl/axi4/axi4_interconnect_verb.rb +4 -2
  41. data/lib/tdl/basefunc.rb +1 -0
  42. data/lib/tdl/class_hdl/hdl_always_comb.rb +4 -3
  43. data/lib/tdl/class_hdl/hdl_always_ff.rb +49 -8
  44. data/lib/tdl/class_hdl/hdl_assign.rb +5 -3
  45. data/lib/tdl/class_hdl/hdl_block_ifelse.rb +11 -9
  46. data/lib/tdl/class_hdl/hdl_foreach.rb +2 -2
  47. data/lib/tdl/class_hdl/hdl_function.rb +4 -2
  48. data/lib/tdl/class_hdl/hdl_generate.rb +5 -4
  49. data/lib/tdl/class_hdl/hdl_initial.rb +11 -10
  50. data/lib/tdl/class_hdl/hdl_module_def.rb +18 -1
  51. data/lib/tdl/class_hdl/hdl_redefine_opertor.rb +35 -14
  52. data/lib/tdl/class_hdl/hdl_struct.rb +1 -1
  53. data/lib/tdl/class_hdl/hdl_verify.rb +1 -1
  54. data/lib/tdl/elements/originclass.rb +6 -1
  55. data/lib/tdl/elements/parameter.rb +1 -1
  56. data/lib/tdl/examples/10_random/exp_random.sv +3 -3
  57. data/lib/tdl/examples/11_test_unit/dve.tcl +155 -2
  58. data/lib/tdl/examples/11_test_unit/exp_test_unit.rb +9 -8
  59. data/lib/tdl/examples/11_test_unit/exp_test_unit.sv +1 -1
  60. data/lib/tdl/examples/11_test_unit/modules/sub_md0.rb +6 -3
  61. data/lib/tdl/examples/11_test_unit/modules/sub_md0.sv +5 -5
  62. data/lib/tdl/examples/11_test_unit/modules/sub_md1.rb +9 -4
  63. data/lib/tdl/examples/11_test_unit/modules/sub_md1.sv +5 -5
  64. data/lib/tdl/examples/11_test_unit/tb_exp_test_unit.sv +1 -3
  65. data/lib/tdl/examples/11_test_unit/tu0.sv +9 -9
  66. data/lib/tdl/examples/11_test_unit/tu1.sv +1 -1
  67. data/lib/tdl/examples/1_define_module/exmple_md.sv +12 -12
  68. data/lib/tdl/examples/2_hdl_class/tmp/always_comb_test.sv +60 -60
  69. data/lib/tdl/examples/2_hdl_class/tmp/always_ff_test.sv +2 -2
  70. data/lib/tdl/examples/2_hdl_class/tmp/case_test.sv +17 -17
  71. data/lib/tdl/examples/2_hdl_class/tmp/head_pkg_module.sv +9 -9
  72. data/lib/tdl/examples/2_hdl_class/tmp/simple_assign_test.sv +1 -1
  73. data/lib/tdl/examples/2_hdl_class/tmp/state_case_test.sv +10 -10
  74. data/lib/tdl/examples/2_hdl_class/tmp/test_foreach.sv +3 -3
  75. data/lib/tdl/examples/2_hdl_class/tmp/test_function.sv +7 -7
  76. data/lib/tdl/examples/2_hdl_class/tmp/test_initial_assert.sv +3 -3
  77. data/lib/tdl/examples/2_hdl_class/tmp/test_module.sv +2 -2
  78. data/lib/tdl/examples/2_hdl_class/tmp/test_module_var.sv +1 -1
  79. data/lib/tdl/examples/2_hdl_class/tmp/test_package.sv +4 -5
  80. data/lib/tdl/examples/2_hdl_class/tmp/test_package2.sv +4 -4
  81. data/lib/tdl/examples/2_hdl_class/tmp/test_struct_function.sv +2 -2
  82. data/lib/tdl/examples/2_hdl_class/tmp/test_vcs_string.sv +1 -1
  83. data/lib/tdl/examples/2_hdl_class/tmp/text_generate.sv +7 -7
  84. data/lib/tdl/examples/4_generate/test_generate.sv +11 -11
  85. data/lib/tdl/examples/5_logic_combin/test_logic_combin.sv +3 -3
  86. data/lib/tdl/examples/7_module_with_package/body_package.sv +3 -4
  87. data/lib/tdl/examples/7_module_with_package/example_pkg.sv +4 -4
  88. data/lib/tdl/examples/7_module_with_package/head_package.sv +3 -4
  89. data/lib/tdl/examples/8_top_module/tb_test_top.sv +1 -2
  90. data/lib/tdl/examples/9_itegration/clock_manage/itgt_module_clock_manage.rb +13 -0
  91. data/lib/tdl/examples/9_itegration/clock_manage/test_clock_bb.sv +34 -0
  92. data/lib/tdl/examples/9_itegration/tb_test_top.sv +2 -2
  93. data/lib/tdl/examples/9_itegration/tb_test_tttop.sv +1 -1
  94. data/lib/tdl/examples/9_itegration/tb_test_tttop_sim.sv +38 -0
  95. data/lib/tdl/examples/9_itegration/test_top.sv +4 -4
  96. data/lib/tdl/examples/9_itegration/test_tttop.sv +4 -4
  97. data/lib/tdl/examples/9_itegration/test_tttop_sim.sv +9 -0
  98. data/lib/tdl/examples/9_itegration/top.rb +1 -0
  99. data/lib/tdl/exlib/axis_eth_ex.rb +95 -0
  100. data/lib/tdl/exlib/axis_verify.rb +264 -0
  101. data/lib/tdl/exlib/clock_reset_verify.rb +29 -0
  102. data/lib/tdl/exlib/dve_tcl.rb +30 -11
  103. data/lib/tdl/exlib/itegration.rb +15 -3
  104. data/lib/tdl/exlib/itegration_verb.rb +166 -129
  105. data/lib/tdl/exlib/logic_verify.rb +88 -0
  106. data/lib/tdl/exlib/test_point.rb +96 -94
  107. data/lib/tdl/exlib/test_point.rb.bak +293 -0
  108. data/lib/tdl/rebuild_ele/ele_base.rb +1 -1
  109. data/lib/tdl/sdlmodule/sdlmodlule_path_db.rb +34 -0
  110. data/lib/tdl/sdlmodule/sdlmodule.rb +18 -14
  111. data/lib/tdl/sdlmodule/sdlmodule_draw.rb +81 -16
  112. data/lib/tdl/sdlmodule/test_unit_module.rb +278 -33
  113. data/lib/tdl/sdlmodule/test_unit_module.rb.bak +143 -0
  114. data/lib/tdl/sdlmodule/top_module.rb +62 -58
  115. data/lib/tdl/sdlmodule/top_module.rb.bak +547 -0
  116. data/lib/tdl/tdl.rb +18 -3
  117. metadata +35 -134
  118. data/Gemfile.lock +0 -28
  119. data/lib/axi/AXI_stream/axi_stream_split_channel.sv +0 -149
  120. data/lib/axi/AXI_stream/axis_head_cut_verc.sv +0 -242
  121. data/lib/axi/AXI_stream/axis_insert_copy.sv +0 -66
  122. data/lib/axi/AXI_stream/axis_pipe_sync_seam.sv +0 -48
  123. data/lib/axi/AXI_stream/axis_rom_contect_sim.sv +0 -113
  124. data/lib/axi/AXI_stream/axis_split_channel_verb.sv +0 -62
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4759dac8387adffa17116bb46d781e95156d52700ca985b2d1ab14afc7d1d0a3
4
- data.tar.gz: bda1a78909b2cecd01e34bff94660820f2c446c2c6526c5b59c574d98df028d4
3
+ metadata.gz: baeb52ac25e3aaa2c8a6207d9de9744e64f6264112db6667dddf704f547ddf8f
4
+ data.tar.gz: 52bc1a24600db46881c770564a2f8a38a00e5b6547ab2dba312020a206a3e1a8
5
5
  SHA512:
6
- metadata.gz: e401a4d8363b77942116f3990e804abae4e885c6a047728fe68b342fe90b94cb35be7b174612587cd58a6bfe63b3eb5903ea959a5f7f814343ec1013785ed5e1
7
- data.tar.gz: ff8e318a2713db70c974372a5c0cd92a53cc3c320f20cec7eb79eab72b6c65f0031b5c596d9a7acee93ef654a107922dbcdb1621520e1ab04707eb336314bddb
6
+ metadata.gz: e262a33c8f90aa05558c9d71e2d7d1ab90e9b1dcca5e17ba5dfd0c1a77b1a41b06bfe07a054b39498f34fd027b0da5205b01c77db91303e97cb0ca74ea783eeb
7
+ data.tar.gz: 183f5a3421d04f6c418fea0c1fa5ec14a91a50a1ffd3902e3decc4cac8cc77b774f8031e6686f4948c6d30b9925618a9062900f30d5312e3464ed36c5763b842
@@ -0,0 +1,44 @@
1
+ name: Ruby Gem
2
+
3
+ on:
4
+ push:
5
+ branches: [ main ]
6
+ pull_request:
7
+ branches: [ main ]
8
+
9
+ jobs:
10
+ build:
11
+ name: Build + Publish
12
+ runs-on: ubuntu-latest
13
+
14
+ steps:
15
+ - uses: actions/checkout@v2
16
+ - name: Set up Ruby 2.6
17
+ uses: actions/setup-ruby@v1
18
+ with:
19
+ ruby-version: 2.6.x
20
+
21
+ - name: Publish to GPR
22
+ run: |
23
+ mkdir -p $HOME/.gem
24
+ touch $HOME/.gem/credentials
25
+ chmod 0600 $HOME/.gem/credentials
26
+ printf -- "---\n:github: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
27
+ gem build *.gemspec
28
+ gem push --KEY github --host https://rubygems.pkg.github.com/${OWNER} *.gem
29
+ env:
30
+ GEM_HOST_API_KEY: "Bearer ${{secrets.GITHUB_TOKEN}}"
31
+ OWNER: ${{ github.repository_owner }}
32
+
33
+ - name: Publish to RubyGems
34
+ run: |
35
+ mkdir -p $HOME/.gem
36
+ touch $HOME/.gem/credentials
37
+ chmod 0600 $HOME/.gem/credentials
38
+ printf -- "---\n:rubygems_api_key: ${RUBYGEMS_API_KEY}\n" > $HOME/.gem/credentials
39
+ gem build *.gemspec
40
+ gem push *.gem
41
+ env:
42
+ GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
43
+ RUBYGEMS_API_KEY: ${{secrets.RUBYGEMS_API_KEY}}
44
+ # RELEASE_COMMAND: rake release
@@ -0,0 +1,35 @@
1
+ # This workflow uses actions that are not certified by GitHub.
2
+ # They are provided by a third-party and are governed by
3
+ # separate terms of service, privacy policy, and support
4
+ # documentation.
5
+ # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
+ # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
+
8
+ name: Ruby
9
+
10
+ on:
11
+ push:
12
+ branches: [ main ]
13
+ pull_request:
14
+ branches: [ main ]
15
+
16
+ jobs:
17
+ test:
18
+
19
+ runs-on: ubuntu-latest
20
+ strategy:
21
+ matrix:
22
+ ruby-version: ['2.6', '2.7', '3.0']
23
+
24
+ steps:
25
+ - uses: actions/checkout@v2
26
+ - name: Set up Ruby
27
+ # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
28
+ # change this to (see https://github.com/ruby/setup-ruby#versioning):
29
+ # uses: ruby/setup-ruby@v1
30
+ uses: ruby/setup-ruby@473e4d8fe5dd94ee328fdfca9f8c9c7afc9dae5e
31
+ with:
32
+ ruby-version: ${{ matrix.ruby-version }}
33
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
34
+ - name: Run tests
35
+ run: bundle exec rake test
data/.gitignore CHANGED
@@ -7,4 +7,6 @@
7
7
  /spec/reports/
8
8
  /tmp/
9
9
  .rake_tasks~
10
- lib/tdl/auto_script/tmp/
10
+ lib/tdl/auto_script/tmp/
11
+ /*.gem
12
+ Gemfile.lock
data/.travis.yml ADDED
@@ -0,0 +1,9 @@
1
+ language: ruby
2
+ before_install:
3
+ - gem install bundler
4
+
5
+ rvm:
6
+ - 2.6
7
+ - 3.0
8
+
9
+ script: rake test
data/Gemfile CHANGED
@@ -4,3 +4,7 @@ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
4
 
5
5
  # Specify your gem's dependencies in axi_tdl.gemspec
6
6
  gemspec
7
+
8
+ gem 'rake'
9
+ # gem 'minitest',"~> 5.10"
10
+ # gem 'pry',"~> 0.11"
data/README.EN.md CHANGED
@@ -1,4 +1,9 @@
1
- # Axi
1
+
2
+ # AxiTdl
3
+ [![Gem Version](https://badge.fury.io/rb/axi_tdl.svg)](https://badge.fury.io/rb/axi_tdl)
4
+ [![Build Status](https://travis-ci.com/CookDarwin/axi_tdl.svg?branch=main)](https://travis-ci.com/CookDarwin/axi_tdl)
5
+
6
+ ## Axi
2
7
    It is a wonderful library of axi4, but it is not full axi4, It is designed by systemverilog. I compact axi4 and add something to it.
3
8
 
4
9
    axi hdl path
@@ -6,7 +11,7 @@
6
11
  require 'axi_tdl'
7
12
  AxiTdl::AXI_PATH
8
13
  ```
9
- # Other
14
+ ## Other
10
15
    It contain a simple interface that only define three signals, `valid`, `ready`, and `data`. I think it is useful for design.
11
16
 
12
17
  ## What is tdl?
data/README.md CHANGED
@@ -1,4 +1,8 @@
1
- # Axi
1
+ # AxiTdl
2
+ [![Gem Version](https://badge.fury.io/rb/axi_tdl.svg)](https://badge.fury.io/rb/axi_tdl)
3
+ [![Build Status](https://travis-ci.com/CookDarwin/axi_tdl.svg?branch=main)](https://travis-ci.com/CookDarwin/axi_tdl)
4
+
5
+ ## Axi
2
6
    axi是一个 axi4 拓展库,它使用的是删减版的AXI4协议,使用systemverilog开发,除此外我还拓展了AXI4的一些信号。
3
7
 
4
8
    axi hdl 所在路径可以如下Ruby 脚本获取
@@ -6,7 +10,7 @@
6
10
  require 'axi_tdl'
7
11
  AxiTdl::AXI_PATH
8
12
  ```
9
- # 其他
13
+ ## 其他
10
14
    此库还包含一个简单的接口定义, 接口信号只有 `valid`, `ready`, 和 `data`. 对于一些轻量设计很有帮助。
11
15
 
12
16
  ## tdl 是什么?
data/Rakefile CHANGED
@@ -1,4 +1,4 @@
1
- require "bundler/gem_tasks"
1
+ # require "bundler/gem_tasks"
2
2
  require "rake/clean"
3
3
  require "rake/testtask"
4
4
  require "fileutils"
@@ -10,9 +10,5 @@ Rake::TestTask.new(:test) do |t|
10
10
  t.libs << "lib/tdl"
11
11
  t.pattern = "test/*_test.rb"
12
12
  # t.ruby_opts = ["-c"]
13
- t.verbose = true
13
+ # t.verbose = true
14
14
  end
15
-
16
- task :old do
17
- exec 'ruby -I"lib:test" -I"/home/wmy367/.rvm/gems/ruby-2.6.3/gems/rake-10.5.0/lib" "/home/wmy367/.rvm/gems/ruby-2.6.3/gems/rake-10.5.0/lib/rake/rake_test_loader.rb" "test/*_test.rb" '
18
- end
data/axi_tdl.gemspec CHANGED
@@ -1,4 +1,3 @@
1
-
2
1
  lib = File.expand_path("../lib", __FILE__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
3
  require "axi_tdl/version"
@@ -35,9 +34,9 @@ Gem::Specification.new do |spec|
35
34
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
36
35
  spec.require_paths = ["lib"]
37
36
 
38
- spec.add_development_dependency "bundler", "~> 1.16"
37
+ # spec.add_development_dependency "bundler", "~> 1.16"
39
38
  spec.add_development_dependency "rake", "~> 10.0"
40
39
  # spec.add_development_dependency "rspec"
41
- spec.add_development_dependency "pry"
42
- spec.add_development_dependency "minitest"
40
+ spec.add_development_dependency "pry","~> 0.11"
41
+ spec.add_development_dependency "minitest","~> 5.10"
43
42
  end
@@ -12,61 +12,61 @@ madified:
12
12
  (* axi4 = "true" *)
13
13
  module axi4_direct_B1 (
14
14
  (* up_stream = "true" *)
15
- axi_inf.slaver slaver,
15
+ axi_inf.slaver slaver_inf,
16
16
  (* down_stream = "true" *)
17
- axi_inf.master master
17
+ axi_inf.master master_inf
18
18
  );
19
19
 
20
20
 
21
21
  generate
22
- if(slaver.MODE == "ONLY_READ" && master.MODE == "ONLY_READ")
22
+ if(slaver_inf.MODE == "ONLY_READ" && master_inf.MODE == "ONLY_READ")
23
23
  axi4_direct_A1 #(
24
24
  .MODE ("ONLY_READ_to_ONLY_READ") //ONLY_READ to BOTH,ONLY_WRITE to BOTH,BOTH to BOTH,BOTH to ONLY_READ,BOTH to ONLY_WRITE
25
25
  )axi4_direct_inst_ONLY_READ_to_ONLY_READ(
26
- /* axi_inf.slaver */ .slaver (slaver ),
27
- /* axi_inf.master */ .master (master )
26
+ /* axi_inf.slaver */ .slaver (slaver_inf ),
27
+ /* axi_inf.master */ .master (master_inf )
28
28
  );
29
- else if(slaver.MODE == "ONLY_READ" && master.MODE == "BOTH")
29
+ else if(slaver_inf.MODE == "ONLY_READ" && master_inf.MODE == "BOTH")
30
30
  axi4_direct_A1 #(
31
31
  .MODE ("ONLY_READ_to_BOTH") //ONLY_READ to BOTH,ONLY_WRITE to BOTH,BOTH to BOTH,BOTH to ONLY_READ,BOTH to ONLY_WRITE
32
32
  )axi4_direct_inst_ONLY_READ_to_BOTH(
33
- /* axi_inf.slaver */ .slaver (slaver ),
34
- /* axi_inf.master */ .master (master )
33
+ /* axi_inf.slaver */ .slaver (slaver_inf ),
34
+ /* axi_inf.master */ .master (master_inf )
35
35
  );
36
- else if(slaver.MODE == "ONLY_WRITE" && master.MODE == "BOTH")
36
+ else if(slaver_inf.MODE == "ONLY_WRITE" && master_inf.MODE == "BOTH")
37
37
  axi4_direct_A1 #(
38
38
  .MODE ("ONLY_WRITE_to_BOTH") //ONLY_READ to BOTH,ONLY_WRITE to BOTH,BOTH to BOTH,BOTH to ONLY_READ,BOTH to ONLY_WRITE
39
39
  )axi4_direct_inst_ONLY_WRITE_to_BOTH(
40
- /* axi_inf.slaver */ .slaver (slaver ),
41
- /* axi_inf.master */ .master (master )
40
+ /* axi_inf.slaver */ .slaver (slaver_inf ),
41
+ /* axi_inf.master */ .master (master_inf )
42
42
  );
43
- else if(slaver.MODE == "ONLY_WRITE" && master.MODE == "ONLY_WRITE")
43
+ else if(slaver_inf.MODE == "ONLY_WRITE" && master_inf.MODE == "ONLY_WRITE")
44
44
  axi4_direct_A1 #(
45
45
  .MODE ("ONLY_WRITE_to_ONLY_WRITE") //ONLY_READ to BOTH,ONLY_WRITE to BOTH,BOTH to BOTH,BOTH to ONLY_READ,BOTH to ONLY_WRITE
46
46
  )axi4_direct_inst_ONLY_WRITE_to_ONLY_WRITE(
47
- /* axi_inf.slaver */ .slaver (slaver ),
48
- /* axi_inf.master */ .master (master )
47
+ /* axi_inf.slaver */ .slaver (slaver_inf ),
48
+ /* axi_inf.master */ .master (master_inf )
49
49
  );
50
- else if(slaver.MODE == "BOTH" && master.MODE == "ONLY_WRITE")
50
+ else if(slaver_inf.MODE == "BOTH" && master_inf.MODE == "ONLY_WRITE")
51
51
  axi4_direct_A1 #(
52
52
  .MODE ("BOTH_to_ONLY_WRITE") //ONLY_READ to BOTH,ONLY_WRITE to BOTH,BOTH to BOTH,BOTH to ONLY_READ,BOTH to ONLY_WRITE
53
53
  )axi4_direct_inst_BOTH_to_ONLY_WRITE(
54
- /* axi_inf.slaver */ .slaver (slaver ),
55
- /* axi_inf.master */ .master (master )
54
+ /* axi_inf.slaver */ .slaver (slaver_inf ),
55
+ /* axi_inf.master */ .master (master_inf )
56
56
  );
57
- else if(slaver.MODE == "BOTH" && master.MODE == "ONLY_READ")
57
+ else if(slaver_inf.MODE == "BOTH" && master_inf.MODE == "ONLY_READ")
58
58
  axi4_direct_A1 #(
59
59
  .MODE ("BOTH_to_ONLY_READ") //ONLY_READ to BOTH,ONLY_WRITE to BOTH,BOTH to BOTH,BOTH to ONLY_READ,BOTH to ONLY_WRITE
60
60
  )axi4_direct_inst_BOTH_to_ONLY_READ(
61
- /* axi_inf.slaver */ .slaver (slaver ),
62
- /* axi_inf.master */ .master (master )
61
+ /* axi_inf.slaver */ .slaver (slaver_inf ),
62
+ /* axi_inf.master */ .master (master_inf )
63
63
  );
64
- else if(slaver.MODE == "BOTH" && master.MODE == "BOTH")
64
+ else if(slaver_inf.MODE == "BOTH" && master_inf.MODE == "BOTH")
65
65
  axi4_direct_A1 #(
66
66
  .MODE ("BOTH_to_BOTH") //ONLY_READ to BOTH,ONLY_WRITE to BOTH,BOTH to BOTH,BOTH to ONLY_READ,BOTH to ONLY_WRITE
67
67
  )axi4_direct_inst_BOTH_to_BOTH(
68
- /* axi_inf.slaver */ .slaver (slaver ),
69
- /* axi_inf.master */ .master (master )
68
+ /* axi_inf.slaver */ .slaver (slaver_inf ),
69
+ /* axi_inf.master */ .master (master_inf )
70
70
  );
71
71
 
72
72
  endgenerate
@@ -20,7 +20,7 @@ module axi4_dpram_cache #(
20
20
  //==========================================================================
21
21
  //-------- define ----------------------------------------------------------
22
22
 
23
- cm_ram_inf #(.DSIZE(a_inf.DSIZE),.RSIZE(a_inf.ASIZE),.MSIZE( a_inf.DSIZE/8)) xram_inf();
23
+ cm_ram_inf #(.DSIZE(a_inf.DSIZE),.RSIZE(a_inf.ASIZE),.MSIZE(a_inf.DSIZE/8)) xram_inf();
24
24
  axi_stream_inf #(.DSIZE(a_inf.ASIZE+a_inf.DSIZE+1),.USIZE(1)) a_axis_inf (.aclk(a_inf.axi_aclk),.aresetn(a_inf.axi_aresetn),.aclken(1'b1)) ;
25
25
  axi_stream_inf #(.DSIZE(a_inf.DSIZE),.USIZE(1)) a_axis_rd_inf (.aclk(a_inf.axi_aclk),.aresetn(a_inf.axi_aresetn),.aclken(1'b1)) ;
26
26
  data_inf_c #(.DSIZE(a_inf.ASIZE+1)) a_datac_rd_inf (.clock(a_inf.axi_aclk),.rst_n(a_inf.axi_aresetn)) ;
@@ -69,44 +69,44 @@ common_ram_wrapper #(
69
69
  //==========================================================================
70
70
  //-------- expression ------------------------------------------------------
71
71
  initial begin
72
- assert( a_inf.ASIZE==b_inf.ASIZE)else begin
73
- $error("a_inf.ASIZE != b_inf.ASIZE");
74
- $stop;
72
+ assert(a_inf.ASIZE==b_inf.ASIZE)else begin
73
+ $error("a_inf.ASIZE != b_inf.ASIZE");
74
+ $stop;
75
75
  end
76
- assert( a_inf.DSIZE==b_inf.DSIZE)else begin
77
- $error("a_inf.ASIZE != b_inf.ASIZE");
78
- $stop;
76
+ assert(a_inf.DSIZE==b_inf.DSIZE)else begin
77
+ $error("a_inf.ASIZE != b_inf.ASIZE");
78
+ $stop;
79
79
  end
80
80
  end
81
81
 
82
- assign a_axis_inf.axis_tready = a_axis_inf.axis_tdata[ a_inf.ASIZE+a_inf.DSIZE+1-1] || (a_datac_rd_inf.ready && !a_axis_inf.axis_tdata[ a_inf.ASIZE+a_inf.DSIZE+1-1]);
83
- assign a_datac_rd_inf.data = {a_axis_inf.axis_tlast,a_axis_inf.axis_tdata[ ( a_inf.ASIZE+a_inf.DSIZE+1-1)-1: ( a_inf.ASIZE+a_inf.DSIZE+1-a_inf.ASIZE)-1]};
84
- assign a_datac_rd_inf.valid = a_axis_inf.axis_tvalid && !a_axis_inf.axis_tdata[ a_inf.ASIZE+a_inf.DSIZE+1-1];
82
+ assign a_axis_inf.axis_tready = a_axis_inf.axis_tdata[a_inf.ASIZE+a_inf.DSIZE+1-1] || (a_datac_rd_inf.ready && !a_axis_inf.axis_tdata[a_inf.ASIZE+a_inf.DSIZE+1-1]);
83
+ assign a_datac_rd_inf.data = {a_axis_inf.axis_tlast,a_axis_inf.axis_tdata[(a_inf.ASIZE+a_inf.DSIZE+1-1)-1:(a_inf.ASIZE+a_inf.DSIZE+1-a_inf.ASIZE)-1]};
84
+ assign a_datac_rd_inf.valid = a_axis_inf.axis_tvalid && !a_axis_inf.axis_tdata[a_inf.ASIZE+a_inf.DSIZE+1-1];
85
85
 
86
- assign a_axis_rd_inf.axis_tvalid = a_datac_rd_rel_inf.valid;
87
- assign a_axis_rd_inf.axis_tdata = a_datac_rd_rel_inf.data[ a_inf.DSIZE-1:0];
88
- assign a_axis_rd_inf.axis_tlast = a_datac_rd_rel_inf.data[ a_inf.ASIZE+a_inf.DSIZE+1-1];
89
- assign a_datac_rd_rel_inf.ready = a_axis_rd_inf.axis_tready;
90
- assign xram_inf.addra = a_axis_inf.axis_tdata[ ( a_inf.ASIZE+a_inf.DSIZE+1-1)-1: ( a_inf.ASIZE+a_inf.DSIZE+1-a_inf.ASIZE)-1];
91
- assign xram_inf.dia = a_axis_inf.axis_tdata[ a_inf.DSIZE-1:0];
92
- assign xram_inf.wea = {xram_inf.MSIZE{a_axis_inf.axis_tdata[ a_inf.ASIZE+a_inf.DSIZE+1-1]}};
93
- assign xram_inf.ena = 1'b1;
94
- assign xram_inf.clka = a_inf.axi_aclk;
95
- assign xram_inf.rsta = ~a_inf.axi_aresetn;
86
+ assign a_axis_rd_inf.axis_tvalid = a_datac_rd_rel_inf.valid;
87
+ assign a_axis_rd_inf.axis_tdata = a_datac_rd_rel_inf.data[a_inf.DSIZE-1:0];
88
+ assign a_axis_rd_inf.axis_tlast = a_datac_rd_rel_inf.data[a_inf.ASIZE+a_inf.DSIZE+1-1];
89
+ assign a_datac_rd_rel_inf.ready = a_axis_rd_inf.axis_tready;
90
+ assign xram_inf.addra = a_axis_inf.axis_tdata[(a_inf.ASIZE+a_inf.DSIZE+1-1)-1:(a_inf.ASIZE+a_inf.DSIZE+1-a_inf.ASIZE)-1];
91
+ assign xram_inf.dia = a_axis_inf.axis_tdata[a_inf.DSIZE-1:0];
92
+ assign xram_inf.wea = {xram_inf.MSIZE{a_axis_inf.axis_tdata[a_inf.ASIZE+a_inf.DSIZE+1-1]}};
93
+ assign xram_inf.ena = 1'b1;
94
+ assign xram_inf.clka = a_inf.axi_aclk;
95
+ assign xram_inf.rsta = ~a_inf.axi_aresetn;
96
96
 
97
- assign b_axis_inf.axis_tready = b_axis_inf.axis_tdata[ b_inf.ASIZE+b_inf.DSIZE+1-1] || (b_datac_rd_inf.ready && !b_axis_inf.axis_tdata[ b_inf.ASIZE+b_inf.DSIZE+1-1]);
98
- assign b_datac_rd_inf.data = {b_axis_inf.axis_tlast,b_axis_inf.axis_tdata[ ( b_inf.ASIZE+b_inf.DSIZE+1-1)-1: ( b_inf.ASIZE+b_inf.DSIZE+1-b_inf.ASIZE)-1]};
99
- assign b_datac_rd_inf.valid = b_axis_inf.axis_tvalid && !b_axis_inf.axis_tdata[ b_inf.ASIZE+b_inf.DSIZE+1-1];
97
+ assign b_axis_inf.axis_tready = b_axis_inf.axis_tdata[b_inf.ASIZE+b_inf.DSIZE+1-1] || (b_datac_rd_inf.ready && !b_axis_inf.axis_tdata[b_inf.ASIZE+b_inf.DSIZE+1-1]);
98
+ assign b_datac_rd_inf.data = {b_axis_inf.axis_tlast,b_axis_inf.axis_tdata[(b_inf.ASIZE+b_inf.DSIZE+1-1)-1:(b_inf.ASIZE+b_inf.DSIZE+1-b_inf.ASIZE)-1]};
99
+ assign b_datac_rd_inf.valid = b_axis_inf.axis_tvalid && !b_axis_inf.axis_tdata[b_inf.ASIZE+b_inf.DSIZE+1-1];
100
100
 
101
- assign b_axis_rd_inf.axis_tvalid = b_datac_rd_rel_inf.valid;
102
- assign b_axis_rd_inf.axis_tdata = b_datac_rd_rel_inf.data[ b_inf.DSIZE-1:0];
103
- assign b_axis_rd_inf.axis_tlast = b_datac_rd_rel_inf.data[ b_inf.ASIZE+b_inf.DSIZE+1-1];
104
- assign b_datac_rd_rel_inf.ready = b_axis_rd_inf.axis_tready;
105
- assign xram_inf.addrb = b_axis_inf.axis_tdata[ ( b_inf.ASIZE+b_inf.DSIZE+1-1)-1: ( b_inf.ASIZE+b_inf.DSIZE+1-b_inf.ASIZE)-1];
106
- assign xram_inf.dib = b_axis_inf.axis_tdata[ b_inf.DSIZE-1:0];
107
- assign xram_inf.web = {xram_inf.MSIZE{b_axis_inf.axis_tdata[ b_inf.ASIZE+b_inf.DSIZE+1-1]}};
108
- assign xram_inf.enb = 1'b1;
109
- assign xram_inf.clkb = b_inf.axi_aclk;
110
- assign xram_inf.rstb = ~b_inf.axi_aresetn;
101
+ assign b_axis_rd_inf.axis_tvalid = b_datac_rd_rel_inf.valid;
102
+ assign b_axis_rd_inf.axis_tdata = b_datac_rd_rel_inf.data[b_inf.DSIZE-1:0];
103
+ assign b_axis_rd_inf.axis_tlast = b_datac_rd_rel_inf.data[b_inf.ASIZE+b_inf.DSIZE+1-1];
104
+ assign b_datac_rd_rel_inf.ready = b_axis_rd_inf.axis_tready;
105
+ assign xram_inf.addrb = b_axis_inf.axis_tdata[(b_inf.ASIZE+b_inf.DSIZE+1-1)-1:(b_inf.ASIZE+b_inf.DSIZE+1-b_inf.ASIZE)-1];
106
+ assign xram_inf.dib = b_axis_inf.axis_tdata[b_inf.DSIZE-1:0];
107
+ assign xram_inf.web = {xram_inf.MSIZE{b_axis_inf.axis_tdata[b_inf.ASIZE+b_inf.DSIZE+1-1]}};
108
+ assign xram_inf.enb = 1'b1;
109
+ assign xram_inf.clkb = b_inf.axi_aclk;
110
+ assign xram_inf.rstb = ~b_inf.axi_aresetn;
111
111
 
112
112
  endmodule
@@ -6,6 +6,7 @@ require_hdl 'axis_length_split_with_addr.sv'
6
6
  require_hdl 'axi_stream_long_fifo.sv'
7
7
  require_hdl 'axi4_wr_auxiliary_gen_without_resp.sv'
8
8
  require_hdl 'axis_valve_with_pipe.sv'
9
+ require_hdl 'independent_clock_fifo.sv'
9
10
 
10
11
  new_m = SdlModule.new(name:File.basename(__FILE__,".rb"),out_sv_path:__dir__)
11
12
 
@@ -56,7 +56,7 @@ logic stream_en;
56
56
  axi_stream_inf #(.DSIZE(axis_in.DSIZE),.USIZE(1)) split_out (.aclk(axis_in.aclk),.aresetn(axis_in.aresetn),.aclken(1'b1)) ;
57
57
  axi_stream_inf #(.DSIZE(axis_in.DSIZE),.USIZE(1)) long_fifo_axis_out (.aclk(axi_wr.axi_aclk),.aresetn(axi_wr.axi_aresetn),.aclken(1'b1)) ;
58
58
  axi_stream_inf #(.DSIZE(axi_wr.IDSIZE + axi_wr.ASIZE + axi_wr.LSIZE),.USIZE(1)) id_add_len_in (.aclk(axi_wr.axi_aclk),.aresetn(axi_wr.axi_aresetn),.aclken(1'b1)) ;
59
- axi_inf #(.DSIZE(axi_wr.DSIZE),.IDSIZE(axi_wr.IDSIZE),.ASIZE(axi_wr.ASIZE),.LSIZE(axi_wr.LSIZE),.MODE(axi_wr.MODE),.ADDR_STEP(axi_wr.ADDR_STEP)) axi_wr_vcs_cp_R1264 (.axi_aclk(axi_wr.axi_aclk),.axi_aresetn(axi_wr.axi_aresetn)) ;
59
+ axi_inf #(.DSIZE(axi_wr.DSIZE),.IDSIZE(axi_wr.IDSIZE),.ASIZE(axi_wr.ASIZE),.LSIZE(axi_wr.LSIZE),.MODE(axi_wr.MODE),.ADDR_STEP(axi_wr.ADDR_STEP)) axi_wr_vcs_cp_R1977 (.axi_aclk(axi_wr.axi_aclk),.axi_aresetn(axi_wr.axi_aresetn)) ;
60
60
  axi_stream_inf #(.DSIZE(axis_in.DSIZE),.USIZE(1)) pipe_axis (.aclk(axi_wr.axi_aclk),.aresetn(axi_wr.axi_aresetn),.aclken(1'b1)) ;
61
61
  //==========================================================================
62
62
  //-------- instance --------------------------------------------------------
@@ -94,13 +94,13 @@ independent_clock_fifo #(
94
94
  axi4_wr_auxiliary_gen_without_resp axi4_wr_auxiliary_gen_without_resp_inst(
95
95
  /* output */.stream_en (stream_en ),
96
96
  /* axi_stream_inf.slaver */.id_add_len_in (id_add_len_in ),
97
- /* axi_inf.master_wr_aux_no_resp */.axi_wr_aux (axi_wr_vcs_cp_R1264 )
97
+ /* axi_inf.master_wr_aux_no_resp */.axi_wr_aux (axi_wr_vcs_cp_R1977 )
98
98
  );
99
99
  vcs_axi4_comptable #(
100
100
  .ORIGIN ("master_wr_aux_no_resp" ),
101
101
  .TO ("master_wr" )
102
- )vcs_axi4_comptable_axi_wr_aux_R858_axi_wr_inst(
103
- /* input */.origin (axi_wr_vcs_cp_R1264 ),
102
+ )vcs_axi4_comptable_axi_wr_aux_R874_axi_wr_inst(
103
+ /* input */.origin (axi_wr_vcs_cp_R1977 ),
104
104
  /* output */.to (axi_wr )
105
105
  );
106
106
  axis_valve_with_pipe #(
@@ -112,30 +112,30 @@ axis_valve_with_pipe #(
112
112
  );
113
113
  //==========================================================================
114
114
  //-------- expression ------------------------------------------------------
115
- always_ff@(posedge axis_in.aclk,negedge axis_in.aresetn) begin
115
+ always@(posedge axis_in.aclk,negedge axis_in.aresetn) begin
116
116
  if(~axis_in.aresetn)begin
117
- id <= 0;
117
+ id <= 0;
118
118
  end
119
119
  else if(split_out.axis_tvalid && split_out.axis_tready && split_out.axis_tlast)begin
120
- id <= ( id+1);
120
+ id <= (id+1);
121
121
  end
122
122
  else begin
123
- id <= id;
123
+ id <= id;
124
124
  end
125
125
  end
126
126
 
127
- assign addr_s = addr_cur;
128
- assign len_s = split_out.axis_tcnt;
129
- assign id_add_len_in.axis_tvalid = ~fifo_empty;
130
- assign id_add_len_in.axis_tdata = fifo_rdata;
131
- assign id_add_len_in.axis_tlast = "1'b1";
132
- assign rd_en = id_add_len_in.axis_tready;
127
+ assign addr_s = addr_cur;
128
+ assign len_s = split_out.axis_tcnt;
129
+ assign id_add_len_in.axis_tvalid = ~fifo_empty;
130
+ assign id_add_len_in.axis_tdata = fifo_rdata;
131
+ assign id_add_len_in.axis_tlast = "1'b1";
132
+ assign rd_en = id_add_len_in.axis_tready;
133
133
 
134
- assign axi_wr.axi_wdata = pipe_axis.axis_tdata;
135
- assign axi_wr.axi_wstrb = ~pipe_axis.axis_tkeep;
136
- assign axi_wr.axi_wvalid = pipe_axis.axis_tvalid;
137
- assign axi_wr.axi_wlast = pipe_axis.axis_tlast;
138
- assign axi_wr.axi_bready = 1'b1;
139
- assign pipe_axis.axis_tready = axi_wr.axi_wready;
134
+ assign axi_wr.axi_wdata = pipe_axis.axis_tdata;
135
+ assign axi_wr.axi_wstrb = ~pipe_axis.axis_tkeep;
136
+ assign axi_wr.axi_wvalid = pipe_axis.axis_tvalid;
137
+ assign axi_wr.axi_wlast = pipe_axis.axis_tlast;
138
+ assign axi_wr.axi_bready = 1'b1;
139
+ assign pipe_axis.axis_tready = axi_wr.axi_wready;
140
140
 
141
141
  endmodule