3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-11-23 14:11:28 +00:00

cellhelp.py: Unify manual signature handling

Both files strip it, but previously the exact check differed.  It is also now safer, checking the length before trying to access elements by index.
This commit is contained in:
Krystine Sherwin 2025-11-21 12:29:44 +13:00
parent bb8ef02e85
commit fc88002266
No known key found for this signature in database

View file

@ -38,9 +38,6 @@ class SimHelper:
return val return val
def simcells_reparse(cell: SimHelper): def simcells_reparse(cell: SimHelper):
# cut manual signature
cell.desc = cell.desc[3:]
# code-block truth table # code-block truth table
new_desc = [] new_desc = []
indent = "" indent = ""
@ -58,6 +55,7 @@ def simcells_reparse(cell: SimHelper):
simHelper = SimHelper() simHelper = SimHelper()
for line in fileinput.input(): for line in fileinput.input():
short_filename = Path(fileinput.filename()).name
line = line.rstrip() line = line.rstrip()
# special comments # special comments
if line.startswith("//-"): if line.startswith("//-"):
@ -71,7 +69,6 @@ for line in fileinput.input():
clean_line = line[7:].replace("\\", "").replace(";", "") clean_line = line[7:].replace("\\", "").replace(";", "")
simHelper.name, simHelper.ports = clean_line.split(maxsplit=1) simHelper.name, simHelper.ports = clean_line.split(maxsplit=1)
simHelper.code = [] simHelper.code = []
short_filename = Path(fileinput.filename()).name
simHelper.source = f'{short_filename}:{fileinput.filelineno()}' simHelper.source = f'{short_filename}:{fileinput.filelineno()}'
elif not line.startswith("endmodule"): elif not line.startswith("endmodule"):
line = " " + line line = " " + line
@ -81,14 +78,14 @@ for line in fileinput.input():
# no module definition, ignore line # no module definition, ignore line
pass pass
if line.startswith("endmodule"): if line.startswith("endmodule"):
short_filename = Path(fileinput.filename()).name if simHelper.ver == "1":
if simHelper.ver == "1" and short_filename == "simcells.v": # cut manual signature
# default simcells parsing if len(simHelper.desc) > 3 and simHelper.desc[0] == "" and simHelper.desc[2] == "" and simHelper.desc[1].startswith(" "):
simcells_reparse(simHelper) simHelper.desc = simHelper.desc[3:]
# check help # default simcells parsing
if simHelper.desc and simHelper.ver == "1" and short_filename == "simlib.v" and simHelper.desc[1].startswith(' '): if short_filename == "simcells.v":
simHelper.desc.pop(1) simcells_reparse(simHelper)
# check group # check group
assert simHelper.group, f"techlibs/common/{simHelper.source}: {simHelper.name} cell missing group" assert simHelper.group, f"techlibs/common/{simHelper.source}: {simHelper.name} cell missing group"