counter Ayuda

S

shadeslayer

Guest
Quiero hacer contador que tiene 2 entradas

uno es 4mhz reloj
Secon es una entrada de bits que mantiene en el set y reset

i en la producción quiere sólo un poco nuestroahora si mi entrada es baja para 12 pulsos thn mi salida shuld ir bajo,,,¿Cómo puedo hacer esto???

 
Shadeslayer ¡Hola!

Para implementar la funcionalidad que usted describe, puede seguir aquí después de los pasos:

1 - Detectar los bordes de entrada (la caída y en aumento).
2 - Si un borde de la caída se produce a continuación, empezar a contar, si se trata de un flanco de subida a continuación, restablezca el contador.
3 - La salida es keept 1, hasta que el contador llega a 12, entonces se pasa a baja.

Si necesita más información sobre cómo detectar los bordes, cómo mantener el valor de la producción sin necesidad de un cierre, o la forma de aplicar el contador, entonces pregunte y yo seguiré con ustedes.

Atentamente,
Dicho.

 
No entiendo las palabras "mantiene en el set y reset".

Asumiendo que usted quiere un diseño síncrono, aquí tienes algunos Verilog.
Si bien 'en' es alto, una carga de 5-contra bits con -12.Si bien 'en' es bajo, el recuento de los cambios hasta el MSB a 0.La salida de la MSB.
Código:

Top Module (CLK, in, out);

CLK de entrada, en;

reg [4:0] count = -12;

Salida a cabo;asignar out = count [4];siempre @ (clk posedge)

count <= en?
-12: Cuenta cuenta [4];

endmodule
 
echo47 .... yo no soy un tipo verilog.Pero me gustó la forma en que se codificó arriba de diseño.Muy preciso!
Supongo que Verilog es muy bueno en la toma de una ingeniosa camisas.

 
echo47 escribió:

No entiendo las palabras "mantiene en el set y reset".Asumiendo que usted quiere un diseño síncrono, aquí tienes algunos Verilog.

Si bien 'en' es alto, una carga de 5-contra bits con -12.
Si bien 'en' es bajo, el recuento de los cambios hasta el MSB a 0.
La salida de la MSB.Código:

Top Module (CLK, in, out);

CLK de entrada, en;

reg [4:0] count = -12;

Salida a cabo;asignar out = count [4];siempre @ (clk posedge)

count <= en?
-12: Cuenta cuenta [4];

endmodule
 
Si 'en' no es sincrónico con "CLK", entonces mi ejemplo podría contrarrestar el mal funcionamiento debido a la configuración / retención de violación de la lucha contra el flip-flops.Una solución sencilla sería aprobado "en" a través de un D cronometró-flop.Sin embargo, ello aumentaría la latencia de los "in" de entrada, lo que puede tener que modificar el proyecto general para dar cabida a la demora adicional.

 

Welcome to EDABoard.com

Sponsor

Back
Top