Add user parameters to regblock package. #112
This commit is contained in:
@@ -49,6 +49,23 @@ class Hwif:
|
||||
return self.exp.ds.top_node
|
||||
|
||||
|
||||
def get_extra_package_params(self) -> str:
|
||||
lines = []
|
||||
|
||||
for param in self.top_node.inst.parameters:
|
||||
value = param.get_value()
|
||||
if isinstance(value, int):
|
||||
lines.append(
|
||||
f"localparam {param.name} = {SVInt(value)};"
|
||||
)
|
||||
elif isinstance(value, str):
|
||||
lines.append(
|
||||
f"localparam {param.name} = {value};"
|
||||
)
|
||||
|
||||
return "\n".join(lines)
|
||||
|
||||
|
||||
def get_package_contents(self) -> str:
|
||||
"""
|
||||
If this hwif requires a package, generate the string
|
||||
|
||||
@@ -7,6 +7,8 @@ package {{ds.package_name}};
|
||||
localparam {{ds.module_name.upper()}}_MIN_ADDR_WIDTH = {{ds.addr_width}};
|
||||
localparam {{ds.module_name.upper()}}_SIZE = {{SVInt(ds.top_node.size)}};
|
||||
|
||||
{{hwif.get_extra_package_params()|indent}}
|
||||
|
||||
{{hwif.get_package_contents()|indent}}
|
||||
endpackage
|
||||
{# (eof newline anchor) #}
|
||||
|
||||
Reference in New Issue
Block a user