Improving Digital Circuit Simulation with Batch-Parallel Logic Evaluation

Integrated circuit simulators reproduce the behavior and functionality of the underlying circuits. They are part of FPGA CAD flow tools and they ensure the correctness of the circuits after the various conversions and optimizations occurring in the previous stages. During this procedure a graph with dependencies across nodes is created for each circuit design. Large circuits, and thus graphs, require more time to be simulated, making a parallel approach necessary. We explore a new solution-batch-parallel simulation in which the circuit output is calculated by worker threads that process batches of input vectors. The threads traverse and calculate their assigned nodes in parallel taking into consideration the intra-node dependencies. Furthermore, a node calculation analysis is performed and used to achieve work balance across threads. We apply this technique on the open-source Odin II framework and compare it with the existing approaches. The batch-parallel simulation is compared with the two existing approaches, single-threaded and multi-threaded, under various configurations, considering the number of threads and the batch sizes. The results demonstrate performance gains against the existing approaches in the majority of the benchmarks used for specific metrics, such as simulation elapsed time.

[1]  Vaughn Betz,et al.  VPR: A new packing, placement and routing tool for FPGA research , 1997, FPL.

[2]  Koen De Bosschere,et al.  Function level parallelism driven by data dependencies , 2007, CARN.

[3]  Robert K. Brayton,et al.  ABC: An Academic Industrial-Strength Verification Tool , 2010, CAV.

[4]  Alan Mycroft,et al.  Limits of parallelism using dynamic dependency graphs , 2009, WODA '09.

[5]  Giovanni De Micheli,et al.  FPGA-SPICE: A simulation-based power estimation framework for FPGAs , 2015, 2015 33rd IEEE International Conference on Computer Design (ICCD).

[6]  Kenneth B. Kent,et al.  A framework for verifying functional correctness in Odin II , 2011, 2011 International Conference on Field-Programmable Technology.

[7]  Sen Wang,et al.  VTR 7.0: Next Generation Architecture and CAD System for FPGAs , 2014, TRETS.

[8]  Kenneth B. Kent,et al.  VPR 5.0: FPGA CAD and architecture exploration tools with single-driver routing, heterogeneity and process scaling , 2011, TRETS.

[9]  Steven J. E. Wilton,et al.  VersaPower: Power estimation for diverse FPGA architectures , 2012, 2012 International Conference on Field-Programmable Technology.

[10]  Tiziano Villa,et al.  VIS: A System for Verification and Synthesis , 1996, CAV.

[11]  Kenneth B. Kent,et al.  Odin II - An Open-Source Verilog HDL Synthesis Tool for CAD Research , 2010, 2010 18th IEEE Annual International Symposium on Field-Programmable Custom Computing Machines.

[12]  David A. Patterson,et al.  RAMP gold: An FPGA-based architecture simulator for multiprocessors , 2010, Design Automation Conference.

[13]  Giovanni De Micheli,et al.  FPGA-SPICE: A Simulation-Based Architecture Evaluation Framework for FPGAs , 2019, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[14]  Kenneth B. Kent,et al.  The VTR project: architecture and CAD for FPGAs from verilog to routing , 2012, FPGA '12.