FPAA Virtual Machine Tool Site
An example of the entire tool flow for a low-pass filter (LPF) computation.
(a) The user chooses basic design options through the
large-scale Field Programmable Analog Arrays (FPAA)
Tools GUI,
which starts running when the Scilab tools are started in the distributed Ubuntu Virtual Machine (VM).
(b) snapshot of the Xcos palette for FPAA blocks.
There are four sections, namely the analog, digital, input/output and complex blocks;
the analog, digital and I/O blocks consist of basic elements in different tiles of a chip.
Complex blocks are pre-defined circuit blocks made of more than one basic element.
(c) Simulation results for four input and output computation.
Lines, and resulting blocks,
allow for vectorized, as well as scalar inputs.
Inset shows the Xcos diagram;
the user sets parameters for simulation or for compiling into an integrated circuit.
(d) Experimental results for a one input and output computation.
-
The toolset was developed at Georgia Tech,
in the research group of Dr. Hasler,
as research effort connected with FPAA devices.
-
The result of this effort has been heroic work on the part of many
graduate students as well as the PI.
-
The tool flow was originally developed in MATLAB based tools,
particularly a flow build in Simulink.
-
The current toolset is based upon Scilab / Xcos to enable
a tool platform that is freely available.
These ICs use a place and route methodology based upon VTR / VPR,
primary a unix based tool.
Everything is pulled together in an Ubuntu virtual machine,
including our FPAA tool code.
The current toolset was developed for the RASP 3.0 set of ICs
(currently unpublished devices; info will be linked when publically available).
Further, the approach can be modified to handle a wider range of configurable systems.
Link to Scilab
Link to VirtualBox
Link to VTR / VPR
-
This toolset gives the capability for simulating an FPAA structure.
We have a longer paper
on macromodeling for our FPAA devices to describe these effects.
In particular, we define our block approaches as
- Level = 1: Macromodeled devices; constraints on blocks
such that they fit into a data flow architecture
(i.e. voltage signals, vectorized flow, etc.)
- Level = 2; general circuit level design and simulation.
Simulation not implemented at this stage.
- Also, you should make sure you download the
(VirtualBox 4.3.6 Oracle VM VirtualBox Extension Pack )
extension patch for
Virtual Box so you can access the USB port in most / all cases.
- These tools can be used entirely for macromodeling systems
similar to what one would find in compiled silicon,
can be used with existing FPAA boards (RASP 3.0 boards are compatible),
as well as can be used through our remote testing system.
The remote testing system is a physical computer with an FPAA board
connected through a USB connection
enabled to run a resulting programming code and data sequence.
At GT, we reserve the right to allow only authorized /
approved users on the remote server at any time.
Example use of the remote testing infrastructure
We want to show a simple example of how to bring up the tools
and use the resulting remote testing infrastructure.
- First, bring up the Ubuntu 12.04 Virtual Machine (VM).
- When the machine is running,
note the box with the CADSP logo inside,
and push the box once to start the tool set
(multiple times will open multiple windows; look if the virtual hard drive to start).
- When your scilab window comes up,
start by noticing the blue GUI box
(Blue background, with gray-ish buttons).
-
The GUI block has a pulldown menu.
Select one block from the example
pull down tab on the blue GUI box.
The ideal case is using the DAC -- ADC block,
and usually the best starting test case.
- make sure you define "myVariable", such as [0.2:0.1:2.5] in the scilabs
main command prompt window and press enter.
-
Click the "Compile Design" button on blue GUI.
-
The remote test system uses exactly the same toolset as if you had a board,
but you email the file rather than programming a local board.
The results will be emailed back to your email.
-
Click the "Send Email" button on blue GUI.
You will get an email that will include the resulting data from this structure.
-
The remote system changed recently to make sending files easier without having email security issues.
The best approach we have is allowing one to send email using say a gmail account.
It will require you to input your account name and password,
but that info is only used to authenticate your email (POP) submission.
Some useful resources to use
- Documentation on
setting up
your system FPAA
- FPAA Remote System User
Suggestions
- Slides on Experimental
Setups
that includes basic circuit configurations,
as well as level=2 (modelica) simulations in Scilab / Xcos.
An older example
(may not work for all systems without expertise, but kept for completeness)
-
Click on choose design and
navigate to RASP_Workspace/test_00701_EmailRemote2/
and select the recently downloaded xcos file named test_0701_EmailRemote2.xcos
-
The output vector is the run-mode result from the myVariable input.
The example ("test_0701_EmailRemote2.xcos" )
is ARB_GEN connected voltage measurement using mite block. It's hex code values now since the server uses just unix command line without scilab. The first 24 values before "0xffff" are valid numbers, which is decreasing when DAC's value in input vector decrease.
-
In the blue GUI, type in 10 for chip number and press enter,
type in your email address in the email address bar and press enter,
type "myVariable = linspace(0.2,2.5,24)" in the scilabs
main command prompt window and press enter.
-
A key point going forward is that the folder for your project must be the same as the filename
(test_0701_EmailRemote2) for proper operation, that might be improved in future versions.
-
Click on choose design and
navigate to RASP_Workspace/test_00701_EmailRemote2/
and select the recently downloaded xcos file named test_0701_EmailRemote2.xcos
-
In the blue GUI, type in your chip number and press enter,
type in your email address (ideally a gmail address) in the email address bar and press enter,
type "myVariable = linspace(0.2,2.5,24)" in the scilabs
main command prompt window and press enter.
-
Click the "Compile Design" button on blue GUI.
-
Click the "Send Email" button on blue GUI.
You will get an email that will include the resulting data from this structure.
FAQ:
- These FPAA devices are very interesting.
I would want to be able to obtain some FPAA devices.
How would I go about obtaining FPAA devices?
Although these FPAA devices are not currently available commercially,
we are actively working to find a way to enable distributing FPAA devices.
More information will be posted when such an opportunity is available.
|