mirror of
https://github.com/Silicon1602/srdl2sv.git
synced 2024-12-22 15:08:39 +00:00
Fix bug in external read-interface
In dc37c879
, some properties got saved in self.properties of a
Component. In that commit, self.properties['sw_rd'] never got set.
For that reason, external registers with a read-interface were broken.
This commit is contained in:
parent
aa770073c4
commit
ace4238ccf
@ -270,7 +270,7 @@ class AddrMap(Component):
|
|||||||
|
|
||||||
return self.process_yaml(
|
return self.process_yaml(
|
||||||
self.widget_templ_dict['module_instantiation'],
|
self.widget_templ_dict['module_instantiation'],
|
||||||
{'bus_width': self.regwidth}
|
{'bus_width': self.regwidth-1}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -72,13 +72,12 @@ class Field(Component):
|
|||||||
# Define software access (if applicable)
|
# Define software access (if applicable)
|
||||||
access_rtl['sw_write'] = ([], False)
|
access_rtl['sw_write'] = ([], False)
|
||||||
|
|
||||||
if obj.get_property('sw') in (AccessType.rw, AccessType.w):
|
if self.properties['sw_wr']:
|
||||||
# Append to list of registers that can write
|
# Append to list of registers that can write
|
||||||
self.writable_by.add(path_wo_field)
|
self.writable_by.add(path_wo_field)
|
||||||
|
|
||||||
# This will need a wire to indicate that a write is taking place
|
# This will need a wire to indicate that a write is taking place
|
||||||
self.properties['sw_wr_wire'] = True
|
self.properties['sw_wr_wire'] = True
|
||||||
self.properties['sw_wr'] = True
|
|
||||||
|
|
||||||
swwe = obj.get_property('swwe')
|
swwe = obj.get_property('swwe')
|
||||||
swwel = obj.get_property('swwel')
|
swwel = obj.get_property('swwel')
|
||||||
@ -1232,6 +1231,10 @@ class Field(Component):
|
|||||||
self.path_underscored_vec = []
|
self.path_underscored_vec = []
|
||||||
self.path_wo_field_vec = []
|
self.path_wo_field_vec = []
|
||||||
|
|
||||||
|
# Set some properties that always must be known
|
||||||
|
self.properties['sw_wr'] = obj.get_property('sw') in (AccessType.rw, AccessType.w)
|
||||||
|
self.properties['sw_rd'] = obj.get_property('sw') in (AccessType.rw, AccessType.r)
|
||||||
|
|
||||||
# Save dimensions of unpacked dimension
|
# Save dimensions of unpacked dimension
|
||||||
self.array_dimensions = array_dimensions
|
self.array_dimensions = array_dimensions
|
||||||
self.total_array_dimensions = array_dimensions
|
self.total_array_dimensions = array_dimensions
|
||||||
|
@ -420,9 +420,9 @@ external_rd_assignments:
|
|||||||
- name: '{path}_ext_r_data'
|
- name: '{path}_ext_r_data'
|
||||||
signal_type: '{field_type}'
|
signal_type: '{field_type}'
|
||||||
- name: '{path}_ext_r_ack'
|
- name: '{path}_ext_r_ack'
|
||||||
signal_type: 'logic'
|
signal_type: ''
|
||||||
- name: '{path}_ext_r_err'
|
- name: '{path}_ext_r_err'
|
||||||
signal_type: 'logic'
|
signal_type: ''
|
||||||
output_ports:
|
output_ports:
|
||||||
- name: '{path}_ext_r_req'
|
- name: '{path}_ext_r_req'
|
||||||
signal_type: 'logic'
|
signal_type: 'logic'
|
||||||
@ -461,9 +461,9 @@ external_wr_assignments:
|
|||||||
signal_type: 'logic [{width}:0]'
|
signal_type: 'logic [{width}:0]'
|
||||||
input_ports:
|
input_ports:
|
||||||
- name: '{path}_ext_w_ack'
|
- name: '{path}_ext_w_ack'
|
||||||
signal_type: 'logic'
|
signal_type: ''
|
||||||
- name: '{path}_ext_w_err'
|
- name: '{path}_ext_w_err'
|
||||||
signal_type: 'logic'
|
signal_type: ''
|
||||||
external_wr_mask_segment:
|
external_wr_mask_segment:
|
||||||
rtl: |-
|
rtl: |-
|
||||||
{{{width}{{b2r.byte_en[{idx}]}}}}
|
{{{width}{{b2r.byte_en[{idx}]}}}}
|
||||||
|
@ -56,7 +56,7 @@ module_instantiation:
|
|||||||
- name: 'HTRANS'
|
- name: 'HTRANS'
|
||||||
signal_type: '[1:0]'
|
signal_type: '[1:0]'
|
||||||
- name: 'HWDATA'
|
- name: 'HWDATA'
|
||||||
signal_type: '[{bus_width}-1:0]'
|
signal_type: '[{bus_width}:0]'
|
||||||
- name: 'HSEL'
|
- name: 'HSEL'
|
||||||
signal_type: ''
|
signal_type: ''
|
||||||
output_ports:
|
output_ports:
|
||||||
@ -65,4 +65,4 @@ module_instantiation:
|
|||||||
- name: 'HRESP'
|
- name: 'HRESP'
|
||||||
signal_type: ''
|
signal_type: ''
|
||||||
- name: 'HRDATA'
|
- name: 'HRDATA'
|
||||||
signal_type: '[{bus_width}-1:0]'
|
signal_type: '[{bus_width}:0]'
|
||||||
|
Loading…
Reference in New Issue
Block a user