|
Xilinx FPGAs have been a great platform
for control logic and system interfaces for
years, but have been missing the processor
capabilities fulfilled by external processors
in every application. Today’s complex systems
require a large amount of memory, a
super fast microprocessor, a digital signal
processor, and a variety of system interfaces
to communicate with other chips, systems,
and backplanes.
Every system has an external processor
and memory component that delays system
performance and increases system component
cost. Once you’ve integrated both,
you can then concentrate on making your
system faster and eliminate performance
bottlenecks.
Many companies have focused their
efforts on developing the system-on-chip
concept by adding feature sets to bring
additional functionality to single silicon.
These customized ASICs have become a
very costly solution in today’s competitive
and time-to-market landscape.
FPGA technology has come a long way
in recent years by increasing a large number
of intellectual properties to reduce the cost
of silicon development in various markets.
This was accomplished by optimizing
architecture, leading process technology,
and adding both soft and hard embedded
processor cores.
Some of the applications
for embedded processors are
infotainment systems in
automotives, security systems
in storage and networking
markets, high-speed data
analysis by data warehouse,
and system monitoring in
various applications. Having
a processor inside an FPGA
is the perfect design innovation
for these types of applications;
a programmable
system-on-chip in the FPGA
will not only support changing
IP standards but can also
quickly adapt to newly
defined programmable systems
for new markets.
Embedded Development Kit
Xilinx expanded the features within its
FPGAs by adding embedded IBM™
PowerPC™ 405 processors in its Virtex-II
Pro™ devices and MicroBlaze™ soft
processors in both the Virtex™ and
Spartan™ architectures. This is just another
step towards innovation, similar to embedded
block memory, block multipliers, clock
management, and multiple high-speed I/O
circuitries.
Time to market still remains critical to
all companies developing both hardware
and software for a system. With the
Embedded Development Kit (EDK) from
Xilinx, you can simultaneously create both
hardware and software designs and generate
a system file with just a few tool clicks.
The tool allows you to create block-based
processor systems with many widely used
peripherals like Ethernet MAC, GPIO,
SDRAM Controller, UART, and IIC, all in
one silicon.
With EDK v6.2 (Figure 1), the base system
builder (BSB) wizard allows you to
select any board from Xilinx and its distributors
and connect the processor to any
board component with just a few clicks. It
also creates a simple software application in
C that you can expand and customize.
The EDK tool also comes with a GNU-based
compiler/debugger, allowing you to
compile and debug within the same GUI used to develop the hardware system. The
library generator (LibGen) in EDK creates
all of the libraries, drivers, executables, and
link files for the processor design.
Initial support for the board support
package (BSP) includes Wind River
Systems’ vxWorks™ for PowerPC-based
embedded designs and the Xilinx microkernel
for MicroBlaze-based designs.
EDK v6.2 has automated the memory
addressing capabilities of all of the selected
design peripherals. It also has the
capacity to bring developed cores into the
tools environment, adding them to the
processor or peripheral bus. For example,
you can create a core in System Generator
for DSP and bring a finite impulse
response (FIR) filter or other IP into your
processor-based design.
EDK is fully capable of running ISE
tools in the background with a built-in feature
called XFLOW, achieved by a command-line script file. This flow can
synthesize, place, route, and generate hardware
configuration files; compile and execute
multiple software codes; generate
libraries for code; and merge firmware to
hardware files for downloading to a target
board. All of this is achieved by just a few
clicks in the EDK software.
EDK v6.2 also allows you to add
ChipScope™ Pro cores during the design
process to debug your design in hardware.
You can add ICON, ILA, and IBA cores the same way that you can add
user or Xilinx IP. Once you have
downloaded the design into a
target board, you can open the
logic analyzer to trigger signals
and view the wave form to
debug your systems.
With ChipScope Pro 6.2
software, a powerful virtual
I/O core has been added,
which you can use as a DIP
switch or LED to simulate signals
and view outputs.
The Nu Horizons Spartan-3 Board
Xilinx and its distributors have
several boards for prototyping or
emulating a processor-based system.
A low-cost and widely
adaptable prototyping platform from Nu
Horizons is the Spartan-3™ development
board (HW-AFX-SP3-400-DB).
NuHorizons recognizes the importance
of prototyping platforms for its customers,
as well as entering into new markets where
Spartan-3 allows us to increase market
share. The board (Figure 2) comprises the
following:
- Xilinx 3S400-4PQ208C Spartan-3
device
- 4 x 24 character LCD
- LED
- Push button
- Oscillator with PLL
- RS232-C interface
- A/D and D/A converter
- Flash memory
- SDRAM memory
- JTAG configuration header for programming
- Test point headers for debugging
device
This fully loaded Spartan-3 development
board includes all the features necessary
to prototype a MicroBlaze-based
embedded system design. The board comes
with the Xilinx WebPACK™ version of ISE tools, design files, user’s manual, and
documentation. The option of getting the
board bundled with ChipScope Pro and
EDK software is also available.
The Spartan-3 board comes with a simple
display controller design that uses the
MicroBlaze core, a few GPIOs, RS232,
and a JTAG interface designed in EDK.
The BSB flow makes it very easy to target
the Nu Horizons board in EDK and generate
an embedded design with the
MicroBlaze processor in a few clicks. With
the GNU debugger and ChipScope Pro
software, you can debug a design within
the same GUI environment.
Besides the MicroBlaze core, the
Spartan-3 platform is a great tool in which
to implement the Xilinx PicoBlaze™ 8-bit
soft controller reference design.
Nu Horizons field application engineers
have written several designs covering
memory controllers, embedded processors,
hardware-in-the-loop with digital signal
processing (DSP), and system monitor
design using analog-to-digital (ADC) and
digital-to-analog converters (DAC) on the
board. ADC and DAC are very powerful
attributes of our low-cost board, and two
of the many competitive board features.
The Nu Horizons Spartan-3 board also
supports Shift-Right Technologies’ free
open-source eXtreme Minimal Kernel
(XMK). XMK is a 100% free, preemptive
multi-threaded RTOS for microcontrollers.
XMK’s primary design goal is to be
extremely small without sacrificing performance
or functionality.
XMK’s minimal footprint makes it
ideal for running an 8-bit microcontroller,
while its feature content makes it an excellent
choice for 16-bit and 32-bit microcontrollers.
uIP is one of the several free TCP/IP
stacks integrated into the XMK operating
system. The uIP TCP/IP stack makes it
possible to connect to a TCP/IP network
without sacrificing interoperability or
RFC-standard compliance.
Conclusion
The era of creating embedded designs in
FPGAs is here. With tools like EDK, anyone
can implement a powerful system-onchip
design within days.
The Spartan-3 board from Nu Horizons
is a perfect solution for prototyping logic
and embedded processing in Xilinx FPGAs.
The board has all of the interfaces necessary
to create an embedded system design.
Nu Horizons is also in the process of
releasing a Spartan-3 (3S1500) platform
board for those who need higher density
logic, more memory, and a high-performance
interface for video and imaging
applications.
All of the designs and related documentation
for the Spartan-3 board are available
on the Nu Horizons website at
www.nuhorizons.com/products/xilinx/spartan3/development-board.html.
Printable PDF version of this article with graphics. (8/1/04) 390 KB |