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

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

Eletrônica Digital II ELT013

Apresentações semelhantes


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

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

2 Linguagens de descrição de hardware
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 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 hardware

10 Histórico do VHDL (1) Motivo do desenvolvimento: 1981 1983
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 hardware

11 Histórico do VHDL (2) 1985 1987 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 hardware

12 Histórico do VHDL (3) Após 1987 - 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 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)
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. 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. ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

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. 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. 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. Entradas Operação Saídas 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 Circuitos Etapas do Processo
ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

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 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 - 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 hardware

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 hardware

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 hardware

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 Código Fonte em VHDL Síntese A PLD A Síntese C Síntese B PLD C PLD B 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
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 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 ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

30 Entity Interface com o mundo externo
Especifica entradas, saídas e atrasos Entity Ports 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 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. 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 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 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 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 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 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 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 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 Numéricos Comparação
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 Processos são contínuos e cíclicos ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

48 PROCESS Lista de sensibilidade em processos
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 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 hardware

50 Teste utilizando IF Descrição Sequencial
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; nome : Process (lista de sinais) begin if condição then atribuição elsif condição then else endif; end process Flip-flop; Formato Geral ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

51 Teste utilizando CASE Descrição Sequencial
architecture estrutura of mux_case is begin mux: process(sel,A,B,C,D) 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; ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

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

53 Teste utilizando With Descrição Concorrente
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; ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

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

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

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

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

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

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

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

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

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

63 Como se aprende VHDL? ELT013 - Eletrônica Digital II Aula 3 - Linguagens de descrição de hardware

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

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


Carregar ppt "Eletrônica Digital II ELT013"

Apresentações semelhantes


Anúncios Google