SlideShare une entreprise Scribd logo
1  sur  20
Synthesis and Verification
   of Digital Systems
      By Daniel Gomez-Prado
            Feb 2013

      The slides were prepared for a class
      introduction to GAUT version 2.4.3,
      a high-level synthesis tool developed
       at http://hls-labsticc.univ-ubs.fr/
GAUT’s main window

    Exit
                This Window




2
GAUT’s main window

      Compiler (C to CDFG)




                    Synthesis (CDFG to VHD)




3
C to CDFG




4
C to CDFG




5
C to CDFG




6
C to CDFG




            Compile C into CDFG
7
C to CDFG
       View CDFG




8
C to CDFG




9
C to CDFG




10
GAUT’s main window

       Compiler (C to CDFG)




                     Synthesis (CDFG to VHD)




11
CDFG to VHD




12
CDFG to VHD




13
CDFG to VHD



               Set the desired Cadency
               (must be multiple of clock)




                    Start with no-pipelining

              Synthesize

14
CDFG to VHD




                   VHD generated
15
CDFG to VHD




                                  FF 208
                                  MUX 256

                   Registers and Muxes


16
./vhd2dot.pl volterra.vhd
---------- mux table
add0[a] (2) = reg_21 reg_19
add0[b] (8) = reg_21 reg_20 reg_19 reg_43 reg_37 reg_18 reg_25 reg_31
bus_1 (3) = reg_21 reg_17 reg_22
bus_2 (2) = reg_20 reg_18
bus_3 (1) = reg_19
mul2[a] (5) = reg_14 reg_15 reg_20 reg_0 reg_31
mul2[b] (7) = reg_2 reg_15 reg_17 reg_22 reg_16 reg_13 reg_7
mul3[a] (7) = reg_6 reg_17 reg_16 reg_22 reg_18 reg_4 reg_25
mul3[b] (7) = reg_14 reg_8 reg_1 reg_15 reg_20 reg_16 reg_11
mul4[a] (6) = reg_14 reg_22 reg_19 reg_16 reg_10 reg_25
mul4[b] (3) = reg_14 reg_15 reg_12
mul5[a] (7) = reg_14 reg_17 reg_19 reg_5 reg_16 reg_3 reg_18
mul5[b] (4) = reg_20 reg_22 reg_16 reg_9
reg_14 (1) = bus_3
reg_15 (1) = bus_2
reg_16 (1) = bus_1
reg_17 (1) = mul5[o]
reg_18 (1) = mul4[o]
reg_19 (2) = mul3[o] reg_18
reg_20 (2) = reg_19 mul2[o]
reg_21 (1) = add0[o]
reg_22 (2) = mul4[o] reg_20
reg_25 (1) = mul5[o]
reg_31 (1) = mul2[o]
reg_37 (1) = mul4[o]
reg_43 (1) = mul5[o]
---------- total muxes
  5
   17
CDFG to VHD




                                    FF 208
                                    MUX 1024
                   Registers and Muxes


18
./vhd2dot.pl volterra.vhd
---------- mux table
add0[a] (8) = reg_14 reg_24 reg_19 reg_25 reg_21 reg_22 reg_18
add0[b] (9) = reg_24 reg_20 reg_15 reg_21 reg_17 reg_22 reg_26 mul2[a] (6) =
reg_14 reg_15 reg_20 reg_0 reg_18 reg_25
mul2[b] (7) = reg_2 reg_15 reg_17 reg_19 reg_16 reg_13 reg_7
mul3[a] (7) = reg_6 reg_17 reg_16 reg_19 reg_18 reg_4 reg_23
mul3[b] (7) = reg_14 reg_8 reg_1 reg_15 reg_20 reg_16 reg_11
mul4[a] (7) = reg_24 reg_14 reg_21 reg_19 reg_16 reg_10 reg_18
mul5[a] (7) = reg_14 reg_21 reg_17 reg_22 reg_5 reg_16 reg_3
reg_18 (5) = mul5[o] add0[o] mul4[o] mul2[o] mul3[o]
reg_21 (5) = add0[o] mul5[o] mul3[o] mul2[o] reg_19
reg_22 (4) = mul5[o] mul4[o] add0[o] reg_18
mul5[b] (4) = reg_20 reg_19 reg_16 reg_9
mul4[b] (3) = reg_14 reg_15 reg_12
reg_19 (3) = mul4[o] add0[o] mul3[o]
reg_14 (3) = add0[o] mul2[o] bus_3
reg_15 (2) = add0[o] bus_2
reg_16 (2) = mul4[o] bus_1
reg_17 (2) = mul5[o] mul2[o]
reg_20 (2) = reg_20 mul2[o]
reg_18 reg_23
bus_1 (3) = reg_14 reg_20 reg_18
bus_2 (3) = reg_14 reg_21 reg_16
bus_3 (1) = reg_22
reg_23 (3) = mul5[o] add0[o] mul3[o]
reg_24 (3) = add0[o] mul4[o] mul5[o]
reg_25 (2) = add0[o] mul2[o]
reg_26 (1) = mul2[o]
reg_23
   19
---------- total muxes
  83
CDFG to VHD




             Cannot synthesize with new cadence
20

Contenu connexe

Similaire à Brief GAUT tutorial

GCD-FPGA-Based-DesignE
GCD-FPGA-Based-DesignEGCD-FPGA-Based-DesignE
GCD-FPGA-Based-DesignE
Ibrahim Hejab
 
Runtime Code Generation and Data Management for Heterogeneous Computing in Java
Runtime Code Generation and Data Management for Heterogeneous Computing in JavaRuntime Code Generation and Data Management for Heterogeneous Computing in Java
Runtime Code Generation and Data Management for Heterogeneous Computing in Java
Juan Fumero
 
Oracle-GoldenGate-18c-Workshop-Lab-16.docx
Oracle-GoldenGate-18c-Workshop-Lab-16.docxOracle-GoldenGate-18c-Workshop-Lab-16.docx
Oracle-GoldenGate-18c-Workshop-Lab-16.docx
tricantino1973
 
GLX, DRI, and i965
GLX, DRI, and i965GLX, DRI, and i965
GLX, DRI, and i965
Chia-I Wu
 
All I know about rsc.io/c2go
All I know about rsc.io/c2goAll I know about rsc.io/c2go
All I know about rsc.io/c2go
Moriyoshi Koizumi
 
Debugger Principle Overview & GDB Tricks
Debugger Principle Overview & GDB TricksDebugger Principle Overview & GDB Tricks
Debugger Principle Overview & GDB Tricks
dutor
 

Similaire à Brief GAUT tutorial (20)

wgrib2
wgrib2wgrib2
wgrib2
 
GCD-FPGA-Based-DesignE
GCD-FPGA-Based-DesignEGCD-FPGA-Based-DesignE
GCD-FPGA-Based-DesignE
 
Runtime Code Generation and Data Management for Heterogeneous Computing in Java
Runtime Code Generation and Data Management for Heterogeneous Computing in JavaRuntime Code Generation and Data Management for Heterogeneous Computing in Java
Runtime Code Generation and Data Management for Heterogeneous Computing in Java
 
Boosting Developer Productivity with Clang
Boosting Developer Productivity with ClangBoosting Developer Productivity with Clang
Boosting Developer Productivity with Clang
 
Oracle-GoldenGate-18c-Workshop-Lab-16.docx
Oracle-GoldenGate-18c-Workshop-Lab-16.docxOracle-GoldenGate-18c-Workshop-Lab-16.docx
Oracle-GoldenGate-18c-Workshop-Lab-16.docx
 
p4srv6 (P4-16) design document rev1.0
p4srv6 (P4-16) design document rev1.0p4srv6 (P4-16) design document rev1.0
p4srv6 (P4-16) design document rev1.0
 
Scalding
ScaldingScalding
Scalding
 
Introduction to gdb
Introduction to gdbIntroduction to gdb
Introduction to gdb
 
Debugging 2013- Sune Vuorela
Debugging 2013- Sune VuorelaDebugging 2013- Sune Vuorela
Debugging 2013- Sune Vuorela
 
GLX, DRI, and i965
GLX, DRI, and i965GLX, DRI, and i965
GLX, DRI, and i965
 
Box2D with SIMD in JavaScript
Box2D with SIMD in JavaScriptBox2D with SIMD in JavaScript
Box2D with SIMD in JavaScript
 
Building a Big Data Machine Learning Platform
Building a Big Data Machine Learning PlatformBuilding a Big Data Machine Learning Platform
Building a Big Data Machine Learning Platform
 
[FOSDEM 2015] How to test OpenGL drivers using Free Software
[FOSDEM 2015] How to test OpenGL drivers using Free Software[FOSDEM 2015] How to test OpenGL drivers using Free Software
[FOSDEM 2015] How to test OpenGL drivers using Free Software
 
How to test OpenGL drivers using Free Software (FOSDEM 2015)
How to test OpenGL drivers using Free Software (FOSDEM 2015)How to test OpenGL drivers using Free Software (FOSDEM 2015)
How to test OpenGL drivers using Free Software (FOSDEM 2015)
 
Improving go-git performance
Improving go-git performanceImproving go-git performance
Improving go-git performance
 
C++ amp on linux
C++ amp on linuxC++ amp on linux
C++ amp on linux
 
C++17 now
C++17 nowC++17 now
C++17 now
 
All I know about rsc.io/c2go
All I know about rsc.io/c2goAll I know about rsc.io/c2go
All I know about rsc.io/c2go
 
Traffic Signal System.pptx
Traffic Signal System.pptxTraffic Signal System.pptx
Traffic Signal System.pptx
 
Debugger Principle Overview & GDB Tricks
Debugger Principle Overview & GDB TricksDebugger Principle Overview & GDB Tricks
Debugger Principle Overview & GDB Tricks
 

Plus de Daniel Gomez-Prado (10)

Tutorial on FPGA Routing
Tutorial on FPGA RoutingTutorial on FPGA Routing
Tutorial on FPGA Routing
 
Design of an Embedded Micro controller
Design of an Embedded Micro controllerDesign of an Embedded Micro controller
Design of an Embedded Micro controller
 
TDS Manual
TDS ManualTDS Manual
TDS Manual
 
Slideshare with animations
Slideshare with animationsSlideshare with animations
Slideshare with animations
 
unsplitted slideshare
unsplitted slideshareunsplitted slideshare
unsplitted slideshare
 
Basic data structures part I
Basic data structures part IBasic data structures part I
Basic data structures part I
 
TDS show bug 106
TDS show bug 106TDS show bug 106
TDS show bug 106
 
TDS decompose bug 111
TDS decompose bug 111TDS decompose bug 111
TDS decompose bug 111
 
TDS decompose bug 119
TDS decompose bug 119TDS decompose bug 119
TDS decompose bug 119
 
TDS Bug 221
TDS Bug 221TDS Bug 221
TDS Bug 221
 

Dernier

Dernier (20)

On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
 
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxHMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
Spatium Project Simulation student brief
Spatium Project Simulation student briefSpatium Project Simulation student brief
Spatium Project Simulation student brief
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxREMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptx
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
Interdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxInterdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptx
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structure
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 

Brief GAUT tutorial

  • 1. Synthesis and Verification of Digital Systems By Daniel Gomez-Prado Feb 2013 The slides were prepared for a class introduction to GAUT version 2.4.3, a high-level synthesis tool developed at http://hls-labsticc.univ-ubs.fr/
  • 2. GAUT’s main window Exit This Window 2
  • 3. GAUT’s main window Compiler (C to CDFG) Synthesis (CDFG to VHD) 3
  • 7. C to CDFG Compile C into CDFG 7
  • 8. C to CDFG View CDFG 8
  • 11. GAUT’s main window Compiler (C to CDFG) Synthesis (CDFG to VHD) 11
  • 14. CDFG to VHD Set the desired Cadency (must be multiple of clock) Start with no-pipelining Synthesize 14
  • 15. CDFG to VHD VHD generated 15
  • 16. CDFG to VHD FF 208 MUX 256 Registers and Muxes 16
  • 17. ./vhd2dot.pl volterra.vhd ---------- mux table add0[a] (2) = reg_21 reg_19 add0[b] (8) = reg_21 reg_20 reg_19 reg_43 reg_37 reg_18 reg_25 reg_31 bus_1 (3) = reg_21 reg_17 reg_22 bus_2 (2) = reg_20 reg_18 bus_3 (1) = reg_19 mul2[a] (5) = reg_14 reg_15 reg_20 reg_0 reg_31 mul2[b] (7) = reg_2 reg_15 reg_17 reg_22 reg_16 reg_13 reg_7 mul3[a] (7) = reg_6 reg_17 reg_16 reg_22 reg_18 reg_4 reg_25 mul3[b] (7) = reg_14 reg_8 reg_1 reg_15 reg_20 reg_16 reg_11 mul4[a] (6) = reg_14 reg_22 reg_19 reg_16 reg_10 reg_25 mul4[b] (3) = reg_14 reg_15 reg_12 mul5[a] (7) = reg_14 reg_17 reg_19 reg_5 reg_16 reg_3 reg_18 mul5[b] (4) = reg_20 reg_22 reg_16 reg_9 reg_14 (1) = bus_3 reg_15 (1) = bus_2 reg_16 (1) = bus_1 reg_17 (1) = mul5[o] reg_18 (1) = mul4[o] reg_19 (2) = mul3[o] reg_18 reg_20 (2) = reg_19 mul2[o] reg_21 (1) = add0[o] reg_22 (2) = mul4[o] reg_20 reg_25 (1) = mul5[o] reg_31 (1) = mul2[o] reg_37 (1) = mul4[o] reg_43 (1) = mul5[o] ---------- total muxes 5 17
  • 18. CDFG to VHD FF 208 MUX 1024 Registers and Muxes 18
  • 19. ./vhd2dot.pl volterra.vhd ---------- mux table add0[a] (8) = reg_14 reg_24 reg_19 reg_25 reg_21 reg_22 reg_18 add0[b] (9) = reg_24 reg_20 reg_15 reg_21 reg_17 reg_22 reg_26 mul2[a] (6) = reg_14 reg_15 reg_20 reg_0 reg_18 reg_25 mul2[b] (7) = reg_2 reg_15 reg_17 reg_19 reg_16 reg_13 reg_7 mul3[a] (7) = reg_6 reg_17 reg_16 reg_19 reg_18 reg_4 reg_23 mul3[b] (7) = reg_14 reg_8 reg_1 reg_15 reg_20 reg_16 reg_11 mul4[a] (7) = reg_24 reg_14 reg_21 reg_19 reg_16 reg_10 reg_18 mul5[a] (7) = reg_14 reg_21 reg_17 reg_22 reg_5 reg_16 reg_3 reg_18 (5) = mul5[o] add0[o] mul4[o] mul2[o] mul3[o] reg_21 (5) = add0[o] mul5[o] mul3[o] mul2[o] reg_19 reg_22 (4) = mul5[o] mul4[o] add0[o] reg_18 mul5[b] (4) = reg_20 reg_19 reg_16 reg_9 mul4[b] (3) = reg_14 reg_15 reg_12 reg_19 (3) = mul4[o] add0[o] mul3[o] reg_14 (3) = add0[o] mul2[o] bus_3 reg_15 (2) = add0[o] bus_2 reg_16 (2) = mul4[o] bus_1 reg_17 (2) = mul5[o] mul2[o] reg_20 (2) = reg_20 mul2[o] reg_18 reg_23 bus_1 (3) = reg_14 reg_20 reg_18 bus_2 (3) = reg_14 reg_21 reg_16 bus_3 (1) = reg_22 reg_23 (3) = mul5[o] add0[o] mul3[o] reg_24 (3) = add0[o] mul4[o] mul5[o] reg_25 (2) = add0[o] mul2[o] reg_26 (1) = mul2[o] reg_23 19 ---------- total muxes 83
  • 20. CDFG to VHD Cannot synthesize with new cadence 20