1 / 14

Paper Report

Paper Report. NIFD: Non-Intrusive FPGA Debugger Debugging FPGA ‘Threads’ for Rapid HW/SW Systems Prototyping. Feng -Xiang Huang. Hari Angepat , Gage Eads, Christopher Craik and Derek Chiou Department of Electrical and Computer Engineering The University of Texas of Austin

maille
Télécharger la présentation

Paper Report

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Paper Report NIFD: Non-Intrusive FPGA Debugger Debugging FPGA ‘Threads’ for Rapid HW/SW Systems Prototyping Feng-Xiang Huang HariAngepat, 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 rammable Logic and Applications 2010 International Conference on Field Programmable Logic and Applications

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

  3. Abstract • 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. Related Work FPGA-based computer system simulators[2-4] [7-9],[12-18] Have limitations (i)Imposing significant requirements of explicitly marking signals (ii)Requiring a full re-synthesis (iii)Requiring FPGA resources FAST simulator[1] This paper

  5. Introduction • Logic Analyzers, Soft Scan-Chain, Soft Processor Debug IP Cores • Logic Analyzers • Such as XilinuxChipscope 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. Introduction cont. • 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. Introduction cont. • 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. The proposed method(NIFD) • 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 • ReadbackFPGA frames • Implement the GDB user interface • HW • Provided to communicate over JTAG • Set breakpoints

  9. NIFD cont. 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. NIFD cont. • 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. NIFD cont. • 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. Experiment result • 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. Conclusion • 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. Comment • 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.

More Related