diff --git a/litex/gen/fhdl/structure.py b/litex/gen/fhdl/structure.py index 959b6ce99..60bd2b8bc 100644 --- a/litex/gen/fhdl/structure.py +++ b/litex/gen/fhdl/structure.py @@ -718,3 +718,8 @@ class _Fragment: self.specials |= other.specials self.clock_domains += other.clock_domains return self + +class Display: + def __init__(self, s, *args): + self.s = s + self.args = args diff --git a/litex/gen/fhdl/verilog.py b/litex/gen/fhdl/verilog.py index 78a0aa88b..4a647dd1b 100644 --- a/litex/gen/fhdl/verilog.py +++ b/litex/gen/fhdl/verilog.py @@ -118,6 +118,15 @@ def _printexpr(ns, node): def _printnode(ns, at, level, node): if node is None: return "" + elif isinstance(node, Display): + s = "\"" + node.s + "\\r\"" + for arg in node.args: + s += ", " + if isinstance(arg, Signal): + s += ns.get_name(arg) + else: + s += str(arg) + return "\t"*level + "$display(" + s + ");\n" elif isinstance(node, _Assign): if at == _AT_BLOCKING: assignment = " = "