Discrete Event. Explicit notion of time (global order…) DE simulator maintains a global event queue (Verilog and VHDL) Drawbacks global event queue => tight coordination between parts Simultaneous events => nondeterministic behavior Some simulators use delta delay to prevent nondeterminacy.
Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.
Can be refined
E.g. introduce timing constraints
(minimum reaction time 0.1 s)
t
Fire B or C?
t
A
B
C
B has 0 delay
B has delta delay
t
t
t
t+
A
B
C
A
B
C
Fire C once? or twice?
Fire C twice.
Still have problem with 0delay
(causality) loop
delta steps
ticks
computation
continuous time
F
B=>C
C=>F
G
C=>G
C=>G
F^(G==1)
C
C=>A
CFSM2
CFSM1
CFSM1
CFSM2
C
C=>B
A
B
C=>B
(A==0)=>B
CFSM3
(avoid inconsistencies when interconnected)
(global asynchronicity)
(local synchronicity)
Write v1
Emit
Write v2
Emit
Sender S
Receiver R
Read Event
Read Value
ti1
t1
t2
ti
t3
t4
ti+1
X:=4
Y:=4
Y:=5
X:=5
Sender S
Read Y
Read X
Receiver R1
Read X
Read Y
Receiver R2
t1
t2
t3
t4
t5
t6
Emit X
Emit Y
Sender S
Read
Receiver R1
Read
Receiver R2
Read
Receiver R3
t1
t2
t3
t4
t5
i1
A
C
i
err
o
B
i2
for Digital Signal Processors (HW and SW)
(process cannot test input queues for emptiness)
i(1)
*c2
i
*c1
+
o
i(1)
*c2
i
*c1
+
o
i(1)
*c2
i
*c1
+
o
i(1)
*c2
i
*c1
+
o
i(1)
*c2
i
*c1
+
o
i(1)
*c2
i
*c1
+
o
*c2
i
*c1
+
o
*c2
i
*c1
+
o
*c2
i
*c1
+
o
*c2
i
*c1
+
o
X = [ x1, x2, x3, …]
F : Sp > Sq
Y = ( y1, … , yp ), Y’ = ( y’1, … , y’p ) in Sp :Y <= Y’ iff yi <= y’i for all 1 <= i <= p
F( lub( C ) = lub( F( C ) )
X = F( X, I )
(number of required tokens on inputs)
(including number of consumed and produced tokens)
FFT
1024
1024
10
1
1
+
1
1
T
F
select
merge
T
F
(only fires actors when fireable)
(brings network back to initial state firing each actor at least once)
must be satisfied for each edge
np
nc
A
B
A
2
3
2
1
1
1
B
C
1
1
310
011
201
201
A
2
3
M =
2
1
1
1
B
C
1
1
iff S is periodic
(too many tokens accumulate on A>B or B>C)
210
011
201
201
A
2
2
M =
2
1
1
1
B
C
1
1
M q = 0
A
2
1
1
3
B
C
2
3
BACBA, then deadlock…
BACBACBA valid
i
i(1)
i(2)
*c2
*c1
+
o
A
2
2
2
1
1
1
B
C
1
1
q = 1 2 2T
(chaining custom code for each actor)
(“zerooverhead loops”)
e.g. ABCBC > A (2BC), ABBCC > A (2B) (2C)
(Bhattacharyya ‘94, Lauwereins ‘96, Murthy ‘97)
1
A
10
C
D
1
10
B
10
1
q =  100 100 10 1T
(Parks ‘96: may not terminate, but never fails if feasible)
0
0
T
F
T
F
<0
T
F
+
>n
+1

T
F
T
F
T
F
T
T
In
Out
a = get (A)
b = get (B)
forever {
if (a > b) {
put (O, a)
a = get (A)
} else if (a < b) {
put (O, b)
b = get (B)
} else {
put (O, a)
a = get (A)
b = get (B)
}
}
*3
dup
*2
1
ordered
merge
out
(no “peeking”)
dup
1
B
A
O