Summary: | This work introduces Verik, a hardware description language (HDL) for designing and verifying digital integrated circuits. Verik aims to be a drop-in replacement for SystemVerilog that leverages the productivity gains of the modern software stack to improve engineer productivity. Verik builds upon Kotlin, a modern general-purpose programming language with a clean and expressive syntax. Verik is Kotlin reinterpreted with the semantics of an HDL. The Verik toolchain consists of two parts, the compiler and the importer, and they serve to bridge the gap between the Kotlin and SystemVerilog environments. Verik is translated to SystemVerilog by the Verik compiler. This translation process is direct, typically with one-to-one correspondence between the input and output source files. Verik generates readable SystemVerilog output similar to what an engineer would have written. Conversely, SystemVerilog declarations can be imported into the Kotlin environment with the Verik importer. This allow us to make use of SystemVerilog libraries such as the Universal Verification Methodology (UVM) framework directly in Verik. We demonstrate Verik on a number of examples such as a RISC-V core and some UVM testbenches and show that it compares favorably against other popular HDLs used in academia and in industry. Finally, we recount the experience of using Verik with the Xilinx Vivado platform for a month-long FPGA workshop class.
|