Prévia do material em texto
Dispositivos Lógicos Programáveis - DLP Aula 04 - Técnicas de configuração de FPGAs e introdução a projetos. Álvaro Magri Nogueira da Cruz 1 / 27 Agenda 1 Técnicas de configuração de FPGAs 2 Desenvolvimento de projetos utilizando FPGA Especificação ou descrição do projeto Simulação em ńıvel RTL Netlisting (śıntese e mapeamento da tecnologia) Place & route (posicionamento e roteamento) Verificação e teste Programação/Configuração da FPGA. 3 Resumo 4 Exerćıcios 5 Bibliografia base 2 / 27 Técnicas configuração de FPGAs I As chaves programáveis de roteamento apresentam algumas propriedades: Tamanho; Resistência; Capacitância; Tecnologia de fabricação. Afetam principalmente a velocidade e o tempo de propagação dos sinais; Definem caracteŕısticas como volatilidade e capacidade de reprogramação. 3 / 27 Técnicas configuração de FPGAs II Basicamente existem três tipos de tecnologia de programação das chaves de roteamento: SRAM (Static Random Access Memory); Antifuse ou Antifuśıvel; Porta Flutuante/ Gate Flutuante/ Floating Gate. 4 / 27 Técnicas configuração de FPGAs III SRAM A chave de roteamento ou comutador é um transistor de passagem ou um multiplexador; É controlado por uma memória estática de acesso randômico SRAM; Devido a volatilidade dessas memórias: FPGAs que se utilizam dessa tecnologia precisam de uma memória externa tipo FLASH ou EEPROM. 5 / 27 Técnicas configuração de FPGAs IV Figura 1: Célula de uma SRAM CMOS de seis transistores. 6 / 27 Técnicas configuração de FPGAs V Antifuse Essa tecnologia baseia-se num dispositivo de dois terminais; 1 No estado não programado apresenta uma alta impedância (circuito aberto); 2 No estado programado, aplicando-se a uma tensão, por exemplo, entre 11 e 20 Vdc, o dispositivo forma um caminho de baixa impedância entre seus terminais. Menos utilizada que a SRAM, no que se refere a FPGAs. 7 / 27 Técnicas configuração de FPGAs VI Figura 2: Antifuse: quando a tensão é aplicada a essa camada do meio, o siĺıcio amorfo é transformado em polissiĺıcio, que é condutor. 8 / 27 Técnicas configuração de FPGAs VII Floating Gate A tecnologia Floating Gate baseia-se em transistores MOS (Metal Oxide Semicondutor); Especialmente constrúıdos com dois Floating Gates semelhantes; São usados nas memórias EPROM (Erasable Programmable Read Only Memory) e EEPROM (Electrical EPROM) A maior vantagem dessa tecnologia é sua capacidade de programação e a retenção dos dados. 9 / 27 Técnicas configuração de FPGAs VIII Source Drain n-Channel Control gate Floating gate Isolator Figura 3: Um corte transversal de uma porta-flutuante transistor. 10 / 27 Desenvolvimento de projetos utilizando FPGA I Esse processo envolve as seguintes etapas: Especificação ou descrição do projeto; Simulação em ńıvel RTL (Register Transfer Level) e test benches; Netlisting (śıntese e mapeamento da tecnologia); Place & route (posicionamento e roteamento); Verificação e teste; Simulação em ńıvel de portas GLS (Gate Level Simulation); Programação/Configuração da FPGA. 11 / 27 Especificação ou descrição do projeto I A descrição do projeto pode ser realizada de duas formas: Diagrama lógico (editor gráfico com uso de portas lógicas e macro instruções) Editor HDL (codificando). Algumas linguagens de programação usuais: ABEL (Advanced Boolean Equation Language); VHDL (Very High Speed Integrated Circuit Hardware Description Language)+utilizada; Verilog+utilizada; AHDL (Altera Hardware Description Language); JHDL (Java Hardware Description Language); entre outras. 12 / 27 Especificação ou descrição do projeto II Figura 4: Quartus II Altera. 13 / 27 Simulação em ńıvel RTL e test benches I A simulação em ńıvel RTL é a simulação funcional da descrição de hardware; NÃO envolve hardware; Despreza atrasos inerentes de chaveamento. Trata-se de uma verificação lógica do fluxo de dados. É uma descrição śıncrona do circuito; Também é posśıvel fazer uma simulação do funcionamento do sistema (test bench). 14 / 27 Simulação em ńıvel RTL e test benches II Figura 5: Quartus II Altera simulação do circuito. 15 / 27 Simulação em ńıvel RTL e test benches III Figura 6: Visualização em ńıvel RTL. 16 / 27 Netlisting (śıntese e mapeamento da tecnologia) I A śıntese lógica consiste na otimização; Minimização das expressões booleanas; Otimização do circuito, para o mapeamento posterior; Seleciona um conjunto de portas para reduzir a área ocupada no dispositivo; Leva em conta as restrições arquiteturais. 17 / 27 Netlisting (śıntese e mapeamento da tecnologia) II Figura 7: Visualização netlist post-mapping. 18 / 27 Place & route (posicionamento e roteamento) I A descrição do projeto se torna uma representação da designação dos: Componentes lógicos para−−→ componentes f́ısicos; Este é o processo de posicionamento e roteamento (place & route). O posicionamento atribui os componentes do hardware aos blocos lógicos funcionais do sistema; O roteamento atribui às trilhas e elementos programáveis, a interconexão dos blocos lógicos, de forma a maximizar a velocidade e diminuir o custo do sistema. 19 / 27 Place & route (posicionamento e roteamento) II Figura 8: Chip Planner: área em uso no dispositivo. 20 / 27 Place & route (posicionamento e roteamento) III Figura 9: Pin planner: disposição dos pinos no dispositivo. 21 / 27 Verificação e teste I A etapa de verificação e teste consiste na análise de: 1 Tempos; 2 Potência; 3 Rúıdos (SSN – Simultaneous Switching Noise). A etapa de simulação em ńıvel de portas (GLS) é opcional; É nela que são levadas em conta as posśıveis restrições de temporização São nestas duas etapas que atrasos de propagação dos vários circuitos e trajetos são analisados, de modo a obter uma indicação de desempenho do circuito. 22 / 27 Programação/Configuração da FPGA. I O resultado final é um arquivo de configuração que contém todas as informações que serão enviadas para o FPGA; O arquivo contém um conjunto de dados e comandos de configuração; Diversos são os formatos usados: SOF (SRAM Object File); POF (Programmer Object File); RBF (Raw Binary File); RPD (Raw Programming Data File); HEX ou HEXOUT (Hexadecimal Format File); TTF (Tabular Text File); JAM (Jam File); JBC (Jam Byte-Code File). 23 / 27 Resumo 24 / 27 Exerćıcios 1 Para você qual é a principal vantagem de uma simulação em ńıvel RTL? 2 Tendo em vista o Netlisting, o que ele é e qual sua importância? 25 / 27 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. 26 / 27 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. 27 / 27 Técnicas de configuração de FPGAs Desenvolvimento de projetos utilizando FPGA Especificação ou descrição do projeto Simulação em nível RTL Netlisting (síntese e mapeamento da tecnologia) Place & route (posicionamento e roteamento) Verificaçãoe teste Programação/Configuração da FPGA. Resumo Exercícios Bibliografia base