UNIVERSIDAD NACIONAL DE SAN AGUSTÍN

FACULTAD DE INGENIERÍA DE PRODUCCIÓN Y SERVICIOS
ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA

CURSO:
Electrónica Digital

DOCENTE:
Ing. Juan Carlos Cuadros
TEMA:

”Contador de Rizo módulo 10”
PRESENTADO POR:
Calderon Layme Marco
Ticona Quispe John
Linares Reyes Bill

AREQUIPA- PERÚ
2012
CONTADOR DE RIZO MÓDULO 10

pero en la teoría ocurre esto porque existe un tiempo de retraso de propagación. Para aplicar el reseteo al contador usamos primero un “if” en el cuarto FlipFlop el que nos indicaba que si J=’0’ y K=’0’ su salida(Q3) sea cero y así todas las salidas sean cero. la cual será la señal de reloj para el siguiente FlipFlop y asi sucesivamente. por lo que nuestro contador asincrónico módulo 10 sólo contara de cero a nueve(0 a 9) En la teoría realizada en el curso: Ts Th CLK Q Ts: Tiempo de establecimiento tPLH Th : Tiempo de retención tPLH : Tiempo de retraso de propagación En Xilinx: CLK Q PROGRAMACIÓN: Para realizar la programación usamos de guía la teoría. luego de esto recién se puso . donde luego del flanco de bajada hay un tiempo de establecimiento. y no existe tiempo de establecimiento. pero en el programa usado esto no ocurre. ya que si al igual que a los otros flipflops primero poníamos la condición del flanco de bajada. empezando con CLK que vendrá a ser la señal de reloj para nuestro primer FlipFlop con salida Q0. y pudimos ver que para realizar un contador de rizo módulo 10 necesitamos 4 FlipFlops. según la teoría realizada en el curso nuestro contador debería llegar a ser 10 por un pequeño instante de tiempo y luego resetearse para volver a empezar en cero. debido a que esto es lo que ocurre en los contadores asincrónicos. es asi que empezamos a realizar la programación.El contador a realizar es un contador asincrónico que cuente de cero a nueve (de 0 a 9). la señal cambia automáticamente cuando encuentra el flanco de bajada. Q3 no hubiera cambiado a cero con J=’0’ y K=’0’ como lo habrían hecho los demás flipflops .

la condición de actuar hasta que encuentre un flanco de bajada y así a volver a empezar el conteo. Algoritmo: CLK=Rel oj J=’0 ’ K=’ J=’1 ’ K=’ Q0=not Q0 Q0=’0’ Q 0 Q0=Relo j J=’0 ’ K=’ J=’1 ’ K=’ Q1=not Q1 Q1=’0’ Q 1 Q3 Q2 Q1 Q0 Q1=Relo j J=’0 ’ K=’ J=’1 ’ K=’ Q2=not Q2 Q2=’0’ Q 2 J=’0 ’ K=’ Q3=’0’ SI N O Q2=Relo j Q 3 J=’1 ’ K=’ Q3=not Q3 .

end frecuenciadigital1.K. Q2 : inout STD_LOGIC.Xilinx: entity frecuenciadigital1 is Port ( J : in STD_LOGIC. x:process(J. end if.K. end if. Q0 <= temp. end if. K : in STD_LOGIC. ad: STD_LOGIC. CLK : in STD_LOGIC. end process y. end if. begin y:process(J. elsif (J='1' and K='1') then temp <= not temp. elsif (J='1' and K='1') then ad <= not ad. Q3 : out STD_LOGIC). architecture Behavioral of frecuenciadigital1 is signal signal signal signal temp: STD_LOGIC.Q0.ad) begin if (Q0'EVENT AND Q0='0') then if (J='0' and K='0') then ad <= '0'. Q1 : inout STD_LOGIC.temp) begin if( CLK'EVENT AND CLK='0')then if (J='0' and K='0') then temp <= '0'. . ef: STD_LOGIC.CLK. gh: STD_LOGIC. Q0 : inout STD_LOGIC.

end if.K. Q1. end if. Q0) como valor inicial cero. w:process(J. end if. end process z. . dicha condición fue aprovechada más adelante para aplicar el reseteo a nuestro contador. end process x. z:process(J. elsif (J='1' and K='1') then ef <= not ef. Q2 <= ef.ef) begin if(Q1'EVENT AND Q1='0') then if (J='0' and K='0') then ef <= '0'. end process w. end if. a partir de la condición de J=’0’ y K=’0’.Q1. end Behavioral. Q2.gh) begin if (J='0' and K='0') then gh <= '0'. Q3 <= gh. elsif(Q2'EVENT AND Q2='0') then if (J='1' and K='1') then gh <= not gh.K.Q2. por lo que nosotros le asignamos a las variables (Q3.Q1 <= ad. OJO: Como se sabe el Xilinx no reconoce el valor inicial.