Engenharia de Software para Computação Embarcada

Slides:



Advertisements
Apresentações semelhantes
Virtex-II Pro X Platform FPGA
Advertisements

MATRIZES DE PORTAS PROGRAMÁVEIS NO CAMPO (FPGA)
PROGRAMAÇÃO E PROJETOS COM DISPOSITIVOS FPGA (1.a parte)
Capítulo 2 - Introdução aos Circuitos Lógicos
Circuitos Lógicos e Organização de Computadores Capítulo 3 – Tecnologia de Implementação Ricardo Pannain
Fig. 2 Pontos críticos na característica de transferência vo(vi) de um inversor genérico. Microelectronic Circuits - Sedra/Smith (resumo sobre circuitos.
15/1/2014 Professor Leomir J. Borba- – 1 Tec. Em Analise e desenvolv. De Sistemas analise.
Projecto de Hardware com FPGAs
Dispositivos lógicos programáveis (DLP)
VISÃO GERAL Profa. Fernanda Denardin Walker
Projeto de sistemas computacionais
Pontifícia Universidade Católica do Rio Grande do Sul
LABORG Parte 2 - Introdução a FPGAs e Prototipação de Hardware
Fernando Moraes e Ney Laert Vilar Calazans
Ney Laert Vilar Calazans
Parte 4 - Introdução a FPGAs
AULA 1: Introdução a Sistemas Embarcados
Eletrônica Digital Multiplexadores e Demultiplexadores
VHDL AULA - 2.
Lógica reconfigurável por hardware
Concepção de Circuitos Integrados
Circuitos Lógicos Sequenciais
MC542 Organização de Computadores Teoria e Prática
MC 542- Organização de Computadores
VHDL Introdução Paulo C. Centoducatte fevereiro de 2005
ArchC: Uma linguagem de descrição de arquiteturas
Arquiteturas Diferentes
MC542 Organização de Computadores Teoria e Prática
MC542 Organização de Computadores Teoria e Prática
Maria Aparecida Castro Livi
Rganização de Computadores Melhorias de Desempenho com Pipelines Capítulo 6 – Patterson & Hennessy Organização de Computadores Melhorias de Desempenho.
PSEUDO-ONLINE TESTING METHODOLOGIES FOR VARIOUS COMPONENTS OF FIELD PROGRAMMABLE GATE ARRAYS L. Kalyan Kumar, Aditya S. Ramani, Amol J. Mupid, V. Kamakoti*
Dispositivos de Lógica Programável
Dispositivos Lógicos Programáveis (PLD)
1998 Morgan Kaufmann Publishers Ch5B-1 O Processador: Via de Dados e Controle (Parte C: microprogramação)
Fundamentos de Eletrônica Digital
Simplificação de Expressões Booleanas e Circuitos Lógicos
Eletrônica Digital II ELT013
Arquitetura de Sistemas Digitais FPGA
Engenharia de Software para Computação Embarcada
ALTERA FLEX 10K CARACTERÍSTICAS
Circuitos Digitais - Somadores e Subtradores SOMADORES E SUBTRADORES.
EPUSP – PTC Guido Stolfi
Engenharia de Software para Computação Embarcada
Engenharia de Software para Computação Embarcada
Engenharia de Software para Computação Embarcada
Antonyus Pyetro Infra-estrutura de Hardware – IF674
FPGA e CPLD.
Lógica reconfigurável por hardware
Dispositivos Lógicos Programáveis (DLP) Ideia e Arquiteturas
Multiplexadores e Demultiplexadores
Latches e Flip-Flops GSI008 – Sistemas Digitais
LABORG Parte 2 - Introdução a FPGAs e Prototipação de Hardware
Sistemas Operacionais
Conceitos de Lógica Digital
MO801 - Tópicos em Arquitetura e Hardware Michele Tamberlini 05/2006
ENGA78 – Síntese de Circuitos Digitais
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Organização e Arquitetura de Computadores Prof. Bruno Silvério Costa
Circuitos Combinacionais Exercícios 2 POSCOMP e ENADE
Lógica Programável PTC2527 – EPUSP Guido Stolfi.
Dispositivos Programáveis
Hardware Description Language Aula 4 –VHDL (introdução)
Introdução à Linguagem VHDL
Prof. Anderson Royes Terroso Abril, 2000.
Introdução a VHDL Monitoria de Digitais.
Dispositivos Reconfiguráveis
Sistemas Digitais Licenciatura em Eng. Informática Copyright © ESTGP 2011 Powered by Sérgio Correia.
Servomecanismo N7SRV Prof. Dr. Cesar da Costa
Projeto de Circuitos Integrados Semidedicados Prof. Marcio Cunha Aula 02 – Arquiteturas de Sistemas Digitais.
Transcrição da apresentação:

Engenharia de Software para Computação Embarcada Prof. Frederico Ferlini Aula 3

CONTEÚDO Implementação de Circuitos Digitais Introdução Exemplos Dispositivos Reconfiguráveis FPGAs Spartan3 Linguagens de Descrição de Hardware

Implementação de Circuitos Digitais INTRODUÇÃO Criação de um projeto de circuito digital Pode ser até um desenho em uma folha (a) Eventualmente haverá a necessidade de implementar esse circuito em um dispositivo físico (b) Como? Introdução k p s w B elt W a r n (a) Digital circuit design si IC (b) Physical implementation ?

Implementação de Circuitos Digitais Produzir o nosso próprio CI Meses de projeto e fabricação Milhões em dinheiro Totalmente ou Semi customizado (1) Totalmente customizado (Full-custom IC) Utiliza-se ferramentas de CAD (Computer Aided Design) Layout descreve a localização e a dimensão de cada transistor e conexão Envia para FAB (fabrication plant) que fabrica o CI Custos: NRE (setup), respin (erros de projeto). JUSTIFICA? B elt W a r n k p w C us t om l a y out s IC F ab mo n ths a

Implementação de Circuitos Digitais Produzir o nosso próprio CI (2) Semicustomizado Gate Array ou Standard Cell Application Specific IC (ASIC) (2a) Gate Array Arranjos de portas lógicas CI com transistores pré-projetados O trabalho feito é a interconexão Utilizando-se ferramentas de CAD Comparação com Full-custom Menor custo e tempo de projeto Pior performance, área e consumo k B elt W a r n p w s ( b ) ( a ) k p s ( c ) IC ( d ) w w eeks ( just wi r ing) F ab

Implementação de Circuitos Digitais Produzir o nosso próprio CI (2a) Gate Array Exemplo do mapeamento de um meio somador Half-adder equations: S = a’b + ab’  Soma = a XOR b CO = ab  CarryOut = a AND b Half-adder equations: s = a'b + ab' co = ab a c o ab a'b ab' b s G a t e a r r a y a

Implementação de Circuitos Digitais Produzir o nosso próprio CI (2) Semicustomizado (2b) Standar Cell Células (pequenos circuitos) AND3, MUX21, AOI... Mesma altura (tipicamente) Biblioteca:células pré-projetadas Faixas de altura de padrão O trabalho: Escolha e posicionamento das células Conexão Comparação com Gate Array Um pouco mais complexo Melhor desempenho, consumo e área k BeltWarn p w s ( b ) Cell library ( a ) k w p cell row s cell row cell row ( c ) Fab IC ( d ) 1-3 months (cells and wiring)

Implementação de Circuitos Digitais Produzir o nosso próprio CI (2b) Standard Cell Exemplo do mapeamento de um meio somador Half-adder equations: S = a’b + ab’  Soma = a XOR b CO = ab  CarryOut = a AND b Ferramentas de CAD bem avançadas: Roteamento e Otimização do circuito Ex.: CADENCE co = ab s = a'b + ab' G a t e a r y s c o b a'b ab' ab Número menor de portas Tamanho menor das conexões a ab a'b ab' co b s cell row cell row cell row a

Implementação de Circuitos Digitais Outra solução: TTL Exemplo: aviso do cinto de segurança (a) k p w s w I 14 I 13 I 12 I 11 I 10 I 9 I 8 s k ( a ) 74LS27 I C Converting to 3-input NOR gates p ( b ) s k w I 1 I 2 I 3 I 4 I 5 I 6 I 7 ( c ) Connecting the pins to create the desired circuit

Implementação de Circuitos Digitais Outra solução: TTL  Motorola 6800 based computer http://en.wikipedia.org/wiki/Transistor%E2%80%93transistor_logic

Dispositivos Reconfiguráveis A fabricação de CIs é cara e pode levar meses Custo inicial de fabricação elevado (milhões $$$) CIs Programáveis (Reconfiguráveis) são pré-fabricados Permite a implementação de um circuito imediatamente Simples, através do carregamento de bits no dispositivo Mais lentos/caros/consumo do que um CI customizado Pode ser comprado pronto, online e sem o custo de fabricação Mais popular  FPGA “Field-programmable gate array” Desenvolvido no fim dos anos 80 Não possui gate-arrays Nome originado da popularidade dos gate-arrays Permite a implementação de um circuito em segundos FPGAs

Dispositivos Reconfiguráveis Outras tecnologias PLD – (Programmable Logic Device) 1970 (anterior ao FPGA) CIs pré-fabricados estruturas de portas AND ou OR Conexões programáveis Customiza o circuito Exemplo Implementa funções: até 3 entradas até 3 termos F = abc + a'bc' + a'b'c' F PLD I C c b a programmable nodes

Dispositivos Reconfiguráveis PLD – Variações Fused ou Anti-fused Baseado em memória O1 PLD I C 3 2 1 programmable nodes p r o g r ammable node Fuse based ( a ) F use "unbl o wn" fuse "bl o wn" fuse Memory based mem mem 1 ( b )

Dispositivos Reconfiguráveis Extensões do PLD Duas saídas Registradores nas saídas CPLD (Complex PLD) I 3 2 1 ( a ) PLD C O1 O2 b FF × programmable bit clk Two-output PLD PLD with programmable registered outputs

FPGAs Idéia básica: Memória implementa lógica combinacional Mem. 4x1  1 função lógica Mem. 4x2  2 funções lógicas (mesmas entradas) Memória = LUT (Look-Up Table) F = x'y' + xy ( d ) F = x'y' + xy G = xy' x 1 y F G 4x 2 Mem. 10 00 01 1 2 3 rd a1 a0 x y D1 D0 F G ( e ) 4x 1 Mem. 4x 1 Mem. 1 2 3 rd a1 a0 D ( c ) x y F 1 rd 1 1 y=0 x=0 F=1 1 1 1 2 1 1 1 3 x a1 y a0 D F ( a ) ( b ) a a

FPGAs - LUTs Exemplo: Funcionamento da LUT Aviso do cinto de segurança k p s w BeltWarn ( a ) ( b ) k 1 p s w Programming (seconds) Fab 1-3 months ( c ) 8x 1 Mem. 1 D w I C 2 3 4 5 6 7 a2 a1 a0 k p s a a

FPGAs - LUTs LUTs Mais entradas? 3-entradas 4-entradas (Spartan3) +  ineficiente Mais entradas? Solução: partição em várias LUTs a a 512x 1 M em. 3x1 b b c c d d e F e 3x1 3x1 F f f 8x 1 M em. g g h h 3x1 i i ( a ) ( b ) ( c ) Partitioned among 3x1 LUTs Requires only 4 3-input LUTs (8x1 memories) – much smaller than a 9-input LUT (512x1 memory) Original 9-input circuit

FPGAs - LUTs Exemplo: Partição em várias LUTs Aviso do sinto de segurança (+estendido) Circuito com 5 entradas Somente LUTs de 3 entradas disponível (3-LUT) Sub-circuits have only 3-inputs each 8x 1 Mem. D 2 3 4 5 6 7 a2 a1 a0 k p s kps' BeltWarn Partição do circuito em LUTs k p s t d x w BeltWarn ( b ) 3 inputs 1 output x=kps' w=x+t+d x d t ( c ) 8x 1 Mem. D w 2 3 4 5 6 7 a2 a1 a0 x+t+d k p w s t d ( a ) Circuitos 5-entradas, porém, só LUTs com 3-entradas a Mapeamento em LUTs

FPGAs - Interconexão Como é feita? Exemplo anterior Interconexão Programável Matriz de chaveamento 8x 1 Mem. D 2 3 4 5 6 7 a2 a1 a0 k p s x d t w k p s t d x w BeltWarn ( b ) m0 o0 o1 i0 s0 d s1 i1 i2 i3 m1 m2 m3 2-bit memory Switch matrix 4x 1 mux FPGA (partial) 8x 2 Mem. 8x 2 Mem. 00 00 1 00 1 00 2 00 2 00 P0 3 00 3 00 P6 P1 a2 a2 4 00 4 00 P2 a1 m0 m1 o0 o1 m2 m3 Switch matrix a1 P7 P3 a0 5 00 a0 5 00 6 00 6 00 7 00 7 00 D1 D0 D1 D0 P8 P9 P4 P5 ( a )

FPGAs - Interconexão Exemplo Aviso do sinto de segurança Obs.: ignorar a entrada d k p s t d x w BeltWarn FPGA (partial) Switch matrix 8x 2 Mem. 8x 2 Mem. 00 1 1 1 m0 s1 s0 2 2 1 i0 m1 o0 i1 3 3 1 4x 1 w m2 d k a2 a2 i2 mux 4 x 4 00 m3 a1 a1 i3 p 00 o0 a0 5 a0 5 00 s m0 o1 10 6 1 m1 6 00 m2 10 7 m3 7 00 D1 D0 Switch D1 D0 matrix s1 s0 i0 i1 o1 4x 1 d i2 mux t i3 ( a ) ( b )

FPGAs – Blocos Lógicos Configuráveis CLB (Configurable Logic Blocks) LUTs implementam o circuito combinacional Circuito sequêncial ? Inclusão de um flip-flop na saída de cada LUT Configurable Logic Block CLB = (LUT + flip-flops) A saída do CLB pode vir do flip-flops ou das LUTs, diretamente Configurável FPGA CLB CLB 8x 2 Mem. 8x 2 Mem. 00 00 1 00 1 00 2 00 2 00 P0 3 00 3 00 P1 a2 a2 4 00 4 00 P2 a1 a1 00 o0 P3 a0 5 00 5 00 m0 o1 a0 00 6 00 m1 6 00 m2 7 00 m3 7 00 flip-flop CLB output D1 D0 Switch D1 D0 matrix 2x 1 1-bit CLB output configuration memory P6 P7 P8 P9 P4 P5

Conexões globais de longa distância FPGAs - Arquitetura Visão geral Centenas de milhares de CLBs e matrizes de chaveamento Conexões globais de longa distância Conexões locais Interface do CLB CLB CLB CLB SM SM CLB CLB CLB SM SM CLB CLB CLB

Comparação das Tecnologias FPGA  Protótipo de ASIC FPGA to ASIC (Anti-Fuse) Full-custom Standard cell (semicustom) Gate array (semicustom) FPGA PLD reprogrammable Quicker availability Faster performance Lower design cost Higher density Lower power Larger chip capacity Easier design More optimized

Spartan-3 FPGA Family Data Sheet (ds099) Arquitetura IOBs LVTTL, LVCMOS, GTL, LVDS... Multiplicadores DSPs CLBs BRAMs

Spartan-3 FPGA Family Data Sheet (ds099) Arquitetura CLB 4x Slices 2x SLICEM 2x SLICEL

Spartan-3 FPGA Family Data Sheet (ds099) Arquitetura CLB 4x Slices LUTs FFs Carry

Spartan-3 FPGA Family Data Sheet (ds099) Arquitetura IOBs BRAM CLB DSP 4x Slices LUTs DCMs FFs Outros: Carry PCIE, GBE...

Linguagens de Descrição de Hardware VHDL “Very High Speed Integrated Circuits” (VHSIC), início 1980 Originou como linguagem para descrever o comportamento de ASICs, definido pelo U.S Department of Defense VHDL  VHSIC Hardware Description Language Padrão IEEE em 1987 (Institute of Electrical and Electronics Engineers), revisado em 1993 Linguagem utilizada mundialmente por empresas de CAD para especificação, simulação, síntese, propriedade intelectual Outras linguagens de descrição de hardware SystemC, VERILOG, Handel-C, SDL, ISP, Esterel, …