An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for...
Transcript of An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for...
![Page 1: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/1.jpg)
An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations
Adam LangeEngineering contractor
Lange Turbo
1
![Page 2: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/2.jpg)
2
![Page 3: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/3.jpg)
3
![Page 4: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/4.jpg)
sensors4
![Page 5: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/5.jpg)
sensors
controller
5
![Page 6: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/6.jpg)
actuators
sensors
controller
6
![Page 7: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/7.jpg)
actuators
sensors
controller
7
![Page 8: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/8.jpg)
OpenModelica
Initial System Model
actuators
sensors
controller
8
![Page 9: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/9.jpg)
OpenModelica
Initial System Model
actuators
sensors
controller
Step 1: System design and feasibility study
Creativity
Equations
Design iterations
9
![Page 10: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/10.jpg)
OpenModelica
Initial System Model
Physical Prototype
actuators
sensors
controller
10
![Page 11: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/11.jpg)
OpenModelica
Initial System Model
Physical Prototype
actuators
sensors
controller
(with a FPGA !)
11
![Page 12: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/12.jpg)
OpenModelica
Initial System Model
Physical Prototype
actuators
sensors
controller
12
![Page 13: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/13.jpg)
OpenModelica
Initial System Model
Physical Prototype
actuators
sensors
controller
borrow
actuators
3D print
13
![Page 14: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/14.jpg)
OpenModelica
Initial System Model
Physical Prototype
actuators
sensors
controller
borrow
actuators
3D print
(with a FPGA !)
14
![Page 15: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/15.jpg)
Main Control Algoritm
SensorInterface
∙ Polls the sensors∙ Produces outputs at any time
outputinterface
datareadyvalid
datareadyvalid
sensorinterface
timer
trigger
datareadyvalid
datareadyvalid
datareadyvalid
datareadyvalid
datareadyvalid
booleanoutputs
sensor
sensorinterface
trigger
datareadyvalid
sensor
15
![Page 16: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/16.jpg)
RegisterTransferLevelAbstraction
MainControlAlgorithm.v
SensorInterface.v
Controller.v
sensorinterface
datareadyvalid
sensor16
![Page 17: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/17.jpg)
RegisterTransfer
AbstractionSensorInterface.v
Controller.v
17
![Page 18: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/18.jpg)
RegisterTransfer
AbstractionSensorInterface.v
Controller.v
C-to-verilog
High Level Synthesis
C-to-verilog
High Level
Synthesis
18
![Page 19: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/19.jpg)
RegisterTransfer
AbstractionSensorInterface.v
Controller.v
Modelica-to-RTL
High Level Synthesis??
Modelica-to-RTL
High Level
Synthesis??
19
![Page 20: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/20.jpg)
RegisterTransferLevelAbstraction
MainControlAlgorithm.v
SensorInterface.v
Controller.v
sensorinterface
datareadyvalid
sensor20
![Page 21: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/21.jpg)
MainControlAlgorithm.v
Controller
Vendor Tools~5-10 min
FPGA
21
![Page 22: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/22.jpg)
Main Control Algoritm
SensorInterface
RegisterTransferLevelAbstraction
∙ Polls the sensors∙ Produces outputs at any time
MainControlAlgorithm.v
SensorInterface.v
Controller.v
Controller
Vendor Tools~5-10 min
FPGA
C-to-verilog
High Level Synthesis
C-to-verilog
High Level
Synthesis
outputinterface
datareadyvalid
datareadyvalid
sensorinterface
timer
trigger
datareadyvalid
datareadyvalid
datareadyvalid
datareadyvalid
datareadyvalid
booleanoutputs
sensor
sensorinterface
trigger
datareadyvalid
sensor
22
![Page 23: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/23.jpg)
Main Control Algoritm
SensorInterface
∙ Polls the sensors∙ Produces outputs at any time
C-to-verilog
High Level
Synthesis
outputinterface
datareadyvalid
datareadyvalid
sensorinterface
timer
trigger
datareadyvalid
datareadyvalid
datareadyvalid
datareadyvalid
datareadyvalid
booleanoutputs
sensor
sensorinterface
trigger
datareadyvalid
sensor
23
![Page 24: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/24.jpg)
Main Control Algoritm
SensorInterface
∙ Polls the sensors∙ Produces outputs at any time
C-to-verilog
High Level
Synthesis
outputinterface
datareadyvalid
datareadyvalid
sensorinterface
timer
trigger
datareadyvalid
datareadyvalid
datareadyvalid
datareadyvalid
datareadyvalid
booleanoutputs
sensor
sensorinterface
trigger
datareadyvalid
sensor
dataacquisition
dataacquisition
dataacquisition
dataacquisition
24
![Page 25: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/25.jpg)
Main Control Algoritm
SensorInterface
∙ Polls the sensors∙ Produces outputs at any time
C-to-verilog
High Level
Synthesis
outputinterface
datareadyvalid
datareadyvalid
sensorinterface
timer
trigger
datareadyvalid
datareadyvalid
datareadyvalid
datareadyvalid
datareadyvalid
booleanoutputs
sensor
sensorinterface
trigger
datareadyvalid
sensor
probe
dataacquisition
dataacquisition
dataacquisition
dataacquisition
25
![Page 26: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/26.jpg)
Main Control Algoritm
SensorInterface
RegisterTransferLevelAbstraction
∙ Polls the sensors∙ Produces outputs at any time
MainControlAlgorithm.v
SensorInterface.v
Controller.v
Controller
Vendor Tools~5-10 min
FPGA
C-to-verilog
High Level Synthesis
C-to-verilog
High Level
Synthesis
outputinterface
datareadyvalid
datareadyvalid
sensorinterface
timer
trigger
datareadyvalid
datareadyvalid
datareadyvalid
datareadyvalid
datareadyvalid
booleanoutputs
sensor
sensorinterface
trigger
datareadyvalid
sensor
probe
dataacquisition
dataacquisition
dataacquisition
dataacquisition
26
![Page 27: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/27.jpg)
actuators
sensors
controller
27
![Page 28: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/28.jpg)
Main Control Algoritm
SensorInterface
RegisterTransferLevelAbstraction
∙ Polls the sensors∙ Produces outputs at any time
MainControlAlgorithm.v
SensorInterface.v
Controller.v
Controller
Vendor Tools~5-10 min
FPGA
C-to-verilog
High Level Synthesis
C-to-verilog
High Level
Synthesis
outputinterface
datareadyvalid
datareadyvalid
sensorinterface
timer
trigger
datareadyvalid
datareadyvalid
datareadyvalid
datareadyvalid
datareadyvalid
booleanoutputs
sensor
sensorinterface
trigger
datareadyvalid
sensor
probe
dataacquisition
dataacquisition
dataacquisition
dataacquisition
28
![Page 29: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/29.jpg)
Main Control Algoritm
SensorInterface
RegisterTransferLevelAbstraction
∙ Polls the sensors∙ Produces outputs at any time
MainControlAlgorithm.v
testbench.v
Assumedideal
outputinterface
datareadyvalid
datareadyvalid
sensorinterface
timer
trigger
datareadyvalid
datareadyvalid
datareadyvalid
datareadyvalid
datareadyvalid
booleanoutputs
sensor
sensorinterface
trigger
datareadyvalid
sensor
probe
dataacquisition
dataacquisition
dataacquisition
dataacquisition
29
![Page 30: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/30.jpg)
run controller simulation until controllerneeds to read a sensor
Earth time →
Run OpenModelica for Δt1 seconds of simulation time
Events are re-created using whenevents
Δt0
When the controllersimulation runs, events are stored.
Δt1
Controller simulation time →
physics simulation time →
OpenModelica
Icarus Verilog and Cocotb
tsim = ta
Controller sensor reading
Controller output event
← send event queue
← send Δt0
sen
d se
nso
r valu
es →
tsim = ta
30
![Page 31: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/31.jpg)
run controller simulation until controllerneeds to read a sensor
Earth time →
Δt0
Controller simulation time →
Icarus Verilog and Cocotb
tsim = ta← send event queue
← send Δt0
d sen
sor va
lues →
31
![Page 32: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/32.jpg)
run controller simulation until controllerneeds to read a sensor
Δt0
Controller simulation time →
Icarus Verilog and Cocotb
tsim = ta
Event occured!Store event time andvalue of the controler outputs.
store event!
store event!
t = t1t = t2
t = t3
32
![Page 33: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/33.jpg)
run controller simulation until controllerneeds to read a sensor
Δt0
Controller simulation time →
Icarus Verilog and Cocotb
tsim = ta
Event occured!Store event time andvalue of the controler outputs.
store event!
store event!
t = t1t = t2
t = t3
33
![Page 34: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/34.jpg)
run controller simulation until controllerneeds to read a sensor
Δt0
tsim = ta
Event occured!Store event time andvalue of the controler outputs.
store event!
store event! Controller requeststhat the sensors arepolled
t = t1t = t2
t = t3
A blocking functionsends event info tomodelica.
34
![Page 35: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/35.jpg)
run controller simulation until controllerneeds to read a sensor
Δt0
When the controllersimulation runs, events are stored.
e controler outputs.
store event!
store event! Controller requeststhat the sensors arepolled
t = t3
A blocking functionsends event info tomodelica.
35
![Page 36: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/36.jpg)
← send event queue
← send Δt0
sen
d se
nso
r valu
es →
36
![Page 37: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/37.jpg)
Run OpenModelica for Δt1 seconds of simulation time
sen
d se
nso
r valu
es →
sim = ta Modelica when eventis triggered at t = t1
and controller output values are set
when event for outputwhen event for output
t = t2t = t8
when event triggersan impure function callat Δt1 , where controllerrequested to poll sensors
modelica execution is blockby the function
37
![Page 38: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/38.jpg)
Run OpenModelica for Δt of simulation time
ics simulation time →
sim = ta Modelica when eventis triggered at t = t1
and controller output values are set
when event for outputt = t2
38
![Page 39: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/39.jpg)
Run OpenModelica for Δt of simulation time
sim = ta Modelica when eventis triggered at t = t1
and controller output values are set
when event for outputwhen event for output
t = t2t = t
39
![Page 40: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/40.jpg)
Run OpenModelica for Δt1 seconds of simulation time
when event for outputwhen event for output
t = t8
when event triggersan impure function callat Δt1 , where controllerrequested to poll sensors
40
![Page 41: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/41.jpg)
OpenModelica for Δt1 seconds Events are re-created usinevents
when event triggersan impure function callat Δt1 , where controllerrequested to poll sensors
modelica execution is blockedby the function
41
![Page 42: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/42.jpg)
run controller simulation until controllerneeds to read a sensor
Run OpenModelica for Δt1 seconds of simulation time
Events are re-created using whenevents
Δt0
When the controllersimulation runs, events are stored.
Δt1
simulation time →
mulation time →
rilog and Cocotb
Controller sensor rea
Controller output eve
← send event queue
← send Δt0
sen
d se
nso
r valu
es →
42
![Page 43: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/43.jpg)
run controller simulation until controllerneeds to read a sensor
Earth time →
Run OpenModelica for Δt1 seconds of simulation time
Events are re-created using whenevents
Δt0
When the controllersimulation runs, events are stored.
Δt1
Controller simulation time →
physics simulation time →
OpenModelica
Icarus Verilog and Cocotb
tsim = ta
Controller sensor reading
Controller output event
← send event queue
← send Δt0
sen
d se
nso
r valu
es →
tsim = ta
43
![Page 44: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/44.jpg)
Event occured!Store event time andvalue of the controler outputs.
store event!
store event! Controller requeststhat the sensors arepolled
t = t1t = t2
t = t3
A blocking functionsends event info tomodelica.
OpenModelicaPython script
web socket
generatedc library
generatedmodelicamodel
Icarus Verilogsimulator
generatedpython module
input file(JSON format)
code generator
CocotbSystemmodel
44
![Page 45: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/45.jpg)
Event occured!Store event time andvalue of the controler outputs.
store event!
store event! Controller requeststhat the sensors arepolled
t = t1t = t2
t = t3
A blocking functionsends event info tomodelica.
Python script
web socket
Icarus Verilogsimulator
generatedpython module
input file(JSON format)
Cocotb
MainControlAlgorithm.v
testbench.v
45
![Page 46: An Open Source Tool for Performing Coupled OpenModelica ...€¦ · An Open Source Tool for Performing Coupled OpenModelica – FPGA Simulations Adam Lange Engineering contractor](https://reader030.fdocuments.us/reader030/viewer/2022040611/5eda6306b3745412b57141fd/html5/thumbnails/46.jpg)
https://github.com/adamLange/hdlModelicaInterfaceGen