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