Professional Documents
Culture Documents
Co-synthesis Techniques
Cosynthesis
Memory
System
Input
System
Output
Mixed
Implementation
Performance
Pure HW
Pure SW
Constraints
Cost
IEEE 1993
[Gupta93]
Co-synthesis
Cost considerations
Synthesis Flow
Interface synthesis
Definition of HW/SW interface and synchronization
Drivers of peripheral devices
Hardware Design
Methodology
Hardware Design Process:
Waterfall Model
Hardware
Requirements
Preliminary
Hardware
Design
Detailed
Hardware
Design
Fabrication
Testing
Hardware Design
Methodology (Cont.)
Hardware Synthesis
Definition
The automatic design and implementation of hardware from
Goals/benefits
To quickly create and modify designs
To support a methodology that allows for multiple design
alternative consideration
Algorithm synthesis
Synthesis from design requirements to control-flow behavior
or abstract behavior
Largely a manual process
Register-transfer synthesis
Also referred to as high-level or behavioral synthesis
Synthesis from abstract behavior, control-flow behavior, or
10
Hardware Synthesis
Process Overview
Specification
Implementation
Behavioral
Synthesis
Behavioral
Functional
Synthesis &
Test Synthesis
RTL
Functional
Behavioral
Simulation
Optional RTL
Simulation
Verification
Gate-level
Simulation
Gate-level
Analysis
Gate
Silicon Vendor
Place and Route
Silicon
Layout
11
HW Synthesis
ICOS
Architecture specs
Performance specs
Synthesis specs
Specification Input
Specification Analysis
(1)
1. Specification
Analysis
No
Class Hierarchy
Initialization:
AddDH(root), AppendDQ(root)
2. Concurrent Design
3. System Integration
Yes
Specification
Error?
PopDQ
Component
Design
Component
Design
No
Component
Design
...
Component
Design
(2)
DQempty?
Yes
design
complete?
Yes
Simulation and
Performance
Evaluation
No
Synthesis
Rollback
Yes
rollback
possible?
Output Best
Architecture
(3)
No
Error: Synthesis
Impossible
Stop
(1) Specification Analysis Phase (2) Concurrent Design Phase (3) System Integration Phase
12
Software Design
Methodology
Software Design Process:
Waterfall Model
Software
Requirements
Software
Design
Coding
Testing
Maintenance
13
Software Design
Methodology (Cont.)
Unit testing
Integration testing
System testing
Regression testing
Acceptance testing
14
Software Synthesis
satisfies specification
15
Why Use
Software Synthesis?
Code optimizations
size
efficiency
17
System
Software
Specification
Modeling System
Software with Time Petri
Net
Task Scheduling
Code Generation
Code Execution on an
Emulation Board
Feedback and
Modification
Test Report
18
19
Software Synthesis
Categories
Language compilers
ADA and C compilers
YACC - yet another compiler compiler
Visual Basic
Domain-specific synthesis
Application generators from software libraries
20
synthesis tools
graphs
21
22
Motivation
System Complexity
Time to Market
Hardware-Software Co-design Methodology
Embedded Software Synthesis Tools
Text-Edit User-Interface
System Model
Interrupt Behavior
Introduction
23
System Model
Interrupt Time Petri Net, ITPN
Scheduling
Interrupt-Based Quasi-Dynamic Scheduling, IQDS
Code Generation
Introduction
24
System Framework
GUI
Software Synthesis
ITPN
IQDS
Code Generation
Introduction
25
ITPN Definition
ITPN P , T , I , O ,
A ITPN is a 5-tuple.
P is a non-empty finite set of places.
T is a non-empty finite set of transitions.
I(ti) is a input function.
O(tj) is a output function.
System Model
26
27
A ITPN Example
t2(2, 2, 2)
t1(1, 1, 1)
p1
p2
End Place
p3
Initial Place
t3(3, 3, 3)
System Model
End Place
28
29
An example of IQDS
t3(1, 3, 1)
p1
t1(1, 2, 1)
p2
t2(1, 1, 1)
p4
p5
p3
p6
t4(1, 2, 1)
Initial Place
Choice Block1
p10
t5(1, 2, 1)
Choice Block1
Scheduling &
Code Generation
t6(1, 4, 1)
p7
t7(1, 3, 1)
p11
p12
t8(1, 4, 1)
End Place
30
CBS1
Result
t1t2
t3
t4
t5
t1t2 t3
t1t2 t4
t1t2 t5
Present Route
Static Route
Result
t1t2 t3
t1t2 t4
t1t2 t5
t6
t7
t1t2 t3 t6
t1t2 t4 t7
t1t2 t5 t8
t1t2 t5 t9
CBS2
t8
t9
Scheduling &
Code Generation
31
Result
t1t2 t3 t6
t1t2 t4 t7
t1t2 t5 t8
t1t2 t5 t9
0
0
Scheduling &
Code Generation
Real_Time_Check
Not
Schedulable
RouteTimeMax
SystemPeriod
32
Code Generation
Step1: Differentiate ISR, main_function, and
Step2: sub_function
Print transitions content from Initial
Place
Step3: Print if then else
Step4: Combine main_function,
sub_function,
and ISR
33
Specification
Environment:
34
35
System Function:
Control Stepping Motor speed and
direction.
INT0, Timer1: Motors speed control.
Timer0 : Motors direction control.
Examples
36
Stepping
Motor
Display
Microcontroller
89C51
Driving
Circuit
Example
Input
Device
37
Main Function
p3
p6
p7
p8
p2
38
39
Timer0 ISR
p9
t8(2, 2, 32)
t8 : Reset
Example
p10
t9(6, 6, 32)
p11
t9 : Scan Keypad
40
41
Timer1 ISR
t12(2, 2, 32)
p12
t10(2, 2, 32)
p13
t11(2, 2, 32)
p15
t14(9, 9, 32)
p14
t13(0, 0, 32)
t10 : Reset
t12 : Reset count
t14 : Control stepping motor
Example
p16
p17
43
INT0 ISR
t18(0, 0, 32)
t16(2, 2, 32)
p22
p20
t19(2, 2, 32) p23
p19
t20(2, 2, 32) p24
t17(2, 2, 32)
p21
t21(0, 0, 32) p25
Example
45
Example
46
ISRs time
INT0
Timer0
Timer1
15
Example
47
Emulation
Platform Architecture
FPGA/CPLD
Chip
Keyboard
Example
Single Chip
Microcontroller
LCD
Display
LED and
7-Segment
Display
Memory
Input
Switch
48
Summary
Extended system model called Interrupt
Time Petri Net, ITPN
An Interrupt-Based Quasi-Dynamic
Scheduling, IQDS is proposed
Generate a microcontroller (8051) C
program code
Graphical user interface make the tool
more user-friendly
Conclusion
49
END
50