Baixe o app para aproveitar ainda mais
Prévia do material em texto
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 2 Altera DE2 Digilent Nexys 3 Tecnologias de Lógica Digital 3 Fo n te : R ap id P ro to ty p in g o f D ig it al S ys te m s - So P C Ed it io n , 2 0 0 7 Projeto convencional Projeto moderno Projeto VLSI Tecnologias de Lógica Digital 4 Fo n te : R ap id P ro to ty p in g o f D ig it al S ys te m s - So P C Ed it io n , 2 0 0 7 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 (Electronic Design Automation) ainda oferecem suporte (ex. Altera Quartus II). 5 Projeto Convencional • Captura Esquemática – 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 7 • Captura Esquemática – Projeto com componentes SSI e MSI (CIs e placas de circuito impresso) Fo n te : D ig it al D es ig n , 2 0 0 6 , F ra n k V ah id . Projeto Convencional • Captura Esquemática e Complexidade – Problemas para projeto mais complexos. – Suporte a projeto modular e hierárquico. 8 Bus Módulos Projeto Convencional • Captura Esquemática e ASICs – Uso de captura esquemática em projeto de ASICs (application-specific integrated circuits) 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 ASICs usam HDLs (hardware description languages - linguagens de descrição de hardware). 9 Fonte: VHDL Coding and Logic Synthesis with Synopsys, 2000. Projeto com HDLs e FPGAs • Histórico • Mudança na forma de projetar circuitos • Baseado em ferramentas EDA • FPGA 10 Projeto com HDLs e 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 HDLs e 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 HDLs e 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 HDLs e FPGAs • Algumas considerações: – Evolução nos custos 14 Fo n te : T h e Si m p le A rt o f So C D es ig n . 2 0 1 1 . Projeto com HDLs e FPGAs • O aumento nos custos de projeto de chips mostram que a questão predominante se refere a escrita, teste e depuração de código. 15 Fo n te : T h e Si m p le A rt o f So C D es ig n . 2 0 1 1 . Projeto com HDLs e FPGAs • HARDWARE = SOFTWARE? 16 Fo n te : T h e Si m p le A rt o f So C D es ig n . 2 0 1 1 . Projeto com HDLs e FPGAs • Revoluções no projeto de hardware 17 Fo n te : T h e Si m p le A rt o f So C D es ig n . 2 0 1 1 . • Fluxo de projeto com FPGAs 18 Fo n te : R TL H ar d w ar e D es ig n U si n g V H D L. P o n g P. C h u , 2 0 0 6 . Projeto com HDLs e 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) Projeto com HDLs e FPGAs 19 • 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ável de conexões de blocos lógicos e de E/S. Projeto com HDLs e FPGAs 20 Projeto com HDLs e FPGAs • Arquitetura interna de FPGAs – Consiste de centenas ou milhares de CLBs e Switch Matrices (SMs) em um arranjo regular dentro do circuito integrado. 21 Projeto com HDLs e 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 HDLs e FPGAs • Arquitetura interna de CLBs: – Associação de LUTs (funções com mais variáveis). 23 Fo n te : D ig it al D es ig n , 2 0 0 6 , F ra n k V ah id . Projeto com HDLs e FPGAs • Arquitetura Interna de Switch Matrices: – Configuração também baseada em SRAM. 24 Fo n te : D ig it al D es ig n , 2 0 0 6 , F ra n k V ah id . Projeto com HDLs e FPGAs • Arquitetura interna de CLBs: – CLBs contém também flip-flops para lógica sequencial. 25 Fo n te : D ig it al D es ig n , 2 0 0 6 , F ra n k V ah id . Projeto com HDLs e FPGAs • Arquitetura interna de CLBs: – Reconfiguração dos flip-flops para lógica sequencial. 26 Fo n te : D ig it al D es ig n , 2 0 0 6 , F ra n k V ah id . Projeto com HDLs e FPGAs • Programação de FPGAs 27 Fo n te : D ig it al D es ig n , 2 0 0 6 , F ra n k V ah id . Fluxo de Projeto Moderno • Desenvolvimento de um projeto de um circuito integrado • Etapas genéricas • Baseado em HDLs 28 Fluxo de Projeto Moderno 29 Fo n te : V e ri lo g C o d in g fo r Lo g ic Sy n th e si s, 2 0 0 3 . 12 3 4 5 6 7 8 9Fluxo de Projeto Moderno • Passo 1: Especificação 30 Fo n te : V e ri lo g C o d in g fo r Lo g ic Sy n th e si s, 2 0 0 3 . 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 32 Fo n te : V e ri lo g C o d in g fo r Lo g ic Sy n th e si s, 2 0 0 3 . 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 34 Fo n te : V e ri lo g C o d in g fo r Lo g ic Sy n th e si s, 2 0 0 3 . 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 36 Fo n te : V e ri lo g C o d in g fo r Lo g ic Sy n th e si s, 2 0 0 3 . 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 38 Fo n te : V e ri lo g C o d in g fo r Lo g ic Sy n th e si s, 2 0 0 3 . 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) 40 Fo n te : V e ri lo g C o d in g fo r Lo g ic Sy n th e si s, 2 0 0 3 . 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 (critical path): 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 42 Fo n te : V e ri lo g C o d in g fo r Lo g ic Sy n th e si s, 2 0 0 3 . 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 44 Fo n te : V e ri lo g C o d in g fo r Lo g ic Sy n th e si s, 2 0 0 3 . 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 46 Fo n te : V e ri lo g C o d in g fo r Lo g ic Sy n th e si s, 2 0 0 3 . 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 49 Fo n te : V e ri lo g C o d in g fo r Lo g ic Sy n th e si s, 2 0 0 3 . 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 53 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; Codificação em HDLs • Descrição Estrutural – Estrutural = blocos conectados – Definição dos componentes que compõem o sistema – Detalhamento das conexões entre os componentes – Exemplo: latch SR 54 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; 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-flops e 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
Compartilhar