PROGRAMAÇÃO E PROJETOS COM DISPOSITIVOS FPGA (1.a parte) Prof. Dr. Cesar da Costa – N8LB0 - 1.a Aula_Teórica SUMÁRIO 1. Introdução 1.2 Circuitos Integrados Padrões 1.3 Circuitos Integrados ASICs 2. Conceito de Lógica Programável 2.1 Dispositivos Lógicos Programáveis - PLDs 2.2 SPLDs (PLA, PAL, GAL e EPLD) 2.3 HCPLDs (CPLD e FPGA) 3 Kit de Desenvolvimento DE 2 Introdução: Os circuitos integrados digitais implementados em pastilha de silício podem ser classificados em dois grupos de integração: a) Circuitos integrados padrões b) Circuitos integrados de aplicação específica (ASIC) Circuitos Integrados Padrões Os circuitos integrados padrões são compostos pelos circuitos de funções fixas, que correspondem aos componentes digitais básicos: AND, OR, NAND, NOR, NOT, FLIP-FLOPS,etc. Exemplos: Circuitos integrados digitais SSI. CI 7400 (4 portas NAND) CI 7408 (4 portas AND) Circuitos integrados digitais MSI. CI 74151 (1 Multiplexador 8x1) CI 74LS90 (1contador BCD) Circuitos Integrados de Aplicações Específicas (ASICs) Os circuitos integrados de aplicação específicas ASICs são aqueles que precisam de um processo de fabricação especial, que requer máscaras específicas para cada projeto. Exemplos: CISC (Conjunto de instruções complexas) Microprocessadores Microcontroladores RISC (Conjunto de instruções reduzidas) Arquitetura Básica Microprocessadores são componentes extremamente flexíveis devido a sua programabilidade. A programação do componente torna-o flexível para implementação de vários tipos de aplicação , entretanto, a implementação de um algoritmo por software será mais lenta que quando implementada por um hardware equivalente. Somador por Software Início A 04h Estados Endereços Mnemônico Operando Comentários B 03h 7 0000 MVI A, 04 Move 04 para A AA+B 7 0002 MVI B, 03 Move 03 para B Fim Clock = 4 Mhz 4 0004 ADD 5 0005 HLT B Soma A e B para A Pára. Tempo de estado = 0,25 μs Somador por Hardware A B A B S = A+B S 13 nanosegundos (delay) Em ambos os casos apresentados, os circuitos integrados digitais possuem suas funções internas fixas, predefinidas, implementadas na construção do CI no processo de fabricação. Circuito Integrado MSI Microcontrolador Conceito de Lógica Programável Nos últimos 30 anos a tecnologia de projeto de sistemas digitais se moveu na direção da Lógica Programável. A maioria dos circuitos de controles digitais modernos estão contidos em um único dispositivo de Lógica Programável: FPGA ou CPLD. A idéia básica desses dispositivos é permitir ao projetista configurar o circuito eletrônico digital desejado dentro do próprio “chip”. Os recursos de hardware serão configurados para implementar a funcionalidade requerida. Dispositivos Lógicos Programáveis - PLDs Os PLDs são circuitos integrados que podem ser configurados pelo próprio usuário. Não apresentam uma função lógica definida, até que sejam configurados. Uma função lógica, seja combinacional ou seqüencial poderá ser representada na forma de soma de produtos, através do uso do Teorema de DeMorgan ou das leis da Álgebra de Boole. Uma função lógica complexa de multi – níveis poderá facilmente ser reduzida a uma configuração de dois níveis usando portas ANDs e portas ORs. Arquitetura básica de um dispositivo PLD Algumas propriedades das funções lógicas possibilitaram a implementação de componentes eletrônicos contendo arranjos uniformes de portas ANDs e portas ORs que podem ser programadas. Os dispositivos de lógica programável – PLDs foram os dispositivos eletrônicos que possibilitaram a implementação da Lógica Programável no projeto de circuitos digitais. Os PLDs podem ser classificados em função do número de portas lógicas que comportam como: a) SPLDs (Simple Programmable Logic Devices); b) HCPLDs (High Complex Programmable Logic Devices). SPLDs (Single Programmable Logic Devices) São dispositivos simples de baixa capacidade, que tipicamente contêm menos de 600 portas lógicas, fabricados com tecnologia CMOS. Exemplos de dispositivos SPLDs: a) PLAs (Programmables Logic Arrays); b) PALs (Programmable Arrays Logic); c) GALs (Gate Arrays Logic). PLA (Programmable Logic Array). Introduzidos em 1970 pela Philips. A saída do plano AND corresponde ao produto das entradas. PAL (Programmable Array Logic). Desenvolvido para superar as deficiências dos PLAs. GAL (Generic Array Logic). Um novo tipo de PAL baseado em células de memória EEPROM. Introduzido no mercado pela empresa LATTICE. EPLDs (Erasable Programmable Logic Devices) São dispositivos lógicos programáveis e apagáveis que foram introduzidos no mercado pela empresa ALTERA, no ano de 1983. Os dispositivos EPLDs implementavam capacidade lógica de até 50 dispositivos PALs típicos em um único circuito integrado. Suas Principais vantagens: Programabilidade e reprogramabilidade. Tecnologia CMOS. Integração em larga escala. Simplificação e redução do tempo de desenvolvimento. HCPLDs (High Complex Programmable Logic Devices) São dispositivos simples de alta capacidade, que tipicamente contêm mais do que 600 portas lógicas, os mais modernos podem atingir cerca de 1.000.000 portas lógicas, fabricados com tecnologia CMOS. Exemplos de dispositivos HCPLDs: a) CPLDs (Complex Programmable Logic Devices); b) FPGAs (Field Programmable Logic Devices). CPLDs (Complex Programmable Logic Devices) Foram introduzidos no mercado internacional pela empresa ALTERA, inicialmente como EPLDs. São dispositivos programáveis e reprogramáveis pelo usuário, com alto desempenho, baixo custo por função e alta capacidade de integração. CPLDs (Complex Programmable Logic Devices) Famílias de CPLDs fornecidos pela ALTERA: MAX II, MAX 3000A e MAX7000. Famílias de CPLDs fornecidos pela XILINX: XA9500XL, XC95144. CPLD Consiste de um determinado número de blocos lógicos, onde cada bloco contém uma macrocélula interligada a uma matriz lógica programável tipo SPLD. No centro da arquitetura existe uma interconexão programável global, que permite a conexão entre blocos lógicos e células de entrada e saída. 28 FPGA O FPGA consiste de uma matriz de blocos lógicos ou células lógicas independentes, cercada de blocos de entrada e saída, também independentes e por um conjunto de recursos de interconexão programáveis, que permitem a interligação arbitrária dos blocos uns aos outros. Cada bloco lógico pode ser programado individualmente para desempenhar uma função específica. Cada bloco de entrada e saída pode ser programado para ser uma entrada, uma saída ou um pino bidirecional global. 29 FPGA Novas arquiteturas de FPGAs têm sido desenvolvidas desde 1985, com variações significativas na composição dos blocos e das tecnologias de implementação, mas sempre mantendo a mesma estrutura básica da LCA (Logic Cell Array) inicial: Blocos lógicos; Blocos de entrada e saída; Recursos de interligação programáveis. 30 Arquitetura de roteamento A arquitetura de roteamento de um FPGA é a forma pela qual os seus barramentos e as chaves de interconexão são posicionadas para permitir a interconexão entre as células lógicas. Essa arquitetura permite que se obtenha um roteamento completo e, ao mesmo tempo, alta densidade de portas lógicas. FPGA Arquitetura geral de roteamento de um FPGA. 32 Conceitos básicos da arquitetura de um FPGA Pinos: entradas e saídas dos blocos lógicos; Conexão: ligação elétrica de um par de pinos; Rede: conjunto de pinos que estão conectados; Bloco de comutação: utilizado para conectar dois segmentos de trilha; Segmento de trilha: segmento não interrompido por chaves programáveis; Canal de roteamento: grupo de duas ou mais trilhas paralelas; Bloco de Conexão: permite a conectividade das entradas e saídas de um bloco lógico com os segmentos de trilhas nos canais; Chaves programáveis: afetam a velocidade, tempo de propagação dos sinais e definem características de volatilidade e reprogramação. Tecnologia de programação das chaves de roteamento SRAM: nessa tecnologia a chave de interconexão é uma memória estática RAM de um bit. Antifuse: nessa tecnologia a chave de interconexão é um dispositivo semicondutor de dois terminais, que no estado não programado apresenta alta impedância (aberto) e que no estado programado apresenta baixa impedância (fechado). Gate Flutuante: nessa tecnologia a chave de interconexão é um transistor MOS, especialmente construídos com dois gates flutuantes semelhantes aos usados nas memórias EPROM e EEPROM . A maior vantagem dessa tecnologia é a sua capacidade de programação e a retenção dos dados. Obs: Com a tecnologia Gate Flutuante os dados podem ser programados com o circuito integrado instalado na placa, característica denominada ISP (In System Programmability). FPGA (Field Programmable Gate Arrays) Famílias de FPGAs fornecidos pela XILINX: Artix -7, Kintex-7, Virtex-7, Spartan-6 e Virtex-6. Visite o site: http://www.xilinx.com/products/silicon-devices/fpga/index.htm FPGA (Field Programmable Gate Arrays) Famílias de FPGAs fornecidos pela ALTERA: Stratix V, IV, III, II e I; Arria V, II e I; Cyclone V, IV, III, II e I Visite o site: http://www.altera.com/devices/fpga/fpga-index.html FPGA • APLICAÇÕES DE FPGA. • Radio Digital (Wireless). • Equipamentos em Medicina: Ultra Som, etc; • Processamento de Som. • Processamento de Imagem: Aplicações de Vídeo; • Controle Industrial: Autônomos, Motion Control. • DSP (Processamento Digital de Sinais). 40 Principais Fabricantes de FPGA e CPLD Fabricante Webesiet Achronix Semiconductor www.achronix.com Actel Corporation www.actel.com Altera Corporation www.altera.com Atmel Corporation www.atmel.com Cypress Semiconductor www.cypress.com Lattice Semiconductor www.latticesemi.com Quicklogic Corporation www.quicklogic.com Xilinx www.xilinx.com 41 Placas de Desenvolvimento Altera DE3 Development System - FPGA Stratix III 42 42 Placas de Desenvolvimento Altera Cyclone III FPGA Development KIT 43 43 KIT DE 2 KIT DE 2 Endereço das chaves Endereço dos LEDs Atenção: 1. Maiores informações sobre dados técnicos do Kit DE 2, deverão ser obtidas no site do professor: www.professorcesarcosta.com.br. Disciplinas Ministradas N8LB10 Bibliografia: Bibliografia: 2. Site www.professorcesarcosta.com.br Tópicos: -Disciplinas Ministradas N8LB10; - Kits Didáticos com FPGA; - Clube do FPGA; - FPGA; 3. Site www.fpgacentral.com