SlideShare a Scribd company logo
Loïc Lagadec
Lab-STICC Architectures&Systèmes
Université de Bretagne Occidentale, BREST
Madeo: a CAD Tool for
Reconfigurable Hardware
L. Lagadec - Lab-STICC CNRS UMR 3192 -
Université de Bretagne Occidentale
11
Our OO Expert's world
We are all familiar with
 Code refactoring
 Code reuse
 Agile development
Ability to postpone design choices
Fast development
Portability through Virtual Machines
2
Out =
i1 + i2
What about real Machines?
 Micro processors
 Co-processors
 Dedicated instructions set
 Dynamic instructions set ?
 Reconfigurable hardware is an option
for that
i1
i2
out
mP
Circuit
Target 3
Reconfigurable Architectures
(RA)
 Circuits
 Customizable
 Partial reconfiguration
 Dynamic reconfiguration
 Performances (in between HW and
SW)
 Flexibility (in between SW and HW)
 “Low” Cost 4
Targets
 FPGAs (several vendors, eg. Xilinx)
 Complexity issue
 Application IP composition
 Reconfigurable Datapath (e.g. XPP)
 eFPGAs (M2000, Mentra, ...)
 Rsocs (e.g Morpheus project) : RA IP
composition
complexity
5
Requires efficient tools
 Programming these circuits is a complex
task
 Tools are linked to a target (low reuse)
 Application description “fails” to exploit
flexibility
6
My talk adresses
 Applying OO methodology to
reconfigurable hardware
 Adapt to new RA “retargetable compiler”
 Produce Circuits from HL code
 10 years experience report
 Results + Lessons learned
7
Origin: Compatibility issues
 Need to conform to
 standards tools/formats
 vendor's private (unstable) formats
 While preserving a stable API
 Solution: Build up a framework
 Model : Reconfigurable Architecture (RA)
 Tools : Editing/Programming RA
8
 Tools for HL Code to circuit mapping
Our contribution
Floorplaning
HL Code
RTL Code
Place & Route
Validation
Bitstream generation
Execution control
SOFT
HARD
Covers more
architectures: model's
improvements
Covers control structures
and libraries
2
1
9
First architecture
 XC6200 from Xilinx
 Configuration as RAM
 Very exiting (late 90s)
Export
Program &
Manage execution
10
Dedicated Tool
 A circuit is an object
 Registers = instance variables
 IOs = accessors
 Mmap: configuration  main memory
 Fine resource allocation
 Step by Step execution control
11
12
13
Improvements
 Coverage
 Learning by doing (reverse is costly)
 Model re-design
 Wire vs Channel
 Directional vs Bi directional resources
 Hierarchical composition
 ...
 Model instanciation (DSL)
 Design Space Exploration (DSE)
1
14
Results
 Architectures
 Commercial architecture (VIRTEX) with back
end vendor's tools control
 Reconfigurable datapaths (STMicro)
 Generic parameterized architectures (DSE)
 Architecture research oriented support (fast
prototyping)
 Two issues
 Compiance to standard
 High Level layer
15
Snaphots
Interfacing
the vendor
API
BitStream
structure
(e.g K.I.T)
System
Use
16
ST as application spec
Goal: Fully exploit RA adaptability
 How:
 AST from Vw code
 Typing
 Compilation steps (standard + specific)
+ RTL (application) generation
2
17
Tool Snapshot
18
Example:Small FP multiplier
19
Example:Small FP multiplier
20
Example:Changing optimization policy
21
Example: Changing target RA
22
Pro/Cons
 Domain oriented tailoring (ex. Galois
field based typing) for free
 Logic based simulator hence SW/HW
sharing API
 Complexity bounded
 Restricted to simple control structures
(ifTrue:, ...) and loop unrolling
 Still relies on third parties logic
minimizers 23
Complexity issue
 Well known design patterns
 Soft macros (tiling, ...)
 Compositions (divide and conquer)
 Designing architectures (control
structures through structural patterns) 24
Model/Interchange issues
 Standart compliance (e.g. EDIF)
 Exchange issues:
 Ensure portability
 Prevent semantic losses
 Allow cross-blocks optimizations
Meta modeling: Platypus (A. Plantec)
 STEP/EXPRESS
 Visitors (encoding/decoding, repository,
rules checking)
+ Visitors (Domain specific e.g. Scheduling)
25
Flow
Platypus tool
CDFG design
CDFG
EXPRESS
model
Tool X
Tool Y
HLL CDFG
API (Java)
CDFG instances
(STEP files)
CDFG Checker
Madeo+ synthesis tool
CDFG Use
Target 3
Specific Assembly code
Target 2
C like code
Target 1
EDIF
Target
architecture
description
HLL CDFG
API (Smalltalk)
ENTITY HierarchicalNode SUBTYPE OF (Node);
localVariables : LIST OF
AbstractData;
subOperators : LIST [1 : ?] OF Node;
END_ENTITY;
ENTITY AccumulatorNode SUBTYPE OF
(HierarchicalNode);
init : AbstractData; --
”AccumulatorNode.init” the initial
value we start accumulating from.
toBeAccumulated: AbstractData;
DERIVE
cumulatedArguments : LIST OF
AbstractData := subOperators [
SIZEOF (subOperators)].outputs;
WHERE
toBeAccumulatedSource: SIZEOF (
cumulatedArguments )=1;
typeCompat:
cumulatedArguments[1].type =
init.type;
END_ENTITY;
APPLICATION
APPLICATION
26
Validation
 Key issue
 Requires standard tools (Again !)
 But we want also Sunit capabilities
27
Combine both
 Use external tools as characterization
tests for your own tools
 Once yours are validated, use them
 Multi level simulation (System,
Architecture, Circuit)
 Add probes/break points
 Keep the double link between HL code
and circuit
28
Conclusion
 Model target (FPGA, eFPGA, ...)
 Generate application-code
 HL code hardware execution
 Open to third parties
 Used in several projects (RNTL, PRIR, FP6, ...)
 Benefits from OO
 Provides OO-like
 Nice candidate to RA based VM implementation tool
29
Lessons learned
 Split layers into separate tools with different names
 Use Meta Modeling (cost killer)
 Evolution
 Interchange
 Documentation
 Export code and always target your partner's
reference language (your partner is your client)
 You may like UGI, partners like command line mode
(seaside 's fine for remote access and easy demo)
 Don't show partners you work faster than they do
 Keeping your cooking tips secrets is not a problem 30
On going tasks
 Platypus + STEP/EXPRESS for FPGA
modeling
 DSL generation (ExternalLanguageParser -> SmaCC
-> gen. smaCC)
 Probe synthesis (hardware = speed up)
 Nano devices
(e.g. NASICs from Umass)
 Virtualize FPGAs
31

More Related Content

What's hot

ASIC Design and Implementation
ASIC Design and ImplementationASIC Design and Implementation
ASIC Design and Implementation
skerlj
 
Why i need to learn so much math for my phd research
Why i need to learn so much math for my phd researchWhy i need to learn so much math for my phd research
Why i need to learn so much math for my phd researchCrypto Cg
 
DETR ECCV20
DETR ECCV20DETR ECCV20
DETR ECCV20
Mengmeng Xu
 
Punit_Shah_resume
Punit_Shah_resumePunit_Shah_resume
Punit_Shah_resumePunit Shah
 
COMPILER DESIGN Run-Time Environments
COMPILER DESIGN Run-Time EnvironmentsCOMPILER DESIGN Run-Time Environments
ScilabTEC 2015 - Embedded Solutions
ScilabTEC 2015 - Embedded SolutionsScilabTEC 2015 - Embedded Solutions
ScilabTEC 2015 - Embedded Solutions
Scilab
 
Vlsi design flow
Vlsi design flowVlsi design flow
Vlsi design flow
Rajendra Kumar
 
Fcv rep darrell
Fcv rep darrellFcv rep darrell
Fcv rep darrellzukun
 
Assic 12th Lecture
Assic 12th LectureAssic 12th Lecture
Assic 12th Lecture
babak danyal
 
Short.course.introduction.to.vhdl for beginners
Short.course.introduction.to.vhdl for beginners Short.course.introduction.to.vhdl for beginners
Short.course.introduction.to.vhdl for beginners
Ravi Sony
 
Lect01 flow
Lect01 flowLect01 flow
Lect01 flow
prabhu_vlsi
 
Fpga
FpgaFpga
VLSI Design Flow
VLSI Design FlowVLSI Design Flow
VLSI Design Flow
A B Shinde
 
vlsi design flow
vlsi design flowvlsi design flow
vlsi design flowAnish Gupta
 

What's hot (18)

ASIC Design and Implementation
ASIC Design and ImplementationASIC Design and Implementation
ASIC Design and Implementation
 
Why i need to learn so much math for my phd research
Why i need to learn so much math for my phd researchWhy i need to learn so much math for my phd research
Why i need to learn so much math for my phd research
 
DETR ECCV20
DETR ECCV20DETR ECCV20
DETR ECCV20
 
Description
DescriptionDescription
Description
 
Punit_Shah_resume
Punit_Shah_resumePunit_Shah_resume
Punit_Shah_resume
 
COMPILER DESIGN Run-Time Environments
COMPILER DESIGN Run-Time EnvironmentsCOMPILER DESIGN Run-Time Environments
COMPILER DESIGN Run-Time Environments
 
ASIC DESIGN FLOW
ASIC DESIGN FLOWASIC DESIGN FLOW
ASIC DESIGN FLOW
 
ScilabTEC 2015 - Embedded Solutions
ScilabTEC 2015 - Embedded SolutionsScilabTEC 2015 - Embedded Solutions
ScilabTEC 2015 - Embedded Solutions
 
Vlsi design flow
Vlsi design flowVlsi design flow
Vlsi design flow
 
Fcv rep darrell
Fcv rep darrellFcv rep darrell
Fcv rep darrell
 
Assic 12th Lecture
Assic 12th LectureAssic 12th Lecture
Assic 12th Lecture
 
Short.course.introduction.to.vhdl for beginners
Short.course.introduction.to.vhdl for beginners Short.course.introduction.to.vhdl for beginners
Short.course.introduction.to.vhdl for beginners
 
Lect01 flow
Lect01 flowLect01 flow
Lect01 flow
 
Fpga
FpgaFpga
Fpga
 
VLSI Design Flow
VLSI Design FlowVLSI Design Flow
VLSI Design Flow
 
vlsi design flow
vlsi design flowvlsi design flow
vlsi design flow
 
report
reportreport
report
 
Fpga design flow
Fpga design flowFpga design flow
Fpga design flow
 

Similar to Madeo - a CAD Tool for reconfigurable Hardware

Probe Debugging
Probe DebuggingProbe Debugging
Probe Debugging
ESUG
 
Performance Verification for ESL Design Methodology from AADL Models
Performance Verification for ESL Design Methodology from AADL ModelsPerformance Verification for ESL Design Methodology from AADL Models
Performance Verification for ESL Design Methodology from AADL Models
Space Codesign
 
SparkSQL: A Compiler from Queries to RDDs
SparkSQL: A Compiler from Queries to RDDsSparkSQL: A Compiler from Queries to RDDs
SparkSQL: A Compiler from Queries to RDDs
Databricks
 
Boston Spark Meetup event Slides Update
Boston Spark Meetup event Slides UpdateBoston Spark Meetup event Slides Update
Boston Spark Meetup event Slides Updatevithakur
 
Summer training vhdl
Summer training vhdlSummer training vhdl
Summer training vhdl
Arshit Rai
 
Linaro Connect 2016 (BKK16) - Introduction to LISA
Linaro Connect 2016 (BKK16) - Introduction to LISALinaro Connect 2016 (BKK16) - Introduction to LISA
Linaro Connect 2016 (BKK16) - Introduction to LISA
Patrick Bellasi
 
Summer training vhdl
Summer training vhdlSummer training vhdl
Summer training vhdl
Arshit Rai
 
Reactive Microservices with Spring 5: WebFlux
Reactive Microservices with Spring 5: WebFlux Reactive Microservices with Spring 5: WebFlux
Reactive Microservices with Spring 5: WebFlux
Trayan Iliev
 
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
Maarten Balliauw
 
Mirabilis_Design AMD Versal System-Level IP Library
Mirabilis_Design AMD Versal System-Level IP LibraryMirabilis_Design AMD Versal System-Level IP Library
Mirabilis_Design AMD Versal System-Level IP Library
Deepak Shankar
 
Cockatrice: A Hardware Design Environment with Elixir
Cockatrice: A Hardware Design Environment with ElixirCockatrice: A Hardware Design Environment with Elixir
Cockatrice: A Hardware Design Environment with Elixir
Hideki Takase
 
Deep learning and streaming in Apache Spark 2.2 by Matei Zaharia
Deep learning and streaming in Apache Spark 2.2 by Matei ZahariaDeep learning and streaming in Apache Spark 2.2 by Matei Zaharia
Deep learning and streaming in Apache Spark 2.2 by Matei Zaharia
GoDataDriven
 
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
Maarten Balliauw
 
Exploring Emerging Technologies in the Extreme Scale HPC Co-Design Space with...
Exploring Emerging Technologies in the Extreme Scale HPC Co-Design Space with...Exploring Emerging Technologies in the Extreme Scale HPC Co-Design Space with...
Exploring Emerging Technologies in the Extreme Scale HPC Co-Design Space with...
jsvetter
 
Scaling spark on kubernetes at Lyft
Scaling spark on kubernetes at LyftScaling spark on kubernetes at Lyft
Scaling spark on kubernetes at Lyft
Li Gao
 
VLSI
VLSIVLSI
NGRX Apps in Depth
NGRX Apps in DepthNGRX Apps in Depth
NGRX Apps in Depth
Trayan Iliev
 
MPHS RC Prj
MPHS RC PrjMPHS RC Prj
MPHS RC Prj
Marco Santambrogio
 

Similar to Madeo - a CAD Tool for reconfigurable Hardware (20)

Probe Debugging
Probe DebuggingProbe Debugging
Probe Debugging
 
Performance Verification for ESL Design Methodology from AADL Models
Performance Verification for ESL Design Methodology from AADL ModelsPerformance Verification for ESL Design Methodology from AADL Models
Performance Verification for ESL Design Methodology from AADL Models
 
SparkSQL: A Compiler from Queries to RDDs
SparkSQL: A Compiler from Queries to RDDsSparkSQL: A Compiler from Queries to RDDs
SparkSQL: A Compiler from Queries to RDDs
 
Boston Spark Meetup event Slides Update
Boston Spark Meetup event Slides UpdateBoston Spark Meetup event Slides Update
Boston Spark Meetup event Slides Update
 
Summer training vhdl
Summer training vhdlSummer training vhdl
Summer training vhdl
 
Linaro Connect 2016 (BKK16) - Introduction to LISA
Linaro Connect 2016 (BKK16) - Introduction to LISALinaro Connect 2016 (BKK16) - Introduction to LISA
Linaro Connect 2016 (BKK16) - Introduction to LISA
 
Summer training vhdl
Summer training vhdlSummer training vhdl
Summer training vhdl
 
Reactive Microservices with Spring 5: WebFlux
Reactive Microservices with Spring 5: WebFlux Reactive Microservices with Spring 5: WebFlux
Reactive Microservices with Spring 5: WebFlux
 
Embedded system
Embedded systemEmbedded system
Embedded system
 
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
 
Mirabilis_Design AMD Versal System-Level IP Library
Mirabilis_Design AMD Versal System-Level IP LibraryMirabilis_Design AMD Versal System-Level IP Library
Mirabilis_Design AMD Versal System-Level IP Library
 
Cockatrice: A Hardware Design Environment with Elixir
Cockatrice: A Hardware Design Environment with ElixirCockatrice: A Hardware Design Environment with Elixir
Cockatrice: A Hardware Design Environment with Elixir
 
Deep learning and streaming in Apache Spark 2.2 by Matei Zaharia
Deep learning and streaming in Apache Spark 2.2 by Matei ZahariaDeep learning and streaming in Apache Spark 2.2 by Matei Zaharia
Deep learning and streaming in Apache Spark 2.2 by Matei Zaharia
 
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
 
Exploring Emerging Technologies in the Extreme Scale HPC Co-Design Space with...
Exploring Emerging Technologies in the Extreme Scale HPC Co-Design Space with...Exploring Emerging Technologies in the Extreme Scale HPC Co-Design Space with...
Exploring Emerging Technologies in the Extreme Scale HPC Co-Design Space with...
 
Scaling spark on kubernetes at Lyft
Scaling spark on kubernetes at LyftScaling spark on kubernetes at Lyft
Scaling spark on kubernetes at Lyft
 
VLSI
VLSIVLSI
VLSI
 
NGRX Apps in Depth
NGRX Apps in DepthNGRX Apps in Depth
NGRX Apps in Depth
 
MPHS RC Prj
MPHS RC PrjMPHS RC Prj
MPHS RC Prj
 
3DD 1e 31 Luglio Apertura
3DD 1e 31 Luglio Apertura3DD 1e 31 Luglio Apertura
3DD 1e 31 Luglio Apertura
 

More from ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
ESUG
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
ESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
ESUG
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
ESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
ESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
ESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
ESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
ESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
ESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
ESUG
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
ESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
ESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
ESUG
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
ESUG
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
ESUG
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ESUG
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
ESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
ESUG
 

More from ESUG (20)

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 

Recently uploaded

To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 

Recently uploaded (20)

To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 

Madeo - a CAD Tool for reconfigurable Hardware

  • 1. Loïc Lagadec Lab-STICC Architectures&Systèmes Université de Bretagne Occidentale, BREST Madeo: a CAD Tool for Reconfigurable Hardware L. Lagadec - Lab-STICC CNRS UMR 3192 - Université de Bretagne Occidentale 11
  • 2. Our OO Expert's world We are all familiar with  Code refactoring  Code reuse  Agile development Ability to postpone design choices Fast development Portability through Virtual Machines 2
  • 3. Out = i1 + i2 What about real Machines?  Micro processors  Co-processors  Dedicated instructions set  Dynamic instructions set ?  Reconfigurable hardware is an option for that i1 i2 out mP Circuit Target 3
  • 4. Reconfigurable Architectures (RA)  Circuits  Customizable  Partial reconfiguration  Dynamic reconfiguration  Performances (in between HW and SW)  Flexibility (in between SW and HW)  “Low” Cost 4
  • 5. Targets  FPGAs (several vendors, eg. Xilinx)  Complexity issue  Application IP composition  Reconfigurable Datapath (e.g. XPP)  eFPGAs (M2000, Mentra, ...)  Rsocs (e.g Morpheus project) : RA IP composition complexity 5
  • 6. Requires efficient tools  Programming these circuits is a complex task  Tools are linked to a target (low reuse)  Application description “fails” to exploit flexibility 6
  • 7. My talk adresses  Applying OO methodology to reconfigurable hardware  Adapt to new RA “retargetable compiler”  Produce Circuits from HL code  10 years experience report  Results + Lessons learned 7
  • 8. Origin: Compatibility issues  Need to conform to  standards tools/formats  vendor's private (unstable) formats  While preserving a stable API  Solution: Build up a framework  Model : Reconfigurable Architecture (RA)  Tools : Editing/Programming RA 8
  • 9.  Tools for HL Code to circuit mapping Our contribution Floorplaning HL Code RTL Code Place & Route Validation Bitstream generation Execution control SOFT HARD Covers more architectures: model's improvements Covers control structures and libraries 2 1 9
  • 10. First architecture  XC6200 from Xilinx  Configuration as RAM  Very exiting (late 90s) Export Program & Manage execution 10
  • 11. Dedicated Tool  A circuit is an object  Registers = instance variables  IOs = accessors  Mmap: configuration  main memory  Fine resource allocation  Step by Step execution control 11
  • 12. 12
  • 13. 13
  • 14. Improvements  Coverage  Learning by doing (reverse is costly)  Model re-design  Wire vs Channel  Directional vs Bi directional resources  Hierarchical composition  ...  Model instanciation (DSL)  Design Space Exploration (DSE) 1 14
  • 15. Results  Architectures  Commercial architecture (VIRTEX) with back end vendor's tools control  Reconfigurable datapaths (STMicro)  Generic parameterized architectures (DSE)  Architecture research oriented support (fast prototyping)  Two issues  Compiance to standard  High Level layer 15
  • 17. ST as application spec Goal: Fully exploit RA adaptability  How:  AST from Vw code  Typing  Compilation steps (standard + specific) + RTL (application) generation 2 17
  • 23. Pro/Cons  Domain oriented tailoring (ex. Galois field based typing) for free  Logic based simulator hence SW/HW sharing API  Complexity bounded  Restricted to simple control structures (ifTrue:, ...) and loop unrolling  Still relies on third parties logic minimizers 23
  • 24. Complexity issue  Well known design patterns  Soft macros (tiling, ...)  Compositions (divide and conquer)  Designing architectures (control structures through structural patterns) 24
  • 25. Model/Interchange issues  Standart compliance (e.g. EDIF)  Exchange issues:  Ensure portability  Prevent semantic losses  Allow cross-blocks optimizations Meta modeling: Platypus (A. Plantec)  STEP/EXPRESS  Visitors (encoding/decoding, repository, rules checking) + Visitors (Domain specific e.g. Scheduling) 25
  • 26. Flow Platypus tool CDFG design CDFG EXPRESS model Tool X Tool Y HLL CDFG API (Java) CDFG instances (STEP files) CDFG Checker Madeo+ synthesis tool CDFG Use Target 3 Specific Assembly code Target 2 C like code Target 1 EDIF Target architecture description HLL CDFG API (Smalltalk) ENTITY HierarchicalNode SUBTYPE OF (Node); localVariables : LIST OF AbstractData; subOperators : LIST [1 : ?] OF Node; END_ENTITY; ENTITY AccumulatorNode SUBTYPE OF (HierarchicalNode); init : AbstractData; -- ”AccumulatorNode.init” the initial value we start accumulating from. toBeAccumulated: AbstractData; DERIVE cumulatedArguments : LIST OF AbstractData := subOperators [ SIZEOF (subOperators)].outputs; WHERE toBeAccumulatedSource: SIZEOF ( cumulatedArguments )=1; typeCompat: cumulatedArguments[1].type = init.type; END_ENTITY; APPLICATION APPLICATION 26
  • 27. Validation  Key issue  Requires standard tools (Again !)  But we want also Sunit capabilities 27
  • 28. Combine both  Use external tools as characterization tests for your own tools  Once yours are validated, use them  Multi level simulation (System, Architecture, Circuit)  Add probes/break points  Keep the double link between HL code and circuit 28
  • 29. Conclusion  Model target (FPGA, eFPGA, ...)  Generate application-code  HL code hardware execution  Open to third parties  Used in several projects (RNTL, PRIR, FP6, ...)  Benefits from OO  Provides OO-like  Nice candidate to RA based VM implementation tool 29
  • 30. Lessons learned  Split layers into separate tools with different names  Use Meta Modeling (cost killer)  Evolution  Interchange  Documentation  Export code and always target your partner's reference language (your partner is your client)  You may like UGI, partners like command line mode (seaside 's fine for remote access and easy demo)  Don't show partners you work faster than they do  Keeping your cooking tips secrets is not a problem 30
  • 31. On going tasks  Platypus + STEP/EXPRESS for FPGA modeling  DSL generation (ExternalLanguageParser -> SmaCC -> gen. smaCC)  Probe synthesis (hardware = speed up)  Nano devices (e.g. NASICs from Umass)  Virtualize FPGAs 31