Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouEloá De Julio Alterado mais de 9 anos atrás
1
Engenharia de Software para Computação Embarcada
Prof. Frederico Ferlini Aula 11
2
CONTEÚDO Circuitos Sequenciais Construção de FSMs Definição
Representação Máquina de Estados (FSM) Construção de FSMs Passo a Passo Exemplos VHDL
3
Circuito Sequencial Definição:
Circuito, cujo comportamento das saídas não dependem somente do valor atual das entradas, mas também do histórico anterior das entradas COMBINACIONAL SEQUENCIAL
4
Circuito Sequencial Circuito Sequencial = Combinacional + Memória
Recebe as entradas do circuito e a saída da memória (estado atual) e gera as saídas e calcula o próximo estado do circuito Memória: Armazena o próximo estado Sinais de controle: Sinal de sincronismo: clock Inicialização: set, reset, clear Habilitador: enable
5
Circuito Sequencial (Representação)
Máquina de Estados Finita(FSM) Estado é toda informação armazenada pelo circuito em um determinado momento, e muda dado certa condição ou evento Exemplo “Pisca LED” Inverte o estado a todo pulso de clk DIAGRAMA DE ESTADOS On O ff x=0 x=1 clk ^
6
Circuito Sequencial Tipos de FSM Moore: saídas dependem
Outputs: x On O ff x=0 x=1 clk ^ Moore: saídas dependem somente do estado atual Mealy: saídas dependem do estado atual e do valor presente das entradas
7
Circuito Sequencial Máquina de Estados Finita(FSM) Arquitetura Geral
I – Entradas da FSM O – Saídas da FSM S – Estado Atual da FSM (state) N – Próximo Estado da FSM (next-state) m – tamanho do registrados (bits)
8
Circuito Sequencial Exemplo da chamada de avião Especificação da FSM
Estados: On/Off 2 estados Registrador de 1bit Entrada: botão (pb) Saída: luz (led) Controle: Sinal de sincronismo: (clk) Sinal de inicialização: (rst) Bit Storage Blue light Call button 1. Call button pressed – light turns on Bit Storage Blue light Call button 2. Call button released – light stays on Bit Storage Blue light Call button 3. Call button pressed – light turns off
9
FSM (Passo a Passo) Exemplo da chamada de avião Definição da FSM
Nome dos estados Numeração (‘0’ = Off / ‘1’ = On) Esboço da Arquitetura Sinais de I/O da FSM Tamanho do registrador Sinais de controle simplificação
10
Circuito Sequencial Exemplo da chamada de avião
Criação da Tabela de Estados ENTRADAS SAÍDAS s0 pb led n0 OFF ‘0’ 1 ON ‘1’
11
Circuito Sequencial Exemplo da chamada de avião
Criação da Tabela de Estados ENTRADAS SAÍDAS s0 pb led n0 OFF ‘0’ 1 ON ‘1’
12
Circuito Sequencial Exemplo da chamada de avião
Criação da Tabela de Estados Implementação Lógica Combinacional: n0 = s0 xor pb led = s0 ENTRADAS SAÍDAS s0 pb led n0 OFF ‘0’ 1 ON ‘1’
13
Circuito Sequencial Exemplo da chamada de avião Implementação
Lógica Combinacional: n0 = s0 xor pb led = s0
14
Armazenamento do estado
Comparação Latch D Flip-Flop D Sensível a NÍVEL do sinal de controle Sensível a BORDA do sinal de controle (clock) (lógica) C D Q(t+1) X Qt 1 clk D Q(t+1) ≠ X Qt 1
15
Armazenamento do estado
Comparação Latch D Flip-Flop D Sensível a NÍVEL do sinal de controle Sensível a BORDA do sinal de controle (clock) (lógica) timing C D Q(t+1) X Qt 1 clk D Q(t+1) ≠ X Qt 1
16
Flip-Flop Xilinx (Spartan 3)
Os Flip-Flops encontrados nos FPGAs da Xilinx são do tipo D (FF_D) Sinais de Controle: CLOCK (CLK) Sensível a BORDA de ou CLOCK ENABLE (CE) Impede que Q altere mesmo na ocorrência de BORDA do clock SET Assíncrono: Q recebe 1 instantaneamente Síncrono: Q recebe 1 na próxima BORDA do clock RESET (RST) Assíncrono: Q recebe 0 instantaneamente Síncrono: Q recebe 0 na próxima BORDA do clock
17
Sinal de Relógio (clock)
SPARTAN-3 Sinal de Relógio (Clock): Frequência: 50 Mhz Período : 20 ns Mudar o testbench! (Padrão: 10ns = 100Mhz) Período (T) BORDA de Subida de Descida NÍVEL Alto Baixo 50% Duty Cycle Freq. 1/T
18
PROCESS em VHDL Como dizer para ferramenta de síntese implementar um FF? R: PROCESS Ex.: Full Adder (Combinacional) Sintaxe VHDL Lista de Sensitividade Entradas do circuito Condicional: if/else , case ...
19
Registrando 1 bit (VHDL)
Sinal Controle NÍVEL Alto C
20
Flip-Flop X Latch (VHDL)
Comparação BORDA de Subida CLK síncrono D?
21
Flip-Flop Xilinx (Spartan 3)
Os Flip-Flops encontrados nos FPGAs da Xilinx são do tipo D (FF_D) Sinais de Controle: CLOCK (CLK) Sensível a BORDA de ou CLOCK ENABLE (CE) Impede que Q altere mesmo na ocorrência de BORDA do clock SET Assíncrono: Q recebe 1 instantaneamente Síncrono: Q recebe 1 na próxima BORDA do clock RESET (RST) Assíncrono: Q recebe 0 instantaneamente Síncrono: Q recebe 0 na próxima BORDA do clock
22
Reset (VHDL) ASSÍNCRONO x SÍNCRONO
Q <= ‘0’ imediatamente Q <= ‘0’ após síncrono assíncrono RST?
23
Clock Enable (CE) ASSÍNCRONO SÍNCRONO Q <= ‘0’ imediatamente
Q <= ‘0’ após
24
Sinais de Controle (RST e CE)
RESET Definição de um estado inicial da FSM Clock Enable Simplificação do Circuito
25
Exemplo: 3-Cycles High Laser Timer
Quando b apertado, o laser (x) fica ligado por 3 ciclos Quatro estados Sinal de entrada: b Quando b = 1 e ocorre uma borda de subida do clock então o estado sai de OFF para ON1 Quando nos estados ON1, ON2 e ON3 a saída (x) é colocada em nível alto Logo, a saída (x) fica em ‘1’ durante 3 ciclos Inputs: b; Outputs: x On2 On1 On3 Off x=1 x=0 b ’
26
Exemplo: 3-Cycles High Laser Timer
Inputs: b; Outputs: x Step 1: Capture the FSM Already done Encode the States Step 2: Create architecture 2-bit state register (for 4 states) Input b, output x Next state signals n1, n0 x=0 00 b ’ O ff a b x=1 x=1 x=1 01 On1 10 On2 11 On3 Combinational logic State register s1 s0 n1 n0 x b clk FSM inputs outputs a
27
Exemplo: 3-Cycles High Laser Timer
Step 3: Create state table Inputs: b; Outputs: x x=0 00 b ’ O ff a b x=1 x=1 x=1 01 On1 10 On2 11 On3
28
Exemplo: 3-Cycles High Laser Timer
Step 4: Implement combinational logic a x = s1 + s0 (note from the table that x=1 if s1 = 1 or s0 = 1) n1 = s1’s0b’ + s1’s0b + s1s0’b’ + s1s0’b n1 = s1’s0 + s1s0’ n0 = s1’s0’b + s1s0’b’ + s1s0’b n0 = s1’s0’b + s1s0’
29
Exemplo: 3-Cycles High Laser Timer
Step 4: Implement combinational logic (cont) s0 s1 clk Combinational Logic State register b x n0 n1 a FSM inputs x = s1 + s0 n1 = s1’s0 + s1s0’ n0 = s1’s0’b + s1s0’
30
Prototipação (Problema)
Frequência do clock muito alta (50Mhz) Uso de um pb ao invés do sinal de clock? Problema: Uso de um sinal indevido aonde deveria ter um clk
31
Prototipação (Problema)
Frequência do clock muito alta (50Mhz) Uso de um pb ao invés do sinal de clock? Problema: Uso de um sinal indevido na DEBOUNCE! OK! Gera um pulso com tamanho de um ciclo de relógio en
32
Debouncer VHDL ISE Edit Lenguage Templates... VHDL Synthesis Constructs Coding Examples Misc Debounce Circuit VHDL:
33
FSM (VHDL) Ex.: Chamada de Avião FSM: 3 processos: Sempre utilizar:
Registrador de estado Lógica próximo estado Lógica saída Sempre utilizar: when others =>;
34
Atividade Implementem: 4-Cycles High Laser Timer Entrada:
clk = clk50_i rst = pb_i(0) en = pb_i(3) [debounced] b = sw_i(0) Saídas: led_o(2 downto 0) Os leds ascendem de acordo com o número do ciclo de laser_on Quando b é acionados o laser deve ficar aceso por 4 ciclos e os leds devem acender de acordo com o número do ciclo: Ex.: no segundo terceiro ciclo em laser estiver ligado: led_o(2 downto 0) <= “011”;
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.