Prévia do material em texto
Dispositivos Lógicos Programáveis - DLP Aula 03 - FPGAs, blocos lógicos e arquitetura. Álvaro Magri Nogueira da Cruz 1 / 17 Agenda 1 Introdução 2 Blocos lógicos 3 Arquitetura geral de roteamento 4 Exerćıcios 5 Bibliografia base 2 / 17 Introdução I FPGA: Field Programmable Gate Array ; FPGA é um circuito integrado que contém um grande número (na ordem de milhares) de unidades lógicas idênticas; Componentes padrões que podem ser configurados; Interconectados por uma matriz de trilhas condutoras e switchs programáveis; Principais fabricantes: Xilinx e Altera. 3 / 17 Introdução II Figura 1: FPGA Altera Ciclone II. 4 / 17 Introdução III Figura 2: Visão geral de uma FPGA. 5 / 17 Introdução IV ASIC versus FPGA ASIC: Fabricado para uma determinada função; Não é programável. FPGA: Pode realizar diversas funções; Circuito programável e reprogramável. 6 / 17 Introdução V CPLD versus FPGA CPLD: Conjunto grande de interconexões cont́ınuas e predefinidas; Conjunto de arrays AND e OR, pois é formado por SPLDs. FPGA: Conexões segmentadas em tamanho pequenos; Arrays regulares de multiplexadores separados em colunas e linhas. AUMENTA A DENSIDADE LÓGICA. 7 / 17 Introdução VI Figura 3: CPLD versus FPGA: esquema de roteamento. 8 / 17 Blocos lógicos I No interior de cada bloco lógico de FPGA existem vários modos posśıveis para implementação de funções lógicas; O mais utilizado pelos fabricantes de FPGA como, por exemplo, a empresa Altera Corp., é o bloco de memória LUT (Look – Up Table); LUT Esse tipo de bloco lógico contém células de armazenamento que são utilizadas para implementar pequenas funções lógicas; Cada célula é capaz de armazenar um único valor lógico: 0; 1. LUTs possuem geralmente quatro ou cinco entradas; O que permite endereçar 16 ou 32 células de armazenamento; 9 / 17 Blocos lógicos II Figura 4: Esquema de um LUT dentro de um bloco lógico. 10 / 17 Blocos lógicos III Caracteŕısticas das células dos LUTs As células de armazenamento dos LUTs de um FPGA são voláteis; Falta de energia = perda do conteúdo armazenado. A FPGA dever se programado toda vez que for energizado; Geralmente, utiliza-se uma pequena memória FLASH ou EEPROM (Electrically Erasable Programmable Read Only Memory); Deve carregar automaticamente as células de armazenamento, toda vez que o FPGA for energizado. 11 / 17 Granularidade I O grão é a menor unidade configurável que compõe um FPGA; Grão grande: podem possuir como grão unidades lógicas aritméticas, pequenos microprocessadores e memórias; Grão médio: frequentemente, contêm dois ou mais LUTs e dois ou mais flip-flops. A maioria das arquiteturas de FPGAs implementam a lógica em LUTs de quatro entradas; Grão pequeno: contêm um grande número de blocos lógicos simples. Os blocos lógicos normalmente contêm uma função lógica de duas entradas ou multiplexadores 4x1 e um flip-flop. 12 / 17 Arquitetura geral de roteamento I 13 / 17 a) Pinos: Entrada e Sáıda de blocos lógicos; b) Conexão: Ligação elétrica de um par de pinos; c) Rede: Conjunto de pinos que estão conectados; d) Bloco de Comutação: Utilizado para conectar os segmentos da trilha; e) Segmentos da Trilha: Segmento não interrompido por chaves programáveis; f) Canal de Roteamento: Grupo de 2 ou mais 3 trilhas paralelas; g) Bloco de Conexão: Permite a conectividade das entradas e sáıdas de um bloco lógico com os segmentos de trilhas nos canais. 14 / 17 Exerćıcios 1 Cite e descreva uma diferença entre CPLD e FPGA. 2 O que é uma LUT (Look Up Table)? 3 Em um cenário hipotético, uma FPGA no desenergizada, ao ligá-la todas suas configurações foram carregadas e sua operação voltou ao normal. A afirmação está correta? Se esta, porque foi posśıvel carregar as configurações? 15 / 17 Bibliografia base 1 FRANCHI, Claiton Moro; CAMARGO, Valter Luis Arlindo de. Controladores lógicos programáveis: sistemas discretos. São Paulo: Ed. Érica, 2009; 2 TOCCI, R. J.; WIDMER, N. S. Sistemas digitais: prinćıpios e aplicações. 10 ed. São Paulo: Pearson Prentice Hall, 2007; 3 ALMEIDA, Rodrigo Maximiamo Antunes de; MORAES, Carlos Henrique V. Programação de sistema embarcados: desenvolvendo software para microcontroladores em linguagem C. Rio de Janeiro: LTC, 2016. 16 / 17 Bibliografia complementar 1 OLIVEIRA, A. S. de. Sistemas embarcados: hardware e firmware na prática. São Paulo: Saraiva, 2010; 2 PEDRONI, Volnei. A. Eletrônica digital moderna e Vhdl. Rio de Janeiro: Elsevier, 2010; 3 D. AMORE, Roberto. VHDL: descrição e śıntese de circuitos. Rio de Janeiro: LTC, 2015; 4 HEXSEL, Roberto A. Sistemas digitais: microprocessadores. Curitiba: UFPR, 2012; 5 LOURENÇO, Carlos Antonio: Circuitos digitais. São Paulo: Érica, 2007. 17 / 17 Introdução Blocos lógicos Arquitetura geral de roteamento Exercícios Bibliografia base