FPGA-based prototyping enables evaluating complex designs directly in hardware, at speeds orders of magnitude faster than simulation. However, this approach suffers from the lack of observability during debugging. To enhance observability, designers insert debug instrumentation; trace buffers are used to record a small subset of data. Since these buffers have limited capacity, trigger circuits are required to start and/or stop recording based on the values of selected signals in the circuit. Although it is possible to insert trigger circuits at compile time, changing the trigger behaviour requires re-compiling the design, increasing the cost of each debug iteration. In this paper, we propose inserting trigger circuits at run-time by distributing trigger logic over spare resources of a fully placed-and-routed design such that its mapping is completely preserved. We also propose CAD optimizations which improve routability of the trigger circuitry, and minimize the impact on circuit delay. We find that using our techniques to implement the trigger logic can be an order of magnitude faster than a full recompilation.
[1]
Vaughn Betz,et al.
Architecture and CAD for Deep-Submicron FPGAS
,
1999,
The Springer International Series in Engineering and Computer Science.
[2]
Steven J. E. Wilton,et al.
Towards simulator-like observability for FPGAs: a virtual overlay network for trace-buffers
,
2013,
FPGA '13.
[3]
Steven J. E. Wilton,et al.
Escaping the Academic Sandbox: Realizing VPR Circuits on Xilinx Devices
,
2013,
2013 IEEE 21st Annual International Symposium on Field-Programmable Custom Computing Machines.
[4]
Kenneth B. Kent,et al.
The VTR project: architecture and CAD for FPGAs from verilog to routing
,
2012,
FPGA '12.
[5]
Steven J. E. Wilton,et al.
Incremental Trace-Buffer Insertion for FPGA Debug
,
2014,
IEEE Transactions on Very Large Scale Integration (VLSI) Systems.