Logisim: registro de problemas de tiempo

3

Tengo algunos problemas para comprender los comportamientos de tiempo que observo en Logisim. He aislado algunos casos que ilustran el problema.

Diga que tengo un registro (1 bit, para mantenerlo simple), que se alimenta con un 1 lógico en su entrada D. En el reloj, el registro se establece en 1, como se esperaba:

Paraqueestofuncione,laentradaDyadebeestarrecibiendoel1lógicocuandollegalaseñaldelreloj.Si,alutilizaruntransistordetipoN,solodejamosquelalíneadedatosestéaltacuandoelrelojestáalto,entonceselregistroyanoseconfigurarácorrectamente,debidoalretrasointroducidoporeltransistor:

De hecho, si agregamos dos compuertas NO a la línea del reloj que es suficiente para retrasar la señal del reloj (en relación con la línea de datos) y nos aseguramos de que la entrada D reciba el 1 lógico de nuevo, permitiendo que el registro sea correcto conjunto:

Porsupuesto,esoesunerrorhorribleynosepuedeconfiarenél,yaquelostiemposdepuertapuedenvariardebidoalastoleranciasdeloscomponentesyotrasrazones.Aunasí,hastaahoratodobien,todosestoscomportamientosteníansentidoparamí.Loquenoentiendosonlossiguientesdoscasos.

Pensé:sipongountransistordetipoNenlalíneadelreloj,solopermitiréquelaseñaldelrelojpasedespuésdequelaseñaldedatoshayapasadosurespectivotransistor,quedeberíasincronizartodo.Peronofunciona:

Tampoco funciona con un componente de "Buffer controlado":

Aúnmássorprendente,siusountransistordetipoP,entonceselregistroestáestablecido,aunquelaentradadelrelojdelregistroestéflotando,enlugardeconfigurarseenalto:

¿Podría explicarme estos dos últimos comportamientos?

    
pregunta Luís Marques

2 respuestas

1

Nunca he usado Logisim, pero tengo una idea de lo que puede estar haciendo:

Algunos de sus circuitos carecen de pull-up / down en la entrada del reloj. Puede ser que su valor predeterminado sea uno (implícito débil pull-up). Si ese es el caso, entonces una entrada flotante es equivalente a una débil.

Teniendo esto en cuenta, en el circuito con la puerta n (o el búfer controlado, que asumo que es un búfer de tres estados), la entrada del reloj de registro nunca ve un cero (por lo que no se alterna). No puede porque la puerta N está propagando uno o deshabilitado, en cuyo caso la entrada del reloj del registro flotante se establece de forma predeterminada como débil. Sin un reloj de registro de conmutación, los datos nunca se registran, por lo que permanece en el cero predeterminado.

Tenga en cuenta que el orden de las asignaciones es:

  1. entrada a n-gate
  2. habilitar / deshabilitar n-gate simultáneamente con entrada de datos de registro
  3. salida de n-gate simultáneamente con registrar entrada de reloj .

En el último circuito con la puerta p se aplica el mismo orden de eventos, pero con valores diferentes. Cuando la señal del reloj es cero, la puerta p está habilitada debido a la función desplegable explícita, por lo que la puerta p propaga el valor del reloj de cero. Cuando la señal del reloj pasa a uno, desactiva la compuerta p al mismo tiempo que establece la entrada de datos de registro en uno, y una unidad más tarde, la entrada del reloj de registro se pone en flotación (débil), sincronizando la entrada actual, que Nosotros dijimos que es uno.

Entonces, el primer comportamiento es nunca registrar los datos, y la salida del registro permanece en cero. El segundo comportamiento es solo de reloj, por lo que la salida del registro va a uno y nunca vuelve a cero.

    
respondido por el apalopohapa
0

Respuesta corta para nuevos usuarios: Logisim NO simula la sincronización del nivel de la señal. Solo cambios de estado simulados a través de componentes.

    
respondido por el underscore

Lea otras preguntas en las etiquetas