IP & SoC Verification.

Slides:



Advertisements
Similar presentations
Presenter : Shao-Chieh Hou VLSI Design, Automation and Test, VLSI-DAT 2007.
Advertisements

Using emulation for RTL performance verification
1 of 24 The new way for FPGA & ASIC development © GE-Research.
A Breakthrough Common Emulation API 15th November 2001 SCE-API.
MotoHawk Training Model-Based Design of Embedded Systems.
LOGO HW/SW Co-Verification -- Mentor Graphics® Seamless CVE By: Getao Liang March, 2006.
Graduate Computer Architecture I Lecture 15: Intro to Reconfigurable Devices.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
Configurable System-on-Chip: Xilinx EDK
1-1 Embedded Software Development Tools and Processes Hardware & Software Hardware – Host development system Software – Compilers, simulators etc. Target.
Creating Test Environments HDL Model HDL Testbench Simulation Engine API stimulus check Testbench Program stimulus check Non-HDL languages may be used.
SiliconAid Solutions, Inc. Confidential SAJE SiliconAid JTAG Environment Overview – Very Short.
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
Embedded Systems Design at Mentor. Platform Express Drag and Drop Design in Minutes IP Described In XML Databook s Simple System Diagrams represent complex.
VerificationTechniques for Macro Blocks (IP) Overview Inspection as Verification Adversarial Testing Testbench Design Timing Verification.
Programmable Logic- How do they do that? 1/16/2015 Warren Miller Class 5: Software Tools and More 1.
© Copyright Alvarion Ltd. Hardware Acceleration February 2006.
Role of Standards in TLM driven D&V Methodology
The 6713 DSP Starter Kit (DSK) is a low-cost platform which lets customers evaluate and develop applications for the Texas Instruments C67X DSP family.
® ChipScope ILA TM Xilinx and Agilent Technologies.
1 Chapter 2. The System-on-a-Chip Design Process Canonical SoC Design System design flow The Specification Problem System design.
1 VERILOG Fundamentals Workshop סמסטר א ' תשע " ה מרצה : משה דורון הפקולטה להנדסה Workshop Objectives: Gain basic understanding of the essential concepts.
SOC Consortium Course Material ASIC Logic National Taiwan University Adopted from National Chiao-Tung University IP Core Design.
Chap. 1 Overview of Digital Design with Verilog. 2 Overview of Digital Design with Verilog HDL Evolution of computer aided digital circuit design Emergence.
1CADENCE DESIGN SYSTEMS, INC. Cadence Proposed Transaction Level Interface Enhancements for SCE-MI SEPTEMBER 11, 2003.
ASIC/FPGA design flow. FPGA Design Flow Detailed (RTL) Design Detailed (RTL) Design Ideas (Specifications) Design Ideas (Specifications) Device Programming.
Design Verification An Overview. Powerful HDL Verification Solutions for the Industry’s Highest Density Devices  What is driving the FPGA Verification.
집적회로 Spring 2007 Prof. Sang Sik AHN Signal Processing LAB.
1 Extending FPGA Verification Through The PLI Charles Howard Senior Research Engineer Southwest Research Institute San Antonio, Texas (210)
System Design with CoWare N2C - Overview. 2 Agenda q Overview –CoWare background and focus –Understanding current design flows –CoWare technology overview.
Laurent VUILLEMIN Platform Compile Software Manager Emulation Division The Veloce Emulator and its Use for Verification and System Integration of Complex.
J. Christiansen, CERN - EP/MIC
IEEE ICECS 2010 SysPy: Using Python for processor-centric SoC design Evangelos Logaras Elias S. Manolakos {evlog, Department of Informatics.
Interfaces to External EDA Tools Debussy Denali SWIFT™ Course 12.
Chonnam national university VLSI Lab 8.4 Block Integration for Hard Macros The process of integrating the subblocks into the macro.
F. Gharsalli, S. Meftali, F. Rousseau, A.A. Jerraya TIMA laboratory 46 avenue Felix Viallet Grenoble Cedex - France Embedded Memory Wrapper Generation.
NIOS II Ethernet Communication Final Presentation
Introduction to FPGA Created & Presented By Ali Masoudi For Advanced Digital Communication Lab (ADC-Lab) At Isfahan University Of technology (IUT) Department.
The Macro Design Process The Issues 1. Overview of IP Design 2. Key Features 3. Planning and Specification 4. Macro Design and Verification 5. Soft Macro.
Hardware-software Interface Xiaofeng Fan
Winter-Spring 2001Codesign of Embedded Systems1 Methodology for HW/SW Co-verification in SystemC Part of HW/SW Codesign of Embedded Systems Course (CE.
BridgePoint Integration John Wolfe / Robert Day Accelerated Technology.
Lecture 12: Reconfigurable Systems II October 20, 2004 ECE 697F Reconfigurable Computing Lecture 12 Reconfigurable Systems II: Exploring Programmable Systems.
An Overview of Hardware Design Methodology Ian Mitchelle De Vera.
1 Extending FPGA Verification Through The PLI Charles Howard Senior Research Engineer Southwest Research Institute San Antonio, Texas (210)
Evaluating and Improving an OpenMP-based Circuit Design Tool Tim Beatty, Dr. Ken Kent, Dr. Eric Aubanel Faculty of Computer Science University of New Brunswick.
Tools - Design Manager - Chapter 6 slide 1 Version 1.5 FPGA Tools Training Class Design Manager.
1 Hardware/Software Co-Design Final Project Emulation on Distributed Simulation Co-Verification System 陳少傑 教授 R 黃鼎鈞 R 尤建智 R 林語亭.
SCE-MI Meeting 1 San Jose’, 14 th Nov Author: Andrea Castelnuovo SCE-MI Integrating Emulation in a system level design methodology San Jose’, 14/11/2003.
Discussion of ITC Goals. Historical Goals From SCE-API Marketing presentation Circa 2001.
1 Copyright  2001 Pao-Ann Hsiung SW HW Module Outline l Introduction l Unified HW/SW Representations l HW/SW Partitioning Techniques l Integrated HW/SW.
Discussion of ITC Goals. Historical Goals From SCE-API Marketing presentation Circa 2001.
System-on-Chip Design Hao Zheng Comp Sci & Eng U of South Florida 1.
Teaching Digital Logic courses with Altera Technology
Chapter 11 System-Level Verification Issues. The Importance of Verification Verifying at the system level is the last opportunity to find errors before.
Discussion of ITC Goals. Historical Goals From SCE-API Marketing presentation Circa 2001.
ASIC/FPGA design flow. Design Flow Detailed Design Detailed Design Ideas Design Ideas Device Programming Device Programming Timing Simulation Timing Simulation.
1 of 24 The new way for FPGA & ASIC development © GE-Research.
CoDeveloper Overview Updated February 19, Introducing CoDeveloper™  Targeting hardware/software programmable platforms  Target platforms feature.
April 15, 2013 Atul Kwatra Principal Engineer Intel Corporation Hardware/Software Co-design using SystemC/TLM – Challenges & Opportunities ISCUG ’13.
System-on-Chip Design
Programmable Hardware: Hardware or Software?
ASIC Design Methodology
Design Flow System Level
Figure 1 PC Emulation System Display Memory [Embedded SOC Software]
ChipScope Pro Software
ChipScope Pro Software
THE ECE 554 XILINX DESIGN PROCESS
THE ECE 554 XILINX DESIGN PROCESS
Presentation transcript:

IP & SoC Verification

Contents IP Verification SoC Verification Cycle-level Transaction Level Testbench build-up Hardware debugging An example (iPROVE) SoC Verification Design Flow Multi-level, multi-lingual verification Multiple-FPGA set-up Debugging An example (iSAVE)

IP verification Important issues Testbench issues IP reuse Testbench reuse Debuggability Testbench issues Various testbench support HLL: C/C++ HDL: Verilog and VHDL De facto standards: SCE-MI, SystemC, OpenVera and so on Various levels of testbench Transaction-level: control by command level, e.g., read/write Cycle-level: control over pin-by-pin Abstract-bus-level: standard on-chip networks

Cycle-level verification DUT (HDL) Testbench (C/HDL) Device Driver PCI Controller DUT Buffer/ Pin Signal Generator Testbench PCI Channel S/W simulation part FPGA part

Cycle-level verification SW: Testbench Modeled with HDL or C language Generate stimulus at every clock cycle Check the result of DUT at every clock cycle HW: DUT Mapped on FPGA Stimulus are transferred through a system bus, e.g., PCI. All signals are assigned to DUT concurrently after they are transferred from the SW test bench. Operating speed Faster than SW simulation due to the acceleration of HDL or C model of DUT in FPGA. Determined by the interface requirement (number and bandwidth of signals to be transferred), and bandwidth of the interface (PCI)

Transaction-level verification DUT Testbench Device Driver Main Memory PCI Controller Transactor DUT Testbench DMA Channel S/W simulation part FPGA part

Transaction-level verification SW: Testbench Modelled with C language Generate stimulus and check the result of DUT Only information enough to form the transaction is transferred to DUT. i.e., command, address and data HW: DUT and transactor Mapped on FPGA Transactor knows how to interpret the transaction and thence generates all signals necessary for DUT. Operating speed HW and SW parts are operated independently. Faster than cycle-level verification as well as SW simulation.

Testbench automation Overview SCE-MI VERA Test Builder

SCE-API (MI) Standard Co-Emulation API (Modeling Interface) SW part implemented as C or C++, with recommendation on HW implementation Based on IKOS’ multi-channel co-modeling technology: TIP (Transaction Interface Portal) SCE-API Consortium Founded June 2000 Aptix, CoWare, IKOS, Mentor, STMicroelectronics, Synopsys, TransEDA SCE-API version 1.0 modeling interface SCE-MI v1.0 released through Open SystemC Initiative (http://www.systemc.org), April 2001 Accellera’s Interface Technical Committee Merged into ITC, Oct. 2001 SCE-DI (Debug Interface) & SCE-CI (Control Interface) on progress

Vera Vera Functional verification language for testbench description Language specification can be obtained from OpenVera site (http://www.opera-vera.com) Vera Language Object-oriented language Includes HDL features Waiting clock event Bit data type, bit operation (extraction, concatenation) Data expectation (‘do something when the expectation is hit’) 0,100 bus.ack == 1; // ack must be 1 in at least 100 cycles Vera Verification Environment Commercial product from Synopsys Vera source codes are compiled and runs with HDL simulator in which DUT is simulated. Additional features Automatic stimulus generation, Coverage analysis

Vera .vr – Vera Source .vrh – Vera Header HDL Simulator Compiler .vrh – Vera Header HDL Simulator .vro – Vera Object Vera Shell Vera PLI DUT .vrl – Vera List Supplied by User Automatically generated by Vera compiler

TestBuilder Transaction-Based Verification Functional verification in higher level of abstraction Engineer develops tests from a system level perspective Advantages Enhance reusability of each component in the testbenches Improve debugging and overage analysis Transaction Level Signal Level TVM (Transactor) Design Tests TVM: Transaction Verification Model

TestBuilder How TestBuilder Operates Transaction Level Signal Level Tests TVM DUV While(){ Tx.send_packet(..); Mem.expect_write(..); .. } Tx.send_packet(..){ header = “hd”; address = 0xff0011; data = 0xff0011; } C/C++/TestBuilder Implementable using TestBuilder/HDL HDL C library (PLI/FLI) HDL Simulation

Specman Functional Testbench Automation Tool by Verisity (http://www.verisity.com) Its concept is similar to Vera, but starts earlier and more widely used. Describe user specification with e language Interface Spec & Test Plan by e Legacy code in C/VHDL/Verilog Specman Elite Automatic Testbench Generation Data & Temporal Checking Coverage Analysis DUT

Debugging feature Built-In Logic Analyzer (BILA) DUT boundary – ports DUT internal – internal nodes PCI iPROVE PC Board

Hardware debugging schemes Low speed scheme Operating speed: < 10MHz There is no dedicated storage element in the device. All debugging information is transferred to main memory or large storage device at every cycle. Readback scheme of Xilinx device is a typical example. Usually, the scheme needs only a small number of IO pins. JTAG interface: 4 pins (TCK, TDI, TMS, TDO) 8-bit parallel interface (CLK, INIT, CS, RW, D[7:0])

Hardware debugging scheme High speed scheme Operating speed: < 100MHz There is several dedicated elements which can be internal memories or external memories. All debugging information is stored in the dedicated elements. Typical example Xilinx: ChipScope Altera: SignalTap-II

What is iPROVE iPROVE is a small scale design verification tool by enabling C/C++, HDL and de facto standards interfacing API’s. API Proprietary C/C++ API Proprietary Verilog API SCE-API/MI Testbench and/or rest blocks in C, HDL and/or SystemC IP in HDL/EDIF PCI bus

iPROVE tool positioning Running Speed 100MHz Real Silicon 10MHz Rapid Prototype 1MHz HW Emulator 100KHz iPROVE 10KHz There are many verification solutions to get working silicon. S/W simulation is most popular and basic one. Although it is cheap solution, it can only run around 10 to 100 Hz speed. To overcome this speed problem, hardware accelerator can be a next solution, But it still provide only around 1 KHz speed. H/W emulation usually utilizes a bunch of FPGA and emulates logics up to 1 MHz. Rapid prototyping system utilizes pre-verified IP-blocks instead of FPGA. It seems to be suitable for IP-based ASIC design, but cost high And 10 MHz speed is not sufficient. Considering that most logic today runs over 30 or 60 MHz even over 100 MHz. Here we are longing to have an ideal verification solution that costs low, but runs fast. That’s it. iSAVE costs one-tenth of other H/W emulator. iSAVE runs around 50 to 60 MHz which means that runs ten times faster than others. 1KHz HW Accelerator 100Hz SW Simulator 10Hz Investment

iPROVE typical usage: IP verification Automatically generated module DUT PC iPROVE Testbech IP Test PCI DPP Interactive IO Signal information Signals Cycle-level verification IP verification without prototyping Transactors DUT Test Transactions Signals Transaction-based verification BFM DUT Test DUT bus Abstract-bus-based verification

iPROVE typical usage: DPP PC iPROVE Multi-media board Large size data PCI DPP

iPROVE structure User design User testbench OS De facto standards API Verilog, VHDL User testbench C/C++, Verilog, VHDL OS Windows 2000 or XP Linux De facto standards SCE-MI/API SystemC OpenVera TestBuilder API C/C++ Visual C Borland C GNU GCC under Cygwin Verilog

iPROVE design flow

Mapping by running testbench iPROVE design flow synthesis P&R compilation Mapping by running testbench execution Debugging with BILA

Cycle-level with Verilog (1/3) A simple ALU example

Cycle-level with Verilog (2/3) Step 1: Start with EDIF of the ALU – need synthesizer Step 2: make FPGA mapping data Step 3: modify testbench by inserting PLI’s for iPROVE Step 4: run the ALU with iPROVE and HDL simulator Testbench runs at host computer DUT goes to iPROVE

Testbench example (Cycle-level) *alu-proxy is image of ALU mapped on FPGA `define CARD_ID 0 module alu_top(); // inputs and outputs … always #5 clk = ~clk; `ifdef iPROVE alu_proxy(…) `else alu(…) `endif alu_sim(.resetb(resetb), .clk(clk), .cmd(cmd), .src1(op1), .src2(op2), .cin(carry), .result(result), .cf(cf), .vf(vf), .nf(nf), .zf(zf)); // other thestbench codes initial begin $dumpfile("alu.vcd"); $dumpvars(); `ifdef iPROVE $iProveOpenCard(`CARD_ID); $iProveInitCard(`CARD_ID, “ALU.tcf"); $iProveLoadModuleInfoFile(`CARD_ID, "ALU.mit"); $iProveCycLoadSignalInfoFile("alu", “ALU.pin"); `endif clk = 1'b0; resetb = 1'b1; repeat (2) @ (posedge clk); resetb = 1'b0; // other testbench codes $iProveCloseCard(`CARD_ID); $stop; end endmodule Automatically generated by iPROVE software $iProveCycSignalWrite(modhl_alu, sighdl_reset,reset); $iProveCycSignalWrite(modhl_alu, sighdl_cmd,cmd); … $iProveCycClockAdvanceByModule(modhl_alu, sighdl_clk); $iProveCycSignalRead(modhl_alu, sighdl_cf, cf); $iProveCycSignalRead(modhl_alu, sighdl_vf, vf); $iProve…; system task for iProve defined as PLI routine

Transaction-level with C (1/3) A simple SSRAM example

Transaction-level with C (2/3) Step 1: Start with EDIF of the SSRAM – need synthesizer Step 2: make FPGA mapping data Step 3: modify testbench by inserting PLI’s for iPROVE Step 4: run the SSRAM with iPROVE and HDL simulator DUT & transactor goes to iPROVE Testbench runs at host computer

Testbench example (Transaction-level) #include “iprove.h” int main(int argc, char** argv) { // other codes iProveOpenCard(card_id); iProveInitCard(card_id, tcf); iProveLoadModuleInfoFile(card_id, mit); iProveGetModuleHandle(instance_name, &module_handle); iProveAllocReadBuffer(module_handle, sbm_size); iProveAllocWriteBuffer(module_handle, sbm_size); #ifdef BILA iProveBILAConfig(card_id, trg); iProveBILATrigOn(card_id); #endif iProveStart(card_id); TestBench(); iProveBILAUpload(card_id, dmp); bila_info.cid = card_id; bila_info.dump_filename = dmp; bila_info.signallist_filename = lst; WithCheck(iProveDump2Vcd(&bila_info, 1, vcd); iProveStop(card_id); iProveCloseCard(card_id); return 0; } void TestBench(void) { // other codes iProveCmdWrite(module_handle, &cmd, 1); iProveDataWrite(module_handle, pbuf, num, &tmp); iProveDataRead(module_handle, pbuf, num, &tmp); }

Performance comparisons IDCT: 59K gates FPACC0: 56K gates FPACC1: 104K gates FPACC2: 208K gates

iPROVE performance x2053 x1 x47 x69 iPROVE provides outstanding speed-up over x2000. Example FPACC2 (Floating-point number calculation IP) Gate count: 208,479 Logic usage: 99% of XCV1000E x2053 x1 x47 x69 iPROVE iPROVE iPROVE ModelSim with ModelSim with Cycle- Level C-API with Transaction -Level C-API

iPROVE-Summary Easy to use and fast setup time to emulation No or minor source modification The same testbench for simulation and emulation Various verification mode Cycle, transaction and abstract bus modes Powerful debugging BILA (Built-in Logic Analyzer) as a real hardware logic analyzer High-performance interface to S/W side High-speed DMA feature High to low level languages such as C/C++, Verilog and VHDL Open interface system API layer provides easy-to-interface mechanism to de facto standards Scalability Multiple iPROVE cards as well as various gate count options

SoC Verification Key technologies in SoC Verification Early/Consistent Verification Environment Progressive Refinement Multi-level, Multi-lingual Verification

ASIC Verification Methods Running Speed Ideal Verification Solution Make it faster Make it cheaper 100MHz Real Silicon 10MHz Rapid Prototype 1MHz HW Emulator 100KHz 10KHz There are many verification solutions to get working silicon. S/W simulation is most popular and basic one. Although it is cheap solution, it can only run around 10 to 100 Hz speed. To overcome this speed problem, hardware accelerator can be a next solution, But it still provide only around 1 KHz speed. H/W emulation usually utilizes a bunch of FPGA and emulates logics up to 1 MHz. Rapid prototyping system utilizes pre-verified IP-blocks instead of FPGA. It seems to be suitable for IP-based ASIC design, but cost high And 10 MHz speed is not sufficient. Considering that most logic today runs over 30 or 60 MHz even over 100 MHz. Here we are longing to have an ideal verification solution that costs low, but runs fast. That’s it. iSAVE costs one-tenth of other H/W emulator. iSAVE runs around 50 to 60 MHz which means that runs ten times faster than others. 1KHz HW Accelerator 100Hz SW Simulator 10Hz Investment

What’s the point in SoC Verification? Mixture of SW and HW Make it easier to cooperate with Processor Model such as ISS or BFM Mixture of pre-verified, not-verified components Make it easier to utilize legacy IPs already verified Mixture of different language, different abstraction level Provide common interface structure between SoC components

Canonical SoC design flow System Spec. Design HW/SW Partitioning HW Development SW HW refinement (UT->T->RTL) Gate HW IP SW IP Software Verification Functional Gate-Level HW-SW Co-Design Co- SW refinement (RTOS mapping) Final code Emulator In-system emulator HW-SW co-debugging

Tools for HW-SW Co-Verification System Spec. HW IP System Design SW IP HW-SW Co- HW/SW HW/SW Verification Partitioning Functional Software Verification Verification HW SW Development Development SW refinement HW refinement (RTOS (UT->T->RTL) mapping) High-level synthesis Testbench automation IP accelerator HW-SW co-simulation ISS RTOS simulator

Tools for System-level Spec. HW-SW HW IP System Co-Design Design SW IP HW/SW Partitioning System-level design (Performance analysis tools) Hot-spot analyzer High-level cycle count estimation High-level power analysis High-level chip area estimation On-chip-bus traffic estimation

Verification Environment Early test-bench setup Accurate and fast test-bench setup in early design stage greatly reduces verification time and efforts Consistent test-bench utilization Once the test-bench is built up, it must be consistently reused in the following design steps In-system test bench The test bench must be switchable between SW simulation and in-system verification to cover all corner cases.

In-System Verification In-System Gate Level Verification design synthesis manufacture Integration test silicon spec. RTL gate board functional verification formal verification test pattern In-System Behavioral Level Verification

Flexible Verification Environment C Test Bench HDL Test Bench In-System Test Bench Conventional Verification Environment C Model HDL Design Gate Level Design C Test Bench In-System Test Bench HDL Test Bench HDL Test Bench In-System Test Bench Flexible Verification Environment C Model C Model HDL Design Gate Level Design Gate Level Design

Progressive refinement With the advent of design reuse methodology for System-On-a-Chip designs, a mixture of C, HDL, EDIF netlist and IP core blocks is required to be verified together as one system. For a large design, it is necessary to verify each design blocks/modules one after another until whole design is verified. IP has to be prepared in various abstraction levels in order to support progressive refinement process. EDIF A typical SoC chip RTL uP Core SRAM FLASH D-Cache USB MPEG FIFO Logic BCA TF Incremental/progressive refinement UTF

Multi-Level & Multi-Lingual level of abstraction Multiple Programmable Cores (20%) Algorithm Functional UT (20~50%) Memory other IPs (>20%) Custom contents (15~20%) Behavioral BCA RTL CA gate TA EDIF (gate-level netlist) HDL (Veilog VHDL) SystemC (HW) C/C++ (HW) C/C++ (SW) UT: untimed, BCA: bus cycle accurate CA: cycle accurate, TA: timing accurate RTL: register transfer level

Supporting Multi-Language Simulation Vehicle HDL Simulator User C process ( C/C++/SystemC model for HW or SW ) ISS for embedded processor core Test description language (Vera, TestBuilder) Emulation Vehicle FPGA containing one or more IP’s (enables gate-level IP verification) FPGA interfacing with target system (enables in-system verification) Communication channel between vehicles IPC (inter-process communication) for designs simulated in multiple processes Dedicated device driver for designs mapped in FPGAs

Supporting Multi-Level Bridging abstraction gap Using transactor Using cycle-level transactor Read Channel Write Channel Transaction -Level C/HDL Model Transactor Cycle Accurate HDL/EDIF Model Read Channel Cycle Accurate C/HDL Model Cycle Accurate API Write Channel Cycle-Level Transactor Cycle Accurate Model

Multi-Level & Multi-Lingual C sessions HDL sessions Design in Verilog Design in VHDL Design in C Design in SystemC Transactor Transactor Inter-Lingual Communication TIE EDIF sessions I/F protocol I/F protocol Transactor Transactor Design in EDIF Design in EDIF Target board

iSAVE-MP & MPEG2/4 iSAVE-MP main iSAVE-MP TIM GUI windows Decoded image MPEG Board

ILC(Inter-lingual Communication) SoC model with ARM CCM Debugger ARM CCM Memory model IP models IP in HDL AMBA model Address Decoder Bus wrapper ILC(Inter-lingual Communication)

Using Multiple FPGA’s Using multiple FPGAs Partitioning into multiple FPGAs Bus split Host Processor ARM ISS Memory Model FPGA1 FPGA2 Transactor Transactor Bus Split Logic IP0 IP1 IP2 IP3

Debugging in Multi-Level Traditional debugging tools Design in emulation vehicle Logic analyzer Design in simulation vehicle Source-level debugger Waveform viewer Challenges in SoC How to manage waveforms from different abstraction level How to manage trigger conditions How to probe out internal signals of designs in emulation vehicles

Debugging in Multi-Level Built-in logic analyzer Built-in logic analyzer enables the designer to watch what is actually going on. Built-in logic analyzer samples the states of the DUT and stores them in the external dump memory. (non-intrusive) FPGA Configure FPGA Download Trigger Design Under Test Built-In Logic Analyzer Run Upload Post Processing External Dump Memory VCD

Debugging in Multi-Level Built-in logic analyzer Triggering condition is dynamically configured. After the emulation is over, the dump data in the external memory is read and processed to generate VCD file. VCD file $date Fri Dec 6 22:50:56 2002 $end $version 4.10 $timescale 100ps $scope module BILA $end $var reg 32 ! user_data $end $var reg 1 “ write_en $end $var reg 4 $ mode $end … Waveform viewer

Debugging in Multi-Level Probing internal nodes Sometimes the designer wants to watch internal nodes in his design. Internal node probing enables this by wiring-out the internal nodes to the boundary of the DUT top block. Top block DUT Built-In Logic Analyzer Sub-block External Dump Memory Internal node

Debugging in Multi-Level Monitoring software variables Software dump data is merged with hardware dump data (Built-In Logic Analyzer) to generate unified waveform. The waveform contains both hardware and software debugging information. Built-In Logic Analyzer Dump data with timing information VCD with both Hardware and software Debugging information dump2vcd Software variable Dump data with timing information

Using Multiple FPGAs Synchronous Built-In Logic Analyzer When the design is partitioned into multiple FPGAs, Built-In Logic Analyzer(BILA) in each FPGA samples the internal state of each FPGA. All the dump data are merged to provide the user a unified and synchronized waveform. FPGA #n DUT BILA Dump data #n #3 #2 #1 dump2vcd FPGA #3 DUT BILA FPGA #2 DUT BILA Unified VCD FPGA #1 DUT BILA

Using Multiple FPGAs Multiple FPGAs with multiple Processes BILA in each FPGA samples FPGA states. SVA in each process samples program states. All of the dump data are merged

Using Multiple FPGAs Multiple FPGAs with multiple Processes Process #m Dump data #n Process #3 SVA dump2vcd Dump data #3 Process #2 SVA Process #1 Dump data #2 SVA FPGA #n DUT BILA Dump data #1 Unified VCD SVA Dump data #n #3 #2 #1 FPGA #3 DUT BILA FPGA #2 DUT BILA FPGA #1 DUT BILA