google / google/xls

Named sends and receives for IOConstraints

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

Description

Codegen supports scheduling constraints between (channel_name, send/recv) pairs. If there is only one send or receive to a channel (which is currently a requirement for codegen), this makes sense. However, for II>1, you could have multiple sends and receives to the same channel and want to independently constraint them. There should be a mechanism to name send/recvs (or tokens?) and introduce scheduling constraints between the named entities.

Example: a proc is talking to a memory with `request`, `read_response`, and `write_completion` channels. You want to have a constraint between a write request and write completion, and a separate constraint between a read request and read response, but both requests happen on the same channel so you end up overconstrained (and, if the requests aren't mutually exclusive, potentially infeasible).

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.