The Live Graph
Live Graph (lgraph) is a graph optimized for live synthesis (Live Synthesize Graph or
lgraph for short). By live, we mean that small changes in the design should have results
in few seconds. The goal is that any code change can have its synthesis and simulation
setup ready under 30 seconds with a goal of under 4 seconds in most cases.
Notice that this is a different goal from having an incremental synthesis where many
edges are added and removed. The typical graph reconstruction is on the order of
thousands of nodes.
lgraph is optimized for synthesis, allowing forward and backward traversals in the
nodes (bidirectional graph).
Once the graph is built, some optimization can be applied to the input design, including
Dead Code Elimination (DCE), Common Sub-expression Elimination (CSE),
Copy Propagation, Fluid flop insertion and so forth.