mirror of
https://github.com/verilator/verilator.git
synced 2026-10-06 01:54:01 +02:00
Improve automatic selection of logic for Dfg synthesis (#6370)
Reduce set of synthesized logic to be more in-line with what Dfg used to handle before + drivers of circular variables. This was always the intention but the previous algorithm was both a bit too eager, and also missed some circular variables. We can add back more heuristics based on performance measurements for non-circular logic later.
This commit is contained in:
+7
-1
@@ -405,11 +405,17 @@ static void dumpDotVertex(std::ostream& os, const DfgVertex& vtx) {
|
||||
str = VString::quoteBackslash(str);
|
||||
str = VString::quoteAny(str, '"', '\\');
|
||||
str = VString::replaceSubstr(str, "\n", "\\l");
|
||||
const char* const colorp = !logicp->selectedForSynthesis() ? "#d0d0ff" // Pale Blue
|
||||
: logicp->nonSynthesizable() ? "#ffd0d0" // Pale Red
|
||||
: logicp->reverted() ? "#faffd0" // Pale Yellow
|
||||
: "#d0ffd0"; // Pale Green
|
||||
|
||||
os << " [label=\"";
|
||||
os << str;
|
||||
os << "\\n" << cvtToHex(&vtx);
|
||||
os << "\"\n";
|
||||
os << ", shape=box, style=\"rounded,filled\", fillcolor=cornsilk, nojustify=true";
|
||||
os << ", shape=box, style=\"rounded,filled\", nojustify=true";
|
||||
os << ", fillcolor=\"" << colorp << "\"";
|
||||
os << "]\n";
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user