Laboratorio 5

Tema: FSM y Sincronizadores de Frecuencia

Materiales:

    • Control de SNES(lo puede comprar en san andresito la isla).

    • DE0-NANO.

    • Matlab.

Duración: 2 Semanas, desde el 21 de Marzo hasta miercoles 8 de Abril

Recuerde preguntar, no deje para ultimo momento!!!

Procedimiento:

    • El diseño para este laboratorio es el siguiente:

    • Como vio en el anterior diseño solo se deben diseñar dos FSM de las cuales

      • FSM_SNES_DECODER: debe generar una señal de latch y un clock para guardar bit a bit los datos que arroja el control del SNES, y ponelos a la salida State_buttons.

      • esta FSM funcionara con un reloj de 50MHz, y debe respetar los tiempos estipulados en el diagrama "SNES timing Diagram", que dice que el reloj generado debe ser de 12 us por captura. Practicamente, la FSM debe generar Latch, y clock para tomar lo que viene en el tiempo por data y concatenarlo en un registro hasta obtener el estado de cada uno de los botones del control de SNES.

      • Musical FSM: Esta maquna de estados debe recibe el estado de los botones UP, A, X; L; R; B;Y, Start y Select.

        • Cuando la FSM recibe un pulso de A, la FSM debe generar a la salida AUDIO[7:0] la siguiente cancion controlando la entrada de un divisor de frecuencia(El de entrada variable que vimos en clase), las notas de cada cancion con las frecuencias y los tiempos esta en el siguiente documento.

        • Cuando la FSM recibe un pulso de X, debe generar una escala de DO a la salida de audio, es decir, que si se oprime sonara, DO, RE, MI, FA,SOL, LA ,SI, DO2, con tiempos de separacion de 0.5 seg.

        • Cuando la FSM recibe un pulso de L, se debe sintetizar el sonido de una cuerda de una guitarra real(el sonido en el fret 1 nota high E), teniendo en cuenta el siguiente algoritmo en matlab, teniendo en cuenta que este sonido debe generarse a una velocidad de 44100 Hz. Para definir los parametros de la nota se debe usar esta tabla y esta imagen.

        • Cuando la FSM recibe un pulso de R, se debe sintetizar el sonido de una cuerda de una guitarra real(el sonido en el fret 1 nota B),

        • Cuando la FSM recibe un pulso de B, se debe sintetizar el sonido de una cuerda de una guitarra real(el sonido en el fret 1 nota G),

        • Cuando la FSM recibe un pulso de Y, se debe sintetizar el sonido de una cuerda de una guitarra real(el sonido en el fret 1 nota D),

        • Cuando la FSM recibe un pulso de Start, se debe sintetizar el sonido de una cuerda de una guitarra real(el sonido en el fret 1 nota A),

        • Cuando la FSM recibe un pulso de Select, se debe sintetizar el sonido de una cuerda de una guitarra real(el sonido en el fret 1 nota Low E),

      • Black_box: Utilice la que implemento en el Lab 4.