Search papers, labs, and topics across Lattice.
This paper introduces a domain-specific language (DSL) that allows users to specify hardware communication protocols as imperative programs, enabling a unified approach to both driving hardware designs and monitoring transactions. By integrating the driver and monitor into a single specification, the method reduces manual effort and minimizes the risk of inconsistencies inherent in separate implementations. The authors present a tool that automatically infers transaction-level traces from waveform data based on the DSL specifications, with plans for evaluation on established interconnect protocols like Wishbone and AXI-Stream.
A unified DSL for hardware communication protocols could eliminate inconsistencies and streamline the testing process, transforming how hardware modules are developed and debugged.
To test and debug hardware modules, it is common to write two programs: a driver, which translates high-level transactions into interactions on the module's input and output signals, and a monitor, which analyzes a signal-level execution trace and recognizes a transaction. These two programs are commonly implemented separately for each hardware protocol, but this separation entails manual effort and risks inconsistencies. We advocate an alternative approach. We present a DSL in which users specify hardware communication protocols as succinct imperative programs. Crucially, the same specification can be used to both drive designs and monitor transactions. We present the design of a tool, which given a specification in our DSL and a waveform, automatically infers a transaction-level trace consistent with the waveform. We discuss plans to evaluate our DSL on real-world interconnects such as Wishbone and AXI-Stream.