rggen-vhdl 0.9.0 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
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: []