Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sistemas Digitais Aula 02B – Introdução aos Sistemas Digitais Prof. Dr. Gleison Elias da Silva 1 Análise e Desenvolvimento de Sistemas Indice Grandezas Analógicas e Digitais Dígitos Binários, Níveis Lógicos e Formas de Onda Digitais Operações Lógicas Básicas Visão Geral das Funções Lógicas Básicas Circuitos Integrados de Funções Fixas Introdução à Logica Programável Instrumentos de Medição e Teste 2 Resultados de aprendizagem 3 Explicar as diferenças básicas entre grandezas analógicas e digitais Mostrar como os níveis de tensão são usados para representar grandezas digitais Descrever os diversos parâmetros da forma de onda de um pulso tais como tempo de subida, tempo de descida, largura de pulso, frequência, período e ciclo de trabalho Explicar as operações lógicas básicas AND, OR e NOT Descrever as funções lógicas dos circuitos comparador, somador, conversor de código, codificador, decodificador, multiplexador, demultiplexador, contador e registrador Identificar circuitos integrados digitais de funções fixas, de acordo com a complexidade deles, e os tipos de encapsulamentos de CI Resultados de aprendizagem 4 Identificar a numeração de pinos nos encapsulamentos dos circuitos integrados Descrever a lógica de programação, discutir os diversos tipos e descrever como são programados os PLD Reconhecer os diversos instrumentos e compreender como eles são usados em medições e análise de defeito em sistemas e circuitos digitais Mostrar como um sistema digital completo é formado combinando as funções básicas em aplicações práticas. Um circuito integrado (CI) monolítico é um circuito eletrônico construído totalmente em um único e pequeno chip de silício. Todos os componentes que formam o circuito eletrônico (transistores, diodos, resistores e capacitores) são partes integrais de um único chip. Os CI digitais podem ser divididos em duas grandes categorias: Funções lógicas fixas; Funções lógicas programáveis. 5 Circuitos integrados Vista em corte de um tipo de encapsulamento de CI de função fixa Os encapsulamentos de circuitos integrados são classificados de acordo com a forma com que eles são montados nas placas de circuito impresso como: Dispositivos com pinos que passam através de furos (PTH, Plated-Through Hole ou Pin Through Hole) na placa; Dispositivos montados na superfície (SMD, Surface Mounted-Device) da placa. 6 Encapsulamentos de CI Dispositivo PTH Dispositivo SMD No tipo PTH os pinos (terminais) são inseridos em furos na placa de circuito impresso e podem ser soldados a condutores (trilhas na placa) no lado oposto da placa. No tipo SMD os pinos nos encapsulamentos são soldados diretamente às trilhas na placa, deixando o outro lado livre para circuitos adicionais. Além disso, para um circuito com o mesmo número de pinos, o encapsulamento de um SMD é muito menor que um DIP porque os pinos estão mais próximos um do outro. 7 Encapsulamentos de CI O tipo mais comum de encapsulamento PTH é: DIP ou DIL (Dual In-line Package): encapsulamento no qual os pinos estão dispostos em duas linhas paralelas. 8 Encapsulamentos de CI Dispositivos DIP Encapsulamentos PTH Imagem: E. Kamara, 2013 Tipos comuns de encapsulamentos com tecnologia de montagem em superfície (SMT, Surface Mount Tecnology): SOIC (Small-Outline Integrated Circuit); PLCC (Plastic Lead Chip Carrier); LCCC (Leadless Ceramic Chip Carrier). 9 Encapsulamentos de CI Outros exemplos de encapsulamentos SMT: SSOP (Shrink Small-Outline Package); TSSOP (Thin Shrink Small-Outline Package); TVSOP (Thin Very Small-Outline Package); BGA (Ball Grid Array). 10 Encapsulamentos de CI Encapsulamentos SMD Imagem: E. Kamara, 2013 BGA chip Observando a parte superior do encapsulamento, o pino 1 está indicado por um identificador que pode ser um pequeno ponto, um entalhe ou uma borda chanfrada. O ponto está sempre próximo ao pino 1. 11 Numeração dos pinos do CI Além disso, com o entalhe orientado para cima, o pino 1 é sempre o pino superior esquerdo, conforme indicado. Classificações de complexidade para CI de funções fixas Integração em pequena escala (SSI, Small-Scale Integration) descreve os CI de função fixa que têm até 12 circuitos de portas equivalentes em um único chip e eles incluem portas básicas e flip-flops. Integração em escala média (MSI, Medium-Scale Integration) descreve os circuitos integrados que têm de 13 a 99 portas equivalentes num chip. Eles incluem funções lógicas tais como codificadores, decodificadores, contadores, registradores, multiplexadores, circuitos aritméticos, memórias de pequena capacidade entre outros circuitos. 12 Classificações de complexidade Classificações de complexidade para CI de funções fixas Integração em escala ampla (LSI, Large-Scale Integration) é uma classificação de CI com complexidades de 100 a 9.999 portas equivalentes por chip, que incluem memórias. Integração em escala muito ampla (VLSI, Very Large-Scale Integration) descreve circuitos integrados com complexidades de 10.000 a 99.999 portas equivalentes por chip. Integração em escala ultra ampla (ULSI – Ultra Large-Scale Integration) descreve memórias e microprocessadores de grandes capacidades e computadores de pastilha única. Complexidades maiores que 100.000 portas equivalentes por chip são classificados como ULSI. 13 Classificações de complexidade Classificações de complexidade para CI de funções fixas 14 Classificações de complexidade Sigla Significado Ano Número de Transistores Número de portas lógicas SSI Small-Scale Integration 1964 1 a 10 1 a 12 MSI Medium-Scale Integration 1968 10 a 500 13 a 99 LSI Large-Scale Integration 1971 500 a 20.000 100 a 9.999 VLSI Very Large-Scale Integration 1980 20.000 a 1.000.000 10.000 a 99.999 ULSI Ultra-Large-Scale Integration 1984 1.000.000 ou mais 100.000 ou mais 15 Tecnologia de Circuitos Integrados Os tipos de transistores com os quais os circuitos integrados são implementados são: BJT (Bipolar-Junction Transistors) ou transistores de junção bipolar; MOSFET (Metal-Oxide Semiconductor Field-Effect Transistors). Perfil de dopantes de transistores BJT e CMOS 16 Tecnologia de Circuitos Integrados Uma tecnologia de circuitos que usa MOSFET é a CMOS (Complementary Metal-Oxide Semiconductor). Perfil de dopantes de um CMOS Inversor CMOS 17 Tecnologia de Circuitos Integrados Um tipo de tecnologia de circuito digital de função fixa que usa BJT é a TTL (Transistor-Transistor Logic). Inversor TTL Perfil de dopantes de um BJT 18 Tecnologia de Circuitos Integrados A BiCMOS usa a combinação de CMOS e TTL. Perfil de dopantes de um BiCMOS Imagem Hyun-Cheol Bae, 2008 Inversor BiCMOS Bipolar CMOS Alta velocidade de operação Baixa Potência Alta capacidade de corrente de acionamento Alta impedância de entrada Amplas margens de ruído 19 Manuseio de CMOS Devido à sua estrutura particular, os dispositivos CMOS são muito sensíveis à carga estática e podem ser danificados por descarga eletrostática (ESD, Electrostatic Discharge) se não for manuseado adequadamente. Electrostatic discharge damage magnified Image: Jet Propulsion Laboratory/NASA 20 Manuseio de CMOS As precauções a seguir devem ser tomadas quando se trabalha com dispositivos CMOS: Dispositivos CMOS devem ser transportados e armazenados em espuma condutiva. Todos os instrumentos e bancadas metálicas usados em testes devem ser aterrados. O pulso da pessoa que manuseia o dispositivo deve ser aterrada através um fio com um resistor de alto valor. Não remova um dispositivo CMOS (ou qualquer outro dispositivo no que diz respeito a esse assunto) de um circuito enquanto este estiver energizado. Não conecte sinais de tensão contínua ou alternadaem um dispositivo CMOS enquanto a fonte estiver desligada. 21 Manuseio de CMOS Imagem Vermason, 2018 Estação de trabalho ESD 22 Introdução à lógica programável Dispositivos de lógica programável podem ser programados para realizar funções lógicas especificadas pelo fabricante ou pelo usuário. A lógica de programação necessita de hardware e software. Lógica programável Lógica fixa Ocupam bem menos espaço na placa para uma mesma quantidade de lógica. Os componentes individualmente ocupam mais espaço físico na placa. Pode-se alterar os projetos com facilidade sem alterações físicas no hardware ou substituição de componentes. Requer alteração de laiaute (layout) da placa, no caso de mudança da lógica. Projeto lógico geralmente pode ser implementado mais rápido e com um menor custo. A soma dos custos dos CI de lógica fixa geralmente possuem valor maior do que o CI de lógica programável. 23 Tipos de dispositivos Tipos de dispositivos Lógicos Programáveis As duas categorias principais de lógica programável pelo usuário são: FPGA (Field Programmable Gate Array). PLD (Programmable Logic Device); SPLDs (PLD simples); CPLD (PLD complexas). 24 Tipos de dispositivos – SPLD Dispositivo de Lógica Programável Simples (SPLD, Simple Programmable Logic Devices): O SPLD foi o PLD que surgiu inicialmente e ainda encontra-se disponível para aplicações de pequena escala. Geralmente, um SPLD pode substituir até dez CI de função fixa e suas interconexões, dependendo dos tipos de funções e do SPLD específico. 25 Tipos de dispositivos – SPLD Os SPLD estão em uma das duas categorias: PAL (Programmable Array of Logic) pode ser programado uma vez. GAL (Generic Array Logic) é basicamente um dispositivo PAL que pode ser reprogramado várias vezes. 26 Tipos de dispositivos – SPLD PAL (Programmable Array of Logic) consiste de um arranjo programável de portas AND e um arranjo fixo de portas OR. PAL (Programmable Array of Logic) PAL16R8B - MMI 27 Tipos de dispositivos – SPLD GAL (Generic Array of Logic) consiste de um arranjo programável de portas AND e um arranjo fixo de portas OR com saídas programáveis (OLMC, Output Logic Macrocell). GAL (Generic Array of Logic) GAL16V8D - Lattice 28 Tipos de dispositivos – CPLD Dispositivo de Lógica Programável Complexo (CPLD, Complex Programmable Logic Device): Essencialmente, o CPLD é um dispositivo que contém múltiplos SPLD e pode substituir diversos CI de funções fixas. Geralmente, CPLD podem ser usadas para implementar quaisquer tipos de funções lógicas discutidas anteriormente, como: decodificadores, codificadores, multiplexadores, demultiplexadores e somadores. 29 Tipos de dispositivos – CPLD A Figura mostra o diagrama em bloco básico de um CPLD com quatro blocos de arranjo lógico (LAB, Logic Array Blocks) e um arranjo de interconexões programáveis (PIA, Programmable Interconnction Array). Diagrama de blocos de um CPLD Dependendo do CPLD específico, podem existir de 2 a 64 LAB. Cada bloco de arranjo lógico é aproximadamente equivalente a um SPLD. 30 Tipos de dispositivos – FPGA Arranjo de Portas Programáveis por Campo (FPGA, Field- Programmable Gate Array): Um FPGA é geralmente mais complexo e tem uma densidade muito maior que CPLD, embora suas aplicações possam, em alguns casos, se sobrepor. Diagrama de blocos de um FPGA Os FPGA possuem três elementos básicos: Blocos lógicos; Interconexões programáveis; Blocos de entrada/saída. 31 Tipos de dispositivos – FPGA Possui uma arquitetura baseada em blocos lógicos configuráveis (CLB, Configuration Logical Blocks), constituídos por portas lógicas e flipflops que visam implementar funções lógicas, também é estruturado por chamadas de blocos de entrada e saída (IOB, In/Out Blocks). Os blocos lógicos em um FPGA não são complexos como os LAB em um CPLD, porém, geralmente eles existem em maior número. Quando os blocos lógicos são relativamente simples, a arquitetura do FPGA é denominada grão fino (fine-graned). Quando os blocos lógicos são maiores e mais complexos, a arquitetura é denominada grão grosso (coarse-graned). 32 Tipos de dispositivos – CPLDFPGA CPLD FPGA Volatilidade Não volátil Reconfiguração SRAM Arquitetura PAL/22V10-like + combinacional Gate array-like + registradores + RAM Densidade Baixa a média 500 a 10.000 portas Média a alta 1.000 a 500.000 portas Performance Tempo previsível Dependente da aplicação Preços Baixo Alto 33 Tipos de dispositivos – CPLDFPGA 34 Tipos de dispositivos – CPLDFPGA CoolRunner-II CPLD Xilinx: https://www.xilinx.com/products/silicon-devices/cpld/coolrunner-ii.html Price XA2C32A-7VQG44Q: https://www.digikey.com/en/products/detail/xilinx-inc/xa2c32a-7vqg44q/1956584 Price XC2C512-10FT256I: https://www.digikey.com/en/products/detail/xilinx-inc/xc2c512-10ft256i/3981431 USD 3,60 USD 88,00 https://www.xilinx.com/products/silicon-devices/cpld/coolrunner-ii.html https://www.digikey.com/en/products/detail/xilinx-inc/xa2c32a-7vqg44q/1956584 https://www.digikey.com/en/products/detail/xilinx-inc/xc2c512-10ft256i/3981431 35 Tipos de dispositivos – CPLDFPGA FPGA Xilinx: https://www.xilinx.com/products/silicon-devices/fpga.html https://www.xilinx.com/products/silicon-devices/fpga.html 36 Tipos de dispositivos – CPLDFPGA USD 19,70 USD 427,00 FPGA Spartan-6 Xilinx: https://www.xilinx.com/products/silicon-devices/fpga/spartan-6.html Price XC6SLX4-L1CSG225C: https://www.digikey.com/en/products/detail/xilinx-inc/xc6slx4-l1csg225c/2339867 Price XC6SLX150T-3FGG900I: https://www.digikey.com/en/products/detail/xilinx-inc/xc6slx150t-3fgg900i/2339976 https://www.xilinx.com/products/silicon-devices/fpga/spartan-6.html https://www.digikey.com/en/products/detail/xilinx-inc/xc6slx4-l1csg225c/2339867 https://www.digikey.com/en/products/detail/xilinx-inc/xc6slx150t-3fgg900i/2339976 37 Tipos de dispositivos – CPLDFPGA USD 8.040,00 FPGA Kintex Xilinx: https://www.xilinx.com/products/silicon-devices/fpga/kintex-ultrascale-plus.html Price XCKU19P-L2FFVJ1760E: https://www.avnet.com/shop/us/products/xilinx/xcku19p-l2ffvj1760e-3074457345645153178/ https://www.xilinx.com/products/silicon-devices/fpga/kintex-ultrascale-plus.html https://www.avnet.com/shop/us/products/xilinx/xcku19p-l2ffvj1760e-3074457345645153178/ 38 Tipos de dispositivos – CPLDFPGA USD 73.500,00 FPGA Virtex Xilinx: https://www.xilinx.com/products/silicon-devices/fpga/virtex-ultrascale-plus.html Price XCVU19P-2FSVA3824E: https://www.digikey.com/en/products/detail/xilinx-inc/XCVU19P-2FSVA3824E/11588539 https://www.xilinx.com/products/silicon-devices/fpga/virtex-ultrascale-plus.html https://www.digikey.com/en/products/detail/xilinx-inc/XCVU19P-2FSVA3824E/11588539 39 Tipos de dispositivos – CPLDFPGA CPLD/FPGA MAX Altera (Intel): https://www.intel.com/content/www/us/en/products/details/fpga/max.html Price 5M40ZE64C5N: https://www.digikey.com/en/products/detail/intel/5M40ZE64C5N/2499440 USD 0,90 https://www.intel.com/content/www/us/en/products/details/fpga/max.html https://www.digikey.com/en/products/detail/intel/5M40ZE64C5N/2499440 40 Tipos de dispositivos – CPLDFPGA FPGA Altera (Intel): https://www.intel.com/content/www/us/en/products/details/fpga.html https://www.intel.com/content/www/us/en/products/details/fpga.html 41 Tipos de dispositivos – CPLDFPGA FPGA/PLD Microchip: https://www.microchip.com/en-us/products/fpgas-and-plds https://www.microchip.com/en-us/products/fpgas-and-plds 42 Tipos de dispositivos – CPLDFPGA FPGA/PLD Microchip: https://www.latticesemi.com/Products.aspx#_D5A173024E414501B36997F26E842A31 https://www.latticesemi.com/Products.aspx#_D5A173024E414501B36997F26E842A31 43 O processo de programação Uma SPLD, CPLD ou FPGA pode ser vista como um “quadro branco” no qual podemos implementar um determinado circuito ou sistema projetadofazendo uso de um certo processo. EASE Graphical HDL Entry 44 O processo de programação Esse processo necessita de um software de desenvolvimento instalado em um computador para implementar um projeto de circuito em um chip programável. Quartus Prime - Altera/Intel ISE (Integrated Synthesis Environment) - Xilinx Vivado Design Suite - Xilinx Lattice Diamond Software - Lattice Lattice Radiant Software - Lattice Libero SoC - Microchip Libero IDE - Microchip Quartus Prime Lite Edition: https://fpgasoftware.intel.com/?edition=lite ISE Design Suite: WebPack Edition: https://www.xilinx.com/support/university/students.html#software https://fpgasoftware.intel.com/?edition=lite https://www.xilinx.com/support/university/students.html#software 45 O processo de programação O computador tem que ser interfaceado por meio de uma placa de desenvolvimento ou um equipamento de programação contendo o dispositivo. 46 O processo de programação Kit de desenvolvimento Zynq-7000 SoC ZC702 Evaluation Kit - Xilinx 47 O processo de programação Vários passos, chamados de fluxo de projeto, estão envolvidos no processo de implementação de um projeto lógico em um dispositivo lógico programável. Entrada do Projeto Simulação Funcional Síntese Implementação Simulação de Temporização Download 48 O processo de programação Entrada do Projeto: O projeto do circuito ou sistema tem que ser inserido no software de desenvolvimento de projeto usando entrada baseada em: Texto; Entrada gráfica (desenho esquemático); Descrição em diagrama de estado. A inserção do projeto é independente do dispositivo. 49 O processo de programação Entrada do Projeto: A inserção baseada em texto é realizada com uma linguagem de descrição de hardware (HDL – Hardware Description Language), tal como: Verilog VHDL Bluespec AHDL ABEL Vivado Design Suite 50 O processo de programação Entrada do Projeto: A linguagem HDL possibilita três níveis de abstração em HDL. O nível mais alto de abstração é o comportamental (behavioral), que permite descrever o comportamento do circuito através de loops e processos. Níveis de abstração de uma linguagem HDL Neste nível de abstração também é possível compor equações através de multiplicações e somas. 51 O processo de programação Entrada do Projeto: O próximo nível de abstração possibilita descrever o funcionamento do circuito em termos de lógica combinacional (por exemplo, if, then, else) e booleana. Este nível de abstração também engloba a representação do circuito no nível de registros de transferências (RTL – Register Transfer Level), que consiste basicamente em uma representação por registradores interligados por lógica combinacional. O nível mais baixo de abstração de um HDL é o estrutural, que consiste em uma representação do circuito semelhante a um Netlist de portas lógicas ou de switches. 52 O processo de programação Entrada do Projeto: Verilog padronizado pela IEEE 1364-2005 e incorporado em 2009 pelo SystemVerilog. SystemVerilog, padronizado pela IEEE 1800-2017 - IEEE Standard for SystemVerilog - Unified Hardware Design, Specification, and Verification Language 53 O processo de programação Entrada do Projeto: VHSIC-HDL ou VHDL (Very-High-Speed Integrated Circuit Hardware Description Language), padronizado pela IEEE Std 1076-2019 - IEEE Standard for VHDL Language Reference Manual IEEE 1076.1 VHDL Analog and Mixed-Signal (VHDL-AMS) IEEE 1076.1.1 VHDL-AMS Standard Packages (stdpkgs) IEEE 1076.2 VHDL Math Package IEEE 1076.3 VHDL Synthesis Package (vhdlsynth) (numeric std) IEEE 1076.3 VHDL Synthesis Package – Floating Point (fphdl) IEEE 1076.4 Timing (VHDL Initiative Towards ASIC Libraries: vital) IEEE 1076.6 VHDL Synthesis Interoperability (withdrawn in 2010)[11] IEEE 1164 VHDL Multivalue Logic (std_logic_1164) Packages 54 O processo de programação Entrada do Projeto: AHDL (Altera Hardware Description Language), incorporado ao Quartus Prime. https://www.intel.com/content/www/us/en/software/programmable/quartus-prime/download.html Bluespec https://bluespec.com/n ABEL (Advanced Boolean Expression Language) http://www.ee.usm.maine.edu/courses/ele172/abel/HDL-ABEL%20Primer.pdf https://www.semanticscholar.org/topic/Advanced-Boolean-Expression-Language/53431 https://www.latticesemi.com/-/media/LatticeSemi/Documents/UserManuals/1D/ABEL- HDLReferenceManual.ashx?document_id=589 AHPL (A Hardware Programming Language) https://repository.arizona.edu/handle/10150/290569 https://www.computer.org/csdl/magazine/co/1974/12/028030/13rRUxYIN70 https://www.intel.com/content/www/us/en/software/programmable/quartus-prime/download.html https://bluespec.com/n http://www.ee.usm.maine.edu/courses/ele172/abel/HDL-ABEL%20Primer.pdf https://www.semanticscholar.org/topic/Advanced-Boolean-Expression-Language/53431 https://www.latticesemi.com/-/media/LatticeSemi/Documents/UserManuals/1D/ABEL-HDLReferenceManual.ashx?document_id=589 https://repository.arizona.edu/handle/10150/290569 https://www.computer.org/csdl/magazine/co/1974/12/028030/13rRUxYIN70 55 O processo de programação Verilog VHDL Linguagem fracamente tipada Linguagem fortemente tipada Case-sensitive (sensível à caixa das letras) Not case-sensitive (não sensível à caixa das letras) Possibilita escrever códigos errados, facilitando o cometimento de erros, código mais conciso Mais difícil de cometer erros de digitação, sendo possível encontrá-los antes mesmo da compilação, código mais detalhado Não determinístico em certas circunstâncias, podendo ocorrer condições de corrida Altamente determinístico Se parece mais com a linguagem C Se parece mais com as linguagens Ada e Pascal 56 O processo de programação Verilog VHDL Comum em empresas do Vale do Silício Comum na indústria de defesa dos EUA 57 O processo de programação Em linguagens fracamente tipadas as variáveis declaradas poderão intercambiar seus tipos a qualquer momento, ou seja, poderão receber valores de tipos de dados diferentes e fazer operações entre eles sem a necessidade de um conversão (casting) explicita do tipo. Já em Javascript, o número inteiro será convertido em uma string e o resultado impresso será a string "1010". 58 O processo de programação Linguagens fortemente tipadas seriam aquelas em que os objetos/variáveis tem um tipo bem definido e que precisa ser informado no momento de sua declaração. Em linguagens fortemente tipadas, as operações entre valores de tipos diferentes, resultará em erros ou exceções, portanto essas operações dar-se-á apenas por valores do mesmo tipo ou através da conversão (casting) de valores. Em Ruby, a operação entre um número e uma string, resultará em um erro, indicando que a linguagem não conseguiu somar a string com o inteiro. 59 O processo de programação Entrada do Projeto: A inserção gráfica (esquemático) permite que funções lógicas pré-armazenadas sejam selecionadas a partir de um biblioteca, apresentada na tela e então interconectadas para criar o projeto lógico. Vivado Design Suite 60 O processo de programação Entrada do Projeto: A inserção por diagrama de estados requer a especificação dos estados pelos quais um circuito lógico sequencial passa e as condições que provocam a mudança de cada estado. Xilinx Foundation State Editor 61 O processo de programação Entrada do Projeto: Uma vez inserido o projeto, ele é compilado. Um compilador é um programa que controla o processo do fluxo do projeto e traduz o código- fonte em código-objeto num formato que pode ser testado logicamente ou transferido para um dispositivo destino. 62 O processo de programação Entrada do Projeto: O código-fonte é criado durante a inserção do projeto e o código- objeto é o código final que realmentefaz com que o projeto seja implementado no dispositivo programável. 63 O processo de programação Simulação Funcional ou Verificação: O projeto compilado inserido é simulado por software para confirmar se os circuitos lógicos funcionam conforme esperado. A simulação irá verificar se as saídas adequadas são geradas para um conjunto de entradas especificadas. Vivado Simulator Lista de simuladores HDL: https://en.wikipedia.org/wiki/List_of_HDL_simulators 64 O processo de programação Síntese: A fase síntese é onde o projeto é traduzido em uma lista (netlist), a qual tem uma forma padronizada e é independente do dispositivo. Netlist Linguagem de transferência de registros (RTL, Register Transfer Language) 65 O processo de programação Síntese: A netlist é uma listagem de componentes do circuito e de como estes componentes estão interconectados, incluindo os nomes dos pinos de I/O dos chips PLD utilizados pelo circuito. Netlist visto com RTL 66 O processo de programação Síntese: Imagem: Enno Lübbers 67 O processo de programação Imagem: Enno Lübbers Implementação: Na implementação, pode-se fazer necessário o mapeamento (tradução) de tais componentes para células lógicas, que podem ser configuradas como: Look-Up Tables (LUT); Shift-Registers Look-Up Table (SRL); LUT RAM. 68 O processo de programação Implementação: Imagem: Enno Lübbers 69 O processo de programação Implementação: Embora a netlist dê uma descrição lógica exata do circuito, ela não diz nada sobre a implementação física. Para obter uma descrição precisa do layout físico, a netlist é executada por um processo denominado de implementação, no qual a estrutura lógica descrita pela netlist é mapeada na estrutura real do dispositivo a ser programado. The design routing in FPGA fabric Imagem: Creative Commons Attribution 4.0 Inter. 70 O processo de programação Implementação: O processo de implementação é denominado fitting ou place and route (PAR) e resulta em uma saída denominada sequência de bits, a qual depende do dispositivo usado. Place and Route process 71 O processo de programação Implementação: Imagem: Enno Lübbers 72 O processo de programação Simulação de temporização: A simulação de temporização (timing analyser) é basicamente usada para confirmar que não existem falhas no projeto ou problemas de temporização em função dos atrasos de propagação. Vivado Timing Analysis 73 O processo de programação Download: Uma vez gerada uma sequência de bits para um dispositivo programável específico, ele tem que ser transferido (operação download) ao dispositivo para implementar o projeto de software no hardware.. Alguns dispositivos programáveis são instalados em uma seção especial de um equipamento denominado programador de dispositivos ou em uma placa de desenvolvimento. PYNQ-Z2 FPGA Development Board - Xilinx 74 O processo de programação Download: Outros tipos de dispositivos podem ser programados quando ainda estão inseridos no sistema, denominados programáveis no sistema (ISP, In-System Programming), usando uma interface padrão JTAG (Joit Test Action Group). 75 O processo de programação Download: Alguns dispositivos são voláteis, o que significa que eles perdem o conteúdo armazenado quando sofrem uma operação de reset (inicialização) ou quando a alimentação é desligada. Nesse caso, os dados (sequência de bits) têm que ser armazenados numa memória e recarregados no dispositivo após cada reset ou desligamento da alimentação. Além disso, o conteúdo de um dispositivo ISP pode ser manipulado ou atualizado enquanto estiver operando no sistema. 76 Instrumentos de medição A análise de defeito é o processo sistemático de isolamento, identificação e correção de defeitos em um circuito ou sistema. Uma variedade de instrumentos está disponível para ser usada em testes e análises de defeito: Osciloscópio; Analisador lógico; Fonte de alimentação CC; Gerador de funções; Multímetro digital (DMM, Digital Multimeter). [1] FLOYD, Thomas L., Sistemas digitais: fundamentos e aplicações; tradução José Lucimar do Nascimento; revisão técnica Antonio Pertence Júnior – 9ª. ed., Porto Alegre: Bookman, 2007. 888 p. ISBN-13: 978-85-7780- 107-7 [2] TOCCI, Ronald J; WIDMER, Neal S.; MOSS, Gregory L., Sistemas digitais: princípios e aplicações; tradução Sérgio Nascimento; revisão técnica Renato Giacomini – 12ª ed., São Paulo: Pearson, 2019. 1056 p. (Biblioteca Virtual Pearson), ISBN-13: 978-85-4302-501-8 [3] CAPUANO, Francisco Gabriel; IDOETA, Ivan Valeije., Elementos de Eletrônica Digital – 42ª ed., São Paulo: Érica, 2018. 440 p. ISBN-13: 978-85- 3653-038-3 77 Estas transparências foram baseadas nos livros da bibliografia acima, em sítios (sites) da internet . Bibliografia 78 Bibliografia ISBN-13: 978-85-7780-107-7 ISBN-13: 978-85-4302-501-8 ISBN-13: 978-85-3653-038-3 NOTA: Para a bibliografia complementar consulte o plano de ensino da disciplina 79 Bibliografia - VHDL ISBN-13: 978-0262042642 ISBN-13: 978-0262034227 ISBN-13: 978-9400798403 80 Bibliografia - Verilog ISBN-13: 978-0073380544 ISBN-13: 978-3030136079 ISBN-13: 978-1441944023 81 Bibliografia – Finite-State Machines ISBN-13: 978-3319242002 ISBN-13: 978-3642442247 ISBN-13: 978-1848219861 ATENÇÃO Os autores das imagens e dos textos contidos nesta apresentação podem requerer direitos autorais, assim antes de reproduzi-las ou mesmo divulgá-las consulte o autor deste conteúdo, a fim de solicitar a fonte do material. O uso deste material destina-se apenas à consulta no processo de ensino e aprendizagem da disciplina supra citada e, portanto, fica proibido o processo de escaneamento, fotocópia, reprodução ou ainda, postagem em sites acessível ao público ou protegido por senha, no todo ou em parte. 82 83 A1. Anexo – VHDL vs Verilog
Compartilhar