Mudanças entre as edições de "DIG222802 AULA11"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 152: Linha 152:
 
-- comparador de 4 bits
 
-- comparador de 4 bits
 
entity comp4 is
 
entity comp4 is
port ( a, b: in bit-vector (3 downto 0);
+
    port ( a, b: in bit-vector (3 downto 0);
equals: out bit);
+
          equals: out bit);
 
end comp4;
 
end comp4;
 +
 
architecture arq1 of comp4 is
 
architecture arq1 of comp4 is
 
begin
 
begin
equals <= ‘1’ when (a=b) else ‘O’;
+
    equals <= ‘1’ when (a=b) else ‘O’;
 
end arq1;
 
end arq1;
 
</syntaxhighlight>
 
</syntaxhighlight>

Edição das 18h24min de 27 de junho de 2016

Apresentação

Olá Alunos,

Na semana que passou realizamos o estudo de memórias, mostramos o que são estes dispositivos e como funcionam. Agora vamos mudar o foco e dar uma introdução ao VHDL utilzada para atividades de projeto de hardware digital já envolvendo certa complexidade...

Bons Estudos!

Prof. Douglas A.

Objetivo

  • Introduzir os conceitos básicos de VHDL.


Nota: Este texto foi adaptado da Apostila Básica de VHDL do Prof. Dr. Renato Giacomini e da Apostila de Dispositivos Lógicos Programáveis dos professores: Caio Augusto de Oliveira, Jéssica Azevedo de Aguiar Mateus Galvão Said Fontanini (UNESP).

Definições e Abreviaturas

ASIC (Application Specific Integrated Circuits) Circuito integrado de aplicação específica.
CPLD (Complex Programmable Logic Devices) Dispositivo lógico programável complexo.
FPGA (Field Programmable Gate Array) Arranjo de portas programável em campo.
VHDL (VHSIC Hardware Description Language). A sigla é derivada de outra abreviatura - VHSIC (Very High Speed Integrated Circuits), já que seu objetivo inicial era voltado ao projeto de circuitos integrados de altíssima velocidade.
VHSIC (Very High Speed Integrated Circuits) Circuito integrado de altíssima velocidade.


Histórico

Nas décadas de 70 e 80 foi posto em prática um programa do Departamento de Defesa (DoD) americano, para desenvolvimento de circuitos integrados de alta velocidade, denominado VHSIC e originado da preocupação de domínio das tecnologias envolvidas. Desde o princípio, anteviu-se o problema de representação dos projetos segundo uma linguagem que fosse comum às várias empresas envolvidas e que permitisse uma documentação fechada e clara para projetos de complexidade crescente. Nesta mesma época, já havia no mercado de computação a chamada crise do software, caracterizada pela dificuldade de gestão, documentação e sistematização do ciclo de vida do software (que envolve, em termos gerais, todas as atividades de relativas à sua criação e uso)[1]. O problema surgiu inicialmente no software porque era no software que se desenvolviam as aplicações, que tornavam o produto particular para um uso específico. Isso fazia com que um grande volume de projetos fossem conduzidos, quase sempre com muita complexidade e pouco método. No hardware a questão era mais bem controlada, pois os projetos eram, em geral, mais genéricos, especialmente para o hardware digital. Os projetos de microprocessadores, que eram os mais complexos, visavam na maior parte dos casos o uso geral. Um mesmo microprocessador seria utilizado em várias aplicações, seria reproduzido e testado aos milhões. Isso significava que o investimento em um único projeto poderia ser muito maior, inclusive em termos de especificação e testes. A evolução da metodologia de projeto de software foi então natural, em função dos argumentos sustentados pela crise. Hoje ainda é grande o desenvolvimento de novos métodos e a busca por uma linguagem descritiva universal, como o UML, para especificação e projeto de software orientado a objetos.

A questão preocupante quanto ao hardware, para o programa VHSIC americano, era que alguns fatos indicavam para uma evolução do mercado que faria surgirem problemas semelhantes aos apresentados pela crise de software. Entre estes fatos:

  • A fabricação de circuitos integrados deixava de ser exclusiva de alguns poucos fabricantes. Surgiam

empresas especializadas na fabricação de projetos de terceiros, o que permitiria, em conjunto com o desenvolvimento de tecnologias de fabricação menos custosas, a criação de CIs de uso específico para certas aplicações.

  • As novas tecnologias de fabricação (abaixo de 2mm, na época) permitiam um aumento de densidade dos

CIs, com conseqüente aumento de complexidade.

  • Surgiam componentes de lógica programável (PLDs e PALs), inicialmente de pequena densidade, mas

que poderiam evoluir para densidades muito maiores rapidamente. Tais componentes poderiam criar, como de fato ocorreu posteriormente, um grande mercado de projetos de pequena escala e aplicações específicas, muito parecido com o mercado de projetos de software.

A criação de uma linguagem de descrição de hardware patrocinada pelo programa e, em paralelo algumas outras linguagens criadas pela indústria, foi então uma decorrência natural. Em 1987, o VHDL foi normalizado pelo IEEE, tornando-se um padrão mundial, ao lado do Verilog, uma alternativa também expressiva no mercado de projetos de hardware. Hoje, praticamente todas as ferramentas de desenvolvimento de hardware computadorizadas aceitam essas linguagens como entrada, de forma que um projeto baseado em VHDL ou Verilog pode ser implementado com qualquer tecnologia.


Vantagens do Uso

A alternativa para uso de uma linguagem formal de descrição de hardware como o VHDL é a descrição por diagramas esquemáticos. O VHDL apresenta as seguintes vantagens:

  • Em sistemas seqüenciais, o detalhamento da lógica de controle é realizado pelas ferramentas de

automação do projeto, o que evita a trabalhosa e limitada aplicação das técnicas manuais tradicionais;

  • O objetivo do projeto fica mais claro que na representação por esquemáticos, nos quais a implementação

se sobrepõe à intenção do projeto;

  • O volume de documentação diminui, já que um código bem comentado em VHDL substitui com

vantagens o esquemático e a descrição funcional do sistema; d) O projeto ganha portabilidade, já que pode ser compilado em qualquer ferramenta e para qualquer tecnologia. É comum, na indústria, o uso de FPGAs e CPLDs para produções iniciais ou de menores escalas em projetos que posteriormente possam ser implementados em ASICs. Todas as implementações podem usar o mesmo código VHDL.

Ciclo de Projeto

O projeto de um sistema digital auxiliado por ferramentas computadorizadas segue normalmente as etapas descritas a seguir.


1. Especificação

Esta etapa visa determinar os requisitos e funcionalidade de projeto, incluindo timing dos sinais e definido completamente as interfaces. É uma etapa comum e necessária a qualquer projeto, independentemente do uso do VHDL.

2. Codificação

Nesta etapa, o objetivo é descrever, de forma estruturada e bem documentada, em VHDL, todo o projeto, segundo seus padrões de sintaxe. Assim, formaliza-se a especificação da etapa anterior, numa implementação de alto nível, em que são descritos apenas os aspectos relevantes à solução do problema.

3. Simulação de Código Fonte

Nesta etapa, procura-se simular o código em uma ferramenta confiável, a fim de verificar, preliminarmente, o cumprimento da especificação. Esta simulação não considera ainda detalhes tecnológicos de implementação.

4. Síntese Otimização e Fitting

Síntese - É o processo de “tradução” ou compilação de um código VHDL para uma descrição abstrata, em linguagem mais próxima da implementação. Naturalmente, a síntese é ainda um processo independente da tecnologia. Basicamente, o resultado obtido é o que se chama de RTL (register- transfer level), em que se definem registros, suas entradas e saídas e a lógica combinacional entre elas. Otimização - É o processo de seleção da melhor solução de implementação para uma dada tecnologia. Logicamente, as ferramentas EDA (Engineering Design Automation) são preparadas para aceitar diretivas de otimização, dependendo do resultado que se quer (minimização de área, consumo, tempo de resposta, etc). Fitting - É o processo em que a lógica sintezada e otimizada é mapeada nos recursos oferecidos pela tecnologia.

5. Simulação do modelo pós-layout

A simulação realizada com o resultado do fitting permite resultados mais apurados de comportamento e timing, porque considera as características da implementação definitiva na tecnologia, como, por exemplo, os tempos de propagação dos sinais.

6. Geração

É a fase de configuração das lógicas programáveis ou de fabricação de ASICs.


Entidades e Arquiteturas

O código abaixo representa um comparador binário para palavras de quatro bits:


-- comparador de 4 bits
entity comp4 is
    port ( a, b: in bit-vector (3 downto 0);
           equals: out bit);
end comp4;

architecture arq1 of comp4 is
begin
    equals <= 1 when (a=b) else O;
end arq1;


Uma entidade (entity) é uma abstração que descreve um sistema, uma placa, um chip, uma função ou, até mesmo, uma porta lógica. Na declaração de uma entidade, descreve-se o conjunto de entradas e saídas. No exemplo dado, a entidade comp4 possui duas entradas, a e b, e uma saída, equals, que definem o port da entidade. Os ports correspondem a pinos e são tratados como objetos de dados. Pode-se atribuir valores ou obtê-los de ports. Cada entrada ou saída possui um modo (mode) de operação. Os modos possíveis são:

Exercícios

Organização da próxima aula

Olá Alunos,

Próxima aula mais de VHDL e FPGA.

Prof. Douglas A.

Referências

[1]


<< <> >>