Skip to content

Commit 60935b1

Browse files
committed
Add option to show field output to dump command. #30
1 parent b862426 commit 60935b1

File tree

2 files changed

+19
-4
lines changed

2 files changed

+19
-4
lines changed

src/peakrdl/__about__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "0.8.0"
1+
__version__ = "0.9.0"

src/peakrdl/cmd/dump.py

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import math
33

44
from systemrdl import RDLListener, RDLWalker
5-
from systemrdl.node import AddrmapNode, RegNode
5+
from systemrdl.node import AddrmapNode, RegNode, FieldNode
66

77
from ..subcommand import ExporterSubcommand
88

@@ -11,9 +11,10 @@
1111

1212

1313
class DumpListener(RDLListener):
14-
def __init__(self, hex_digits:int, unroll: bool) -> None:
14+
def __init__(self, hex_digits: int, unroll: bool, show_fields: bool) -> None:
1515
self.hex_digits = hex_digits
1616
self.unroll = unroll
17+
self.show_fields = show_fields
1718

1819
def enter_Reg(self, node: RegNode) -> None:
1920
if self.unroll:
@@ -28,6 +29,14 @@ def enter_Reg(self, node: RegNode) -> None:
2829
node.get_path(empty_array_suffix="[{dim:d}]")
2930
)
3031

32+
def enter_Field(self, node: FieldNode) -> None:
33+
if not self.show_fields:
34+
return
35+
36+
print(f"\t[{node.msb}:{node.lsb}] {node.inst_name}")
37+
38+
39+
3140

3241
class Dump(ExporterSubcommand):
3342
name = "dump"
@@ -42,10 +51,16 @@ def add_exporter_arguments(self, arg_group: 'argparse._ActionsContainer') -> Non
4251
action="store_true",
4352
help="Unroll arrays"
4453
)
54+
arg_group.add_argument(
55+
"-F", "--fields",
56+
default=False,
57+
action="store_true",
58+
help="Show fields"
59+
)
4560

4661

4762
def do_export(self, top_node: AddrmapNode, options: 'argparse.Namespace') -> None:
4863
hex_digits = math.ceil(top_node.total_size.bit_length() / 4)
4964
walker = RDLWalker(unroll=options.unroll)
50-
listener = DumpListener(hex_digits, options.unroll)
65+
listener = DumpListener(hex_digits, options.unroll, options.fields)
5166
walker.walk(top_node, listener)

0 commit comments

Comments
 (0)