Ao final da disciplina o aluno será capaz de:
Projetar um processador de 32 bits, com um conjunto de instruções determinado, que pode ser aplicado a problemas reais de escopo limitado.
Representar um projeto digital em linguagem de descrição de hardware (VHDL).
Simular circuitos digitais para identificar problemas e avaliar o desempenho.
Aplicar as técnicas mais comuns de depuração de hardware.
Prototipar o processador, e outros projetos, em lógica programável com FPGA.
Escrever código em linguagem de montagem, e máquina, para a arquitetura implementada.
Metodologia:
Analisar as instruções necessárias para executar uma dada tarefa (projeto) e inferir a estrutura necessária para a execução delas;
Aplicar a abstração Unidade de Controle e Fluxo de Dados (UC+FD);
Implementar, através de VHDL, e depurar o circuito criado;
Propor melhorias que aumentem o desempenho.
Ferramentas:
CAD para desenvolvimento de hardware:
Com suporte para VHDL;
Gravação em FPGA;
Simulação de circuitos.
Kit Desenvolvimento com FPGA:
Com 49K Elementos Lógicos Programáveis na FPGA;
3080 Kbits memória embarcada na FPGA;
Diversos periféricos na placa do kit.
Justificativa:
Por quê projetar um microprocessador personalizado?
Para aplicações específicas, por exemplo, onde o cálculo pode ser acelerado através de instruções adequadas, como equações diferenciais ou criptografia.
No nosso caso, o conhecimento de três tópicos de engenharia de computação auxiliam em muito o entendimento das outras tecnologias envolvidas. Eles são:
Entender o funcionamento da CPU e seus blocos construtivos;
Entender o funcionamento dos sistemas operacionais;
Entender o funcionamento dos compiladores.
Além disso, o projeto de uma CPU desenvolve habilidades que serão úteis no projeto de qualquer circuito digital.
O curso contará com as seguintes formas de avaliação:
Dois projetos:
Projeto 1, terá uma entrega intermediária e uma final.
Projeto 2, terá somente uma entrega: a entrega final.
Em cada entrega final, haverá arguição indiviual dos componentes do grupo para verificar o conhecimento e a participação na execução do projeto.
O resultado da arguição pode gerar notas diferentes para os participantes do grupo. E poderá alterar a nota da entrega intermediária.
Algumas entregas parciais, sem uma frequência determinada, de partes do projeto ou atividades. Poderão ser corrigidas, durante os atendimentos, a pedido dos alunos.
Essas entregas parciais serão avaliadas, no fim do curso, no caso do aluno não alcançar a média final (AG), com o limite de 0,3 pontos.
Caso ainda haja dúvida na proficiência, do aluno, em VHDL, poderá ser proposto um teste de VHDL.
Alunos de DP farão os projetos individualmente, ou seja, não participarão de nenhum grupo.
Por favor, leia a página de orientações sobre integridade intelectual nas atividades de programação.
Quizzes de verificação e participação nas aulas:
Pode ser um ou mais por aula (dependendo dos temas abordados);
Possuem uma pergunta sobre o conteúdo explicado na aula e com duração máxima de 5 minutos.
Duas avaliações, AI e AF, nos horários definidos pelo INSPER:
Material de consulta:
Uma folha A4 com anotações na frente e verso.
Green Card, um resumo de referência sobre o Processador de 32 bits.
Duas provas práticas de VHDL, uma realizada antes da AI e a outra antes da AF.
Atividade | Observação |
---|---|
Processador com arquitetura ACUMULADOR e aplicação de teste (entrega intermediária). | Executado parcialmente em horário de aula. |
Projeto 1: Calculadora/Relógio ou outro equipamento a ser definido. | Executado parcialmente em horário de aula. |
Projeto 2: Processador de 32 bits, single cycle ou com pipeline. | Executado parcialmente em horário de aula. |
As entregas parciais, ou atividades diárias, não participam do cálculo da nota final. A avaliação de todas entregas, para os alunos que ficaram abaixo da média de aprovação, poderá adicionar, no máximo, 0,3 pontos na média final.
O curso terá dois conceitos, um para as avaliações individuais (AI) e outro para as avaliações em grupo (AG).
Para se obter um conceito satisfatório em AG, a entrega final do projeto 2 não pode ter avaliação inferior a C.
Um conceito final satisfatório envolve a aprovação, de forma independente, nos dois conceitos.
Caso haja aprovação tanto em AI quanto em AG, a nota final será dada pela ponderação de AI (60%) e AG (40%).
Caso não haja aprovação em AI, ou em AG, a nota final será dada pela menor nota entre AI e AG.
Os quizzes de participação possuem um caráter de nota bonus, ou seja, será adicionado, até um (1) ponto, à média final das avaliações individuais (AI).
O resultado da participação é a normalização das notas e possui cinco faixas:
Faixa da Normalização | Pontos Adicionais |
---|---|
Entre 91% e 100% | 1,0 |
Entre 76% e 90% | 0,75 |
Entre 51% e 75% | 0,5 |
Entre 41% e 50% | 0,25 |
Entre 0% e 40% | 0,0 |
Peso das avaliações individuais:
Nome da Avaliação | Peso na Nota Final de AI (%) | Observação |
---|---|---|
Provas de VHDL 1 | 15 | Primeiro Bimestre |
Provas de VHDL 2 | 15 | Segundo Bimestre |
Avaliação Intermediária. | 30 | |
Avaliação Final. | 40 |
Peso das avaliações em grupo:
Nome da Avaliação | Peso na Nota Final de AG (%) | Observação |
---|---|---|
Processador com arquitetura ACUMULADOR e aplicação de teste (entrega intermediária). | 10 | |
Projeto 1: Calculadora/Relógio/Outro. | 30 | |
Projeto 2: Processador de 32 bits, single cycle ou com pipeline. | 60 | O grupo não poderá ter conceito abaixo de C nesta entrega |
Alunos com frequência inferior a 75% serão reprovados automaticamente.
A presença está vinculada à entrega da APS.
Correlação das Notas Numéricas e as Letras de Engenharia:
Letra | Valor |
---|---|
A+ | 10 |
A | 9 |
B+ | 8 |
B | 7 |
C+ | 6 |
C | 5 |
D | 4 |
I | 0 |
As atividades de programação devem respeitar os seguintes critérios:
Entrega individual ou em grupo, deve ser somente através do blackboard:
As entregas por e-mail, dentro ou fora do prazo, NÃO SERÃO ACEITAS.
Entregas com referência ao github, ou qualquer tipo de repositório, dentro ou fora do prazo, NÃO SERÃO ACEITAS.
Os arquivos em VHDL devem ser comentados.
Ao criar o projeto, mantenha todos os arquivos relevantes (VHDL, QSF, SDC, MIF e VWF) no diretório raíz do projeto.
A forma mais simples de entrega é através da geração de um “arquivamento” do projeto, que criará um arquivo com extensão “qar” contendo todo o projeto.
Essa opção está no menu do Quartus: “Project” > “Archive Project”.
O resultado é a criação, no diretório do projeto do Quartus, de dois arquivos: <nome_do_projeto>.qar e <nome_do_projeto>.qarlog.
Basta enviar esses dois arquivos - pode ser zipado.
É boa prática adicionar as capturas do resultado das simulações (somente as mais relevantes).
Isso ajuda a verificar o funcionamento do seu projeto.
Dúvidas sobre uso do Quartus e sobre os arquivos: acesse a página interna sobre o Quartus.
Por favor, leia a página de orientações sobre integridade intelectual nas atividades de programação.
Referência rápida (página interna: em eterna construção).
Quartus Prime Standard Edition User Guides.
Livro (free) Digital McLogic Design da Free-Range.
Livro, Free-Range-VHDL-book (open source), sobre VHDL.
Referência Rápida VHDL (página interna: em eterna construção).
VHDL Quick Reference Card da Synthworks: permitido usar em quiz.
VHDL Types & Package Quick Reference Card da Synthworks: permitido usar em quiz.
Resumo de VHDL em PDF (retirado de http://faculty.lasierra.edu/~ehwang/digitaldesign/contents/vhdl.pdf).
Green Card, um resumo de referência sobre o Processador (todas instruções e outros detalhes - download gratuito no site da editora): permitido usar em quiz.