330 likes | 709 Views
Sistemas Digitais Circuito de Dados / Circuito de Controlo ASMs e Implementação de Máquinas de Estados. Projecto de Sistemas Digitais. No projecto de Sistemas Digitais é possível encontrar sistemas simples e sistemas mais complexos Projecto de sistemas simples: Combinatórios
E N D
Sistemas DigitaisCircuito de Dados / Circuito de ControloASMs e Implementação de Máquinas de Estados
Projecto de Sistemas Digitais • No projecto de Sistemas Digitais é possível encontrar sistemas simples e sistemas mais complexos • Projecto de sistemas simples: • Combinatórios • Tabelas e Mapas de Karnaugh • Tabelas e Multiplexeres • Tabelas e ROMs (Read Only Memories) • Tabelas e PLDs (Programable Logic Devices) • Sequenciais • Modelos de Moore e Mealy; Implementação com recurso a FFs ou registos e a lógica combinatória • Projecto de sistemas mais complexos: • Divisão entre um circuito que dá suporte ao fluxo e manipulação de dados, e um circuito que controla esse circuito de dados Sistemas Digitais
Circuito de Controlo/Circuito de Dados Dados de entrada Ordens e condicionantes do exterior • O circuito controlado é constituído por um conjunto de módulos simples que podem incluir: • Registos • Contadores • Multiplexeres • Somadores • Comparadores • Memórias • Algumas portas lógicas O circuito de controlo é um sistema sequencial síncrono (Máquina de Moore ou de Mealy) Acções a desencadear Circuito com armazenamento Controlo de dados e seu processamento Informação sobre o estado Informação para o exterior Dados de saída Sistemas Digitais
Detector Porta Sentido do tráfego Exemplo: Controlo do parque de estacionamento do Pav. de Civil no IST-Alameda • Existem 4 detectores e 3 portas que controlam o acesso ao parque de estacionamento • Como a rua de acesso é estreita, só pode circular nela um veículo de cada vez • Quando o parque está cheio não podem entrar carros Sistemas Digitais
Parque de Civil (cont.) Porta 1 Detector 1 • A saída é detectada pela presença em D3. Se não há entrada em curso, a cancela P3 abre e só fechará quando o carro a atravessar e sair de D4. Quando o carro chega a D2, abre-se P2 enquanto o carro estiver sobre D2. Nessa altura haverá mais um lugar de estacionamento • A entrada começa quando um carro chega a D1. Se houver lugar, e se não há saída em curso, a porta P1 abre e asim fica enquanto o carro for detectado por D1. Quando o carro chega a D4 a cancela P3 é aberta e o carro entra. Durante essa fase, deve ser anotado que existe um lugar a menos no estacionamento. Após deixar D4, a cancela P3 fecha Porta 2 Detector 2 Porta 3 Detector 4 Detector 3 Sistemas Digitais
Porta 1 Detector 1 Porta 2 Detector 2 Porta 3 Detector 3 Detector 4 Parque de Civil (cont.): Circuito de Dados • O circuito de dados do sistema que se pretende projectar é muito simples, pois a única informação relevante para o funcionamento correcto do circuito é se existem ou não lugares no parque • Assim, o circuito de dados poderá ser implementado por um contador UP/DOWN que guarda o número de carros no parque e que indica se o parque está cheio: Sistemas Digitais
D1 D2 D3 D4 CP UP CP DOWN Contador Controlo Cheio P1 P2 P3 Parque de Civil (cont.): Circuito de Dados e Circuito de Controlo • O circuito de Controlo será um circuito sequencial que a partir da informação dos detectores e da existência de lugares no parque, deverá controlar a sequência de abertura das portas e o incremento/decremento do contador • Teremos assim o seguinte modelo para o sistema: • De notar que no circuito de dados deste sistema não existem nem dados de saída, nem dados de entrada • Esses dados, a existirem, poderiam ser, por exemplo, o número de lugares vagos (dado de saída) e o número máximo de lugares que poderia ser variável (dado de entrada) Sistemas Digitais
Parque de Civil (cont.): Circuito de Controlo • A especificação do Circuito de Controlo para este sistema poderia ser feita através de um diagrama de estados • No entanto, o Circuito de Controlo de controlo possui 5 entradas (D1 a D4, e Cheio), e 5 saídas (P1 a P3, CP_UP e CP_DOWN), pelo que o diagrama ficaria bem confuso... D1 D2 D3 D4 • A solução será especificar o circuito através de um Fluxograma, ou Máquina de Estados (ASM – Algorithmic State Machine) CP UP CP DOWN Contador Controlo Cheio P1 P2 P3 Sistemas Digitais
P1 D1 P2 D2 P3 D4 D3 Parque de Civil (cont.): Fluxograma (ASM) do Circuito de Controlo Sistemas Digitais
Implementação de um Circuito de Controlo explicitado por ASM • A implementação de um Circuito de Controlo pode ser feita através de vários métodos: • Síntese clássica • 1 Flip-Flop por Estado (codificação “One Hot”) • Implementação microprogramada com ROM (Read Only Memory) • Endereçamento Explícito • Endereçamento Implícito Sistemas Digitais
Implementação através de Síntese Clássica • A implementação de um Circuito de Controlo através do método de síntese de circuitos sequenciais síncronos é possível desde que o ASM seja simples • Basta obter a tabela de transições a partir do fluxograma, e a partir daí aplica-se o método estudado anteriormente • O principal obstáculo quando o ASM tem uma certa dimensão consiste na complexidade que o método implica: • Por exemplo, no problema do Parque de Estacionamento de Civil, temos 8 estados, 5 entradas e 5 saídas, o que leva a que as tabelas de estado seguinte tenham 25=32 colunas(!!!), e a que os mapas de Karnaugh para as entradas dos Flip-Flops tenham 5+3 = 8 variáveis! Sistemas Digitais
Implementação com 1 FF por estado • Mais uma vez recorre-se ao método estudado anteriormente. As grandes vantagens deste método são: • Permite uma realização directa a partir do fluxograma; • A sua complexidade não aumenta exponencialmente com a dimensão da ASM • Estes vantagens devem-se ao facto de este método não obrigar a uma visão “global” do circuito a implementar durante a fase de concepção • Recorde-se que neste tipo de implementação cada estado é representado por um FF, e que em cada instante só um FF está a High, estando os restantes obrigatoriamente a Low • Apesar de necessitar de mais FF, a lógica de estado seguinte vem muito simplificada e, sobretudo, a metodologia de projecto é muito mais simples Sistemas Digitais
Implementação de ASM com ROMs (ou Microprogramada) • O maior problema dos métodos apresentados anteriormente reside na grande quantidade de lógica combinatória necessária para as funções de entrada dos FF • A utilização de circuitos combinatórios típicos em substituição das portas lógicas melhora esta situação, mas continua a não ser uma solução satisfatória • Uma solução bastante melhor será a utilização de ROMs (Read Only Memories): • Apesar de uma ROM ser um circuito com efeito de “memória”, i.e., supostamente um circuito sequencial, esta pode ser utilizada de forma bastante eficiente para implementação de funções combinatórias • As memórias serão estudadas de forma detalhada nas próximas aulas, mas para já é conveniente introduzir as ROMs como circuitos que permitem implementar funções combinatórias Sistemas Digitais
Utilização de ROMs para implementação de circuitos combinatórios • Uma ROM é um dispositivo lógico que tem como entradas um conjunto de linhas de endereço (Am,Am-1,...,A1,A0), e como saídas, um conjunto de linhas de dados (Dn,Dn-1,...,D1,D0) • A dimensão do barramento de dados e do barramento de endereços é variável • Quando vista como um dispositivo que permite implementar circuitos combinatórios, uma ROM de 2 bits de endereço e 1 bit de dados, pode ser representada com o seguinte modelo: • De notar que os bits b3, b2, b1 e b0, não são entradas exteriores da ROM, mas sim valores binários pré-definidos que não podem ser alterados em tempo real Sistemas Digitais
Utilização de ROMs para implementação de circuitos combinatórios (II) • Se assumirmos que na ROM se pré-definiu que: • b3=0, b2=1, b1=1 e b0=0, então a saída D0 passa a assumir a função XOR; • b3=0, b2=1, b1=1 e b0=1, então a saída D0 passa a assumir a função OR; • ...e assim sucessivamente para qualquer função possível de definir com 4 bits • Ou seja, é possível implementar qualquer função de 4 bits a partir de uma ROM de 2 bits de endereço e 1 bit de dados Sistemas Digitais
Utilização de ROMs para implementação de circuitos combinatórios (III) • Numa ROM com n bits de dados, é possível definir n funções combinatórias diferentes • Se essa ROM possuir m bits de endereço, então será possível definir n funções combinatórias de m bits • Resumindo, uma ROM pode ser encarada como um dispositivo extremamente versátil e prático para implementar funções combinatórias • Simbologia de uma ROM de 5 linhas de endereço e 8 linhas de dados (32x8): • Com esta ROM é possível implementar 8 funções de 5 variáveis • Para isso basta que, de alguma forma que será indicada posteriormente, se consigam pré-definir os 8 conjuntos de 25=32 bits indicados como bx no modelo anterior • Normalmente, o conteúdo de uma ROM é apresentado sob a forma de uma tabela de 2m linhas e n colunas Sistemas Digitais
Entradas Saídas 1D C1 1D ROM C1 ... ... 1D C L OCK_H C1 Implementação de ASMs com ROMs (I) • A implementação de ASM com recurso a uma ROM pode ser realizada com a seguinte estrutura: ESTADO LÓGICA COMBINATÓRIA Endereços da ROM Saídas de dados da ROM Sistemas Digitais
Implementação com ROMs (II) • Exemplo: • Temos 3 estados: A, B e C e, portanto, podemos usar 2 variáveis de estado Q1 e Q0. • Temos duas variáveis de entrada, E0 e E1. • Temos duas funções de saída, X, de Mealy e Y de Moore • O diagrama de blocos fica: Sistemas Digitais
Significado das Linhas Q1 Q0 E1 E0 FD1 FD2 Y X Linhas da ROM A3 A2 A1 A0 D3 D2 D1 D0 Estado A 0 0 0 0 0 1 0 1 A 0 0 0 1 0 1 0 1 A 0 0 1 0 1 0 0 0 A 0 0 1 1 1 0 0 0 B 0 1 0 0 0 1 0 0 B 0 1 0 1 0 1 0 0 B 0 1 1 0 0 1 0 0 B 0 1 1 1 0 1 0 0 C 1 0 0 0 1 0 1 0 C 1 0 0 1 0 0 1 0 C 1 0 1 0 1 0 1 0 C 1 0 1 1 0 0 1 0 1 1 0 0 X X X X 1 1 0 1 X X X X 1 1 1 0 X X X X 1 1 1 1 X X X X Implementação com ROMs (III) Exemplo (cont) • Utilizemos a seguinte atribuição de estados: • O conteúdo da ROM será definido pela seguinte tabela: ENDEREÇO CONTEÚDO da ROM No estado C, com E1=0 e E0=0, continuo no estado C (10), e as saídas são Y=1, X=0 No estado C, com E1=1 e E0=1, vou para o estado A (00), e as saídas são Y=1, X=0 Sistemas Digitais
Significado das Linhas Q1 Q0 E1 E0 FD1 FD2 Y X Linhas da ROM A3 A2 A1 A0 D3 D2 D1 D0 Estado A 0 0 0 0 0 1 0 1 A 0 0 0 1 0 1 0 1 A 0 0 1 0 1 0 0 0 A 0 0 1 1 1 0 0 0 B 0 1 0 0 0 1 0 0 B 0 1 0 1 0 1 0 0 B 0 1 1 0 0 1 0 0 B 0 1 1 1 0 1 0 0 C 1 0 0 0 1 0 1 0 C 1 0 0 1 0 0 1 0 C 1 0 1 0 1 0 1 0 C 1 0 1 1 0 0 1 0 1 1 0 0 X X X X 1 1 0 1 X X X X 1 1 1 0 X X X X 1 1 1 1 X X X X Implementação com ROMs (IV) Exemplo (cont) • Repare-se que o conteúdo da ROM em cada endereço pode ser dividido em dois campos distintos, o Estado Seguinte e as Saídas Estado Seguinte Saídas ENDEREÇO Sistemas Digitais
Implementação com ROMs (II) • Exemplo: • Temos 3 estados: A, B e C e, portanto, podemos usar 2 variáveis de estado Q1 e Q0. • Temos duas variáveis de entrada, E0 e E1. • Temos duas funções de saída, X, de Mealy e Y de Moore • O diagrama de blocos fica: Sistemas Digitais
Implementação com ROMs (V) • A dimensão da ROM necessária para implementar este exemplo seria bastante aceitável: • 4 linhas de endereço • 4 linhas de saída (ou dados) • Ou seja, teríamos uma ROM de 16x4 bits, o que é uma ROM bastante pequena • No entanto, para um problema como o do Parque de Estacionamento de Civil, a ROM necessária já teria dimensões substancialmente maiores: • 8 linhas de endereço (5 Entradas + 3 Estado Presente) • 8 linhas de saída (3 Estado Seguinte + 5 Saídas) • Ou seja, teríamos uma ROM de 256x8 bits, o que não levantando um “grande” problema já seria mais complicada de programar • Mais uma vez, e à semelhança da síntese clássica, o aumento do número de entradas, causa um aumento exponencial na dimensão da ROM, o que causa sérios problemas em circuitos reais com elevado número de entradas • Felizmente, existem formas de resolver o problema... Sistemas Digitais
Implementação com ROMs: Endereçamento Explícito • Existem várias soluções. Uma delas consiste em eliminar as variáveis de entrada do barramento de endereços • A estrutura criada por esta solução diz-se que utiliza Endereçamento Explícito • Dado que as Entradas são essenciais ao funcionamento da máquina, é necessário tomar várias medidas que as envolvem directamente: • Eliminar a acção das Entradas nas Saídas, ou seja, transformando o circuito de Mealy num circuito de Moore • Limitar a sua acção na mudança de estado da máquina de forma que, de cada estado actual só se possa passar para um de dois estados seguintes (incluindo eventualmente o próprio estado) – ou seja em cada estado só se pode testar no máximo uma variável de entrada Sistemas Digitais
Implementação com ROMs: Endereçamento Explícito (II) • A estrutura de uma implementação por ROM com Endereçamento Explícito é a seguinte O MUX 2 escolhe para qual dos 2 Estados Seguintes possíveis o circuito irá O número de linhas de Endereço da ROM é dada pelo nº de FF (e se existem N Estados, são necessários log2N Flip-Flops), ou seja eliminaram-se as Entradas O barramento Teste permite seleccionar qual das Entradas se pretende testar no Estado Actual (só se testa no máximo uma Entrada em cada Estado) Sistemas Digitais
Endereçamento Explícito - Exemplo • Apliquemos o Endereçamento Explícito ao exemplo anterior • É necessário eliminar as saídas condicionadas (X), e garantir que em cada Estado só se testa no máximo uma variável de Entrada de forma a que só se possa saltar para um de 2 estados (neste exemplo tal não é necessário) • Suponhamos que neste caso a saída X pode ser incluída no Estado B • Bastam 2 FF para representar o Estado, pelo que a ROM só terá 2 linhas de endereço • A estrutura será a seguinte: Sistemas Digitais
A 0 1 E1 Y_H C B X_H 1 0 E0 Endereçamento Explícito – Exemplo (II) • O conteúdo da ROM passa a ser o seguinte: Estado Seguinte se Teste for Falso Endereço Saídas Teste a E0 ou a E1 Estado Seguinte se Teste for Verdadeiro Sistemas Digitais
Endereçamento Explícito – Exemplo (III) • Quando se opta pelo endereçamento explícito, a ROM passa a ter 4 palavras de 7 bits em vez de 16 palavras de 4 bits • Este ganho é feito à custa de 2 MUX adicionais. Pode não parecer muito neste exemplo, mas para sistemas em que o número de entradas é elevado, o ganho torna-se extremamente importante • Veja-se o exemplo do parque de estacionamento: • Dado que todas as saídas são de Moore não é necessário alterá-las • É necessário acrescentar vários estados adicionais para que só uma variável seja testada de cada vez • O fluxograma passará a ser o indicado no slide seguinte. De notar as seguintes modificações: • Passamos a necessitar de 4 FFs, dado que o número de estados passou de 8 para 11 • A codificação de estados é apresentada no slide seguinte, e é arbitrária, à excepção da atribuição do estado inicial, que por facilidades de inicialização é conveniente ser o 0000 (mas podia não ser...) Sistemas Digitais
P1 D1 P2 D2 P3 D4 D3 Retomemos o exemplo do Parque de Civil.No slide seguinte estão as modificações necessárias no fluxograma. Sistemas Digitais
Endereçamento Explícito – Exemplo (IV) Sistemas Digitais
Endereçamento Explícito – Exemplo (V) • A estrutura passa a ser a seguinte: 5 saídas 3 variáveis (necessárias para seleccionar 5 entradas) 4 FF (necessários para codificar 11 estados), logo 4 linhas de endereço 5 entradas • A ROM passará a ter 24=16 linhas de 5+4+4+3=16 bits, i.e., 16x16 • Sem endereçamento explícito necessitariamos de uma ROM de 256x8, ou seja, uma ROM 16 vezes maior Sistemas Digitais
Endereçamento Explícito – Exemplo (VI) • O conteúdo da ROM (16x16) será o seguinte: 3 variáveis de teste que codificam 5 entradas 4 bits do Estado Seguinte se oTeste for Falso 4 bits do Estado Seguinte se o Teste for Verdadeiro 5 saídas Sistemas Digitais
Endereçamento Implícito • Uma variante da estrutura apresentada, chamada endereçamento implícito, permite reduzir ainda mais a dimensão da ROM • Esta variante será estudada em Arquitectura de Computadores Sistemas Digitais