Every project or application created for the NetFPGA is defined by a set of regression tests. These tests layout exactly what the application will accomplish. The application provider must ensure that all regression tests will pass and be willing to determine the cause of any failures of the regression tests. The regression tests are essentially the warranty on how the application will perform. Anything that is not tested in regression tests are provided as is.
Project File Structure
To easily create packages using the NetFPGA release scripts, make sure the following directory structure is utilized. Create a directory under the projects file for the application (user_application was used in the example below.
NF2
projects
user_application (should be named by the user)
doc (project specific documentation)
include (contains file to include verilog modules from lib, and creates project specific register defines files)
lib (contains the project specific register C and perl files)
src (contains non-library verilog code used for synthesis and simulation)
synth (contains user .xco files to generate cores and Makefile to implement the design)
regress (regression tests used to test generated bitfiles)
verif (simulation tests)
sw (all software parts of the project)
Create a Wiki Page Documenting the Application
Use the Prefix "Projects:" when naming the project wiki page
The wiki documentation for all applications must include the following sections.
- Summary - brief application summary
- Download - instructions on where and how to download the application
- Description - detailed description
- Usage - detailed instructions on the usage
- Regression Tests - description of the regression tests that define the application
- Additional contributed Software
Additional sections can be added. For instance, the RCP router application has an added section for references.
The following are two examples:
RCP Router
Packet Generator
Create the XML File Describing the Application
The NetFPGA scripts that are used to create tarballs require an XML file that designates what to include in the tarball. For most projects the only directory that is needed in the tarball is the project directory that the user wants to contribute.
Below is an example XML file (release_packet_generator.xml) that was created to package the Packet Generator application. In order to use this code for your application replace 'packet_generator' with the name of your project directory.
<build>
<base name="LICENSE" />
<base name="bitfiles/packet_generator.bit" />
<release name="packet_generator" version="1.0" >
<project name="packet_generator" />
</release>
</build>
Create the Package
Create a new directory that will be used to cache the data while the tarball is being generated. This is also where the tarball will be after running the script.
mkdir release
cd release
Run the NetFPGA packaging script
../NF2/bin/nf2_make_release.pl release_packet_generator.xml
Post the Package
Make sure the package that was created is available using the download instructions from the application wiki page that was created.
- NF2.zip: A transmit node subsystem of network coding system