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
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.