Você está na página 1de 3

Laboratrio de Sistemas, Processadores e Perifricos (SPP) o e MIC-1: Unidade Lgica e Aritmtica (ULA) o e

Prof. Luiz T. S. Mendes, Prof. Gustavo G. Parma


Objetivos: Implementar e simular a ULA necessria ao MIC-1 a

Introduo Terica ca o

O MIC-1 o exemplo de microprocessador descrito no cap e tulo 4 do livro Organizaao Estruturada c de Computadores de Andrew S. Tanenbaum. O objetivo do conjunto de aulas prticas de SPP refea rentes ` linguagem VHDL ser construir e, posteriormente, simular um prottipo deste processador, a a o implementado exclusivamente nesta linguagem. O MIC-1 ser constru em 6 etapas, das quais 5 sero executadas no laboratrio: a do a o 1. Unidade Lgica e Aritmtica (ULA); o e 2. Deslocador; 3. Banco de registradores; 4. Via de dados; 5. Unidade de Controle; 6. Controle de acesso ` memria externa. a o A ultima etapa (controle de acesso ` memria externa) dever ser executada em separado por a o a cada aluno, como parte do trabalho prtico a ser entregue ao professor da disciplina terica. E a o importante ainda observar que algumas etapas sero constru a das com elementos j elaborados nas a etapas anteriores. Portanto, em cada aula fundamental estar sempre preparado quanto aos seguintes e itens: 1. Trazer sempre o livro-texto (Tanenbaum); 2. Ter em mos as notas de aula de VHDL e quaisquer anotaes referentes `s etapas anteriores; a co a 3. NUNCA se esquecer de fazer cpia de segurana, em disquete, do trabalho desenvolvido ao longo o c da aula. Basta salvar o arquivo com extenso .VHD. a

MIC-1: Unidade Lgica e Aritmtica o e

A Unidade Lgica e Aritmtica (ULA) do MIC-1 responsvel por todas as operaes lgicas e o e e a co o aritmticas a serem executadas sobre os operandos, os quais estaro sempre contidos em registradores e a internos de 32 bits. Note que, dependendo da operao a ser executada, um ou dois operandos podem ca ser especicados, e que o resultado da operao tambm sempre ser armazenado em 32 bits. ca e a Como nos processadores comerciais, o tipo de operaao a ser executada pela ULA denido pela c e instruo de mquina (opcode) que foi buscada (fetched) na memria de programa e que est sendo ca a o a

Figura 1: ULA a ser implementada.

correntemente decodicada pela Unidade de Controle (UC). Esta ultima, com base no opcode, carrega os operandos adequados nas entradas da ULA, e ativa os sinais de controle que denem a operaao c a ser executada. No MIC-1, esto previstos 6 sinais de controle para especicar a operaao a ser a c executada, mas apenas 16 das 64 combinaoes poss c veis destes sinais so signicativas (tabela 4.2 do a livro-texto). Alm da sa correspondente ao resultado da operaao especicada, a ULA disponibiliza ainda e da c dois sinais de status (ags), denominados N e Z. Estes ags indicam, respectivamente, que o resultado da operaao um nmero negativo ou zero. A gura 1 a seguir resume as entradas e sa c e u das da ULA.

Parte Experimental

A parte experimental consiste da elaborao e simulao de um componente VHDL que implemente as ca ca funes da ULA. Este componente dever ter as entradas e sa co a das especicadas na gura 1. Atenao c para os seguintes detalhes: 1. Como a ULA executar operaes aritmticas envolvendo grandezas (pinos) do tipo a co e STD LOGIC VECTOR, com e sem sinal, ser necessrio acrescentar as seguintes declaraoes a a c no in do arquivo: cio USE IEEE.STD LOGIC SIGNED.ALL; USE IEEE.STD LOGIC ARITH.ALL; 2. As entradas A, B, F e a sa Y devem ser implementadas empregando-se o tipo da STD LOGIC VECTOR. 3. A ULA necessria ao projeto do MIC-1 pode ser implementada de duas formas distintas: a (a) Como tero de ser testadas as 16 combinaoes poss a c veis da entrada F (tabela da Figura 4.2 do livro texto), a lgica ser mais simples implementando-se um processo para a execuao o a c destes testes. Neste processo, sugere-se o uso da construao CASE para implementar os c testes e atribuioes referentes ` entrada F, ao invs de um conjunto de IFs. O CASE c a e e mais compacto e elegante, permitindo melhor compreenso da lgica. a o (b) Apesar da soluao do item anterior ser a soluo mais bvia, ela ir consumir muitos recursos c ca o a da FPGA e muito tempo de compilao. Desta forma sugere-se a implementao da Figura ca ca 3-19, considerando, entretanto, nmeros de 32 bits. A Figura 3-19 pode ser separada em u quatro blocos principais: somador completo, decodicador, lgica combinacional e lgica o o para a manipulao/habilitaao dos dados de entrada. Esta implementao mais rpida ca c ca e a de ser compilada e consumir menos recursos da FPGA. a 2

4. Atenao com a atribuiao de estados aos ags N e Z. Deve-se lembrar que, na atribuiao de c c c estados a sinais de sa da, o lado direito da atribuio nunca pode ser outra sa ca da, mas sempre uma entrada ou um sinal interno (SIGNAL). Assim, por exemplo, invlida a construo (cone a ca siderando N e Y pinos de sa da) N <= Y (31); estas situaes podem ser contornadas com o uso de um SIGNAL. co 5. Finalmente, deve-se ter em mente que, sempre que poss vel, devemos evitar o uso de processos em aplicaes VHDL, de forma a acelerar o processo de compilao. Por exemplo, o processo co ca PROCESS BEGIN IF (condicao) then x <= 1 ; ELSE x <= 0 ; ENDIF END PROCESS; pode ser completamente substitu pela atribuiao condicional na forma do c x <= 1 when (condicao) else 0 ;

Você também pode gostar