O seguinte website foi criado para auxiliar a implementação dos circuitos das seções 3.5, 4.2, 4.3 e 4.4 da apostila Introdução à organização e à programação de computadores [1].
[1] Oswaldo Carvalho, 2014. Introdução à organização e à programação de computadores. UFMG. 2014 (link).
O website tem como objetivo guiar o estudante durante o projeto de construção de um processador digital utilizando o software de simulação Logisim.
O roteiro a seguir para completar a atividade começa com o circuito de uma Calculadora, e continua com algumas versões de CPUs (CPU-0, CPU-1 e CPU-2).
A calculadora é o primeiro passo do nosso projeto, ela se tornará nosso circuito principal e a partir dela tudo será construído. Ao clicar na guia "Calculadora" você terá a imagem do circuito completo e o passo a passo de como construir cada trecho responsável por algum tipo de atividade dentro do circuito.
Recomendamos começar a calculadora pela ULA (Unidade Lógica e Aritmética), pois é necessário construir o bloco para utilizar as funcionalidades de maneira compacta no circuito principal. Com a ULA pronta, coloque o bloco na "main" e a partir dele monte o restante da Calculadora.
Essa será a primeira e a mais complexa "evolução" da nossa Calculadora. O desafio é que o circuito receba instruções e que as execute de maneira autônoma, ou seja, não interferimos durante o processo, apenas colocamos as entradas e esperamos a CPU nos devolver a saída esperada.
Na guia "CPU-0" está descrito as funções e mostra cada um dos componentes montados. Novamente indicamos começar pelos circuitos que fazem parte de um "bloco" no circuito principal, neste caso seria a Unidade de Controle, porém ela necessita de dois outros blocos, que seria o Registrador Circular e o Contador de Programa. Comece por um desses blocos, após isso monte a Unidade de Controle, e por fim faça as ligações necessárias no circuito principal, prestando muita atenção na ordem em que as conexões são feitas.
Com a CPU-0 nos deparamos com a necessidade de realizar conversões de binários para hexadecimais, e assim gerar as instruções compreendidas pelo Logisim. Indicamos a conversão na "mão" inicialmente para a melhor compreensão do processo. Mas, para o processo não ficar repetitivo e cansativo, criamos a aba "Programas Auxiliares", onde possuem dois programas na linguagem Python que ficariam responsáveis pela conversão de Bin-Hex (apenas um numero por vez), ou XLSX-TXT (onde convertemos uma planilha no formato padronizado para o arquivo .txt compreendido pelo Logisim)
Mudamos um pouco os circuitos internos para processarmos desvios. As mudanças ocorrem no Contador de programa-1 (comece por aqui) e na Unidade de controle-1.
Contador de programa 1 (modificado)
Unidade de controle 1 (Modificado)
Por fim, temos nossa última adaptação de projeto, a implementação de desvios condicionais a partir da comparação. As mudanças ocorrem no circuito Principal (main) e na Unidade de Controle. Comece alterando a unidade de controle, ao realizar as alterações nela, altere o circuite principal e realize os testes descritos na aba CPU-2.
Unidade de controle 2 (modificado)