1 / 65

Eletrônica Digital II ELT013

Eletrônica Digital II ELT013. Engenharia de Computação. Aula 3. Linguagens de descrição de hardware. Descrição de Circuitos Lógicos. Os conceitos lógicos (se, então, OU, AND, NOT, etc ) apesar de serem muitos familiares demandam muitos esforços para serem escritos.

garran
Download Presentation

Eletrônica Digital II ELT013

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Eletrônica Digital IIELT013 Engenharia de Computação

  2. Aula 3 Linguagens de descrição de hardware ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  3. Descrição de Circuitos Lógicos • Os conceitos lógicos (se, então, OU, AND, NOT, etc) apesar de serem muitos familiares demandam muitos esforços para serem escritos. • As razões para tais esforços podem ser resumidas como: • Precisamos saber representar essas decisões lógicas • Precisamos saber combinar essas funções lógicas e implementar um sistema de tomada de decisões • Até o momento vocês conhecem: • Sentenças lógicas na nossa linguagem natural • Tabelas verdade • Símbolos lógicos tradicionais • Expressões de lógica booleana • Diagramas de tempo ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  4. Exemplo (1) • Se o motorista estiver presente E NÃO estiver usando o cinto E a ignição estiver acionada, ENTÃO, acenda a luz de advertência. ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  5. Exemplo (2) • Se o motorista estiver presente E NÃO estiver usando o cinto E a ignição estiver acionada, ENTÃO, acenda a luz de advertência. ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  6. Importância da Descrição de Circuitos Lógicos • Padroniza a comunicação entre os profissionais e fabricantes. • Permite o surgimento de ferramentas de projeto, simulação e documentação e análise de circuitos lógicos. ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  7. Linguagens de Descrição de Hardware ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  8. Linguagens de Descrição de Hardware (1) • Linguagens baseadas em texto para a descrição de circuitos digitais • Nenhum dos métodos (tabelas verdade, símbolos lógicos tradicionais, expressões de lógica booleana e diagramas de tempo) é fácil de ser transmitido ao computador • HDL – Linguagem de Descrição de Hardware. Permite que linguagens rigidamente definidas representem circuitos lógicos. ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  9. Linguagens de Descrição de Hardware (2) • Assim como existem várias linguagens de programação, existem várias linguagens de descrição de hardware. • HDL – Hardware DescriptionLanguage • AHDL – Altera Linguagem de Descrição de Hardware. • Desenvolvido por Altera para configurar dispositivos de lógica programável Altera (PLDs). • Não se destina a ser utilizado como uma linguagem universal para descrever qualquer circuito lógico. • VHDL – Linguagem de Descrição de Hardware de Velocidade Muito Alta. • Desenvolvido pelo Departamento de Defesa Norte-Americano (DoD), padronizado pelo IEEE e amplamente utilizado para descrever projetos para dispositivos reais (1980). • V → Very high speedintregatedcircuit (VHSIC) ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  10. Histórico do VHDL (1) • Motivo do desenvolvimento: • Necessidade de uma ferramenta de projeto e documentação projeto VHSIC do Departamento de Defesa dos Estados Unidos da América (DoD) • 1981 • DoDpatrocina o 1o encontro de especialistas com o objetivo de discutir métodos para descrição de circuitos • 1983 • DoDdefine os requisitos de uma linguagem padrão • Firmado contrato com IBM, Texas e Intermetrics • objetivo: desenvolvimento da linguagem e programas ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  11. Histórico do VHDL (2) • 1985 • Apresentação da versão 7.2 • Direitos autorais do manual transferidos para o IEEE (Institute of Electrical and Electronic Engineer) • Incumbências do IEEE: • Definir um padrão para linguagem • Manter futuros desenvolvimentos (novas versões etc.) • 1987 • Após revisões propostas por acadêmicos, representantes de industrias e governo dos Estados Unidos • Definido o padrão IEEE 1076-1987 ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  12. Histórico do VHDL (3) • Após 1987 - Desenvolvidos os pacotes: • IEEE 1164 std_logic_1164 • IEEE 1076.3 numeric_stdnumeric_bit • O que são pacotes (packages)? • Local para armazenamento de informações de uso comum (novos tipos de dados, funções, etc). ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  13. Linguagem de Descrição versus Linguagem de Programação (1) • É importante distinguir entre as linguagens de descrição de hardware e as linguagens de programação. • Linguagens de programação • Os computadores funcionam seguindo uma lista de tarefas, que devem ser realizadas em ordem sequencial. • A velocidade de operação é determinada pela rapidez do computador para executar cada instrução. • Circuito de lógica digital • Velocidade é limitada apenas pela rapidez com que o circuito pode mudar as saídas em resposta a mudanças nas entradas. • É possível monitorar todas as entradas simultaneamente e responder a quaisquer alterações. ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  14. Linguagem de Descrição versus Linguagem de Programação (2) Cada forma no fluxograma representa uma instrução. Se cada uma leva 20 ns, estima-se que irá demorar de duas a três instruções (40 - 60 ns) para responder às mudanças nas entradas. • Comparação entre a operação de um computador e um circuito de lógica na execução da operação lógica y = AB. • O computador deve executar um programa de instruções que toma decisões. ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  15. Linguagem de Descrição versus Linguagem de Programação (3) O circuito lógico é uma porta AND. A saíday será ALTO a partir de 10 nanossegundos do momento em que A e B são ALTO simultaneamente. Dentro de aproximadamente 10 nanossegundos após uma entrada se tornar BAIXO, a saíday será BAIXO. • Comparação entre a operação de um computador e um circuito de lógica na execução da operação lógica y = AB. ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  16. Implementação de Circuitos Lógicos com PLDs ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  17. Implementação de Circuitos Lógicos com PLDs (1) • PLDs são configurados eletronicamente. • Seus circuitos internos são conectados eletricamente para formar um circuito lógico • Essa fiação programável pode ser pensada como milhares de conexões, conectadas (1) ou não (0). • Cada interseção de uma linha (fio horizontal) e coluna (fio vertical) é uma conexão programável. ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  18. Implementação de Circuitos Lógicos com PLDs(2) • A linguagem de descrição de hardware define as conexões a serem feitas. • Carrega-se o dispositivo após a tradução por um compilador. • A linguagem de alto-nível de descrição de hardware torna a programação de PLDs muito mais fácil, se comparada à álgebra booleana, aos desenhos esquemáticos ou às tabelas-verdade. ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  19. Formato e Sintaxe do HDL (1) • Qualquer linguagem possui propriedades únicas, similaridades com outras linguagens e sintaxe própria. • O formato básico para qualquer linguagem de descrição de hardware envolve dois elementos fundamentais: • Definição do que entra e o do que sai (especificações de entrada e saída) • Definição de como as saídas respondem às entradas (ou seja, operação) • Esquemático é facilmente interpretado por qualquer engenheiro. • HDL deve capaz de transmitir a mesma informação da operação. Saídas Entradas Operação ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  20. Formato e Sintaxe do HDL (2) • Formato dos arquivos HDL • O circuito que está sendo descrito deve receber um nome. • Entradas e saídas (ports) devem ser nomeadas e definidas de acordo com a natureza (tipo) • Uníco bit (botão, 0 ou 1) • 4 bits de um teclado (00002 – 11112), etc. • Port está em modo entrada ou saída ou bidirecional? • Tipo • Refere-se à como os bits são agrupados e interpretados ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  21. Síntese Lógica de CircuitosEtapas do Processo ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  22. Síntese Lógica de CircuitosProblemas • VHDL não foi concebida para síntese de circuitos • Logo nem todas construções da linguagem são suportadas na síntese • Falta de correspondência entre construção e circuito real • Exemplo: flip-flop com dois terminais de relógio - código pode ser simulado mas não existe o flip-flop • Impossibilidade da síntese direta • Exemplo: multiplicação de dois números reais - código pode ser simulado mas circuito muito complexo ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  23. Elaboração da Descrição • Várias formas de descrição são possíveis com diferentes níveis de abstração • O código inicial pode conter estruturas muito abstratas para síntese direta logo: • Processo interativo permite atingir o grau de detalhamento necessário para síntese ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  24. Níveis de abstração • Comportamental: Descrição utilizando construções de alto nível da linguagem • Behavioral VHDL: VHDL comportamental • RTL - RegisterTransferLevel: Descrição utilizando construções de Nível intermediário • Nível de transferência de registradores descrito em termos do fluxo de sinais (ou transferência de dados entre os registradores presentes no hardware e as operações lógicas conduzidas com estes sinais) • VHDL RTL é tudo que pode ser sintetizável • Síntese dependente da forma de escrita e da ferramenta utilizada • Gate Level: Nível de portas lógicas ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  25. Síntese da descriçãoNível RTL • Inferência das estruturas necessárias para gerar um circuito nível RTL • Emprega primitivas da ferramenta de síntese(portas lógicas, somadores, comparadores etc.) • Circuito nível RTL não é associado a nenhuma tecnologia ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  26. Síntese da descriçãoNível Portas • Novo circuito considerando a tecnologia empregada • Emprega primitivas da tecnologia do hardware onde será embarcado o VHDL ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  27. Qual a vantagem do VHDL? Código Fonte em VHDL Síntese A Síntese B Síntese C PLD A PLD B PLD C • Independência do dispositivo. • Vários tipos de descrição. • Portabilidade: Vários simuladores e ferramentas de síntese suportam a descrição VHDL. • Rápido para gerar a descrição e baixo custo de desenvolvimento ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  28. Descrição booleana usando VHDL

  29. Descrição booleana usando VHDL Descrição com 2 grandes blocos: Entidade (Entity) Responsável pela interface da descrição Arquitetura (Architecture) Responsável pela descrição do comportamento do circuito • A palavra-chave ENTITY dá um nome ao bloco de circuito, que, neste caso, é and_gate • Variáveis nomeadas pelo projetista devem ser minúsculas • Palavras-chave da linguagem devem ser MAÍSCULAS ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  30. Entity Ports Ports Entity • Interface com o mundo externo • Especifica entradas, saídas e atrasos ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  31. Descrição booleana usando VHDL • A palavra-chave ENTITY dá um nome ao bloco de circuito, que, neste caso, é and_gate • Variáveis nomeadas pelo projetista devem ser minúsculas • Palavras-chave da linguagem devem ser MAÍSCULAS • A palavra-chave PORT diz ao compilador que estamos definindo entradas esaídas para esse bloco de circuito. • A descrição do BIT dizaocompiladorquecadavariávelnalista é um bit único. • A palavra-chave END encerra a declaração da ENTITY. ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  32. Descrição booleana usando VHDL • A palavra-chave ENTITY dá um nome ao bloco de circuito, que, neste caso, é and_gate • Variáveis nomeadas pelo projetista devem ser minúsculas • Palavras-chave da linguagem devem ser MAÍSCULAS • A palavra-chave PORT diz ao compilador que estamos definindo entradas esaídas para esse bloco de circuito. • A descrição do BIT dizaocompiladorquecadavariávelnalista é um bit único. • A palavra-chave END encerra a declaração da ENTITY. Variáveis separadas por vírgulas ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  33. Descrição booleana usando VHDL • A palavra-chave ENTITY dá um nome ao bloco de circuito, que, neste caso, é and_gate • Variáveis nomeadas pelo projetista devem ser minúsculas • Palavras-chave da linguagem devem ser MAÍSCULAS • A palavra-chave PORT diz ao compilador que estamos definindo entradas esaídas para esse bloco de circuito. • A descrição do BIT dizaocompiladorquecadavariávelnalista é um bit único. • A palavra-chave END encerra a declaração da ENTITY. (:) modo e tipo da variável de entrada ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  34. Descrição booleana usando VHDL • A palavra-chave ENTITY dá um nome ao bloco de circuito, que, neste caso, é and_gate • Variáveis nomeadas pelo projetista devem ser minúsculas • Palavras-chave da linguagem devem ser MAÍSCULAS • A declaração ARCHITECTURE é usada para descrever o funcionamento de tudo dentro do bloco. • ckté o nome da descrição da arquitetura • OF e IS são palavras-chave • Descrição da operação está entra BEGIN e END. ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  35. Descrição booleana usando VHDL • A palavra-chave ENTITY dá um nome ao bloco de circuito, que, neste caso, é and_gate • Variáveis nomeadas pelo projetista devem ser minúsculas • Palavras-chave da linguagem devem ser MAÍSCULAS • Cada ENTITY deve ter ao menos uma ARCHITECTURE associada a ela. • Declaração (y) recebe por atribuição (<=) o nível lógico produzido por a AND b. • Todas as declarações entre BEGIN e END são analisadas e atribuídas concorrentemente, não importando a ordem que estão listadas. ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  36. Sinais Intermediários • Em muitos projetos, é necessário definir pontos de sinal "dentro" do circuito de blocos • Chamados nós internos ou sinais locais. • São pontos do circuito que podem ser úteis como ponto de referência. • Não são entradas nem saídas. ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  37. Sinais Intermediários em VHDL • SIGNAL define um sinal intermediário. • BIT define o tipo do sinal intermediário ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  38. Comentários em VHDL • Comentários são precedidos de dois traços (--) • Assim como no desenvolvimento de software, documentação é muito importante. ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  39. Outras considerações sobre a linguagem ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  40. Package • Utilizado quando é necessário o uso de algo não definido nas bibliotecas do VHDL padrão. • Utilizado por meio dos comandos library e use • Ex: library IEEE; • use IEEE.Std_Logic_1164.all; ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  41. Sinais Exemplos: port( RESULT : inoutbit_vector(0 to 7); Z : in bit; EXTBUS : out bit_vector(4 downto 0); ARCHITECTURE .... . . . Signalx,y : bit Não há necessidade de definir a direção de sinais internos • Sinais representados por uma bit: BIT • Sinais representados por um vetor : BIT_VECTOR • A direção de um sinal pode ser: • Entrada => input • Saída => output • Bidirecional => inout ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  42. Comentários:

  43. Atribuição de Sinais ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  44. Alguns Operandos • Lógicos • and, or, nor, nand, xor,... • Numéricos • + soma • - diferença • * multiplicação • / divisão • ** expoente • abs valor absoluto • rem resto • mod modulo • etc... • Comparação • = igual, • /= diferente, • > maior do que, • < menor do que, • <= menor ou igual, • >= maior ou igual ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  45. Linguagem Concorrente (1) • Descrição VHDL embora utilize código sequencial, modela circuitos que operam de forma concorrente • Semelhante a montagem de um circuito em uma placa • Ordem das declarações não importa ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  46. Linguagem Concorrente (2) • Como o sinal A depende de B e B depende de C, os sinais são utilizados como em hardware, de forma concorrente. • As declarações poderão ter ordem diferente sem afetar a sua funcionalidade. Quando é necessário uma sequência de eventos para modelar um comportamento, utiliza-se um processo (PROCESS). ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  47. Declaração PROCESS • Objetivo: delimitar regiões de código sequencial • Início: palavra reservada PROCESS • Lista de sensibilidade: identifica que sinais ativam a execução do processo • Declarações dentro do process são concorrentes • Delimita uma região contendo código sequencial • Processossão contínuos e cíclicos ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  48. PROCESSLista de sensibilidade em processos • Lista de sensibilidade: • Define quais sinais causam a execução do processo • Execução do processo ocorre se um sinal da lista tem valor alterado • Iniciada a execução: • Declarações são avaliadas na sequência • Ao término da avaliação da última declaração o processo é suspenso (aguarda uma nova alteração de valor - sinais da lista) ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  49. Lista de sensibilidade em processosExemplo • Valores interfaces entrada a e b transferidos para interfaces de saída sa e sb. Unicamente sinal “a” na lista de sensibilidade • Consequência: • Alteração do valor em a: execução do processo → valores de a e b transferidos para sa e sb • Alteração do valor em b: processo não é executado → valores de a e b mantidos ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

  50. Teste utilizando IFDescrição Sequencial nome : Process (lista de sinais) begin if condição then atribuição elsif condição then atribuição else atribuição endif; endprocess Flip-flop; Formato Geral Flip-flop : Process (D, CLK) begin ifrising_edge (CLK) then Q <= D; endif; endprocess Flip-flop; Flip-flop : Process (D, CLK,RST) begin ifrst=1 then Q <= ‘0’; elsifrising_edge (CLK) then Q <= D; endif; endprocess Flip-flop; ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

More Related