Segundo quadrimestre de 2018
Turma: B1 - diurno
Período letivo: de 29/05 a 18/08 de 2017
Horário e salas (aula): 2a (sala S-305-2) e 5a (sala 408-2), 16:00 → 18:00
Horário de atendimento: 5a das 14 às 16, na sala 805 do bloco B
Professor: Jerônimo C. Pellegrini
Sala do professor: S 805 (bloco B)
Email do professor: jeronimo.pellegrini ufabc edu br
Sala a definir
Às 16:00 na sala 402-2.
Mandem o trabalho por email (PDF)!
30/08 -- Conceitos do trabalho
29/08 -- Conceitos da SUB
27/08 -- Conceitos da P2
17/08 -- Entrega do trabalho adiada
13/08 -- Lista de exercícios
10/08 -- Conceitos da P1
07/08 -- Laboratorio reservado para trabalho prático
30/07 -- Descrição do trabalho pronta
23/07 -- Slides da aula de hoje (datapath e ASM) adicionados
20/07 -- Prova adiada
16/07 -- Slides sobre ULA e transferências entre registradores
12/06 -- Exercício prático FPGA
12/06 -- Mais uma lista de exercícios
12/06 -- Prova adiada para 23/07
29/06 -- Indicação de leitura para próximo tópico (ULA)
28/06 -- Instruções para usar o Quartus, da Altera, disponíveis
28/06 -- Lista 06 disponível
27/06 -- exercício adicionado (após lista 5)
25/06 -- mais código VHDL de exemplo: no subdiretório "sorting-network"
tem uma rede de ordenação por hardware descrita em VHDL.
O Makefile precisa ser modificado se sua instalação de ghdl
requer o passo de elaboração ("ghdl -e")
23/06 -- mais um exemplo de código: multiplexador para nibbles.
o tipo de dado NIBBLE foi definido em um pacote, depois usado
no resto do código.
18/06 -- alguns arquivos para estudar VHDL disponíveis neste site
15/06 -- slides da aula de 14/06 adicionados
14/06 -- Pequeno ajuste no programa (VHDL antes de FPGA)
14/06 -- Listas 01 a 05 disponíveis
12/06 -- Slides e texto incompleto sobre a aula de 11/06 adicionados
07/06 -- Slides da aula de hoje adicionados
05/06 -- Slides da primeira aula adicionados nesta página
04/06 -- Início do curso
PERGUNTE! INTERROMPA A AULA E PEÇA QUE EU EXPLIQUE NOVAMENTE! NÃO DEIXE SUAS DÚVIDAS SE ACUMULAREM!
Não creia que poderá sanar as dúvidas uma semana antes da prova! O conteúdo inclui conceitos abstratos e maneiras diferentes de raciocinar. Isto significa que esforço não basta -- você precisa de TEMPO para absorver e digerir as idéias, e tentar condensar esse tempo em uma semana NÃO funciona!
Sistemas digitais. Introdução à Linguagem VHDL. Descrição, Modelagem e Simulação de Circuitos Digitais. Projeto Estruturado e Implementação de Circuitos Digitais. Exemplos comerciais e estudo de casos para os tópicos abordados.
Circuitos Digitais
Apresentar técnicas, metodologias e ferramentas para analisar e projetar sistemas digitais simples, mas não triviais.
O conceito final da disciplina poderá ser:
Faremos duas avaliações escritas com duas horas de duração: P1 e P2, e também um trabalho prático, T. Cada avaliação vale exatamente 0, 1, 2 ou 3. O trabalho poderá valer 0, 1, 2, 3 ou 4. A nota final é a soma das notas das provas e do trabalho.
AS AVALIAÇÕES ESCRITAS SERÃO REALIZADAS SEM CONSULTA A QUALQUER MATERIAL!
COLA/PLÁGIO RESULTAM EM F NA DISCIPLINA
As notas serão convertidas em conceito de acordo com a seguinte regra: seja n a soma das notas das provas e do ponto de exercícios. Então o conceito final será:
Somente para os casos previstos em lei e na resolução 181 do CONSEPE!
Caso o aluno perca uma das provas e apresente justificativa, poderá fazer uma substitutiva no final do quadrimestre.
Para alunos com F (sobre o exame, veja a resolução 182 do CONSEPE). O conteúdo já é extenso para um quadrimenstre; como temos também a semana do CMCC, deixaremos de ter duas aulas. Desta forma, o exame só poderá ser realizado no próximo quadrimestre.
compare_nibbles.vhdl
), de forma que não use um process
. Construa uma fórmula booleana que faça a comparação dos dois nibbles, imlpemente e simule no ghdl
.Reservado dias 09/08, 13/08, 16/08, 23/08, das 14 às 16. Os alunos matriculados podem pedir as placas FPGA.
Disponíveis aqui
Este programa está sujeito a mudanças simples. Grandes mudanças não devem acontecer.
Junto a cada tópico estrá a leitura recomendada (ainda não para todos os tópicos, mas os primeiros já tem). O formato é " [ Autor a-b ] ", que significa "seções de a até b do livro de Autor"
- Revisão de Circuitos Combinacionais [ Idoeta:2-4 Vahid:2-2.3 Mano 2-3.7 ]
- Revisão de Circuitos Sequenciais [ Idoeta:6 Mano:4 ]
- Análise e Projeto de Circuitos Combinacionais [ Wakerly 4-4.2 ]
- Análise e Projeto de Circuitos Sequenciais [ Mano 4.4 ]
- Conversão Digital-Analógico (Escada Binária, Rede R-2R etc.) [ Idoeta 7.2 ]
- ADC – Conversão Analógico-Digital (Rampa Digital, Aprox. Sucessivas, Flash) [ Idoeta 7.3 Tocci 11 ]
- VHDL (conceitos iniciais, uso das ferramentas) [ site do ghdl Mealy/Tappero Chu Ashenden ]
- FPGA – Field Programmable Gate Array
- "Lab 1" – Introdução à Linguagem VHDL, ao GHDL e ao GTKWave
- "Lab 3" – Quartus-II e placa DE1/Altera
- Introdução à Unidade Lógica Aritmética (ULA) [ Katz/Borriello 5.6-5.8 Mano/Kime 3.9 ]
- Transferências entre Registradores baseadas em MUX e BUS [ Mano/Kime 6 ]
- Lab -- reconhecedor de sequências
- Representação de Fluxo de Dados e Palavra de Controle [ Mano/Kime 8 ]
- Lab - Somador Completo
- ASM – Máquina de Estado Algorítmica
- Lab 5 - Projeto Prático
- Controle por Hardware
- Lab 6 - Projeto Prático
- Controle Microprogramado – Entrega do Trabalho Final
O cronograma é flexível. Andaremos mais rápido ou mais devagar dependendo de como a turma estiver acompanhando.
Instalação:
$ git clone https://github.com/ghdl/ghdl.git
$ cd ghdl
$ ./configure
$ make
$ sudo make install
Uso:
$ ghdl -a meuarquivo.vhdl
$ ghdl -a meuarquivo_test.vhdl
$ ghdl -r meuqrquivo --vcd=saida.vcd
$ gtkwave saida.vcd
no gtkwave, ajuste a resolução do tempo (Time -> Zoom -> Best fit)
O default do ghdl é usar a work library "work". Se quiser, use outra: ghdl -a --work=minha_lib meuarquivo.vhdl
Depois continue usando a opção: ghdl -r --work=minha_lib meuarquivo
Aqui tem alguns arquivos para estudar VHDL
Observações:
Para usar o mux_nibble.vhdl
, precisa analisar (ghdl -a
) o pacote nibble primeiro:
ghdl -a nibble.vhdl
ghdl -a mux_nibble.vhdl
ghdl -a mux_nibble_tb.vhdl
ghdl -r mux_nibble_tb --vcd=saida.vcd
gtkwave saida.vcd