HDLRuby 2.11.12 → 3.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.
- checksums.yaml +4 -4
- data/README.html +3274 -0
- data/README.md +660 -128
- data/ext/hruby_sim/hruby_sim_calc.c +2 -0
- data/lib/HDLRuby/backend/hruby_allocator.rb +2 -2
- data/lib/HDLRuby/backend/hruby_c_allocator.rb +7 -7
- data/lib/HDLRuby/hdr_samples/constant_in_function.rb +2 -1
- data/lib/HDLRuby/hdr_samples/mei8_bench.rb +1 -1
- data/lib/HDLRuby/hdr_samples/with_bram.rb +3 -3
- data/lib/HDLRuby/hdr_samples/with_bram_frame_stack.rb +105 -0
- data/lib/HDLRuby/hdr_samples/with_bram_stack.rb +69 -0
- data/lib/HDLRuby/hdr_samples/with_ref_expr.rb +30 -0
- data/lib/HDLRuby/hdr_samples/with_sequencer.rb +185 -0
- data/lib/HDLRuby/hdr_samples/with_sequencer_deep.rb +91 -0
- data/lib/HDLRuby/hdr_samples/with_sequencer_enumerable.rb +439 -0
- data/lib/HDLRuby/hdr_samples/with_sequencer_enumerator.rb +89 -0
- data/lib/HDLRuby/hdr_samples/with_sequencer_func.rb +63 -0
- data/lib/HDLRuby/hdr_samples/with_sequencer_sync.rb +120 -0
- data/lib/HDLRuby/hdrcc.rb +16 -3
- data/lib/HDLRuby/hdrlib.rb +1 -1
- data/lib/HDLRuby/hruby_db.rb +2 -2
- data/lib/HDLRuby/hruby_high.rb +61 -25
- data/lib/HDLRuby/hruby_high_fullname.rb +3 -1
- data/lib/HDLRuby/hruby_low.rb +2 -2
- data/lib/HDLRuby/hruby_low2c.rb +58 -43
- data/lib/HDLRuby/hruby_low2hdr.rb +66 -40
- data/lib/HDLRuby/hruby_low2high.rb +86 -44
- data/lib/HDLRuby/hruby_low2seq.rb +26 -18
- data/lib/HDLRuby/hruby_low2sym.rb +14 -13
- data/lib/HDLRuby/hruby_low2vhd.rb +78 -43
- data/lib/HDLRuby/hruby_low_bool2select.rb +61 -46
- data/lib/HDLRuby/hruby_low_casts_without_expression.rb +56 -44
- data/lib/HDLRuby/hruby_low_cleanup.rb +18 -16
- data/lib/HDLRuby/hruby_low_fix_types.rb +64 -32
- data/lib/HDLRuby/hruby_low_mutable.rb +53 -118
- data/lib/HDLRuby/hruby_low_resolve.rb +26 -31
- data/lib/HDLRuby/hruby_low_with_bool.rb +33 -16
- data/lib/HDLRuby/hruby_low_with_port.rb +3 -3
- data/lib/HDLRuby/hruby_low_with_var.rb +23 -9
- data/lib/HDLRuby/hruby_low_without_concat.rb +19 -13
- data/lib/HDLRuby/hruby_low_without_namespace.rb +47 -32
- data/lib/HDLRuby/hruby_low_without_parinseq.rb +18 -12
- data/lib/HDLRuby/hruby_low_without_select.rb +36 -23
- data/lib/HDLRuby/hruby_low_without_subsignals.rb +79 -39
- data/lib/HDLRuby/hruby_rcsim.rb +79 -64
- data/lib/HDLRuby/hruby_rsim.rb +64 -15
- data/lib/HDLRuby/hruby_rsim_mute.rb +2 -3
- data/lib/HDLRuby/hruby_rsim_vcd.rb +28 -25
- data/lib/HDLRuby/hruby_types.rb +5 -5
- data/lib/HDLRuby/hruby_values.rb +19 -8
- data/lib/HDLRuby/hruby_verilog.rb +191 -65
- data/lib/HDLRuby/hruby_verilog_name.rb +49 -42
- data/lib/HDLRuby/soft/stacks.rb +219 -0
- data/lib/HDLRuby/std/bram.rb +9 -5
- data/lib/HDLRuby/std/clocks.rb +1 -1
- data/lib/HDLRuby/std/fsm.rb +39 -10
- data/lib/HDLRuby/std/sequencer.rb +2085 -0
- data/lib/HDLRuby/std/sequencer_func.rb +533 -0
- data/lib/HDLRuby/std/sequencer_sync.rb +400 -0
- data/lib/HDLRuby/std/std.rb +13 -0
- data/lib/HDLRuby/version.rb +1 -1
- data/tuto/adder_sat_flags_vcd.png +0 -0
- data/tuto/addsub_vcd.png +0 -0
- data/tuto/alu_vcd.png +0 -0
- data/tuto/bit_pong_vcd.png +0 -0
- data/tuto/checksum_vcd.png +0 -0
- data/tuto/circuit_hdr.odg +0 -0
- data/tuto/circuit_hdr.png +0 -0
- data/tuto/circuit_hie.odg +0 -0
- data/tuto/circuit_hie.png +0 -0
- data/tuto/circuit_view.odg +0 -0
- data/tuto/circuit_view.png +0 -0
- data/tuto/clock_counter_vcd.png +0 -0
- data/tuto/counter_ext_vcd.png +0 -0
- data/tuto/fact_vcd.png +0 -0
- data/tuto/hw_flow.odg +0 -0
- data/tuto/hw_flow.png +0 -0
- data/tuto/maxxer_vcd.png +0 -0
- data/tuto/pingpong0_vcd.png +0 -0
- data/tuto/pingpong1_vcd.png +0 -0
- data/tuto/pingpong2_vcd.png +0 -0
- data/tuto/ram_vcd.png +0 -0
- data/tuto/serializer_vcd.png +0 -0
- data/tuto/sw_flow.odg +0 -0
- data/tuto/sw_flow.png +0 -0
- data/tuto/the_counter_vcd.png +0 -0
- data/tuto/tutorial_sw.html +2359 -0
- data/tuto/tutorial_sw.md +2890 -0
- data/tuto/tutorial_sw.pdf +0 -0
- data/tuto/tutorial_sw_jp.md +417 -0
- metadata +46 -2
|
@@ -2,6 +2,9 @@ require "HDLRuby/hruby_error"
|
|
|
2
2
|
require "HDLRuby/hruby_low_mutable"
|
|
3
3
|
|
|
4
4
|
|
|
5
|
+
module HDLRuby::Low
|
|
6
|
+
|
|
7
|
+
|
|
5
8
|
##
|
|
6
9
|
# Provides a new boolean type and converts the comparison and operations
|
|
7
10
|
# on it to this new type.
|
|
@@ -12,10 +15,11 @@ require "HDLRuby/hruby_low_mutable"
|
|
|
12
15
|
# * Boolean is weak in type promotion, e.g.: boolean & bit = bit
|
|
13
16
|
#
|
|
14
17
|
########################################################################
|
|
15
|
-
module HDLRuby::Low
|
|
16
18
|
|
|
17
|
-
|
|
19
|
+
|
|
18
20
|
class Type
|
|
21
|
+
## Extend Type with check telling if it is a boolean type.
|
|
22
|
+
|
|
19
23
|
# Tells if it is a boolean type.
|
|
20
24
|
def boolean?
|
|
21
25
|
return false
|
|
@@ -50,9 +54,10 @@ module HDLRuby::Low
|
|
|
50
54
|
end
|
|
51
55
|
|
|
52
56
|
|
|
53
|
-
## Extends the SystemT class for converting types of comparison and
|
|
54
|
-
# operations on it to boolean type.
|
|
55
57
|
class SystemT
|
|
58
|
+
## Extends the SystemT class for converting types of comparison and
|
|
59
|
+
# operations on it to boolean type.
|
|
60
|
+
|
|
56
61
|
# Converts to a variable-compatible system.
|
|
57
62
|
#
|
|
58
63
|
# NOTE: the result is the same systemT.
|
|
@@ -65,9 +70,11 @@ module HDLRuby::Low
|
|
|
65
70
|
end
|
|
66
71
|
end
|
|
67
72
|
|
|
68
|
-
|
|
69
|
-
# operations on it to boolean type.
|
|
73
|
+
|
|
70
74
|
class Behavior
|
|
75
|
+
## Extends the Behaviour class for converting types of comparison and
|
|
76
|
+
# operations on it to boolean type.
|
|
77
|
+
|
|
71
78
|
# Converts to a variable-compatible system.
|
|
72
79
|
#
|
|
73
80
|
# NOTE: the result is the same Behaviour.
|
|
@@ -76,9 +83,11 @@ module HDLRuby::Low
|
|
|
76
83
|
end
|
|
77
84
|
end
|
|
78
85
|
|
|
79
|
-
|
|
80
|
-
# operations on it to boolean type.
|
|
86
|
+
|
|
81
87
|
class Statement
|
|
88
|
+
## Extends the Statement class for converting types of comparison and
|
|
89
|
+
# operations on it to boolean type.
|
|
90
|
+
|
|
82
91
|
# Converts to a variable-compatible system.
|
|
83
92
|
#
|
|
84
93
|
# NOTE: the result is the same Behaviour.
|
|
@@ -91,27 +100,33 @@ module HDLRuby::Low
|
|
|
91
100
|
end
|
|
92
101
|
end
|
|
93
102
|
|
|
94
|
-
|
|
95
|
-
# or not.
|
|
103
|
+
|
|
96
104
|
class Expression
|
|
105
|
+
## Extends the Expression class for checking if it a boolean expression
|
|
106
|
+
# or not.
|
|
107
|
+
|
|
97
108
|
# Tells if the expression is boolean.
|
|
98
109
|
def boolean?
|
|
99
110
|
return false
|
|
100
111
|
end
|
|
101
112
|
end
|
|
102
113
|
|
|
103
|
-
|
|
104
|
-
# or not.
|
|
114
|
+
|
|
105
115
|
class Unary
|
|
116
|
+
## Extends the Unary class for checking if it is a boolean expression
|
|
117
|
+
# or not.
|
|
118
|
+
|
|
106
119
|
# Tells if the expression is boolean.
|
|
107
120
|
def boolean?
|
|
108
121
|
return self.child.boolean?
|
|
109
122
|
end
|
|
110
123
|
end
|
|
111
124
|
|
|
112
|
-
|
|
113
|
-
# or not.
|
|
125
|
+
|
|
114
126
|
class Binary
|
|
127
|
+
## Extends the Binary class for checking if it is a boolean expression
|
|
128
|
+
# or not.
|
|
129
|
+
|
|
115
130
|
# Tells if the expression is boolean.
|
|
116
131
|
def boolean?
|
|
117
132
|
case(self.operator)
|
|
@@ -128,9 +143,11 @@ module HDLRuby::Low
|
|
|
128
143
|
end
|
|
129
144
|
end
|
|
130
145
|
|
|
131
|
-
|
|
132
|
-
# or not.
|
|
146
|
+
|
|
133
147
|
class Select
|
|
148
|
+
## Extends the Select class for checking if it a boolean epression
|
|
149
|
+
# or not.
|
|
150
|
+
|
|
134
151
|
# Tells if the expression is boolean.
|
|
135
152
|
def boolean?
|
|
136
153
|
# Boolean if all the choices are boolean.
|
|
@@ -20,8 +20,8 @@ module HDLRuby::Low
|
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
|
|
23
|
-
## Extends SystemT with generation of port wires.
|
|
24
23
|
class SystemT
|
|
24
|
+
## Extends SystemT with generation of port wires.
|
|
25
25
|
|
|
26
26
|
# Converts to a port-compatible system.
|
|
27
27
|
#
|
|
@@ -33,8 +33,8 @@ module HDLRuby::Low
|
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
|
|
36
|
-
## Extends the Scope class with retrival conversion to symbol.
|
|
37
36
|
class Scope
|
|
37
|
+
## Extends the Scope class with retrival conversion to symbol.
|
|
38
38
|
|
|
39
39
|
# Converts a port wire to a reference to it.
|
|
40
40
|
def portw2ref(portw)
|
|
@@ -170,8 +170,8 @@ module HDLRuby::Low
|
|
|
170
170
|
|
|
171
171
|
|
|
172
172
|
|
|
173
|
-
## Extends SystemT with generation of port wires.
|
|
174
173
|
class SystemI
|
|
174
|
+
## Extends SystemT with generation of port wires.
|
|
175
175
|
|
|
176
176
|
def with_port!
|
|
177
177
|
self.systemT.with_port!
|
|
@@ -4,6 +4,8 @@ require "HDLRuby/hruby_low2sym"
|
|
|
4
4
|
require "HDLRuby/hruby_low2seq"
|
|
5
5
|
|
|
6
6
|
|
|
7
|
+
module HDLRuby::Low
|
|
8
|
+
|
|
7
9
|
##
|
|
8
10
|
# Explicitely seperate variables from signals in an HDLRuby::Low
|
|
9
11
|
# description.
|
|
@@ -11,10 +13,12 @@ require "HDLRuby/hruby_low2seq"
|
|
|
11
13
|
# NOTE: variable and signal are to be taken in the VHDL meaning.
|
|
12
14
|
#
|
|
13
15
|
########################################################################
|
|
14
|
-
module HDLRuby::Low
|
|
15
16
|
|
|
16
|
-
|
|
17
|
+
|
|
17
18
|
class SystemT
|
|
19
|
+
## Extends the SystemT class with separation between signals and
|
|
20
|
+
# variables.
|
|
21
|
+
|
|
18
22
|
# Converts to a variable-compatible system.
|
|
19
23
|
#
|
|
20
24
|
# NOTE: the result is the same systemT.
|
|
@@ -25,8 +29,10 @@ module HDLRuby::Low
|
|
|
25
29
|
end
|
|
26
30
|
|
|
27
31
|
|
|
28
|
-
## Extends the SystemI class with separation between signals and variables.
|
|
29
32
|
class SystemI
|
|
33
|
+
## Extends the SystemI class with separation between signals and
|
|
34
|
+
# variables.
|
|
35
|
+
|
|
30
36
|
# Converts to a variable-compatible system.
|
|
31
37
|
#
|
|
32
38
|
# NOTE: the result is the same systemT.
|
|
@@ -37,8 +43,10 @@ module HDLRuby::Low
|
|
|
37
43
|
end
|
|
38
44
|
|
|
39
45
|
|
|
40
|
-
## Extends the Behavior class with separation between signals and variables.
|
|
41
46
|
class Behavior
|
|
47
|
+
## Extends the Behavior class with separation between signals and
|
|
48
|
+
# variables.
|
|
49
|
+
|
|
42
50
|
# Converts to a variable-compatible behavior.
|
|
43
51
|
#
|
|
44
52
|
# NOTE: the result is the same systemT.
|
|
@@ -50,8 +58,9 @@ module HDLRuby::Low
|
|
|
50
58
|
end
|
|
51
59
|
|
|
52
60
|
|
|
53
|
-
## Extends the Block class with separation between signals and variables.
|
|
54
61
|
class Block
|
|
62
|
+
## Extends the Block class with separation between signals and variables.
|
|
63
|
+
|
|
55
64
|
|
|
56
65
|
# Converts a variable to a reference to it.
|
|
57
66
|
def var2ref(var)
|
|
@@ -248,8 +257,10 @@ module HDLRuby::Low
|
|
|
248
257
|
end
|
|
249
258
|
|
|
250
259
|
|
|
251
|
-
## Extends the TimeBlock class with separation between signals and variables.
|
|
252
260
|
class TimeBlock
|
|
261
|
+
## Extends the TimeBlock class with separation between signals and
|
|
262
|
+
# variables.
|
|
263
|
+
|
|
253
264
|
# Converts to a variable-compatible block where +upper+ is
|
|
254
265
|
# the upper block if any.
|
|
255
266
|
#
|
|
@@ -262,8 +273,9 @@ module HDLRuby::Low
|
|
|
262
273
|
end
|
|
263
274
|
|
|
264
275
|
|
|
265
|
-
## Extends the If class with separation between signals and variables.
|
|
266
276
|
class If
|
|
277
|
+
## Extends the If class with separation between signals and variables.
|
|
278
|
+
|
|
267
279
|
# Converts to a variable-compatible if where +upper+ is
|
|
268
280
|
# the upper block if any.
|
|
269
281
|
#
|
|
@@ -290,8 +302,9 @@ module HDLRuby::Low
|
|
|
290
302
|
end
|
|
291
303
|
|
|
292
304
|
|
|
293
|
-
## Extends the When class with separation between signals and variables.
|
|
294
305
|
class When
|
|
306
|
+
## Extends the When class with separation between signals and variables.
|
|
307
|
+
|
|
295
308
|
# Converts to a variable-compatible case where +upper+ is
|
|
296
309
|
# the upper block if any.
|
|
297
310
|
#
|
|
@@ -302,8 +315,9 @@ module HDLRuby::Low
|
|
|
302
315
|
end
|
|
303
316
|
|
|
304
317
|
|
|
305
|
-
## Extends the Case class with separation between signals and variables.
|
|
306
318
|
class Case
|
|
319
|
+
## Extends the Case class with separation between signals and variables.
|
|
320
|
+
|
|
307
321
|
# Converts to a variable-compatible case where +upper+ is
|
|
308
322
|
# the upper block if any.
|
|
309
323
|
#
|
|
@@ -7,15 +7,15 @@ module HDLRuby::Low
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
##
|
|
10
|
-
# Breaks the concat
|
|
10
|
+
# Breaks the concat assignments.
|
|
11
11
|
# Makes handling by some synthesis tools easier.
|
|
12
12
|
#
|
|
13
13
|
########################################################################
|
|
14
14
|
|
|
15
15
|
|
|
16
|
-
## Extends the SystemT class with functionality for breaking assingments
|
|
17
|
-
# to concats.
|
|
18
16
|
class SystemT
|
|
17
|
+
## Extends the SystemT class with functionality for breaking assignments
|
|
18
|
+
# to concats.
|
|
19
19
|
|
|
20
20
|
# Breaks the assignments to concats.
|
|
21
21
|
def break_concat_assigns!
|
|
@@ -34,9 +34,10 @@ module HDLRuby::Low
|
|
|
34
34
|
end
|
|
35
35
|
|
|
36
36
|
|
|
37
|
-
## Extends the Scope class with functionality for breaking assingments
|
|
38
|
-
# to concats.
|
|
39
37
|
class Scope
|
|
38
|
+
## Extends the Scope class with functionality for breaking assignments
|
|
39
|
+
# to concats.
|
|
40
|
+
|
|
40
41
|
# Breaks the assignments to concats.
|
|
41
42
|
def break_concat_assigns!
|
|
42
43
|
# Recruse on the sub scopes.
|
|
@@ -102,9 +103,11 @@ module HDLRuby::Low
|
|
|
102
103
|
end
|
|
103
104
|
end
|
|
104
105
|
|
|
105
|
-
|
|
106
|
-
# to concats.
|
|
106
|
+
|
|
107
107
|
class Behavior
|
|
108
|
+
## Extends the Behavior class with functionality for breaking assignments
|
|
109
|
+
# to concats.
|
|
110
|
+
|
|
108
111
|
# Breaks the assignments to concats.
|
|
109
112
|
def break_concat_assigns!
|
|
110
113
|
# Recruse on the block.
|
|
@@ -114,9 +117,10 @@ module HDLRuby::Low
|
|
|
114
117
|
|
|
115
118
|
|
|
116
119
|
|
|
117
|
-
## Extends the Block class with functionality for breaking assingments
|
|
118
|
-
# to concats.
|
|
119
120
|
class Block
|
|
121
|
+
## Extends the Block class with functionality for breaking assignments
|
|
122
|
+
# to concats.
|
|
123
|
+
|
|
120
124
|
# Breaks the assignments to concats.
|
|
121
125
|
#
|
|
122
126
|
# NOTE: work on the direct sub statement only, not deeply.
|
|
@@ -142,9 +146,10 @@ module HDLRuby::Low
|
|
|
142
146
|
end
|
|
143
147
|
|
|
144
148
|
|
|
145
|
-
## Extends the Transmit class with functionality for breaking assingments
|
|
146
|
-
# to concats.
|
|
147
149
|
class Transmit
|
|
150
|
+
## Extends the Transmit class with functionality for breaking assignments
|
|
151
|
+
# to concats.
|
|
152
|
+
|
|
148
153
|
# Break the assignments to concats.
|
|
149
154
|
#
|
|
150
155
|
# NOTE: when breaking generates a new Block containing the broken
|
|
@@ -235,9 +240,10 @@ module HDLRuby::Low
|
|
|
235
240
|
end
|
|
236
241
|
|
|
237
242
|
|
|
238
|
-
## Extends the Connection class with functionality for breaking assingments
|
|
239
|
-
# to concats.
|
|
240
243
|
class Connection
|
|
244
|
+
## Extends the Connection class with functionality for breaking
|
|
245
|
+
# assignments to concats.
|
|
246
|
+
|
|
241
247
|
# Break the assignments to concats.
|
|
242
248
|
#
|
|
243
249
|
# NOTE: when breaking generates a new Block containing the broken
|
|
@@ -27,9 +27,10 @@ module HDLRuby::Low
|
|
|
27
27
|
end
|
|
28
28
|
end
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
# to the upper namespace.
|
|
30
|
+
|
|
32
31
|
class SystemT
|
|
32
|
+
## Extends the SystemT class with functionality for moving the
|
|
33
|
+
# declarations to the upper namespace.
|
|
33
34
|
|
|
34
35
|
include ForceName
|
|
35
36
|
|
|
@@ -78,9 +79,10 @@ module HDLRuby::Low
|
|
|
78
79
|
end
|
|
79
80
|
end
|
|
80
81
|
|
|
81
|
-
|
|
82
|
-
# to the upper namespace.
|
|
82
|
+
|
|
83
83
|
class Scope
|
|
84
|
+
## Extends the Scope class with functionality for moving the declarations
|
|
85
|
+
# to the upper namespace.
|
|
84
86
|
|
|
85
87
|
include ForceName
|
|
86
88
|
|
|
@@ -280,9 +282,10 @@ module HDLRuby::Low
|
|
|
280
282
|
end
|
|
281
283
|
end
|
|
282
284
|
|
|
283
|
-
|
|
284
|
-
# types.
|
|
285
|
+
|
|
285
286
|
class Type
|
|
287
|
+
## Extends the Type class with functionality for breaking hierarchical
|
|
288
|
+
# types.
|
|
286
289
|
|
|
287
290
|
# Breaks the hierarchical types into sequences of type definitions.
|
|
288
291
|
# Assumes to_upper_space! has been called before.
|
|
@@ -293,9 +296,10 @@ module HDLRuby::Low
|
|
|
293
296
|
end
|
|
294
297
|
end
|
|
295
298
|
|
|
296
|
-
|
|
297
|
-
# types.
|
|
299
|
+
|
|
298
300
|
class TypeVector
|
|
301
|
+
## Extends the TypeVector class with functionality for breaking hierarchical
|
|
302
|
+
# types.
|
|
299
303
|
|
|
300
304
|
# Breaks the hierarchical types into sequences of type definitions.
|
|
301
305
|
# Assumes to_upper_space! has been called before.
|
|
@@ -333,9 +337,10 @@ module HDLRuby::Low
|
|
|
333
337
|
end
|
|
334
338
|
end
|
|
335
339
|
|
|
336
|
-
|
|
337
|
-
# types.
|
|
340
|
+
|
|
338
341
|
class TypeTuple
|
|
342
|
+
## Extends the TypeTuple class with functionality for breaking
|
|
343
|
+
# hierarchical types.
|
|
339
344
|
|
|
340
345
|
# Breaks the hierarchical types into sequences of type definitions.
|
|
341
346
|
# Assumes to_upper_space! has been called before.
|
|
@@ -365,9 +370,10 @@ module HDLRuby::Low
|
|
|
365
370
|
end
|
|
366
371
|
end
|
|
367
372
|
|
|
368
|
-
|
|
369
|
-
# types.
|
|
373
|
+
|
|
370
374
|
class TypeStruct
|
|
375
|
+
## Extends the TypeStruct class with functionality for breaking
|
|
376
|
+
# hierarchical types.
|
|
371
377
|
|
|
372
378
|
# Breaks the hierarchical types into sequences of type definitions.
|
|
373
379
|
# Assumes to_upper_space! has been called before.
|
|
@@ -397,9 +403,10 @@ module HDLRuby::Low
|
|
|
397
403
|
end
|
|
398
404
|
end
|
|
399
405
|
|
|
400
|
-
|
|
401
|
-
# to the upper namespace.
|
|
406
|
+
|
|
402
407
|
class SignalI
|
|
408
|
+
## Extends the SignalI class with functionality for moving the
|
|
409
|
+
# declarations to the upper namespace.
|
|
403
410
|
|
|
404
411
|
# Replaces recursively +former+ name by +nname+ until it is redeclared.
|
|
405
412
|
def replace_names!(former,nname)
|
|
@@ -412,9 +419,10 @@ module HDLRuby::Low
|
|
|
412
419
|
end
|
|
413
420
|
end
|
|
414
421
|
|
|
415
|
-
|
|
416
|
-
# to the upper namespace.
|
|
422
|
+
|
|
417
423
|
class SystemI
|
|
424
|
+
## Extends the SystemI class with functionality for moving the
|
|
425
|
+
# declarations to the upper namespace.
|
|
418
426
|
|
|
419
427
|
# Replaces recursively +former+ name by +nname+ until it is redeclared.
|
|
420
428
|
def replace_names!(former,nname)
|
|
@@ -429,9 +437,9 @@ module HDLRuby::Low
|
|
|
429
437
|
end
|
|
430
438
|
|
|
431
439
|
|
|
432
|
-
## Extends the Behavior class with functionality for moving the declarations
|
|
433
|
-
# to the upper namespace.
|
|
434
440
|
class Behavior
|
|
441
|
+
## Extends the Behavior class with functionality for moving the
|
|
442
|
+
# declarations to the upper namespace.
|
|
435
443
|
|
|
436
444
|
# Moves the declarations to the upper namespace.
|
|
437
445
|
def to_upper_space!
|
|
@@ -454,9 +462,10 @@ module HDLRuby::Low
|
|
|
454
462
|
end
|
|
455
463
|
end
|
|
456
464
|
|
|
457
|
-
|
|
458
|
-
# declarations to the upper namespace.
|
|
465
|
+
|
|
459
466
|
class Statement
|
|
467
|
+
## Extends the Statement class with functionality for moving the
|
|
468
|
+
# declarations to the upper namespace.
|
|
460
469
|
|
|
461
470
|
# Moves the declarations to the upper namespace.
|
|
462
471
|
def to_upper_space!
|
|
@@ -491,9 +500,10 @@ module HDLRuby::Low
|
|
|
491
500
|
end
|
|
492
501
|
end
|
|
493
502
|
|
|
494
|
-
|
|
495
|
-
# declarations to the upper namespace.
|
|
503
|
+
|
|
496
504
|
class Expression
|
|
505
|
+
## Extends the Expression class with functionality for moving the
|
|
506
|
+
# declarations to the upper namespace.
|
|
497
507
|
|
|
498
508
|
# Replaces recursively +former+ name by +nname+ until it is redeclared.
|
|
499
509
|
def replace_names!(former,nname)
|
|
@@ -518,10 +528,11 @@ module HDLRuby::Low
|
|
|
518
528
|
end
|
|
519
529
|
end
|
|
520
530
|
end
|
|
531
|
+
|
|
521
532
|
|
|
522
|
-
## Extends the If class with functionality for moving the declarations
|
|
523
|
-
# to the upper namespace.
|
|
524
533
|
class If
|
|
534
|
+
## Extends the If class with functionality for moving the declarations
|
|
535
|
+
# to the upper namespace.
|
|
525
536
|
|
|
526
537
|
# Moves the declarations to the upper namespace.
|
|
527
538
|
def to_upper_space!
|
|
@@ -569,9 +580,10 @@ module HDLRuby::Low
|
|
|
569
580
|
end
|
|
570
581
|
end
|
|
571
582
|
|
|
572
|
-
|
|
573
|
-
# to the upper namespace.
|
|
583
|
+
|
|
574
584
|
class When
|
|
585
|
+
## Extends the When class with functionality for moving the declarations
|
|
586
|
+
# to the upper namespace.
|
|
575
587
|
|
|
576
588
|
# Moves the declarations to the upper namespace.
|
|
577
589
|
def to_upper_space!
|
|
@@ -608,9 +620,10 @@ module HDLRuby::Low
|
|
|
608
620
|
end
|
|
609
621
|
end
|
|
610
622
|
|
|
611
|
-
|
|
612
|
-
# to the upper namespace.
|
|
623
|
+
|
|
613
624
|
class Case
|
|
625
|
+
## Extends the When class with functionality for moving the declarations
|
|
626
|
+
# to the upper namespace.
|
|
614
627
|
|
|
615
628
|
# Moves the declarations to the upper namespace.
|
|
616
629
|
def to_upper_space!
|
|
@@ -644,9 +657,10 @@ module HDLRuby::Low
|
|
|
644
657
|
end
|
|
645
658
|
end
|
|
646
659
|
|
|
647
|
-
|
|
648
|
-
# to the upper namespace.
|
|
660
|
+
|
|
649
661
|
class TimeRepeat
|
|
662
|
+
## Extends the When class with functionality for moving the declarations
|
|
663
|
+
# to the upper namespace.
|
|
650
664
|
|
|
651
665
|
# Moves the declarations to the upper namespace.
|
|
652
666
|
def to_upper_space!
|
|
@@ -669,9 +683,10 @@ module HDLRuby::Low
|
|
|
669
683
|
end
|
|
670
684
|
end
|
|
671
685
|
|
|
672
|
-
|
|
673
|
-
# to the upper namespace.
|
|
686
|
+
|
|
674
687
|
class Block
|
|
688
|
+
## Extends the When class with functionality for moving the declarations
|
|
689
|
+
# to the upper namespace.
|
|
675
690
|
|
|
676
691
|
include ForceName
|
|
677
692
|
|
|
@@ -13,9 +13,9 @@ module HDLRuby::Low
|
|
|
13
13
|
########################################################################
|
|
14
14
|
|
|
15
15
|
|
|
16
|
-
## Extends the SystemT class with functionality for converting par blocks
|
|
17
|
-
# within seq blocks to seq blocks.
|
|
18
16
|
class SystemT
|
|
17
|
+
## Extends the SystemT class with functionality for converting par blocks
|
|
18
|
+
# within seq blocks to seq blocks.
|
|
19
19
|
|
|
20
20
|
# Converts par blocks within seq blocks to seq blocks.
|
|
21
21
|
def par_in_seq2seq!
|
|
@@ -23,9 +23,11 @@ module HDLRuby::Low
|
|
|
23
23
|
end
|
|
24
24
|
end
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
# to concats.
|
|
26
|
+
|
|
28
27
|
class Scope
|
|
28
|
+
## Extends the Scope class with functionality for converting par blocks
|
|
29
|
+
# within seq blocks to seq blocks.
|
|
30
|
+
|
|
29
31
|
# Converts par blocks within seq blocks to seq blocks.
|
|
30
32
|
def par_in_seq2seq!
|
|
31
33
|
# Recruse on the sub scopes.
|
|
@@ -38,9 +40,10 @@ module HDLRuby::Low
|
|
|
38
40
|
end
|
|
39
41
|
|
|
40
42
|
|
|
41
|
-
## Extends the Statement class with functionality for breaking assingments
|
|
42
|
-
# to concats.
|
|
43
43
|
class Statement
|
|
44
|
+
## Extends the Statement class with functionality for converting par
|
|
45
|
+
# blocks within seq blocks to seq blocks.
|
|
46
|
+
|
|
44
47
|
# Converts par blocks within seq blocks to seq blocks.
|
|
45
48
|
def par_in_seq2seq!
|
|
46
49
|
# By default nothing to do.
|
|
@@ -55,9 +58,10 @@ module HDLRuby::Low
|
|
|
55
58
|
end
|
|
56
59
|
|
|
57
60
|
|
|
58
|
-
## Extends the If class with functionality for breaking assingments
|
|
59
|
-
# to concats.
|
|
60
61
|
class If
|
|
62
|
+
## Extends the If class with functionality for converting par blocks
|
|
63
|
+
# within seq blocks to seq blocks.
|
|
64
|
+
|
|
61
65
|
# Converts par blocks within seq blocks to seq blocks.
|
|
62
66
|
def par_in_seq2seq!
|
|
63
67
|
self.yes.par_in_seq2seq!
|
|
@@ -78,9 +82,10 @@ module HDLRuby::Low
|
|
|
78
82
|
end
|
|
79
83
|
|
|
80
84
|
|
|
81
|
-
## Extends the Case class with functionality for breaking assingments
|
|
82
|
-
# to concats.
|
|
83
85
|
class Case
|
|
86
|
+
## Extends the Case class with functionality for converting par blocks
|
|
87
|
+
# within seq blocks to seq blocks.
|
|
88
|
+
|
|
84
89
|
# Converts par blocks within seq blocks to seq blocks.
|
|
85
90
|
def par_in_seq2seq!
|
|
86
91
|
self.each_when do |w|
|
|
@@ -99,9 +104,10 @@ module HDLRuby::Low
|
|
|
99
104
|
end
|
|
100
105
|
|
|
101
106
|
|
|
102
|
-
## Extends the Block class with functionality for breaking assingments
|
|
103
|
-
# to concats.
|
|
104
107
|
class Block
|
|
108
|
+
## Extends the Block class with functionality for converting par blocks
|
|
109
|
+
# within seq blocks to seq blocks.
|
|
110
|
+
|
|
105
111
|
# Converts par blocks within seq blocks to seq blocks.
|
|
106
112
|
def par_in_seq2seq!
|
|
107
113
|
# Recurse on the sub blocks.
|