fpgaEva is a heterogeneous FPGA evaluation tool that incorporates a set of architecture evaluation related features into a user friendly JAVA interface. Modern field programmable gate arrays (FPGAs) provide in a single device both logic array for general logic functions and embedded memory blocks (EMBs) for efficient implementation of on-chip memory and specialized logic functions. Besides, recent generation of FPGAs take advantage of speed and density benefits resulted from heterogeneous FPGAs, which provide either an array of homogeneous programmable logic blocks (PLBs), each configured to implement circuits with lookup tables (LUTs) or different sizes, or an array of physically heterogeneous LUTs. LUTs with different sizes usually have different delays.
We have explored the possibility of using EMBs to implement logic functions when they are not used as on-chip memory . A technology mapping algorithm was developed for FPGAs with embedded memory blocks. Also, we have presented algorithms for technology mapping using heterogeneous FPGAs with or without resource limitations. These algorithms have been implemented in the RASP (the UCLA RApid Synthesis Prototyping system).
fpgaEva uses the above algorithms to evaluate different FPGA architectures, for delay minimization purposes. For details about the algorithm, please refer to the papers listed in the technical reference section.
fpgaEva team:
- Jason Cong
- Hui Huang
- Songjie Xu
System requirement
- There's no special requirement on the hardware as long as you can run Java program comfortably, since fpgaEva doesn't take much CPU time or memory.
- You're required to have an Internet connection if you are running fpgaEva on a non-unix based computer or if you don't have our RASP system installed on your local unix machine. Although dial-up connections are acceptable to run fpgaEva, a faster internet connection is always desirable. The network traffic for each evaluation session is roughly 20~200K bytes.
- Your machine must be JDK 1.1 ready, which means you must have either installed SUN's JDK 1.1 package or have a compatible JDK from other vendors. SUN's JDK 1.1 is free to download for both UNIX platform and Windows platform. Other commercial Java Development Environments that support JDK 1.1 include Microsoft's Visual J++ 6.0. JDK 1.2, which has recently been renamed to Java2 SDK, is also ok to run fpgaEva.
Where to download and how to install?
For UNIX
- Find a directory you wish to install fpgaEva, let's say /home/huanghui/fpgaEva.
- download the fpgaEva loader into that directory.
fpgaEva loader is an fpgaEva installer written in Java 1.1. It can automatically install fpgaEva on your local machine and keep it up-to-date in the future. The fpgaEva loader program contains only one Java class file -- loader.class
- Assuming you've put the fpgaEva loader file "loader.class" into directory /home/huanghui/fpgaEva, please make sure that directory is in the CLASSPATH environment variable. If you are not sure, do the following in a command box:
echo $CLASSPATHto see if the directory name "/home/huanghui/fpgaEva" is there. If not, please add it to the CLASSPATH by using the following command:setenv CLASSPATH /home/huanghui/fpgaEvaIt's recommended that you add the above line into your ".cshrc" file so that you won't have to do the same thing everytime you want to run fpgaEva
- Use "java loader" to start the fpgaEva loader. It will automatically download the necessary binary files into the directory where it's started, in our case, /home/huanghui/fpgaEva. After installation, the loader program will attempt to start fpgaEva automatically.
For Windows
- Find a directory you wish to install fpgaEva, let's say C:\fpgaEva
- download the fpgaEva loader into that directory.
fpgaEva loader is an fpgaEva installer written in Java 1.1. It can automatically install fpgaEva on your local machine and keep it up-to-date in the future. The fpgaEva loader program contains only one Java class file -- loader.class
- Assuming you've put the fpgaEva loader file "loader.class" into directory C:\fpgaEva, please make sure that directory is in the CLASSPATH environment variable. If you are not sure, do the following in a MS-DOS command box:
echo %CLASSPATH%
to see if the directory name "C:\fpgaEva" is there. If not, please add it to the CLASSPATH by using the following command:
set CLASSPATH=C:\fpgaEva;%CLASSPATH%
It's recommended that you add the above line into your "AUTOEXEC.BAT" file so that you won't have to do the same thing everytime you want to run fpgaEva
- Use "java loader" to start the fpgaEva loader if you have JDK 1.1 or above installed.
- Use "jview loader" to start the fpgaEva loader if you have Microsoft Visual J++ installed.
Troubleshooting: If you received "Command not found" error, that's because the java.exe coming from Sun's JDK packet or jview.exe coming from Microsoft's Visual J++ is not in your PATH environment. Please find where they are located and add them to your PATH environment.
This command will invoke the fpgaEva loader which will automatically download the necessary binary files into the directory where it's started, in our case, C:\fpgaEva. After installation, the loader program will attempt to start fpgaEva automatically.
How to start fpgaEva
It's in the same way with installing fpgaEva. That is:
- Check if the directory where you installed fpgaEva in contained in the CLASSPATH environment variable.
- For UNIX user, please type "echo $CLASSPATH" in a command box;
for Windows user, please type "echo %CLASSPATH%".
If the directory where you installed fpgaEva is not in the CLASSPATH directory, please add it.
For UNIX user, please type "setenv CLASSPATH /full/directory/name";
for Windows user, please type "set %CLASSPATH%=drive:\full\directory\name;%CLASSPATH%" - type "java loader" at commandline if you are using Sun's JDK package;
- for Microsoft Visual J++, please type "jview loader";
Looking for source code?
The source code of fpgaEva can be found by following this link.
The RASP system can be downloaded by following this link.
Other Materials
- Instructions on how to build fpgaEva
- Document on the communication protocol between fpgaEva and the RASP server
- Document on the output of fpgaEva_version.cgi -- instruction format on updating fpgaEva
- Slides used on the DAC '99 conference
Questions and feedbacks?
Please email us: xfpga@ballade.cs.ucla.edu