Upload
others
View
12
Download
0
Embed Size (px)
Citation preview
1
Embedded Systems Design: A Unified Hardware/Software Introduction
Capítulo 2: Processadores dedicados
2Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques
Tradução: Alice M. Tokarnia
Sumário
• Introdução• Lógica combinacional• Lógica seqüencial• Projeto de processadores dedicados• Projeto de processadores dedicados (RT-level: Nível
de Registradores)
3Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques
Tradução: Alice M. Tokarnia
Introdução
• Processador– Circuito digital que executa tarefas
computacionais– Datapath e controlador– Propósito-geral: variedade de tarefas
computacionais– Dedicados: tarefa única– Especializados (para uma área de
aplicação): número de tarefas limitadas
• Um processador dedicado customizado pode ser
– Rápido, pequeno, baixo consumo– Entretanto, alto NRE, longo time-to-
market, baixa flexibilidade
Microcontroller
CCD preprocessor
Pixel coprocessorA2D
D2A
JPEG codec
DMA controller
Memory controller ISA bus interface UART LCD ctrl
Display ctrl
Multiplier/Accum
Digital camera chip
lens
CCD
4Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques
Tradução: Alice M. Tokarnia
Transistor CMOS
• Transistor– Componente eletrônico básico em sistemas digitais– Atua como uma chave liga/desliga– A tensão de porta (gate) controla o fluxo de corrente da
fonte para o dreno
– Não confundir “gate” com porta lógica
source drainoxidegate
IC package IC channel
Silicon substrate
gate
source
drain
Conductsif gate=1
1
5Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques
Tradução: Alice M. Tokarnia
Implementações do transistor CMOS
• Complementary Metal Oxide Semiconductor (CMOS)
• Níveis lógicos– Tipicamente tem-se lógica
positiva: 0 é equivalente à 0V e 1 é equivalente à 5V
• Dois tipos básicos de CMOS– nMOS conduz se gate=1– pMOS conduz se gate=0– Portanto, são complementares
• Portas básicas– Inversor, NAND, NOR
x F = x'
1
inverter
0
F = (xy)'
x
1
x
y
y
NAND gate
0
1
F = (x+y)'
x y
x
y
NOR gate
0
gate
source
drain
nMOS
Conductsif gate=1
gate
source
drain
pMOS
Conductsif gate=0
6Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques
Tradução: Alice M. Tokarnia
Portas lógicas básicas
F = x yAND
F = (x y)’NAND
F = x ⊕ yXOR
F = xDriver
F = x’Inverter
x F
F = x + yOR
F = (x+y)’NOR
x F
x
yF
Fx
y
x
yF
x
yF
x
yF
F = x yXNOR
Fyxx
0y0
F0
0 1 01 0 01 1 1
x0
y0
F0
0 1 11 0 11 1 1
x0
y0
F0
0 1 11 0 11 1 0
x0
y0
F1
0 1 01 0 01 1 1
x0
y0
F1
0 1 11 0 11 1 0
x0
y0
F1
0 1 01 0 01 1 0
x F0 01 1
x F0 11 0
7Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques
Tradução: Alice M. Tokarnia
Projeto de lógica combinacional
A) Descrição do problema
y é 1 se a é 1, ou b e c são 1. z é 1 se b ou c é 1, mas não ambos, ou se todos são 1.
D) Minimizações equações de saída
00
0
1
01 11 10
0
1
0 1 0
1 1 1
abcy
y = a + bc
00
0
1
01 11 10
0
0
1 0 1
1 1 1
z
z = ab + b’c + bc’
abc
C) Equações de saída
y = a'bc + ab'c' + ab'c + abc' + abc
z = a'b'c + a'bc' + ab'c + abc' + abc
B) Tabela verdade
1 0 1 1 11 1 0 1 11 1 1 1 1
0 0 1 0 10 1 0 0 10 1 1 1 01 0 0 1 0
00 0 0 0
Inputsa b c
Outputsy z
E) Portas lógicas
abc
y
z
8Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques
Tradução: Alice M. Tokarnia
Componentes combinacionais
With enable input e all O’s are 0 if e=0
With carry-in input Ci
sum = A + B + Ci
May have status outputs carry, zero, etc.
O =I0 if S=0..00I1 if S=0..01…I(m-1) if S=1..11
O0 =1 if I=0..00O1 =1 if I=0..01…O(n-1) =1 if I=1..11
sum = A+B (first n bits)carry = (n+1)’th bit of A+B
less = 1 if A<B equal =1 if A=Bgreater=1 if A>B
O = A op Bop determined by S.
n-bit, m x 1 Multiplexor
O
…S0
S(log m)
n
n
I(m-1) I1 I0
…
log n x n Decoder
…
O1 O0O(n-1)
I0I(log n -1)
…
n-bitAdder
n
A B
n
sumcarry
n-bitComparator
n n
A B
less equal greater
n bit, m function
ALU
n n
A B
…S0
S(log m)
n
O
9Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques
Tradução: Alice M. Tokarnia
Componentes seqüenciais
Q = 0 if clear=1, I if load=1 and clock=1, Q(previous) otherwise.
Q = 0 if clear=1, Q(prev)+1 if count=1 and clock=1.
clear
n-bitRegister
n
n
load
I
Q
shift
I Q
n-bitShift register
n-bitCounter
n
Q
Q = lsb - Content shifted - I stored in msb
count
clear
10Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques
Tradução: Alice M. Tokarnia
Projeto de lógica seqüencial
A) Descrição do problema
Queremos construir um divisor de freqüência. Dividir a freqüência de um sinal de relógio existente por quatro.
0
1 2
3
x=0
x=1x=0
x=0
a=1 a=1
a=1
a=1
a=0
a=0
a=0
a=0
B) Diagrama de estados
C) Modelo de implementação
Combinational logic
State register
a x
I0
I0
I1
I1
Q1 Q0
D) Tabela de estados (Moore)
1 0 1 1 11 1 0 1 11 1 1 0 0
0 0 1 0 10 1 0 0 10 1 1 1 01 0 0 1 0
00 0 0 0
InputsQ1 Q0 a
OutputsI1 I0
1
0
0
0
x
• Dado o modelo de implementação– O projeto de lógica seqüencial rapidamente
reduz-se ao desenvolvimento da lógica combinacional
11Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques
Tradução: Alice M. Tokarnia
Projeto de lógica seqüencial (cont.)
00
1
Q1Q0 I1
I1 = Q1’Q0a + Q1a’ + Q1Q0’
0 1
1
1
010
00 11 10 a 01
0
0
0
1 0 1
1
00 01 11 a
1
10 I0 Q1Q0
I0 = Q0a’ + Q0’a0
1
0 0
0
1
1
0
0
00 01 11 10
x = Q1Q0
x
0
1
0
a
Q1Q0
E) Equações de saída minimizadas F) Lógica combinacional
a
Q1 Q0
I0
I1
x
Q0 Q1
12Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques
Tradução: Alice M. Tokarnia
Modelo básico de um processador dedicado
Controlador e datapath
controller datapath
…
…
externalcontrolinputs
externalcontrol outputs
…
externaldata
inputs
…
externaldata
outputs
datapathcontrolinputs
datapathcontroloutputs
… …
Visão interna do controlador
controller datapath
… …
stateregister
next-stateand
controllogic
registers
functionalunits
13Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques
Tradução: Alice M. Tokarnia
Exemplo: máximo divisor comum
GCD
(a) black-box view
x_i y_i
d_o
go_i
0: int x, y;1: while (1) {2: while (!go_i);3: x = x_i; 4: y = y_i;5: while (x != y) {6: if (x < y) 7: y = y - x; else 8: x = x - y; }9: d_o = x; }
(b) desired functionality
y = y -x7: x = x - y8:
6-J:
x!=y
5: !(x!=y)
x<y !(x<y)
6:
5-J:
1:
1
!1
x = x_i3:
y = y_i4:
2:
2-J:
!go_i
!(!go_i)
d_o = x
1-J:
9:
(c) diagrama de estado• Primeiramente escreve-se
um algoritmo para o cálculo
• Converte o algoritmo para uma máquina de estado– Conhecida como FSMD:
máquina de estado finito com datapath
– Pode-se usar modelos (bibliotecas de projeto) para melhorar tal conversão
14Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques
Tradução: Alice M. Tokarnia
Modelos de diagrama de estado
Assignment statement
a = bnext statement
a = b
next statement
Loop statement
while (cond) { loop-body-
statements}next statement
loop-body-statements
cond
next statement
!cond
J:
C:
Branch statement
if (c1) c1 stmtselse if c2 c2 stmtselse other stmtsnext statement
c1
c2 stmts
!c1*c2 !c1*!c2
next statement
othersc1 stmts
J:
C:
15Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques
Tradução: Alice M. Tokarnia
Construindo o datapath
• Alocação de um registrador para qualquer variável declarada
• Alocação de uma unidade funcional para cada operação aritmética
• Conexão entre as portas, registradores e as unidades funcionais
– Com base em operação de em leitura e escrita
– Uso de multiplexadores para operação com diversas entradas
• Criação de um identificador único
– Variáveis booleanas para identificação de entradas e saídas de controle para os componentes do datapath
y = y -x7: x = x - y8:
6-J:
x!=y
5: !(x!=y)
x<y !(x<y)
6:
5-J:
1:
1
!1
x = x_i3:
y = y_i4:
2:
2-J:
!go_i
!(!go_i)
d_o = x
1-J:
9:
subtractor subtractor
7: y-x8: x-y5: x!=y 6: x<y
x_i y_i
d_o
0: x 0: y
9: d
n-bit 2x1 n-bit 2x1x_sel
y_sel
x_ld
y_ld
x_neq_y
x_lt_y
d_ld
<
5: x!=y
!=
Datapath
16Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques
Tradução: Alice M. Tokarnia
Construindo o controlador FSM
• Mesma estrutura do FSMD• Valores associados às
entradas e às saídas de controle dos componentes do datapath
y = y -x7: x = x - y8:
6-J:
x!=y
5: !(x!=y)
x<y !(x<y)
6:
5-J:
1:
1
!1
x = x_i3:
y = y_i4:
2:
2-J:
!go_i
!(!go_i)
d_o = x
1-J:
9:
y_sel = 1y_ld = 1
7: x_sel = 1x_ld = 1
8:
6-J:
x_neq_y
5:!x_neq_y
x_lt_y !x_lt_y
6:
5-J:
d_ld = 1
1-J:
9:
x_sel = 0x_ld = 13:
y_sel = 0y_ld = 14:
1:1
!1
2:
2-J:
!go_i
!(!go_i)
go_i
0000
0001
0010
0011
0100
0101
0110
0111 1000
1001
1010
1011
1100
Controller
subtractor subtractor
7: y-x8: x-y5: x!=y 6: x<y
x_i y_i
d_o
0: x 0: y
9: d
n-bit 2x1 n-bit 2x1x_sel
y_sel
x_ld
y_ld
x_neq_y
x_lt_y
d_ld
<
5: x!=y
!=
Datapath
17Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques
Tradução: Alice M. Tokarnia
Função completa: controlador e datapath
y_sel = 1y_ld = 1
7: x_sel = 1x_ld = 1
8:
6-J:
x_neq_y=1
5:x_neq_y=0
x_lt_y=1 x_lt_y=0
6:
5-J:
d_ld = 1
1-J:
9:
x_sel = 0x_ld = 13:
y_sel = 0y_ld = 14:
1:1
!1
2:
2-J:
!go_i
!(!go_i)
go_i
0000
0001
0010
0011
0100
0101
0110
0111 1000
1001
1010
1011
1100
ControllerController implementation model
y_sel
x_selCombinational
logic
Q3 Q0
State register
go_i
x_neq_y
x_lt_y
x_ld
y_ld
d_ld
Q2 Q1
I3 I0I2 I1
subtractor subtractor
7: y-x8: x-y5: x!=y 6: x<y
x_i y_i
d_o
0: x 0: y
9: d
n-bit 2x1 n-bit 2x1x_sel
y_sel
x_ld
y_ld
x_neq_y
x_lt_y
d_ld
<
5: x!=y
!=
(b) Datapath
18Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques
Tradução: Alice M. Tokarnia
Exemplo da tabela de estados para o controlador
Inputs Outputs
Q3 Q2 Q1 Q0 x_neq_y
x_lt_y
go_i I3 I2 I1 I0 x_sel y_sel x_ld y_ld d_ld
0 0 0 0 * * * 0 0 0 1 X X 0 0 0
0 0 0 1 * * 0 0 0 1 0 X X 0 0 0
0 0 0 1 * * 1 0 0 1 1 X X 0 0 0
0 0 1 0 * * * 0 0 0 1 X X 0 0 0
0 0 1 1 * * * 0 1 0 0 0 X 1 0 0
0 1 0 0 * * * 0 1 0 1 X 0 0 1 0
0 1 0 1 0 * * 1 0 1 1 X X 0 0 0
0 1 0 1 1 * * 0 1 1 0 X X 0 0 0
0 1 1 0 * 0 * 1 0 0 0 X X 0 0 0
0 1 1 0 * 1 * 0 1 1 1 X X 0 0 0
0 1 1 1 * * * 1 0 0 1 X 1 0 1 0
1 0 0 0 * * * 1 0 0 1 1 X 1 0 0
1 0 0 1 * * * 1 0 1 0 X X 0 0 0
1 0 1 0 * * * 0 1 0 1 X X 0 0 0
1 0 1 1 * * * 1 1 0 0 X X 0 0 1
1 1 0 0 * * * 0 0 0 0 X X 0 0 0
1 1 0 1 * * * 0 0 0 0 X X 0 0 0
1 1 1 0 * * * 0 0 0 0 X X 0 0 0
1 1 1 1 * * * 0 0 0 0 X X 0 0 0
19Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques
Tradução: Alice M. Tokarnia
Completando o desenvolvimento do processador dedicado
• Finalizamos o datapath• Determinamos a tabela de
estados para o próximo estado e controle lógico– Tudo que resta é o
desenvolvimento da lógica combinacional
• O desenvolvimento apresentado não está otimizado, porém pudemos analisar os procedimentos básicos envolvidos no projeto
… …
a view inside the controller and datapath
controller datapath
… …
stateregister
next-stateand
controllogic
registers
functionalunits
20Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques
Tradução: Alice M. Tokarnia
• Freqüentemente, inicia-se o projeto com uma FSMD – ... no lugar de um algoritmo– O ciclo de relógio é uma informação crítica
• Exemplo– Ponte entre um barramento de 4-bit e um barramento de 8-bit – Começa com FSMD– Conhecido como register-transfer (RT) level (descrição do nível de transferência
entre registradores)– Exercício: complete o desenvolvimento
Desenvolvimento do processador dedicado customizado – Nível de Registradores
Prob
lem
Spe
cifi
cati
o n
BridgeA single-purpose processor that
converts two 4-bit inputs, arriving one at a time over data_in along with a
rdy_in pulse, into one 8-bit output on data_out along with a rdy_out pulse.
Sender
data_in(4)
rdy_in rdy_out
data_out(8)
Receiver
clock
21Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques
Tradução: Alice M. Tokarnia
Iniciando o projeto pelo FSMD
FSM
D
WaitFirst4 RecFirst4Startdata_lo=data_in
WaitSecond4
rdy_in=1
rdy_in=0
RecFirst4End
rdy_in=1
RecSecond4Startdata_hi=data_in
RecSecond4End
rdy_in=1rdy_in=0rdy_in=1
rdy_in=0
Send8Startdata_out=data_hi
& data_lordy_out=1
Send8Endrdy_out=0
Bridge
rdy_in=0
Inputs rdy_in: bit; data_in: bit[4];Outputs rdy_out: bit; data_out:bit[8]Variables data_lo, data_hi: bit[4];
22Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques
Tradução: Alice M. Tokarnia
Desenvolvimento do processador dedicado customizado – Nível de Registradores (cont.)
WaitFirst4 RecFirst4Startdata_lo_ld=1
WaitSecond4
rdy_in=1rdy_in=0
RecFirst4End
rdy_in=1
RecSecond4Startdata_hi_ld=1
RecSecond4End
rdy_in=1rdy_in=0rdy_in=1
rdy_in=0
Send8Startdata_out_ld=1
rdy_out=1
Send8Endrdy_out=0
(a) Controller
rdy_in rdy_out
data_lodata_hi
data_in(4)
(b) Datapathdata_out
data_lo_ld
clk
data_out
Bridge
to all registers
data
_hi_
ld
data
_out
_ld
data
_lo_
ld
23Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques
Tradução: Alice M. Tokarnia
Otimizando processadores dedicados
• Otimização: alcançando os melhores valores possíveis para as métricas de projeto
• Pontos do projeto onde pode ser realizada a otimização– Programa – FSMD– datapath– FSM
24Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques
Tradução: Alice M. Tokarnia
Otimização do programa
• Analisar os atributos do programa e procurar por áreas passíveis de melhoramento– Número de computações– Tamanho das variáveis
– Tempo e complexidade do espaço– Operações utilizadas
• Multiplicação e divisão podem ser mais demoradas e/ou envolver circuitos maiores e mais caros.
25Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques
Tradução: Alice M. Tokarnia
Otimização do programa original (cont.)
0: int x, y;1: while (1) {2: while (!go_i);3: x = x_i; 4: y = y_i;5: while (x != y) {6: if (x < y) 7: y = y - x; else 8: x = x - y; }9: d_o = x; }
0: int x, y, r; 1: while (1) { 2: while (!go_i); // x must be the larger number 3: if (x_i >= y_i) { 4: x=x_i; 5: y=y_i; } 6: else { 7: x=y_i; 8: y=x_i; } 9: while (y != 0) {10: r = x % y;11: x = y; 12: y = r; }13: d_o = x; }
Programa original Programa otimizado
Substituição das operações de subtração por operação de
módulo com o intuito de aumentar a velocidade do
programa
GCD(42, 8) - 9 iterações para completar o loop
Os valores de x e y calculados são dados por: (42, 8), (43, 8), (26,8), (18,8), (10, 8), (2,8), (2,6), (2,4), (2,2).
GCD(42,8) - 3 iterações para completar o loop
Os valores de x e de y calculados são dados por: (42, 8), (8,2), (2,0)
26Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques
Tradução: Alice M. Tokarnia
Otimização da FSMD
• Alguns pontos para otimização:– Fusão de estados
• Estados com constantes especificando as transições condicionais podem ser eliminados pois a transição destes estados é sempre a mesma;
• Estados com operações independentes podem ser reunidos em um único estado.
– Separação de estados• Estados que correspondem a operações complexas (a*b*c*d) podem
ser quebrados em estados menores para reduzir o tamanho do hardware
– Escalonamento
27Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques
Tradução: Alice M. Tokarnia
Otimização da FSMD (cont.)
int x, y;
2:
go_i !go_i
x = x_iy = y_i
x<y x>y
y = y -x x = x - y
3:
5:
7: 8:
d_o = x9:
y = y -x7: x = x - y8:
6-J:
x!=y
5: !(x!=y)
x<y !(x<y)
6:
5-J:
1:
1
!1
x = x_i
y = y_i4:
2:
2-J:
!go_i
!(!go_i)
d_o = x
1-J:
9:
int x, y;
3:
FSMD original FSMD otimizado
Eliminação do estado 1 – transições possuem valores constantes
Fusão do estado 2 com o estado 2J – eliminação do loop entre eles
Fusão dos estados 3 e 4 – as operações são independentes entre si
Fusão dos estados 5 e 6 – transições a partir do estado 6 podem ser realizadas no estado 5
Eliminação dos estados 5J e 6J – as transições de cada estado podem ser realizadas a partir do estado 7 e 8, respectivamente
Eliminação do estado 1-J – transições a partir do estado 1-J podem ser feitas diretamente a partir do estado 9
28Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques
Tradução: Alice M. Tokarnia
Otimização do datapath
• Compartilhamento das unidades funcionais– Mapeamento um-a-um entre operações e unidades
funcionais, como feito anteriormente, não é necessário– Se operações idênticas ocorrem em estados distintos, elas
podem ser executadas em uma única unidade funcional
• Unidades Multi-functionais– ULAs executam uma variedade de operações e podem ser
compartilhadas entre operações realizadas em diferentes estados
29Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques
Tradução: Alice M. Tokarnia
Otimização da FSM
• Codificação dos estados– Determinação de um código binário único para cada estado
da FSM– Tamanho do registrador de estados e da lógica
combinacional variam– Podem ser tratados como um problema de ordenação
• Minimização do número de estados– Fusão de estados equivalentes em um único estado
• Dois estados são equivalentes quando qualquer entrada para estes estados produzem as mesmas saídas e transições para os mesmos estados
30Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis Edição: Filipe I. Fazanaro Marco A. A. Henriques
Tradução: Alice M. Tokarnia
Resumo
• Processadores dedicados– Técnicas simples de desenvolvimento– Podem ser projetados para executar algoritmos– Tipicamente o projeto começa com uma FSMD
– Ferramentas CAD podem (devem) ser utilizadas no projeto