Extensible Embedded Hardware Description Languages with Compilation, Simulation and Verification (original) (raw)

Proceedings of the 13th International Symposium on Highly Efficient Accelerators and Reconfigurable Technologies

Typical hardware description languages, such as Verilog and VHDL, are low-level declarative languages with little room for flexibility. Extending, verifying, or reinterpreting programs in these languages is typically done with external tools and at great cost. This paper presents an implementation of a relational hardware description language, Ruby, in the programming language and proof assistant Agda. Using our system, an engineer can easily write, compile, simulate, and verify new designs. The language is modular, allowing for new constructs and libraries to be added easily, and supports formal reasoning about circuit transformations. Symbolic simulation and compilation to a netlist format are also provided. We demonstrate our tool by designing, compiling, and simulating a priority queue design, and showcase how equational reasoning can be used to prove properties of circuits. CCS CONCEPTS • Hardware → Reconfigurable logic and FPGAs; • Software and its engineering → Domain specific languages; • Theory of computation → Program specifications.

Sign up for access to the world's latest research.

checkGet notified about relevant papers

checkSave papers to use in your research

checkJoin the discussion with peers

checkTrack your impact