Baixe o app para aproveitar ainda mais
Prévia do material em texto
58 1 Prof. Ederson Cichaczewski Lógica Programável Aula 3 58 2 Conversa Inicial 58 3 Linguagem VHDL: componentes e registradores 58 4 Tema 1 Componentes e circuitos em VHDL Tema 2 Configurações em VHDL 58 5 Tema 3 Registradores em VHDL Tema 4 Máquinas de estados em VHDL Tema 5 Descrição VHDL a partir de um algoritmo 58 6 Na linguagem VHDL é importante organizar os projetos hierarquicamente, por meio de componentes e pacotes, assim como estabelecer uma relação entre eles, por meio de configurações Iniciando com aplicações, os registradores são elementos de memória que são a base para máquinas de estados Descrição de hardware não é um algoritmo, mas é possível estabelecer uma relação que permite uma conversão 58 7 Componentes e pacotes em VHDL 58 8 Um componente é uma entidade de projeto empregada na arquitetura de outra entidade É possível criar um projeto hierárquico É como interligar vários componentes em um diagrama esquemático A instanciação de um componente é um comando concorrente Componentes 58 9 A declaração de um componente é semelhante à de uma entidade Usa-se a palavra reservada COMPONENT A declaração pode ser inserida no corpo da arquitetura ou em pacotes Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 7. Pg. 101 58 10 Para instanciar/chamar um componente é necessário: atribui-lo um label (rótulo) nome do componente e, com a palavra reservada PORT MAP, define-se as conexões dos sinais do componente com os sinais da entidade que o instanciou Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 7. Pg. 102 58 11 Exemplo A arquitetura final da entidade topo solicita dois componentes u1 e u2 Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 7. Pg. 102 58 12 Permitem reunir declarações de constantes, tipos, sinais, subprogramas e componentes Diferentes projetos (design units) podem compartilhar essas declarações Os pacotes ficam associados a uma biblioteca Pacotes 58 13 A estrutura do pacote é composta de duas partes Declaração do pacote Corpo do pacote (opcional) Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 9. Pg. 139 58 14 O pacote pode ser compilado e usado por meio da cláusula USE Especifica-se a biblioteca, o nome do pacote e, se desejar, o item do pacote Caso quiser deixar todos os itens visíveis, usa-se a palavra reservada ALL Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 9. Pg. 140 58 15 Configurações em VHDL 58 16 A configuração estabelece o elo entre a declaração de um componente e uma entidade de projeto É possível especificar uma entidade com várias arquiteturas Neste caso, o elo é estabelecido com a última arquitetura compilada Configuration 58 17 Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 14 58 18 Pode ser necessária uma alteração das associações entre componentes e entidades, sem recompilar as entidades Mecanismos para atender aos requisitos Especificação da configuração Declaração da configuração 58 19 Define o elo entre uma solicitação de componente e uma entidade de projeto Inserida na região de declaração de uma arquitetura que solicita os componentes Especificação da configuração Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 14. Pg. 230 58 20 A especificação da configuração do componente contém uma lista de rótulos, seguidos do nome do componente e da indicação do elo A indicação do elo associa o componente a uma entidade, identificando sua biblioteca Permite especificar a arquitetura a ser usada da entidade Também pode-se definir mapas de portas 58 21 Permite que a configuração seja realizada fora da arquitetura A declaração da configuração é uma outra unidade de projeto (design unit) Declaração da configuração Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 14. Pg. 231 58 22 A declaração da configuração deve ser compilada Está no nível mais alto da hierarquia do projeto A simulação é executada a partir da sua unidade de projeto Pode-se alterar a configuração do projeto sem recompilar as unidades dependentes da configuração 58 23 Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 14. Pg. 232 58 24 A declaração contém dois nomes O 1º identifica o nome da configuração O 2º identifica a entidade de projeto a que a configuração se aplica Podem ser inseridas configurações de bloco e cláusulas USE A configuração de bloco inicia com a palavra reservada FOR 58 25 Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 14. Pg. 232 58 26 Registradores 58 27 Registrador é um elemento de memória que pode ser sensível a: Nível – caso dos latches, em que a condição de memorização corresponde a um determinado nível lógico do sinal de controle Borda – caso dos flip-flops, em que a condição de memorização corresponde à transição de um nível lógico para outro do sinal de clock Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 6. Pg. 79 58 28 Uma transição de sinal pode ser detectada por meio dos atributos EVENT ou STABLE Exemplo: Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 6. Pg. 79 58 29 Operações de inicialização do registrador Set – leva a saída para nível lógico alto Reset – leva a saída para nível lógico baixo 58 30 As operações de inicialização set e reset podem ser síncronas com o sinal de clock ou assíncronas Na implementação de um registrador em VHDL, a palavra-chave é PROCESS Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 6. Pg. 80 58 31 Registrador sensível a nível – latch em VHDL A saída é atualizada com o valor de entrada apenas quando en = 1 Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 6. Pg. 80 58 32 Registrador Sensível a Borda – Flip-Flop em VHDL com Inicialização Síncrona O código “ck‘EVENT AND ck = ‘1’ “ identifica uma borda de subida. Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 6. Pg. 82 58 33 Registrador sensível a borda – flip-flop em VHDL com inicialização assíncrona Apenas a atualização da saída depende do sinal de clock Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 6. Pg. 83 58 34 Síntese do código VHDL A síntese do circuito gera um esquemático em nível RTL Exemplo: flip-flop com inicialização assíncrona Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 6. Pg. 83 58 35 Máquinas de estados em VHDL 58 36 É um circuito sequencial que transita em uma sequência finita de estados A transição entre estados é comandada por um sinal de controle (clock) O estado atual é definido por um elemento de memória O estado futuro é determinado com base no estado atual e na condição das entradas 58 37 Máquina de Mealy O valor da saída depende exclusivamente do estado atual e das condições das entradas Máquina de Moore O valor da saída depende exclusivamente do estado atual Estilos de máquinas de estados 58 38 Sua operação é descrita por um diagrama de transição de estados, sendo cada estado representadopor um nó, e as transições (de subida ou descida do clock), por arcos com setas 58 39 No diagrama de estados o valor da saída é incluído no arco Exemplo de operação com mudança de estado na borda de subida do sinal de controle (clock). Máquina de Mealy Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 6. Pg. 87D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 6. Pg. 88 58 40 No diagrama de estados o valor da saída é indicado no nó Exemplo de operação com mudança de estado na borda de subida do sinal de controle (clock) Máquina de Moore Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 6. Pg. 87 58 41 Máquina de Moore com 4 estados que realiza uma contagem 00, 01, 11 e 10. Inclui uma entrada de inicialização assíncrona chamada “rst” O valor que representa o estado atual corresponde ao valor das saídas Exemplo Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 6. Pg. 88 58 42 Sendo um circuito sequencial, necessita do recurso PROCESS Não necessariamente os estados são valores, então podem ser definidos como tipos enumerados com TYPE Código VHDL 58 43 Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 6. Pg. 88 58 44 O padrão de contagem não necessariamente é uma sequência Uma máquina de estado controla eventos A síntese gera um conjunto de flip-flops e também uma lógica combinacional Observações 58 45 As saídas de uma máquina de Moore são síncronas ao clock. É necessário ter um ciclo de inicialização As saídas de uma máquina de Mealy podem mudar assincronamente 58 46 Descrição a partir de um algoritmo 58 47 A linguagem VHDL não funciona exatamente como uma linguagem de programação baseada em algoritmos Pseudocódigo VHDL 58 48 São necessárias considerações com relação: ao armazenamento de informações ao controle das operações às tomadas de decisões às unidades funcionais empregadas É importante considerar o diagrama de blocos do circuito, definindo seus elementos e suas interligações 58 49 Pseudocódigo de um algoritmo para determinação do MDC: Exemplo: Máximo Divisor Comum (MDC) Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 16. Pg. 258 58 50 1º passo: previsão dos registradores “a” e “b” Linhas 1, 2, 3 e 4 do pseudocódigo Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 16. Pg. 260 58 51 2º passo: tomada de decisão com um comparador Linha 5 do pseudocódigo Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 16. Pg. 260 58 52 3º passo: comparação e subtração entre os registradores “a” e “b” Linha 6 do pseudocódigo Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 16. Pg. 261 58 53 Final: na linha 7 tem-se a necessidade de um circuito de seleção e subtração. Para a execução das linhas 9 e 10 é necessário mais um registrador Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 16. Pg. 262 58 54 Fluxograma: converte-se o pseudocódigo em forma gráfica para facilitar a descrição. Tem-se uma máquina com 4 estados Inicialização assíncrona Mudanças de estado na borda de subida 58 55 Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 16. Pg. 263 58 56 Código VHDL final do MDC Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 16. Pg. 266 58 57 Referências 58 58 D’AMORE, R. VHDL – descrição e síntese de circuitos digitais. 2. ed. Rio de Janeiro: LTC, 2012. cap. 6, 7, 9, 14 e 16. 58 59
Compartilhar