aboutsummaryrefslogtreecommitdiffstats
path: root/frontends/verific
diff options
context:
space:
mode:
authorMiodrag Milanovic <mmicko@gmail.com>2022-10-31 10:51:28 +0100
committerMiodrag Milanovic <mmicko@gmail.com>2022-10-31 10:51:28 +0100
commit6fb80bce1577e298fb25e387beb1ff5fb6c7c53e (patch)
tree4a4949833704ee7a31917a0971ba768f1f1d9d89 /frontends/verific
parente702f2894a1089ee50ede6edee1b6999369a2486 (diff)
downloadyosys-6fb80bce1577e298fb25e387beb1ff5fb6c7c53e.tar.gz
yosys-6fb80bce1577e298fb25e387beb1ff5fb6c7c53e.tar.bz2
yosys-6fb80bce1577e298fb25e387beb1ff5fb6c7c53e.zip
Enable importing blackbox modules only
Diffstat (limited to 'frontends/verific')
-rw-r--r--frontends/verific/verific.cc34
1 files changed, 33 insertions, 1 deletions
diff --git a/frontends/verific/verific.cc b/frontends/verific/verific.cc
index 0f4eceba4..fb5fc0c6c 100644
--- a/frontends/verific/verific.cc
+++ b/frontends/verific/verific.cc
@@ -59,6 +59,7 @@ USING_YOSYS_NAMESPACE
#ifdef VERIFIC_LIBERTY_SUPPORT
#include "synlib_file.h"
+#include "SynlibGroup.h"
#endif
#include "VerificStream.h"
@@ -2439,6 +2440,9 @@ struct VerificPass : public Pass {
log("\n");
log("Load the specified Liberty files into Verific.\n");
log("\n");
+ log(" -lib\n");
+ log(" only create empty blackbox modules\n");
+ log("\n");
log("\n");
#endif
log(" verific {-f|-F} [-vlog95|-vlog2k|-sv2005|-sv2009|\n");
@@ -3020,11 +3024,36 @@ struct VerificPass : public Pass {
#endif
#ifdef VERIFIC_LIBERTY_SUPPORT
if (GetSize(args) > argidx && args[argidx] == "-liberty") {
- argidx++;
+ bool flag_lib = false;
+ for (argidx++; argidx < GetSize(args); argidx++) {
+ if (args[argidx] == "-lib") {
+ flag_lib = true;
+ continue;
+ }
+ if (args[argidx].compare(0, 1, "-") == 0) {
+ cmd_error(args, argidx, "unknown option");
+ goto check_error;
+ }
+ break;
+ }
+
while (argidx < GetSize(args)) {
std::string filename = frontent_rewrite(args, argidx, tmp_files);
if (!synlib_file::Read(filename.c_str(), is_work_set ? work.c_str() : nullptr))
log_cmd_error("Reading `%s' in LIBERTY mode failed.\n", filename.c_str());
+ SynlibLibrary *lib = synlib_file::GetLastLibraryAnalyzed();
+ if (lib && flag_lib) {
+ MapIter mi ;
+ Verific::Cell *c ;
+ FOREACH_CELL_OF_LIBRARY(lib->GetLibrary(),mi,c) {
+ MapIter ni ;
+ Netlist *nl;
+ FOREACH_NETLIST_OF_CELL(c, ni, nl) {
+ if (nl)
+ nl->MakeBlackBox();
+ }
+ }
+ }
}
goto check_error;
}
@@ -3461,6 +3490,9 @@ struct ReadPass : public Pass {
log("\n");
log("Load the specified Liberty files.\n");
log("\n");
+ log(" -lib\n");
+ log(" only create empty blackbox modules\n");
+ log("\n");
log("\n");
log(" read {-f|-F} <command-file>\n");
log("\n");