martes, 10 de mayo de 2016

Contador binario ascendente síncrono con flip-flops T en esquemático

En el contador síncrono todas las entradas de reloj de los flip flops T se encuentran unidas entre sí. De esta forma se evita que  por retardos en cascada  de los flip-flops que el contador cuente en forma errada como lo hace el contador asíncrono.

Mediante tabla de estados y de excitación del flip flop T  se llega al siguiente esquemático utilizando el flip flop T con clear,  FTC, disponible en el Xilinx ISE:



Se sintetiza este archivo.sch  y se crea su símbolo esquemático.

Se crea nueva fuente en modulo VHD y se sintetiza el divisor que convierte los 50 Mhz a 1 Hz:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity Divisor is
    Port ( CLK50Mhz : in  STD_LOGIC;
           CLK1hz   : BUFFER STD_LOGIC);
end Divisor;

architecture Behavioral of Divisor is
signal pulso: STD_LOGIC := '0';
signal contador: integer range 0 to 24999999 := 0;

begin
process (CLK50Mhz)
begin
if (CLK50Mhz'event and CLK50Mhz = '1') then 
if (contador = 24999999) then
                pulso <= NOT(pulso);
                contador <= 0;
            else
                contador <= contador+1;
            end if;
    end if;
  end process;
 CLK1hz <=  pulso;
end Behavioral;

Este archivo se sintetiza y luego se crea su símbolo esquemático.

Luego se crea un nuevo archivo esquemático, adicionando al contador el divisor:
Queda listo para implementarlo asignando pines y hacerlo trabajar con la FPGA en la Basys 2.

No hay comentarios:

Publicar un comentario