FINE GRAIN DESIGN FLOW HELP

 

VHDLPARSER
INPUT: VHDL source
OUTPUT: Syntax check message
USAGE: This tool is used to check the correctness of the VHDL file compared to the prototype VHDL-93.

DIVINER
INPUT: VHDL source
OUTPUT: EDIF netlist (commercial tool format)
USAGE: The DIVINER tool is used as a synthesizer of RTL VHDL language.

DRUID
INPUT: EDIF netlist (commercial tool format)
OUTPUT: EDIF netlist (T-VPack format)
USAGE: The DRUID tool is used to modify the EDIF output file that is produced during the synthesis step, so that is can be used by the following tools of the design flow.

E2FMT
INPUT: EDIF netlist
OUTPUT: BLIF netlist
USAGE: Translation of the netlist from EDIF to BLIF format.

SIS
INPUT: BLIF netlist (generic components)
OUTPUT: BLIF netlist (LUTs and FFs)
USAGE: SIS is used for mapping the logic described in generic components (such as gates and arithmetic units) into the elements of the proposed fine-grain reconfigurable architecture.

POWERMODEL
INPUT: BLIF netlist, Placement and routing file
OUTPUT: Power estimation report
USAGE: The PowerModel tool estimates the dynamic, short-circuit, and leakage power consumption of an island-style FPGA.

T-VPACK
INPUT: BLIF netlist (gate and F/Fs)
OUTPUT: T-VPack netlist (LUTs and F/Fs)
USAGE: The T-VPack tool is used to group a LUT and an F/F to form a Basic Logic Element (BLE) or some BLEs to form a Cluster.

VPR
INPUT: T-VPack netlist (LUTs and F/Fs), FPGA architecture file
OUTPUT: Placement and routing file
USAGE: placement and routing of the target circuit into the FPGA.

DUTYS
INPUT: FPGA features
OUTPUT: FPGA architecture file
USAGE: Generates the architecture file description of the target FPGA.

DAGGER
INPUT: PowerModel, Placement and Routing file, FPGA architecture file, T-VPack netlist
OUTPUT: FPGA configuration bit stream file
USAGE: The DAGGER tool is used to generate the configuration bitstream file.

 

The Graphical User Interface (GUI) provides the designer with the opportunities to easily use all (or some of the tools) that are included in the AMDREL design flow. The GUI is shown in the following Figure. It consists of six independent stages: i) the File Upload, ii) the Synthesis, iii) the Format Translation, iv) the Power Estimation, v) the Placement and Routing and vi) the FPGA configuration stage. Until now, there is no other academic implementation of such a complete graphical design chain. The main GUI advantage is the fact that it is friendly to the non-experienced designer who does not need to be familiar with the Linux OS. It is possible to run it either from a local PC or through the Internet/Intranet, and the source code can be easily modified in order to add more tools. Regardless of the execution (locally or through the network) the AMDREL interface runs on the web-browser, and can program an FPGA that is attached to the user’s PC.

In order to select a design tool from the AMDREL design flow, the user simply has to left-click over the corresponding tool icon. For non-experienced users there is a short tool description, which is displayed every time the mouse cursor is over an icon. In addition to that, the design flow is separated into six different processes, each one referring to a distinct design stage, and each with its own GUI. Among these processes are the file upload to the server, the circuit synthesis, the format translation, the power estimation, the placement and routing, and finally the FPGA configuration. The reason of this separation is the grouping of the FPGA programming procedure, in a way that the last to be more to the end user. In this point, it should be mentioned that in commercial tools there is a similar separation into distinct stages.

First of all the required files we have to be uploaded to the server. Among these files is the circuit description in VHDL or in EDIF format, or even the circuit description directly in BLIF format. This upload is made by the FileUploader GUI. Then, a corresponding GUI for each of the tools described in the previous subsections follows. Each of the input files mentioned in the previous subsections has to be uploaded and the corresponding output files are produced and can be viewed or downloaded. Therefore, it is possible to run any tool in the design separately, starting and stopping at any point in the flow the user desires.

The file storage (of both the files that are sent to the central server through the GUI’s “File_Upload” choice, as well as of those created during the design) is made locally to the central server with a way that ensures the integrity and security from other users. To achieve in this, all the user’s files are stored to the central server into a folder with a unique name, and which is univocally defined from the user’s PC Internet Protocol (IP) address. Additionally, it is possible to run the AMDREL design flow partially, meaning that files that were produced by a previous run can be used as long as they are in the same computer. The only case in which a problem would occur is trying to program a device using two or more distinct computer systems. This is not possible since the computers would have different Internet Protocol (IP) addresses. Also for safety reasons, each time a user attempts to connect to the central server, a password is required of him, in order to verify that the user is authorized to use the tool flow. Originally, the input/output files are declared followed by the values of the various tool parameters. If some of the fields are required, then it is written so next to the text box. The input files must either have been previously created by another tool, or have been sent to the central computer directly by using the file uploader GUI. By filling all the desired parameters by the user, the data are sent to the central computer, after the “Start” button at the end of the screen is clicked. In case this happens before all the necessary fields are completed, an error message is produced. As soon as the data arrive to the central computer, the tool that corresponds to the specific menu is executed with the data provided by the user (VPR in this case). After the completion of the tool’s execution, the produced results appear on the user’s screen. The VPR tool GUI output includes both text files (declared with a book icon) and schematics in PDF format (signified with a PDF icon). In order to display the contents of any of these files on screen, the user has to left-click the corresponding icon. The precise file name each hyperlink leads to appears in bold letters. In all tool GUIs the first output text file bears the description “View the results of the (tool name) execution”. Its content is the output that appears on the central computer’s screen during the tool’s execution with the user defined parameters and input/output files. It is very helpful in order to locate possible errors during the tool execution.