Estoy modelando circuitos digitales usando circuitos integrados en un software. He trabajado con chanclas y contadores, pero no lo recuerdo bien. ¿Cómo modelo el valor indefinido o inicial del flip flop (SR o JK, etc.)? tengo tres opciones
Considere también un flip flop JK, si la entrada del usuario es '0' y '0', la salida es 'Q' y 'Q bar'. ¿Qué valor le asigno en este caso? '0' y '1'? Este es el caso inicial, es decir, el circuito se ha realizado y la consola acaba de encenderse.
Por favor comparte tu experiencia.
En algunos tipos de simulación, cuantos más estados, mejor. Si está haciendo solo lógica síncrona de un solo reloj, sugeriría tres estados (alto/bajo/indefinido), pero expanda la lógica del flip flop JK para incluir el cálculo completo del siguiente valor. Por ejemplo, si se tiene un circuito en el que las entradas J y K están ligadas al AND de la salida y una señal de RESET, se debe aplicar output := (J & !output) | (!K & output)
, de modo que el término anterior se anule, quedando output := !RESET & output
, cuyo valor estaría bien definido si el reinicio es alto, incluso si output
no está definido.
Si está tratando de hacer una simulación en tiempo continuo, se necesitarán muchos más estados, incluidos 'ascendente', 'descendente', 'desconocido estable', 'desconocido inestable', etc. con algunas tablas de verdad complicadas que dependen de los estados anteriores de entradas, así como los estados actuales (por ejemplo, 'aumentando: alto y aumentando: alto == ascendente', pero 'aumentando: alto y alto: cayendo' == 'desconocido inestable'), ya que la primera señal podría o no tener se elevó lo suficientemente pronto como para generar un pulso alto en la salida.
En general, hay dos enfoques que los simuladores pueden usar para algo como esto:
1) Asignar o asistir en la asignación de un estado inicial
2) Simule con 3 (o más) lógica de estado, una de las cuales es "indefinida", y haga que la entrada indefinida se propague a través de toda la lógica dependiente produciendo salidas indefinidas. Este es un enfoque bastante común: construya una máquina de estado en Verilog, ingrese una declaración para que el simulador imprima la variable de estado y vea que muestra "x" hasta que se defina todo lo que influye en ese valor. (En el caso de su Q y /Q, ambos serían indefinidos)
Iría con el aumento de un error y me negaría a simular.
Tener una entrada flotante nunca es una buena idea.
Garg Vinayak
Super gato
Super gato