Projeto Moderno de Sistemas Digitais Edson Midorikawa 1 Tópicos Projeto Convencional Projeto com HDLs e FPGAs Fluxo de Projeto Moderno Codificação em HDLs Altera DE2 Digilent Nexys 3 2
Tecnologias de Lógica Digital Projeto convencional Projeto moderno Projeto VLSI Fonte: Rapid Prototyping of Digital Systems - SoPC Edition, 2007 3 Tecnologias de Lógica Digital Fonte: Rapid Prototyping of Digital Systems - SoPC Edition, 2007 4
Projeto Convencional Captura Esquemática Uso de blocos padrão para projeto digital. Baseado em portas lógicas e outros componentes MSI e SSI. Bastante usado até início da década de 90. Muitos softwares EDA (ElectronicDesign Automation) ainda oferecem suporte (ex. Altera Quartus II). 5 Captura Esquemática Projeto Convencional Crítica: uso de blocos padrão pode ser um inconveniente. Exemplo: projeto de contador de 5 ou 12 bits Os blocos padrão para contadores TTL são de 4 ou 8 bits. Solução: subutilização ou cascateamento de contadores. LEGO 6
Projeto Convencional Captura Esquemática Projeto com componentes SSI e MSI (CIs e placas de circuito impresso) Fonte: Digital Design, 2006, Frank Vahid. 7 Projeto Convencional Captura Esquemática e Complexidade Problemas para projeto mais complexos. Suporte a projeto modular e hierárquico. Módulos Bus 8
Projeto Convencional Captura Esquemática e ASICs Uso de captura esquemática em projeto de ASICs (application-specificintegratedcircuits) foi amplo até a década de 80. Com o aumento do tamanho (número de portas lógicas equivalente) e complexidade, a captura esquemática se tornou mais um obstáculo do que uma ferramenta para auxílio ao projeto de CIs. Atualmente projetos de ASICsusam HDLs(hardware descriptionlanguages-linguagens de descrição de hardware). Fonte: VHDL Coding and Logic Synthesis with Synopsys, 2000. 9 Projeto com HDLse FPGAs Histórico Mudança na forma de projetar circuitos Baseado em ferramentas EDA FPGA 10
Projeto com HDLse FPGAs Histórico Cerca de 1977: primeiras linguagens de descrição de hardware ISP (Instruction Set Processor) - Carnegie Mellon University KARL - University of Kaiserslautern, Alemanha. Uso inicial na simulação de circuitos Outros: 1983: ABEL 1985: Verilog 1987: VHDL VHDL: Proposta do DoD para especificação de projetos de hardware. Uso para simulação lógica das propostas. Posteriormente usado para síntese de circuitos. 11 Projeto com HDLse FPGAs Mudança na forma de projetar circuitos Com o aumento na complexidade de circuitos digitais, não é mais possível ter um único projetista com a visão global do projeto. Desenvolvimento organizado em grupos de projeto: Divisão em módulos distintos; Grupos de projetistas; Uso de ferramentas de projeto; Teste e integração de módulos a partir de especificações. Uso de linguagens específicas: HDL (hardware description language): p.ex: VHDL e Verilog; SDL (system description language): p.ex: SystemC. 12
Projeto com HDLse FPGAs Baseado em ferramentas EDA Suporte de ferramentas de projeto: Síntese de circuitos (p.ex. biblioteca de módulos, padrões de projeto) Simulação (verificação da lógica, restrições de tempo) Exemplos: Altera Quartus II Xilinx ISE Design Suite ModelSim da Mentor Graphics Empresas de EDA (fonte: Wikipedia): $3.85 billion- Synopsys $2.80 billion- Cadence $1.49 billion- Mentor Graphics $506 million- Magma Design Automation 13.22 billion- Zuken Inc. 13 Projeto com HDLse FPGAs Algumas considerações: Evolução nos custos Fonte: The Simple Art of SoCDesign. 2011. 14
Projeto com HDLse FPGAs O aumento nos custos de projeto de chipsmostram que a questão predominante se refere a escrita, teste e depuração de código. Fonte: The Simple Art of SoCDesign. 2011. 15 Projeto com HDLse FPGAs HARDWARE = SOFTWARE? Fonte: The Simple Art of SoCDesign. 2011. 16
Projeto com HDLse FPGAs Revoluções no projeto de hardware Fonte: The Simple Art of SoCDesign. 2011. 17 Projeto com HDLse FPGAs Fluxo de projeto com FPGAs Fonte: RTL Hardware Design Using VHDL. Pong P. Chu, 2006. 18
Projeto com HDLse FPGAs FPGA (Field-Programmable Gate Array) Dispositivo programável no campo (após a fabricação) Contém alguns milhões de transistores conectados para realizar funções lógicas. Especificado usando HDLs, como SoCs, ASIPs e ASICs. Primariamente contém apenas componentes digitais. Outros tipos: Mixed signal FPGAs Field-programmable analog array(fpaa) 19 Projeto com HDLse FPGAs FPGA (Field-Programmable Gate Array) Desenvolvido em 1985 pela Xilinx. Arquitetura interna: CLB(Combinational Logic Block): elementos lógicos. IOB(Input/Output Block): interfaceamento(buffers) com pinos de E/S. Switch Matrix (chaves de interconexões): estrutura reconfigurávelde conexões de blocos lógicos e de E/S. 20
Projeto com HDLse FPGAs Arquitetura interna de FPGAs Consiste de centenas ou milhares de CLBse Switch Matrices (SMs) em um arranjo regular dentro do circuito integrado. 21 Projeto com HDLse FPGAs Arquitetura interna de CLBs: Lógica programável com LUTs(look-up tables). Reconfigurabilidade baseada em SRAMs. Exemplo: função com duas variáveis =. +. configuração consiste no armazenamento de bits de configuração em memória específica. 22
Projeto com HDLse FPGAs Arquitetura interna de CLBs: Associação de LUTs(funções com mais variáveis). Fonte: Digital Design, 2006, Frank Vahid. 23 Projeto com HDLse FPGAs Arquitetura Interna de Switch Matrices: Configuração também baseada em SRAM. Fonte: Digital Design, 2006, Frank Vahid. 24
Projeto com HDLse FPGAs Arquitetura interna de CLBs: CLBs contém também flip-flops para lógica sequencial. Fonte: Digital Design, 2006, Frank Vahid. 25 Projeto com HDLse FPGAs Arquitetura interna de CLBs: Reconfiguração dos flip-flops para lógica sequencial. Fonte: Digital Design, 2006, Frank Vahid. 26
Projeto com HDLse FPGAs Programação de FPGAs Fonte: Digital Design, 2006, Frank Vahid. 27 Fluxo de Projeto Moderno Desenvolvimento de um projeto de um circuito integrado Etapas genéricas Baseado em HDLs 28
Fluxo de Projeto Moderno 2 1 5 3 4 6 8 7 9 Fonte: Verilog Coding for Logic Synthesis, 2003. 29 Fluxo de Projeto Moderno Passo 1: Especificação Fonte: Verilog Coding for Logic Synthesis, 2003. 30
Fluxo de Projeto Moderno Passo 1: Especificação Parte mais importante do fluxo de projeto Definição das características e funcionalidades Desenvolvimento da especificação em VHDL (descrição comportamental) 31 Fluxo de Projeto Moderno Passo 2: Codificação RTL Fonte: Verilog Coding for Logic Synthesis, 2003. 32
Fluxo de Projeto Moderno Passo 2: Codificação RTL Início da fase de projeto Desenvolvimento da arquitetura a partir da especificação RTL = register transfer level Descrição do circuito como uma combinação de blocos combinatórios e registradores Implementação do projeto com a codificação em código RTL sintetizável 33 Fluxo de Projeto Moderno Passo 3: Testbench e Simulação Fonte: Verilog Coding for Logic Synthesis, 2003. 34
Fluxo de Projeto Moderno Passo 3: Testbench e Simulação Simulação do código RTL para verificação (funcional) Testbench= ambiente para simulação, incorporando a geração de estímulos e verificação dos resultados (formas de onda ou asserções) Se for detectado um erro no código VHDL, o projeto deve ser debugado e resimulado. 35 Fluxo de Projeto Moderno Passo 4: Síntese Fonte: Verilog Coding for Logic Synthesis, 2003. 36
Fluxo de Projeto Moderno Passo 4: Síntese Síntese do projeto = conversão do código RTL em portas lógicas A lógica sintetizada deve ter as mesmas funcionalidades lógicas do código RTL Entradas: Código RTL Definição da tecnologia (p.ex. standard cells) Restrições de projeto (p.ex. timing, requisitos de carga) Otimizações possíveis: Área, consumo de energia, velocidade 37 Fluxo de Projeto Moderno Passo 5: Análise Temporal Pré-layout Fonte: Verilog Coding for Logic Synthesis, 2003. 38
Fluxo de Projeto Moderno Passo 5: Análise Temporal Pré-layout Análise estática de tempos do projeto sintetizado Pré-layout= sem informação da geometria e alocação no chip Exemplo de análise: Violação de tempos de setup(preparação) e hold(manutenção) Correção: inserção de blocos de atraso 39 Fluxo de Projeto Moderno Passo 6: APR (auto-place-route) Fonte: Verilog Coding for Logic Synthesis, 2003. 40
Fluxo de Projeto Moderno Passo 6: APR (auto-place-route) Portas lógicas do projeto sintetizado são alocadas e roteadas no circuito integrado. Caminho crítico (criticalpath): devem ser consideradas como de alta prioridade no processo de alocação e roteamento. Inclui também a síntese da árvore de clock. Deve minimizar problemas de clock skew. 41 Fluxo de Projeto Moderno Passo 7: Back annotation Fonte: Verilog Coding for Logic Synthesis, 2003. 42
Fluxo de Projeto Moderno Passo 7: Back annotation Extração de características elétricas (RC parasitics) a partir do layout do circuito integrado. O atraso de propagação de uma linha de interconexão pode ser calculado a partir destas características elétricas. Linhas longas = atrasos grandes de propagação Etapa importante que antecede a análise de tempos final do circuito integrado (layout final). Análises das etapas anteriores eram baseadas em estimativas não precisas de atrasos. 43 Fluxo de Projeto Moderno Passo 8: Análise Temporal Pós-layout Fonte: Verilog Coding for Logic Synthesis, 2003. 44
Fluxo de Projeto Moderno Passo 8: Análise Temporal Pós-layout Verificação de violações de tempo reais com a inclusão de informação do layout físico do circuito integrado. Informação de atrasos da rede de interconexão provenientes da etapa de back annotation é usada nesta análise. Se houver alguma violação de requisitos, deve-se redefinir a etapa de alocação e roteamento dos componentes (repetição dos passos até que os requisitos sejam alcançados). 45 Fluxo de Projeto Moderno Passo 9: Verificação Lógica Fonte: Verilog Coding for Logic Synthesis, 2003. 46
Fluxo de Projeto Moderno Passo 9: Verificação Lógica Última verificação do projeto para analisar o correto funcionamento do circuito Usa os mesmos arquivos de teste do passo 3 (testbenches). Resimulação considerando os tempos de atraso reais. 47 Codificação em HDLs Estilos de codificação em HDL: Comportamental Fluxo de dados Estrutural RTL 48
Codificação em HDLs Fonte: Verilog Coding for Logic Synthesis, 2003. 49 50
Codificação em HDLs Descrição Comportamental Visão caixa preta do sistema em desenvolvimento Uso no teste no nível de sistema algoritmo interno comandos sequenciais 51 52
Codificação em HDLs Descrição em Fluxo de Dados Descrição de como as entradas e saídas estão conectadas usando componentes primitivos (p.ex. portas),ou seja, como dos sinais (dados) fluem pelo circuito. Uso de comandos concorrentes. Exemplo: latch SR entity latch is port (s,r : in bit; q,nq : out bit); end latch; architecture dataflow of latch is begin q <= r nor nq; nq <= s nor q; end dataflow; 53 Descrição Estrutural Codificação em HDLs Estrutural = blocos conectados Definição dos componentes que compõem o sistema Detalhamento das conexões entre os componentes Exemplo: latch SR architecture structure of latch is component nor_gate port (a,b: in bit; c: out bit); end component; begin n1: nor_gate port map (r,nq,q); n2: nor_gate port map (s,q,nq); end structure; 54
Codificação em HDLs Descrição RTL (Register Transfer Level) Usado na síntese de circuitos Subconjunto da linguagem VHDL IEEE Std 1076.6 - IEEE Standard for VHDL Register Transfer Level(RTL) Synthesis 55 Próximo Módulo Módulo II: Projeto de Circuitos Digitais com VHDL Alguns elementos de linguagem Descrição de circuitos combinatórios Introdução aos circuitos sequenciais (flip-flopse registradores) Pequenos exemplos Hands-on com Altera Quartus II Criação de projetos Compilação Simulação 56
Próximo Módulo Módulo II: Projeto de Circuitos Digitais com VHDL Preparação: Leitura da documentação da Altera 1. Quartus II Introduction using VHDL Designs ftp://ftp.altera.com/up/pub/altera_material/9.1/tutorials/vhdl/quartus_ii_introduction.pdf 2. Quartus II Simulation using VHDL Designs ftp://ftp.altera.com/up/pub/altera_material/9.1/tutorials/vhdl/quartus_ii_simulation.pdf 57