# Contador

Biblioteca: | Memória
Introdução: | 2.3.0
Aparência: |

## Comportamento

O contador mantém certo valor, o qual será emitido pela saída Q. Cada vez que a entrada de clock (indicada por um triângulo na face sul do componente) variar de acordo com o atributo Gatilho, o valor do contador será atualizado de acordo com as duas entradas na face oeste do componente: a superior será chamada load e a inferior count, e serão interpretadas com se segue.

load | count | Ação do gatilho
0 ou z | 0 | Contador permanecerá imutável.
0 ou z | 1 ou z | Contador incrementará.
1 | 0 | Contador carregará valor encontrado na entrada D.
1 | 1 ou z | Contador decrementará.

O limite da contagem poderá ser configurado pelo atributo Valor Máximo. Quando o contador alcançar esse valor, o próximo incremento levará o contador de volta para 0; e se já estiver em 0, um decremento o levará de volta ao Valor Máximo.

Além da saída Q, o componente também possui uma saída de apenas um bit chamada carry. Essa será igual a 1 sempre que o contador atingir o valor máximo e as entradas load e count indicarem que o componente deverá fazer um incremento no próximo passo - ou quando o contador estiver em 0 e as entradas load e count indicarem decremento no próximo passo.

A entrada clear reiniciará o contador a partir do valor 0 (em todos os bits) assincronamente; ou seja, enquanto a entrada clr estiver em 1, o valor ficará fixo em 0, independente da entrada de clock.

## Pinos

Na face leste, marcado por Q (saída, com largura em bits de acordo com o atributo Bits de Dados)
  Emitirá o valor atualmente armazenado pelo contador.
Na face leste, pino inferior (saída, com largura de 1 bit)
  carry: quando load e count indicarem incrementar, a saída será 1 sempre que o contador estiver no máximo. Quando load e count indicarem decrementar, essa saída será 1 sempre que o contador estiver em 0. Todas as outras vezes, a saída será 0.
Na face oeste, pino superior (entrada, com largura de 1 bit)
  load: Se for 1, enquanto a entrada count for 0, o contador irá carregar o valor encontrado na entrada data na próxima variação do clock - ou, se a entrada count for 1, o valor do contador será decrementado.
Na face oeste, pino central marcado por D (entrada, com largura em bits de acordo com o atributo Bits de Dados)
  Dado: quando o clock variar enquando a entrada load estiver em 1 e count for 0, o conteúdo do contador irá mudar para o valor encontrado nessa entrada.
Na face oeste, pino inferior marcado por ct (entrada, com largura de 1 bit)
  count: quando estiver em 1 ou desconectado, o valor no contador será incrementado sempre que a entrada de clock variar - ou decrementado se a entrada load também estiver em 1.
Na face sul, indicado por um triângulo (entrada, com largura de 1 bit)
  clock: no instante em que variar conforme especificado pelo atributo Gatilho, o contador irá se atualizar de acordo com as entradas load e count.
Na face sul, marcado por 0 (entrada, com largura de 1 bit)
  clear: quando estiver em 0 ou indefinido, essa entrada não terá efeito algum. Enquanto permanecer em 1, o valor do contador se manterá em 0 assincronamente. Isso ocorrerá assincronamente - ou seja, sem depender do valor corrente da entrada de clock. Enquanto permanecer em 1, as outras entradas não terão efeito.

## Atributos

Quando o componente for selecionado ou estiver sendo acrescentado, Alt-0 até ALT-9 irão alterar o seu atributo Bits de Dados.

Bits de Dados
  A largura em bits do valor emitido pelo componente.
Valor Máximo
  O maior valor possível, a partir do qual o contador irá produzir saída de carry.
Ação quando Overflow
  O comportamento do contador quanto tentar fazer incremento além do valor máximo ou decrementar além de 0. Há quatro ações possíveis:
  Circular
    O próximo valor será 0 (se estiver incrementando - ou valor máximo se decrementando).
  Permanecer no Valor
    O contador permanecerá no valor máximo (ou 0 se estiver decrementando)
  Continuar Contando
    O contador continuará incrementando/decrementando, mantendo o número de bits conforme o estabelecido pelo atributo Bits de Dados.
  Carregar Próximo Valor
    O próximo valor será carregado a partir da entrada D.
Gatilho
  Serve para configurar como a entrada de clock será interpretada. O valor Borda de Subida serve para indicar que o contador deverá atualizar o seu valor no instante em o clock variar de 0 para 1. O valor Borda de Descida indicará que ele deverá realizar a atualização no instante em que o clock variar de 1 para 0.
Rótulo
  O texto para o rótulo associado à porta.
Fonte do Rótulo
  A fonte com a qual o rótulo será mostrado.

## Comportamento da ferramenta Testar

Ao clicar sobre o contador mudará o foco do teclado para esse componente (indicado por um retângulo vermelho), e ao digitar dígitos hexadecimais poderá alterar o valor armazenado no contador.

## Comportamento da ferramenta Texto

Permite que o rótulo associado à porta seja editado.

Voltar à Referência para bibliotecas