from ..hdl import ast, ir, mem, xfrm
+__all__ = ["convert"]
+
+
class _Namer:
def __init__(self):
super().__init__()
port_id=port_id, port_kind=port_kind,
src=src(signal.src_loc))
if signal in self.driven:
- wire_next = self.rtlil.wire(width=signal.nbits, name=wire_curr + "$next",
+ wire_next = self.rtlil.wire(width=signal.nbits, name="$next$" + wire_curr,
src=src(signal.src_loc))
else:
wire_next = None
verilog_trigger_sync_emitted = False
# Register all signals driven in the current fragment. This must be done first, as it
- # affects further codegen; e.g. whether sig$next signals will be generated and used.
+ # affects further codegen; e.g. whether $next$sig signals will be generated and used.
for domain, signal in fragment.iter_drivers():
compiler_state.add_driven(signal, sync=domain is not None)
with module.process(name="$group_{}".format(group)) as process:
with process.case() as case:
- # For every signal in comb domain, assign \sig$next to the reset value.
- # For every signal in sync domains, assign \sig$next to the current
+ # For every signal in comb domain, assign $next$sig to the reset value.
+ # For every signal in sync domains, assign $next$sig to the current
# value (\sig).
for domain, signal in fragment.iter_drivers():
if signal not in group_signals:
sync.update(verilog_trigger, "1'0")
verilog_trigger_sync_emitted = True
- # For every signal in every domain, assign \sig to \sig$next. The sensitivity list,
+ # For every signal in every domain, assign \sig to $next$sig. The sensitivity list,
# however, differs between domains: for comb domains, it is `always`, for sync
# domains with sync reset, it is `posedge clk`, for sync domains with async reset
# it is `posedge clk or posedge rst`.