SSC0113 Trabalho Prático 2012 02

De CoteiaWiki

SSC0113 - Laboratório de Elementos de Lógica Digital II

Prof. Fernando Santos OSÓRIO (Prática)
Prof. Vanderlei Bonato (Teoria)
Estagiário PAE - Diogo Ortiz Correa
Monitor - Darlan Passos Jambersi

=========================================================

>> TRABALHOS PRÁTICo FINAL (TP02): 
>> ESPECIFICAçÂO Versão 001 de 06/11/2012


Definição: 

* O trabalho prático irá consistir de uma implementação em VHDL 
  baseada no uso de um Processador. Sugere-se o uso do processador
  apresentado em aula e definido no livro do Roberto D'Amore:
  http://www.ele.ita.br/~damore/vhdl/  (ver "exemplos extras")

* São apresentadas três diferentes propostas para o trabalho,
  onde os alunos (trabalho em grupo como no Trabalho Prático 01)
  poderão escolher qual delas pretendem desenvolver:


1. Processador VHDL com suporte a Interrupções: implementar um 
   sistema de interrupções em Hardware no Processador. 
   Este sistema irá requerer a entrada de um pino adicional 
   no processador que seria o pino de IRQ (Interrupt Request)
   ou de NMI (Non-Maskable Interrupt), e que irá gerar o 
   tratamento (em software) da interrupção pelo processador.
   Este tipo de operação, baseado em interrupções, é muito 
   usado em processadores para tratar eventos de dispositivos
   de I/O (Entrada/Saída) externos, sendo que os alunos podem
   "se inspirar" no modo de implementação de Interrupções IRQ e NMI
   realizadas em processadores comerciais. Exemplos:
   http://en.wikipedia.org/wiki/Interrupt
   http://en.wikipedia.org/wiki/Interrupts_in_65xx_processors
   http://6502.org/tutorials/interrupts.html  
   >> Mais detalhes serão apresentados em aula.

2. Processador VHDL com suporte a múltiplos cores.
   Implementar uma arquitetura que suporte pelo menos 2 núcleos
   do processador descrito em VHDL. Cada processador deve possuir
   uma memória local (acessível apenas por 1 núcleo) e 
   uma memória compartilhada entre os núcleos (acesso concorrente).
   O trabalho implica em desenvolver uma forma de gerenciar o acesso
   concorrente ao mesmo recurso (memória), o que leva a implementar
   um esquema de prioridades e/ou um protocolo de requisição 
   de acesso ao barramento compartilhado. 
   >> Mais detalhes serão apresentados em aula.

3. Implementação do jogo Genius/Simon, só que agora usando a CPU
   descrita em VHDL. A implementação do jogo implica em programar
   na linguagem de máquina oferecida pelo processador. Entretanto,
   para que possa ser usado o processador em VHDL será necessário
   também a implementação de instruções de I/O (acesso aos 
   dispositivos externos: teclado e display de segmentos), bem
   como será necessário usar o montador (assembler) para a programação 
   em Linguagem de Máquina do código do jogo a ser carregado no processador.
   POssivelmente a memória do processador terá que ser aumentada 
   também.


========
F.Osório
Nov.2012
========