From 0275f979c8c2e136b1bed847fd1bc49f3e122a03 Mon Sep 17 00:00:00 2001 From: Gus Smith Date: Wed, 22 Jun 2022 11:01:43 -0700 Subject: [PATCH] Support using IDs as const values --- backends/verilog/verilog_backend.cc | 5 +++++ kernel/rtlil.h | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/backends/verilog/verilog_backend.cc b/backends/verilog/verilog_backend.cc index 28cbb4f4d..52871b881 100644 --- a/backends/verilog/verilog_backend.cc +++ b/backends/verilog/verilog_backend.cc @@ -188,6 +188,11 @@ bool is_reg_wire(RTLIL::SigSpec sig, std::string ®_name) void dump_const(std::ostream &f, const RTLIL::Const &data, int width = -1, int offset = 0, bool no_decimal = false, bool escape_comment = false) { + if (data.flags & RTLIL::CONST_FLAG_ID) { + f << stringf("%s", data.decode_string().c_str()); + return; + } + bool set_signed = (data.flags & RTLIL::CONST_FLAG_SIGNED) != 0; if (width < 0) width = data.bits.size() - offset; diff --git a/kernel/rtlil.h b/kernel/rtlil.h index 7a0b6b9c7..d34e63973 100644 --- a/kernel/rtlil.h +++ b/kernel/rtlil.h @@ -50,7 +50,8 @@ namespace RTLIL CONST_FLAG_NONE = 0, CONST_FLAG_STRING = 1, CONST_FLAG_SIGNED = 2, // only used for parameters - CONST_FLAG_REAL = 4 // only used for parameters + CONST_FLAG_REAL = 4, // only used for parameters + CONST_FLAG_ID = 5 }; struct Const;