Desenvolvendo aplicações com LabVIEW FPGA Rogério Rodrigues Engenheiro de Marketing Técnico Marcos Cardoso Engenheiro de Vendas
Agenda O que são FPGAs e por que eles são úteis? Programando FPGAs Hardware FPGA Aplicações comuns para FPGAs Como aprender mais
LabVIEW Real--Time Real LabVIEW FPGA LabVIEW Touch Panel LabVIEW para ADI Blackfin LabVIEW para ARM Tecnologia Embarcada NI LabVIEW Processador de Tempo Real FPGA PDA/HMI Microprocessador Microcontrolador
Solução de problemas Microprocessado Flexível e Modular Sequêncial Programável Tempo de execução 12, 24,... Pulsos de clock Eletrônica Discreta Estático Paralelo Projeto Digital Tempo de Execução Propagação do sinal elétrico Confiabilidade d depende d de Altamente t confiável SO, aplicativo e condições de uso FPGA
Tecnologia FPGA Interconexões Programáveis Blocos Lógicos Blocos E/S
Por que eles são úteis? Paralelismo li Verdadeiro d Possibilidade d de execução paralela e em pipeline Alta Confiabilidade Projetos viramcircuitos personalizados Determinismo Elevado Algoritmos executam a taxas determinísticas de 25 ns (mais rápidos em alguns casos) Reconfiguráveis Criam novas tarefas personalizadas e as alterar as existentes
Implementação de Lógica com o FPGA Implementando a Lógica no FPGA: F = {(A+B)CD} E E F Código LabVIEW FPGA A B C D
Paralelismo Verdadeiro E F A B C D Z W X Y
Alta Confiabilidade e Determinismo Decisão realizada em Software Possibilidade de Falhas UUT ~25 µs de resposta Saídas Hardwa are Siste ema Oper racional Driver API Softw ware de Aplicação Cálculo os
Alta Confiabilidade e Determinismo Decisão realizada em Hardware UUT Determinismo Elevado 25 ns* de resposta Saídas Hardwa are Cálculo os Siste ema Oper racional Driver API Softw ware de Aplicação * Resposta mais rápida para clocks de 80 e 120 MHz Maior Confiabilidade
Agenda O que são FPGAs e por que eles são úteis? Programando FPGAs Hardware FPGA Aplicações comuns para FPGAs Como aprender mais
Necessidade de Hardware de Alto Nível
Abstração do Código LabVIEW FPGA Contador E/S Analógica E/S com DMA LabVIEW FPGA VHDL ~4000 linhas
Do LabVIEW para o Hardware Tradução Otimização Síntese Bit Stream -Geração de código VHDL -Redução Lógica -Análise -Locais e Rotas -Verificação de Temporização -Geração -Download/Execução
d d d l Computador de desenvolvimento DMA Registradores Interface do Host Ler Entradas Código FPGA Análise de Saídas
Ponto Flutuante não disponível 9.99 1099 10 5 9.99 1099 10 5 + 2.0 10 3 + 0.02 10 5 Deslocamento Dinâmico 10.01 10 5 1.001 10 6 Deslocamento Dinâmico Deslocamentos Dinâmicos i são caros computacionalmente t Integer Floating point 0.00% 2.00% 4.00% 6.00% 8.00% 10.00% 12.00% 32 bit adder on 1M gate FPGA As operações de ponto fixo evitam o deslocamento dinâmico
LabVIEW FPGA IP Aritmética de Inteiros e Ponto Fixo Comparação Booleano Manipulação de Dados
LabVIEW FPGA IP Estruturas de Execução Memória Sincronização Temporização Integração E/S
IP do LabVIEW FPGA Sistemas Não Lineares Filtros e Análises de Sinal Manipulação de Dados Novo no LabVIEW 8.6 Geração de Sinal Sistemas Lineares
IPs do LabVIEW FPGA Geradores Toolkit Digital Filter Design Toolkit Adaptive Filter Design Novo no LabVIEW 8.6
Módulo LabVIEW Statechart Interface Serial Periférica (SPI)
IP baseado em HDL no LabVIEW FPGA Nó de Interface HDL Integração com linhas em HDL Novo no LabVIEW 8.6 Component Level lip (CLIP) Integração Paralela em HDL
LabVIEW FPGA IPNet p ni.com/ipnet Matemática Processamento de Sinais Transferência e Manipulação de Dados RF e Comunicações Protocolos Digitais Aquisição de Dados Geração de Sinais Controle Simulação de Sensores M i de Mais d 100 IPs IP e exemplos l
Agenda O que são FPGAs e por que eles são úteis? Programando FPGAs Hardware FPGA Aplicações comuns para FPGAs Como aprender mais
O Paradgma dos Diferentes Drivers para Aplicação do Usuário (LabVIEW ou LabVIEW Real Time) API DAQ Aquisição de Dados Driver Tradicional DAQ Driver RIO Aplicação do Usuário (LabVIEW ou LabVIEW Real Time) Interface Definida pelo Usuário API Driver Driver DAQ Interface Definida pelo Usuário LabVIEW FPGA API E/S E/S E/S Definida pelo Usuário Definida pelo Fornecedor
A Arquitetura RIO Processador FPGA E/S E/S E/S E/S Personalizada Conectividade Sinal Condicionado ADC
Curva de Distribuição RIO Arquitetura Embarcada Padrão, Software do Projeto Padrão E/S E/S Dese empenho do Sistema Processador FPGA Novo! E/S E/S Personalizada Unidades Distribuídas
Novo Single Board RIO Processador de Tempo Real FPGA Personalizável Programável com LabVIEW
Agenda O que são FPGAs e por que eles são úteis? Programando FPGAs Hardware FPGA Aplicações comuns para FPGAs Como aprender mais
Aplicações Comuns Controle de alta velocidade d DAQ inteligente Protocolos de comunicação digital Simulação de sensores Redução de dados e processamento onboard Co processamento
Aplicações Comuns Controle de alta velocidade d DAQ Inteligente Protocolos de comunicação digital Simulação de sensores Redução de dados e processamento onboard Co processamento
Controle de Alta Velocidade Por volta de 200 khz de taxa
Aplicações Comuns Controle de alta velocidade d DAQ Inteligente Protocolos de comunicação digital Simulação de sensores Redução de dados e processamento onboard Co processamento
Aquisição de Dados Inteligente Contadores Clocks Temporização Funções de PWM processamento e sincronização Contadores personalizados E/S analógicas integradas personalizadas personalizadas (IP) Trigger Múltiplas analógico taxas personalizado de execução
Aplicações Comuns Controle de alta velocidade d DAQ Inteligente Protocolos de comunicação digital Simulação de sensores Redução de dados e processamento onboard Co processamento
Comunicação Digital Exemplo SPI
Comunicação Digital Exemplo SPI Máquina de Estados LabVIEW LabVIEW Statecharts
Aplicações Comuns Contrle de alta velocidade d DAQ Inteligente Protocolo de comunicação digital Simulação de Sensores Redução de dados e processamento onboard Co processamento
Simulação de Sensores e FPGA Hardware totalmente personalizável Vários tipos de sensores Paralelismo Muitos sensores no chip sem interferência Requisitos de temporização estritos Determinístico ou altamente realista Processamento onboard Unidades de engenharia para sinais de sensores Sinais de Sensores
Aplicações Comuns Controle de alta velocidade d DAQ inteligente Protocolos de comunicação digital Simulador de sensor Redução de dados e processamento Co processamento
Processamento Onboard e Redução de Dados E/S já Inclusas Tensão analógica Comunicações digitais Sinais de sensores Entrada Processamento Codificação/Decodificação filtragem/média Modulação/ demodulação Dizimação Processamento de transmissão de dados Processamento Saída Dado reprocessado DMA Transmissão de dados de entrada para saída sem envolvimento do host DMA para Host Saída
Aplicações Comuns Controle de alta velocidade d DAQ inteligente Protocolos de comunicação digital Simulador de sensores Redução de dados e processamento Co processamento
Co processamento FPGA Um método para completar as funções do processador primário é diminuir i i as tarefas intensivas i do processador. O coprocessamento do FPGA é útil especialmente para tarefas que possam aproveitar as vantagens do paralelismo do FPGA e das tecnicas de pipelines. Host DMA FPGA DMA Co processamento Pipeline Paralelismo ll Fluxo intenso
Agenda O que são FPGAs e por que eles são úteis? Programando FPGAs Hardware FPGA Aplicações comuns para FPGAs Como aprender mais
Como aprender mais ni.com/fpga ni.com/embeddedeval
Obrigado! Não esqueça de preencher a avaliação. Para mais informações acesse ni.com ou ligue para (11) 3149 3149