aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/mem.cc
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 /kernel/mem.cc
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 'kernel/mem.cc')
-rw-r--r--kernel/mem.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/kernel/mem.cc b/kernel/mem.cc
index 021e1991e..848dc9f3a 100644
--- a/kernel/mem.cc
+++ b/kernel/mem.cc
@@ -691,6 +691,9 @@ Cell *Mem::extract_rdff(int idx, FfInitVals *initvals) {
}
void Mem::narrow() {
+ // NOTE: several passes depend on this function not modifying
+ // the design at all until (and unless) emit() is called.
+ // Be careful to preserve this.
std::vector<MemRd> new_rd_ports;
std::vector<MemWr> new_wr_ports;
std::vector<std::pair<int, int>> new_rd_map;