google / google/xls

[enhancement] Add user-controlled "target throughput"

Open
#2,071 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
C++
Stars
1.9k
Forks
283
Avg merge
2d 10h
Merged PRs (30d)
135

Description

### What's hard to do? (limit 100 words)

Automatically reuse resources between pipeline stages (with appropriate guards) if the user wants to design a target that does not need to achieve full throughput. For example, if the user wants an II=2 circuit (best-case throughput = worst-case throughput = 2), we should be able to share resources (e.g., pipeline registers) between adjacent stages.

### Current best alternative workaround (limit 100 words)

The user can implement a manual finite-state machine, overriding XLS's normal pipelining to various degrees in order to force more sharing.

### Your view of the "best case XLS enhancement" (limit 100 words)

Add a `--target_throughput` flag to XLS scheduling, much like the current `--worst_case_throughput` flag. Once this is in place, we can start adding logic allowing adjacent stages to share common resources.

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.