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 ========