Banco de Registradores

Documentos relacionados
UM PROCESSADOR SIMPLES

EPUSP PCS 3635 Laboratório Digital I. Trena Digital

EPUSP PCS 3335 Laboratório Digital A. Trena Digital

EPUSP PCS 2355 Laboratório Digital. Contadores em VHDL

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

EPUSP PCS 2011 Laboratório Digital GERADOR DE SINAIS

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

Comunicação Serial Assíncrona

Projeto com Linguagens de Descrição de Hardware

Processador nanopcs-4

Processador nanopcs-3

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

Painel Luminoso com LEDs

Interface com Sensor Ultrassônico de Distância

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

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

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

Multiplicador Binário com Sinal

Calculadora Simples em VHDL

CONTROLE PARA SEMÁFOROS DE UM CRUZAMENTO

Painel Luminoso com LEDs

CALCULADORA SIMPLES COM ULA

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

EPUSP PCS 2011 Laboratório Digital GERADOR DE SINAIS

Unidade Lógica e Aritmética

Verificador de Senhas

CONTROLE PARA SEMÁFOROS DE UM CRUZAMENTO

CONTROLE PARA SEMÁFOROS DE UM CRUZAMENTO

Parte # 2 - Circuitos Combinatórios

Desenvolvimento com a placa Altera DE1 Prof. Rodrigo de Paula Rodrigues

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

Sistema de Aquisição de Dados

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

Processador nanopcs-1

Verificador de Senhas

Memória SRAM 64x8 bits

UM PROCESSADOR SIMPLES

APRESENTAÇÃO DO KIT CPLD_EE01

Exercícios de Laboratório 1

Introdução ao Altera DE2. Edson Midorikawa

Capítulo 14. Expandindo as portas de comunicação 8031 com a PPI Interface PPI 8255

SIMULAÇÃO DE CIRCUITOS E DISPOSITIVOS PROGRAMÁVEIS

PROJETO DE SISTEMAS DIGITAIS

Departamento de Engenharia Elétrica e de Computação SEL 405 Lab. de Introdução aos Sistemas Digitais I Profa. Luiza Maria Romeiro Codá PRÁTICA Nº 3:

Exercícios de Sistemas Operacionais 3 B (1) Gerência de Dispositivos de Entrada e Saída

Departamento de Engenharia Elétrica e de Computação SEL 405 Lab. de Introdução aos Sistemas Digitais I Profa. Luiza Maria Romeiro Codá PRÁTICA Nº 6

Barramento. Prof. Leonardo Barreto Campos 1

SIMULAÇÃO DE CIRCUITOS

Capítulo13 Arquiteturas de Dispositivos Lógicos Programáveis Pearson. Todos os direitos reservados.

EPUSP PCS 2021/2308/2355 Laboratório Digital GERADOR DE SINAIS

Introdução ao Projeto de Circuitos com Altera DE2. Edson Midorikawa. Setembro/2012. Altera DE2

Totem Pole, Coletor Aberto e Tristate

Departamento de Engenharia Elétrica e de Computação SEL 606 Laboratório de Sistemas Digitais Prof. Dr. Maximiliam Luppe

SSC510 Arquitetura de Computadores 1ª AULA

Multiplexadores e Demultiplexadores Prof. Rômulo Calado Pantaleão Camara

Organização e Arquitetura de Computadores I

Escola Politécnica de Pernambuco Departamento de Engenharia Elétrica PROGRAMA EMENTA OBJETIVOS

CIRCUITO PARA VERIFICAÇÃO DE SENHAS

Pontifícia Universidade Católica Federal do Rio de Santa Grande Catarina do Sul

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

Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.

Processador: Conceitos Básicos e Componentes

EPUSP PCS 2355 Laboratório Digital. Contadores em VHDL

INTRODUÇÃO: MICROCONTROLADORES

Organização e Arquitetura de Computadores I

EPUSP PCS 2021/2308/2355 Laboratório Digital VOLTÍMETRO DIGITAL

MINISTÉRIO DA EDUCAÇÃO CEFET/SC - Unidade de São José. Curso Técnico em Telecomunicações REGISTRADORES. Marcos Moecke. São José - SC,

Circuitos Integrados. Nível da Lógica Digital (Aula 7) Circuitos Combinacionais. Circuitos Lógicos Digitais Básicos. Multiplexadores (1)

COMPUTADOR. Adão de Melo Neto

Organização e Arquitetura de Computadores I

Memória. Arquitetura de Computadores I. DCC-IM/UFRJ Prof. Gabriel P. Silva

1 AULA 01 FLIP-FLOPS CURSO DE ENGENHARIA ELÉTRICA DISCIPLINA: CIRCUITOS DIGITAIS II PROFESSOR: VLADEMIR DE J. S. OLIVEIRA

Laboratório de Eletrônica Digital Tutorial Quartus II (Procedimentos para Criação e Simulação de Projetos Digitais)

Eletrônica Digital para Instrumentação. Herman Lima Jr.

Arquitetura dos Microprocessadores

NOTAS DE AULA NE7720 SISTEMAS DIGITAIS - II AULA

Projeto de Circuitos Aritméticos

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

Circuitos Lógicos. Profa. Grace S. Deaecto. Faculdade de Engenharia Mecânica / UNICAMP , Campinas, SP, Brasil.

CONTROLE DE UM SERVO MOTOR

ENGC40 - Eletrônica Digital

EXPERIÊNCIA 8 CIRCUITOS ARITMÉTICOS: SOMADORES SUBTRATORES

12/11/13. Obje%vos do laboratório. SST20707 Síntese de Sistemas de Telecomunicações. Síntese de máquinas de estado (FSM) Finite State Machine (FSM)

Parte # 5 - Circuitos Combinacionais

FPGA & VHDL. Tutorial Aula 1. Computação Digital

2 a Lista de Exercícios

PASSO A PASSO COMO CRIAR UM NOVO PROJETO EM SCHEMATIC NO SOFTWARE QUARTUS II CYCLONE IV

Transcrição:

Banco de Registradores Versão 201 RESUMO Esta experiência tem como objetivo o desenvolvimento de um banco de registradores contendo 8 registradores de bits cada. Este circuito deve armazenar um conjunto de valores distintos, que podem ser posteriormente acessados através de duas portas de saída (ou leitura de dados). O banco de registradores também pode ser atualizado através de uma porta de entrada (ou gravação de dados). O projeto desenvolvido será reaproveitado em um projeto posterior durante a disciplina. OBJETIVOS Após a conclusão desta experiência, os seguintes tópicos devem ser conhecidos pelos alunos: Registradores e banco de registradores; Projeto em FPGA; Depuração em placa FPGA; Reaproveitamento de módulos de projetos. 1. INTRODUÇÃO 1.1. Banco de Registradores Um banco de registradores é um componente digital composto por um conjunto de registradores que podem ser acessados de forma organizada. De uma maneira geral, podem ser executadas operações de leitura dos dados anteriormente gravados e de escrita de dados para modificar as informações internas. Este componente é um dos componentes mais importantes do fluxo de dados em um processador. As informações que estão sendo processados em um determinado momento devem estar armazenadas no banco de registradores. A figura 1.1 abaixo ilustra o banco de registradores do processador MIPS [Patterson & Hennessy, 2011]. Figura 1.1 Banco de registradores do processador MIPS. O banco de registradores do MIPS é composto por 2 registradores de 2 bits cada, organizados em uma estrutura com três portas de acesso: duas portas de leitura RD1 e RD2, que mostram dados armazenados em registradores identificados pelas entradas A1 e A2. Esta leitura é feita de forma assíncrona, ou seja, assim que uma das entradas de endereço de leitura A1 ou A2 (ou ambas) for modificada, a respectiva saída mostrará o dado. A terceira porta WD é para gravar um novo dado no registrador identificado pela entrada A. Esta escrita é realizada de forma síncrona com o acionamento da entrada de relógio CLK e pela habilitação da operação através do sinal WE. Banco de Registradores (201) 1

Organização Lógica de um Banco de Registradores 1 De uma forma geral, um banco de registradores pode ser organizado conforme explicado a seguir. Primeiro, temos um grupo de registradores internos ao banco de registradores. Estes registradores devem ter alguns sinais de controle em comum, como por exemplo, os sinais de relógio (clock), de carga paralela (load) e de apagamento do conteúdo (clear). A figura 1.2 apresenta a implementação lógica de duas portas de leitura em um banco de registradores. Cada saída ou porta de leitura é conectada em um multiplexador N1, cuja entrada é selecionada pelo identificador do registrador a ser lido. Todas as saídas dos N registradores são conectados neste multiplexador, resultando em um circuito complexo. Figura 1.2 Implementação lógica de um banco de registradores com duas portas de leitura. A implementação da porta de escrita é um pouco mais complexa, porque somente um registrador deve ter seu conteúdo atualizado. Isto pode ser realizado com auxílio de um decodificador que gera um sinal pode ser usado para determinar o registrador a ser escrito. É importante lembrar que o estado do registrador deve ser alterado somente na borda ativa do sinal de relógio. Figura 1. Implementação lógica da porta de escrita Embora a implementação lógica da figura 1. acima mostre portas lógicas com a combinação do sinal de relógio com cada uma das saídas do decodificador, uma implementação real deve evitar esta solução. Uma alternativa é usar uma entrada de habilitação de escrita do registrador, presente em vários componentes de biblioteca. Um destes componentes é o registrador 717 2. 1 Este item é baseado no apêndice C do livro [Patterson & Hennessy, 2011]. 2 Consulte o manual do componente e veja o funcionamento dos sinais e. Banco de Registradores (201) 2

1.2. Via de Dados Tri-state O conceito de via (ou bus ) foi introduzido para resolver problemas como o mostrado na Figura 1., ou seja, a transferência de informações entre vários registradores. A solução usual para este problema seria colocar uma porta de seleção (multiplexador) na entrada de cada registrador, o que encarece muito o sistema. Contudo, se for possível garantir que neste sistema nunca seja necessário efetuar simultaneamente duas transferências distintas, pode-se utilizar o conceito de via de dados. REG. A REG. B REG. C REG. D REG. E REG. F Figura 1. - Sistema composto de vários registradores, que transferem informações entre si. Uma via de dados é um conjunto de linhas utilizado como caminho comum, que interliga entradas e saídas de vários registradores, de modo que as informações possam ser transferidas facilmente de qualquer um destes registradores para qualquer outro, desde que se utilizem os sinais de controle apropriados. A Figura 1.5 mostra um sistema organizado por vias, com três registradores com saídas tri-state. Figura 1.5 - Sistema composto de vários registradores interligados através de uma Via de Dados. Pode parecer incoerente que todas as entradas e todas as saídas correspondentes estejam ligadas entre si. A incoerência, porém, desaparece se for assegurado que apenas um dos três registradores tenha as suas saídas habilitadas, enquanto que as saídas dos outros dois registradores estejam em seu estado de alta impedância. Por exemplo, suponha que os registradores 1 e estejam com as saídas desabilitadas, enquanto o registrador 2 tem as suas saídas habilitadas. Isto, em essência, desliga as saídas de 1 e da via, de forma que apenas a saída do registrador 2 tenham os seus níveis lógicos presentes nas linhas que compõem a via. Desta forma, os dados do registrador 2 pode ser transferido, por exemplo, para o registrador ou qualquer outro que esteja com sua entrada conectada na via de dados. Uma maneira de resolver o problema de seleção dos registradores envolvidos numa transferência é atribuir a cada registrador um endereço. Na verdade, cada registrador pode ter dois endereços, coincidentes ou não, um como destino e outro como origem. Neste caso, devem ser utilizados circuitos decodificadores de endereço para, a partir dos endereços apresentados, gerar os sinais de habilitação para os registradores escolhidos. A Figura 1.6 mostra o exemplo de um sistema que utiliza esta forma de seleção de registradores, com endereços de bits Banco de Registradores (201)

Figura 1.6 - Seleção de Registradores utilizando Decodificadores. Componentes Tri-state Dentro da lista de componentes SSI e MSI comercialmente disponíveis, temos vários exemplos de circuitos com saída tri-state. Para a função de buffer tri-state, podemos citar os circuitos integrados 7125 e 7126, que possuem a mesma funcionalidade com a diferença do sinal de habilitação (fig. 1.7). O CI 7125 permite que as entradas sejam transferidas para as respectivas saídas quando os sinais de controle estiverem em nível baixo. Figura 1.7 Buffer tri-state 7125. Para a função de registrador com saída tri-state temos o circuito integrado 717 (figura 1.8). Os sinais de entrada G1 e G2 controlam a carga de dados e os sinais de entrada M e N controlam a saída tri-state do registrador. Figura 1.8 Registrador tri-state 717. Banco de Registradores (201)

2. PARTE EXPERIMENTAL A parte experimental desta experiência diz respeito à implementação do circuito do banco de registradores usando um diagrama esquemático pela composição de componentes básicos elementares como registradores, decodificadores e outros. Nesta experiência sobre Dispositivos Programáveis será desenvolvido o projeto utilizando-se o dispositivo Altera Cyclone II EP2C5F672C6. 2.1. Atividades Pré-Laboratório a) Especificação do circuito a ser projetado: O banco de registradores a ser desenvolvido nesta experiência contém 8 registradores de bits cada, com três portas de E/S, sendo 2 portas de leitura e 1 porta de escrita. A figura 2.1 abaixo ilustra a interface externa do componente. Figura 2.1 Interface do banco de registradores. As portas de leitura RD1 e RD2 apresentam os dados armazenados nos registradores identificados pelas entradas A1 e A2, respectivamente. A operação de leitura é realizada de forma assíncrona. As entradas A e WD contêm, respectivamente, a identificação do registrador e o dado a ser gravado na borda ativa do sinal CLK, quando o sinal WE estiver ativado. DICA: embora não presente na especificação acima, acrescentar um sinal CLEAR (ativo em baixo) que apaga o conteúdo do banco de registradores. b) Projeto de circuitos com lógica programável. Antes de implementar o projeto do circuito da experiência, é importante a experimentação dos conceitos de utilização de dispositivos programáveis. O circuito do banco de registradores deverá ser sintetizado na placa de desenvolvimento Altera DE2. Desta forma deve-se: Verificar como o projeto no Altera Quartus II deve ser preparado para que o circuito projetado seja programado na placa de desenvolvimento, conforme apostila Projeto de Circuitos com Quartus II 9.1 [MENEZES et al, 0 ]. Descreva as atividades necessárias. DICA: a leitura completa desta apostila é importante. Após uma leitura cuidadosa, responda o que foi solicitado nesta atividade pré-laboratório. Elaborar um plano de testes para verificar o correto funcionamento do banco de registradores e execute-o através de uma série de simulações. Anexe os resultados no planejamento. DICA: além dos sinais de entrada e saída, verifique outros sinais necessários para verificar o funcionamento do banco de registradores (sinais de depuração). Verificar o funcionamento da ferramenta de depuração física SignalTap II do Altera Quartus II. Como esta ferramenta pode ajudar na atividade de teste e depuração de um circuito? DICA: consultar o manual do software e assistir os vídeos especificados na página da experiência no site do Laboratório Digital. Banco de Registradores (201) 5

2.2. Implementação na placa FPGA Este item será desenvolvido no Laboratório Digital, com a placa DE2 da Altera disponível nas bancadas aos alunos. Experimentação com a placa DE2 c) Usando o software Quartus II, implemente o projeto do circuito do banco de registradores na placa de desenvolvimento DE2 da Altera com a seguinte designação de sinais do projeto: CLK : botão KEY A1 : chaves SW0 a SW2 A2 : chaves SW a SW5 A : chaves SW6 a SW8 WE : botão KEY2 WD : chaves SW9 a SW12 RD1 : leds vermelhos LEDR0 a LEDR7 RD2 : leds verdes LEDG0 a LEDG7 CLEAR : botão KEY1 DICA: lembrem-se que os botões na placa DE2 são ativos em baixo. O projeto deve levar isto em consideração. Use a tabela de designação de pinos da placa DE2. d) Após a programação do projeto na placa Altera DE2, execute o plano de testes desenvolvido no item 2.1.b e verifique os resultados experimentais. Compare-os com as simulações efetuadas. Depuração com SignalTap II e) Modifique o projeto do banco de registradores conforme especificação apresentada pelo professor. f) Consulte a referência Design Debugging Using the SignalTap II Embedded Logic Analyzer e modifique o projeto do banco de registradores para usar a ferramenta de depuração física SignalTap II disponível no Altera Quartus II. DICA: mostre que sinais são necessários para verificar o funcionamento do banco de registradores modificado (sinais de depuração). g) Aplique a ferramenta SignalTap II para monitorar e verificar o funcionamento do banco de registradores modificado. Explique o procedimento de uso do SignalTap II. 2.. Desafio h) Usando os projetos do banco de registradores e da ULA simples, implemente o fluxo de dados representado na figura 2.2 abaixo. Sintetize o circuito na placa Altera DE2. i) Faça as designações de sinais nas chaves e botões da placa DE2 e documente. GRAVA REG1 REG2 ULA simples RESULTADO REG 2 DADO FUNÇÃO ENTRADA Figura 2.2 Fluxo de dados com banco de registradores. j) Apresente os testes realizados para comprovar o correto funcionamento do circuito. Banco de Registradores (201) 6

2.. Atividades Pós-Laboratório k) A partir da análise do funcionamento do circuito projetado e dos conhecimentos obtidos com o desenvolvimento deste projeto, responda as perguntas abaixo. 1. Como podemos garantir que apenas uma das saídas é habilitada a cada vez em uma via de dados tri-state? Explique. 2. Descreva a experiência do grupo no uso de uma placa de desenvolvimento com lógica programável na implementação de um circuito digital.. Comente as diferenças na aplicação da depuração de projetos de circuitos digitais usando as seguintes ferramentas e estratégias: a. Simulador de circuitos digitais; b. Depuração física SignalTap II; c. Depuração física do circuito através da monitoração dos sinais elétricos dos componentes.. Que modificações seriam necessárias para mudar o projeto para um banco de registradores com 2 registradores de 2 bits cada? Apresente um diagrama de blocos.. BIBLIOGRAFIA ALTERA. DE2 Development and education board user manual. 2008. Version 1.2. ALTERA. Design Debugging Using the SignalTap II Embedded Logic Analyzer. In: Quartus II Handbook Version 9.1 Volume : Verification. November 2009. FREGNI, Edson e SARAIVA, Antonio M. Engenharia do Projeto Lógico Digital: Conceitos e Prática. Editora Edgard Blücher Ltda, 1995. MENEZES, M.P.; SATO, L.M.; MIDORIKAWA, E.T. Projeto de Circuitos com Quartus II 9.1. Apostila de Laboratório Digital. Departamento de Engenharia de Computação e Sistemas Digitais, Escola Politécnica da USP. Edição de 2011. MIDORIKAWA, E.T. Circuitos sequenciais. Transparências de PCS2012 Sistemas Digitais II. Departamento de Engenharia de Computação e Sistemas Digitais, Escola Politécnica da USP. 201. MORRIS, Robert L. e MILLER, JOHN, R. (eds.) Projeto de Circuitos Integrados TTL. Editora Guanabara Dois, 1978. RANZINI, E.; HORTA, E. L. Lógica programável. Apostila de Laboratório Digital. Escola Politécnica da USP, 2000. TOCCI, R. J.; WIDMER, N.S.; MOSS, G.L. Sistemas Digitais: Princípios e Aplicações. Prentice-Hall, 11 a ed., 2011. WAKERLY, John F. Digital Design Principles & Practices. th edition, Prentice Hall, 2006.. MATERIAL DISPONÍVEL Circuitos Integrados TTL: 700, 702, 70, 708, 72, 786, 7125, 7126, 718, 717, 7175. 5. EQUIPAMENTOS NECESSÁRIOS 1 placa de desenvolvimento FPGA DE2 da Altera com o dispositivo Altera Cyclone II EP2C5F672C6. 1 computador PC com programa Altera Quartus II e interface USB. Histórico de Revisões E.T.M./201 versão inicial da apostila E.T.M./201 revisão Banco de Registradores (201) 7