ELD - Eletrônica Digital Aula 11 – Introdução à Lógica Programável Prof. Antonio Heronaldo de Sousa Agenda - Introdução - Lógica Programável - Dispositivos de Lógica Programável - Arranjos Lógicos Programáveis (PLA e PAL) - Arranjos de Portas Programáveis (CPLD e FPGA) - Linguagem de Descrição de Hardware Introdução • • • • • Válvula no início de 1940 Transistor em 1947 – Não aquece como as válvulas – Fisicamente menor 1961 primeiro integrado TTL 74LSXX Década de 1970 – Surgem os microprocessadores – Surgem os SPLD – Simple Programmable Logic Device (ROM e Logic Arrays - PLA e PAL) << 600 portas – ASIC’s – Applications Specific Integrated Circuits Década de 1980 >> 600 portas – Complex PLD – CPLD – FPGA – Field Programmable Gate Array Introdução • Basicamente, o projeto de um sistema digital consiste em determinar a função lógica que traduz o funcionamento do mesmo de acordo com estímulos recebidos. • A partir disso podemos implementar um circuito lógico complexo que execute essa função a partir de circuitos lógicos simples. Introdução Projetista tem o desafio de encontrar o balanço entre velocidade e generalidade do hardware • Chip genérico – Microcontroladores Muitas funções Sacrifício de desempenho • Chip dedicado – ASICS Aplicação específica alta velocidade baixo consumo só se justifica em grande quantidade, pois alterações do projeto não são possíveis Lógica Programável • Os componentes da lógica programável são dispositivos que possuem em sua lógica interna centenas (ou milhares) de portas lógicas, flipflops, registradores e outros; que são interligados internamente. • Essas interconexões são os pontos programáveis da lógica. Podemos então programar essas conexões para permanecerem fechadas ou abertas, de acordo com a necessidade do projeto. • Essas interconexões podem ser entendidas como fusíveis, que de acordo com a necessidade do projeto podem ou não ser queimados (desfazendo ou não a conexão entre portas lógicas). Essa queima é realizada pelo projetista, utilizando um software de programação do dispositivo. Dispositivos de Lógica Programável Arranjos Lógicos Programáveis • Circuito que possui uma estrutura interna baseada em um conjunto de portas AND-OR (o conjunto de portas AND e OR são chamados de arranjos). • As entradas desse circuito são ligadas às entradas das portas AND e as saídas das portas AND são ligadas às entradas das portas OR e suas saídas representam as saídas do circuito. PLA – Soma de Produtos 3 Entradas – X1, X2, X3 2 Saídas – Z1, Z2 Um bloco AND configurável com 6 entradas Um Bloco OR Configurável com 6 entradas PAL – Soma de Produtos • • • • 3 Entradas – X1, X2, X3 2 Saídas – Z1, Z2 Apenas bloco AND configurável com 6 entradas Bloco OR fixo Arranjos de Portas Programáveis • Os arranjos de portas programáveis são estruturas mais genéricas e versáteis que as baseadas na estrutura tradicional AND-OR dos arranjos lógicos programáveis. • A principal vantagem deste tipo de circuito é a possibilidade de reprogramação do comportamento de um circuito quantas vezes for necessária, ao contrário dos arranjos lógicos programáveis que só podem ser programados uma vez, ou seja, definida sua função lógica ela não poderá ser mudada. CPLD - Complex PLD • Os CPLDs podem ser vistos como dispositivos que utilizam em sua estrutura vários PLD´s (PLA ou PAL). Cada PLA ou PAL formam células que são interligadas através de conexões programáveis. FPGA - Field Programmable Gate Array Linhas de Roteamento Blocos de Entrada e Saída Blocos Lógicos Configuráveis Matriz de Roteamento FPGA – Elementos Básicos • Blocos de entrada/saída configuráveis (I/O Blocks): são componentes de entrada/saída formados por estruturas bidirecionais que incluem buffer, flipflop de entrada, buffer tri-state e flip-flop de saída . • Interconexões Programáveis (Programmable InterConnect): pode ser do tipo SRAM, Antifusível ou EPROM. São como interruptores programáveis, geram as pistas de ligação entre os blocos lógicos e blocos de entrada e saída . • Blocos Lógicos Configuráveis (Logic Block): pode ser tão simples como um transistor ou tão complexo quanto um microprossessador. Este bloco é capaz de implementar várias funções combinacionais (através de look-up-table) e seqüenciais (através de flip-flops). Linguagem de Descrição de Hardware • VHDL ( Very High Speed Integrated Circuit Hardware Description Language) é uma linguagem padronizada de HDL ratificada em 1987 pelo IEEE • Serve para modelar a estrutura ou comportamento do Hardware – Comportamento: • Descreve-se o circuito pensando no seu funcionamento. – Estrutural: • Descreve-se o circuito pensando na arquitetura. VHDL – Linguagem de Descrição de Hardware • Ex.: Flip-Flop D