CMP 238 Projeto e Teste de um Sistema VLSI Definição Sistemas Digitais e espaço de projeto Metodologia de Projeto Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008
Sistemas Embarcados -> > Sistemas Digitais Definição Estudo e comparação de projeto ASIC vs. FPGA Projeto de sistema digital dedicado em VHDL para sintese em ASIC/FPGA ASIC / FPGA Como descrever um processador em VHDL (memoria, datapath, controle) síntese FPGA e ASIC Implementação de software em processador embarcado com comunicação com hardware dedicado Descrição de memoria em VHDL e uso de BRAMs em FPGA Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 2
Primeira fase: Modelar o Sistema A modelagem é uma maneira de representar as informações importantes de um sistema. Um sistema pode ter diversos modelos para ele. A modelagem é util para a verificação funcional, estimativas de custo na implementação e projeto do teste. Motivações para a modelagem de sistemas: - Abstrair o comportamento de um sistema digital dando flexibilidade de implementação. 2 Ajudar a comunicação do usuário com a funcionalidade do sistema 3 Permitir o teste e verificação por meio de simulação 4 Verificação formal por equações matemáticas que provem que o sistema funciona para determinadas regras de funcionamento. Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 3
Níveis de Abstração de Sistemas VLSI Nível Sistêmico Nível Arquitetural ou Algoritmico Projeto Nível de transferencia entre registradores (micro-arquitetural arquitetural) Nível lógico ou de portas Nivel elétrico ou de transistores Verificação Nivel de leiatue Nivel de máscaras Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 4
Eixo Comportamental Sistêmico Algorítmico Micro arquitetural Lógico Eixo Estrutural idéia Elétrico Mais abstração Circuito Real (fabricado) Eixo Geométrico Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 5
Eixo Comportamental Especificações funcionais Algoritmos Máquinas de estado finitas, operações Equações booleanas, tabelas verdade, BDDs Sistêmico Algorítmico Micro arquitetural Lógico Elétrico Eixo Estrutural processadores, memórias, barramentos módulos de hardware registradores, multiplexadores, operadores Portas lógicas, flip-flops Funções de transferência, equações diferenciais Transistores, resistores, capacitores, indutores Leiaute das máscaras, retângulos, polígonos Células de biblioteca, modelos de posição de pinos Macro-células, planta baixa de blocos Módulos, clusters, cores, planos de clock/alimentação Partições físicas, componentes, placas Eixo Geométrico Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 6
Eixo Comportamental C, C++, Hardware C Java Sistêmico Algorítmico Eixo Estrutural Especificações funcionais Algoritmos Máquinas de estado finitas, operações Equações booleanas, tabelas verdade, BDDs Micro arquitetural VHDL Lógico Elétrico processadores, memórias, barramentos módulos de hardware registradores, multiplexadores, operadores Portas lógicas, flip-flops Funções de transferência, equações diferenciais Spice CIF, GDS2 LEF / DEF Transistores, resistores, capacitores, indutores EDIF Leiaute das máscaras, retângulos, polígonos Células de biblioteca, modelos de posição de pinos Macro-células, planta baixa de blocos Módulos, clusters, cores, planos de clock/alimentação Partições físicas, componentes, placas Eixo Geométrico Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 7
Eixo Comportamental Especificações funcionais Algoritmos Máquinas de estado finitas, operações Equações booleanas, tabelas verdade, BDDs Sistêmico Algorítmico Micro arquitetural - síntese Lógico Elétrico Eixo Estrutural processadores, memórias, barramentos módulos de hardware registradores, multiplexadores, operadores 2- simulação Portas lógicas, flip-flops Funções de transferência, equações diferenciais 5- fabricação 4- place&route Transistores, resistores, capacitores, indutores 3- mapeamento Leiaute das máscaras, retângulos, polígonos Células de biblioteca, modelos de posição de pinos Macro-células, planta baixa de blocos Módulos, clusters, cores, planos de clock/alimentação Partições físicas, componentes, placas Eixo Geométrico Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 8
Níveis de Abstração e Síntese Architectural level Logic level Circuit level Layout level Behavioral level For I=0 to I=5 Sum = Sum + array[i] 0 State 0 0 0 Architecture synthesis Logic synthesis Circuit synthesis Layout synthesis Structural level Memory Control + (register level) Clk (Library) Compilação para silicio (não é um grande sucesso) Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 9
- Sobreposição de fases no projeto para atingir time-to to-market - Mudanças paralelas em multiplos níveis e em multiplas equipes Esforço RTL Lógico Transistor Sistêmico Tempo de Projeto Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 0
Projeto de Sistemas Digitais Devido a alta complexidade dos sistemas digitais atuais, faz-se necessário a adoção de uma sistemática metodologia de projeto. Metodologia de projeto são sequências de transformações que partem de uma descrição ou especificação inicial até chegar a uma descrição validada desse sistema para o processo de fabricação. Nível de fabricação pode ser máscaras no caso de circuitos integrados de aplicação especifica ou bitstream no caso de FPGAs. Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008
Projeto de Sistemas Digitais As transformações podem ser de duas naturezas: Transformações de síntese Transformações de validação Não válida válida Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 2
Sistemas Digitais Projeto Aboradagem Descendente: decompõe o sistema em subsistemas que são por sua vez decompostos em subsistemas até atingir o níve de abtração desejado. Desafio: obter a decomposição adequada para cada nível para que no final os critérios de projeto (área, desempenho, potência) sejam atingidos. Descrição funcional Linguagens de descrição de hardware Módulos Abordagem Ascendente: conecta módulos disponíveis para formar subsistemas que por sua vez são conectados para formar subsistemas até que a especificação funcional seja satisfeita. Desafio: trabalhar com um conjunto muito grande de subsistemas pequenos para compor um sistema muito complexo. Layout Portas lógicas básicas e flip-flops transistores Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 3
Sistemas Digitais Projeto: Arbodagem Descendente Projeto de Sistemas Digitais usando fluxogramas, grafos, máquinas de estados e diagrama de blocos Descrição funcional Descrever o projeto em linguagens de descrição de hardware como por exemplo VHDL Usar ferramentas de síntese lógica para bibliotecas de células como o Leonardo da Mentor Usar ferramentas de síntese lógica para plataformas programaveis como FPGAs (Xilinx ISE, Altera Quartus, Actel Libero). Módulos Portas lógicas básicas e flip-flops transistores Verificar funcionalmente através de simulação lógica com e sem atraso. Layout Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 4
Sistemas Digitais Projeto: Arbodagem Ascendente Projeto de somadores, multiplicadores e outros subsistemas combinacionais e sequenciais de alta eficiência em termos de área, desempenho e potência para uso em sistemas digitais complexos. Descrição funcional Módulos Descrever o projeto em linguagens de descrição de hardware como por exemplo VHDL ou em esquemático Portas lógicas básicas e flip-flops Verificar funcionalmente através de simulação lógica com e sem atraso. transistores Verificar elétricamente através de simulação elétrica (SPICE) Layout Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 5
Tipos de componentes Circuito de aplicação específica (ASIC): circuito integrado projetado especialmente para uma determinada função e sistema digital. Full-custom semi-custom Standard cell Chip Lógica programável (FPGAs): circuito que pode ser customizado e reprogramado para realizar diversas funções. Compromisso: Custo X tempo de projeto X desempenho Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 6
Projeto de Sistemas Digitais Sintaxe e a Semântica das descrições de entrada e saída 2 Um conjunto de algoritmos para a tradução das descrições de entrada em descrições de saída 3 Um conjunto de componentes para ser usado na implementação 4 Definição e intervalo das restrições do projeto 5 Os mecanismos de seleção do estilo de projeto, arquitetura, topologia e componentes. 6 Estratégias de controle (ordem em que as tarefas são executadas). Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 7
000000 Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 8
Parâmetros de Projeto Desempenho: velocidade, potência, funcionalidade e flexibilidade Custo de manufatura: tamanho do die (área), tecnologia a ser fabricada (ASIC), ou arquitetura programável (FPGA). Tempo de projeto: custo do engenheiro, agenda Testabilidade: geração de teste, teste on-line, off line, etc Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 9
Desafios de Projeto Decisões sobre os aspectos de projeto são muito dificeis: Compromisso entre desempenho, custo e time-to-market (tempo para chegar ao mercado). Decisões devem ser feitas com 2 a 3 anos de antecedencia. Os aspectos de projeto são difíceis de medir sem fazer o projeto realmente. Ciclo do produto. Verificação funcional A simulação ainda é o veiculo principal para a verificação funcional mas é inadequada por causa do tamanho de projeto. Bugs em hardware são muito difíceis de se recuperar e muito caros (não é como em software). Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 20
Desafios de Projeto Principais diferenças entre os níveis de abstração: Modelagem detalhada e tamanho da equipe para manter o modelo: Modelos de alto-nível podem ser mantidos por ou 2 pessoas. Modelos detalhados devem ser particionados o que resulta no aumento em comunicação. Modelagem precisa versus modelagem compacta Modelos compactos omitem detalhes e mostram apenas estimações de implementação. Modelos detalhados são extensos e dificil de adaptar em mudanças grandes de projeto. Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 2
Desafios de Projeto Velocidade de simulação versus desempenho do hardware Modelos de alto-nível podem ser simulados mais rapidamente mas não podem ser implementados tão facilmente automaticamente. Modelos de baixo nível podem ser feitos para ter uma rápida implementação mas não podem ser simulados rapidamente. Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 22
Ferramentas de Automação de Projeto Soluções para Projeto: aumentar equipes (+custo e -controle) Systems-on-Chip (SOCs) = Reusabilidade SOC e configurabilidade Reusability portability flexibility Soft core Firm core Hard core ou FPGA=SOC processador memoria Predictability, performance, time to market Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 23
Metodologias de Projeto Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008
ASIC Application Specific Integrated Circuits Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 25
Full custom Geometria desenhada a mão Todas as camadas de layout são customizadas Digital e analógico Simulação a nivel de transistor Alta densidade Alto desempenho Longo tempo de projeto IN Vdd Gnd Out Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 26
Standard cells Células padrões organizadas em linhas (and, or, flip-flops,etc.) Células são feitas em full custom pelo vendedor (não o usuário). Todos os níveis são customizaveis Digital com possibilidade de algumas células analógicas. Simulação digital a nível de portas lógicas (digital) Media para alta densidade Medio para alto desempenho Razoavel tempo de projeto Routing Cell IO cell Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 27
Níveis de Abstração de Sistemas VLSI em ASIC Nível Sistêmico Nível Arquitetural ou Algoritmico Projeto Nível de transferencia entre registradores (micro-arquitetural arquitetural) Nível lógico ou de portas Nivel elétrico ou de transistores Verificação Nivel de leiatue Nivel de máscaras Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 28
Exemplo de Projeto ASIC Projeto de um circuito integrado a partir de uma descrição: VHDL Esquemático Circuito integrado implementado em Standard Cell (conjunto de células lógicas de uma biblioteca) Biblioteca da AMS, por exemplo Biblioteca do usuário Passos: Projeto das células da biblioteca CMOS Sintese de um projeto VLSI nas biblioteca de células CMOS Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 29
2 Exemplos de Ferramentas de Síntese Mentor Cadence Synopsis E outras... Compilação Mapeamento Posicionamento Roteamento Leiaute Simulação e verificação Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 30
Circuitos Programáveis Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 3
Diferenças entre CPLD x FPGA Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 32
Estruturas do FPGA Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 33
FPGA Actel Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 34
Tecnologia Anti-fusivel Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 35
Logic Elements of Actel Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 36
Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 37 ACTEL: RTAX ACTEL: RTAX-S device S device RAM CT RAM RAM RAM RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RAMC RD RD RD RD RD RD RD RD RD RD RD RD RD RD RD RD RD RD RD RD RD RD RD RD RD RD RD HD HD HD HD HD HD HD HD HD HD HD HD HD [Actel, RTAX-S RadTolerant FPGAs 2007] C R RX TX RX TX RX TX RX TX B C C C R Super Cluster
ACTEL: RTAX-S S device C C R C-CELL C-CELL R-CELL D0 D2 DB A0 A Y D D3 B0 B CFN FCI 0 0 0 0 0 D0 D2 DB A0 A FCO Y D D3 B0 B CFN 0 0 0 0 0 0 Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 38
Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 39
Tecnologia EPROM e EEPROM Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 40
FPAG from Altera Família Número de Gates Programação MAX5000 600 a 3,7K EEPROM MAX7000 600 a 5K EEPROM MAX9000 6K a 2K EEPROM FLEX6000 5K a 24K SRAM FLEX8000 2,5K a 6K SRAM FLEX0K 0K a 250K SRAM FLEX20K 53K a 000K SRAM Mercury 20k a 350k SRAM Apex 700k a 2M SRAM ApexII.9M a 5.2M SRAM Ciclone SRAM Stratix 0k a 40k LE SRAM MAX SRAM Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 4
Bloco Lógico do PLD MAX7000 Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 42
Field Programmable Gate Array FPGAs comerciais Altera FLEX 0K Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 43
Field Programmable Gate Array FPGAs comerciais Altera FLEX 0K Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 44
Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 45
Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 46
Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 47
Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 48
Stradix II Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 49
Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 50
Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 5
Tecnologia SRAM Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 52
Field Programmable Gate Arrays FPGAs comerciais Xilinx A empresa Xilinx foi fundada em 984 em San José (Califórnia, USA) e foi ela que introduziu o FPGA. Hoje em dia, esta empresa domina cerca de 50 % do mercado em FPGAs. Família Número de Portas Característica XC2000,2K a,8k - XC3000 2K a 9K Low-power XC4000E 2K a 20K Low-power XC4000XL/XLA 0K a 200K High-density XC4000XV 75K a 500K High-density XC5200 3 K a 23K Low-power SPARTAN/XL 2K a 40K Low-power VIRTEX 50K a M High-density SPARTAN-2 SPARTAN-3 VIRTEXII VIRTEXII-PRO k a 5k 2k a 33k 40k a 8 M Power-PC inside LOW COST LOW COST High density VIRTEX4 3K a 200K Low-power VIRTEX4-FX VIRTEX5 Power-PC inside 220nm 30nm 90nm 65 nm Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 53
Technology Scaling in Xilinx FPGAs Nanometer technologies Embedded Hard microprocessor Embedded memories (BRAM) Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 54
Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 55
Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 56
A informação é customizada por um vetor de bits chamado de BITSTREAM (set of SRAM bits) Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 57
Xilinx XC4000 Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 58
Logic Mapping in SRAM-based FPGAs VHDL / Verilog Descriptions ASIC E E2 E3 E E2 clk E E3 E2 E3 clk FPGA slice BlockRAM F F2 F3 F4 LUT M ff M M M M M M M Configuration Memory Cell SEU (Bit flip) Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 59
Xilinx XC4000 Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 60
Logic Element: Basic XC4000 Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 6
General Routing Matrix (GRM) Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 62
Field Programmable Gate Arrays FPGAs comerciais Xilinx CLB Virtex Family from Xilinx, Inc. PLL Segmented routing CLB single lines Pass-transistor 66 MHz PCI SSTL3 M hex lines SelectI/O Pins hex lines Vector Based Interconnect delay=f(vector) Block SelectRAM Memory single lines Distributed SelectRAM Memory single lines single lines Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 63
General Routing Matrix (GRM) - VirtexII Direct lines Long lines CLB CLB CLB CLB CLB CLB CLB Hex connections CLB Hex lines CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB Direct connections Fast connect Double lines CLB CLB CLB Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 64
Xilinx VirtexII - CLB Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 65
Virtex Carry Select Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 66
CLB Evolution 6-LUT 4-LUT ffp 6-LUT ffp Slice0 Slice 4-LUT ffp 6-LUT 6-LUT ffp Switch Matrix Virtex More complex logic in a same slice and CLB (reduction in the logic level) Slice0 Switch Matrix Slice Hex Long Single More complex routing matrix to reduce the routing Virtex-4 switch level Virtex-II Long Direct Double Hex Virtex-5 Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 67
Virtex 5: CLB Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 68
BRAM Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 69
VirtexII-Pro Platform Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 70
Embedded Processor Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 7
Microblaze (soft core) Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 72
VirtexII-Pro Board Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 73
Reconfigurable Computing Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 74
Presented by Trimberger (FPL, 2007) Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 75
Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 76
Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 77
Disciplina: CMP238 Profa. Dra. Fernanda Gusmão de Lima Kastensmidt 2008 78