Getting Started

The following documentation was followed by the MIT students who developed each benchmark.

Contents

Administrivia

Jacobi Example

Your Benchmark

Design Methodology

  1. Design a hardware library of special-purpose computing elements.
  2. Write a generator program, in C, that takes parameters as inputs and generates a top level behavioral verilog program that 1) instantiates all computing elements and 2) synthesizes the local communication.
  3. Next, write a driver program, in C that is capable of driving either software, simulation, or hardware.
  4. Run the software version of your benchmark using the driver program in software mode.
  5. Create simulation test vectors using the driver program in simulation mode.
  6. Simulate your un-mapped design using the Cadence verilog simulator.
  7. Using Synopsys, synthesize your design for the VirtuaLogic emulator.
  8. Simulate your synthesized design using the Cadence verilog simulator.
  9. Compile your design to FPGAs with the virtual wires compiler.
  10. Compile each FPGA with the Xilinx place and route tool. Note: this could potentially take a long, long, long, long, long, long time. You may want to use more than one workstation in parallel.
  11. Download the resulting configuring onto the VirtuaLogic emulator.
  12. Log into the VirtuaLogic host workstation, and run the hardware using your driver program in hardware mode.
  13. All of these steps are automated once your generate, driver, and library sources are developed. See benchmark/include/raw.make for more details. Good luck!

Flames to me,

jbabb@mit.edu