practica 1 secuencia dores
TRANSCRIPT
1
UAM I - SECUENCIADORES & MICROPROCESADORES – PRÁCTICA No. 1-
Resumen— En la presente práctica se buscó afirmar los
conocimientos adquiridos sobre las máquinas de estado a partir
de un contador síncrono de 2 bits en código gray. Se describe el
procedimiento teórico y práctico para la implementación en la
tarjeta de desarrollo Nexys 2.
Palabras claves— Contador síncrono, máquinas de estado
finito, mealy, moore, VHDL,
I. INTRODUCCIÓN
Las Máquinas de estados Finito, nos sirven para realizar
procesos bien definidos en un tiempo discreto. Reciben una
entrada, hacen un proceso y nos entregan una salida. En éste
caso se realiza el diseño de un contador secuencial básico a
través de una Máquina de Estado, mismo que se implementará
a través de código VHDL en la tarjeta de desarrollo Nexys 2
por medio del software Xilinx ISE Webpack.
II. DESARROLLO TEÓRICO
Los circuitos lógicos se clasifican en dos tipos:
Combinacionales, aquellos cuyas salidas sólo
dependen de las entradas actuales.
Secuenciales, aquellos cuyas salidas dependen no
sólo de sus entradas actuales, sino también de sus
entradas anteriores.
Esta “información” de las entradas anteriores, debe
preservarse en el circuito y se denomina estado interno,
secundario, o simplemente estado del circuito. Es necesario
distinguir el valor presente de una señal del que poseía en un
instante inmediatamente anterior, y éste del anterior; por ello
habrá una intervención explícita del tiempo. Un sistema
secuencial posee 2n estados de entrada para n entradas (X1...
Xn). Poseen además 2p estados de salida para p salidas (Z1...
Zp) y un número finito de estados internos (y1...ym) de ahí que
sean conocidos como máquinas de estado finito o autómatas
finitos.
Según la relación entre las salidas y los estados internos
podemos distinguir:
Máquina de Mealy, las salidas se obtienen en
función de las entradas y los estados internos.
(Figura 1)
Fig. 1 Diagrama a bloques de una Máquina de Mealy
Máquina de Moore, las salidas coinciden o
dependen solo de los estados internos. (Figura 2)
Fig. 2 Diagrama a bloques de una Máquina de Moore
Sistemas secuenciales Síncronos
Según la forma de realizar el elemento de memoria nos
podemos encontrar distintos tipos de sistemas secuenciales,
principalmente dos:
Sistemas Secuenciales Síncronos, en los que su
comportamiento puede definirse en instantes de
discretos de tiempo, se necesita una sincronización de
los elementos del sistema mediante una señal de
reloj, que no es más que un tren de pulsos periódico.
Las variables internas no cambian hasta que no llega
un pulso del reloj.
Sistemas Secuenciales Asíncronos, actúan de forma
continua en el tiempo, un cambio de las entradas
provoca cambios en las variables internas sin esperar
a la intervención de un reloj.
Práctica de laboratorio No.1: Contador Síncrono
de 4 bits.
Astivia C. Dara, UAM-I, Guzman E. Natali, UAM-I, & Pérez H. Laura, UAM-I,
2
UAM I - SECUENCIADORES & MICROPROCESADORES – PRÁCTICA No. 1-
III. DESARROLLO PRÁCTICO
Para la comprobación práctica de una Máquina de Estados
Finitos se implementó un contador síncrono de 2 bits, en el
cual también se incluyen salidas para indicar dos estados
específicos.
El contador está descrito por la Máquina de Estado de la
Figura 3; y la tabla número 1.
Fig. 3 Máquina de Estados para un contador Síncrono
ST Q1 Q0 Z1 Z0 Q*1 Q*0
0 0 0 0 1 0 1
0 0 1 0 0 1 1
0 1 0 0 0 0 0
0 1 1 1 0 1 0
1 0 0 0 1 0 0
1 0 1 0 0 0 1
1 1 0 0 0 1 0
1 1 1 1 0 1 1
Tabla. 1 Tabla de verdad.
IV. PROGRAMACIÓN EN VHDL E IMPLEMENTACIÓN EN LA
TARJETA NEXYS 2
A. Se realizó la descripción en forma tabular del
comportamiento del contador síncrono en lenguaje
VHDL. A continuación se adjunta el código.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
entity Contador2B is
Port ( STP : in STD_LOGIC;
RST : in STD_LOGIC;
CLK : in STD_LOGIC;
Z : out STD_LOGIC_VECTOR (1 downto 0);
Q : inout STD_LOGIC_VECTOR (1 downto
0));
end Contador2B;
architecture Behavioral of Contador2B is
begin
process (CLK, RST, STP) begin
if (RST='1') then
Q<="00";
Z<="01";
elsif rising_edge (CLK) then
if ( STP='0') then
case Q is
when "00" => Q <="01";
Z<="00";
when "01" => Q <="11";
Z<="10";
when "11" => Q <="10";
Z<="00";
when "10" => Q <="00";
Z<="01";
when others => null;
end case;
else
case Q is
when "00" => Q <="00";
Z<="01";
when "01" => Q <="01";
Z<="00";
when "11" => Q <="11";
Z<="10";
when "10" => Q <="10";
Z<="00";
when others => null;
end case;
end if;
end if;
end process;
end Behavioral;
B. Posteriormente se realizó la simulación
correspondiente para verificar que la descripción
en VHDL coincidiera con la tabla de verdad del
contador. Se muestra la simulación en las figuras 4
y 5.
Figura 4.Simulación con STP=0 donde el contador se mueve en forma
ascendente.
Nótese que la salida Z= (0,1) se enciende en el estado A=(0,0)
mientras que Z=(1,0) se enciende en el estado C=(1,1); para
otros estados la salida Z permanece apagada.
3
UAM I - SECUENCIADORES & MICROPROCESADORES – PRÁCTICA No. 1-
Figura 5.Simulación con STP =1, donde el contador permanece en su
estado presente.
V. CONCLUSIONES
Se realizó el diseño de una máquina de estado en la cual
identificamos la diferencia entre una máquina de Mealy y una
máquina de Moore, en éste caso se observó que se trata de una
Máquina de Moore, cuya salida únicamente depende del
estado actual.
Por otro lado, éste diseño es controlado por medio de una
señal de reloj, por lo que también se trata de un circuito
síncrono, en el cual en cada flanco positivo hay un cambio de
estado.
Finalmente para la implementación del circuito en VHDL, se
observa que existen diversas formas para la descripción del
comportamiento, una de ellas, y la utilizada en ésta práctica es
el método tabular, en el que únicamente se describen los
estados posibles. Éste método resulta práctico cuando el
número de estados es relativamente pequeño, además nos
permite identificar con claridad cada uno de los estados con
sus salidas respectivas.
REFERENCIAS
1. R. López A., “Fundamentos de Computadores.Sistemas secuenciales,” [en línea] Abril 2012, [Enero 20 de 2014]. Disponible en la web
http://www.uhu.es/rafael.lopezahumada/descargas/tema7_fund_0405.pdf
.