Title: Study of Simulink Discrete System MOC with Metropolis
1Study of Simulink Discrete System MOC with
Metropolis
- Haiyang Zheng
- hyzheng_at_eecs.berkeley.edu
- Mentors
- Luciano Lavagno luciano_at_cadence.com
- Felice Balarin felice_at_cadence.com
2Outline
- Motivation and Introduction
- Simulink Discrete System MOC
- MOC Implementation in Metropolis
- A tool for automatic transformation of Simulink
models into Metropolis models - Simulation Demos
- Acknowledgement and Conclusion
3Motivation
- Simulink MOC is a heterogeneous one. A
non-trivial model contains both discrete and
continuous models. - A complex mixture model is usually hard to
design, understand, and maintain. - A better way is to use some simpler, better
defined MOCs to model different parts of the
complex system.
4Introduction
- Discrete time points
- Continuous time intervals
- We choose purely discrete (sampled data) system
as the study object.
5Outline
- Motivation and Introduction
- Simulink Discrete System MOC
- MOC Implementation in Metropolis
- A tool for automatic transformation of Simulink
models into Metropolis models - Simulation Demos
- Acknowledgement and Conclusion
6Discrete System in Simulink
B
A
C
- Each block in the block diagram has a sample
time, the rate at which it executes during
simulation. - Multi-rate discrete systems contain blocks
sampled at different rates. - Simulator takes the simulation step as the
fundamental sample time, the greatest common
divisor of the systems actual sample times.
7Outline
- Motivation and Introduction
- Simulink Discrete System MOC
- MOC Implementation in Metropolis
- A tool for automatic transformation of Simulink
models into Metropolis models - Simulation Demos
- Acknowledgement and Conclusion
8Metropolis meta-model
- Netlist design of model (aggregation of objects
and ports) - Objects
- Process thread doing computation
- Medium
- Media for communication between processes
- State Media for communication between process and
scheduler - Scheduler defines policies to satisfy
constraints - Port Interface
- provides functions reference of other objects
- Constraint
9Discrete MOC in Metropolis I
- Processes communicate through channels, the
medium. - Each process has a period parameter, which is
stored in the associated state medium.
10Discrete MOC in Metropolis II
- The scheduler calculates the schedule based on
the sampled rates and invokes different processes
periodically. - The scheduler forces the finish of execution of
processes to ensure the data precedence. - The data dependency is not analyzed in the
scheduler but in the model design phase.
11Outline
- Motivation and Introduction
- Simulink Discrete System MOC
- MOC Implementation in Metropolis
- A tool for automatic transformation of Simulink
models into Metropolis models - Simulation Demos
- Acknowledgement and Conclusion
12An Example Model
13Metropolis MMM Netlist
- public netlist simple
- public simple (String name)
- dtScheduler dtscheduler new
dtScheduler("dtscheduler", 4) - addcomponent (dtscheduler, this)
- RampProcess DiscreteRamp new
RampProcess("DiscreteRamp", 0, 2) - addcomponent(DiscreteRamp,this,"DiscreteRamp")
- dtStateMedium s0 new dtStateMedium("StateMed
ium0", 0.25) - addcomponent (s0, this)
- connect (DiscreteRamp,smport,s0)
- connect (dtscheduler, StateMedium0, s0)
- connect (dtscheduler, processPeriod0, s0)
-
- dtchannel c0 new dtchannel("c0")
- addcomponent(c0,this,"channel0")
- connect(DiscreteSubtract,outports0,c0)
- connect(Scope,inports0,c0)
-
14Comparison
An automatic transformation from the block
diagram representation to the text representation
is necessary.
15A Tool for Transformation from Simulink models
into Metropolis models
- Transformation from Simlink Models into XML
representations using MatlabUDM, a tool from
Vanderbilt University. - Transformation from XML representations into
Metropolis MMM netlists with XSLT based tool. - Two contributions
- It bridges the tools of Simulink and Metropolis
with XML. - It sorts the blocks based on data dependency
analysis.
16Design of the Tool Data Dependency Analysis
Given order of blocks as BCAD.
- Conditions for processes to
- be ready to execute
- There is no input.
- All inputs are available.
- Algorithm
- Construct a status array with length as the
number of processes and initiate it with O
indicating the process not scheduled. - Iterate the processes with given order, mark the
ready process as Y, and schedule it. Repeat until
all processes are marked and scheduled.
The sorted block order is ABCD.
17Outline
- Motivation and Introduction
- Simulink Discrete System MOC
- MOC Implementation in Metropolis
- A tool for automatic transformation of Simulink
models into Metropolis models - Simulation Demos
- Acknowledgement and Conclusion
18Demos (Results)
- A Simulink Model
- Simulation result
- A Metropolis Model
- Simulation with code generated from SystemC
Result of Ramp is 1 Result of Ramp is 2 Result
of Gain is 4 Result of Subtract is 2 Outputis
2 Result of Ramp is 3 Result of Ramp is
4 Result of Gain is 8 Result of Subtract is
4 Outputis 4 Result of Ramp is 5 Result of Ramp
is 6 Result of Gain is 12 Result of Subtract
is 6 Outputis 6
19Outline
- Motivation and Introduction
- Simulink Discrete System MOC
- MOC Implementation in Metropolis
- A tool for automatic transformation of Simulink
models into Metropolis models - Simulation Demos
- Acknowledgement and Conclusion
20Acknowledgement Conclusion
- Thanks to
- Advice from Luciano Lavagno and Felice Balarin.
- Guang Yangs help on the C-code generation of
Metropolis models with SystemC. - ISIS of Vanderbilt University providing the
MatlabUDM tool. - A Discrete (Sampled Data) MOC is implemented in
Metropolis. - A transformation tool from Simulink XML models to
Metropolis MMM netlists is implemented.