HDLRuby 2.2.10 → 2.2.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/HDLRuby/hruby_high.rb +19 -2
- data/lib/HDLRuby/hruby_low.rb +15 -1
- data/lib/HDLRuby/hruby_low_with_port.rb +2 -0
- data/lib/HDLRuby/hruby_low_without_select.rb +11 -3
- data/lib/HDLRuby/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 45a409a3630e4f26134448f447632f9e4eddb54de95fbae8c1e7594675b7cd8b
|
4
|
+
data.tar.gz: 721ad1ff712c254d78375cfab46383ba88865ba916e58fc76488816f8143caa8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d07edc7c5ad0efff6b69050ac4eec19001ac0d2225e2082564591feba3f1ce77ba048dfffb587d58c16e7e2b4b810c9b3345f495d49ff4a0928e842c601550ae
|
7
|
+
data.tar.gz: d5299bf02d8ef3f7d2b0a185152b8a3dbd298b2725bef2365a42a276c7c45b27cf3b900f581bd46a9a35410b853abf412189101d2ad83d4de3cb2cbbf0501c50
|
data/lib/HDLRuby/hruby_high.rb
CHANGED
@@ -428,6 +428,22 @@ module HDLRuby::High
|
|
428
428
|
return res
|
429
429
|
end
|
430
430
|
|
431
|
+
|
432
|
+
# Gets an output signal by +name+ considering also the included
|
433
|
+
# systems
|
434
|
+
def get_output_with_included(name)
|
435
|
+
# Look in self.
|
436
|
+
found = self.get_output(name)
|
437
|
+
return found if found
|
438
|
+
# Not in self, look in the included systems.
|
439
|
+
self.scope.each_included do |included|
|
440
|
+
found = included.get_output_with_included(name)
|
441
|
+
return found if found
|
442
|
+
end
|
443
|
+
# Not found
|
444
|
+
return nil
|
445
|
+
end
|
446
|
+
|
431
447
|
# Iterates over the all interface signals, i.e, also the ones of
|
432
448
|
# the included systems.
|
433
449
|
#
|
@@ -1919,12 +1935,13 @@ module HDLRuby::High
|
|
1919
1935
|
else
|
1920
1936
|
# No, perform a connection is order of declaration
|
1921
1937
|
connects.each.with_index do |csig,i|
|
1922
|
-
# puts "csig=#{csig} i=#{i}"
|
1938
|
+
# puts "csig=#{csig.name} i=#{i}"
|
1923
1939
|
# puts "systemT inputs=#{systemT.each_input.to_a.size}"
|
1924
1940
|
# Gets i-est signal to connect
|
1925
1941
|
ssig = self.systemT.get_interface_with_included(i)
|
1926
1942
|
# Check if it is an output.
|
1927
|
-
isout = self.
|
1943
|
+
isout = self.systemT.get_output_with_included(ssig.name)
|
1944
|
+
# puts "ssig=#{ssig.name} isout=#{isout}"
|
1928
1945
|
# Convert it to a reference.
|
1929
1946
|
ssig = RefObject.new(self.to_ref,ssig)
|
1930
1947
|
# Make the connection.
|
data/lib/HDLRuby/hruby_low.rb
CHANGED
@@ -2576,11 +2576,25 @@ module HDLRuby::Low
|
|
2576
2576
|
def block
|
2577
2577
|
if self.is_a?(Block)
|
2578
2578
|
return self
|
2579
|
+
elsif self.parent.is_a?(Scope)
|
2580
|
+
# No block
|
2581
|
+
return nil
|
2579
2582
|
else
|
2580
2583
|
return self.parent.block
|
2581
2584
|
end
|
2582
2585
|
end
|
2583
2586
|
|
2587
|
+
# Get the scope of the statement.
|
2588
|
+
def scope
|
2589
|
+
if self.parent.is_a?(Scope) then
|
2590
|
+
return self.parent
|
2591
|
+
elsif self.parent.is_a?(Behavior) then
|
2592
|
+
return self.parent.parent
|
2593
|
+
else
|
2594
|
+
return self.parent.scope
|
2595
|
+
end
|
2596
|
+
end
|
2597
|
+
|
2584
2598
|
# Gets the top block, i.e. the first block of the current behavior.
|
2585
2599
|
def top_block
|
2586
2600
|
return self.parent.is_a?(Behavior) ? self : self.parent.top_block
|
@@ -2588,7 +2602,7 @@ module HDLRuby::Low
|
|
2588
2602
|
|
2589
2603
|
# Gets the top scope, i.e. the first scope of the current system.
|
2590
2604
|
def top_scope
|
2591
|
-
return self.
|
2605
|
+
return self.scope.top_scope
|
2592
2606
|
end
|
2593
2607
|
end
|
2594
2608
|
|
@@ -102,6 +102,8 @@ module HDLRuby::Low
|
|
102
102
|
self.each_connection do |connection|
|
103
103
|
connection.each_node_deep do |node|
|
104
104
|
if instance_port?(node) then
|
105
|
+
# puts "port for node: #{node.ref.name}.#{node.name}"
|
106
|
+
# puts "leftvalue? #{node.leftvalue?}"
|
105
107
|
refs << node
|
106
108
|
ref_sym2leftvalue[node.to_sym] = node.leftvalue?
|
107
109
|
end
|
@@ -87,9 +87,10 @@ module HDLRuby::Low
|
|
87
87
|
blk = LowWithoutSelect.selects2block(selects)
|
88
88
|
# Add a transmit replacing the connection.
|
89
89
|
blk.add_statement(
|
90
|
-
Transmit.new(
|
90
|
+
Transmit.new(connection.left.clone,
|
91
|
+
connection.right.clone))
|
91
92
|
# Remove the connection and add a behavior instead.
|
92
|
-
self.
|
93
|
+
self.delete_connection!(connection)
|
93
94
|
self.add_behavior(Behavior.new(blk))
|
94
95
|
end
|
95
96
|
end
|
@@ -223,7 +224,14 @@ module HDLRuby::Low
|
|
223
224
|
selects << [self,sig]
|
224
225
|
# Create the signal replacing self.
|
225
226
|
blk = self.statement.block
|
226
|
-
blk
|
227
|
+
if blk then
|
228
|
+
# Add the signal in the block.
|
229
|
+
blk.add_inner(sig)
|
230
|
+
else
|
231
|
+
# No block, this is a connection, add the signal in the
|
232
|
+
# socpe
|
233
|
+
self.statement.scope.add_inner(sig)
|
234
|
+
end
|
227
235
|
# And return a reference to it.
|
228
236
|
return RefName.new(sig.type,RefThis.new,sig.name)
|
229
237
|
end
|
data/lib/HDLRuby/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: HDLRuby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lovic Gauthier
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-03-
|
11
|
+
date: 2020-03-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|