Sumário

Capítulo 1   
Introdução     
1.1 Histórico
1.2 Aspectos gerais da linguagem
1.3 Síntese de circuitos
1.4 Principais pontos abordados
1.5 Exercícios

Capítulo 2   
Primeiro contato com a linguagem     
2.1 Entidade de projeto
Declaração da entidade e corpo da arquitetura
2.2 Classe de objetos: constante, variável e sinal
2.3 Tipos
Tipos escalares
Tipos compostos
Nomes indexados, parte de vetores e agregado
Definição de novos tipos
2.4 Operadores
2.5 Exemplos de utilização
2.6. Principais pontos abordados
2.7 Exercícios

Capítulo 3   
Comandos concorrentes básicos     
3.1 Atraso delta
3.2 Atribuição de valor para um sinal
3.3 Construção “ WHEN ELSE ”
3.4 Construção “ WITH SELECT ”
3.5 Comando “ BLOCK ”
3.6 Comando “ PROCESS ”
3.7 Palavra reservada  “ UNAFFECTED ”
3.8 Cuidados na descrição
Comparações entre as construções “WHEN ELSE” e “WITH SELECT”
Criação de latch com as construções “WHEN ELSE” e “WITH SELECT ”
3.9 Principais pontos abordados  
3.10 Exercícios  

Capítulo 4   
Comandos seqüenciais básicos     
4.1 Lista de sensibilidade em processos
4.2 Atribuição de valor para um sinal - região seqüencial
4.3 Construção “ IF ELSE ”
4.4 Construção  “ CASE WHEN ”  
4.5 Comando “ WAIT ”   
4.6 Comando “ NULL ”  
4.7 Cuidados na descrição   
Comparações entre “ WHEN ELSE ” e  “ IF ELSE ”   
Comparações entre “ WITH SELECT ” e “ CASE WHEN ”  
Construções “IF ELSE” e “CASE WHEN” aninhadas   
O emprego da construção “ IF ELSE ” e “ CASE WHEN ”  
Expressão de escolha das construções “ WITH SELECT ” e “ CASE WHEN ”  
4.8 Principais pontos abordados  
4.9 Exercícios 

Capítulo 5   
Atraso, variável e atributos     
5.1 Atraso   
5.2 Sinal e Variável
5.3 Atributos   
Atributos pré-definidos relativos a sinais que resultam em novos sinais  
Atributos pré-definidos relativos a sinais que não resultam em novos sinais   
Atributos pré-definidos relativos a vetores
Atributos pré-definidos relativos a tipos   
Atributos definidos pelo usuário  
5.4 Cuidados na descrição   
Ordem na atribuição de valores  
5.5 Principais pontos abordados  
5.6 Exercícios  

Capítulo 6   
Estratégias de descrição de circuitos síncronos     
6.1 Conceitos iniciais  
6.2 Registrador sensível a nível  
6.3 Registrador sensível a borda - inicialização síncrona  
6.4 Registrador sensível a borda - inicialização assíncrona  
6.5 Registrador sensível a borda com sinal para habilitação do sinal de relógio  
6.6 Máquinas de estados   
6.7 Inferência de registrador empregando variável 
6.8 Contadores  
6.9 Alternativas para descrição de registradores  
6.10 Cuidados na descrição  
Sinais na lista de sensibilidade   
Ciclo de inicialização  
Inserção desnecessária de elementos de memória  
6.11 Principais pontos abordados 
6.12 Exercícios  

Capítulo 7   
Componentes e esquemas de iteração     
7.1 Componentes  
Declaração de componente   
Solicitação de componente   
Solicitação direta de componente  
7.2 Genéricos   
Definição de genéricos   
Mapa de genéricos na solicitação de componentes   
7.3 Comando “ GENERATE ”  
Esquema de geração “ FOR ”  
Esquema de geração “ IF ”  
7.4 Comando “ LOOP ”   
Esquema de iteração “ FOR ”  
Esquema de iteração “ WHILE ” 
Comandos “ NEXT ” e “ EXIT ”   
Laços infinitos   
7.5 Principais pontos abordados  
7.6 Exercícios 

Capítulo 8   
Subprogramas     
8.1 Subprogramas  
8.2 Função  
8.3 Procedimento  
8.4 Sobrecarregamento de subprogramas e operadores  
8.5 Vetores sem especificação de limites em subprogramas  
8.6 Cuidados na descrição  
Comportamento de variáveis declaradas em subprogramas  
Chamada de procedimentos: regiões concorrentes  
Variáveis compartilhadas   
8.7 Principais pontos abordados   
8.8 Exercícios   

Capítulo 9   
Bibliotecas e Pacotes     
9.1 Bibliotecas de projeto  
9.2 Pacotes   
Ferramentas de síntese   
9.3 Ordem de análise   
9.4 Constantes deferidas   
9.5 Sinais globais  
9.6 Principais pontos abordados   
9.7 Exercícios  

Capítulo 10   
Padrão IEEE 1164     
10.1 Tipos definidos  
10.2 Funções e sub-tipos definidos no pacote “ std_logic_1164 ”  
10.3. Descrições empregando o pacote “ std_logic_1164 ”   
Funções lógicas   
Operação da função de resolução em caso de conflito   
Operações com o valor não importa “ - ”  
10.4 Síntese empregando tipos do pacote “ std_logic_1164 ”  
Saídas com estado em alta impedância   
Resultado da codificação de valores no circuito gerado  
Síntese com o valor “não importa” - comparação  
Síntese com o valor “não importa” - minimização de tabelas   
Detecção de bordas de subida ou descida
Comando “NULL”: construção “CASE WHEN” e valores “ std_logic ”  
10.5 Principais pontos abordados   
10.6 Exercícios   

Capítulo 11   
Padrão IEEE 1076.3     
11.1 Tipos definidos  
11.2 Operações definidas  
11.3. Exemplos de utilização do padrão IEEE 1076.3  
Funções aritméticas  
Funções lógicas  
Saídas com estado em alta impedância  
Operações relacionais com tipos “unsigned” e “signed”  
11.4. Exemplo de síntese com o padrão IEEE 1076   
Valor “não importa” e a função “std_match”  
Transbordo em operações de soma com tipos “unsigned” e “signed”  
Circuitos síncronos   
11.5. Principais pontos abordados no capítulo   
11.6 Exercícios

Capítulo 12   
Declaração de tipos e pseudônimos     
12.1 Tipos 
12.2 Definição de tipos enumerados  
12.3 Definição de tipos físicos   
12.4 Definição de sub-tipos   
12.5 Definição de tipos vetor   
Declarando um vetor   
Definição um vetor com limites em aberto   
Vetor composto de elementos do tipo vetor  
Vetor multidimensional   
12.6 Definição de tipos registro   
12.7 Pseudônimos   
12.8 Síntese de memórias  
Memórias ROM   
Memórias RAM   
12.9 Principais pontos abordados   
12.10 Exercícios   

Capítulo 13   
Arquivos     
13.1. Emprego de arquivos   
Declaração de um tipo arquivo   
Declaração de objetos tipo arquivo - versão VHDL-1987   
Operações implicitamente declaradas - versão VHDL-1987   
Exemplos - versão VHDL-1987   
Declaração de objetos tipo arquivo - versão VHDL-1993   
Operações implicitamente declaradas - versão VHDL-1993   
Exemplos - versão VHDL-1993   
13.2 Pacote TEXTIO   
Versão VHDL-1987   
Versão VHDL-1993   
13.3 Principais pontos abordados   
13.4 Exercícios   

Capítulo 14   
Tópicos Avançados   
14.1 Comando “ ASSERT ”  
14.2 Comando “ REPORT ”  
14.3 Tipo com função de resolução   
14.4 Configurações   
Especificação de configuração   
Declaração da configuração   
Síntese contendo configuração   
14.5 Comandos concorrentes pospostos  
14.5 Principais pontos abordados   
14.6 Exercícios   

Capítulo 15   
Teste     
15.1 Introdução  
15.2 Geração de estímulos  
Sinais aleatórios   
Sinais periódicos   
15.3 Teste de uma descrição   
Teste empregando constantes para geração dos estímulos   
Teste empregando dados em arquivo para geração dos estímulos   
Teste empregando técnica mista   
15.4 Principais pontos abordados   
15.5 Exercícios   

Capítulo 16  
Descrição a Partir de um Algoritmo   
16.1 Pseudocódigo e a sua conversão para VHDL
16.2 Aspectos a serem considerados na conversão para VHDL
16.3 Elaboração da descrição
16.4 Principais pontos abordados

Capítulo 17  
Exemplo de um microprocessador   
17.1 Arquitetura
17.2 Interligação e comunicação com periféricos
17.3 Diagrama de blocos e exemplo de operações
17.4 Teste do microprocessador
17.5 Principais pontos abordados


capa_2ed
segunda edição
capítulos 1 a 17

Capa_1ed
primeira edição
capítulos 1 a 15

Fotos: Arquivo FUMDHAM
Parque Nacional Serra da Capivara
Patrimonio Cultural da Humanidade - UNESCO