|
Platform FPGAs can implement a completely
configurable system-on-chip by
containing one or more microprocessors in
a tightly coupled fabric. This delivers very
flexible hardware and software, which can
change continuously throughout the
design and debug cycle.
A powerful set of software debug tools
that can properly support sophisticated
FPGAs is critical for successful project
completion. Debugging and verifying a
design from external pins is problematic at
best. Reliably measuring 200 to 300 MHz
signals (like Fast Simplex Links) over a 3-foot logic cable to an external trace facility
is very difficult – and sometimes impossible
– to make with sub-nanosecond precision.
Furthermore, adding logic paths to
provide for external probing is greatly
intrusive, which may create new place and
route problems as well as timing differences
in the final design.
Simulation can still help you overcome
the simpler roadblocks, but for real-time
or intermittent problems, observing in real
time through in-circuit methods quickly
becomes a necessity. On-board instrumentation
circuits can provide visibility to all
system signals as well as executing programs.
The challenges of verification and
- Instrumentation to provide correlated
hardware and software measurements
- Needing a broad range of engineering
skills
- Extreme flexibility with ever-changing
needs for both
Nohau Corporation has developed a
compact on-chip development system that
enables you to efficiently address these
debug issues. The Nohau solution includes
compact on-chip debug IP called
DebugTraceBlaze that is minimized for
size, connects directly to the on-chip
peripheral bus (OPB), and utilizes on-chip
block RAM for trace storage.
The debug facilities are implemented
two ways: through hardware or software.
The software-based solution uses a small
Xilinx® program called XMD-STUB that
resides in the first 1K block of memory.
The hardware solution uses programmable
logic in the hardware and is transparent to
the software. You may choose the solution
that is best for you.
Personally, I prefer the software solution
because it has less impact on the hardware
and is more flexible for
customization. Also, the cost of 1K of memory is usually insignificant in systems
that often have 1 MB or more. A block
diagram for a typical small system is shown
in Figure 1, illustrating placement of the
Nohau DebugTraceBlaze module.
Please note that the Nohau solution
requires no external signal pins; all access is
through the JTAG port. Furthermore, it
does not impact timing because it only
interfaces through the OPB bus. The
resource utilization in the FPGA for the
Nohau IP is very small. Actual requirements
are shown in Figure 2.
Design/ Debug Flow
The design flow with Nohau tools present
is illustrated in Figure 3. You may build an
initial system from scratch or use a platform
generator like Nohau BlazeGen or
Xilinx Platform Studio (XPS) Base System
Builder (BSB).
Simply specify your system with the
MHS, .MSS, .UCF, and project options
files, which are generated by the platform
builder or user-generated text files. To add
the Nohau DebugTraceBlaze IP to a project,
you first build it with BSB or BlazeGen
and add DebugTraceBlaze IP with a pass
through BlazeGen.
The output of the XPS build is a .bit file
that contains the bitstream required to program
the target FPGA with your system.
The Nohau Seehau debugger is a convenient
and easy-to-use GUI interface that
allows fast and easy updating of system
hardware and software as well as test and
check-out of software execution. Seehau
loads the bit file and programs the FPGA
in just a few seconds.
A second path for code development is
shown in Figure 3. BlazeGen generates
small pre-tested code snippets that fit
entirely in one on-board block RAM to
provide you with a solid starting place for
initial power-up check-out. These snippets
are treated just like user code for input to
the GNU compiler.
You can enter and compile C/C++ code
from inside XPS or from an external editor
and compiler using its own make files. For
large programs, I recommend using an
external GNU make facility. The output
from the compile process is an .elf file that
contains all code and symbolic information
to be loaded directly by Seehau.
As shown in Figure 3, the classic
edit/compile/debug loop familiar to
embedded system engineers centers around
the Seehau debugger. Additionally, a hardware
edit/compile/debug loop is now
included that loops back through new
builds in XPS.
Debugging with Seehau
Seehau provides an intuitive source-level
debugger that can be made aware of logic
signals in the fabric; RTOS state and variables;
correlation of hardware signals to code
execution; and Ethernet performance characteristics
in Internet-aware applications.
Seehau is a full-featured source or assembly
debugger with an integral real-time trace
facility. It supports either PowerPC™ hardcore
or MicroBlaze™ soft-core processors.
You can look back in time from
any execution to follow the path
backward, or you can use the Seehau
event configuration system to specify
pre- and post-triggering, complex
breakpoints, triggers on register reads
and writes, and triggers on data from
the fabric. Figure 4 shows a typical
source-level debug display with
processor registers, memory data,
program data in source form, and
trace and breakpoint status.
Nohau tools are sold as a system,
which includes the Seehau debugger, an
interface pod to the appropriate JTAG
connector, and the IP DebugTraceBlaze
configured with trace memory. As a system,
it may be ordered as EMUL-MICROBLAZE-PC.
The Nohau EMUL-MICROBLAZE-PC provides a 512-frame or
2K-frame deep trace with a trigger,
post-trigger count, and break control.
Probe pins may be either 8 or 40 bits
wide. It will display data connected to
it as specified in the XPS .MHS file.
Figure 5 illustrates a trace display in
mixed mode with C source and assembly
source intermixed. On this single
display, you can correlate the frame at
capture time, the execution address,
the opcode of the instruction executed,
the disassembled MicroBlaze
instruction, the C source line that generated
that instruction, and 40 bits of
data from any logic in the system.
Data from logic can include signals
from your own logic design.
Multiprocessor System Support
Recently, Nohau completed a joint
project with Xilinx, expanding the
Seehau system to include support
for the hard-core PowerPC processor
found in Virtex-II Pro™
devices. As Seehau is a robust,
source-level debugger, the user
interface and source-level feature set
are nearly identical. The only major
changes from an embedded system
engineer’s point of view are the
processor-level language on disassembled
screens and the register set
associated with the PowerPC architecture.
Figure 6 shows a sourcelevel
debug screen of a typical
PowerPC debug session.
Seehau has also been expanded to
include support for multiple processors
in the same fabric. The processors are
run independently. Figure 7 shows a set
of screens for a two-processor system.
The Nohau GUI provides a simple,
easy-to-use interface that assigns
a complete set of control and status
windows to each processor. All
Seehau windows are available for
both processors, and show the name
given to each processor in the top
banner. In the case shown in Figure 7, the execution sites are named
MB1 and MB2.
When you select a command from
a pull-down list by clicking on it, the
command is directed to the processor
assigned to the window in focus. You
control the set of windows open for
each processor through a pull-down
menu. The choice of open windows is
controlled by your selection of new
windows to view. The result is an easy-to-use, intuitive user interface.
Conclusion
Getting the right tool set and development
environment set up for a new
FPGA project is critical to the success
of the product development cycle. A
highly productive development and
debug environment based around
Nohau tools supports these new multiprocessor
systems, with an extension
of the same powerful debug and test
tools the company has offered for the
last 20 years.
For more information, please visit
www.nohau.com, www.iq-service.com,
or e-mail darrell@iq-service.com or
darrellw@nohau.com.
* I.Q. Services is under contract to support
and market platform FPGA tools
for Nohau Corporation and performs
custom start-up engineering for platform
FPGA embedded system designs.
Printable PDF version of this article with graphics. (10/25/04) 300 KB |