fpgaEva : A Heterogeneous FPGA Evaluation Tool
Project Director: Prof.
Jason Cong
Authors: Hui
Huang, Songjie Xu
VLSI-CAD Lab, CS
Department, UCLA
Copyright © 1998-1999 the Regents of University of California
Table of Contents
What is fpgaEva?
fpgaEva is a heterogeneous FPGA evaluation tool that incorporates a
set of architecture evaluation related features into a user friendly JAVA
interface.
More background?
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.
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 $CLASSPATH
to 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/fpgaEva
It'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.
Technical Reference
-
Jason Cong and Songjie Xu, "Technology
Mapping for FPGAs with Embedded Memory Blocks", Proc. ACM International
Symposium on FPGA, Monterey, CA., Feb. 1998, pp. 179-188.
-
Jason Cong and Songjie Xu, "Delay-Optimal
Technology Mapping for FPGAs with Heterogeneous LUTs", Proc. 35th ACM/IEEE
Design Automation Conf., San Fransisco, CA., June, 1998, pp. 704-707
- Cong, J., S. Xu "Delay-Oriented
Technology Mapping for Heterogeneous FPGAs with Bounded
Resources" Proc. ACM/IEEE International
Conference on Computer Aided Design, San Jose, CA.,
Nov., 1998, pp. 40-45.
Other Materials
Questions and feedbacks?
Please email us: xfpga@ballade.cs.ucla.edu
This page was last modified by huanghui@cs.ucla.edu, Oct 14,1999