This package is an NRM solver on an FPGA. Intended to be implemented on
Xilinx's Virtex-5 series FPGAs (tested on XC5VLX110T-1FF1136C). The
number of modules (data units) can be adjusted to fit desired
FPGA. Larger number of data units can provide better performance. 
Please refer publications for detail.

To implement on Xilinx Virtex-5 series FPGAs:

1. Create an ISE project.

2. Add all *.v files under all directories but except:
     cores/ bus/ demux/ top/

3. Add all cores in cores/ folder to the project. You may have to edit
   the .xco files, especially there 4 lines:
     SET device = xc5vlx110t
     SET devicefamily = virtex5
     SET package = ff1136
     SET speedgrade = -1
   It is not impossible to implement other FPGA families than Virtex-5, 
   but cores of floating point arithmetic units will have different pipeline
   latencies. Additional HDL will be required (such as cores/corewrappers.v) 
   to adjust them.

   Please don't forget to run "Regenerate all cores".
   The .xco files are confirmed to work with Xilinx ISE 13.3.

4. Choose a top module from top/ folder, then add it to the project.
   nrm1.v is the minimum configuration. nrm20.v is the largest and fastest
   configuration to fit XC5VLX110T. They contain same number of numerical
   units, but different data units. Thus, they have different concurrency.

5. Find modules required by the top module in bus/ and demux/.

That's all. Please be careful that this package DOES NOT CONTAIN ANY 
HOST INTERFACE, so users have to add it to use their own FPGA cards.

Please ask Dr. Masato Yoshimi in Doshisha University for further detail.

