Dispositivos Programáveis Aula 1 Prof Paulo Sérgio Brandão do Nascimento Centro Federal de Educação Tecnológica de Pernambuco Coordenação de Eletrônica e Telecomunicações Agenda Introdução Tipos de Dispositivos Programáveis Microcontroladores Lógicas Programáveis Microprocessadores CISC RISC Arquitetura 51 AT89C51 Introdução Paradigma Microeletrônico Introdução Paradigma Microeletrônico Primeiro Microprocessador (Ted Hoff) Primeiro IC Fairchild 1958 (Bob Noyce) Andy Grove, Robert Noyce, Goordon Moore (Intel 1968) Intel 4004 - 1971 Introdução Paradigma Microeletrônico Crueldade da Lei de Moore: Extraordinária Sofisticação Gordon Moore Lei de Moore Introdução Paradigma Microeletrônico Transistor MOS~30nm Vírus Introdução Paradigma Microeletrônico ~100 TransistoresMOS Lógicas Programáveis Paradigma de (Programação - Espacial) Antigos Sistemas a Relé Lógicas Programáveis Paradigma de (Programação - Espacial) Quadro de Comando a Relé: Lógica (programação) definida pelas conexões (Hardwire) Lógicas Programáveis Paradigma de (Programação - Espacial) George Boole (1815-1864): Álgebra Booleana Lógica Digital (Baseada em Portas) Claude Shannon(1916-2005): Pai da Eletrônica Digital e Teoria da Informação Lógicas Programáveis Paradigma de (Programação - Espacial) Quadro de Comando a Relé: Lógica (programação) definida pelas conexões (Hardwire) Integração e baixa escala (SSI) Circuitos integrados de portas lógica Lógicas Programáveis Matrizes de Lógica Programável: PLAs, FPGAs Programmable Logig Chip (PLA) Monolithic Memories Inc -PAL 16L8 FPGA (Field Programmable Gate Array) Xilinx Spartan 3 Device Lógicas Programáveis Matrizes de Lógica Programável: PLA PLAs: Lógicas Programáveis Matrizes de Lógica Programável: FPGAs: FPGA CLBs (Configurable Logic Bocks) Roteamento Xilinx Spartan 3 Device Xilinx FPGA IOBs (Input Output Bocks) Lógicas Programáveis Matrizes de Lógica Programável: FPGAs: FPGA CLBs (Configurable Logic Bocks) Roteamento Xilinx Spartan 3 Device Xilinx FPGA IOBs (Input Output Bocks) Detalhes dos FPGAS Matrizes de Roteamento Conexão Programável Conexões Programáveis: On Off Transmissor MOS Conexões Programáveis: On Off Transmissor MOS Conexões Programáveis: On Off Transmissor MOS Conexões Programáveis: On Off Transmissor MOS Conexões Programáveis: On Off Transmissor MOS Conexões Programáveis: On Off Transmissor MOS Conexões Programáveis: On Off Transmissor MOS Conexões Programáveis: On Off Transmissor MOS Conexões Programáveis: On Off Transmissor MOS Conexões Programáveis: On Off Transmissor MOS Conexões Programáveis: On Off Transmissor MOS Conexões Programáveis: On Off Transmissor MOS Conexões Programáveis: On Off Transmissor MOS Conexões Programáveis: On Off Transmissor MOS Conexões Programáveis: On Off Transmissor MOS Conexões Programáveis: On Off Transmissor MOS ===> Delay!!! Detalhes do FPGA K LUT Inputs Out D FF Clock Programmable IO CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB BLE #1 CLB CLB Programmable I Logic (CLB) Inputs CLB Clock CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB FPGA Programmable Routing Config_bit Plano de Configuração SRAM Interface de Configuração N N Outputs I BLE #N Vantagens e Desvantagem da Lógica Programável Vantagens: Alto grau de paralelismo das operações Granularidade fina a nível de bit Alta flexibilidade e capacidade de otimização para a aplicação Alta densidade de entrada e saída de dados (até milhares de pinos de entrada e saída) Melhor relação potencia/processamento (comp. com microprocessadores) Desvantagens: Custo alto Grande consumo de área com recursos de programação Altos tempos de configuração Retardos de propagação significativos (reduz a velocidade de operação) Projeto da Aplicação complexo (estilo de projeto de ASICs) ASICs = Applications Specific Integrated Circuits Microprocessadores (Microcontroladores) Programação Temporal Add r1,r2 Mov r1,[r2] Nor r2,#10 Call Address CPU Sistema de Memória Programa Armazenado ..... Temp db 00; Press db 00; Veloc dp 00; .... .... Portas I/O Mundo Externo Add r1,r2; Mov [r2],r1; Nor r2,r3; Call F_Address; Push r5; Ret; Conjunto de Instruções CISC ou RISC Circuitos eletrônicos Completamente fixos No processador (Hardware) Desenvolvimento da aplicação via Programação (software) .... .... Tempo (execução sequencial) Vantagens e Desvantagens dos Microprocessadores Vantagens Menor área para programação Maiores velocidades de clock (baixo retardo de propagação) Projeto de Aplicação bastante simples baseado em desenvolvimento de software (programação) Baixo custo do componente Desvantagens Dificuldades de utilização do paralelismo de aplicação Granularidade a nível de palavras: desperdício de hardware na manipulação de bits Pouca flexibilidade para otimizações voltadas a aplicação Maior consumo de potência por processamento Porque Estudar Dispositivos programáveis Microprocessadores, Microcontroladores e Lógicas Programáveis ? Porque Existe Mercado para esta área, atualmente, E uma Tendência de Crescimento Tecnologia de Sistemas Microprocessados no Mercado Smart OK e Connect OK – Produtos completamente desenvolvidos por Professores e alunos do CEFET-PE Aumento do Nível de integração -> tendência a SoCs SoC = System on Chip System on Chip Complexo RX0 CLK RX1 CLK RX2 CLK TX CLK CAN Network CAN HDLC RX Controller HDLC RX Controller HDLC RX Controller HDLC TX Controller FIFO FIFO FIFO FIFO AMBA AHB AMBA AHB AMBA AHB AMBA AHB >100Mbps BUS LVDS CAN Interface Parallel Port Interface AMBA AHB FIFO AMBA AHB AMBA AHB System Bus POR AMBA AHB AMBA AHB ROM LUT EDAC Bootstrap DECDED LEON Sparc V8 PIO UART CORDIC Coprocessor CF+ I/F True IDE +2.5V +3.3V Linear Regulator +3.3V 1M*64 SRAM SP TC Debug 170Mbyte Microdrive ESA Core SSTL Core Projetos Baseados em Plataforma MEM RTOS, SW MEM CACHE CPU RTOS, SW CACHE CPU FPGA FPGA CTRL FPGA MEM CTRL FPGA MEM Projetos Baseados em Plataforma Tipos de Usuários de PBD: •Power Users: •Modifica a plataforma em todos os níveis (hw e sw) •Application Users: •Desenvolvedor de Software •Uso de IPs de bibliotecas •Package Users: •Desenvolvimento de Software para aplicação apenas Hardware Implementation System Project MatLab Simulink Xilinx ISE Software Implementation C, Assembly Compilers FPGA Board Microprocessor System A plataforma que usaremos no Curso AT89C51 (Atmel) Ambiente de Programação Assembly Conclusão Dispositivos programáveis são muitos importantes na tecnologia eletrônica atual Todo os sistema atuais tendem a incorporar funções microprocessadas e são baseados em plataformas O sistemas são extremamente complexos e requerem muito estudo e dedicação por parte do Aluno As bases de eletricidade, eletrônica analógica e digital são fundamentais para que o aluno tenha o desempenho necessário no estudos dos sistemas embarcados modernos