HDLRuby 2.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (224) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.travis.yml +5 -0
  4. data/.yardopts +1 -0
  5. data/Gemfile +4 -0
  6. data/HDLRuby.gemspec +36 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +2774 -0
  9. data/README.pdf +0 -0
  10. data/Rakefile +10 -0
  11. data/bin/console +14 -0
  12. data/bin/setup +8 -0
  13. data/exe/hdrcc +3 -0
  14. data/lib/HDLRuby/alcc.rb +137 -0
  15. data/lib/HDLRuby/backend/hruby_allocator.rb +69 -0
  16. data/lib/HDLRuby/backend/hruby_c_allocator.rb +76 -0
  17. data/lib/HDLRuby/hdr_samples/adder.rb +7 -0
  18. data/lib/HDLRuby/hdr_samples/adder_assign_error.rb +11 -0
  19. data/lib/HDLRuby/hdr_samples/adder_bench.rb +27 -0
  20. data/lib/HDLRuby/hdr_samples/adder_gen.rb +7 -0
  21. data/lib/HDLRuby/hdr_samples/adder_nodef_error.rb +7 -0
  22. data/lib/HDLRuby/hdr_samples/addsub.rb +19 -0
  23. data/lib/HDLRuby/hdr_samples/addsubz.rb +22 -0
  24. data/lib/HDLRuby/hdr_samples/alu.rb +47 -0
  25. data/lib/HDLRuby/hdr_samples/calculator.rb +48 -0
  26. data/lib/HDLRuby/hdr_samples/counter_bench.rb +83 -0
  27. data/lib/HDLRuby/hdr_samples/dff.rb +9 -0
  28. data/lib/HDLRuby/hdr_samples/dff_bench.rb +66 -0
  29. data/lib/HDLRuby/hdr_samples/dff_counter.rb +20 -0
  30. data/lib/HDLRuby/hdr_samples/include.rb +14 -0
  31. data/lib/HDLRuby/hdr_samples/instance_open.rb +23 -0
  32. data/lib/HDLRuby/hdr_samples/mei8.rb +256 -0
  33. data/lib/HDLRuby/hdr_samples/mei8_bench.rb +309 -0
  34. data/lib/HDLRuby/hdr_samples/multer_gen.rb +8 -0
  35. data/lib/HDLRuby/hdr_samples/multer_seq.rb +29 -0
  36. data/lib/HDLRuby/hdr_samples/neural/a.rb +9 -0
  37. data/lib/HDLRuby/hdr_samples/neural/a_sub.rb +5 -0
  38. data/lib/HDLRuby/hdr_samples/neural/bw.rb +23 -0
  39. data/lib/HDLRuby/hdr_samples/neural/counter.rb +16 -0
  40. data/lib/HDLRuby/hdr_samples/neural/dadz.rb +9 -0
  41. data/lib/HDLRuby/hdr_samples/neural/dadz_sub.rb +4 -0
  42. data/lib/HDLRuby/hdr_samples/neural/forward.rb +153 -0
  43. data/lib/HDLRuby/hdr_samples/neural/forward_sub.rb +62 -0
  44. data/lib/HDLRuby/hdr_samples/neural/forward_sub_rand.rb +41 -0
  45. data/lib/HDLRuby/hdr_samples/neural/forward_sub_rand_typedef.rb +47 -0
  46. data/lib/HDLRuby/hdr_samples/neural/mem.rb +30 -0
  47. data/lib/HDLRuby/hdr_samples/neural/random.rb +23 -0
  48. data/lib/HDLRuby/hdr_samples/neural/selector.rb +29 -0
  49. data/lib/HDLRuby/hdr_samples/neural/sigmoid.rb +20 -0
  50. data/lib/HDLRuby/hdr_samples/neural/z.rb +33 -0
  51. data/lib/HDLRuby/hdr_samples/prog.obj +256 -0
  52. data/lib/HDLRuby/hdr_samples/ram.rb +18 -0
  53. data/lib/HDLRuby/hdr_samples/register_with_code_bench.rb +98 -0
  54. data/lib/HDLRuby/hdr_samples/rom.rb +10 -0
  55. data/lib/HDLRuby/hdr_samples/struct.rb +14 -0
  56. data/lib/HDLRuby/hdr_samples/sumprod.rb +29 -0
  57. data/lib/HDLRuby/hdr_samples/sw_encrypt_bench.rb +103 -0
  58. data/lib/HDLRuby/hdr_samples/sw_encrypt_cpu_bench.rb +261 -0
  59. data/lib/HDLRuby/hdr_samples/sw_encrypt_cpusim_bench.rb +302 -0
  60. data/lib/HDLRuby/hdr_samples/system_open.rb +11 -0
  61. data/lib/HDLRuby/hdr_samples/tuple.rb +16 -0
  62. data/lib/HDLRuby/hdr_samples/with_channel.rb +118 -0
  63. data/lib/HDLRuby/hdr_samples/with_class.rb +199 -0
  64. data/lib/HDLRuby/hdr_samples/with_decoder.rb +17 -0
  65. data/lib/HDLRuby/hdr_samples/with_fsm.rb +34 -0
  66. data/lib/HDLRuby/hdr_samples/with_reconf.rb +103 -0
  67. data/lib/HDLRuby/hdrcc.rb +623 -0
  68. data/lib/HDLRuby/high_samples/_adder_fault.rb +23 -0
  69. data/lib/HDLRuby/high_samples/_generic_transmission2.rb +146 -0
  70. data/lib/HDLRuby/high_samples/adder.rb +21 -0
  71. data/lib/HDLRuby/high_samples/adder_common_errors.rb +25 -0
  72. data/lib/HDLRuby/high_samples/addsub.rb +33 -0
  73. data/lib/HDLRuby/high_samples/addsubz.rb +37 -0
  74. data/lib/HDLRuby/high_samples/after.rb +28 -0
  75. data/lib/HDLRuby/high_samples/all_signals.rb +29 -0
  76. data/lib/HDLRuby/high_samples/alu.rb +61 -0
  77. data/lib/HDLRuby/high_samples/anonymous.rb +41 -0
  78. data/lib/HDLRuby/high_samples/before.rb +28 -0
  79. data/lib/HDLRuby/high_samples/blockblock.rb +26 -0
  80. data/lib/HDLRuby/high_samples/bugs/dadz.rb +22 -0
  81. data/lib/HDLRuby/high_samples/bugs/misample_instan.rb +20 -0
  82. data/lib/HDLRuby/high_samples/bugs/misample_updown.rb +22 -0
  83. data/lib/HDLRuby/high_samples/bugs/sample_add.rb +16 -0
  84. data/lib/HDLRuby/high_samples/bugs/sample_barrel.rb +13 -0
  85. data/lib/HDLRuby/high_samples/bugs/sample_daice.rb +57 -0
  86. data/lib/HDLRuby/high_samples/bugs/sample_kumiawase.rb +52 -0
  87. data/lib/HDLRuby/high_samples/bugs/sample_multi.rb +18 -0
  88. data/lib/HDLRuby/high_samples/bugs/sample_sub.rb +14 -0
  89. data/lib/HDLRuby/high_samples/bugs/z2.rb +32 -0
  90. data/lib/HDLRuby/high_samples/case.rb +32 -0
  91. data/lib/HDLRuby/high_samples/case2.rb +30 -0
  92. data/lib/HDLRuby/high_samples/change.rb +23 -0
  93. data/lib/HDLRuby/high_samples/clocks.rb +35 -0
  94. data/lib/HDLRuby/high_samples/comparer.rb +21 -0
  95. data/lib/HDLRuby/high_samples/conditionals.rb +29 -0
  96. data/lib/HDLRuby/high_samples/dff.rb +23 -0
  97. data/lib/HDLRuby/high_samples/each.rb +28 -0
  98. data/lib/HDLRuby/high_samples/exporter.rb +42 -0
  99. data/lib/HDLRuby/high_samples/functions.rb +60 -0
  100. data/lib/HDLRuby/high_samples/if_seq.rb +26 -0
  101. data/lib/HDLRuby/high_samples/inherit_as_dff.rb +32 -0
  102. data/lib/HDLRuby/high_samples/inherit_dff.rb +36 -0
  103. data/lib/HDLRuby/high_samples/instance.rb +37 -0
  104. data/lib/HDLRuby/high_samples/memory.rb +64 -0
  105. data/lib/HDLRuby/high_samples/multi_file.rb +27 -0
  106. data/lib/HDLRuby/high_samples/overload.rb +32 -0
  107. data/lib/HDLRuby/high_samples/paper_after.rb +49 -0
  108. data/lib/HDLRuby/high_samples/ram.rb +27 -0
  109. data/lib/HDLRuby/high_samples/registers.rb +139 -0
  110. data/lib/HDLRuby/high_samples/rom.rb +23 -0
  111. data/lib/HDLRuby/high_samples/scopeblockname.rb +37 -0
  112. data/lib/HDLRuby/high_samples/scopescope.rb +26 -0
  113. data/lib/HDLRuby/high_samples/shift.rb +31 -0
  114. data/lib/HDLRuby/high_samples/shift2.rb +40 -0
  115. data/lib/HDLRuby/high_samples/simple_instance.rb +31 -0
  116. data/lib/HDLRuby/high_samples/test_all.sh +10 -0
  117. data/lib/HDLRuby/high_samples/typedef.rb +24 -0
  118. data/lib/HDLRuby/high_samples/values.rb +70 -0
  119. data/lib/HDLRuby/high_samples/vector.rb +22 -0
  120. data/lib/HDLRuby/high_samples/with_decoder.rb +30 -0
  121. data/lib/HDLRuby/high_samples/with_fsm.rb +46 -0
  122. data/lib/HDLRuby/high_samples/with_pipe.rb +43 -0
  123. data/lib/HDLRuby/high_samples/with_seq.rb +25 -0
  124. data/lib/HDLRuby/hruby_bstr.rb +1085 -0
  125. data/lib/HDLRuby/hruby_check.rb +317 -0
  126. data/lib/HDLRuby/hruby_db.rb +432 -0
  127. data/lib/HDLRuby/hruby_error.rb +44 -0
  128. data/lib/HDLRuby/hruby_high.rb +4103 -0
  129. data/lib/HDLRuby/hruby_low.rb +4735 -0
  130. data/lib/HDLRuby/hruby_low2c.rb +1986 -0
  131. data/lib/HDLRuby/hruby_low2high.rb +738 -0
  132. data/lib/HDLRuby/hruby_low2seq.rb +248 -0
  133. data/lib/HDLRuby/hruby_low2sym.rb +126 -0
  134. data/lib/HDLRuby/hruby_low2vhd.rb +1437 -0
  135. data/lib/HDLRuby/hruby_low_bool2select.rb +295 -0
  136. data/lib/HDLRuby/hruby_low_cleanup.rb +193 -0
  137. data/lib/HDLRuby/hruby_low_fix_types.rb +437 -0
  138. data/lib/HDLRuby/hruby_low_mutable.rb +1803 -0
  139. data/lib/HDLRuby/hruby_low_resolve.rb +165 -0
  140. data/lib/HDLRuby/hruby_low_skeleton.rb +129 -0
  141. data/lib/HDLRuby/hruby_low_with_bool.rb +141 -0
  142. data/lib/HDLRuby/hruby_low_with_port.rb +167 -0
  143. data/lib/HDLRuby/hruby_low_with_var.rb +302 -0
  144. data/lib/HDLRuby/hruby_low_without_bit2vector.rb +88 -0
  145. data/lib/HDLRuby/hruby_low_without_concat.rb +162 -0
  146. data/lib/HDLRuby/hruby_low_without_connection.rb +113 -0
  147. data/lib/HDLRuby/hruby_low_without_namespace.rb +718 -0
  148. data/lib/HDLRuby/hruby_low_without_outread.rb +107 -0
  149. data/lib/HDLRuby/hruby_low_without_select.rb +206 -0
  150. data/lib/HDLRuby/hruby_serializer.rb +398 -0
  151. data/lib/HDLRuby/hruby_tools.rb +37 -0
  152. data/lib/HDLRuby/hruby_types.rb +239 -0
  153. data/lib/HDLRuby/hruby_values.rb +64 -0
  154. data/lib/HDLRuby/hruby_verilog.rb +1888 -0
  155. data/lib/HDLRuby/hruby_verilog_name.rb +52 -0
  156. data/lib/HDLRuby/low_samples/adder.yaml +97 -0
  157. data/lib/HDLRuby/low_samples/after.yaml +228 -0
  158. data/lib/HDLRuby/low_samples/before.yaml +223 -0
  159. data/lib/HDLRuby/low_samples/blockblock.yaml +48 -0
  160. data/lib/HDLRuby/low_samples/bugs/sample_add.yaml +97 -0
  161. data/lib/HDLRuby/low_samples/bugs/sample_daice.yaml +444 -0
  162. data/lib/HDLRuby/low_samples/bugs/sample_kumiawase.yaml +332 -0
  163. data/lib/HDLRuby/low_samples/bugs/sample_sub.yaml +97 -0
  164. data/lib/HDLRuby/low_samples/bugs/seqpar.yaml +184 -0
  165. data/lib/HDLRuby/low_samples/case.yaml +327 -0
  166. data/lib/HDLRuby/low_samples/change.yaml +135 -0
  167. data/lib/HDLRuby/low_samples/clocks.yaml +674 -0
  168. data/lib/HDLRuby/low_samples/cloner.rb +22 -0
  169. data/lib/HDLRuby/low_samples/comparer.yaml +85 -0
  170. data/lib/HDLRuby/low_samples/conditionals.yaml +133 -0
  171. data/lib/HDLRuby/low_samples/dff.yaml +107 -0
  172. data/lib/HDLRuby/low_samples/each.yaml +1328 -0
  173. data/lib/HDLRuby/low_samples/exporter.yaml +226 -0
  174. data/lib/HDLRuby/low_samples/functions.yaml +298 -0
  175. data/lib/HDLRuby/low_samples/generic_transmission.yaml +597 -0
  176. data/lib/HDLRuby/low_samples/inherit_as_dff.yaml +125 -0
  177. data/lib/HDLRuby/low_samples/inherit_dff.yaml +107 -0
  178. data/lib/HDLRuby/low_samples/load_yaml.rb +11 -0
  179. data/lib/HDLRuby/low_samples/memory.yaml +678 -0
  180. data/lib/HDLRuby/low_samples/namespace_extractor.rb +23 -0
  181. data/lib/HDLRuby/low_samples/overload.yaml +226 -0
  182. data/lib/HDLRuby/low_samples/paper_after.yaml +431 -0
  183. data/lib/HDLRuby/low_samples/port_maker.rb +14 -0
  184. data/lib/HDLRuby/low_samples/ram.yaml +207 -0
  185. data/lib/HDLRuby/low_samples/registers.yaml +228 -0
  186. data/lib/HDLRuby/low_samples/rom.yaml +2950 -0
  187. data/lib/HDLRuby/low_samples/shift.yaml +230 -0
  188. data/lib/HDLRuby/low_samples/shift2.yaml +2095 -0
  189. data/lib/HDLRuby/low_samples/simple_instance.yaml +102 -0
  190. data/lib/HDLRuby/low_samples/test_all.sh +43 -0
  191. data/lib/HDLRuby/low_samples/typedef.yaml +115 -0
  192. data/lib/HDLRuby/low_samples/values.yaml +577 -0
  193. data/lib/HDLRuby/low_samples/variable_maker.rb +14 -0
  194. data/lib/HDLRuby/low_samples/vector.yaml +56 -0
  195. data/lib/HDLRuby/low_samples/with_seq.yaml +188 -0
  196. data/lib/HDLRuby/low_samples/yaml2hdr.rb +10 -0
  197. data/lib/HDLRuby/low_samples/yaml2vhd.rb +19 -0
  198. data/lib/HDLRuby/sim/Makefile +19 -0
  199. data/lib/HDLRuby/sim/hruby_sim.h +590 -0
  200. data/lib/HDLRuby/sim/hruby_sim_calc.c +2362 -0
  201. data/lib/HDLRuby/sim/hruby_sim_core.c +589 -0
  202. data/lib/HDLRuby/sim/hruby_sim_list.c +93 -0
  203. data/lib/HDLRuby/sim/hruby_sim_vizualize.c +91 -0
  204. data/lib/HDLRuby/sim/hruby_value_pool.c +64 -0
  205. data/lib/HDLRuby/std/channel.rb +354 -0
  206. data/lib/HDLRuby/std/clocks.rb +165 -0
  207. data/lib/HDLRuby/std/counters.rb +82 -0
  208. data/lib/HDLRuby/std/decoder.rb +214 -0
  209. data/lib/HDLRuby/std/fsm.rb +516 -0
  210. data/lib/HDLRuby/std/pipeline.rb +220 -0
  211. data/lib/HDLRuby/std/reconf.rb +309 -0
  212. data/lib/HDLRuby/test_hruby_bstr.rb +2259 -0
  213. data/lib/HDLRuby/test_hruby_high.rb +594 -0
  214. data/lib/HDLRuby/test_hruby_high_low.rb +99 -0
  215. data/lib/HDLRuby/test_hruby_low.rb +934 -0
  216. data/lib/HDLRuby/v_samples/adder.v +10 -0
  217. data/lib/HDLRuby/v_samples/dff.v +12 -0
  218. data/lib/HDLRuby/v_samples/ram.v +20 -0
  219. data/lib/HDLRuby/v_samples/rom.v +270 -0
  220. data/lib/HDLRuby/version.rb +3 -0
  221. data/lib/HDLRuby.rb +11 -0
  222. data/makedoc +1 -0
  223. data/metadata.yaml +4 -0
  224. metadata +299 -0
@@ -0,0 +1,52 @@
1
+ # Program with inverse conversion
2
+ # last update 2019 01 29
3
+
4
+ module HDLRuby::Verilog
5
+
6
+ # This is sample.
7
+ # n = "abc_ABC_いろは"
8
+ # puts n
9
+ # name = n.split("")
10
+
11
+ # Since it is possible to use $ and numbers other than the beginning of the character string, it is divided.
12
+ def name_to_verilog(name)
13
+ ref = "" # For storing the converted character.
14
+ name = name.to_s # Ensure name is a string
15
+
16
+ if (name[0] =~ /[a-zA-Z]/) then
17
+ ref << name[0]
18
+ # _ To convert it to __.
19
+ elsif (name[0] == "_") then
20
+ ref << "__"
21
+ # If it does not satisfy the above, it is another character.
22
+ # In that case, convert it to UTF-8 and convert it to a usable character string.
23
+ else
24
+ l = name[0].bytes.map{|v| v.to_s(16)}.join # Conversion to UTF-8 hexadecimal number.
25
+
26
+ ref << "_" + l.rjust(6,"0") # Add an underscore indicating conversion.
27
+ # The remainder of 6 digits is filled with 0.
28
+ end
29
+
30
+ name[1..-1].each_char do |c|
31
+ # Confirmation of characters in array.
32
+ # If it is a-zA-Z 0 - 9, it is added to ref as it is.
33
+ if (c =~ /[a-zA-Z0-9]|\$/) then
34
+ ref << c
35
+ # _ To convert it to __.
36
+ elsif (c == "_") then
37
+ ref << "__"
38
+ # If it does not satisfy the above, it is another character.
39
+ # In that case, convert it to UTF-8 and convert it to a usable character string.
40
+ else
41
+ l = c.bytes.map{|v| v.to_s(16)}.join # Conversion to UTF-8 hexadecimal number.
42
+
43
+ ref << "_" + l.rjust(6,"0") # Add an underscore indicating conversion.
44
+ # The remainder of 6 digits is filled with 0.
45
+ end
46
+ end
47
+ return ref
48
+ end
49
+
50
+ #puts ref
51
+
52
+ end
@@ -0,0 +1,97 @@
1
+ ---
2
+ Type:
3
+ name: void
4
+ ---
5
+ Type:
6
+ name: bit
7
+ ---
8
+ SystemT:
9
+ name: adderI::T_
10
+ inputs:
11
+ - SignalI:
12
+ name: x
13
+ type:
14
+ TypeVector:
15
+ name: ''
16
+ base: bit
17
+ range:
18
+ - 15
19
+ - 0
20
+ - SignalI:
21
+ name: y
22
+ type:
23
+ TypeVector:
24
+ name: ''
25
+ base: bit
26
+ range:
27
+ - 15
28
+ - 0
29
+ outputs:
30
+ - SignalI:
31
+ name: s
32
+ type:
33
+ TypeVector:
34
+ name: ''
35
+ base: bit
36
+ range:
37
+ - 16
38
+ - 0
39
+ inouts: []
40
+ scope:
41
+ Scope:
42
+ name: ''
43
+ scopes: []
44
+ inners: []
45
+ systemIs: []
46
+ connections:
47
+ - Connection:
48
+ left:
49
+ RefName:
50
+ type:
51
+ TypeVector:
52
+ name: ''
53
+ base: bit
54
+ range:
55
+ - 16
56
+ - 0
57
+ ref:
58
+ RefThis:
59
+ type: void
60
+ name: s
61
+ right:
62
+ Binary:
63
+ type:
64
+ TypeVector:
65
+ name: ''
66
+ base: bit
67
+ range:
68
+ - 16
69
+ - 0
70
+ operator: "+"
71
+ left:
72
+ RefName:
73
+ type:
74
+ TypeVector:
75
+ name: ''
76
+ base: bit
77
+ range:
78
+ - 15
79
+ - 0
80
+ ref:
81
+ RefThis:
82
+ type: void
83
+ name: x
84
+ right:
85
+ RefName:
86
+ type:
87
+ TypeVector:
88
+ name: ''
89
+ base: bit
90
+ range:
91
+ - 15
92
+ - 0
93
+ ref:
94
+ RefThis:
95
+ type: void
96
+ name: y
97
+ behaviors: []
@@ -0,0 +1,228 @@
1
+ ---
2
+ Type:
3
+ name: signed
4
+ ---
5
+ TypeVector:
6
+ name: integer
7
+ base: signed
8
+ range:
9
+ - 31
10
+ - 0
11
+ ---
12
+ Type:
13
+ name: void
14
+ ---
15
+ Type:
16
+ name: bit
17
+ ---
18
+ SystemT:
19
+ name: with_afterI::T_
20
+ inputs:
21
+ - SignalI:
22
+ name: clk
23
+ type: bit
24
+ - SignalI:
25
+ name: rst
26
+ type: bit
27
+ outputs:
28
+ - SignalI:
29
+ name: timeout
30
+ type: bit
31
+ inouts: []
32
+ scope:
33
+ Scope:
34
+ name: ''
35
+ scopes: []
36
+ inners: []
37
+ systemIs: []
38
+ connections: []
39
+ behaviors:
40
+ - Behavior:
41
+ events:
42
+ - Event:
43
+ type: posedge
44
+ ref:
45
+ RefName:
46
+ type: bit
47
+ ref:
48
+ RefThis:
49
+ type: void
50
+ name: clk
51
+ - Event:
52
+ type: posedge
53
+ ref:
54
+ RefName:
55
+ type: bit
56
+ ref:
57
+ RefThis:
58
+ type: void
59
+ name: rst
60
+ block:
61
+ Block:
62
+ mode: par
63
+ name: ''
64
+ inners:
65
+ - SignalI:
66
+ name: ":0"
67
+ type:
68
+ TypeVector:
69
+ name: ''
70
+ base: bit
71
+ range:
72
+ - 30
73
+ - 0
74
+ statements:
75
+ - Transmit:
76
+ left:
77
+ RefName:
78
+ type: bit
79
+ ref:
80
+ RefThis:
81
+ type: void
82
+ name: timeout
83
+ right:
84
+ Value:
85
+ type: integer
86
+ content: 0
87
+ - Block:
88
+ mode: seq
89
+ name: ''
90
+ inners: []
91
+ statements:
92
+ - If:
93
+ condition:
94
+ Binary:
95
+ type:
96
+ TypeVector:
97
+ name: ''
98
+ base: signed
99
+ range:
100
+ - 0
101
+ - 31
102
+ operator: "=="
103
+ left:
104
+ RefName:
105
+ type: bit
106
+ ref:
107
+ RefThis:
108
+ type: void
109
+ name: rst
110
+ right:
111
+ Value:
112
+ type: integer
113
+ content: 1
114
+ 'yes':
115
+ Block:
116
+ mode: seq
117
+ name: ''
118
+ inners: []
119
+ statements:
120
+ - Transmit:
121
+ left:
122
+ RefName:
123
+ type:
124
+ TypeVector:
125
+ name: ''
126
+ base: bit
127
+ range:
128
+ - 30
129
+ - 0
130
+ ref:
131
+ RefThis:
132
+ type: void
133
+ name: ":0"
134
+ right:
135
+ Value:
136
+ type: integer
137
+ content: 100
138
+ 'no':
139
+ Block:
140
+ mode: seq
141
+ name: ''
142
+ inners: []
143
+ statements:
144
+ - Transmit:
145
+ left:
146
+ RefName:
147
+ type:
148
+ TypeVector:
149
+ name: ''
150
+ base: bit
151
+ range:
152
+ - 30
153
+ - 0
154
+ ref:
155
+ RefThis:
156
+ type: void
157
+ name: ":0"
158
+ right:
159
+ Binary:
160
+ type:
161
+ TypeVector:
162
+ name: ''
163
+ base: signed
164
+ range:
165
+ - 32
166
+ - 0
167
+ operator: "-"
168
+ left:
169
+ RefName:
170
+ type:
171
+ TypeVector:
172
+ name: ''
173
+ base: bit
174
+ range:
175
+ - 30
176
+ - 0
177
+ ref:
178
+ RefThis:
179
+ type: void
180
+ name: ":0"
181
+ right:
182
+ Value:
183
+ type: integer
184
+ content: 1
185
+ noifs:
186
+ - - Binary:
187
+ type:
188
+ TypeVector:
189
+ name: ''
190
+ base: signed
191
+ range:
192
+ - 31
193
+ - 0
194
+ operator: "=="
195
+ left:
196
+ RefName:
197
+ type:
198
+ TypeVector:
199
+ name: ''
200
+ base: bit
201
+ range:
202
+ - 30
203
+ - 0
204
+ ref:
205
+ RefThis:
206
+ type: void
207
+ name: ":0"
208
+ right:
209
+ Value:
210
+ type: integer
211
+ content: 0
212
+ - Block:
213
+ mode: seq
214
+ name: ''
215
+ inners: []
216
+ statements:
217
+ - Transmit:
218
+ left:
219
+ RefName:
220
+ type: bit
221
+ ref:
222
+ RefThis:
223
+ type: void
224
+ name: timeout
225
+ right:
226
+ Value:
227
+ type: integer
228
+ content: 1
@@ -0,0 +1,223 @@
1
+ ---
2
+ Type:
3
+ name: signed
4
+ ---
5
+ TypeVector:
6
+ name: integer
7
+ base: signed
8
+ range:
9
+ - 31
10
+ - 0
11
+ ---
12
+ Type:
13
+ name: void
14
+ ---
15
+ Type:
16
+ name: bit
17
+ ---
18
+ SystemT:
19
+ name: with_beforeI::T_
20
+ inputs:
21
+ - SignalI:
22
+ name: clk
23
+ type: bit
24
+ - SignalI:
25
+ name: rst
26
+ type: bit
27
+ outputs:
28
+ - SignalI:
29
+ name: timeout
30
+ type: bit
31
+ inouts: []
32
+ scope:
33
+ Scope:
34
+ name: ''
35
+ scopes: []
36
+ inners: []
37
+ systemIs: []
38
+ connections: []
39
+ behaviors:
40
+ - Behavior:
41
+ events:
42
+ - Event:
43
+ type: posedge
44
+ ref:
45
+ RefName:
46
+ type: bit
47
+ ref:
48
+ RefThis:
49
+ type: void
50
+ name: clk
51
+ - Event:
52
+ type: posedge
53
+ ref:
54
+ RefName:
55
+ type: bit
56
+ ref:
57
+ RefThis:
58
+ type: void
59
+ name: rst
60
+ block:
61
+ Block:
62
+ mode: par
63
+ name: ''
64
+ inners:
65
+ - SignalI:
66
+ name: ":0"
67
+ type:
68
+ TypeVector:
69
+ name: ''
70
+ base: bit
71
+ range:
72
+ - 30
73
+ - 0
74
+ statements:
75
+ - Transmit:
76
+ left:
77
+ RefName:
78
+ type: bit
79
+ ref:
80
+ RefThis:
81
+ type: void
82
+ name: timeout
83
+ right:
84
+ Value:
85
+ type: integer
86
+ content: 1
87
+ - Block:
88
+ mode: seq
89
+ name: ''
90
+ inners: []
91
+ statements:
92
+ - If:
93
+ condition:
94
+ Binary:
95
+ type:
96
+ TypeVector:
97
+ name: ''
98
+ base: signed
99
+ range:
100
+ - 0
101
+ - 31
102
+ operator: "=="
103
+ left:
104
+ RefName:
105
+ type: bit
106
+ ref:
107
+ RefThis:
108
+ type: void
109
+ name: rst
110
+ right:
111
+ Value:
112
+ type: integer
113
+ content: 1
114
+ 'yes':
115
+ Block:
116
+ mode: seq
117
+ name: ''
118
+ inners: []
119
+ statements:
120
+ - Transmit:
121
+ left:
122
+ RefName:
123
+ type:
124
+ TypeVector:
125
+ name: ''
126
+ base: bit
127
+ range:
128
+ - 30
129
+ - 0
130
+ ref:
131
+ RefThis:
132
+ type: void
133
+ name: ":0"
134
+ right:
135
+ Value:
136
+ type: integer
137
+ content: 100
138
+ 'no':
139
+ noifs:
140
+ - - Binary:
141
+ type:
142
+ TypeVector:
143
+ name: ''
144
+ base: signed
145
+ range:
146
+ - 31
147
+ - 0
148
+ operator: "!="
149
+ left:
150
+ RefName:
151
+ type:
152
+ TypeVector:
153
+ name: ''
154
+ base: bit
155
+ range:
156
+ - 30
157
+ - 0
158
+ ref:
159
+ RefThis:
160
+ type: void
161
+ name: ":0"
162
+ right:
163
+ Value:
164
+ type: integer
165
+ content: 0
166
+ - Block:
167
+ mode: seq
168
+ name: ''
169
+ inners: []
170
+ statements:
171
+ - Transmit:
172
+ left:
173
+ RefName:
174
+ type:
175
+ TypeVector:
176
+ name: ''
177
+ base: bit
178
+ range:
179
+ - 30
180
+ - 0
181
+ ref:
182
+ RefThis:
183
+ type: void
184
+ name: ":0"
185
+ right:
186
+ Binary:
187
+ type:
188
+ TypeVector:
189
+ name: ''
190
+ base: signed
191
+ range:
192
+ - 32
193
+ - 0
194
+ operator: "-"
195
+ left:
196
+ RefName:
197
+ type:
198
+ TypeVector:
199
+ name: ''
200
+ base: bit
201
+ range:
202
+ - 30
203
+ - 0
204
+ ref:
205
+ RefThis:
206
+ type: void
207
+ name: ":0"
208
+ right:
209
+ Value:
210
+ type: integer
211
+ content: 1
212
+ - Transmit:
213
+ left:
214
+ RefName:
215
+ type: bit
216
+ ref:
217
+ RefThis:
218
+ type: void
219
+ name: timeout
220
+ right:
221
+ Value:
222
+ type: integer
223
+ ontent: 0
@@ -0,0 +1,48 @@
1
+ ---
2
+ Type:
3
+ name: bit
4
+ ---
5
+ SystemT:
6
+ name: blockblockI::T_
7
+ inputs:
8
+ - SignalI:
9
+ name: i0
10
+ type: bit
11
+ - SignalI:
12
+ name: i1
13
+ type: bit
14
+ outputs:
15
+ - SignalI:
16
+ name: o0
17
+ type: bit
18
+ - SignalI:
19
+ name: o1
20
+ type: bit
21
+ inouts: []
22
+ scope:
23
+ Scope:
24
+ scopes: []
25
+ inners:
26
+ - SignalI:
27
+ name: s0
28
+ type: bit
29
+ systemIs: []
30
+ connections: []
31
+ behaviors:
32
+ - Behavior:
33
+ events: []
34
+ block:
35
+ Block:
36
+ mode: par
37
+ inners:
38
+ - SignalI:
39
+ name: s0
40
+ type: bit
41
+ statements:
42
+ - Block:
43
+ mode: par
44
+ inners:
45
+ - SignalI:
46
+ name: s0
47
+ type: bit
48
+ statements: []