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

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

Universidade do Sul de Santa Catarina Engenharia Elétrica - Telemática UNISUL – 2012 / 2 Engenharia de Software para Computação Embarcada Prof. Frederico.

Apresentações semelhantes


Apresentação em tema: "Universidade do Sul de Santa Catarina Engenharia Elétrica - Telemática UNISUL – 2012 / 2 Engenharia de Software para Computação Embarcada Prof. Frederico."— Transcrição da apresentação:

1 Universidade do Sul de Santa Catarina Engenharia Elétrica - Telemática UNISUL – 2012 / 2 Engenharia de Software para Computação Embarcada Prof. Frederico Ferlini Aula 11

2 Prof. Frederico Ferlini 1.C IRCUITOS S EQUENCIAIS D EFINIÇÃO R EPRESENTAÇÃO M ÁQUINA DE E STADOS (FSM) C ONSTRUÇÃO DE FSM S P ASSO A P ASSO E XEMPLOS VHDL CONTEÚDO 2

3 Prof. Frederico Ferlini 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 Circuito Sequencial 3 COMBINACIONALSEQUENCIAL

4 Prof. Frederico Ferlini Circuito Sequencial = Combinacional + Memória Combinacional: 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 Circuito Sequencial 4

5 Prof. Frederico Ferlini 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 Circuito Sequencial (Representação) 5 OnOff x=0x=1 clk ^ ^ DIAGRAMA DE ESTADOS

6 Prof. Frederico Ferlini Tipos de FSM Circuito Sequencial 6 Moore: saídas dependem somente do estado atual Mealy: saídas dependem do estado atual e do valor presente das entradas Outputs: x OnOff x=0x=1 clk ^ ^

7 Prof. Frederico Ferlini 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) Circuito Sequencial 7

8 Prof. Frederico Ferlini 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) Circuito Sequencial 8 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 Prof. Frederico Ferlini Exemplo da chamada de avião 1.Definição da FSM Nome dos estados Numeração (0 = Off / 1 = On) 2.Esboço da Arquitetura Sinais de I/O da FSM Tamanho do registrador Sinais de controle FSM (Passo a Passo) 9 simplificação

10 Prof. Frederico Ferlini Exemplo da chamada de avião 3.Criação da Tabela de Estados Circuito Sequencial 10 ENTRADASSAÍDAS s0pbledn0 OFF ON

11 Prof. Frederico Ferlini Exemplo da chamada de avião 3.Criação da Tabela de Estados Circuito Sequencial 11 ENTRADASSAÍDAS s0pbledn0 OFF ON

12 Prof. Frederico Ferlini Exemplo da chamada de avião 3.Criação da Tabela de Estados 4.Implementação Lógica Combinacional: n0 = s0 xor pb led = s0 Circuito Sequencial 12 ENTRADASSAÍDAS s0pbledn0 OFF ON

13 Prof. Frederico Ferlini Exemplo da chamada de avião 4.Implementação Lógica Combinacional: n0 = s0 xor pb led = s0 Circuito Sequencial 13

14 Prof. Frederico Ferlini Comparação Flip-Flop D Sensível a BORDA do sinal de controle (clock) Latch D Sensível a NÍVEL do sinal de controle (lógica) Armazenamento do estado 14 clkDQ (t+1) XQtQt CDQ (t+1) 0XQtQt

15 Prof. Frederico Ferlini Comparação Flip-Flop D Sensível a BORDA do sinal de controle (clock) Latch D Sensível a NÍVEL do sinal de controle (lógica) timing Armazenamento do estado 15 clkDQ (t+1) XQtQt CDQ (t+1) 0XQtQt

16 Prof. Frederico Ferlini 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 Flip-Flop Xilinx (Spartan 3) 16

17 Prof. Frederico Ferlini SPARTAN-3 Sinal de Relógio (Clock): Frequência: 50 Mhz Período : 20 ns Mudar o testbench! (Padrão: 10ns = 100Mhz) Sinal de Relógio (clock) 17 Período (T) BORDA de Subida BORDA de Descida NÍVEL Alto NÍVEL Baixo 50% Duty Cycle Freq. 1 / T

18 Prof. Frederico Ferlini 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... PROCESS em VHDL 18

19 Prof. Frederico Ferlini Sinal Controle Registrando 1 bit (VHDL) 19 NÍVEL Alto C

20 Prof. Frederico Ferlini Comparação Flip-Flop X Latch (VHDL) 20 BORDA de Subida CLK síncrono D?

21 Prof. Frederico Ferlini 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 Flip-Flop Xilinx (Spartan 3) 21

22 Prof. Frederico Ferlini ASSÍNCRONO Q <= 0 imediatamente SÍNCRONO Q <= 0 após Reset (VHDL) ASSÍNCRONO x SÍNCRONO 22 assíncrono síncrono RST ?

23 Prof. Frederico Ferlini ASSÍNCRONO Q <= 0 imediatamente SÍNCRONO Q <= 0 após Clock Enable (CE) 23

24 Prof. Frederico Ferlini RESET Definição de um estado inicial da FSM Clock Enable Simplificação do Circuito Sinais de Controle (RST e CE) 24

25 Prof. Frederico Ferlini 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 Exemplo: 3-Cycles High Laser Timer 25 Inputs: b; Outputs: x On2On1On3 Off x=1 x=0 b b

26 Prof. Frederico Ferlini Exemplo: 3-Cycles High Laser Timer 26 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=1 x=0 b b On2On1 Off On3 a a Inputs: b; Outputs: x Combinational logic State register s1s0 n1 n0 x b clk FSM inputs FSM outputs

27 Prof. Frederico Ferlini Exemplo: 3-Cycles High Laser Timer 27 Step 3: Create state table x=1 x=0 b b On2On1 Off On3 Inputs: b; Outputs: x a

28 Prof. Frederico Ferlini Exemplo: 3-Cycles High Laser Timer 28 Step 4: Implement combinational logic a x = s1 + s0 (note from the table that x=1 if s1 = 1 or s0 = 1) n1 = s1s0b + s1s0b + s1s0b + s1s0b n1 = s1s0 + s1s0 n0 = s1s0b + s1s0b + s1s0b n0 = s1s0b + s1s0

29 Prof. Frederico Ferlini Exemplo: 3-Cycles High Laser Timer 29 Step 4: Implement combinational logic (cont) a x = s1 + s0 n1 = s1s0 + s1s0 n0 = s1s0b + s1s0 n1 n0 s0 s1 clk Combinational Logic State register b x FSM inputs

30 Prof. Frederico Ferlini 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 Prototipação (Problema) 30

31 Prof. Frederico Ferlini 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 Prototipação (Problema) 31 en

32 Prof. Frederico Ferlini ISE Edit Lenguage Templates... VHDL Synthesis Constructs Coding Examples Misc Debounce Circuit VHDL: Debouncer VHDL 32

33 Prof. Frederico Ferlini Ex.: Chamada de Avião FSM: 3 processos: Registrador de estado Lógica próximo estado Lógica saída Sempre utilizar: when others =>; FSM (VHDL) 33

34 Prof. Frederico Ferlini 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; Atividade 34


Carregar ppt "Universidade do Sul de Santa Catarina Engenharia Elétrica - Telemática UNISUL – 2012 / 2 Engenharia de Software para Computação Embarcada Prof. Frederico."

Apresentações semelhantes


Anúncios Google