google / google/xls

Workflow to analyze and optimize individual stages

Open
#658 2 comments 0 reactions 0 assignees View on GitHub
delay model long-term-enhancement
Dominant language
C++
Stars
1.9k
Forks
283
Avg merge
2d 10h
Merged PRs (30d)
135

Description

Today @meheffernan and I talked about ways to optimize the critical path and number of stages. One capability that seemed useful was extracting a pipeline stage, running it through an implementation flow, and iterating on the contents of the stage.

One useful way to use this capability is to greedily fill stages until they no longer meet timing in an attempt to find the minimum number of stages that meet timing. This isn't perfect as it ignores fanout effects, but is useful to answer questions about how many stages are required to meet timing.

Another useful way to use this capability is to take a scheduled design, extract a stage that is failing timing, and prune things from the stage until it meets timing. This could be fed back to the scheduler (various ways to do this seem reasonable, e.g. a delay model that annotates delays on certain nodes and falls back on another delay model if unannotated, or timing constraints that vary per-stage to account for delay model error, or "fence" ops). The process of iteratively pruning can also be used to find places where the delay model needs to be improved.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.