HDLRuby 3.7.2 → 3.7.4

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.
@@ -1,3 +1,3 @@
1
1
  module HDLRuby
2
- VERSION = "3.7.2"
2
+ VERSION = "3.7.4"
3
3
  end
data/lib/rubyHDL.rb CHANGED
@@ -6,6 +6,32 @@ require 'hruby_sim/hruby_sim'
6
6
  ########################################################################
7
7
  module RubyHDL
8
8
 
9
+ # Wrapper for array signal accesses.
10
+ class ArrayWrapper
11
+ # Create a new memory wrapper for signal +sig+
12
+ def initialize(sig)
13
+ @signal = sig
14
+ end
15
+
16
+ # Read the array.
17
+ def [](idx)
18
+ return RCSim.rcsim_read_index_fixnum(@signal,idx)
19
+ end
20
+
21
+ # Write to the array.
22
+ def []=(idx,val)
23
+ return RCSim.rcsim_write_index_fixnum_seq(@signal,idx,val)
24
+ end
25
+ end
26
+
27
+ # Creates a new array port 'name' assigned to signal 'sig'.
28
+ def self.arrayport(name,sig)
29
+ # Creating the accessing method.
30
+ define_singleton_method(name.to_sym) do
31
+ ArrayWrapper.new(sig)
32
+ end
33
+ end
34
+
9
35
  # Creates a new port 'name' assigned to signal 'sig' for reading.
10
36
  def self.inport(name,sig)
11
37
  # Create the accessing methods.
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: HDLRuby
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.7.2
4
+ version: 3.7.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lovic Gauthier
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-03-24 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: bundler
@@ -180,6 +180,7 @@ files:
180
180
  - lib/HDLRuby/hdr_samples/ruby_program/sw_inc_mem.rb
181
181
  - lib/HDLRuby/hdr_samples/ruby_program/sw_log.rb
182
182
  - lib/HDLRuby/hdr_samples/ruby_program/with_sw_hruby.rb
183
+ - lib/HDLRuby/hdr_samples/ruby_program/with_sw_hruby_function.rb
183
184
  - lib/HDLRuby/hdr_samples/ruby_program/with_sw_hruby_hruby_test.rb
184
185
  - lib/HDLRuby/hdr_samples/seqpar_bench.rb
185
186
  - lib/HDLRuby/hdr_samples/simple_counter_bench.rb
@@ -226,9 +227,11 @@ files:
226
227
  - lib/HDLRuby/hdr_samples/with_of.rb
227
228
  - lib/HDLRuby/hdr_samples/with_program_c.rb
228
229
  - lib/HDLRuby/hdr_samples/with_program_ruby.rb
230
+ - lib/HDLRuby/hdr_samples/with_program_ruby_array.rb
229
231
  - lib/HDLRuby/hdr_samples/with_program_ruby_cpu.rb
230
232
  - lib/HDLRuby/hdr_samples/with_program_ruby_io.rb
231
233
  - lib/HDLRuby/hdr_samples/with_program_ruby_mem.rb
234
+ - lib/HDLRuby/hdr_samples/with_program_ruby_sequencer.rb
232
235
  - lib/HDLRuby/hdr_samples/with_program_ruby_threads.rb
233
236
  - lib/HDLRuby/hdr_samples/with_reconf.rb
234
237
  - lib/HDLRuby/hdr_samples/with_reduce.rb
@@ -491,7 +494,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
491
494
  - !ruby/object:Gem::Version
492
495
  version: '0'
493
496
  requirements: []
494
- rubygems_version: 3.6.6
497
+ rubygems_version: 3.6.8
495
498
  specification_version: 4
496
499
  summary: HDLRuby is a library for describing and simulating digital electronic systems.
497
500
  test_files: []