Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FFI: Implement simulator-based quickcheck and tests #1400

Open
hzeller opened this issue May 8, 2024 · 0 comments
Open

FFI: Implement simulator-based quickcheck and tests #1400

hzeller opened this issue May 8, 2024 · 0 comments
Labels
ffi "Foreign Function" Interfacing (with SystemVerilog) long-term-enhancement Issues that are sensible enhancements but XLS devs expect may not be addressed in the near-term

Comments

@hzeller
Copy link
Member

hzeller commented May 8, 2024

To use FFI functions, it is crucial that the DSLX implementation matches the external implementation.

Within DSLX, we'd use [#quickcheck] or [#test] functions to test expectations of functional behavior.

The external implementations are not XLS, so can't be simulated using the JIT or interpreter. But there are a simulators for Verilog available which we can be utilize to provide testing for these. Generate code or some in-memory JIT for these Verilog modules (should be pluggable; possibly one of Verilator, Yosys cxxrtl, iverilog, ...) and then wire them up to be able to interface with our XLS interpreter/JIT calling into these simulated implementations to provide #[test] and #[quickcheck] functionality.

@hzeller hzeller added long-term-enhancement Issues that are sensible enhancements but XLS devs expect may not be addressed in the near-term ffi "Foreign Function" Interfacing (with SystemVerilog) labels May 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ffi "Foreign Function" Interfacing (with SystemVerilog) long-term-enhancement Issues that are sensible enhancements but XLS devs expect may not be addressed in the near-term
Projects
None yet
Development

No branches or pull requests

1 participant