Introduction - College of Engineering | UMass Amherst
ECE 667 Fall 2014 Synthesis and Verification of Digital Circuits GAUT: GAUT: Gnration Gnration Automatic Automatic dUnit dUnit de de Traitement Traitement ECE 667 Synthesis & Verification - Design Flow
Design flow for DSP applications High-level Model )C, Matlab( High-Level Synthesis RTL Model Logic Synthesis Structural Netlist )Gate-Level( Physical Synthesis
Physical Layout Fabrication ECE 667 Synthesis & Verification - Design Flow 2 Introduction Due to rising complexity of modern digital circuits, a growing demand has emerged to design hardware at higher levels of abstraction targeting faster design adjustments and higher simulation speed. To automate the design of such embedded systems,
developing high-level synthesis tools that automatically convert the high-level specification to a lower level model (i.e. RTL, Structural Netlist (gate-level)) is desirable. ECE 667 Synthesis & Verification - Design Flow 3 GAUT high-level synthesis tool GAUT is a HLS (High Level Synthesis) tool developed at the Universite de Bretagne Sud (UB). Lab-STICC laboratory. GAUT generates RTL descriptions from a pure bitaccurate algorithmic specification described in C/C++ language.
ECE 667 Synthesis & Verification - Design Flow 4 Design flow, where is GAUT? ++C or C High-Level Synthesis with GAUT Design Compiler by Logic Synthesis Synopsys
XST(deliverd within ISE) by Xilinx Quartus II by Altera Physical Synthesis GAUT is compatible with XST for logic ASIC or FPGA synthesis and Placement-& Rout ISE for physical synthesis ECE 667 Synthesis & Verification - Design Flow
5 Interface Inputs AC or C++ file containing the algorithm to be synthesized. A library of operators characterized for a given technology target Outputs A VHDL RTL code (.vhd file) A description of the timing diagram of the I/O of the cicuit (.mem
file) Other files generated to interface GAUT with other tools for synthesis. ECE 667 Synthesis & Verification - Design Flow 6 Architecture The architecture of the hardware components that GAUT generates is composed of three main functional units: Processing Memory
unit (PU) unit (MEMU) Communication & Interface Unit (COMU) ECE 667 Synthesis & Verification - Design Flow 7 GAUT target architecture
ECE 667 Synthesis & Verification - Design Flow 8 GAUT high-level synthesis flow Front End Back End ECE 667 Synthesis & Verification - Design Flow 9
The Front End The input description is a C/C++ function. Algorithmic CTM class library from Mentor Graphics is used. This allows the designer to specify signed and unsigned bit-accurate integer and fixed-point variables by using ac_int and ac_fixed data types. This library provides fixed-point data-types that supply all the arithmetic operations and built-in quantization (rounding, truncation. . . ) and overflow (saturation, wrap-around. . . ) functionalities. ECE 667 Synthesis & Verification - Design Flow 10
The Front End Example: ac_fixed <5,2,true,AC_RND,AC_SAT> is a signed fixed-point number of the form bb.bbb (five bits of width, two bits integer) for which the quantization and overflow modes are respectively set to rounding and saturation. ECE 667 Synthesis & Verification - Design Flow 11 The Front End A) Compilation : The role of the compiler is to transform the initial C/C++
specification into a formal representation which exhibits the data dependencies between operations. The compiler of GAUT derives gcc/g++ 4.2 to extract a data flow graph (DFG) representation of the application. The source file is processed in four main steps by gcc/g++: 1) The C preprocessor (cpp) expands the preprocessor directives. ECE 667 Synthesis & Verification - Design Flow 12 The Front End 2) Constructs the Abstract Syntax Tree (AST) for each
function of the source file. The AST tree is next converted into a CDFG like unified form called GENERIC. The GENERIC representation is lowered into a subset called GIMPLE form. 3) False data dependencies are eliminated with Static Signal Assignment (SSA) and various scalar optimizations (dead code elimination, value range propagation, redundancy elimination). Loop optimizations (loop invariant, loop peeling, loop fusion, partial loop unrolling) are applied. 4) The GIMPLE form is translated into the GAUT internal representation. ECE 667 Synthesis & Verification - Design Flow 13
C code of Taylor(exx) ECE 667 Synthesis & Verification - Design Flow GIMPLE GIMPLE form form 14 The Front End B) Bit-Width Analysis Constant
bit-width definition Bit-width and value range propagation C) Library Characterization Library characterization uses a DFG, a technological library and a target technology. This step, based on commercial logic synthesis tools like ISE from Xilinx and Quartus from Altera, produces a library of time characterized operators to be used during the following HLS steps. ECE 667 Synthesis & Verification - Design Flow 15
The Front End D) Operation Clustering Combine the computational function and the operation delay. This allows to indirectly consider operations bit-width since the propagation time of an operator depends on its operands size ECE 667 Synthesis & Verification - Design Flow 16 GAUT Main Window
ECE 667 Synthesis & Verification - Design Flow 17 GAUT Main Window The main window consists of the following design steps: Compilation Library and graph exploration, characterizing, Datapath Memory
ECE 667 Synthesis & Verification - Design Flow 18 Step 1: Compiling the C code Click on the yellow box with label of "C/C++ compiler". Click on the open icon and select the path of the C/C++ file in your computer. For example C:\GAUT_2_4_3\test\ taylorexp\taylorexp.c Compile the code by clicking on the "compile button". IF there is any error in your code, gcc returns the errors. Click on the graph tab and then click on the open button and load the taylorexp.cdfg file, which is the cdfg of the design.
"notech_16b is selected by default as the technological target library. ECE 667 Synthesis & Verification - Design Flow 19 C/C++ Compiler Open ECE 667 Synthesis & Verification - Design Flow Compile 20
Graph Tab Back to Flow ECE 667 Synthesis & Verification - Design Flow 21 Graph Tab The cdfg contains 3 additions, 2 multiplicatins, a division and a shif right operator. Data values stored in variables x, fact, powx, temp and some other variables that came from loop unrolling of the code. Click on the "Back to Flow" button to back to the main window.
ECE 667 Synthesis & Verification - Design Flow 22 Step 2: Processing Unit Synthesis The design of the Processing Unit (PU) integrates the following tasks: resource selection and allocation, operation scheduling, and binding of operations onto operators. Click on the purple box with label of "VHDL Synthesis". This part takes the cdfg generated in the previous step as the input. In the "Configuration" part in front of the "Graph" select taylorexp.cdfg file.
ECE 667 Synthesis & Verification - Design Flow 23 Processing Unit Synthesis ECE 667 Synthesis & Verification - Design Flow 24 Step 2: Processing Unit Synthesis Cadency: is the rate of arrival of the sets of data inputs (sampling rate, iteration interval, throughput). Cadency must be a multiple of the system clock period. Clock: is the desired clock period of the future
generated RTL component. Memory constraint: select this box if you want to synthesize by using the memory mapping constraints if you plan to generate a Memory Unit. To do that, you need to fill the Memory Constraints tab. ECE 667 Synthesis & Verification - Design Flow 25 Step 2: Processing Unit Synthesis IO constraints: select this box if you want to synthesize by using I/O constraint. To do that, you need to fill the Input/Output Constraints tab. Allocation strategy: you can choose between several
allocation techniques listed in the first box. Using the second box you can choose between manual or automatic allocation. If you select manual, you can manually change the number of resources of each type. ECE 667 Synthesis & Verification - Design Flow 26 Manual Allocation ECE 667 Synthesis & Verification - Design Flow 27
Step 2: Processing Unit Synthesis Scheduling strategy: you can choose between several scheduling algorithms (i.e., default, ASAP, no_pipeline, no_more_stage algorithms). Vhdl output: you can choos between different styles of VHDL codes. Output: select Vhdl box to generate a .vhd RTL file, select the Gantt to obtain the .gantt file, select Mem box to generate a .mem file intended for Memory units and testbenchs. Click on the Run button to start the synthesis. ECE 667 Synthesis & Verification - Design Flow 28
Synthesis report ECE 667 Synthesis & Verification - Design Flow 29 Synthesis report CDFG parsing step Number of nodes of cdfg Time used for parsing cdfg Selection step
Area Time used for selection Allocation step Operators CDFG latency Time used for allocation ECE 667 Synthesis & Verification - Design Flow 30
Synthesis report Scheduling step Number You can also see the active time of each operator on the Gantt chart of operators, latency, stages Area of functional units Usage rate of each operator ( active time of operator/ latency) Time used for scheduling
Registers allocation step Number of hardwired constants which are not stored in registers. Number of fifo registers Number of registers Number of flip flop Number of Multiplexer 2 to 1 Time used for register allocation ECE 667 Synthesis & Verification - Design Flow 31
Synthesis report .mem generation Number of pipeline stages Time used for .mem generation .vhd generation Time used for .vhd generation .gantt generation Time
used for .gantt generation ECE 667 Synthesis & Verification - Design Flow 32 Memory constraint tab ECE 667 Synthesis & Verification - Design Flow 33 Memory constraint tab You can use Memory constraint tab to specify placement of variables in memory.
By default, the constant and non aging variables are respectively hardwired and stored in registers in the processing units. However, they can be placed in memory when the static attribute is used in the specification. ECE 667 Synthesis & Verification - Design Flow 34 Results Viewer Click on the pink box with the label of "Results viewer to generate GANTT chart of the synthesized circuit. Click on the open icon and select "taylorexp_UT.gantt file.
GANTT chart shows the result of the scheduling step and also gives the information about the contents of the circuit in term of operators and registers. ECE 667 Synthesis & Verification - Design Flow 35 GANTT chart Multiplier mul.2 performed operations mul_op0 [0-20) and register.3 saved mul_op2 [20-40)
variables temp [1050), temp000001 , ex  ECE 667 Synthesis & Verification - Design Flow 36 GANTT chart Horizontally, the blue color shows the execution of the operations and the orange color defines the variables and the registers in which they are stored. Vertically, the names of the operators and the registers are defined. ECE 667 Synthesis & Verification - Design Flow
37 References  GAUT user manual  Philippe Coussy, et al, High-level synthesis from Algorithm to Digital Circuit, Springer, 2008. ECE 667 Synthesis & Verification - Design Flow 38
Hips & knees bundles will be controlled by the hospitals (CMS Bundles) MDS Focused Surveys started for validating MDS accuracy. Dementia Care Focused surveys have started . CMS is adding new 5 Star quality measures in 2016 (IMPACT) Changes to...
This series of training modules will cover many of the key application considerations for the design, installation, and inspection of electrical distribution systems. ... Training and mandating that workers follow safe work practices and system operation is vital for safety.
(argumentum ad baculum) Definition: The reader is told that unpleasant consequences will follow if they do not agree with the author. Examples: 1. You had better agree that the new company policy is the best bet if you expect to...
(weather at FIV can be different than where you are at). Rain outs will be posted on website and/or email sent out. If 5 or more holes are completed before signal to come in is given, rain check passes will...
MESOAMERICA MOST LIKELY THEORY First Americans originated in Gobi Desert Some migrated to Siberia around 15,000 years ago Crossed Bering Strait in Alaska Land bridge probably existed at the time Gradually dispersed throughout North and South America NEW THEORY Ancestors...
Carbon fiber. Diamond (boron doped) Semiconductor electrodes (ITO) Modified electrodes. Potential window available for experiments is determined by destruction of electrode material or by decomposition of solvent (or dissolved electrolyte) Two-electrode and three-electrode cells
IAA- causes apical dominance in shoots, lateral root growth, phototrophism, cell elongation, and fruit devlopment from an ovary of a flower. cytokininscause apical dominance in roots, lateral stem elongatin, cell differentiation, slowing aging.
Ready to download the document? Go ahead and hit continue!