rggen-vhdl 0.9.0 → 0.10.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 (35) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rggen/vhdl/bit_field/type/custom.erb +1 -1
  3. data/lib/rggen/vhdl/bit_field/type/rc_w0c_w1c_wc_woc.erb +1 -1
  4. data/lib/rggen/vhdl/bit_field/type/ro_rotrg.erb +1 -1
  5. data/lib/rggen/vhdl/bit_field/type/rof.erb +1 -1
  6. data/lib/rggen/vhdl/bit_field/type/rohw.erb +1 -1
  7. data/lib/rggen/vhdl/bit_field/type/row0trg_row1trg.erb +1 -1
  8. data/lib/rggen/vhdl/bit_field/type/rowo_rowotrg.erb +1 -1
  9. data/lib/rggen/vhdl/bit_field/type/rs_w0s_w1s_ws_wos.erb +1 -1
  10. data/lib/rggen/vhdl/bit_field/type/rw_rwtrg_w1.erb +1 -1
  11. data/lib/rggen/vhdl/bit_field/type/rwc.erb +1 -1
  12. data/lib/rggen/vhdl/bit_field/type/rwe_rwl.erb +1 -1
  13. data/lib/rggen/vhdl/bit_field/type/rwhw.erb +1 -1
  14. data/lib/rggen/vhdl/bit_field/type/rws.erb +1 -1
  15. data/lib/rggen/vhdl/bit_field/type/w0crs_w0src_w1crs_w1src_wcrs_wsrc.erb +1 -1
  16. data/lib/rggen/vhdl/bit_field/type/w0t_w1t.erb +1 -1
  17. data/lib/rggen/vhdl/bit_field/type/w0trg_w1trg.erb +1 -1
  18. data/lib/rggen/vhdl/bit_field/type/wo_wo1_wotrg.erb +1 -1
  19. data/lib/rggen/vhdl/bit_field/type/wrc_wrs.erb +1 -1
  20. data/lib/rggen/vhdl/bit_field/type.rb +4 -0
  21. data/lib/rggen/vhdl/global/library_name.rb +16 -0
  22. data/lib/rggen/vhdl/register/type/default.erb +1 -1
  23. data/lib/rggen/vhdl/register/type/external.erb +1 -1
  24. data/lib/rggen/vhdl/register/type/indirect.erb +1 -1
  25. data/lib/rggen/vhdl/register/type/rw.erb +1 -1
  26. data/lib/rggen/vhdl/register/type.rb +12 -0
  27. data/lib/rggen/vhdl/register_block/protocol/apb.erb +1 -1
  28. data/lib/rggen/vhdl/register_block/protocol/axi4lite.erb +1 -1
  29. data/lib/rggen/vhdl/register_block/protocol/wishbone.erb +1 -1
  30. data/lib/rggen/vhdl/register_block/protocol.rb +4 -0
  31. data/lib/rggen/vhdl/register_block/vhdl_top.erb +4 -1
  32. data/lib/rggen/vhdl/register_block/vhdl_top.rb +8 -0
  33. data/lib/rggen/vhdl/version.rb +1 -1
  34. data/lib/rggen/vhdl.rb +1 -0
  35. metadata +5 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 82e1e01c9df0b2b6f6fdc9d53f7b0b662ebd5f1bc48299b5c38a53e4da1a2137
4
- data.tar.gz: be850f4ac1b090d779803da9e01f3204e8f852aef9238b2589130ded97782a84
3
+ metadata.gz: e9872f0da195fb312788f08dd53b41e3336cc5ce3b2ad38faa8e91c20320a263
4
+ data.tar.gz: 75bcb850c0004427eb846bbc21fb44f6745a15f1e9ad3b0f31ba91e0b242fb6e
5
5
  SHA512:
6
- metadata.gz: be576540bdcfbb183c974affd2532fe2c46717507dec07512ff240e6b01e812b7d368081d51c2b4ecf7e637e40a699c0454b2b1fb5781d169e4c8f70eba8ab92
7
- data.tar.gz: c60ed6476f70dc145d7497fd0624a26021996091a27579779f08832d27103809b5e095fe0c3b9d581e852e25066c17e392f87af979e3ef2f3a37abf68b2aaa32
6
+ metadata.gz: f0df2d72d345c9e4b81dc0955f8424d0d3706f0128fa9ea5789c2be6b5ae90dc9fb149a916fdee54a0765ab0b036bc7730fdfcd65487a6fa0b9c53b208212ffe
7
+ data.tar.gz: d84282983bf6b39be7c753fc1de6195d3f4d35457903a81896562ae759c02dd30c41fd5da637458b784aa5ee5de0bc015773f267b464f244db80036b10016e21
@@ -1,4 +1,4 @@
1
- u_bit_field: entity work.rggen_bit_field
1
+ u_bit_field: entity <%= library_name %>.rggen_bit_field
2
2
  generic map (
3
3
  WIDTH => <%= width %>,
4
4
  INITIAL_VALUE => <%= initial_value %>,
@@ -1,4 +1,4 @@
1
- u_bit_field: entity work.rggen_bit_field
1
+ u_bit_field: entity <%= library_name %>.rggen_bit_field
2
2
  generic map (
3
3
  WIDTH => <%= width %>,
4
4
  INITIAL_VALUE => <%= initial_value %>,
@@ -1,4 +1,4 @@
1
- u_bit_field: entity work.rggen_bit_field
1
+ u_bit_field: entity <%= library_name %>.rggen_bit_field
2
2
  generic map (
3
3
  WIDTH => <%= width %>,
4
4
  STORAGE => false,
@@ -1,4 +1,4 @@
1
- u_bit_field: entity work.rggen_bit_field
1
+ u_bit_field: entity <%= library_name %>.rggen_bit_field
2
2
  generic map (
3
3
  WIDTH => <%= width %>,
4
4
  STORAGE => false,
@@ -1,4 +1,4 @@
1
- u_bit_field: entity work.rggen_bit_field
1
+ u_bit_field: entity <%= library_name %>.rggen_bit_field
2
2
  generic map (
3
3
  WIDTH => <%= width %>,
4
4
  INITIAL_VALUE => <%= initial_value %>,
@@ -1,4 +1,4 @@
1
- u_bit_field: entity work.rggen_bit_field_w01trg
1
+ u_bit_field: entity <%= library_name %>.rggen_bit_field_w01trg
2
2
  generic map (
3
3
  WRITE_ONE_TRIGGER => <%= write_one_trigger? %>,
4
4
  WIDTH => <%= width %>
@@ -1,4 +1,4 @@
1
- u_bit_field: entity work.rggen_bit_field
1
+ u_bit_field: entity <%= library_name %>.rggen_bit_field
2
2
  generic map (
3
3
  WIDTH => <%= width %>,
4
4
  INITIAL_VALUE => <%= initial_value %>,
@@ -1,4 +1,4 @@
1
- u_bit_field: entity work.rggen_bit_field
1
+ u_bit_field: entity <%= library_name %>.rggen_bit_field
2
2
  generic map (
3
3
  WIDTH => <%= width %>,
4
4
  INITIAL_VALUE => <%= initial_value %>,
@@ -1,4 +1,4 @@
1
- u_bit_field: entity work.rggen_bit_field
1
+ u_bit_field: entity <%= library_name %>.rggen_bit_field
2
2
  generic map (
3
3
  WIDTH => <%= width %>,
4
4
  INITIAL_VALUE => <%= initial_value %>,
@@ -1,4 +1,4 @@
1
- u_bit_field: entity work.rggen_bit_field
1
+ u_bit_field: entity <%= library_name %>.rggen_bit_field
2
2
  generic map (
3
3
  WIDTH => <%= width %>,
4
4
  INITIAL_VALUE => <%= initial_value %>,
@@ -1,4 +1,4 @@
1
- u_bit_field: entity work.rggen_bit_field
1
+ u_bit_field: entity <%= library_name %>.rggen_bit_field
2
2
  generic map (
3
3
  WIDTH => <%= width %>,
4
4
  INITIAL_VALUE => <%= initial_value %>,
@@ -1,4 +1,4 @@
1
- u_bit_field: entity work.rggen_bit_field
1
+ u_bit_field: entity <%= library_name %>.rggen_bit_field
2
2
  generic map (
3
3
  WIDTH => <%= width %>,
4
4
  INITIAL_VALUE => <%= initial_value %>
@@ -1,4 +1,4 @@
1
- u_bit_field: entity work.rggen_bit_field
1
+ u_bit_field: entity <%= library_name %>.rggen_bit_field
2
2
  generic map (
3
3
  WIDTH => <%= width %>,
4
4
  INITIAL_VALUE => <%= initial_value %>,
@@ -1,4 +1,4 @@
1
- u_bit_field: entity work.rggen_bit_field
1
+ u_bit_field: entity <%= library_name %>.rggen_bit_field
2
2
  generic map (
3
3
  WIDTH => <%= width %>,
4
4
  INITIAL_VALUE => <%= initial_value %>,
@@ -1,4 +1,4 @@
1
- u_bit_field: entity work.rggen_bit_field
1
+ u_bit_field: entity <%= library_name %>.rggen_bit_field
2
2
  generic map (
3
3
  WIDTH => <%= width %>,
4
4
  INITIAL_VALUE => <%= initial_value %>,
@@ -1,4 +1,4 @@
1
- u_bit_field: entity work.rggen_bit_field_w01trg
1
+ u_bit_field: entity <%= library_name %>.rggen_bit_field_w01trg
2
2
  generic map (
3
3
  WRITE_ONE_TRIGGER => <%= write_one_trigger? %>,
4
4
  WIDTH => <%= width %>
@@ -1,4 +1,4 @@
1
- u_bit_field: entity work.rggen_bit_field
1
+ u_bit_field: entity <%= library_name %>.rggen_bit_field
2
2
  generic map (
3
3
  WIDTH => <%= width %>,
4
4
  INITIAL_VALUE => <%= initial_value %>,
@@ -1,4 +1,4 @@
1
- u_bit_field: entity work.rggen_bit_field
1
+ u_bit_field: entity <%= library_name %>.rggen_bit_field
2
2
  generic map (
3
3
  WIDTH => <%= width %>,
4
4
  INITIAL_VALUE => <%= initial_value %>,
@@ -5,6 +5,10 @@ RgGen.define_list_feature(:bit_field, :type) do
5
5
  base_feature do
6
6
  private
7
7
 
8
+ def library_name
9
+ configuration.library_name
10
+ end
11
+
8
12
  def full_name
9
13
  bit_field.full_name('_')
10
14
  end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ RgGen.define_simple_feature(:global, :library_name) do
4
+ configuration do
5
+ property :library_name, default: 'work'
6
+ property :use_default_library?, body: -> { library_name.casecmp?('work') }
7
+
8
+ input_pattern variable_name
9
+
10
+ build do |value|
11
+ pattern_matched? ||
12
+ (error "illegal input value for library name: #{value.inspect}")
13
+ @library_name = match_data.to_s
14
+ end
15
+ end
16
+ end
@@ -1,4 +1,4 @@
1
- u_register: entity work.rggen_default_register
1
+ u_register: entity <%= library_name %>.rggen_default_register
2
2
  generic map (
3
3
  READABLE => <%= readable? %>,
4
4
  WRITABLE => <%= writable? %>,
@@ -1,4 +1,4 @@
1
- u_register: entity work.rggen_external_register
1
+ u_register: entity <%= library_name %>.rggen_external_register
2
2
  generic map (
3
3
  ADDRESS_WIDTH => <%= address_width %>,
4
4
  BUS_WIDTH => <%= bus_width %>,
@@ -1,7 +1,7 @@
1
1
  <% index_fields_and_values.each_with_index do |(field, value), i| %>
2
2
  <%= indirect_match[i] %> <= '1' when unsigned(<%= field %>) = <%= value %> else '0';
3
3
  <% end %>
4
- u_register: entity work.rggen_indirect_register
4
+ u_register: entity <%= library_name %>.rggen_indirect_register
5
5
  generic map (
6
6
  READABLE => <%= readable? %>,
7
7
  WRITABLE => <%= writable? %>,
@@ -1,4 +1,4 @@
1
- u_register: entity work.rggen_default_register
1
+ u_register: entity <%= library_name %>.rggen_default_register
2
2
  generic map (
3
3
  READABLE => true,
4
4
  WRITABLE => true,
@@ -20,6 +20,10 @@ RgGen.define_list_feature(:register, :type) do
20
20
  register.writable?
21
21
  end
22
22
 
23
+ def library_name
24
+ configuration.library_name
25
+ end
26
+
23
27
  def clock
24
28
  register_block.clock
25
29
  end
@@ -91,6 +95,14 @@ RgGen.define_list_feature(:register, :type) do
91
95
  def bit_field_value
92
96
  register.bit_field_value
93
97
  end
98
+
99
+ def format_offsets(offsets)
100
+ if integer?(offsets.first)
101
+ super(offsets)
102
+ else
103
+ super([0, *offsets])
104
+ end
105
+ end
94
106
  end
95
107
 
96
108
  default_feature do
@@ -1,4 +1,4 @@
1
- u_adapter: entity work.rggen_apb_adaper
1
+ u_adapter: entity <%= library_name %>.rggen_apb_adaper
2
2
  generic map (
3
3
  ADDRESS_WIDTH => <%= address_width %>,
4
4
  LOCAL_ADDRESS_WIDTH => <%= local_address_width %>,
@@ -1,4 +1,4 @@
1
- u_adapter: entity work.rggen_axi4lite_adapter
1
+ u_adapter: entity <%= library_name %>.rggen_axi4lite_adapter
2
2
  generic map (
3
3
  ID_WIDTH => <%= id_width %>,
4
4
  ADDRESS_WIDTH => <%= address_width %>,
@@ -1,4 +1,4 @@
1
- u_adapter: entity work.rggen_wishbone_adapter
1
+ u_adapter: entity <%= library_name %>.rggen_wishbone_adapter
2
2
  generic map (
3
3
  ADDRESS_WIDTH => <%= address_width %>,
4
4
  LOCAL_ADDRESS_WIDTH => <%= local_address_width %>,
@@ -25,6 +25,10 @@ RgGen.define_list_feature(:register_block, :protocol) do
25
25
 
26
26
  private
27
27
 
28
+ def library_name
29
+ configuration.library_name
30
+ end
31
+
28
32
  def bus_width
29
33
  configuration.bus_width
30
34
  end
@@ -2,7 +2,10 @@ library ieee;
2
2
  use ieee.std_logic_1164.all;
3
3
  use ieee.numeric_std.all;
4
4
 
5
- use work.rggen_rtl.all;
5
+ <% unless use_default_library? %>
6
+ library <%= library_name %>;
7
+ <% end %>
8
+ use <%= library_name %>.rggen_rtl.all;
6
9
 
7
10
  entity <%= register_block.name %> is
8
11
  generic (
@@ -42,6 +42,14 @@ RgGen.define_simple_feature(:register_block, :vhdl_top) do
42
42
 
43
43
  private
44
44
 
45
+ def use_default_library?
46
+ configuration.use_default_library?
47
+ end
48
+
49
+ def library_name
50
+ configuration.library_name
51
+ end
52
+
45
53
  def total_registers
46
54
  register_block.files_and_registers.sum(&:count)
47
55
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RgGen
4
4
  module VHDL
5
- VERSION = '0.9.0'
5
+ VERSION = '0.10.0'
6
6
  end
7
7
  end
data/lib/rggen/vhdl.rb CHANGED
@@ -21,6 +21,7 @@ RgGen.setup_plugin :'rggen-vhdl' do |plugin|
21
21
  end
22
22
 
23
23
  plugin.files [
24
+ 'vhdl/global/library_name',
24
25
  'vhdl/register_block/vhdl_top',
25
26
  'vhdl/register_block/protocol',
26
27
  'vhdl/register_block/protocol/apb',
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rggen-vhdl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Taichi Ishitani
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-01-22 00:00:00.000000000 Z
11
+ date: 2024-02-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rggen-systemverilog
@@ -76,6 +76,7 @@ files:
76
76
  - lib/rggen/vhdl/component.rb
77
77
  - lib/rggen/vhdl/factories.rb
78
78
  - lib/rggen/vhdl/feature.rb
79
+ - lib/rggen/vhdl/global/library_name.rb
79
80
  - lib/rggen/vhdl/register/tie_off_unused_signals.erb
80
81
  - lib/rggen/vhdl/register/type.rb
81
82
  - lib/rggen/vhdl/register/type/default.erb
@@ -125,8 +126,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
125
126
  - !ruby/object:Gem::Version
126
127
  version: '0'
127
128
  requirements: []
128
- rubygems_version: 3.5.3
129
+ rubygems_version: 3.5.5
129
130
  signing_key:
130
131
  specification_version: 4
131
- summary: rggen-vhdl-0.9.0
132
+ summary: rggen-vhdl-0.10.0
132
133
  test_files: []