A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Eletrônica Digital II ELT013 Engenharia de Computação.

Apresentações semelhantes


Apresentação em tema: "Eletrônica Digital II ELT013 Engenharia de Computação."— Transcrição da apresentação:

1 Eletrônica Digital II ELT013 Engenharia de Computação

2 LINGUAGENS DE DESCRIÇÃO DE HARDWARE Aula 3 2ELT013 - 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 hardware3

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 hardware4

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 hardware5

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 hardware6

7 LINGUAGENS DE DESCRIÇÃO DE HARDWARE ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware7

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 hardware8

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 Description Language 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 speed intregated circuit (VHSIC) ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware9

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 DoD patrocina o 1o encontro de especialistas com o objetivo de discutir métodos para descrição de circuitos 1983 DoD define 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 hardware10

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 ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware11

12 Histórico do VHDL (3) Após Desenvolvidos os pacotes: IEEE 1164 std_logic_1164 IEEE numeric_std numeric_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 hardware12

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 hardware13

14 Linguagem de Descrição versus Linguagem de Programação (2) 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 hardware14 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 ( ns) para responder às mudanças nas entradas.

15 Linguagem de Descrição versus Linguagem de Programação (3) 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 hardware15 O circuito lógico é uma porta AND. A saída y 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ída y será BAIXO.

16 IMPLEMENTAÇÃO DE CIRCUITOS LÓGICOS COM PLDS ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware16

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 hardware17

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 hardware18

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: 1.Definição do que entra e o do que sai (especificações de entrada e saída) 2.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. ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware19 Entradas Saídas Operação

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 ( – ), 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 hardware20

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

22 Síntese Lógica de Circuitos Problemas 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 hardware22

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 hardware23

24 Níveis de abstração Comportamental: Descrição utilizando construções de alto nível da linguagem Behavioral VHDL: VHDL comportamental RTL - Register Transfer Level: 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 hardware24

25 Síntese da descrição Ní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 hardware25

26 Síntese da descrição Ní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 hardware26

27 Qual a vantagem do VHDL? 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 hardware27 Código Fonte em VHDL Síntese A PLD A Síntese C Síntese B PLD C PLD B

28 DESCRIÇÃO BOOLEANA USANDO VHDL

29 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 ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware29 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

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

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 ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware31 A palavra-chave PORT diz ao compilador que estamos definindo entradas e saídas para esse bloco de circuito. A descrição do BIT diz ao compilador que cada variável na lista é um bit único. A palavra-chave END encerra a declaração da ENTITY.

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 ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware32 A palavra-chave PORT diz ao compilador que estamos definindo entradas e saídas para esse bloco de circuito. A descrição do BIT diz ao compilador que cada variável na lista é um bit único. A palavra-chave END encerra a declaração da ENTITY. Variáveis separadas por vírgulas

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 ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware33 A palavra-chave PORT diz ao compilador que estamos definindo entradas e saídas para esse bloco de circuito. A descrição do BIT diz ao compilador que cada variável na lista é um bit único. A palavra-chave END encerra a declaração da ENTITY. (:) modo e tipo da variável de entrada

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 ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware34 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.

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 ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware35 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.

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 hardware36

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 hardware37

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 hardware38

39 OUTRAS CONSIDERAÇÕES SOBRE A LINGUAGEM ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware39

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 hardware40

41 Sinais 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 hardware41 Exemplos: port ( RESULT : inout bit_vector(0 to 7); Z : in bit; EXTBUS : out bit_vector(4 downto 0); ARCHITECTURE..... Signal x,y : bit Não há necessidade de definir a direção de sinais internos

42 42 Comentários:

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

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 hardware44

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 hardware45

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. ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware46 Quando é necessário uma sequência de eventos para modelar um comportamento, utiliza-se um processo (PROCESS).

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 ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware47 Declarações dentro do process são concorrentes Delimita uma região contendo código sequencial Processos são contínuos e cíclicos

48 PROCESS Lista 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 hardware48

49 Lista de sensibilidade em processos Exemplo 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 hardware49

50 Teste utilizando IF Descrição Sequencial ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware50 Flip-flop : Process (D, CLK) begin if rising_edge (CLK) then Q <= D; endif; end process Flip-flop; Flip-flop : Process (D, CLK) begin if rising_edge (CLK) then Q <= D; endif; end process Flip-flop; Flip-flop : Process (D, CLK,RST) begin if rst=1 then Q <= 0; elsif rising_edge (CLK) then Q <= D; endif; end process Flip-flop; Flip-flop : Process (D, CLK,RST) begin if rst=1 then Q <= 0; elsif rising_edge (CLK) then Q <= D; endif; end process Flip-flop; nome : Process (lista de sinais) begin if condição then atribuição elsif condição then atribuição else atribuição endif; end process Flip-flop; nome : Process (lista de sinais) begin if condição then atribuição elsif condição then atribuição else atribuição endif; end process Flip-flop; Formato Geral

51 Teste utilizando CASE Descrição Sequencial ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware51 architecture estrutura of mux_case is begin mux: process(sel,A,B,C,D) begin case sel is when "00" => Y <= A; when "01" => Y <= B; when "10" => Y <= C; when "11" => Y <= D; when others => Y <= A; end case; end process; end;

52 Teste utilizando When Descrição Concorrente ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware52 architecture conditional of mux2to1 is begin z <= a when s = 1 else b; end architecture conditional;

53 Teste utilizando With Descrição Concorrente ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware53 architecture sel of mux is begin with seletor select saida <= in0 when 00, in1 when 01, in2 when 10, in3 when others; end architecture mux;

54 Paralelismo de Processos (1) ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware54 Arquitetura Processo 1 Processo 2 Processo 3 Processo 4 Processo 5

55 Paralelismo de Processos (2) ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware55 Alterando A, os processos P1 e P2 são executados em paralelo

56 Paralelismo de Processos (3) ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware56 Alterando B, os processos P1 e P3 são executados em paralelo

57 Paralelismo de Processos (4) ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware57 Alterando C, apenas o processo P2 é executado

58 Comunicação entre Processos (1) ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware58 Processo P1 Processo P2 Processo P3

59 Comunicação entre Processos (2) ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware59 Processo P1 Processo P2 Processo P3

60 Comunicação entre Processos (3) ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware60 Evento em A Evento em D Evento em E

61 Comunicação entre Processos (4) ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware61 Evento em D

62 Comunicação entre Processos (5) ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware62

63 COMO SE APRENDE VHDL? ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware63

64 ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware64

65 Exercícios Seção 3.17 Seção 3.18 ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware65


Carregar ppt "Eletrônica Digital II ELT013 Engenharia de Computação."

Apresentações semelhantes


Anúncios Google