Pyverilog: A Python-Based Hardware Design Processing Toolkit for Verilog HDL

Verilog HDL is the most-used hardware design language for FPGAs. In this paper, we introduce Pyverilog, an open-source toolkit for RTL design analysis and code generation of Verilog HDL. Pyverilog offers efficient functionality to implement a CAD tool that treats Verilog HDL with small amount of effort. Pyverilog consists of four key libraries: (1) parser, (2) dataflow analyzer, (3) control-flow analyzer, and (4) Verilog code generator. We show a case study that uses Pyverilog as the fundamental back-end library. We have developed flipSyrup, a framework for efficient rapid prototyping by virtually enlarging FPGA resources. By using Pyverilog, the framework is implemented with small amount of additional codes; it is implemented in about 2700 lines of code in Python.

[1]  Kermin Fleming,et al.  Leap scratchpads: automatic memory and cache management for reconfigurable logic , 2010, FPGA '11.

[2]  James C. Hoe,et al.  CoRAM: an in-fabric memory architecture for FPGA-based computing , 2011, FPGA '11.

[3]  Kenji Kise,et al.  A framework for efficient rapid prototyping by virtually enlarging FPGA resources , 2014, 2014 International Conference on ReConFigurable Computing and FPGAs (ReConFig14).

[4]  Kenji Kise,et al.  flipSyrup: Cycle-accurate hardware simulation framework on abstract FPGA platforms , 2014, 2014 24th International Conference on Field Programmable Logic and Applications (FPL).

[5]  John Wawrzynek,et al.  Chisel: Constructing hardware in a Scala embedded language , 2012, DAC Design Automation Conference 2012.

[6]  Shobha Vasudevan,et al.  Code coverage of assertions using RTL source code analysis , 2014, 2014 51st ACM/EDAC/IEEE Design Automation Conference (DAC).

[7]  Miryung Kim,et al.  A program differencing algorithm for verilog HDL , 2010, ASE.