VHDL: Contador

author-image

Por

VHDL: Contador comportamental

Este exemplo implementa um contador comportamental com recursos de carga, limpeza e para cima e para baixo. Ele não foi otimizado para uma arquitetura de dispositivo específica, portanto, o desempenho pode variar. Intel® FPGA recomenda usar a função lpm_counter para implementar um contador (consulte VHDL: Down Counter). Este exemplo é fornecido para mostrar a implementação de contador que não requer o LPM.

Para obter mais informações sobre como usar este exemplo em seu projeto, acesse:

counters.vhd

CONTADORES DE ENTIDADES
    É PORT       (d: NO INTERVALO INTEIRO DE    0 A 255;     clk: EM    BIT;
        claro:   EM    BIT;
        carga:    EM    BIT;
        up_down: EM    BIT;      qd: INTERVALO INTEIRO FORA DE   0 A 255);
Contadores END;

ARQUITETURA A OF COUNTERS IS BEGIN (ARQUITETURA A OF COUNTERS IS BEGIN) — UMA VARIÁVEL CNT (processo de contador para
    cima/baixo) : FAIXA DE INTEIROS
         DE       0 A 255;
         DIREÇÃO    VARIÁVEL: INTEIRO;
    INICIAR
        SE (up_down = '1') ENTÃO --Gerar a direção do contador  para
            cima/para baixo := 1;
            Direção
                ELSE := -1;
        TERMINAR SE;
            SE (clk'EVENT E CLK = '1') ENTÃO
                SE (carga = '1') ENTÃO         --Gerar 
                    cnt carregado := d;                -contador. Leve essas 
                    OUTRAS                     OPÇÕES --linhas para aumentar o desempenho.
                    cnt := cnt + direção; 
                 TERMINAR SE;
                --As seguintes linhas produzirão uma síncrona 
                --clear no contador
                  IF (clear = '0') ENTÃO     
                     cnt := 0;
                  TERMINAR SE;
             TERMINAR SE;
    qd <= cnt;   --Gerar saídas
    END PROCESS;
FIM A;

O conteúdo desta página é uma combinação de tradução humana e por computador do conteúdo original em inglês. Este conteúdo é fornecido para sua conveniência e apenas para informação geral, e não deve ser considerado completo ou exato. Se houver alguma contradição entre a versão em inglês desta página e a tradução, a versão em inglês prevalecerá e será a determinante. Exibir a versão em inglês desta página.