5 votos

Número impar divisor de frecuencia

Nota importante: Usted no me ayuda a hacer mi tarea. Esto es para un concurso para estudiantes de ingeniería, que lo alienta a que "el uso de la red" ;)

Tengo este modelo de un divisor de frecuencia que divide el reloj por 5. Se supone que tienen un gran problema, pero me parece que no puede encontrar exactamente lo que es.

enter image description here

Las opciones que tengo para solucionar este problema es:

  • X==(000/001/100), Y==(001)
  • X==(000/001/010/011), Y==(010/011)
  • X==(001/010/011), Y==(000)
  • Tanto en a) y c) son correctas!

Me he tomado el tiempo para hacer un mapa de las señales en el diseño original y en la opción número 3, como yo pensaba que esa era la respuesta.

http://imgur.com/dD30q

He cambiado el reloj de la mitad ciclo de reloj, con gritos. No se debe cambiar nada, aunque. El resto se hace a mano.

¿Alguien aquí tiene alguna buena sugerencia?

6voto

fearphage Puntos 250

Se supone que tienen un gran problema

El posible problema que salta a mí es fallo de la prevención. Su salida es una señal de reloj, por lo que sería muy sensible al exceso de los bordes. Pero es un combinacional de salida, por lo que puede ser propenso a las interferencias.

Sólo como un ejemplo, digamos que tiene este ingenuo aplicación de un completo llevar a generador (al menos 2 entradas de 3 son verdaderas), es decir,

Y = ABC + AB(!C) + A(!B)C + (!A)BC

Si el ABC de las señales del interruptor de 111 a 011, hay una oportunidad, dependiendo de los retardos de propagación, que la salida Y, que debe ser un 1 todo el tiempo, le da un corto glitch de 0. Lo que básicamente pasa es que la salida de la veracidad tiene que pasar de un término al otro: ABC -> (!A)a de c. en este caso. Si el (!A)BC término tiene un mayor tiempo de retraso de propagación de la ABC plazo para el 1 -> 0 de transición en a, entonces ambos términos ABC y (!A)BC puede ser 0 para un corto período de tiempo, y se obtiene un 0 como salida.

Una adecuada implementación es el caso de una sola variable de entrada bit de cambio no produce problemas en la salida: la salida del nivel es compartida por dos términos, ya que las transiciones. En el caso de un completo llevar generador, esto funciona:

Y = AB + BC + CA

En su caso, hay dos posibles causas de problemas.

Una de ellas es que X y Z de cambio casi al mismo tiempo -, pero, en su caso, de acuerdo a su tiempo de diagramas, esto no debería suceder.

La otra es que la lógica combinacional que produce X es glitch propensas. No sabemos cómo se implementa, por lo que es difícil de decir.

La solución más simple en cualquiera de los casos es para pegarse un flip-flop en la salida, con la misma entrada de reloj que el resto de los flip-flops. Moderno flip-flops tienen sample/hold especificaciones de tal manera que cualquier retardo de propagación >= 0 y < (reloj período de tiempo de configuración) se producen estable, glitch salidas libres, así que a menos que su reloj período es realmente rápido, cualquier perturbación en la entrada de los flip-flop se conforma por el inicio de su programa de instalación de la ventana de tiempo en el siguiente flanco de reloj.

Si usted no puede tolerar el retraso de la puesta de un flip-flop en la salida, usted necesita para asegurarse de que todos lógica combinacional directamente la producción de la salida es glitch libre.

0voto

Alex Andronov Puntos 178

Te sugiero comenzar con una división por cinco contador, uno de cuyos bits es alto para los dos cargos y baja para tres. Por ejemplo:

Q0 := !Q1 & !Q2;
P1 := Q0;
P2 := Q1;

Este contador va a ir a través de la secuencia: 000 001 011 110 100 (un valor de 101 llegar a un estado válido después de dos relojes; 010 o 111 llegar a un estado válido después de un reloj). Cualquier bit de puede ser utilizado como un dos-caliente de salida.

Tome la salida de este contador y pasarselos a un pestillo que se activa por el contrario flanco de reloj. La "O" de este contador de salida con la primera de ellas el rendimiento deseado de la forma de onda.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X