Está en la página 1de 9

Laboratorio VII

MAQUINAS DE ESTADO FINITO

PARTE I

Se quiere implementar una mquina de estado finito (FSM) que reconozca dos
secuencias especficas de ceros y unos, especficamente cuatro 1s
consecutivos y cuatro 0s consecutivos, hay una entrada W y una salida Z, la
entrada W puede valer 1 o 0 durante cuatro pulsos consecutivos de reloj
entonces salida Z ser 1, de otra manera ser 0. El traslape de la secuencia es
permitido.
La figura 1. Ilustra la relacin entre W y Z.

Figura. 1 Diagrama de tiempo para FSM parte I

El diagrama para esta FSM es mostrado en la figura 2. Para esta parte se debe
de crear el circuito de la FSM que es representado por este diagrama, se debe
incluir las expresiones lgicas que alimentan a cada estado de los Flip Flop con
los que se va a implementar. La mquina de estado usa nueve Flip Flop de
estados llamados ys..y0 y las asignaciones de estos estados son dados en la
tabla 1.
Figura. 2 Diagrama de estado para FSM parte I

Tabla 1 Tabla de asignacin de estados.


Disear e implementar el circuito en la tarjeta DE0 de la siguiente manera:

1. Crear un nuevo proyecto para el circuito FSM. Seleccionar el chip de la


tarjeta DE0 (EP3C16F484C6).
2. Escriba el archivo VHDL que inicialice los 9 FFs y especifique su
expresin lgica (haga ecuaciones), use asignaciones simples en el
archivo VHDL para la lgica de alimentacin de los FFs. Tenga en cuenta
que cada cdigo permite derivar expresiones por inspeccin. Usar los
switch SW0 de la DE0 como reset sncrono activo bajo, SW1 como la
entrada W y el pulsador KEY0 como el la entrada de reloj que es aplicada
monuelamente. Usar el Led verde LG9 como la salida Z, y asignar el
estado de salida de los FFs a los Led LEDG8..LEDG0
3. Incluir el archivo VHDL en el proyecto y asignar los Switchs y Leds como
es indicado en la tarjeta DE0 entonces compilar el circuito.
4. Simular el comportamiento del circuito.
5. Despus de ver el funcionamiento correcto del circuito, descargarlo en la
tarjeta DE0, comprobar la funcionalidad del diseo aplicando una
secuencia de entrada y observar el comportamiento de los Leds.
Asegurarse de la transicin de estado adecuada de la FSM mediante los
LEDG8...LEDG0 y que produzca un valor correcto en LEDG9.
6. Finalmente considere una modificacin a la asignacin de estados de la
tabla 1. Cunado una FSM va a ser implementada en una FPGA el circuito
puede ser frecuentemente simplificado si todas las salidas de los Flip
Flop son cero cuando la FSM est en el estado de reset. Este enfoque es
preferible porque los Flip Flop de las FPGA incluyen una entrada
limpiadora la cual puede ser convenientemente usada para realizar el
estado de reset, pero los FFs frecuentemente no incluyen una entrada
de SET. La tabla 2 muestra una modificacin de la asignacin de estados
actuales en la cual el estado de reset A usa todos los ceros. Esto es
logrado invirtiendo la variable de estado Y0. Crear una modificacin del
cdigo VHDL que implemente esta asignacin de estados. Compilar y
descargarlo en la tarjeta DE0.
Tabla 2 Modificacin de estados FSM

Cdigo parte 1.
Parte II

Para esta parte se realizara otro estilo de cdigo VHDL para la mquina de
estado de la Figura 2. En esta versin del cdigo no se derivara manualmente
la expresin lgica necesaria para cada estado de los flip Flop, en lugar de
esto se describe la tabla de estados de la FSM mediante las instrucciones CASE
de VHDL en un bloque de proceso y usando otro bloque de proceso se
inicializan los estados de los Flip Flop. Se puede usar un tercer bloque de
Procesos o una asignacin simple para especificar la salida Z. para
implementar la FSM, usar 4 estados Flip Flop y3y0 y cdigos binarios como se
muestra en la tabla 3.

Tabla 3 Cdigos binarios para la FSM

Un esquema sugerido del cdigo VHDL es dado en la Figura 3. Observe que el


vector de estado presente y siguiente para la FSM es definido como un type
Enumerado con posibles valores dados por los smbolos A to I. el compilador
VHDL determina cuantos diversos estados de flip Flop a usar por el circuito, y
automticamente elige la asignacin del estado.
Figura. 3 Esquema de programacin sugerido parte II

Implementar el circuito como sigue:


1. Crear un nuevo proyecto de FSM
2. Incluir en el proyecto VHDL el archivo con el estilo de cdigo mostrado en la
figura 3. Use en SW0 como reset sncrono activo bajo de entrada para la
FSM, use SW1 como la entrada W y el botn KEY0 como la entrada de reloj
la cual es aplicada manualmente, El LEDG9 como la salida y asignar los
estados de los FF a los Led verdes LEDG8LEDG0.
3. Antes de compilar el cdigo es necesario decirle explcitamente a la
herramienta de sntesis en Quartus II que se quiere tener una mquina de
estado finito implementada usando la asignacin de estados especificada en
el cdigo VHDL, si no se da esta configuracin explicita al Quartus II, la
herramienta de sntesis automticamente usa el estado de asignacin de su
propia seleccin e ignorara los cdigos de estado especificados en el cdigo
VHDL.
Para hacer esta configuracin, escoja la pestaa assigments>Settings, y de
clic en el tem de Anlisis y sntesis en el lado derecho de la ventana, luego
hacer clic en More settings button. Como se indica en la figura 4, cambiar el
parmetro State Machine Processing al a configuracin User-encoded
4. Examinar el circuito producido por el Quartus II con la herramienta RTL
viewer Tool. doble clic en el recuadro mostrado que representa la mquina
de estado y determinar si el diagrama de estado que es mostrado
corresponde propiamente al mostrado en la figura 2. Para ver el cdigo de
estado usados por la FSM, abra el reporte de compilacin, seleccionar
Analisis and Synthesis del reporte y hacer cilc en State Machines.
5. Simular el comportamiento del circuito.
6. Una vez se compruebe que el circuito funciona apropiadamente con el
resultado de la simulacin, descargar el circuito en la tarjeta DE0. Probar la
funcionalidad del diseo aplicando una secuencia de entrada y observando
los LEDs de salida. Asegrese que la FSM realice apropiadamente los
cambios de estado observando los LEDG8...LEDG0 y produce la salida
correcta por el LEDG9.
7. Como tercer paso se configura al Quartus II con la herramienta de sntesis a
usar la asignacin de estados dados en el cdigo VHDL. Para ver los
resultados de remover esta configuracin, abrir de nuevo Quartus II y la
ventada de configuracin settings Assigments>Settings, y hacer clic en
the Analysis and Synthesis luego, hacer clic en ms configuraciones (more
settings button). Cambiar las configuraciones para el procedimiento de la
mquina de estado de User-Encoded a One Hot. Recompilar el circuito y
despus abra el reporte del archivo, seleccionar Analysis and Synthesis del
reporte y clic en State Machine. Comparar el cdigo de estado dado en la
tabla 2 y comente las diferencias que se observan.
Figura. 4 Especificacin del mtodo de asignacin de estados en Quartus II

Parte III

Un detector de secuencia puede ser implementado de una forma sencilla usando Shift
Registers, en lugar de usar el enfoque descrito antes. Crear un cdigo VHDL que
inicialice 2 shift registers de 4 bit de ancho, uno es para reconocer la secuencia de 0s y
el otro para la secuencia de 1s.
Incluir la lgica apropiada en el diseo para producir la salida Z. crear un proyecto de
Quartus ii para el diseo VHDL e implementar el circuito en la DE0. Usar los switch y
leds de manera similar como se hizo en las partes 1 Y 2 y observe el comportamiento
de los registros y la salida Z.