SISTEMAS DIGITAIS II Enunciado do Projecto Prof. José Sousa 2005/2006
Sumário Enunciado do Projecto: Processador de 1 bit...2 Regras e Calendário do Projecto...9 Estrutura do Relatório do Projecto...11 JS/05 1
Enunciado do Projecto: Processador de 1 bit Objectivo: Pretende-se construir um processador de 1 bit e desenvolver o respectivo circuito de controlo utilizando uma das técnicas de microprogramação leccionadas. Duração do projecto: Aproximadamente 6 semanas. Descrição: O processador a construir tem a seguinte estrutura: Processador de 1 bit Step Run Reset Circuito Controlador Circuito a Controlar Inputs Outputs Trata-se de um processador de 1 bit com 4 portos de entrada e 4 de saída. O comando deste processador faz-se com 3 entradas externas: Run: Executa sequencialmente as instruções do programa. Step: Executa apenas uma instrução do programa. Também serve para interromper o ciclo contínuo de instruções imposto pelo sinal Run. Esta interrupção só tem efeito após terminar o processamento da instrução em execução no momento. Reset: Coloca o Program Counter, ou seja, o endereço da próxima instrução a ser executada, em zero e inicializa o circuito controlador. Pretende-se com este trabalho projectar e desenvolver o circuito controlador utilizando uma estrutura microprogramada. No entanto, para melhor compreender a sua aplicação, há que definir muito bem o circuito a controlar cuja estrutura se apresenta na figura seguinte. JS/05 2
Inputs Sistemas Digitais II Circuito a Controlar Microprocessador de 1 bit Outputs Ri3 Ri2 Ri1 Ri0 Ra Rb Rz Ro3 Ro2 Ro1 Ro0 cl cl cl cl cl cl cl cl cl cl A B MUX in A B C D MUX oper A B MUX out A B DMUX CLK in En1 En0 Ck2 Ck1 Ck0 DEC en DEC clk A B C D 0 0 0 0 P3..P0 Program Memory C D DMUX CLK out Rf cl X3..X0 (Código da instrução) Flag Clr Reset * Jmp Reset Program Counter PE Q7..Q0 Addr Data ABCD (Argumentos da instrução) * O sinal Reset é produzido na mesma tecla que faz o Reset ao circuito controlador. * Os argumentos da instrução (A, B, C e D) são ligados directamente aos vários pontos do circuito. JS/05 3
O circuito a controlar tem a seguinte composição: I/O e Registos R i3.. R i0 Registo das 4 entradas do processador. R a e R b Registos auxiliares para processamento de bits, nomeadamente como argumentos de operações lógicas. R z Registo auxiliar para processamento de bits, nomeadamente como resultado de operações lógicas. R o3..r o0 Registo das 4 saídas do processador. Com os devidos cuidados, também pode servir como registo auxiliar... R f Registo da flag usada na realização de operações condicionais. Controlo Vários buffers, multiplexers, demultiplexers e descodificadores são usados para controlar o fluxo de sinais entre os registos da estrutura através de um Bus Comum de 1 bit. Contador de Programa Contador que contém o endereço da próxima instrução a ser executada. Os 4 bits mais significativos podem ser carregados em paralelo para permitir a execução de instruções de salto. O facto de se tratar de um contador de 8 bits limita a dimensão dos programas a um máximo de 256 instruções. Memória de Programa EPROM que contém a lista de instruções do programa a executar. Na estrutura apresentada pode acondicionar até 16 programas em simultâneo. JS/05 4
O controlo deste circuito faz-se através dos seguintes sinais: En 1 e En 0 Ck 2..Ck 0 Clr Jmp A combinação destes sinais determina qual dos buffers será activado, ou seja, qual dos registos tem acesso ao Bus Comum e, então, pode ser lido. A combinação destes sinais determina qual dos registos vai receber um impulso de clock, directa ou indirectamente, ou seja, qual dos registos vai ser escrito. É também através destes sinais que se incrementa o contador de programa. É através deste sinal que se inicializam, ou seja, são colocados a zero, todos os registos do processador. Este sinal é utilizado em instruções de salto, isto é, quando o Program Counter sofre desvios na sua sequência normal de incremento. Para além dos sinais utilizados no controlo do microprocessador de 1 bit, existem outros sinais que são operados manualmente: Reset P 3..P 0 É através deste sinal, produzido por uma tecla, que se inicializa o Program Counter, ou seja, o contador que contém o endereço da próxima instrução a executar. Pretende-se que sejam produzidos por um DIP-switch e são ligados aos 4 bits mais significativos dos 12 bits de endereço da memória de programa. Servem apenas para seleccionar até 16 programas diferentes armazenados na memória de programa. Os restantes 8 bits de endereço da memória de programa, tal como já tinha sido referido, são produzidos pelo contador de programa. Os programas que este processador de 1 bit pode executar são construídos por uma sequência de instruções de 8 bits, retiradas de uma lista pré-definida, que se arnazena na memória de programa. As instruções são identificadas por um código de instrução de 4 bits (X 3..X 0 ) o que permite definir até 16 instruções diferentes. Quando necessário, os restantes 4 bits definem o(s) argumento(s) da instrução (A,B,C e D). JS/05 5
A listagem das instruções é a seguinte: X 3 X 2 X 1 X 0 A B C D 0 0 0 0 x x x x NOP 0 0 0 1 x x x x CLR 0 0 1 0 A B x x RDI n 0 0 1 1 A B x x ITZ n 0 1 0 0 A B C D ITO mn 0 1 0 1 x x x x ZTA 0 1 1 0 x x x x ZTB 0 1 1 1 x x C D ZTO n 1 0 0 0 x x x x ZTF 1 0 0 1 A B x x OTZ n 1 0 1 0 A B C D OPR n 1 0 1 1 A B C D GO addr 1 1 0 0 A B C D JMP addr 1 1 0 1 A B x x SKP n 1 1 1 0 A B x x HLD n 1 1 1 1 x x x x END Descrição Realiza um ciclo de instrução sem acção Faz o CLEAR a todos os registos da estrutura Dando o respectivo impulso de clock, actualiza o conteúdo do registo de entrada R in (n dado por AB) Sem dar impulso de clock, copia o conteúdo do registo de entrada R in (n dado por AB) para o registo R z Sem dar impulso de clock, copia o conteúdo do registo de entrada R im (m dado por AB) para o registo de saída R on (n dado por CD) Copia o conteúdo do registo R z para o registo R a Copia o conteúdo do registo R z para o registo R b Copia o conteúdo de R z para o registo de saída R on (n dado por CD) Copia o conteúdo do registo R z para o registo R f Copia o conteúdo do registo de saída R on (n dado por AB) para o registo R z Executa a operação n (n dado por ABCD) sobre o conteúdo dos registos R a e R b e guarda o resultado no registo R z (ver tabela adiante) Salta para a instrução no endereço addr (addr dado por ABCD0000) Salta para a instrução no endereço addr (addr dado por ABCD0000) se o conteúdo do registo R f for 1 Dando o respectivo impulso de clock, copia o conteúdo do registo de entrada R in (n dado por AB) para o registo R f e, se fôr zero, salta a execução da instrução seguinte Dando o respectivo impulso de clock, copia o conteúdo do registo de entrada R in (n dado por AB) para o registo R f e, se fôr zero, não incrementa o Program Counter Assinala o fim de programa JS/05 6
Quanto à instrução OPR n, note-se que esta usa como argumentos o conteúdo dos registos R a e R b e o resultado deve ser armazenado no registo R z. A operação será executada através do multiplexer OPER como função das suas entradas A, B, C e D dadas no argumento da instrução, pelo que se obtém: R a 0 0 1 1 R b 0 1 0 1 n A B C D Operação (R a,r b ) 0 0 0 0 0 ZERO/RESET 1 0 0 0 1 AND 2 0 0 1 0 R A NOTR B 3 0 0 1 1 R A 4 0 1 0 0 NOTR A R B 5 0 1 0 1 R B 6 0 1 1 0 XOR 7 0 1 1 1 OR 8 1 0 0 0 NOR 9 1 0 0 1 NXOR/COMPARE A 1 0 1 0 NOT R B B 1 0 1 1 R A +NOTR B C 1 1 0 0 NOT R A D 1 1 0 1 NOTR A +R B E 1 1 1 0 NAND F 1 1 1 1 ONE/SET Para que o microprocessador funcione correctamente, vai ser necessário desenvolver um circuito de controlo, objectivo deste projecto, tal como apresentado na figura seguinte: Circuito a Controlar X3 X2 X1 X0 Flag Run Step Circuito Controlador Micro Programado En1 En0 Ck2 Ck1 Ck0 Clr Jmp DEC Bus DEC Clk X3 X2 X1 X0 Reset Inputs Outputs JS/05 7
Tendo à entrada o código da instrução que vai ser executada (X 3 a X 0 ), o valor do registo de flag R f e os sinais externos Step, Run e Reset, o circuito controlador deve produzir a sequência de sinais (EN 1, EN 0, CK 2..CK 0, Clr e Jmp) necessários para a correcta execução das instruções que constituem o programa armazenado sequencialmente na memória de programa. No microprocessador, o controlo executa-se por ciclos de instrução em 2 passos: o Descodifica e executa a instrução corrente, aquela cujo endereço está definido pelo contador de programa; o Incrementa o contador de programa para a próxima instrução e recomeça o ciclo. Esse ciclo repete-se até ao fim do programa, sempre sujeito à intervenção dos sinais externos Step, Run e Reset. Note-se que no ciclo de instrução, o incremento do contador de programa pode não ocorrer; casos das instruções GO, JMP, SKP, HLD e END. JS/05 8
Regras e Calendário do Projecto A execução do projecto de laboratório é obrigatória para se conseguir a aprovação na disciplina. Para esse efeito é necessário obter, no minímo, 10 valores nesta componente da avaliação. O projecto só é avaliado quando são satisfeitos os seguintes requisitos: a) Conceptualização, projecto, implementação e teste do trabhalho realizados por todos os elementos do grupo constituído com o conhecimento e consentimento do docente de laboratório; b) Execução prática do trabalho tal como é pedido no enunciado, nomeadamente no que diz respeito à implementação de aspectos obrigatórios; c) Realização do projecto de acordo com a matéria leccionada e/ou a bibliografia recomendada para a cadeira; d) Entrega do relatório completo e conforme as indicações que se apresentam no capítulo seguinte deste documento, sendo obrigatória a justificação das decisões tomadas no projecto; e) Realização da discussão, com a presença de todos os elementos do grupo, em que se demonstre claramente o domínio da matéria e do projecto em si e com demonstração prática do circuito a funcionar correctamente; f) Satisfação rigorosa dos prazos impostos; g) Devolução de todo o material requisitado no laboratório; Contribuem para a avaliação aspectos como: a) Opinião do docente de laboratório relativamente ao comportamento e atitude dos alunos durante a execução do projecto (recomenda-se a apresentação, ao respectivo docente de laboratório, da progressão do trabalho); b) Justificação adequada das decisões tomadas durante a execução do projecto; c) Correcção da forma, linguagem e conteúdo do relatório; d) Execução de opções não descritas no enunciado desde que aprovadas pelo docente de laboratório; e) Qualidade da solução apresentada, quer do ponto de vista funcional quer do ponto de vista do hardware utilizado; f) Execução do trabalho em PCB ou wire-wrapping. JS/05 9
As discussões serão marcadas aquando da entrega do relatório. Esta tem que ser feita pelos elementos do grupo directamente ao seu docente de laboratório pela forma que determinarem em conjunto com aquele. A violação desta disposição pode levar à não realização da discussão e consequente reprovação. Se no período entre a entrega do relatório e a realização da discussão houver lugar a alterações menores no projecto, estas deverão ser devidamente documentadas e justificadas com uma adenda ao relatório que se entrega no próprio momento da discussão. Caso tal não se verifique, a classificação sofrerá uma penalização. Só se admitem alterações significativas ao trabalho quando estas forem previamente autorizadas pelo respectivo docente de laboratório. A não entrega do relatório, a falta de comparência na discussão ou a não devolução dos materiais de laboratório determinam a imediata reprovação nesta componente da avaliação da disciplina o que, de acordo com o estipulado na Ficha de Disciplina, determina a reprovação à disciplina. A realização do projecto decorre ao longo das últimas aulas de laboratório tendo início na semana de 1 de Novembro de 2005. A data limite de entrega dos respectivos relatórios é o fim do dia 3 de Janeiro de 2006. As discussões realizar-se-ão no dia 5 de Janeiro de 2006, em conformidade com um calendário a definir. Nota: Qualquer alteração nas datas apresentadas será devidamente publicitada na página web da disciplina, http://ltodi.est.ips.pt/digitais, pelo que se sugere a sua consulta periódica. JS/05 10
Estrutura do Relatório do Projecto Nos pontos seguintes indicam-se as partes que devem constituir o relatório de projecto de Sistemas Digitais. Não sendo necessário seguir à risca a estrutura indicada é no entanto um bom ponto de partida. 1- Capa Identificação do projecto Nome e número dos alunos Local e Data 2- Resumo Resumir o relatório no máximo de uma página 3- Descrição do problema Explicação do enunciado Diagrama de blocos Descrição funcional de cada bloco 4- Descrição da solução realizada Diagrama lógico de cada bloco Explicação e justificação associadas a cada diagrama lógico Descrição das opções tomadas 5- Conclusões Resumo do trabalho efectuado Resumo crítico do trabalho Possíveis desenvolvimentos futuros (sugerir como) Anexos Esquemáticos (diagrama lógico e diagrama de pinos) Lista de componentes (Não incluir os data-sheets dos componentes) Nota: A estrutura e linguagem do relatório são factores fundamentais a considerar na avaliação. Por isso recomenda-se a utilização de uma linguagem clara e sucinta. Deve evitar-se o uso da primeira pessoa, recomenda-se o uso da forma reflexa, por exemplo, em vez de se escrever nós fizemos deverá escrever-se fez-se. Um relatório não é uma obra literária nem a transcrição de um discurso pelo que se recomenda um especial cuidado na forma como o texto é redigido. JS/05 11