The RiceNIC is composed of several key elements, some of which are provided by Rice University, and others
that must be obtained separately.
Materials provided by Rice University:
- Firmware
- Firmware is provided for one of the embedded PowerPC processors to enable basic
NIC operation, including serial console debugging and profiling.
- FPGA bitstream
- FPGA bitstreams are provided for both the Spartan and Virtex FPGAs to enable all
necessary hardware functions, including the MAC, DMA, and memory controller units.
- (Optional) FPGA VHDL files (by special
request)
- These files are only required to modify the RiceNIC hardware
- In order to modify the NIC hardware, VHDL source files for Rice-designed custom
logic can be provided by special request. Note that this
logic also requires licenses for standard Xilinx IP cores,
as described below, in order to build a fully-functioning NIC.
These Xilinx cores provide
low-level primitives for MAC and DMA operation and are wrapped
by custom RiceNIC logic
Materials that must be obtained separately:
- Avnet Virtex-II Pro Development Kit, P30 version
- Available from Avnet
Electronics Marketing, this development board features a 64-bit, 66 MHz PCI interface, a 10/100/1000
Ethernet PHY, two FPGAs, and multiple on-board memory
resources. The specific development board used must have
the Xilinx XC2VP30 FPGA and is Avnet model number ADSXLX-V2PRO-DEVP30-6. Academic discounts are
usually available.
- Xilinx Parallel Cable IV (or USB programming cable)
- Available from Xilinx,
this cable is used to program the FPGAs and PROMs on the
development card via JTAG, as well as for optional hardware
debugging support via Chipscope.
- Infineon 256MB SODIMM
- The hardware memory controller on the
Virtex FPGA is currently configured for a particular SODIMM
which should be used for reliable operation. The preferred
memory is an Infineon SODIMM,
part number HYS64D32020GDL-7-B, 32Mx64 SDRAM, PC 2100S-2033-0-A1,
with labels 256MB, DDR, 266, CL2. This part is frequently available
on eBay from used laptops for a minimal cost.
- Compact Flash Card Reader
- To copy the Virtex hardware bitstream to the compact flash card, a compact flash
reader is used.
- Xilinx Embedded Development Kit
- This product may be available
for free as part of the Xilinx University program
- The Xilinx EDK is required to recompile the FPGA bitstream (if desired) and to update
the hardware bitstream with the NIC loader firmware. This package
can be purchased from Avnet with the development board or obtained
from Xilinx. Version 8.1i was used for development, although
the necessary utilities are likely unchanged
in other versions.
- Xilinx ISE
- This product may be available
for free as part of the Xilinx University program
- Xilinx ISE is required for the EDK to function. (The inexpensive EDK merely
provides a wrapper GUI, some scripts, and new IP for the ISE
compilation tools). Most importantly for
the RiceNIC, ISE includes the Impact software that downloads
the compiled bitstream to
the FPGA. The free ISE WebPack, although not tested, should
suffice for this purpose, and can be downloaded
from the Xilinx website. Version 8.1i was used for development,
although the necessary
utilities are likely unchanged in other versions.
- (Optional) Xilinx Chipscope
- This product may be available
for free as part of the Xilinx University program
- This software package is only used to debug the hardware during customization and
is not necessary for normal operation of the RiceNIC.
- (Optional) Xilinx IP core licenses
- These products may be available
for free as part of the Xilinx University program
- In order to customize the hardware design, Xilinx IP licenses are required. Rice
University is unable to redistribute the source code obtained
under our license, and can only provide compiled bitfiles
using this IP. (Source
VHDL code for our custom wrapper logic can be distributed,
however).
- Virtex FPGA - Xilinx Gigabit MAC core [PDF of specific core used]
- Virtex FPGA - Xilinx DDR core (this license is included with the EDK)
- Spartan FPGA - Xilinx 64-bit/66-MHz PCI core for Spartan IIE FPGA [PDF of specific core used]