Fix {C} substitution
authorEddie Hung <eddie@fpgeh.com>
Tue, 7 Jan 2020 21:08:59 +0000 (13:08 -0800)
committerEddie Hung <eddie@fpgeh.com>
Wed, 8 Jan 2020 18:52:08 +0000 (10:52 -0800)
passes/techmap/abc9.cc

index 486b9313b0479db85fa05a2e90f5ab443559060d..d03c24fdbd5f272d79b46b4247218bde63107241 100644 (file)
@@ -292,8 +292,11 @@ void abc9_module(RTLIL::Design *design, RTLIL::Module *module, std::string scrip
        for (size_t pos = abc9_script.find("{W}"); pos != std::string::npos; pos = abc9_script.find("{W}", pos))
                abc9_script = abc9_script.substr(0, pos) + wire_delay + abc9_script.substr(pos+3);
 
+       std::string C;
+       if (design->scratchpad.count("abc9.if.C"))
+               C = "-C " + design->scratchpad_get_string("abc9.if.C");
        for (size_t pos = abc9_script.find("{C}"); pos != std::string::npos; pos = abc9_script.find("{C}", pos))
-               abc9_script = abc9_script.substr(0, pos) + design->scratchpad_get_string("abc9.if.C", "") + abc9_script.substr(pos+3);
+               abc9_script = abc9_script.substr(0, pos) + C + abc9_script.substr(pos+3);
 
        if (nomfs)
                for (size_t pos = abc9_script.find("&mfs"); pos != std::string::npos; pos = abc9_script.find("&mfs", pos))