In FPGAs, debug observability is often achievedby attaching memory-based recording circuitry to user signals. Block-RAM (BRAM)-based embedded logic analyzers are ofteninserted into user circuits to observe circuit behavior. Incontrast with BRAM-based approaches, distributed memory:1) is almost always available (user circuits may consume allBRAMs but even highly utilized circuits contain unused LUTs), and 2) can usually be physically located very near to user signals(LUTs are spread across the entire device while BRAMs arelocated only in specific columns). Previous work has shownbasic feasibility and demonstrated that distributed memoriescan provide debug observability for highly utilized circuits. Thispaper focuses on timing impacts and describes the quantitativetradeoff between FPGA device utilization, debug probe count, and clock frequency. For example, a design with 70% of LUTsutilized, with no debug logic, can operate at a minimum clockperiod of 5ns. Instrumenting 300 debug probes increases thisperiod to 7ns, and 1500 probes to 8ns. Placing trace bufferswith a simulated annealing algorithm improved success ratesfrom 20% to 50% depending on the design and probe count.
[1]
Patt.
Introduction to Computing Systems
,
2001
.
[2]
Chris Lavin,et al.
RapidWright: Enabling Custom Crafted Implementations for FPGAs
,
2018,
2018 IEEE 26th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM).
[3]
Steven J. E. Wilton,et al.
Faster FPGA Debug: Efficiently Coupling Trace Instruments with User Circuitry
,
2014,
ARC.
[4]
Brad Hutchings,et al.
Rapid Post-Map Insertion of Embedded Logic Analyzers for Xilinx FPGAs
,
2014,
FCCM 2014.
[5]
Kenneth B. Kent,et al.
The VTR project: architecture and CAD for FPGAs from verilog to routing
,
2012,
FPGA '12.
[6]
Brad L. Hutchings,et al.
Enabling Low Impact, Rapid Debug for Highly Utilized FPGA Designs
,
2018,
2018 28th International Conference on Field Programmable Logic and Applications (FPL).
[7]
Steven J. E. Wilton,et al.
Incremental Trace-Buffer Insertion for FPGA Debug
,
2014,
IEEE Transactions on Very Large Scale Integration (VLSI) Systems.