aboutsummaryrefslogtreecommitdiffstats
path: root/backends/smt2
diff options
context:
space:
mode:
authorMarcelina Koƛcielnicka <mwk@0x04.net>2021-05-27 23:43:25 +0200
committerMarcelina Koƛcielnicka <mwk@0x04.net>2021-05-28 00:40:56 +0200
commitcbf6b719fe85ce8544f9bb0796711f3f45638862 (patch)
treee5123705ba397f310a10c133d02fd4360c42800d /backends/smt2
parent055ba748bcf8c77bff15bda0de49c0b4b3722bba (diff)
downloadyosys-cbf6b719fe85ce8544f9bb0796711f3f45638862.tar.gz
yosys-cbf6b719fe85ce8544f9bb0796711f3f45638862.tar.bz2
yosys-cbf6b719fe85ce8544f9bb0796711f3f45638862.zip
Make a few passes auto-call Mem::narrow instead of rejecting wide ports.
This essentially adds wide port support for free in passes that don't have a usefully better way of handling wide ports than just breaking them up to narrow ports, avoiding "please run memory_narrow" annoyance.
Diffstat (limited to 'backends/smt2')
-rw-r--r--backends/smt2/smt2.cc7
1 files changed, 1 insertions, 6 deletions
diff --git a/backends/smt2/smt2.cc b/backends/smt2/smt2.cc
index 4dee0d4fb..7f6779c7d 100644
--- a/backends/smt2/smt2.cc
+++ b/backends/smt2/smt2.cc
@@ -124,6 +124,7 @@ struct Smt2Worker
memories = Mem::get_all_memories(module);
for (auto &mem : memories)
{
+ mem.narrow();
mem_dict[mem.memid] = &mem;
for (auto &port : mem.wr_ports)
{
@@ -715,12 +716,6 @@ struct Smt2Worker
has_sync_wr = true;
else
has_async_wr = true;
- if (port.wide_log2)
- log_error("Memory %s.%s has wide write ports. This is not supported by \"write_smt2\". Use memory_narrow to convert them first.\n", log_id(cell), log_id(module));
- }
- for (auto &port : mem->rd_ports) {
- if (port.wide_log2)
- log_error("Memory %s.%s has wide read ports. This is not supported by \"write_smt2\". Use memory_narrow to convert them first.\n", log_id(cell), log_id(module));
}
if (has_async_wr && has_sync_wr)
log_error("Memory %s.%s has mixed clocked/nonclocked write ports. This is not supported by \"write_smt2\".\n", log_id(cell), log_id(module));