Enunciado

Transcrição

Enunciado
Departamento de Engenharia Electrotécnica e de Computadores
Microprocessadores 2º sem 2005/2006
Instituto Superior Técnico - Universidade Técnica de Lisboa
LEEC
MICROPROCESSADORES
1º Trabalho de Laboratório
Unidade de Processamento
Objectivo: Pretende-se que os alunos compreendam a metodologia usada na síntese, implementação e teste de uma
Unidade de Processamento elementar. O trabalho terá uma duração de 2 semanas. Haverá uma avaliação parcial do
trabalho ao fim da primeira semana. O relatório final será entregue na aula de laboratório da segunda semana. O
trabalho deverá ser preparado (projecto e edição dos esquemas) fora do horário de laboratório, destinando-se as 4 horas
de laboratório à resolução de eventuais problemas e demonstração do trabalho realizado. Aconselha-se, para facilitar a
execução do trabalho, a consulta dos textos “Manual de Introdução ao Xilinx” e “Notas sobre utilização de Símbolos e
Buses em Xilinx” disponíveis na página da cadeira.
1. INTRODUÇÃO
Pretende-se projectar uma Unidade de Processamento (UP) de 4 bits composta por uma Unidade de Armazenamento
(UA), uma Unidade Funcional (UF) e pela lógica combinatória necessária à interligação dessas unidades.
2. UNIDADE FUNCIONAL (UF)
A Unidade Funcional é um circuito combinatório, que se subdivide internamente num módulo aritmético e num módulo
lógico. A UF recebe 2 operandos, denominados A e B (de 4 bits cada), executa uma microoperação sobre eles, e coloca
o resultado na saída, denominada Y (de 4 bits). A microoperação a executar sobre os operandos A e B é especificada
pelas 3 entradas adicionais da UF denominadas F2, F1,F0. A primeira metade das microoperações é de carácter
aritmético (executadas no módulo aritmético da UF) e a restante metade de carácter lógico (executadas no módulo
lógico da UF). O conjunto das 8 microoperações a implementar está descrito nas tabelas I, II, III e IV.
Cada grupo implementa apenas uma das tabelas. Para escolher a tabela que corresponde ao seu grupo, use o dia
da semana em que realiza o laboratório. Se o docente por lapso se esqueceu de lhe atribuir um número de grupo
contacte o mesmo por e-mail assim que possível.
F2 F1 F0
Microoperação
Descrição
000
Y=A
Transferência de A
001
Y = A -B
Subtracção
010
Y = A+B
Adição
011
Y = A+1
Incremento de A
100
Y = NOT A
NOT (bit a bit)
101
Y = A OR B
OR (bit a bit)
110
Y = A XOR B
XOR (bit a bit)
111
Y = A AND B
AND (bit a bit)
Tabela I: Microoperações a implementar na UF nas sessões de Segunda-feira
1 de 8
Departamento de Engenharia Electrotécnica e de Computadores
Microprocessadores 2º sem 2005/2006
Instituto Superior Técnico - Universidade Técnica de Lisboa
LEEC
F2 F1 F0
Microoperação
Descrição
000
Y = A-B
Subtracção
001
Y = A –1
Decremento de A
010
Y = A+B
Adição
011
Y=A
Transferência de A
100
Y = A NAND B
NAND (bit a bit)
101
Y = A AND B
AND (bit a bit)
110
Y = NOT B
NOT (bit a bit)
111
Y = A OR B
OR (bit a bit)
Tabela II: Microoperações a implementar na UF nas sessões de Terça-feira
F2 F1 F0
Microoperação
Descrição
000
Y = A+B
Adição
001
Y = B+1
Incremento de B
010
Y=B
Transferência de B
011
Y = A-B
Subtracção
100
Y = NOT A
NOT (bit a bit)
101
Y = A XOR B
XOR (bit a bit)
110
Y = A OR B
OR (bit a bit)
111
Y = A AND B
AND (bit a bit)
Tabela III: Microoperações a implementar na UF nas sessões de Quarta-feira
F2 F1 F0
Microoperação
Descrição
000
Y=B
Transferência de B
001
Y = B –1
Decremento de B
010
Y = A+B
Adição
011
Y = A-B
Subtracção
100
Y = A NOR B
NOR (bit a bit)
101
Y = A AND B
AND (bit a bit)
110
Y = A NAND B
NAND (bit a bit)
111
Y = NOT B
NOT (bit a bit)
Tabela IV: Microoperações a implementar na UF nas sessões de Quinta-feira
2 de 8
Departamento de Engenharia Electrotécnica e de Computadores
Microprocessadores 2º sem 2005/2006
Instituto Superior Técnico - Universidade Técnica de Lisboa
LEEC
F2 F1 F0
Microoperação
Descrição
000
Y = A+1
Incremento de A
001
Y = A+B
Adição
010
Y=A
Transferência de A
011
Y = A –1
Decremento de A
100
Y = A NOR B
NOR (bit a bit)
101
Y = NOT A
NOT (bit a bit)
110
Y = A XOR B
XOR (bit a bit)
111
Y = A NAND B
NAND (bit a bit)
Tabela V: Microoperações a implementar na UF nas sessões Sexta-feira
Além da saída Y (de 4 bits), a UF possui 3 bits de saída (flags), que assinalam o seu estado. O conjunto das 3 flags a
implementar encontra-se descrito na tabela VI.
Cada grupo implementa apenas uma das linhas da tabela seguinte. Para escolher a linha que lhe corresponde,
use o número do seu grupo.
Grupo
Flags
G1
C, P, Po
G2
V, Z, N
G3
C, Z, Po
G4
V, P, N
G5
V, P, Po
G6
C, Z, N
G7
V, Z, Po
G8
C, P, N
G9
V, C, Z
Tabela VI: Flags a implementar na UF
A flag C (de Carry) é activada (C=1) quando o módulo aritmético gera um carry. A flag N (Negative) deve indicar o
sinal algébrico do resultado da microoperação executada no módulo aritmético (activa quando o valor é negativo). A
flag V (de oVerflow) é activada (V=1) quando o módulo aritmético gera um overflow. A flag Po (de Positive) à
semelhança da flag de Negative é activada quando o resultado à saída do módulo aritmético representa um número
positivo e diferente de zero.
A flag Z (de Zero) é activada (Z=1) quando o resultado da microoperação executada é identicamente zero (ou seja,
Y=0000). A flag P (de Parity) é activada (P=1) quando o resultado da microoperação contém um número par de bits a
1 (exemplos: Y=1010, Y = 0000, Y=1111, etc.).
Quando a operação seleccionada pelos sinais F2, F1 e F0 diz respeito a uma operação realizada pela unidade lógica
(F2=1) as flags C e V devem vir desactivadas.
Por inspecção das microoperações aritméticas que a UF deve realizar, depreende-se imediatamente que o desenho do
módulo aritmético se centra num somador/subtractor de 4 bits (cujas operandos são determinados por lógica
combinatória adicional controlada por F2,F1,F0).
Pode utilizar um somador já implementado no Xilinx (nesse caso, existe uma penalização de 1 valor) ou desenhar o
somador à custa de somadores completos de 1 bit (nesse caso, não existe qualquer penalização). Sugestão: comece
por utilizar o somador já implementado no Xilinx e só se lhe sobrar tempo é que deverá utilizar os somadores completos
de um bit. Dependendo da versão do livro a que tiver acesso, consulte a figura 3-31, página 138, de M. Mano e C.
Kime, “Logic and Computer Design Fundamentals”, 2nd Edition Updated, Prentice-Hall, ou a figura 5-4, página 205,
de M. Mano e C. Kime, “Logic and Computer Design Fundamentals”, 3rd International Edtition, Prentice-Hall.
3 de 8
Departamento de Engenharia Electrotécnica e de Computadores
Microprocessadores 2º sem 2005/2006
Instituto Superior Técnico - Universidade Técnica de Lisboa
LEEC
Projecte a UF e desenhe o esquema respectivo utilizando o Xilinx ECS (Editor de esquemas). O projecto da UF deverá
consistir no desenho dos seus módulos aritmético e lógico, e na geração das 3 flags.
Sugestões:
Comece por identificar o conjunto de linhas de entrada e saída (de dados e de controlo) necessárias para
que a UF tenha o funcionamento pretendido, e concretize e estruture as suas idéias antes de começar o
desenho no Xilinx;
Faça uso intensivo de símbolos implementados pelos alunos (consulte o manual “Notas sobre utilização
de símbolos e buses em Xilinx”). Deverá não só ser criada uma macro UF (final) , mas também é
aconselhável que se utilizem símbolos para definir os módulos aritmético e lógico e blocos internos destes
(note que alguma lógica que constitui esses módulos é “repetida” para cada bit);
Não desenvolva esquemas demasiado grandes. Antes de começar a editar um esquema, mude o seu
tamanho para A4 ou A3. Se o esquema não couber numa folha A3, é sinal de que o alunos o deve dividir
em vários símbolos.
Faça uso intensivo de buses, pois simplificam bastante o projecto deste tipo de circuitos;
Aplique a todas as linhas de interface com o exterior (quer sejam buses ou linha de controlo) um
“I/O Marker” de entrada ou saída;
Através de simulações, verifique o funcionamento correcto de cada circuito antes de o integrar num outro
esquema;
Não se esqueça do que aprendeu sobre aritmética binária e somadores completos em Sistemas Digitais.
O desenho da UF é avaliado no final da primeira aula de laboratório. Para sincronizar os diversos grupos entre a 1ª e a
2ª semanas do trabalho, será disponibilizada na página web da cadeira um símbolo com a implementação da UF. Para
os turnos de Segunda, Terça e Quarta-feira, o símbolo será disponibilizado na Quinta-feira, às 13h. Para os turnos de
Quinta e Sexta-feira, o símbolo será disponibilizado na Sexta-feira, às 15h. Assim, na segunda semana de laboratório,
todos os grupos se dedicam apenas ao desenho da Unidade de Armazenamento e à sua interligação com a UF.
3. UNIDADE DE ARMAZENAMENTO (UA)
A Unidade de Armazenamento é composta por 2 registos, denominados RA e RB, de 4 bits cada. Os registos RA e RB
são os operandos da Unidade Funcional: o registo RA é o operando A da UF e o registo RB é o operando B da UF.
Existem 3 modos de alterar os registos RA e RB:
o resultado da UF é escrito num registo;
o conteúdo do bus externo Data In (de 4 bits) é escrito num registo;
os registos RA e RB trocam os conteúdos entre si.
Além disso, deve ser possível colocar no bus externo Data Out (de 4 bits) o conteúdo quer de RA quer de RB. Quando
não é solicitada a leitura de nenhum destes registos pela palavra de controlo (ver secção 4 abaixo), as saídas do circuito
associado ao bus Data Out devem ser colocadas em tri-state.
Projecte a UA e desenhe o esquema respectivo utilizando o Xilinx ECS (Editor de esquemas).
Sugestões:
Comece por identificar o conjunto de linhas de entrada e saída (de dados e de controlo) necessárias para
que a UA tenha o funcionamento pretendido. Aconselha-se a seguinte abordagem incremental.
Fase 1: desenhe a UA ignorando a existência do bus Data Out e ignorando a possibilidade de RA e
RB trocarem de conteúdos directamente entre si.
Fase 2: introduza o bus Data Out e desenhe a lógica que lhe está associada.
Fase 3: acrescente a lógica necessária para possibilitar uma permuta dos conteúdos de RA e RB.
Faça um diagrama de blocos em papel e concretize as suas ideias antes de começar a utilizar o Xilinx;
Utilize buses para receber os dados externos (Data In, UF Data), para transmitir os dados para a UF (A e
B), e ainda para as transferências de dados internas (consulte o manual “Notas sobre utilização de macros e
buses em Xilinx”);
O editor de esquemáticos tem incorporado um registo de 4 bits denominado FD4CE;
4 de 8
Departamento de Engenharia Electrotécnica e de Computadores
Microprocessadores 2º sem 2005/2006
Instituto Superior Técnico - Universidade Técnica de Lisboa
LEEC
Para transformar uma porta not (INV) de 1 bit em 4 bits sem realizar uma macro sobre 4 portas not (INV4)
escolha a primeira e altere-lhe o nome acrescentando à frente do mesmo [3:0];
Não se esqueça que a maioria dos descodificadores e multiplexers possuem enables, e tenha em atenção
que a simbologia do Xilinx não é normalizada, pelo que deverá sempre testar quais as entradas de maior e
menor peso;
Não se esqueça do que aprendeu em Sistemas Digitais...
Quando tiver a sua UA a funcionar correctamente, crie um símbolo para a UA (consulte o manual “Notas sobre
utilização de símbolos e buses em Xilinx”), de forma a que a possa usar como se fosse um outro integrado qualquer.
4. UNIDADE DE PROCESSAMENTO E PALAVRA DE CONTROLO
Utilizando as macros que criou para a UA e para a UF, implemente a sua Unidade de Processamento (UP).
Admita a seguinte organização para a palavra de controlo da sua UP:
Reg
Dout
Ctr
F2-F1-F0
1 bit
1 bit
2 bits
3 bits
Onde:
Reg (1bit): endereça os registos da UA. Reg=0 endereça o registo RA e Reg=1 endereça o registo RB;
Dout (1 bit): quando Dout=1 o conteúdo do registo da UA endereçado por Reg é colocado no bus
DataOut;
F2-F1-F0 (3 bits): seleccionam microoperação a realizar pela UF sobre RA e RB.
Ctr (2 bits): controla as microoperações a realizar pela UA sobre os registos RA e RB de acordo com a
tabela VII:
Ctr
Operação
Descrição
00
---
01
SWAP
10
DATA_IN
É escrito no registo endereçado por Reg o conteúdo do Bus DataIn
11
UF_OUT
É escrito no registo endereçado por Reg o resultado da UF
Não altera o conteúdo dos registos
Troca o conteúdo dos registos
Tabela VII: Microoperações a implementar na UF nas sessões Sexta-feira
Utilize o ficheiro de teste disponível na página da cadeira para testar a sua UP. A tabela VIII exemplifica algumas
microinstruções para a UP constituída pela UF da tabela I:
Descrição da microinstrução
Designação simbólica
Palavra de Controlo
Carregar em RA um valor externo
RA ← DATAIN
0 x 10 xxx
Subtrair RB de RA e escrever o resultado em RB
RB ← RA-RB
1 x 11 001
Subtrair RB de RA e não guardar o resultado
RA - RB
x x 00 001
Permutar os conteúdos de RA e RB
RA ← RB, RB ← RA
x x 01 xxx
Colocar o conteúdo de RB no bus DataOut
DATAOUT ← RB
1 1 xx xxx
Tabela VIII: Exemplo de microinstruções da UP
No relatório os alunos devem indicar quais as palavras de controlo a aplicar à UP realizada de forma a executar a
operação descrita na tabela IX (1 operação para cada turno da semana):
5 de 8
Departamento de Engenharia Electrotécnica e de Computadores
Microprocessadores 2º sem 2005/2006
Instituto Superior Técnico - Universidade Técnica de Lisboa
LEEC
Turno
Operação
2ª feira
RA
NOT (RB-3)
3ª feira
RB
NOT (RA+2)
4ª feira
RB
(RA NAND RB)+1
5ª feira
RB
(RA OR RB) –1
6ª feira
RA
(RA AND RB)-1
Tabela IX: Operação a ser descrita pelos alunos na entrega do relatório
Os alunos devem também indicar no relatório o resultado da operação correspondente ao seu turno quando o conteúdo
dos registos é o indicado na tabela X (1 par de valores diferentes para cada grupo):
G1 G2 G3 G4 G5 G6 G7 G8 G9
RA
-1
-2
-3
-4
-5
-6
-7
3
5
RB
7
6
5
4
3
2
1
-2
-3
Tabela X: Conteúdo dos registos a ser analisado pelos alunos para as operações da tabela IX
Justifique no relatório a forma como alcançou o resultado pedido.
5. FASEAMENTO E RELATÓRIO
O trabalho decorrerá durante 2 semanas. As aulas de laboratório destinam-se, essencialmente, à correcção de erros e
bugs e a tirar dúvidas que possam existir sobre a implementação do projecto. O trabalho deverá ser planeado e
desenvolvido, tanto quanto possível, fora do horário de laboratório, sendo impossível realizá-lo sem qualquer
preparação prévia e apenas durante as 4 horas de laboratório. Tendo em consideração estes aspectos, o trabalho
desenvolvido será avaliado por fases. Assim:
1ª SEMANA
O objectivo da 1ª aula de laboratório é colocar em funcionamento a UF. No final da aula, deve ser
entregue um esquema com a estrutura interna da UF, ou seja, com a implementação dos módulos
aritmético e lógico. O funcionamento da UF será testado e avaliado pelo docente do laboratório usando um
ficheiro de teste que será previamente disponibilizado na página da cadeira. Os alunos deverão escolher a
implementação correspondente ao seu dia de laboratório. Assim, a segunda semana de laboratório é
dedicada exclusivamente ao desenho das restantes componentes da UP.
2ª SEMANA
No início da 2ª aula deverão trazer toda a UP em Xilinx, de preferência completamente funcional, mas
admite-se que poderão existir alguns erros que necessitem da ajuda do docente (não esquecer que existem
aulas de dúvidas durante quase todos os dias da semana). O funcionamento da UP será testado e avaliado
pelo docente do laboratório usando um ficheiro de teste que será previamente disponibilizado na página da
cadeira.
No fim da aula deverá ser entregue o relatório que deverá vir impresso e pronto a entregar com excepção
de pontos referentes a alterações de última hora e conclusões. Este deverá ser sucinto (dispensam-se
introduções teóricas), mas deverá estar estruturado e conter a informação que se descreve de seguida:
o
Objectivos
o
Projecto
diagrama de blocos geral da UP (UA com UF) e um esquema da UA projectada;
As opções gerais tomadas no desenho da UP, e as etapas de projecto e opções que levaram à
obtenção da Unidade de Processamento apresentada (UF e UA) (por ex.: mapas de Karnaugh
e tabelas de verdade);
A análise das operações correspondentes ao seu grupo de acordo com as tabelas IX e X.
6 de 8
Departamento de Engenharia Electrotécnica e de Computadores
Microprocessadores 2º sem 2005/2006
Instituto Superior Técnico - Universidade Técnica de Lisboa
o
LEEC
Conclusões
conclusões e comentários aos resultados obtidos na simulação.
o
Anexo
descrição de alterações de última hora.
Não entregue novamente na segunda semana os esquemas da UF que devem ser entregues na primeira semana.
O relatório completo não deverá exceder as 5 páginas (excluindo os anexos).
6. SIMULAÇÃO E AVALIAÇÃO DO FUNCIONAMENTO DOS ESQUEMAS
De modo a facilitar a avaliação dos trabalhos dos alunos, os nomes dos esquemas a desenvolver pelos alunos deverá
seguir a seguintes regras:
O esquema da unidade funcional dever-se-á chamar UF
o
Este esquema deverá ter os seguintes sinais de entrada:
UF_A(3:0)
UF_B(3:0)
UF_F(2:0)
o
Este esquema deverá ter os seguintes sinais de saída (as flags variam de grupo para grupo):
UF_OUT(3:0)
UF_C
UF_N
UF_P
UF_V
UF_Z
UF_Po
O esquema da unidade de processamento (2ª semana) dever-se-á chamar UP
o
Este esquema deverá ter os seguintes sinais de entrada:
CONTROLO(6:0)
DATA_IN(3:0)
CLK
o
Este esquema deverá ter os seguintes sinais de saída (as flags variam de grupo para grupo):
DATA_OUT(3:0)
UP_A(3:0)
UP_B(3:0)
UP_C
UP_N
UP_P
UP_V
UP_Z
UP_Po
Só usando os nomes atrás descritos os alunos poderão usar o ficheiro de teste fornecido pelo corpo docente para avaliar
o funcionamento dos trabalhos.
Para avaliação da Unidade funcional, é fornecido o ficheiro teste_uf.tbw que os alunos deverão incluir no
projecto. Se a recomendação anterior acerca dos nomes do esquema e sinais for seguida, os alunos podem
imediatamente fazer a simulação.
7 de 8
Departamento de Engenharia Electrotécnica e de Computadores
Microprocessadores 2º sem 2005/2006
Instituto Superior Técnico - Universidade Técnica de Lisboa
LEEC
Serão fornecidos os ficheiro wave-uf-1.pdf, wave-uf-2.pdf, wave-uf-3.pdf, wave-uf-4.pdf, wave-uf5.pdf (respectivamente para os turnos de 2ª a 6ª feira), com as formas de onda esperadas. Os alunos
deverão comparar o resultado previsto com a simulação realizada pelo teste_uf.tbw.
Para avaliação da Unidade de processamento (2ª semana), será fornecido o ficheiro teste_up.tbw que os
alunos deverão incluir no projecto. Se a recomendação anterior acerca dos nomes do esquema e sinais for
seguida, os alunos podem imediatamente fazer a simulação.
Serão fornecidos os ficheiro wave-up-1.pdf, wave-up-2.pdf, wave-up-3.pdf, wave-up-4.pdf, wave-up5.pdf, com as formas de onda esperadas. Os alunos deverão comparar o resultado previsto com a
simulação realizada pelo teste_up.tbw.
As simulações deverão ser realizadas usando a aplicação ModelSim. Para efectuar a simulação, os alunos deverão
seleccionar a opção Simulate Behavioral Model. Depois da aplicação ModelSim arrancar e gerar as formas de onda
da simulação, aparece uma janela chamada Wave. Aí, os alunos deverão regular a escala do resultado (usando os botões
da figura) e alterar o formato dos sinais (binário, inteiro, inteiro positivo, …)
7. AVALIAÇÃO
A avaliação do projecto será realizada parcelarmente e de acordo com os seguintes pontos:
• Relatório com Projecto da UP (10 Val.) - Serão avaliados a estrutura, conteúdo, apresentação, escrita e a organização
dos esquemáticos.
• Funcionamento da UF (5 Val.) - Flags=3x0,4v; UL=4x0,5v; UA=4x0,35; 0,4v pelo funcionamento correcto de tudo.
• Funcionamento da UA (5Val.) – Reg=1x0,4; Dout=1x1v; Ctr=4x0,8; 0,4v pelo funcionamento correcto de tudo.
8. BIBLIOGRAFIA
[1] M. Morris Mano, Charles R. Kime, “Logic and Computer Design Fundamentals”, Second Edition, Prentice-Hall
International, Inc. (Capítulo 7)
[2] N. Horta, J.P. Carvalho, “Microprocessadores – Unidade de Processamento”, Aulas Teóricas, 2005.
[3] H. Neto, “Manual de Introdução ao Xilinx”, Aulas de Laboratório, 2005.
[4] J.P. Carvalho, “Notas sobre utilização de Símbolos e Buses em Xilinx”, Aulas de Laboratório, 2005.
Bom Trabalho
8 de 8