Carregar apresentação
A apresentação está carregando. Por favor, espere
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.