Dispositivos lógicos programáveis (DLP) • Organização: – – – – – Princípio de funcionamento dos DLP Arquitectura de um componente típico: A 22V10 Metodologia de projecto com o PALASM A aplicação PALASM Um dado electrónico Introdução ao Projecto com Sistemas Digitais e Microcontroladores Dispositivos lógicos programáveis - 1 Princípio de funcionamento dos DLP • O princípio de funcionamento dos DLP baseia-se numa matriz programável de termos de produto A B C D é uma representação simplificada de: F Introdução ao Projecto com Sistemas Digitais e Microcontroladores Dispositivos lógicos programáveis - 2 (que valor apresenta a saída F, para o caso apresentado?) Arquitectura de um DLP simples: Exemplo • A título de exemplo, quantas ligações seria necessário interromper para criar um mux de 2:1? (entradas de dados A e B, entrada de controlo C) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Dispositivos lógicos programáveis - 3 A B C D F DLPs: Extensão para circuitos sequenciais • A presença de um FF D a jusante do termo de soma permite a implementação de circuitos sequenciais (o plano AND / OR realiza a geração do estado seguinte) A B C D D 3 Q CLK Q Introdução ao Projecto com Sistemas Digitais e Microcontroladores Dispositivos lógicos programáveis - 4 5 6 F Arquitectura de um exemplo típico: A 22V10 CLK / I0 1 • A flexibilidade da 22V10 destaca-a entre os DLP de uso comum CLK / I0 I1 a I11 11 1 8 10 Fila de E programáveis Programmable AND array (44 x 132) 8 10 12 14 16 16 14 12 10 8 Reset Reset MacroCélula Lógica de Saída MacroCélula Lógica de Saída MacroCélula Lógica de Saída MacroCélula Lógica de Saída MacroCélula Lógica de Saída MacroCélula Lógica de Saída MacroCélula Lógica de Saída MacroCélula Lógica de Saída MacroCélula Lógica de Saída MacroCélula Lógica de Saída MacroCélula Lógica de Saída MacroCélula Lógica de Saída Preset Introdução ao Projecto com Sistemas Digitais e Microcontroladores Dispositivos lógicos programáveis - 5 I/O 0 I/O 1 I/O 2 I/O 3 I/O 4 I/O 5 I/O 6 I/O 7 I/O 8 I/O 9 I/O 0 I/O 1 A arquitectura da 22V10 • A propósito da arquitectura da 22V10, repare-se que: – Pode dispor de até 10 saídas, em simultâneo com as 12 entradas, podendo no limite suportar até 22 (21) entradas – O controlo de estado dos buffers de saída é feito através de um termo de produto (permitindo pinos bidireccionais) CLK / I0 I1 a I11 11 1 Fila de E programáveis Programmable AND array (44 x 132) 8 Reset Introdução ao Projecto com Sistemas Digitais e Microcontroladores Dispositivos lógicos programáveis - 6 MacroCélula Lógica de Saída I/O 0 10 MacroCélula Lógica de Saída I/O 1 12 MacroCélula Lógica de Saída I/O 2 14 MacroCélula Lógica de Saída I/O 3 16 MacroCélula Lógica de Saída I/O 4 16 MacroCélula Lógica de Saída I/O 5 14 MacroCélula Lógica de Saída I/O 6 12 MacroCélula Lógica de Saída I/O 7 10 MacroCélula Lógica de Saída I/O 8 8 MacroCélula Lógica de Saída I/O 9 Preset A arquitectura da 22V10 (cont.) • Ainda a propósito da arquitectura da 22V10: – Todas as saídas são realimentadas para o plano de AND – Existe um limite máximo de entre 8 e 16 termos de produto, por saída – Cada saída é precedida por uma macro-célula CLK / I0 I1 a I11 11 1 Fila de E programáveis Programmable AND array (44 x 132) 8 Reset MacroCélula Lógica de Saída I/O 0 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Dispositivos lógicos programáveis - 7 10 MacroCélula Lógica de Saída I/O 1 12 MacroCélula Lógica de Saída I/O 2 14 MacroCélula Lógica de Saída I/O 3 16 MacroCélula Lógica de Saída I/O 4 16 MacroCélula Lógica de Saída I/O 5 14 MacroCélula Lógica de Saída I/O 6 12 MacroCélula Lógica de Saída I/O 7 10 MacroCélula Lógica de Saída I/O 8 8 MacroCélula Lógica de Saída Preset I/O 9 A arquitectura da 22V10 (cont.) • A estrutura da macro-célula lógica de saída, disponível em cada pino, permite diversas configurações de funcionamento: 10 AR Reset assíncrono D CLK CLK 11 Q 00 /Q 01 SP Preset síncrono S1 S0 I/O n S1 S0 Configuração de saída 0 0 Registada / Activa a 0 0 1 Registada / Activa a 1 1 0 Combinatória / Activa a 0 1 1 Combinatória / Activa a 1 0 1 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Dispositivos lógicos programáveis - 8 A arquitectura da 22V10 (cont.) • As quatro configurações possíveis para a macrocélula lógica de saída são as seguintes: AR D Q CLK /Q CLK SP S0=0 S1=0 S0=0 S1=1 AR D CLK Q /Q CLK SP S0=1 S1=0 Introdução ao Projecto com Sistemas Digitais e Microcontroladores Dispositivos lógicos programáveis - 9 S0=1 S1=1 Metodologia de projecto (com o PALASM) • A metodologia de projecto segue as mesmas etapas já nossas conhecidas (especificação, síntese, verificação de projecto, implementação e validação), mas com existem aspectos específicos do PALASM • Esta aplicação recebe como entrada uma descrição funcional do circuito pretendido, com os respectivos vectores para a simulação lógica, e realiza (quase-) automaticamente as etapas pós-especificação Introdução ao Projecto com Sistemas Digitais e Microcontroladores Dispositivos lógicos programáveis - 10 Fluxo de dados no PALASM • O fluxo de dados associado a esta aplicação de apoio ao projecto é o seguinte: Nome.pds PDS (especificação de entrada) PALASM XPT Nome.xpt JED RPT HST TRF Nome.jed Nome.rpt Nome.hst Nome.trf Palasm.log (ficheiro com o relatório da utilização de recursos internos) (todos os resultados de simulação) (resultados da simulação nos sinais a visualizar) (relatório produzido pelo PALASM) (mapa dos (ficheiro fusíveis a JEDEC para interromper) programação) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Dispositivos lógicos programáveis - 11 LOG PALASM: Especificação do ficheiro de entrada • Secção declarativa: ;---------------------------------- Declaration Segment -----------TITLE exemplo.pds PATTERN A REVISION 1.0 AUTHOR JM Martins Ferreira / SD da LEIC COMPANY FEUP/DEEC DATE Junho 1998 CHIP exemplo PAL22V10 PIN PIN PIN PIN PIN PIN PIN PIN PIN PIN 1 2 3 4 5 6 12 14 15 24 CLOCK A B C D E GND F1 F2 VCC COMBINATORIAL COMBINATORIAL COMBINATORIAL COMBINATORIAL COMBINATORIAL COMBINATORIAL ; ; ; ; ; ; COMBINATORIAL REGISTERED ; OUTPUT ; OUTPUT Introdução ao Projecto com Sistemas Digitais e Microcontroladores Dispositivos lógicos programáveis - 12 INPUT INPUT INPUT INPUT INPUT INPUT PALASM: Especificação do ficheiro de entrada (cont.) • Secção funcional: ;---------------------------------- Equations Segment -----------EQUATIONS F1 = /A + B + C + D*E F2:= /A + B + C + D*E (esta secção recorre a comandos com baixo nível de abstracção para efectuar a descrição funcional do circuito pretendido) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Dispositivos lógicos programáveis - 13 PALASM: Especificação do ficheiro de entrada (cont.) • Secção de simulação (para a verificação de projecto): ;---------------------------------- Simulation Segment -----------SIMULATION TRACE_ON SETF SETF CLOCKF SETF CLOCKF SETF CLOCKF SETF CLOCKF SETF CLOCKF SETF CLOCKF CLOCK A B C D E F1 F2 /A /B /C /D /E A CLOCK /A B CLOCK /B C CLOCK /C D CLOCK /D E CLOCK /E CLOCK TRACE_OFF Introdução ao Projecto com Sistemas Digitais e Microcontroladores Dispositivos lógicos programáveis - 14 PALASM: Menus principais • Menu File: Introdução ao Projecto com Sistemas Digitais e Microcontroladores Dispositivos lógicos programáveis - 15 PALASM: Menus principais (cont.) • Menu Edit: Introdução ao Projecto com Sistemas Digitais e Microcontroladores Dispositivos lógicos programáveis - 16 PALASM: Menus principais (cont.) • Menu Run: Introdução ao Projecto com Sistemas Digitais e Microcontroladores Dispositivos lógicos programáveis - 17 PALASM: Menus principais (cont.) • Menu View: Introdução ao Projecto com Sistemas Digitais e Microcontroladores Dispositivos lógicos programáveis - 18 PALASM: Menus principais (cont.) • Simulação (View / Waveforms): Introdução ao Projecto com Sistemas Digitais e Microcontroladores Dispositivos lógicos programáveis - 19 PALASM: Menus principais (cont.) • Menu Help: Introdução ao Projecto com Sistemas Digitais e Microcontroladores Dispositivos lógicos programáveis - 20 PALASM: Menus principais (cont.) • Help: Exemplo para o caso do comando FOR Introdução ao Projecto com Sistemas Digitais e Microcontroladores Dispositivos lógicos programáveis - 21 Exemplo de projecto: Um dado electrónico LED 1 LED 5 LED 2 LED 6 LED 3 LED 7 LED 4 • Pretende-se simular o funcionamento de um dado electrónico com as seguintes características: OUT[x] – Visualização por 7 LEDs (quantas saídas são precisas?) – Funcionamento em ciclo permanente a centenas de Hz – Deve existir um botão de paragem para fixar o resultado do “lançamento” – Deve existir um botão de batota para aumentar a probabilidade associada a resultados pré-especificados Introdução ao Projecto com Sistemas Digitais e Microcontroladores Dispositivos lógicos programáveis - 22 VCC O dado electrónico (cont.) STOP EST1 • Diagrama de transição de estados: /STOP STOP EST2 /STOP STOP EST3 /STOP STOP EST4 /STOP STOP EST5 /STOP /STOP EST4B Introdução ao Projecto com Sistemas Digitais e Microcontroladores Dispositivos lógicos programáveis - 23 STOP /STOP EST4A STOP /STOP*BAT EST6 STOP /STOP*/BAT O dado electrónico (cont.) • Organização das saídas: OUT[0] OUT[x] OUT[1] OUT[2] OUT[3] VCC (= 0) Introdução ao Projecto com Sistemas Digitais e Microcontroladores Dispositivos lógicos programáveis - 24 O dado electrónico (cont.) • Ficheiro dado.pds: Secção declarativa ; circuito que simula o funcionamento de um dado com e sem batota ;-------------------------------------------------------------------; ;---------------------------------- Declaration Segment -----------TITLE dado.pds PATTERN A REVISION 1.0 AUTHOR JM Martins Ferreira COMPANY FEUP/DEEC DATE Maio 1998 CHIP dado PAL22V10 PIN 1 CLK PIN 2 STOP PIN 3 BAT PIN 12 GND PIN 14 OUT[0] PIN 15 OUT[1] PIN 16 OUT[2] PINao Projecto 17 com SistemasOUT[3] Introdução Digitais e Microcontroladores PIN 24 VCC Dispositivos lógicos programáveis - 25 COMBINATORIAL COMBINATORIAL COMBINATORIAL ; INPUT ; INPUT ; INPUT COMBINATORIAL COMBINATORIAL COMBINATORIAL COMBINATORIAL ; ; ; ; OUTPUT OUTPUT OUTPUT OUTPUT O dado electrónico (cont.) • Secção funcional: STATE MOORE_MACHINE START_UP := POWER_UP -> EST1 ; TRANSITION EQUATIONS EST1 ;OUTPUT EQUATIONS EST1.OUTF EST2.OUTF EST3.OUTF EST4.OUTF EST5.OUTF EST6.OUTF EST4A.OUTF EST4B.OUTF = = = = = = = = OUT[0]* OUT[1]* OUT[2]*/OUT[3] /OUT[0]* OUT[1]* OUT[2]* OUT[3] /OUT[0]* OUT[1]* OUT[2]*/OUT[3] /OUT[0]* OUT[1]*/OUT[2]* OUT[3] /OUT[0]* OUT[1]*/OUT[2]*/OUT[3] /OUT[0]*/OUT[1]*/OUT[2]* OUT[3] /OUT[0]* OUT[1]*/OUT[2]* OUT[3] /OUT[0]* OUT[1]*/OUT[2]* OUT[3] := SIGA -> EST2 +-> EST1 EST2 := SIGA -> EST3 +-> EST2 EST3 := SIGA -> EST4 +-> EST3 EST4 := SIGA -> EST5 CONDITIONS +-> EST4 EST5 := SIGA -> EST6 +-> EST5 SIGA = /STOP EST6 := SIGASBAT -> EST1 SIGASBAT= /STOP*/BAT + SIGACBAT -> EST4A SIGACBAT= /STOP* BAT +-> EST6 EST4A := SIGA -> EST4B +-> EST4A Introdução ao Projecto com Sistemas Digitais e Microcontroladores EST4B := SIGA -> EST1 Dispositivos lógicos programáveis - 26 +-> EST4B O dado electrónico (cont.) • Secção de simulação: ;---------------------------------- Simulation Segment -----------SIMULATION TRACE_ON CLK STOP BAT OUT[0..3] SETF /STOP FOR I:=1 TO 8 DO BEGIN CLOCKF END SETF BAT FOR I:=1 TO 8 DO BEGIN CLOCKF END SETF STOP FOR I:=1 TO 4 DO BEGIN CLOCKF END Introdução ao Projecto com Sistemas Digitais e Microcontroladores Dispositivos lógicos programáveis - 27 TRACE_OFF O dado electrónico (cont.) • Resultados da simulação: Introdução ao Projecto com Sistemas Digitais e Microcontroladores Dispositivos lógicos programáveis - 28 Conclusão • Objectivo principal do capítulo: Introduzir os princípios do projecto de sistemas digitais com base em dispositivos lógicos programáveis • Pistas para a continuação do estudo: – Sistemas de apoio ao projecto (e.g. Altera e Xilinx) – Arquitectura e recursos dos dispositivos de média e elevada complexidade Introdução ao Projecto com Sistemas Digitais e Microcontroladores Dispositivos lógicos programáveis - 29