Download Asignación no bloqueante Señal de reloj Biestable RS Biestable JK
Document related concepts
Transcript
Circuitos biestables Asignación no bloqueante Señal de reloj Biestable RS Biestable JK Asignación no bloqueante l En Verilog, cuando hay varias asignaciones para una marca de Bempo, se realizan de modo consecuBvo. Así si tenemos ! l l ! !#5 R=0; S=0;! primero se calcula el resultado de asignar 0 a R y sus consecuencias, y posteriormente se asigna 0 a S La asignación no bloqueante usa como símbolo <=! Si se usa asignación no bloqueante en el caso anterior ! ! !#5 R<=0; S<=0;! primero se asignan todos los valores, antes de calcular sus consecuencias sobre el circuito. 2 Asignación no bloqueante • ¿Cuál es el valor de a, b, c y d al final del siguiente ejemplo? #5 a=1; b=2; c=3; d=4; ! #5 a=b; b=a;! #5 c<=d; d<=c;! 3 Señal de reloj l Los procesadores funcionan a un determinado ritmo, que se conoce como la frecuencia de operación, que depende de una señal de reloj l l Si un procesador funciona a 1GHz, quiere decir que su señal de reloj Bene 1000 millones de ciclos por segundo Para simular la oscilación del reloj podemos usar un bloque always! l Todo lo que se encuentre en el bloque se ejecuta conBnuamente hasta que termine (o se pare) el programa 4 Señal de reloj • Ejemplo: always #7 C=~C;! • • • Suponiendo que antes se ha definido el registro C de un bit, este bucle hace que C cambie a su valor complementario cada 7 unidades de Bempo. Hemos conseguido, pues, un reloj que realiza un periodo o ciclo completo cada 14 unidades de Bempo Si una unidad de Bempo equivale a 1ns, ¿cuál sería la orden para un reloj que operara a 100 MHz? • • 100 MHz = 100·∙106 Hz = 10-‐8 s = 10 ns always #5 C=~C! 5 Circuito biestable • Es un circuito que oscila entre dos (bi-‐) estados • La salida del circuito puede ser de dos Bpos: • Estable: toma como salida la úlBma salida del circuito • Entrada: toma como salida la entrada del circuito • Una entrada control determina en que estado está el circuito • Este Bpo de circuitos introducen la variable “Bempo” • La salida de un circuito biestable es la que tenía en el momento anterior, a no ser que se tome de nuevo la entrada • La entrada de control puede (suele) ser el reloj del sistema • Son la base de los circuitos de desplazamiento que veremos en la sesión siguiente 6 Ejercicio 1 • Programar un biestable RS con ayuda de dos puertas NOR • ¿Cuál es la salida si se somete al biestable a la siguiente batería de entradas? $monitor($time," R=%b, S=%b, Q=%b, NQ=%b", R, S, Q, NQ);! R=0; S=0;! #5 R=0; S=1;! #5 R=0; S=0;! #5 R=1; S=0;! #5 R=1; S=1;! #5 R=0; S=0;! #5 R=1; S=1;! #5 S=0; R=0;! 7 Ejercicio 3 • Añadir al biestable anterior una entrada de reloj a nivel alto • Pista: soluciones y comentarios • hdp://avellano.fis.usal.es/~compi/sol0703.htm 8 Ejercicio 5 • Añadir un bloque always a las pruebas del ejercicio anterior para generar una señal de reloj de periodo 14 unidades de Bempo • Obsérvese cómo el biestable sólo reacciona a las señales R y S cuando el reloj se encuentra en alto 9 Ejercicio 6 • Modiiquese el diseño del ejercicio anterior para construir un biestable RS acBvo en el flanco de subida del reloj • Para ello, pásese la señal de reloj por este circuito detector de flanco de subida antes de pasársela al biestable del ejercicio anterior • Compruébese cómo el biestable es ahora acBvo en los flancos de subida 10 Ejercicio 7 • Prográmese en Verilog, y comprúebese, este circuito que realiza un biestable JK acBvo 11 Ejercicio 7 (cont.) • En parBcular, estúdiese lo siguiente 1. Poniendo la señal de reloj en cero conBnuo, véase que las señales PRESET y CLEAR son asíncronas 2. Poniendo la señal de reloj en uno conBnuo, y desacBvando las señales PRESET y CLEAR, comprobad el funcionamiento de las entradas J y K. • Es posible que al probar a acBvar a la vez las señales J y K, el funcionamiento no sea el esperado o incluso se bloquee la simulación. Si es el caso, pulsa CTRL+C 3. RepeBd la prueba de J=1 y K=1, pero asignando un retardo de una unidad de Bempo a todas las puertas NAND 4. InvesBgad qué sucede jugando con los retardos independientes de cada puerta, hasta alcanzar valores de comportamiento deseables. 12 13