diff options
author | Eddie Hung <eddie@fpgeh.com> | 2019-06-26 14:48:35 -0700 |
---|---|---|
committer | Eddie Hung <eddie@fpgeh.com> | 2019-06-26 14:48:35 -0700 |
commit | 812469aaa351792a5215ed871de59b544934f5e5 (patch) | |
tree | 4b03037dcf606b19f908e3ec6fce616fe13a2eee /backends | |
parent | c762be593042ed5d812a3a37d494a82565cbaad0 (diff) | |
parent | b2b5cf78e21def63c54c080217d77afefba8e4c7 (diff) | |
download | yosys-812469aaa351792a5215ed871de59b544934f5e5.tar.gz yosys-812469aaa351792a5215ed871de59b544934f5e5.tar.bz2 yosys-812469aaa351792a5215ed871de59b544934f5e5.zip |
Merge remote-tracking branch 'origin/eddie/fix1132' into xc7mux
Diffstat (limited to 'backends')
-rw-r--r-- | backends/btor/btor.cc | 30 | ||||
-rw-r--r-- | backends/smt2/smtio.py | 5 |
2 files changed, 31 insertions, 4 deletions
diff --git a/backends/btor/btor.cc b/backends/btor/btor.cc index 511a11942..a507b120b 100644 --- a/backends/btor/btor.cc +++ b/backends/btor/btor.cc @@ -17,6 +17,11 @@ * */ +// [[CITE]] Btor2 , BtorMC and Boolector 3.0 +// Aina Niemetz, Mathias Preiner, Clifford Wolf, Armin Biere +// Computer Aided Verification - 30th International Conference, CAV 2018 +// https://cs.stanford.edu/people/niemetz/publication/2018/niemetzpreinerwolfbiere-cav18/ + #include "kernel/rtlil.h" #include "kernel/register.h" #include "kernel/sigtools.h" @@ -875,9 +880,28 @@ struct BtorWorker else { if (bit_cell.count(bit) == 0) - log_error("No driver for signal bit %s.\n", log_signal(bit)); - export_cell(bit_cell.at(bit)); - log_assert(bit_nid.count(bit)); + { + SigSpec s = bit; + + while (i+GetSize(s) < GetSize(sig) && sig[i+GetSize(s)].wire != nullptr && + bit_cell.count(sig[i+GetSize(s)]) == 0) + s.append(sig[i+GetSize(s)]); + + log_warning("No driver for signal %s.\n", log_signal(s)); + + int sid = get_bv_sid(GetSize(s)); + int nid = next_nid++; + btorf("%d input %d %s\n", nid, sid); + nid_width[nid] = GetSize(s); + + i += GetSize(s)-1; + continue; + } + else + { + export_cell(bit_cell.at(bit)); + log_assert(bit_nid.count(bit)); + } } } diff --git a/backends/smt2/smtio.py b/backends/smt2/smtio.py index cea0fc56c..ae7968a1b 100644 --- a/backends/smt2/smtio.py +++ b/backends/smt2/smtio.py @@ -1043,7 +1043,10 @@ class MkVcd: scope = scope[:-1] while uipath[:-1] != scope: - print("$scope module %s $end" % uipath[len(scope)], file=self.f) + scopename = uipath[len(scope)] + if scopename.startswith("$"): + scopename = "\\" + scopename + print("$scope module %s $end" % scopename, file=self.f) scope.append(uipath[len(scope)]) if path in self.clocks and self.clocks[path][1] == "event": |