Download Finite State Machine with Datapath

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Theoretical computer science wikipedia , lookup

Corecursion wikipedia , lookup

Transcript
Finite State Machine
with Datapath
Jan Madsen
Informatics and Mathematical Modeling
Technical University of Denmark
Richard Petersens Plads, Building 321
DK2800 Lyngby, Denmark
Motivation
void UnitControl()
{
up = down = 0; open = 1;
while (1) {
while (req == floor);
open = 0;
if (req > floor) { up = 1;}
else {down = 1;}
while (req != floor);
open = 1;
delay(10);
}
}
}
02131 Embedded Systems
Controller
Datapath
2
1
Motivation
inst mem
controller
datapath
data mem
? FSM
? Definition, notation, usage, extensions, system behaviour
? FSMD
? FSMD execution / timing
? Modeling
02131 Embedded Systems
3
Finite State Machine, FSM
?Finite state machines are used to describe the
behavior of a system and is one of the most
fundamental models of computation.
?A finite state machine has a set of states, and its
control moves from state to state in response to
external inputs.
?The term "finite" refers to the fact that the set of
states Q is a finite state.
02131 Embedded Systems
5
2
Finite State Machine, FSM
?A finite state machine is said to be deterministic if
for a given state qi and a given input si there is
only one possible next state.
?In case of two or more possible next states for
the same input si, the finite state machine is said
to be non-deterministic.
?we shall only be concerned with deterministic
finite state machines.
02131 Embedded Systems
6
FSM definition
FSM = < Q, ? , ?, q0, F >
?A finite set of states Q
?A finite set of input symbols, ?
?A transition function, ?: Q, ? ? Q
?A start state q0 from Q
?A set of final or accepting states, F Q
02131 Embedded Systems
7
3
FSM Notation
? Transition diagram
?Transition table
q0
s1
q0
q1
s4
s2
q2
s3
s1
q1
q1
q2
s2
s3
q2
s4
q3
q1
q3
q3
02131 Embedded Systems
8
Processing strings
? A FSM can be used to recognize a sequence of input
symbols (a string)
? Used to describe regular languages and to show
properties of such languages
? if two finite state machines represents the same language.
? The language of a finite state machine is the set of all
strings which the finite state machines accepts.
? Let qn be the state after processing each input symbol in
sequence,
? If qn belongs to F, the string is said to be accepted,
? otherwise it is rejected.
02131 Embedded Systems
9
4
Example
?We want to specify a FSM that accepts all and
only the strings of 0’s and 1’s that have the
sequence 01 somewhere in the string.
?{x01y | x and y are any string of 0’s and 1’s}
?Strings in the language
?01, 11010 and 100011
?Strings not in the language
?0 and 111000
02131 Embedded Systems
10
Example
?{x01y | x and y are any string of 0’s and 1’s}
?FSM = <{q0, q1, q2,},{0,1},?, q0,{q1}>
1
q0
02131 Embedded Systems
0
0
q2
1
q1
0,1
11
5
FSM extensions
?We are not always content with a machine which
only accepts strings!
?We also need machines which produce some
output as a reaction to the inputs
?There are two distinct approaches to include
output:
?Moore: associate the emission of an outputevent with a
state
?Mealy: associate the emission of an outputevent with a
transition
?Both are equal in modeling capabilities
02131 Embedded Systems
12
FSM with output
FSM = < Q, ? , ? , ?, q0, F >
?A finite set of states Q
?A finite set of input symbols, ?
?A finite set of output symbols, ?
?A transition function, ?: Q, ? ? Q
?A start state q0 from Q
?A set of final or accepting states, F Q
02131 Embedded Systems
13
6
FSM with output
? Moore machine
? Mealy machine
s1
q0/d0
s1/d1
q2/d2
q0
q2
02131 Embedded Systems
14
Describing behavior
?Seat belt alarm
?Specification:
?”Five seconds after the key is turned on, if the belt
has not been fastened, an alarm will beep for ten
seconds or until the key is turned off”
?FSM?
?Device a FSM with your neighbour (10 min.)
02131 Embedded Systems
15
7
Seat belt alarm
?States:
?Off, Wait, Alarm
Key = on / Start
Wait
?Input events:
?Key
?Belt
?End
?Output events:
Off
Key = off or
Belt = on /
End = 10 or
Key = off or
Belt = on /
Alarm = off
End = 5 /
Alarm = on
Alarm
?Alarm
?Start
02131 Embedded Systems
16
FSMD
02131 Embedded Systems
17
8
FSMD execution
inst mem
controller
datapath
02131 Embedded Systems
data mem
18
von Neumann machine
? Controller: Instruction processor
1.
2.
3.
4.
5.
Determine label of next instruction
Instruct memory to provide instruction
Receive instruction and decode it
Inform data processor of operation to be executed
Determine labels of operands and pass them to data
memory
6. Receive state information from data processor
? Defines the instruction sequence
02131 Embedded Systems
19
9
von Neumann machine
? Controller: Instruction processor
Get label
Request
instruction
Receive
instruction
Receive
state
Operand
labels
Instruct
DP
02131 Embedded Systems
20
von Neumann machine
? Datapath: Data processor
Receive
Inst type
Operand
labels
Request
operands
Receive
operands
Store
result
02131 Embedded Systems
Return
state
execute
21
10
FSMD execution
? Executes in a number of steps
Step i-1
Step i
Step i+1
? Steps are controlled by a clock
period T
frequency f = 1/T
? Within a period we have to read, compute and save
? For now, all we need to know is that there is a clock
02131 Embedded Systems
22
FSMD execution
Step i-1
Step i
Step i+1
F i-1
Fi
F i+1
02131 Embedded Systems
23
11
Simple example
+1
0
+1
0
time
0+1
0
0
0+1
1
0+1
0
0+1
1
1+1
0+1
2
1+1
2
1+1
1
1
1+1
2
1
0
0
0+1
1+1
1
0
+1
3
1+1
2
02131 Embedded Systems
3
24
Modelling
02131 Embedded Systems
26
12
Modeling
model type
Mathematical domain
model type
model
instance
model
instance
When go==1 then
blink leds five times
specification
implementation
Physical domain
02131 Embedded Systems
27
Modeling: Hardware design
Gezel: fdlsim
FSMD
Gezel
Mathematical domain
Gezel: fdlvhd
FSMD
VHDL: Modelsim
VHDL
Xilinx
When go==1 then
blink leds five times
specification
Xilinx FPGA
Physical domain
02131 Embedded Systems
28
13
Modeling: Software design
Mathematical domain
Imperative languages
Imperative languages
C
Compiler: gcc
ASM
linker
When go==1 then
blink leds five times
specification
Pentium III
Physical domain
02131 Embedded Systems
29
14