24.11.2012 Views

Discover New Applications For Low-Cost Solutions Discover ... - Xilinx

Discover New Applications For Low-Cost Solutions Discover ... - Xilinx

Discover New Applications For Low-Cost Solutions Discover ... - Xilinx

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Integration of Functions<br />

Glue Logic<br />

Gates<br />

Distributed Memory<br />

System-Level<br />

Function Blocks<br />

Block RAM<br />

High-Speed I/O<br />

Multipliers<br />

DCM<br />

1980s 1990s 2000s<br />

Figure 1 – Paradigm shift in programmable platforms<br />

critical part of the overall debug process. It<br />

is therefore important that specialized tools<br />

and methodologies be developed that promote<br />

debug efficiency and provide a<br />

streamlined approach to verification.<br />

<strong>For</strong> a while now, HW/SW co-verification<br />

has been quite commonly used to<br />

debug ASIC SoC designs. Now, with an<br />

increasing number of FPGA design starts<br />

involving embedded processors, this technology<br />

is becoming meaningful and important<br />

for FPGA designers as well.<br />

Co-Verification for Platform FPGAs<br />

Mentor Graphics’ Seamless Co-<br />

Verification Environment (CVE) is the<br />

industry’s leading HW/SW co-verification<br />

tool – and now it supports the <strong>Xilinx</strong><br />

Virtex-II Pro family of FPGAs. The<br />

basic concept behind co-verification is to<br />

merge the respective debug environments<br />

used by hardware and software teams into a<br />

single framework.<br />

<strong>For</strong> example, a logic simulator is made to<br />

communicate with a software debugger,<br />

enabling you to get simultaneous control<br />

and visibility into the internals of the processor,<br />

as well as the hardware peripheral logic<br />

that surrounds it, as shown in Figure 2.<br />

An efficient co-verification tool can help<br />

uncover a range of HW/SW interface<br />

problems, including:<br />

• Initial startup and boot sequence errors<br />

(including RTOS boot)<br />

• Processor and peripheral initialization<br />

and configuration problems<br />

Platform for<br />

Programmable<br />

Systems<br />

Platform FPGAs<br />

• Memory accessing and initialization<br />

problems<br />

• Memory map and register map<br />

discrepancies<br />

• Interrupt service routine errors.<br />

To realize the many benefits that coverification<br />

has to offer, there are three<br />

prerequisites for the design under test. A<br />

co-verification design environment typically<br />

involves the following scenario:<br />

1. The system has a processor executing<br />

software code that interacts with surrounding<br />

custom peripheral logic.<br />

2. There is extensive interaction between<br />

software and hardware parts of the<br />

design during execution.<br />

3. Both hardware and software engineering<br />

teams agree on using co-simulation<br />

early in the design stage.<br />

Software<br />

Debugger<br />

PPC<br />

405<br />

ISS<br />

SW Domain<br />

10,000X Faster Access to Memory<br />

These prerequisites guarantee a smooth<br />

methodology flow and a common communication<br />

medium between the two teams.<br />

Co-Verification vs. Simulation<br />

Seamless CVE advances the concept of<br />

“functional simulation” in traditional logiconly<br />

FPGA designs to “co-verification” in<br />

processor-based Virtex-II Pro Platform<br />

FPGAs. This methodology establishes value<br />

for multiple design teams including hardware<br />

engineers (peripheral logic debug),<br />

embedded software engineers (application<br />

and firmware debug), and system designers<br />

(performance analysis and tuning). Let’s discuss<br />

some of the many advantages Seamless<br />

co-verification offers over simulation.<br />

Faster Performance<br />

Pure logic simulation can be used to simulate<br />

a design with a processor component. This is<br />

accomplished by including an RTL model of<br />

the processor to simulate the software code.<br />

This approach, however, is painfully<br />

slow and not adequate to address all but<br />

the most basic debug requirements. The<br />

overall simulation speed is generally in the<br />

sub-100 Hz range.<br />

Co-verification, on the other hand, is<br />

able to run simulation orders of magnitude<br />

faster. This speedup is achieved primarily<br />

through the use of clever tool optimizations<br />

and faster processor models known as<br />

instruction set simulators (ISSs).<br />

To understand the concept of optimization,<br />

note that the real bottlenecks in simulation<br />

are due to the accurate but slow logic<br />

simulators. Every time the software needs to<br />

CoreConnect<br />

Bus Model<br />

On-Chip<br />

Off-Chip<br />

Memories<br />

HW Domain<br />

Peripherals<br />

Fall 2003 Xcell Journal 15<br />

CVE<br />

Kernel<br />

Memory<br />

Server<br />

BIM<br />

A<br />

D<br />

A<br />

D<br />

Logic<br />

Simulator<br />

Figure 2 – The Seamless Co-Verification Environment connects hardware and software verification<br />

environments for Virtex-II Pro FPGAs.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!