This PR introduces new features to the RTL generation flow (handshake -> hw -> RTL) by supporting resource sharing circuit. This PR adds handling to the handshake.sharing_wrapper operation (a handshake module that manages access to the shared operation) introduced in #77.
This PR depends on the changes in #96 (floating-point arithmetic units in the experimental backend).
Changes:
HandshakeToHW.cpp: adding hw attributes of sharing wrapper to the corresponding hw op.
sharing-wrapper-generator: RTL generator binary for sharing-wrapper.
rtl-config.json: rules for calling the sharing-wrapper-generator.
vhdl/support/sharing_support.vhd: dependency modules of the sharing-wrapper (implementation for priority encoder, arbiter, branch, mux, etc).
The following bash script can be used to test the circuit generation flow with resource sharing:
This PR introduces new features to the RTL generation flow (handshake -> hw -> RTL) by supporting resource sharing circuit. This PR adds handling to the
handshake.sharing_wrapper
operation (a handshake module that manages access to the shared operation) introduced in #77.This PR depends on the changes in #96 (floating-point arithmetic units in the experimental backend).
Changes:
HandshakeToHW.cpp
: adding hw attributes of sharing wrapper to the corresponding hw op.sharing-wrapper-generator
: RTL generator binary for sharing-wrapper.rtl-config.json
: rules for calling thesharing-wrapper-generator
.vhdl/support/sharing_support.vhd
: dependency modules of the sharing-wrapper (implementation for priority encoder, arbiter, branch, mux, etc).The following bash script can be used to test the circuit generation flow with resource sharing:
This PR does not add support for
handshake::sharing_wrapper
in the legacy.dot
backend, therefore,compile.sh
has to be changed for the script above to work, i.e., remove the line below: https://github.com/EPFL-LAP/dynamatic/blob/b053ab8ccfda97ec5db06cd7352e10e556004253/tools/dynamatic/scripts/compile.sh#L180