google / google/xls

Ability to synchronize proc runtime with external proc or proc-like C++ model

Open
#4,228 0 comments 0 reactions 0 assignees View on GitHub
enhancement jit testing
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)

When experimenting with using the `TickUntilOutput` API, I realized that we have no way to coordinate with external blocks that also need to "tick" alongside the proc runtime (e.g. the external block(s) might feed external inputs that need to respond to outputs of the proc). I think similar applies to `TickUntilBlocked`.

This could be something like the [`AbstractProcMemoryModel`](https://github.com/google/xls/blob/1c71b4b868c60fa78cfc4c671756dcfdc71062a2/xls/tools/memory_models.cc#L67) or another proc runtime.

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

You need to `Tick` the runtime manually so that you can also tick the external C++ so the two stay synchronized and feed each other inputs/outputs.

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

It would be nice to have a way to either inject callbacks around the proc runtime tick in these APIs, or @grebe proposed a mechanism to register external objects with a specific interface that could participate in the proc network advancement.

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.