Académique Documents
Professionnel Documents
Culture Documents
Cada Flip Flop procesa a la salida un bit. El Registro paralelo sera capz de procesar n bits de informacin. En el instante del flanco positivo de Reloj, el valor de la entrada A se almacenar en la salida R.
Incluye una seal de CLEAR (Reset) asincrnica.
Para cada bit se tiene un Flip Flop tipo D, de manera que las entradas pasen a las salidas, en el momento de los flancos positivos de reloj.
En cada flanco de reloj, el resultado de la suma se carga a la salida del registro, permitiendo que al siguiente flanco el nuevo valor a cargar sea el valor acumulado de la suma anterior mas el Dato. Se puede utilizar en conteos de datos en circuitos, como personas, precios, etc.
En un registro serie, el valor de un bit deber desplazarse a los otros bits. Esto se logra haciendo que la salida de un FF alimente a la entrada D del siguiente:
0000 1000 0100 0010 0001
Los contadores se clasifican por el tipo de cdigo de conteo que emplean, el nmero de bits que tienen, el mdulo (cantidad de elementos de conteo), y el tipo de Clear/Reset que emplean (sincrnico o asincrnico).
Contadores binarios 000 001 010 DOWN 011 UP 100 101 110 111 Cuentan con una secuencia binaria simple. Pueden hacerlo en dos direcciones: Hacia arriba o conteo normal (UP) o hacia abajo (DOWN).
Contadores Anillo Torcido 000 100 110 111 011 001 000 001 011 111 110 100
U1
3 4 5 6 2 7 11 9 10 1 D0 D1 D2 D3 SR SL CLK S0 S1 MR 74194 Q0 Q1 Q2 Q3 15 14 13 12
A 0 1 0 0 0
B 0 0 1 0 0
C 0 0 0 1 0
D 0 0 0 0 1
Notamos que en la mayora de los casos hay un desplazamiento a la derecha y el ingreso del valor 0 en el lugar libre.
Slo cuando la secuencia pasa de 0000 a 1000 se desplaza a la derecha, ingresando un 1. El circuito entonces siempre realizar desplazamiento a la derecha (01), pero el valor a ingresar solo ser 1 cuando el estado presente sea 0000.
Se puede ver por inspeccin de la tabla que S1=0 y que S0 = 1. As mismo L y las entradas paralelo son iguales a 0.
Se puede ver que con ste mtodo obtenemos el mismo resultado inicial.
Se da la opcin de colocar un nombre al proceso. lista de sensibilidades, es el grupo de seales que activan al proceso, siempre y cuando se active o cambie una de las seales contenidas en dicha lista. Despus del begin se construye el algoritmo que describe el comportamiento del diseo
En un proceso se declaran variables, no seales. Ellas son internas al proceso y no son visibles externamente. La declaracin de una variable es exactamente igual a una declaracin de seal interna con la diferencia de, que en lugar de signal, se utiliza la palabra clave en VHDL variable.
Declaraciones secuenciales
Las declaraciones secuenciales mas utilizadas son:
Declaracin if-then-else
La estructura if trabaja de la siguiente forma: Si la expresin booleana escrita a continuacin del if es cierta, entonces se ejecuta la declaracin incorporada despus de la palabra then.
En caso contrario, si no se utiliza else, la instruccin finaliza, pero si se usa else entonces se ejecuta la declaracin secuencial correspondiente a este else.
Ejercicio
Disee un comparador de igualdad de dos nmeros a y b, de 4 bits cada uno.
Declaracin if-then-elsif-else
Una clusula muy cmoda en la estructura de un if es elsif. Esta clusula realiza la misma funcin que un else-if y es conveniente usarla cuando es necesario usar varias estructuras if anidadas.
Observe que usando elsif, solo es necesario utilizar una sola vez end if; mientras que si se usaran varias estructuras if anidadas, se debera colocar tantas end if como el numero de if que tenga.
Declaracin case
La sentencia case evala la expresin colocada a continuacin de la palabra clave case, encuentra un valor que coincida con una de las alternativas colocadas despus de when y ejecuta las declaraciones de asignacin correspondientes. Si son varias alternativas, estas deben cubrir todos sus posibles valores. En caso que solo se enumeren algunas de las posibles, entonces deber usarse la palabra clave others para cubrir el resto de las alternativas que no han sido declaradas.
Sentencia wait
La sentencia wait detiene la ejecucin de un proceso hasta que se cumple determinada condicin. Wait on: produce el mismo efecto que la lista de sensibilidad; Todo proceso debe tener bligatoriamente una lista de sensibilidad o una o varias wait on, pero nunca las dos cosas a la vez.
Sentencia wait
En ambos casos del ejemplo el simulador ejecuta las sentencias contenidas en el cuerpo del proceso cuando se produce algn evento en cualquiera de las seales A o B.
En VHDL existen atributos asociados a las seales y variables. Sintaxis : seal ATRIBUTO El atributo Event es booleano (True o False) y es verdadero cuando ha existido un cambio (evento) en la variable principal. ClkEVENT es verdadero si existe un cambio en la seal de reloj.
La lista de sensibilidad contiene solo la variable CLK porque es la nica que puede causar un cambio en la salida Q.
La sintaxis clkEVENT es verdadera en el evento de un cambio en la seal clk. Junto con clk=1 se refiere a un cambio de 0 a 1, es decir a un flanco positivo.
En esta descripcin, utilizamos la instruccin WAIT para declarar la lista de sensibilidad de todo el proceso. En este caso no se debe declarar ninguna variable entre parntesis, luego de la palabra PROCESS.
Se usa WAIT UNTIL para declarar la sensibilidad del proceso. Se usa la estructura IF ELSIF END IF para desarrollar la tabla caracterstica del Flip Flop. La condicin J=0 y K=0, no produce ninguna ejecucin.
La seal de RESET ( Clear) asincrnico es la de mayor prioridad dentro del circuito. Se acostumbra a usar la letra n luego del nombre para indicar que es lgica negativa.
Cualquier cambio en resetn (an cuando no haya cambio en CLK), altera la operacin del FF. Por tanto resetn debe entrar en la lista de sensibilidad del proceso.
000 010 111 110 011 Para realizar esta implementacin en VHDL, no es necesario basarse en la ejecucin de desplazamientos o cargas paralelas. La instruccin CASE IS WHEN es muy til en este caso. Solo es necesario declarar para cada estado ( o valor presente) de secuencia, cual es el estado siguiente
Paquetes
Un diseador de Hardware que utilice frecuentemente la misma tecnologa de diseo ha de hacerse, con el paso del tiempo, con una resea amplia de procedimientos, funciones, puertas y, en general, de componentes que emplear con frecuencia. Los paquetes permiten agrupar un conjunto de declaraciones para que puedan ser usadas en el diseo de diferentes circuitos sin ser repetidas en la declaracin de cada uno.
mientras que las declaraciones y definiciones contenidas en la primera parte Package, son visibles para todos los diseos que lo utilicen
Ahora procedemos a instanciar normalmente el circuito, sin tener que declarar nuevamente el subcircuito con COMPONENT.