¿Cómo puedo implementar un circuito digital usando puertas lógicas booleanas?
Como puede ver, en cada flanco ascendente, ocurre una oscilación y la señal regresa al nivel lógico ALTO después de la oscilación. Esto también es lo mismo para el borde descendente.
Intente crear dos nuevas señales con un circuito RC de retardo y un disparador schmitt: -
Luego use puertas OR exclusivas en las tres señales para crear la señal de salida deseada.
Si se trata de un diseño puramente asincrónico como usted dice, entonces necesita generar sus propias señales de tiempo. Si esta es una pregunta de estudios universitarios, entonces la respuesta esperada es probablemente usar los retrasos de propagación de las puertas independientes para subir y bajar las señales; conecte varias puertas (como inversores) una tras otra para generar señales con diferentes retrasos de propagación. Luego use puertas lógicas independientes para combinar las señales retrasadas en la forma de onda de salida que necesita. Esta técnica es posible con un diseño de IC totalmente personalizado o mediante el uso de puertas lógicas separadas (como los IC lógicos de la serie 74HCxxx). Pero esta metodología de diseño no es posible con FPGA porque los FPGA no tienen puertas separadas. (A menos que coloque y enrute el FPGA a mano utilizando puertas de macroceldas seleccionadas a mano cuyas propiedades conoce).
Otros métodos de diseño requieren hacer una señal de reloj, usando algún tipo de oscilador. Luego, puede usar esa señal de reloj para hacer un diseño síncrono que puede implementarse mediante cualquier metodología de diseño de su elección, como FPGA. (Hablo de FPGA porque hablas de ellos en otra pregunta tuya).
Implementé el circuito sktechd en el siguiente esquema:
simular este circuito : esquema creado con CircuitLab
Implementarlo en Verilog y simularlo en Xilinx ISE considerando los retrasos en la puerta conduce al siguiente resultado:
(* KEEP = "TRUE" *)
a las puertas INV para evitar que se eliminen durante la síntesis.
PkP
VSB
Campos EM
PkP
VSB
PkP