O Simulador Lógico Logisim Licenciatura em Engenharia Informática e de Computadores Departamento de Engenharia Informática Instituto Superior Técnico Lisboa, Julho de 2014
Índice 1 Introdução... 3 2... 4 3 Exemplo de projecto... 5 3.1 Especificação do sistema... 5 3.2 Concepção do circuito... 5 3.3 Desenho... 6 3.4 Simulação... 13 4 Limitações do simulador... 15 5 Referências... 17 Revisão 2.0 Revisão geral. IAC 2014/2015. Alberto R. Cunha, Julho de 2014. 1.0 Versão inicial. Introdução à Arquitectura de Computadores Alameda (IAC) 2013/2014. Alberto R. Cunha, Setembro de 2013. AMRC, Instituto Superior Técnico, Julho de 2014 2
1 Introdução Como o nome sugere, um simulador é um programa que simula o comportamento de um sistema, ou de um determinado tipo de sistemas. Os simuladores são ferramentas muito comuns em Engenharia porque facilitam o desenvolvimento e teste dos sistemas pela verificação do seu comportamento antes de se passar à sua realização física. Os sistemas lógicos e os computadores actuais são dos sistemas mais complexos produzidos pelo Homem. No seu desenvolvimento utilizam-se diversos tipos de simuladores que permitem simular com grau variável de detalhe o comportamento dos componentes que os constituem: Simuladores eléctricos Simuladores lógicos Simuladores funcionais Simulam os circuitos eléctricos e o comportamento dos dispositivos electrónicos que constituem o sistema, daqui resultando o comportamento global. Simulam o comportamento lógico dos elementos que constituem o sistema (portas lógicas) e, consequentemente, o comportamento lógico do sistema no seu conjunto. Simulam o comportamento lógico do sistema no seu conjunto e só detalham o comportamento interno na medida em que tal for necessário para produzir o comportamento global. Os simuladores eléctricos permitem analisar o comportamento eléctrico dos sistemas tempos de resposta, consumo de energia, etc. mas o grau de detalhe que manipulam exige um grande poder de cálculo. No extremo oposto os simuladores funcionais são mais adequados para simular o comportamento funcional dos sistemas mais complexos abstraindo-se dos detalhes eléctricos. Em Introdução à Arquitectura de Computadores iremos utilizar dois simuladores de comportamento lógico: o Logisim 1, um simulador lógico de circuitos digitais que permite desenhar e simular o comportamento lógico deste tipo de circuitos através de uma interface gráfica simples [1]; o simulador do processador P3, simula funcionalmente o comportamento deste processador com o grau de detalhe estritamente necessário para acompanhar a evolução do estado do processador e memória ao executar programas [5]. Neste tutorial iremos abordar o simulador lógico Logisim. 1 Programa desenvolvido e mantido por Carl Burch. AMRC, Instituto Superior Técnico, Julho de 2014 3
2 O Logisim permite desenhar e simular o comportamento lógico de circuitos digitais através de uma interface gráfica simples. A concepção do circuito, isto é, dada a especificação do sistema a sua tradução no circuito digital que realiza a função, deverá ser realizada previamente recorrendo aos métodos e técnicas habituais. O que o simulador permite é: introduzir o circuito concebido inserir as portas lógicas (gates) e ligá-las entre si, através de uma editor gráfico, e simular o seu comportamento lógico, permitindo ao projectista verificar se o circuito tem o comportamento pretendido antes de, eventualmente, passar à sua realização física, em hardware, etapa dispendiosa em tempo e em recursos materiais. O desenho do circuito no simulador pode ser armazenado, permitindo o desenvolvimento incremental e a documentação do projecto. 2 O simulador está disponível para instalação em vários sistemas (Linux, Mac OS X, Microsoft Windows) em [1]. Não obstante o simulador ser de utilização fácil para circuitos com o grau de complexidade como os que serão abordados em Introdução à Arquitectura de Computadores, este guião, que segue um exemplo de um projecto muito simples, facilitará o início da sua utilização. Pode seguir várias apresentações do Logisim em vídeo no YouTube e entre as introdutórias a [4]. Para uma descrição mais detalhada do simulador deverá consultar-se a informação que é instalada com o próprio programa [2]. 2 Adicionalmente o Logisim tem um utilitário de síntese de circuitos que pemite gerar funções combinatórias (funções cujo resultado depende estritamente das entradas presentes, sem dependência do estado anterior) a partir da sua descrição em tabelas de verdade ou expressões Booleanas. AMRC, Instituto Superior Técnico, Julho de 2014 4
3 Exemplo de projecto Assumindo que se tem o Logisim instalado no computador vamos dar um exemplo da sua utilização através do projecto de uma célula de memória elementar báscula RS. 3.1 Especificação do sistema A báscula RS (RS flip-flop) é um circuito digital muito simples com duas entradas R (reset) e S (set) e uma saída Q. O estado da saída depende da evolução das entradas da seguinte forma: Quando ambas as entradas estão inactivas (R = 0 e S = 0) a saída mantém o estado anterior (memoriza o estado); Quando R está activa (R = 1 e S = 0) é feito o reset da saída Q = 0; Quando S está activa (R = 0 e S = 1) é feito o set da saída Q = 1. Para o funcionamento do circuito como memória não interessa ter R e S simultaneamente activos: Entradas Saída R (Reset) S (Set) Q 0 0 Q t-1 Mantém o estado anterior 0 1 1 Set output 1 0 0 Reset output 1 1 0 Não usar 3.2 Concepção do circuito A memória especificada é realizada pelo circuito digital esboçado a seguir A capacidade de memória deste circuito é-lhe dada pela realimentação das saídas Q para as entradas das portas NOR. AMRC, Instituto Superior Técnico, Julho de 2014 5
3.3 Desenho Abrindo o Logisim previamente instalado no computador é apresentada a janela de entrada. (As imagens referem-se à versão logisim-win-2.7.1.) As zonas da janela mais importantes para o início do desenho são a barra de ferramentas (toolbar) e a tela (canvas). Na tela desenha-se o circuito usando as ferramentas da toolbar. AMRC, Instituto Superior Técnico, Julho de 2014 6
Tal como se faria ao montar um circuito real, em hardware, é normal desenhar primeiro as portas e depois ligá-las entre si. A barra de ferramentas disponibiliza algumas portas lógicas básicas. Como as portas NOR não estão directamente disponíveis só estão visíveis portas NOT, AND e OR constroi-se o NOR com um OR seguido de um NOT. (Com a prática o utilizador passará a pesquisar as portas e outras funções lógicas mais complexas existentes no Explorer Pane.) Click no OR (Add OR gate): Deslocar o OR para o local onde o pretende colocar: AMRC, Instituto Superior Técnico, Julho de 2014 7
Largá-lo no local (click na tecla esquerda do rato). O OR fica com as entradas e a saída marcadas respectivamente a azul e vermelho. Desloque o rato sobre elas e verifique como o simulador as assinala. A figura mostra uma porta com cinco entradas, como é, aliás, especificado no descritor da ferramenta. Como se pretende usar OR de duas entradas altera-se o número de entradas na tabela de atributos: 3 3 É uma boa prática de projecto nunca deixar entradas de portas ou blocos lógicos não ligadas (no ar) porque, mesmo que os simuladores as considerem neutras 0 em OR, 1 em AND, em circuitos reais o seu estado depende da tecnologia electrónica e de outras condições eléctricas por vezes difíceis de controlar. AMRC, Instituto Superior Técnico, Julho de 2014 8
Colocar as restantes 3 portas outro OR e dois NOTs na tela, repetindo o ciclo click na porta na barra de ferramentas / arrastar para a tela / colocar no local. AMRC, Instituto Superior Técnico, Julho de 2014 9
Introdução à Arquitectura de Computadores Passa-se agora a inserir as ligações entre as portas na ferramenta de edição. Seleccionando uma entrada ou saída de uma porta com a tecla esquerda do rato, mantendo a tecla pressionada e deslocando o rato até outra entrada/saída, o editor estabelece uma ligação entre estes pontos. Pode-se desenhar uma ligação com um percurso arbitrário por troços, ligando sucessivamente vários segmentos de ligação. AMRC, Instituto Superior Técnico, Julho de 2014 10
Concluída a inserção de ligações verifica-se que o circuito não tem as entradas e a saída identificadas. Poder-se-ia tê-lo feito antes de inserir as ligações mas pode-se também fazê-lo agora. As entradas e saídas são identificadas por dois objectos disponíveis na barra de ferramentas (pins ) que são manipulados com o foram as portas lógicas. Como as ligações já estão inseridas os pins devem ser colocados encostados às ligações para o simulador associar o pin à ligação. AMRC, Instituto Superior Técnico, Julho de 2014 11
Introdução à Arquitectura de Computadores Neste momento o circuito está em condições de iniciar a simulação. Para facilitar a legibilidade do circuito é conveniente identificá-lo usando a ferramenta de texto. Antes de simular pode-se guardar o projecto (menú File). AMRC, Instituto Superior Técnico, Julho de 2014 12
3.4 Simulação Repare-se que, mesmo sem se ter dado nenhum comando explícito de simulação, o Logisim já está a simular o comportamento do circuito, apresentando as ligações com cores consoante o seu nível lógico (verde escuro = 0, vermelho =? corresponde ao estado anterior mencionado na tabela da pág. 2, de início indefinido). Seleccionando a mão na barra de ferramentas ( poke tool), e colocando o rato em cima de uma entrada, de cada vez que se pressiona a tecla esquerda faz-se variar o nível lógico dessa entrada, podendo analisar o comportamento do circuito pelas cores das ligações (verde escuro = 0, verde claro = 1). Ao testar o circuito compara-se o seu comportamento (simulado) com o pretendido na especificação inicial. O projecto pode ser simplificado usando portas NOR em vez da combinação OR-NOT. Abrindo o explorer pane em Gates encontra-se um conjunto de portas lógicas mais extenso do que o apresentado nas ferramentas, entre os quais NOR Gate. A sua manipulação é idêntica à das portas na barra de ferramentas. AMRC, Instituto Superior Técnico, Julho de 2014 13
Pode-se assim reconstituir o circuito com NOR, apagando as portas OR e NOT, e realinhando as ligações. AMRC, Instituto Superior Técnico, Julho de 2014 14
Antes de utilizar o simulador com circuitos mais complexos é conveniente percorrer a biblioteca das funções lógicas já existentes (Gates, Plexers, Arithmetic, Memory, Input/Output, etc.) [3] para melhorar o conhecimento das suas capacidades e simplificar a construção do sistema. 4 Limitações do simulador Como se referiu o Logisim é estritamente um simulador lógico, não tendo capacidade para simular o comportamento eléctrico (níveis de tensão e corrente, impedâncias) e temporal (tempos de resposta) dos circuitos. Assim há situações em que os resultados da simulação podem não aderir ao comportamento real de um circuito que, naturalmente, resulta da conjugação das propriedades físicas de todos os seus componentes. O exemplo seguinte, também com uma báscula RS, evidencia uma dessas situações. Partindo da báscula RS inicial e ligando ambas as entradas ao mesmo ponto R obtém-se a sequência de simulação seguinte. Logo no início, ainda antes de usar a mão (poke tool erro à saída Q (E vermelho error value): ), o simulador associa um AMRC, Instituto Superior Técnico, Julho de 2014 15
Colocando R = 1 as saídas dos NOR são ambas forçadas a 0 o que é efectivamente produzido pelo simulador e, portanto, o circuito tem um comportamento estável: Comutando R para 0 o simulador produz AMRC, Instituto Superior Técnico, Julho de 2014 16
e a simulação pára, só sendo reactivável por comando explícito Com R = 0, como 0 é o elemento neutro do NOR, o circuito fica equivalente a dois inversores (NOT) em cadeia. Podendo estar num dos seguintes estados: Q = 0: estado estável assegurado pela realimentação; Q = 1: estado estável assegurado pela realimentação; Q entre 0 e 1: teoricamente há-de haver um estado entre 0 e 1 que também corresponde a um ponto de funcionamento do circuito, embora este estado seja instável, isto é, tenda rapidamente para 0 ou 1; no entanto um simulador lógico binário só reconhece dois estados 0 e 1. Portanto, nesta ocorrência o simulador não sabe como resolver a situação estritamente com base na análise do comportamento lógico. Num circuito real a eventual incerteza inicial tende ao fim de algum tempo para Q = 0 ou Q = 1; o estado final e o tempo de convergência dependem das características dos circuitos eléctricos e da electrónica digital. 5 Referências [1] Logisim a graphical tool for designing and simulating logic circuits. http://www.cburch.com/logisim/index.html em 18 de Julho de 2014. [2] Logisim User s Guide. Informação disponível no próprio simulador em AMRC, Instituto Superior Técnico, Julho de 2014 17
[3] Logisim Library Reference. http://www.cburch.com/logisim/docs/2.7/en/html/libs/index.html em 18 de Julho de 2014. [4] LOGISIM Tutorial and Demo. https://www.youtube.com/watch?v=atpqpfmlvdw em 18 de Julho de 2014. [5] Introdução à Arquitectura de Computadores: Tutorial do P3. Instituto Superior Técnico, Licenciatura em Engenharia Informática e de Computdores Alameda, 2013/2014. AMRC, Instituto Superior Técnico, Julho de 2014 18