rggen-systemverilog 0.21.0 → 0.21.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9b642c6748857ea3e78bcca5eeda544387fca31bdb85de17c51182e0da0f0c7f
4
- data.tar.gz: e6152bbed9134750811957f1d46aeba5769e12bf39196b440d3c4362c22bdd6a
3
+ metadata.gz: 1adaf5c9adddfa719676ff863b5172b976ce9e74ef3c979515fc0fa90c4bc3ca
4
+ data.tar.gz: 63469ade8ab437c95069caec46c58fd2aba98a44f18e09722d63bbf51f11f62c
5
5
  SHA512:
6
- metadata.gz: 254ad7f6a05832eb99e6863fa82fab47edc1701d6e348dd5049ab9f9b3d16fe72ab29e82ba0611e8c9c0243675d21d4437d1a74e229eee383c199cb467c950f4
7
- data.tar.gz: 7d3b17ff333fe06f68d1e802afd2cbcca411ef3bc4c34c54bc79487d821643772cf98be55eef61a1b826f506bfe816e6420caa3c4c63632aaf0f0fcc6374d8c3
6
+ metadata.gz: f0f5e0f777e2efa65545b23e7cd985f3d40b771f7d0187c319114cbd5a1755e08d607462eff36b7e1196361fa832adce1b6f3ab6659d40ff88ffbfbfd2fbcf7a
7
+ data.tar.gz: 017b6bf1fd636740ab84a55634f0979620ce9bbb27ea383c8db78850108448a8cfac58034eadef2f24e01a3384df803620bcd8f1bc2ec1882d914f3741e734ea
@@ -1,4 +1,5 @@
1
1
  rggen_axi4lite_adapter #(
2
+ .ID_WIDTH (<%= id_width %>),
2
3
  .ADDRESS_WIDTH (<%= address_width %>),
3
4
  .LOCAL_ADDRESS_WIDTH (<%= local_address_width %>),
4
5
  .BUS_WIDTH (<%= bus_width %>),
@@ -13,6 +13,9 @@ RgGen.define_list_item_feature(:register_block, :protocol, :axi4lite) do
13
13
 
14
14
  sv_rtl do
15
15
  build do
16
+ parameter :id_width, {
17
+ name: 'ID_WIDTH', data_type: :int, default: 0
18
+ }
16
19
  parameter :write_first, {
17
20
  name: 'WRITE_FIRST', data_type: :bit, default: 1
18
21
  }
@@ -28,6 +31,9 @@ RgGen.define_list_item_feature(:register_block, :protocol, :axi4lite) do
28
31
  output :awready, {
29
32
  name: 'o_awready', data_type: :logic, width: 1
30
33
  }
34
+ input :awid, {
35
+ name: 'i_awid', data_type: :logic, width: id_port_width
36
+ }
31
37
  input :awaddr, {
32
38
  name: 'i_awaddr', data_type: :logic, width: address_width
33
39
  }
@@ -49,6 +55,9 @@ RgGen.define_list_item_feature(:register_block, :protocol, :axi4lite) do
49
55
  output :bvalid, {
50
56
  name: 'o_bvalid', data_type: :logic, width: 1
51
57
  }
58
+ output :bid, {
59
+ name: 'o_bid', data_type: :logic, width: id_port_width
60
+ }
52
61
  input :bready, {
53
62
  name: 'i_bready', data_type: :logic, width: 1
54
63
  }
@@ -61,6 +70,9 @@ RgGen.define_list_item_feature(:register_block, :protocol, :axi4lite) do
61
70
  output :arready, {
62
71
  name: 'o_arready', data_type: :logic, width: 1
63
72
  }
73
+ input :arid, {
74
+ name: 'i_arid', data_type: :logic, width: id_port_width
75
+ }
64
76
  input :araddr, {
65
77
  name: 'i_araddr', data_type: :logic, width: address_width
66
78
  }
@@ -73,6 +85,9 @@ RgGen.define_list_item_feature(:register_block, :protocol, :axi4lite) do
73
85
  input :rready, {
74
86
  name: 'i_rready', data_type: :logic, width: 1
75
87
  }
88
+ output :rid, {
89
+ name: 'o_rid', data_type: :logic, width: id_port_width
90
+ }
76
91
  output :rdata, {
77
92
  name: 'o_rdata', data_type: :logic, width: bus_width
78
93
  }
@@ -81,13 +96,13 @@ RgGen.define_list_item_feature(:register_block, :protocol, :axi4lite) do
81
96
  }
82
97
  interface :axi4lite_if, {
83
98
  name: 'axi4lite_if', interface_type: 'rggen_axi4lite_if',
84
- parameter_values: [address_width, bus_width],
99
+ parameter_values: [id_width, address_width, bus_width],
85
100
  variables: [
86
- 'awvalid', 'awready', 'awaddr', 'awprot',
101
+ 'awvalid', 'awready', 'awid', 'awaddr', 'awprot',
87
102
  'wvalid', 'wready', 'wdata', 'wstrb',
88
- 'bvalid', 'bready', 'bresp',
89
- 'arvalid', 'arready', 'araddr', 'arprot',
90
- 'rvalid', 'rready', 'rdata', 'rresp'
103
+ 'bvalid', 'bready', 'bid', 'bresp',
104
+ 'arvalid', 'arready', 'arid', 'araddr', 'arprot',
105
+ 'rvalid', 'rready', 'rid', 'rdata', 'rresp'
91
106
  ]
92
107
  }
93
108
  end
@@ -99,6 +114,7 @@ RgGen.define_list_item_feature(:register_block, :protocol, :axi4lite) do
99
114
  [
100
115
  [axi4lite_if.awvalid, awvalid],
101
116
  [awready, axi4lite_if.awready],
117
+ [axi4lite_if.awid, awid],
102
118
  [axi4lite_if.awaddr, awaddr],
103
119
  [axi4lite_if.awprot, awprot],
104
120
  [axi4lite_if.wvalid, wvalid],
@@ -107,17 +123,26 @@ RgGen.define_list_item_feature(:register_block, :protocol, :axi4lite) do
107
123
  [axi4lite_if.wstrb, wstrb],
108
124
  [bvalid, axi4lite_if.bvalid],
109
125
  [axi4lite_if.bready, bready],
126
+ [bid, axi4lite_if.bid],
110
127
  [bresp, axi4lite_if.bresp],
111
128
  [axi4lite_if.arvalid, arvalid],
112
129
  [arready, axi4lite_if.arready],
130
+ [axi4lite_if.arid, arid],
113
131
  [axi4lite_if.araddr, araddr],
114
132
  [axi4lite_if.arprot, arprot],
115
133
  [rvalid, axi4lite_if.rvalid],
116
134
  [axi4lite_if.rready, rready],
135
+ [rid, axi4lite_if.rid],
117
136
  [rdata, axi4lite_if.rdata],
118
137
  [rresp, axi4lite_if.rresp]
119
138
  ].each { |lhs, rhs| code << assign(lhs, rhs) << nl }
120
139
  end
121
140
  end
141
+
142
+ private
143
+
144
+ def id_port_width
145
+ "((#{id_width}>0)?#{id_width}:1)"
146
+ end
122
147
  end
123
148
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RgGen
4
4
  module SystemVerilog
5
- VERSION = '0.21.0'
5
+ VERSION = '0.21.1'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rggen-systemverilog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.21.0
4
+ version: 0.21.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Taichi Ishitani
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-22 00:00:00.000000000 Z
11
+ date: 2020-07-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: docile
@@ -177,5 +177,5 @@ requirements: []
177
177
  rubygems_version: 3.1.2
178
178
  signing_key:
179
179
  specification_version: 4
180
- summary: rggen-systemverilog-0.21.0
180
+ summary: rggen-systemverilog-0.21.1
181
181
  test_files: []