Add Addressmap block size to generated package (#134)
* add map size as a localparam in rdl map package * rename from _SIZE -> _BYTES_SIZE * fix names on new test & localparam * wrap map size in SVInt
This commit is contained in:
committed by
GitHub
parent
aba2af17af
commit
28ed82129f
@@ -20,6 +20,7 @@ from .write_buffering import WriteBuffering
|
|||||||
from .read_buffering import ReadBuffering
|
from .read_buffering import ReadBuffering
|
||||||
from .external_acks import ExternalWriteAckGenerator, ExternalReadAckGenerator
|
from .external_acks import ExternalWriteAckGenerator, ExternalReadAckGenerator
|
||||||
from .parity import ParityErrorReduceGenerator
|
from .parity import ParityErrorReduceGenerator
|
||||||
|
from .sv_int import SVInt
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from systemrdl.node import SignalNode
|
from systemrdl.node import SignalNode
|
||||||
@@ -179,6 +180,7 @@ class RegblockExporter:
|
|||||||
"get_always_ff_event": self.dereferencer.get_always_ff_event,
|
"get_always_ff_event": self.dereferencer.get_always_ff_event,
|
||||||
"ds": self.ds,
|
"ds": self.ds,
|
||||||
"kwf": kwf,
|
"kwf": kwf,
|
||||||
|
"SVInt" : SVInt,
|
||||||
}
|
}
|
||||||
|
|
||||||
# Write out design
|
# Write out design
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ package {{ds.package_name}};
|
|||||||
|
|
||||||
localparam {{ds.module_name.upper()}}_DATA_WIDTH = {{ds.cpuif_data_width}};
|
localparam {{ds.module_name.upper()}}_DATA_WIDTH = {{ds.cpuif_data_width}};
|
||||||
localparam {{ds.module_name.upper()}}_MIN_ADDR_WIDTH = {{ds.addr_width}};
|
localparam {{ds.module_name.upper()}}_MIN_ADDR_WIDTH = {{ds.addr_width}};
|
||||||
|
localparam {{ds.module_name.upper()}}_SIZE = {{SVInt(ds.top_node.size)}};
|
||||||
|
|
||||||
{{hwif.get_package_contents()|indent}}
|
{{hwif.get_package_contents()|indent}}
|
||||||
endpackage
|
endpackage
|
||||||
|
|||||||
0
tests/test_map_size/__init__.py
Normal file
0
tests/test_map_size/__init__.py
Normal file
5
tests/test_map_size/regblock.rdl
Normal file
5
tests/test_map_size/regblock.rdl
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
addrmap top {
|
||||||
|
reg {
|
||||||
|
field {} f1[32] = 0;
|
||||||
|
} my_reg;
|
||||||
|
};
|
||||||
12
tests/test_map_size/tb_template.sv
Normal file
12
tests/test_map_size/tb_template.sv
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{% extends "lib/tb_base.sv" %}
|
||||||
|
|
||||||
|
{% block seq %}
|
||||||
|
{% sv_line_anchor %}
|
||||||
|
##1;
|
||||||
|
cb.rst <= '0;
|
||||||
|
##1;
|
||||||
|
|
||||||
|
// check block size
|
||||||
|
assert(regblock_pkg::REGBLOCK_SIZE == {{exporter.ds.top_node.size}});
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
5
tests/test_map_size/testcase.py
Normal file
5
tests/test_map_size/testcase.py
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
from ..lib.sim_testcase import SimTestCase
|
||||||
|
|
||||||
|
class Test(SimTestCase):
|
||||||
|
def test_dut(self):
|
||||||
|
self.run_test()
|
||||||
Reference in New Issue
Block a user