A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Engenharia de Software para Computação Embarcada

Apresentações semelhantes


Apresentação em tema: "Engenharia de Software para Computação Embarcada"— Transcrição da apresentação:

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”;


Carregar ppt "Engenharia de Software para Computação Embarcada"

Apresentações semelhantes


Anúncios Google