Processador nanopcs-4

Documentos relacionados
Processador nanopcs-3

EPUSP PCS 3335 Laboratório Digital A. Um Circuito Digital

Banco de Registradores e ULA

Processador nanopcs-1

Banco de Registradores

EPUSP PCS 2011/2305/2355 Laboratório Digital CALCULADORA SIMPLES

EPUSP PCS 2011/2305/2355 Laboratório Digital CALCULADORA SIMPLES

EPUSP PCS2355 Laboratório Digital SOMADORES DECIMAIS

EPUSP PCS 2011/2305/2355 Laboratório Digital SOMADORES DECIMAIS

Circuito de Recepção Serial Assíncrona

CONTROLE DE UM SERVO MOTOR

CALCULADORA SIMPLES COM ULA

UM PROCESSADOR SIMPLES

Processador nanopcs-1

EPUSP PCS 2011/2305/2355 Laboratório Digital. Frequencímetro

Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis

EPUSP PCS 2011 Laboratório Digital I. Uma ULA Simples

Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis

EPUSP PCS 3635 Laboratório Digital I. Trena Digital

Projeto com Linguagens de Descrição de Hardware

Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis

Unidade Lógica e Aritmética

Unidade Lógica e Aritmética

EPUSP PCS 2308 Laboratório Digital. Trena Digital

EPUSP PCS 2011 Laboratório Digital I. Uma ULA Simples

EPUSP PCS 2355 Laboratório Digital. Contadores em VHDL

EPUSP PCS 2011 Laboratório Digital GERADOR DE SINAIS

MELHORAMENTO NO PROCESSADOR SIMPLES

EPUSP PCS 2011/2305/2355 Laboratório Digital CALCULADORA SIMPLES

EPUSP PCS 3335 Laboratório Digital A. Trena Digital

Painel Luminoso com LEDs

Calculadora Simples em VHDL

EPUSP PCS 2011/2305/2355 Laboratório Digital ARITMÉTICA DECIMAL

EPUSP PCS 3335/3635 Laboratório Digital. Circuito em VHDL

Multiplicador Binário com Sinal

Montagem, testes, depuração e documentação de circuitos digitais

CONTROLE PARA SEMÁFOROS DE UM CRUZAMENTO

Painel Luminoso com LEDs

EPUSP PCS 2011/2305/2355 Laboratório Digital. Frequencímetro

Interface com Sensor Ultrassônico de Distância

Comunicação Serial Assíncrona

EPUSP PCS 2011/2305/2355 Laboratório Digital. Frequencímetro

Verificador de Senhas

EPUSP PCS 3335 Laboratório Digital A. Introdução ao VHDL

UTILIZAÇÃO DE CIRCUITOS BIESTÁVEIS

EPUSP PCS 2021 Laboratório Digital II. Sistema de Radar

SSC510 Arquitetura de Computadores 1ª AULA

UTILIZAÇÃO DE CIRCUITOS BIESTÁVEIS

Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:

EPUSP PCS 2011/2305/2355 Laboratório Digital. Freqüencímetro

Circuito Hierárquico

Comunicação Serial Assíncrona

CONTROLE PARA SEMÁFOROS DE UM CRUZAMENTO

CONTROLE PARA SEMÁFOROS DE UM CRUZAMENTO

Projeto com Dispositivos Programáveis

EPUSP PCS 2011 Laboratório Digital GERADOR DE SINAIS

Primeiro Circuito Digital

Somadores Binários E.T.M./2005 (revisão)

RELOGIO MEMÓRIA USO DA NUMERAÇÃO BINÁRIA. 02. Explique a função do barramento de endereços no Modelo Barramento de Sistemas.

Introdução ao Laboratório Digital

2. A influência do tamanho da palavra

Sistema de Aquisição de Dados

LISTA 01 DE EXERCÍCIOS DO 4º BIMESTRE PARA ESTUDO NOME: NOME:

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES. Prof. Juliana Santiago Teixeira

a) Obtenha a tabela verdade das operações com 01 bit

EPUSP PCS 2011 Laboratório Digital GERADOR DE SINAIS

Via de Dados com ULA

EPUSP PCS 2011 Laboratório Digital GERADOR DE SINAIS

Introdução ao Laboratório Digital

Desenvolvimento de um Circuito Complexo

ELETRÔNICA DIGITAL II. AUTOR: ENG. ANTONIO CARLOS LEMOS JÚNIOR

2. A influência do tamanho da palavra

COMPUTADOR. Adão de Melo Neto

Microprocessadores CPU. Unidade de Controle. Prof. Henrique

Microprocessadores I ELE Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios

FUNCIONAMENTO DO COMPUTADOR. Adão de Melo Neto

Turma PCS2304. Objetivos. Site da disciplina. Professor Edson Midorikawa Edson T. Midorikawa 25/02/2008.

Solução Lista de Exercícios Processadores

Disciplina: Arquitetura de Computadores

Elementos Físicos do SC e a Classificação de Arquiteturas

Introdução ao Laboratório Digital

Unidade Central de Processamento UCP (CPU)

LISTA 02 CONJUNTO DE INSTRUÇÕES - GABARITO

SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

14/3/2016. Prof. Evandro L. L. Rodrigues

Verificador de Senhas

LISTA 01 3B ORGANIZAÇÃO DE COMPUTADORES (REALIZADA EM AULA) NOME: NOME:

Arquitetura de Computadores. Ciclo de Busca e Execução

ULA. Combina uma variedade de operações lógicas e matemáticas dentro de uma única unidade.

Introdução ao Laboratório Digital

SSC0112 Organização de Computadores Digitais I

X Y Z A B C D

Introdução à Computação: Arquitetura von Neumann

Organização e Arquitetura de Computadores I

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

Prof. Leonardo Augusto Casillo

Exercícios de Laboratório 1

Unidade de Controle. UC - Introdução

CONJUNTO DE INSTRUÇÕES

Transcrição:

Processador nanopcs-4 E.T.M./2012 RESUMO Esta experiência tem por objetivo o projeto do núcleo de um pequeno processador responsável pela execução de operações aritméticas e lógicas,de transferência de dados entre registradores e acesso a memória. A parte experimental inclui o projeto, montagem, teste, depuração e documentação de um circuito baseado em componentes diversos, como ULA, RAM e registradores tri-state, onde a sequência de operações é armazenada na memória de programa e depois executada pela ULA e os dados são armazenados e deslocados através dos registradores e uma memória de dados. A implementação será desenvolvida com o dispositivo programável Altera Cyclone II EP2C35F672C6. 1. ESPECIFICAÇÃO DO nanopcs-4 O processador nanopcs-4 é o núcleo de uma unidade central de processamento, composto de vários componentes digitais e que executa um conjunto significativo de instruções. A tabela 1.1 abaixo apresenta as instruções a serem implementadas. Tabela 1.1 Tipos de Instrução do processador nanopcs-4. Tipo de instrução Descrição Exemplo Aritméticas e lógicas Transferência entre registradores Controle de execução Acesso à memória realiza operações entre dados presentes no acumulador e outro registrador realiza transferência de dados de um registador a outro muda o fluxo de execução de instruções para outro endereço da memória de dados realiza operações de leitura ou escrita de dados de um registrador para uma posição da memória de dados SOMA ACC,R1 soma conteúdo de ACC e R1 e armazena em ACC MOVE R1,RD transfere dado de RD para R1 JUMP #0F muda a execução para o endereço 01111 16 da memória de programa LOAD R1,#6 transfere o dado armazenado na posição 6 da memória de dados para o registrador R1 1.1. Componentes do Fluxo de Dados O núcleo do fluxo de dados do processador nanopcs-4 é detalhado na figura 1.1 abaixo. Ele é composto por uma ULA de 4 bits, uma memória de programa de 32 palavras de 10 bits, quatro registradores de propósito específico (ACC, RD, REMP, RDMP, RIMD, REMD, RDMD), mais dois registradores de propósito geral (R0 e R1) e uma memória de dados de 16 palavras de 4 bits, interconectados através de uma via de dados interna. A memória de programa armazena um conjunto de bytes de dados contendo códigos de instruções para serem executados pelo processador. O formato das instruções será detalhado mais a seguir. A memória é endereçada pelo registrador REM (registrador de endereço de memória), que indica qual instrução está sendo executado em um dado momento. A primeira instrução de um programa deve estar no endereço 0 (ZERO) da memória de programa. A instrução é armazenada no registrador RDM (registrador de dados da memória) e enviada para a unidade de controle, que gera sinais de controle para a ULA e para os registradores. Na figura 1.1, os sinais de controle são representados na cor verde. A ULA executa a operação codificada pelo sinal de controle ULA_FCT de 6 bits e tem como entradas o dado do acumulador (ACC) e o dado proveniente da via de dados. Este segundo valor vem de um dos registradores ligados na via de dados (ACC, RD, R0, R1 ou RDMD). O resultado da operação deve ser armazenado no registrador ACC. Processador nanopcs-4 (2012) 1

Figura 1.1. Diagrama de blocos do processador nanopcs-4. EPUSP PCS 2011/2308 Laboratório Digital Processador nanopcs-4 (2012) 2

Os conteúdos dos registradores podem ser movimentados através da via de dados interna do processador. O registrador de entrada de dados RD é usado para armazenar o dado que é embutido na instrução, assim, a entrada deste registrador é ligado nos 4 bits menos significativos de RDM. A memória de dados (MD) armazena 16 dados de 4 bits, cada um em uma de suas posições. O acesso à MD é realizado através do registrador de endereço da memória de dados (REMD) e do registador de entrada de dados da memória de dados (RIMD). Os dados lidos devem ser armazenados no registrador de saída de dados da memória de dados (RDMD) antes de serem transferidos a outro registrador do sistema. Os elementos do fluxo de dados devem ser controlados pela unidade de controle, que decodifica as instruções da memória de programa e garante a correta execução do programa armazenado. 1.2. Detalhamento dos Sinais de Controle A figura 1.1 mostra, além dos principais componentes do fluxo de dados, alguns sinais de controle. Estes sinais devem ser gerados pela unidade de controle. A tabela 1.2 apresenta uma breve descrição destes sinais. Tabela 1.2 Principais sinais de controle do processador nanopcs-4. componente sinal de controle descrição MP WRITE_MP Seleciona operação de gravação dos dados de entrada. REMP RDMP ACC Rx (x=d, 0 ou 1) INC_REMP CLEAR_REMP LOAD_REMP CLEAR_RDMP LOAD_RDMP CLEAR_ACC LOAD_ACC EN_ACC CLEAR_Rx LOAD_Rx EN_Rx Incrementa valor do registrador. Carrega valor no registrador. Carrega valor no registrador. Habilita cópia de dado para o registrador. Habilita saída do registrador para colocar dado na via tri-state. Habilita cópia de dado para o registrador. ULA ULA_FCT Código de operação da ULA. Habilita saída do registrador para colocar dado na via tri-state. MD WRITE_MD Seleciona operação de gravação dos dados de entrada. REMD RIMD RDMD CLEAR_REMD LOAD_REMD CLEAR_RIMD LOAD_RIMD CLEAR_RDMD LOAD_RDMD EN_RDMD Carrega valor no registrador. Carrega valor no registrador. Carrega valor no registrador. Habilita saída do registrador para colocar dado na via tri-state. Processador nanopcs-4 (2012) 3

1.3. Modos de Operação do Processador O núcleo do processador tem dois modos de operação, descritos a seguir: 1) Modo Programação : este modo de operação permite a carga de um "programa" na memória de programa, que comandará a sequência de operações que se quer executar. A interface do circuito contém os sinais: DADO (10 chaves) para a entrada do conteúdo da memória; botão B1 para gerar o sinal de incremento do Registrador de Endereços da Memória de Programa (REMP); botão B2 para gerar o sinal GRAVA, que executa o armazenamento do conteúdo das chaves na memória. 2) Modo "Execução": neste modo de operação, o processador deve executar a sequência de operações dada pelo conteúdo da memória de programa. Deve-se utilizar: botão B1 para comandar a execução de uma "instrução", gerando os sinais adequados ao FD do processador; botão B2 para gerar o sinal CLEAR_REMP, que tem como função zerar o REMP. Este botão só deverá ser utilizado em caso de erro ou reinício de execução de programa. O Modo de Operação deve ser determinado por meio da chave MODO (0=Programação e 1=Execução). Assim, para se executar um "programa", deve-se seguir o seguinte procedimento: a) Colocar o circuito em modo "Programação" e armazenar o "programa" na memória de programa; b) Acertar a chave MODO para colocar o circuito em modo "Execução" e limpar o REM, acionando o botão B2; c) Executar, passo a passo, as "instruções", acionando o botão de execução (B1). Os resultados intermediários deverão ser acompanhados através dos leds e displays (conforme especificado na figura 1.1). 1.4. Formato das Instruções Cada instrução do processador nanopcs-4 tem 10 bits de largura e estão contidas na memória de programa do circuito. O conjunto de instruções pode ser dividido em quatro grupos: i) Instruções aritméticas e lógicas: cada instrução deste grupo tem os dois bits mais significativos iguais a 00. A função aritmética ou lógica é especificada por um código binário (f 0 a f 3 ) presente nos bits 3 a 6. As operações deste grupo usam sempre o registrador acumulador e outro registrador da via de dados. Este segundo registrador é especificado pelos bits 0 a 2. O formato destas instruções é o seguinte: 9 8 7 6 5 4 3 2 1 0 0 0 f 3 f 2 f 1 f 0 r r r Os bits 3 a 6 são usados para especificar a função a ser executada e será definido conforme o funcionamento da ULA selecionada para o projeto. O símbolo indica que o bit não é usado. A tabela 1.3 abaixo especifica o conjunto mínimo de instruções a serem projetadas. Processador nanopcs-4 (2012) 4

Tabela 1.3. Conjunto mínimo de instruções aritméticas e lógicas do processador nanopcs-4. Instrução Código binário Descrição SOMA 0000 resultado = A + B SUBTRAI 0001 resultado = A - B ZERA 0010 resultado = 0 CARREGA_ACC 0011 resultado = B E_LOG 0100 resultado = A AND B OU_LOG 0101 resultado = A OR B NAO_LOG 0110 resultado = DOBRA_ACC 0111 resultado = 2A Os bits 0 a 2 especificam o segundo registrador a ser usado na operação aritmética ou lógica a ser executado. A tabela 1.4 especifica estes bits. Tabela 1.4. Codificação dos registradores nas instruções aritméticas e lógicas. Código de registrador Registrador 000 ACC 001 RD 010 R0 011 R1 100 RDMD ii) Instruções de transferência de dados entre registradores: cada instrução deste grupo tem os dois bits mais significativos iguais a 01. As instruções de transferência de dados entre registradores da via de dados possuem os bits 6 e 7 iguais a 0. Os registradores de origem (bits 0 a 2) e de destino (bits 3 a 5) para a transferência dos dados são especificados pelos seis bits menos significativos, seguindo o formato abaixo. 9 8 7 6 5 4 3 2 1 0 0 1 0 0 d d d o o o Os bits 0 a 2 identificam o registrador origem da transferência, ou seja, aquele que colocará os dados na via tri-state para ser copiado pelo destino. Os bits 3 a 5 identificam o registrador que receberá os dados. Os registradores são identificados pela seguinte codificação (tabela 1.5). Tabela 1.5 Codificação dos registradores nas instruções de transferência de dados. Código de registrador Registrador origem Registrador destino 000 ACC - 001 RD - 010 R0 R0 011 R1 R1 100 RDMD - 101 - RIMD 110 - REMD 111 - - Processador nanopcs-4 (2012) 5

A instrução de transferência de dados entre registradores tem a sintaxe MOVE destino,origem em um programa em linguagem de montagem. Para implementar a via de dados tri-state deverão ser utilizados componentes com saída tri-state. Para tal, pode-se fazer uso do registrador 74173 1. Convém mencionar que para a correta transferência dos dados entre os registradores, o registrador de origem deve colocar seu dado na via de dados antes do registrador de destino ser ativado e deve também manter este dado ativo durante toda a transferência. 2 Quando os bits 6 a 7 da instrução são iguais a 01, a instrução especifica um caso especial de transferência de dados. Esta instrução em linguagem assembly segue o formato MOVE RD,#dado, onde o dado a ser copiado para o registrador de dados RD é especificado na própria instrução, nos bits 0 a 3, conforme ilustrado abaixo. O símbolo indica que o bit não é usado. 9 8 7 6 5 4 3 2 1 0 0 1 0 1 D D D D iii) Instrução de mudança de endereço de programa: as instruções deste grupo têm os bits mais significativos iguais a 10. A instrução de salto incondicional (JUMP) para um novo endereço tem os bits 6 e 7 iguais a 11 e o endereço da nova instrução a ser executada é especificado nos bits 0 a 4, seguindo o formato abaixo. 9 8 7 6 5 4 3 2 1 0 1 0 1 1 e e e e e iv) Instrução de acesso à memória de dados: as instruções deste grupo têm os bits mais significativos iguais a 11. A operação é especificado pelo bit 7 (0=load, 1=store). O registrador envolvido na operação é identificado pelos bits 4 a 6 e o endereço de memória a ser acessada é especificado pelos bits 0 a 3, conforme o formato abaixo. 9 8 7 6 5 4 3 2 1 0 1 1 op r r r e e e e A lógica de controle do circuito deverá receber a palavra de memória de forma a decodificar a instrução a ser executada e gerar os sinais de controle adequados para a ULA, os registradores, as memórias e demais componentes do fluxo de dados. 1.4. Dicas sobre o Projeto O projeto do circuito do nanopcs-4 deve adotar a metodologia estruturada proposta [Midorikawa, 2012]. O projeto do fluxo de dados deve seguir o diagrama de blocos da figura 1.1, incluindo componentes básicos conhecidos (registradores tri-state, ULA, etc). Como o projeto inclui muitos componentes, sugere-se que o projeto seja elaborado de forma hierárquica, com o desenvolvimento de vários módulos que devem ser interligados no sistema de nível mais alto. Para cada módulo, após seu projeto, deve-se fazer a simulação de alguns casos de teste de forma a comprovar seu correto funcionamento. 1 Já estudado na experiência Via de Dados com ULA. 2 Para mais informações consulte a apostila da experiência Via de Dados da disciplina Laboratório Digital I (PCS 2011/2305). Processador nanopcs-4 (2012) 6

Já a unidade de controle pode ser projetada usando componentes discretos (p.ex. decodificadores, etc) em conjunto com módulos especificados na linguagem de descrição de hardware VHDL. O diagrama ASM também pode ser desenvolvido de forma hierárquica, onde um estado pode corresponder a um subdiagrama ASM de nível mais baixo. Um exemplo disto pode ser o estado EXECUTA INSTRUÇÃO da figura 1.2. A figura 1.2 abaixo apresenta um fluxograma 3 que ilustra o funcionamento básico do circuito do nanopcs-4. Figura 1.2 Fluxograma do funcionamento do nanopcs-4. No fluxograma da figura 1.2, temos um subprocesso chamado Executa Instrução que engloba as operações executadas durante o processamento das instruções. Este processo é detalhado na figura 1.3. 3 Embora um fluxograma apresente símbolos com formatos semelhantes ao diagrama ASM, estes diagramas de projeto são distintos e com funções bem diferentes. Não confunda os objetivos e recursos de ambos. Processador nanopcs-4 (2012) 7

2. PARTE EXPERIMENTAL Figura 1.3 Fluxograma da execução de instruções do nanopcs-4. O projeto desta experiência será o desenvolvimento do núcleo de um processador, chamado nanopcs-4, que permite a execução de pequenos programas, e é composto por uma ULA, alguns registradores, uma via de dados interna e memórias de programa e de dados. A implementação do projeto deverá OBRIGATORIAMENTE seguir a metodologia proposta em [Midorikawa, 2012] e usado nos projetos do Laboratório Digital. A documentação deve incluir uma descrição completa do funcionamento do fluxo de dados e também da unidade de controle (diagrama ASM) e simulações das várias partes do circuito (p.ex. programação da memória de programa, execução de instruções de transferência de registradores, etc) e do circuito completo. 2.1. Dicas para o Projeto e a Simulação do Projeto no Quartus II O projeto do fluxo de dados do nanopcs-4 pode utilizar componentes padrão da família 74. Segue abaixo uma lista com sugestões de alguns componentes: componente função 7474 Flip-flop tipo D 74126 Buffer tri-state 74161/3 Contador hexadecimal de 4 bits 74173 Registrador de 4 bits com saída tri-state 74175 Registrador de 4 bits 74181 Unidade lógica e aritmética 74189 Memória estática com 16x4 bits 74193 Contador hexadecimal de 4 bits Para a utilização do componente 74189 no projeto, pode-se usar o arquivo memoria189.bdf disponível na página web do curso, que contém um circuito equivalente ao circuito integrado. Contudo o grupo pode desenvolver sua própria descrição VHDL dos módulos de memória RAM para as memórias de programa e de dados. Processador nanopcs-4 (2012) 8

Como o circuito do nanopcs-4 é complexo, as cartas de tempo provenientes da simulação do projeto devem ser divididas nas operações básicas. Deve-se, por exemplo, apresentar uma simulação da programação da memória, outra da execução de uma operação aritmética e lógica e uma outra da execução de uma operação de transferência de dados entre registradores. 2.2. Montagem Experimental do Projeto O circuito projetado deve ser implementado na placa DE2 da Altera com a seguinte designação mínima de sinais: DADO: chaves SW0 a SW9; MODO: chave SW17; B1: botão KEY0; B2: botão KEY1; CLOCK: clock interno da placa DE2; RESET: botão KEY3. O conjunto mínimo de sinais de depuração é composto por: Saída da memória de programa: leds vermelhos LEDR0 a LEDR9; Entrada de função da ULA: leds verdes LEDG0 a LEDG5; Saída do registrador REM: display HEX0; Saída da ULA: display HEX1; Conteúdo do acumulador: display HEX2; Via de dados: display HEX3; Conteúdo do RIMD: display HEX4; Conteúdo do REMD: display HEX5; Conteúdo da saída da memória de dados: display HEX6. Outros sinais do projeto podem usar os outros recursos disponíveis da placa. O planejamento deve conter uma tabela com a designação destes sinais adicionais. DICA 1: Para os testes do circuito, sugere-se que sinais extras de teste e depuração sejam monitorados em leds e displays na placa de desenvolvimento. Estes sinais devem monitorar partes do fluxo de dados e também o estado da máquina de estados da unidade de controle. DICA 2: Tragam cópias do diagrama de blocos ou diagrama lógico do fluxo de dados e do diagrama ASM do projeto base do nanopcs-4 para arguição pelo professor e para serem usados na modificação do circuito. 2.3. Teste do Funcionamento do Circuito a) Verifique o funcionamento do circuito para várias sequências de operações simples, variando também os dados de entrada. Explique os testes programados. b) Estude o seguinte programa, e explique o que acontece até o final de sua execução. Qual é a última instrução a ser executada? 00 MOVE RD,#5 ; RD <= 5 01 CARREGA_ACC RD ; ACC <= 5 02 MOVE RD,#1 ; RD <= 1 03 MOVE R0,RD ; R0 <= RD (R0 recebe 1) 04 SOMA R0 ; ACC <= ACC+R0 (acumulador fica com 6) 05 STORE ACC,#2 ; MD[2] <= ACC (guarda 6 na memória de dados) 06 MOVE RD,#3 ; RD <= 3 07 E_LOG RD ; ACC <= 6and3=2 08 MOVE R0,ACC ; R0 recebe 2 09 JUMP #12 ; próxima instrução no endereço 12 10 CARREGA_ACC R0 ; display de ACC deve mostrar 2 11 JUMP #15 ; vai para endereço 15 12 LOAD R1,#2 ; leitura da MD e transfere MD[2] para R1 13 CARREGA_ACC R1 ; display de ACC deve mostrar 6 14 JUMP #10 ; vai para o endereço 10 15 JUMP #15 ; fica no endereço 15 Processador nanopcs-4 (2012) 9

c) Execute o programa, acionando adequadamente os botões B1 e B2 e a chave MODO. d) Escreva programas para a avaliação das seguintes expressões: I. Y = (2(A B)) AND (C + D) II. Z = (A AND B) OR (NOT(C) OR D) e) Verifique os resultados obtidos executando os "programas", para diferentes valores de A, B, C e D. Não miminize ou modifique as expressões acima. ATENÇÃO: O planejamento deve trazer a codificação binária destes programas para sua execução no Laboratório Digital. 2.4. Modificação do Circuito Base f) O professor irá solicitar a implementação de uma modificação no projeto inicial do nanopcs-4. A especificação será fornecida pelo professor. g) Implemente a modificação no circuito implementado do processador nanopcs-4, com modificações no fluxo de dados e na unidade de controle. h) Documente as modificações e anexe os diagramas (diagrama de blocos, diagrama ASM, diagramas lógicos, etc) no relatório. i) Apresente o funcionamento do circuito modificado, com a execução de um programa de teste que demonstre o correto funcionamento da modificação solicitada. Perguntas: 1. O desenvolvimento do projeto do nanopcs-4 foi desenvolvido usando a metodologia estruturada proposta? O uso desta metodologia facilitou o desenvolvimento do projeto? 2. O diagrama ASM modela o comportamento do circuito digital, controlando a sequência de operações realizadas pelo fluxo de dados. Explique como o diagrama ASM foi alterado na modificação proposta. 3. Duas instruções complexas em um processador são as instruções de multiplicação e divisão binária. Explique como estas instruções podem ser incluídas no processador nanopcs-4. 2.5. Avaliação do Projeto A avaliação da implementação do circuito do núcleo do processador nanopcs-4 será dividida em quatro etapas principais: PARTE I: gravação do programa na memória de programa; PARTE II: execução das instruções; PARTE III: implementação da modificação proposta; PARTE IV: demonstração do funcionamento do circuito modificado. Processador nanopcs-4 (2012) 10

2.6. Sobre o Planejamento e o Relatório O planejamento deve conter OBRIGATORIAMENTE os seguintes itens: Diagrama de blocos do circuito; Descrição detalhada do funcionamento de cada um dos módulos; Relação de sinais extras de teste e depuração a serem monitorados em leds; Diagrama lógico completo do circuito projetado; Diagrama ASM da unidade de controle; Descrição detalhada da implementação da unidade de controle; Simulações com o Altera Quartus II para cada um dos modos de operação do circuito (apresentar as diversas cartas de tempo resultantes); Tabela de códigos binários das instruções do nanopcs-4 descritas na tabela 1.2; Tabela de códigos binários das instruções de transferência de dados entre registradores; Programação dos testes solicitados no item 2.3, com a explicação de cada instrução. O relatório deverá conter: Os principais eventos (fatos, erros, imprevistos) acontecidos na montagem e depuração de cada parte do circuito e na sua integração; Apresentação dos resultados obtidos na parte experimental; Discussão da realização da experiência; Conclusões. 3. BIBLIOGRAFIA Fairchild Semiconductor. TTL Data Book. Mountain View, California, 1978. FREGNI, E. e SARAIVA, A.M. Engenharia do Projeto Lógico Digital: Conceitos e Prática. Editora Edgard Blücher Ltda, 1995. MIDORIKAWA, E.T. Processador nanopcs-1. Apostila de Laboratório Digital, 2004 (revisão de 2011). MIDORIKAWA, E.T. Projeto de Sistemas Digitais. Apostila de Laboratório Digital, versão de 03/2012, 2012. PCS/EPUSP. Unidade Lógica e Aritmética. Apostila de Laboratório Digital. Departamento de Engenharia de Computação e Sistemas Digitais, Escola Politécnica da USP. 2004. PCS/EPUSP. Via de Dados. Apostila de Laboratório Digital. Departamento de Engenharia de Computação e Sistemas Digitais, Escola Politécnica da USP. 2004. PCS/EPUSP. Microprocessadores I. Apostila de Laboratório Digital. Departamento de Engenharia de Computação e Sistemas Digitais, Escola Politécnica da USP. 2002. TOCCI, R. J., WIDMER, N. S., MOSS, G.L. Digital Systems: principles and applications. 11 th ed., Prentice- Hall, 2011. WAKERLY, J. F. Digital Design: principles and practice. 4 th ed., Prentice- Hall, 2006. 4. EQUIPAMENTOS E MATERIAIS NECESSÁRIOS 1 placa de desenvolvimento FPGA DE2 da Altera com o dispositivo Altera Cyclone II EP2C35F672C6. 1 computador PC com programa Altera Quartus II e interface USB. Processador nanopcs-4 (2012) 11