Presentation is loading. Please wait.

Presentation is loading. Please wait.

Feng-Xiang Huang NIFD: Non-Intrusive FPGA Debugger Debugging FPGA ‘Threads’ for Rapid HW/SW Systems Prototyping Hari Angepat, Gage Eads, Christopher Craik.

Similar presentations


Presentation on theme: "Feng-Xiang Huang NIFD: Non-Intrusive FPGA Debugger Debugging FPGA ‘Threads’ for Rapid HW/SW Systems Prototyping Hari Angepat, Gage Eads, Christopher Craik."— Presentation transcript:

1 Feng-Xiang Huang NIFD: Non-Intrusive FPGA Debugger Debugging FPGA ‘Threads’ for Rapid HW/SW Systems Prototyping Hari Angepat, Gage Eads, Christopher Craik and Derek Chiou Department of Electrical and Computer Engineering The University of Texas of Austin {angepat,geads,craik,derek}@fast.ece.utexas.edu rammable Logic and Applications 2010 International Conference on Field Programmable Logic and Applications

2 Combining Scan and Trace Buffers for Enhancing Real-time Observability in Post-Silicon Debugging A Scan Cell Design for Scan-Based Debugging of an SoC With Multiple Clock Domains NIFD: Non-Intrusive FPGA Debuger Debugging FPGA ‘Threads’ for Rapid HW/SW Systems Prototyping NIFD: Non-Intrusive FPGA Debuger Debugging FPGA ‘Threads’ for Rapid HW/SW Systems Prototyping

3 Abstract-Debugging hardware has always been difficult when compared to debugging software, in large part due to a lack of convenient visibility. This paper describes the open NIFD framework that provides software-like debugging facilities to both pure FPGA and hybrid FPGA/software platforms, allowing a designer to treat the hardware logic like a specialized remote software debug target. NIFD provides features such as single stepping, breakpoints, and examination of the full hardware state from a standard debug console such as GDB. This framework leverages built-in readback support to enable non- intrusive, transparent debugging with full observability and controllability. This technique is not only useful for debugging, but can also be used in production environments for infrequent events such as the slow sampling of counters.

4 FPGA-based computer system simulators[2-4] FAST simulator[1] [7-9],[12-18] Have limitations (i)Imposing significant requirements of explicitly marking signals (ii)Requiring a full re-synthesis (iii)Requiring FPGA resources [7-9],[12-18] Have limitations (i)Imposing significant requirements of explicitly marking signals (ii)Requiring a full re-synthesis (iii)Requiring FPGA resources This paper

5 Logic Analyzers, Soft Scan-Chain, Soft Processor Debug IP Cores Logic Analyzers  Such as Xilinux Chipscope or Altera SignalTap 。 Monitoring of selected user signals by inserting small circular history buffers that capture some limited number of signal samples  Disadvantage 。 Limit to the number of monitored signals 。 Changing the monitored set requres re-synthesis 。 Additional place-and-route  Compared for software application 。 If they want to add a new ‘variable/signal’, it requires a new ‘compile/synthesis’.

6 Soft Scan-Chain  Using netlist rewriting to provide transparent debugging of arbitrary FPGA logic 。 Inserting additional logic in-front of all state elements. 。 Provides full visibility  Disadvantage 。 Consumes significant FPGA resources  Compared software application 。 The user provides a ‘binary/netlist’ to a tool that inserts hooks to ‘tracing functions/scan-chain’.

7 Soft Processor Debug IP Cores  Debug cores are the closest in spirit to the approach. 。 Such as the Microblaze Debug Monitor(MDM), can provide a remote GDB target the can be controlled from software. 。 Directly controls soft processor logic enabling single-step execution, reading architectural registers and setting program- counter based breakpoints.  Disadvantage 。 Require a stable set of signals to monitor and restrict the number of signals that can be monitored(typically register-file and/or bus accessible memory locations). 。 for more ad-hoc block(DMA controllers, Network Routers, etc)are not usually provided.  Fill in the feature gap left between stable design-level debug cores and ad hoc debugging.

8 Non-intrusive FPGA Debug(NIFD)  As an open framework using a series of modular HW and SW components.  SW 。 Written in C and Python 。 Provide to parse netlists 。 Readback FPGA frames 。 Implement the GDB user interface  HW 。 Provided to communicate over JTAG 。 Set breakpoints

9 A. Tool Flow  Very similar to standard software debugging.  Hardware debugging symbols are generated in much the same way as in software. 。 Software is compiled normally with a typical compiler flag to embed symbol and source line-numbers into the generated binary. 。 The standard GDB debugger can use these symbols to setup breakpoints and provide useful stack bacetraces.  Constructs a symbolic map that relates state elements in a user design to the spatial location of that symbol on the FPGA

10 B. SW Core Library  A jtag cable layer 。 Wrapping an existing open-source JTAG cable library.  A core readback layer 。 Handles the low-level details of invoking a frame readback operation against the FPGA configuration logic  A symbolic readback/netlist parser layer 。 Decodes the resource allocation tables and netlist of the user design to create a hardware symbol table.

11 C. HW IP Core Library  JTAGlink module 。 Provides a simple 8-bit fifo abstraction that can be connected to software via a pseudo-serial protocol.  A breakpoint controller 。 Provides a set of trigger ports and registers to maintain trigger conditions. D. User Interface  Implement a GDB 7.x+ plug-in using Python that exposes GDB-style operators for the FPGA fabric 。 Support GDB abstraction of setting, listing, enabling, and disabling breakpoint for the set of signals attached at synthesis time to the controller.

12 Example: Xilinx Virtex-II Pro XUPV2 development board connected to a host computer via a USB JTAG programming cable. (i). Load bitstream and synthesis generated placement and allocation files to creat the NIFD symbol table (ii). print the state of a variable in the active design  Provides tab-completion to navigate through the design hierarchy (iii). Set a breakpoint against the ‘cnt’ (iv). Disabled by signalling to the breakpoint controller

13 Current  NIFD provides a comprehensive software-style view of an active FPGA program, it would be useful to provide concurrent views of both software and hardware in a more unified fashion Future  They are adding support for a flexible board platform configuration interface that enables an end user to quick add support for their specific FPGA platform board. 。 Lower the development bar

14 The NIFD framework currently only support Xilinx parts that supports readback. It is more abstract that the framework does not talk about the whole NIFD architecture in detail.


Download ppt "Feng-Xiang Huang NIFD: Non-Intrusive FPGA Debugger Debugging FPGA ‘Threads’ for Rapid HW/SW Systems Prototyping Hari Angepat, Gage Eads, Christopher Craik."

Similar presentations


Ads by Google