Fix decoder generation for external nested addressable components and add max-decode-depth parameter (#12)
* Initial plan * Fix bus decoder to skip external nested components Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com> * Optimize external children check using generator expressions Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com> * Add max-decode-depth CLI argument Added --max-decode-depth argument that: - Is added to CLI arguments in __peakrdl__.py - Piped into design state via ExporterKwargs and DesignStateKwargs - Used to control max depth in listener.py - All 66 tests pass including new test for the parameter Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com>
This commit is contained in:
@@ -27,6 +27,7 @@ class ExporterKwargs(TypedDict, total=False):
|
||||
address_width: int
|
||||
cpuif_unroll: bool
|
||||
reuse_hwif_typedefs: bool
|
||||
max_decode_depth: int
|
||||
|
||||
|
||||
if TYPE_CHECKING:
|
||||
@@ -84,6 +85,9 @@ class BusDecoderExporter:
|
||||
cpuif_unroll: bool
|
||||
Unroll arrayed addressable nodes into separate instances in the CPU
|
||||
interface. By default, arrayed nodes are kept as arrays.
|
||||
max_decode_depth: int
|
||||
Maximum depth for address decoder to descend into nested addressable
|
||||
components. By default, the decoder descends 1 level deep.
|
||||
"""
|
||||
# If it is the root node, skip to top addrmap
|
||||
if isinstance(node, RootNode):
|
||||
|
||||
Reference in New Issue
Block a user