Disciplina: Laboratório de Circuitos Digitais

Documentos relacionados
Disciplina: Laboratório de Circuitos Digitais

Disciplina: Laboratório de Circuitos Digitais

Disciplina: Laboratório de Circuitos Digitais. 2ª Prática: Decodificador Display 7 Segmentos

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema.

ARQUITETURA DE COMPUTADORES

Introdução à Engenharia de Computação

2. A influência do tamanho da palavra

Organização de Computadores Como a informação é processada?

ULA Sinais de Controle enviados pela UC

Manual de Instalação da Plataforma Scorpion. 1. Como conectar a Plataforma Scorpion com a Xilinx Starter-3E kit

Figura 01 Visão Geral da Placa

Introdução à Engenharia de Computação

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

O diagrama ASM contém dois elementos básicos: o bloco de estado e o bloco de decisão.

O processador é um dos elementos componentes do computador moderno, sendo responsável pelo gerenciamento de todo o computador.

Componentes do Computador e. aula 3. Profa. Débora Matos

Aula 14: Instruções e Seus Tipos

AULA: Introdução à informática Computador Digital

Disciplina: Introdução à Informática Profª Érica Barcelos

Arquitetura de processadores: RISC e CISC

Organização e Arquitetura de Computadores I

ARQUITETURA DE COMPUTADORES

Introdução à Arquitetura de Computadores

DIMENSÕES (Essas dimensões são válidas para todos os modelos com o mesmo número de entradas e de saídas):

Circuitos de Memória: Tipos e Funcionamento. Fabrício Noveletto

Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle.

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

Dispositivos Lógicos Programáveis

BARRAMENTO DO SISTEMA

Sistemas Microcontrolados

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

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados

3.a Aula Prática Projeto de Circuitos Sequenciais com FPGA. Projeto e simulação de um gerador de frequência

Software Básico. Conceito de Linguagem de Máquina e Montagem: introdução ao Assembly. Prof. MSc. Hugo Vieira L. Souza

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)

Memórias. O que são Memórias de Semicondutores? São componentes capazes de armazenar informações Binárias (0s e 1s)

Montagem e Manutenção. Luís Guilherme A. Pontes

Capítulo 13 Pastas e Arquivos

Memória cache. Prof. Francisco Adelton

1- Scilab e a placa Lab_Uino. 2- Instalação do ToolBox

Sistemas Digitais. Módulo 15 Prof. Celso PLD - DISPOSITIVOS LÓGICOS PROGRAMÁVEIS

Organização Básica do Computador

Introdução à estrutura e funcionamento de um Sistema Informático

Ambiente de desenvolvimento de Programação Assembly MCU 8051 IDE

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE - UFRN DEPARTAMENTO DE INFORMÁTICA E MATEMÁTICA APLICADA DIMAP

IDENTIFICAÇÃO MANUTENÇÃO

Introdução à Arquitetura de Computadores IFES Campus Serra

Conceitos e Evolução Capítulos 1 e 2

Sistemas Computacionais II Professor Frederico Sauer

Introdução à Organização e Arquitetura de Computadores. Prof. Leonardo Barreto Campos 1

Informática I. Aula 4. Aula 4-11/09/2006 1

Mapeamento de memória e programação da IHM do controlador CP-WS41/8DO8DI4AO2AI2TAI

2 Formalidades referentes ao trabalho

Computador Digital Circuitos de um computador (Hardware)

ORGANIZACÃO DE COMPUTADORES PROCESSADORES CHIPS TRANSISTORES

Modos de entrada/saída

Manual de instalação do Cartão da OAB e baixa do certificado A3 AR Soluti - Goiânia. Versão 1.0 de 22 de setembro de Classificação: Ostensivo

Organização e Arquitetura de Computadores I

O EDITOR DE APRESENTAÇÕES POWER POINT

Paralelismo a Nível de Instrução

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui.

Curso Superior de Sistemas de Telecomunicações Unidade São José. Disciplina: Síntese de Sistemas de Telecomunicações 7º Fase

Sistemas Operacionais Aula 2

Sistemas Operacionais. Prof. André Y. Kusumoto

MODELAGEM E SIMULAÇÃO

Introdução à Arquitetura de Computadores. Renan Manola Introdução ao Computador 2010/01

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

2.1 Montando o cabo serial Conectando o receptor ao PC Instalando o programa (DRU)... 5

Características técnicas Baseado no ATMega da empresa AVR, fabricante de micro-controladores em plena ascensão e concorrente do PIC Pode usar ATMega

CENTRAL PRCESSING UNIT

Estrutura de um Computador

MANUAL DE INSTRUÇÕES DEMARCADOR RODOVIÁRIO

Cerne Tecnologia e Treinamento (21) (11) cerne@cerne-tec.com.br MSN: cerne-tec@hotmail.com Skipe: cerne-tec

OFICINA DE POWER POINT

Portal do Projeto Tempo de Ser

Medidor Powersave V2 USB

GUIA DE LABORATÓRIO DE SISTEMAS DIGITAIS PARA O CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO

LASERTECK SOFTECK FC MANUAL DO USUÁRIO

Comunicação Serial com o AVR ATMEGA8

Passo 3: No diagrama de blocos com o menu de funções aberto (Figura anterior), abra a função express Signal Analysis e escolha Simulate signal.

CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO

DECODIFICADOR DE DISPLAY DE 7 SEGMENTOS COM LATCH

Exercício Opcional: FAMILIARIZAÇÃO COM O SOFTWARE CIRCUIT MAKER 2000

CentreWare Web e superior Agosto de P Xerox CentreWare Web Identificar e Aplicar o Firmware Patch para Escanear

Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar

Organização de Computadores 1. Prof. Luiz Gustavo A. Martins

Para criar uma nova apresentação: 1.Escolha a opção Apresentação em Branco Clique no botão Ok

1. Introdução - contextos de aplicações

FPGA Field Programmable Gate Array

Arquitetura de Computadores Moderna

R O B Ó T I C A. Sensor Smart. Ultrassom. Versão Hardware: 1.0 Versão Firmware: 1.0 REVISÃO

Circuitos Digitais 144L

Desmistificando o Programa de Computador

Princípios de funcionamento dos computadores

Técnico/a de Refrigeração e Climatização

Transcrição:

Universidade Federal de São Carlos Disciplina: Laboratório de Circuitos Digitais Prof. Dr. Emerson Carlos Pedrino 9ª Pratica: Computador de 16 bits Data:17/07/2014 Nome: Adrián Agüero Faraldo RA: 612227 Introdução O seguinte trabalho é um relatório dos fatos realizados nas aulas do dia 03 de julho do 2.014 onde foi estudado a arquitetura e funcionamento de cada componente de um computador de 16 bits. Durante a prática foi desenhado os diagramas esquemáticos, a simulação e execução do circuito no PLD da família ALTERA e software de desenvolvimento chamado Quartus II. 1

Materiais utilizados Altera Cyclone II: é um FPGA (Field Programmable Gate Array) de baixo costo, é dizer, é um dispositivo semi-condutor que contem blocos lógicos inter-conetados e sua funcionalidade pode ser configurável mediante um linguaje de descrição de hardware. A lógica programável pode realizar desde funções tão sencilhas como las levadas por uma porta lógica hasta complexos sistemas num chip. Quartus II: é uma ferramenta de software produzida pela Altera para o análises y la sínteses de desenhos realizados em HDL. Permite a função de desenho de esquemas lógicos, programação em linguagens de descrição de hardware, simulação e execução do um projeto. Desenvolvimento Processador O processador, é o componente principal do computador e outros dispositivos programáveis, que interpreta as instruções contidas nos programas e processa os dados. Os processadores fornecem a característica fundamental do computador digital (a 2

programabilidade) e é umo dos componentes necessários encontrados nos computadores de qualquer tempo, junto com a memoria principal e os dispositivos de entrada/saída. Componentes: Os componente de um processador são: Contador de programa (PC): é um registrador que indica qual é a posição atual na sequência de execução de um computador. Registro de instruções (IR): é um registrador onde se armazena a instrução que esta sendo executando. Nos processadores simples cada instrução que vai ser executada é cargada no registrador de instruções que a vai conter até que seja decodificada, preparada e ao final executada, um processo que pode ser realizado em vários passos. Acumulador (AC): é um registrador no que são armazenados temporalmente os resultados aritméticos e lógicos intermédios que serram tratados pelo circuito operacional da unidade aritmético lógica (ALU). Sim um registrador como um acumulador, seria necessário escrever o resultado de cada cálculo, como suma, multiplicação e deslocamento, etc... na memoria principal, e talvez esse dado ter que ser lido imediatamente outra vez para na seguinte operação. O acesso á memoria principal é significativamente mais lento que o acesso a um registro como o acumulador porque la tecnologia usada para la memoria principal é mais lenta e barata que a usada pelos registrador interno do CPU. 3

Unidade Aritmética Lógica (ALU): é um circuito integrado que pode calcular operações matemáticas como sumar, restar, multiplicar, dividir, incrementar, decrementar, etc. e operações lógicas como and, or, xor, not, entre outras. Memory Address Register (MAR): em português Registrador de Endereços de Memoria, é um registrador específico de alta velocidade, integrado no processador. Este registrador contem o endereço do dado que se quere ler ou escrever. O registrador está conectado com o bus de endereços, e o valor dele se reflexa neste bus. O número de endereços que é possível direcionar com um processador depende do tamanho do MAR. Se o MAR tem n bits de tamanho então a capacidade de direcionamento é de um máximo de palavras. Memory Data Register (MDR): em português Registrador de Dados de Memoria, é um registrador específico de alta velocidade e pouca capacidade, integrado no processador. O registrador esta conectado ao bus de dados e a través dele, o processador pode ler ou escrever um dado neste bus, que a continuação chegara á memoria ou a uma porta de entrada/saída. Unidade de Controle (UC): é o componente responsável de funcionamento do processador, ele executa três ações básicas intrínsecas e pré-programadas pelo próprio fabricante do processador, são elas: busca (fetch), decodificação e execução. 4

Ao iniciar sua operação, realiza uma operação cíclica, tendo como base essas três ações. Dependendo do tipo de processador, a unidade de controle pode se ser fixa ou programável. A unidade fixa é aquela unidade que já vem com todo o conjunto de instrução programado em uma arreglo lógico programávle que é construída pelo fabricante,dentro da UC. Inicialmente, a UC de controle fornece o endereço de memória de onde deve retirar um byte ou mais, conhecido como chunk, esse chunk pode conter um código de operação opcode, ou um operando também conhecido como dado. Lembre-se, na primeira posição de memória deve sempre ser gravado um opcode, pois só o opcode pode informar para a UC qual ação deve ser tomada depois. Além de controlar a posição de memória que contém a instrução corrente que o computador está executando a UC, ao decodificar o opcode, informa à ULA qual operação a executar: soma ou subtração nos processadores de 8 bits. Nos processadores de 16 bits podem ser efectuadas as instruções de soma,subtração, divisão e multiplicação. Uma característica muito importante de nota é que a arquitetura de um processador pode ser orientada de dois tipos: por registrador ou para a memória. Se for orientada para registradores como no caso da arquitetura Intel, a ULA, após executar qualquer operação lógica ou aritmética, sempre vai armazenar o resultado no registrador acumulador. No caso de ser orientado para memória, como é o caso dos microprocessadores da Motorola, nem sempre o resultado é armazenado no acumulador, podendo esse ser armazenado em qualquer posição de memória. Terminada a primeira instrução, a unidade de controle auto incrementa um contador, chamado de contador de programa e vai para a próxima instrução (tipicamente localizada na próxima posição da memória (endereço de memória), a menos que a instrução seja uma instrução de desvio informando o computador que a próxima instrução está em outra posição). Memoria: Memória é um termo genérico para designar componentes de um sistema capazes de armazenar dados e programas. Podem ser RAM, EEPROM, etc. Entrada/saída: é um termo indicando entrada (inserção) de dados por meio de algum código ou programa, para algum outro programa ou hardware, bem como a sua saída (obtenção de dados) ou retorno de dados, como resultado de alguma operação de algum programa, consequentemente resultado de alguma entrada. São exemplos de unidades de entrada: chaves, botões, etc. e de unidades de saída telas, displays, leds, etc. 5

Detalhes de desenho: Uma das caracteristicas principais de um processador é a largura de suas operações. O processador que sera implementado por exemplo é um processador de 16 bits, é dizer, que ele é capaz de trabalhar com dados e instruções de tamanho de até 16 bits. Onde para as instruções os primeiros 8 bits mais significativos correspondem ao código da operação (Opcode) e os outros 8 bits menos significativos correspondem ao endereço de memoria (Address) onde esta armazenado o dado que vai ser utilizado pela instrução. Uma vez definido a largura das instruções e dos dados, o seguinte passo é definir o código ensamblador que vai ser utilizado, este será fixo para o processador. Normalmente algumas das operações comuns dentro de qualquer processador são as seguintes: Funcionamento: Lembra que o funcionamento básico de processador é buscar (fetch), decodificar(decode) e executar (execute). E eles tem as seguintes ações: 6

Para conhecer melhor o funcionamento do processador, a continuação se observa a execução de um programa passo a passo: O exemplo é A = B + C onde B corresponde ao endereço de memoria 11, C ao endereçõ 12 e A ao endereço 10. E as operações já estavam definidas no linguagem ensamblador antes presentado. Se detalha o funcionamento completo da primeira instrução (realizada em os três passos: busca, decodificar e executar) as seguintes instruções só são decriptas em seu funcionamento geral, explicando os feitos mais importantes. Para a instrução LOAD B (02 11) temos: 1) Passo Cero (Caso inicial) Para o analise da execução do programa se utiliza os diagramas de datapath. Nesta imagem podemos observar como o primeiro estado do processador é o estado de reset onde todos os registradores tornam para o valor 0. 7

Estado inicial Estado final depois da primeira instrução. Então como o registrador memory_write (dedicado controlar a forma de acesso á memoria) também é 0 a memoria trabalha em modo de leitura o que produze que o bus MDR tenga cargado o valor do registrador MAR (que também é cero) e que contem a primeira instrução do programa que no exemplo é 02 11 o bem LOAD B. Lembre que o valor deste endereço de memoria tem que uma instrução e não um dado. 2) Primeiro passo. (Busca): Aqui o registrador IR guarda o valor de bus MDR (02 11). Incrementa em um o valor registrador PC (de 00 a 01), e atualiza o valor de MAR (de 00 a 11) e prepara MDR com o valor do endereço marcado na MAR, para o exemplo MDR passa a 00 04 Observe como já foi preparado os valores da nova instrução para o seguinte passo ou ciclo do clock. 3) Segundo Passo (Decodificar): Para a descodificação o processador identifica qual é a operação que se deseja realizar, esta esta en IR[15..8] que é 02 o bem LOAD para o exemplo. Uma vez identificada a operação o registrador MAR muda para o valor do endereço da instrução que esta em IR[7..0] que te tem o valor 11 o bem B. Observe como aqui também foi preparado os valores da nova instrução para o seguinte passo ou ciclo do clock. 3) Terceiro Passo (Execução): 8

Para a execução o valor de MDA que era 11 vai para o RA e imediatamente o MDA passa para o valor do registrador PC que apontava á seguinte instrução que tém o endereço 01 E é assim como só utilizando os três estados (busca, decodificar, executar) é possível realizar qualquer operação em memoria que tinha alguma das ações conhecidas pelo processador. Para a instrução ADD C (00 12) temos: Estado inicial Estado final depois da segunda instrução. Depois de realizar os três passos anteriores, ficara o novo valor dentro da memoria do ALU (esta operação se realiza no mesmo instante de chegada dos dois dados, lembre executa seu trabalho como um circuito combinacional). Para a instrução STORE A (01 10) temos: Depois de realizar os três passos anteriores, o valor armazenado dentro do ALU passa para o AR e deste registrador passa para o endereço de memoria 10. E até aqui vai o programa. Se o processador não encontra uma instrução valida por exemplo a chegar ao final do programa de exemplo, este permanecera quieto nessa posição de memoria. (Ou sino o mesmo continuaria avançando pela memoria em um bucle infinito). Implementação do processador de 16 bits em Verilog. Para implementar todos os conceitos estudados do processador em verilog se deve seguir os seguintes pasos 9

1. Criar um novo projecto na plataforma Quartus II Pressionar File -> new -> new proyect no menu do programa. Aparecera uma ventana de dialogo com 5 passos. Na primeira deve-se selecionar o diretório onde ficara o projecto e escrever sua nome. Na segunda, pressionamos Seguinte. Na terceira deve-se selecionar a família do dispositivo e seu nome. Em nosso caso é Cyclone II e EP2C70F672C7. Esta informação está na placa no chip principal. Pressionar seguinte para todas as paginas seguintes. Pressionar finalizar 2. Criar um arquivo Verilog HDL (em File -> New.. -> Verilog HDL File), copiamos o seguinte código. Se define as portas de entrada e saída do processador com o padrão anterior onde os datos tem um tamanho de 16 bits, as instruções são de 8 bits e a quantidade de memoria mapeable é. Também são definidas as ações que conhecera o processador como fetch, decode, add, load, jump, etc. As unicas entradas são o reset e o clock. Depois definimos o lugar onde vai ser armazenado os programas que o processador devera executar, e para isso criamos uma memoria com dados de 16 bits e com uma capacidade de 256 endereços. 10

Nas seguintes duas imagens, se detalha o funcionamento dos estados essenciais do processador como o fetch, decode e execute e é desenvolvido as ações de cada instrução da linguagem ensamblador que o processador vai conhecer. 11

Finalmente se adiciona as ações que tem que ser realizadas depois de uma mudança de estado o atualização do IR ou do PC para preparar os dados para o próximo clock. 3. Compilar pressionando Ctrl + L. Para conhecer melhor seu funcionamento podemos observar sua diagrama esquema clickeando sobre Tools -> Netlist Viewers -> RTL Viewers 4. Criamos um Diagrama de Bloques e utilizamos nosso circuito através de um simbolo o paquete. Para utilizar nosso circuito selecionamos Arquivo -> novo -> Diagrama de bloque. Logo fazer dois click na área de trabalho e aparecera uma ventana onde pode-se procurar os componentes que precisamos Para que nosso circuito este dentro dos componentes do projeto devemos primeiro selecionar a opção File -> Create Update.. -> Create Symbol for Current File e será agregado á carpeta Proyect. Movendo os componentes e juntando-los devera ficar assim: 12

Se coloco 4 controladores de display de 7 segmentos para presentar os resultados dentro do registrador AC. 5. Colocar nomes aos pinos Para colocar os nomes aos pinos, deve selecionar só uma entrada ou saída e colocar seu nome correto para o sistema. Para nosso trabalho os pinos de entrada são sw[numero] e para as saídas LEDG[numero] para dar nome aos LEDs verdes da placa. 6. Cargar arquivo dos pinos Para que o software identifique a placa que estamos utilizando temos que cargar o arquivo de pinos, então selecionamos a opção Assignments -> Importar assignments, logo procuramos nosso arquivos de pinos dentro de nossa computadora e pressionamos aceitar. Compilamos de novo, como no passo 3. 7. Inicializar a memoria com um programa Podemos inicializar a memoria já seja utilizando a interface gráfica fornecida por Altera no programa Quartus II o bem escrevendo os dados em código no formato presentado na figura da direta: 13

Inicialização a través da interfaz grafica do Quartus II Inicialização a traves do código 6. Simulação do circuito Para simular o circuito devemos seguir os seguintes passos: Ir para file -> novo -> vector waveform Insertar as entradas e saídas fazendo click direito sobre a pantalha de simulação e logo pressionar a opção insertar, uma vez aqui, pressionamos listar e agregar todos os pinos. E aceitar. Apos isso, agregamos as sequência de entradas com respeito ao tempo para o circuito, para isso selecionamos a ferramenta forma de onda e arrastre o mouse sobre a linha da entrada que desejamos trocar. Em nosso exemplo quedara assim: 14

As únicas duas portas de entrada são o relógio e o botão reset assim, que colocamos a entrada de reset em alto porque ele é uma entrada inversora. E configuramos a porta clock com a função onda de relógio na barra de ferramentas. Se analisamos as saídas da simulação observamos que cada três pulsos são executadas as operações da memoria (porque são os três pulso de clock precisados pelo processador para realizar as ações de fetch, decode e execute). O programa fez o seguinte Para a primeria instrução podemos observar que acontece o mesmo comportamento estudado no exemplo anterior, o reset coloca todos os registradores a cero, coloca no bus de MDR o valor da primeira instrução, no passo do fetch é cargado o IR com o valor de MDR e se incrementa o valor de PC. No seguinte passo se descodifica a instrução 02 10, é dizer, se deixa MDA puntando ao valor do endereço 10 e no seguinte estado se carga o valor AAAA no AC como é possível observar na saída AC_register que esta conectado a los Displays. E assim o processo se repite para cada instrução até que o processador não encontra uma instrução conhecida o chega ao final do programa. De novo é interessante notar que durante o final de cada passo, o registrador MDA muda para o valor que vai ser necessário no seguinte passo. 7. Executar desenho na placa. Finalmente para executar nosso desenho dentro da placa temos que selecionar a opção ferramentas -> programar. Selecionar nossa placa se estão instalados os drivers da placa. 15

Se não temos que ir para administradão de dispositivos -> atualizar drivers do dispositivos desconhecido -> procurar o diretório onde estão os drivers da placa (estos são baixado da página web do fornecedor da placa ) -> aceitamos. Executamos o projeto, testamos se esta tudo bem. 16

Conclusão Durante esta última prática se presento o funcionamento do elemento mais importante e poderoso de um computador, o processador, ele qual da a capacidade de realizar qualquer tipo de instrução complexa utilizando as operações básicas do processador em simples 3 passos (fetch, decode e execute). Para este projeto se utilizo todos os conceitos estudados nas praticas anteriores, ALU, Bloque de Memoria, Maquinas de Estados, circuitos sequenciais, clock, uso de displays 7 segmentos, bibliotecas de funções fornecidas pela Altera. Todo desenhado no linguagem de descripção de Hardware Verilog. Finalmente se observo o comportamento do processador para um programa que carga, suma, guarda os resultados, e os processos foram presentados a traves de LED y displays. Bibliografia http://es.wikipedia.org/wiki/unidad_central_de_procesamiento, no dia 17-07-2.014 17