El objetivo de este laboratorio es que usted aplique los conceptos vistos(Divisores de Frecuencia y Multiplexores ) en clase y en las practicas hasta el momento, para este caso hasta la practica 1.
Para este laboratorio en base de divisores de frecuencia, la gracia es diseñar un Piano y un generador de señales. El tiempo de este laboratorio es de 1 semana y media empezando desde el martes 17 de Marzo, hasta el viernes 27 de Marzo.
La modalidad de trabajo sera individual, y usted debera dedicarle al menos 1 hora diaria en casa para poder lograr sacar el laboratorio, una de las cosas que quiero dejar claras desde el principio, es que si dejo un laboratorio en un tiempo estipulado es para que usted trabaje no solamente en el horario estipulado, pero si al menos una hora diaria. Las FPGAs son una tecnologia nueva en la Universidad y ustedes son los pioneros que llevaran a la universidad a ver otros limites con esto, pero para esto se requiere un poco mas de compromiso y dedicacion.
Las notas de los laboratorio se darán en la manera siguiente:
30%: Funcionalidad - el circuito hace lo que queríamos que hiciera, y han hecho lo que pido en el trabajo
15%: Simulaciones anotadas y RTL View - hay que entregar simulaciones anotadas y RTL view de todos los módulos nuevos
10%: Eficiencia - el código no utiliza más recursos del FPGA de lo que es necsario
10%: Fiabilidad - el código está escrito en manera fiable
10%: Modularidad - el código está escrito en manera modular
10%: Legibilidad - el código está escrito legiblemente y limpiamente,y es claro cual hardware sintetiza
15%: Presentación oral en la clase (todo el grupo debe estar presente y participar!)
-------
100%
+15% - Bono de creatividad - Hagan cosas originales más alla de lo requerido y reciban hasta 15% bono!
-------
115%
Instrucciones de Laboratorio:
Como usted lo hizo en la practica 1, implemento un modulo de descripcion de hardware llamado "div_freq", y entendio su funcionamiento. Ademas, ya sabe el principio del divisor de frecuencia el cual se basa en el siguiente esquema:
Y sabe que el div_freq funciona bajo el principio de contar pulsos por medio de un contador, y compara este conteo con una entrada que se configura con un numero para que exista una variacion a la salida, y si entendio correctamente, pudo deducir la formula para calcular el valor de la entrada:
==> Redondeada a un numero entero.
Este laboratorio estara basado en el divisor de frecuencia de la practica 1 y contadores, los cuales usted utlizara para diseñar el esquema planteado en la siguiente imagen
Descargue la plantilla siguiente y genere el RTL para que observe cada elemento en el diagrama anterior y pueda empezar con el diseño.
Div_freq: Los modulos de que estan encerrados en color azul, son los divisores de frecuencia que usted ya implemento en la practica 1, el div_freq, asi que usted no tendra que diseñar estos modulos solo implementarlos.
Dac_nano: Los modulos encerrados en color magenta son modulos que usted solo implementara, por este laboratorio solo tendra que saber, que son conversores Digital Analogicos por un tipo de modulacion llamado Delta-Sigma, usted puede leer sobre este tipo de moduladores si le interesa.
Los modulos encerrados en color verde, son aquellos que usted debe diseñar para este laboratorio, y estan descritos acontinuacion(debe diseñarlos en el orden estipulado):
todos los modulos ya estan en la plantilla de este laboratorio, la diferencia es que ellos estan vacios, ustede debera describir el hardware de su interior para que el sistema pueda funcionar correctamente(cada vez que diseñe uno debe simularlo y probarlo).
Recuerde que los keys, signal1, signal2, signal3 y audio, no estan asignadas en la plantilla.
variador_de_Freq: este modulo se encarga de recibir pulsos de los SW[3:0], cuando SW[0] esta en 0, se aumenta el valor de la salida out_frq_val que esta conectado a la entrada de un divisor de frecuencia, para que este varie la frecuencia generada, cuando SW[3] esta en 0, se disminuye en el valor de la salida out_frq_val, para que el disvisor de frecuencia aumente la velocidada su salida. El incremento o decremento se debe hacer cada 100 ms en incrementos ò decrementos de 10.
diente_de_sierra: es un contador de 8 bits que cuenta de 0 a 255, cada pulso de su entrada CLK.
seno: este modulo es una rom con un conador interno, el contador cuenta de 0 a 255 y funciona con el CLK de entrada, y la salida de este sirve para multiplexar los valores de una rom que contienen 256 muestras del periodo de un seno que usted debe generar de alguna manera.
keyboard_piano: este modulo recibe los 8 pulsadores provenientes de keys[7:0] y esta encargado de que si key[7] esta en 1, a la salida salga el valor q modifique la frecuanica del divisor de frecuencia para que suene la nota DO, que cuando key[6] ese en 1, se modifique el valor a la salida para que el divisor de frecuencia genere la nota RE, y asi sucesivamente, si se oprime key[0] que suene la nota DO2. usted puede seleccionar la octava que desee.
pwm: este modulo genera una señal con duty variable, el cual se varia por medio de su entrada duty[7:0], para diseñar este modulo used puede mirar la siguiente informacion http://www.fpga4fun.com/PWM_DAC_1.html
Monte el esquema para montar los circuitos externos al diseño, revise el esqeumatico de la board para que sepa donde estan tierras y VCC3.3, trabaje solo con los 3.3 V de la FPGA no use 5.0 V.
Recuerde usar el osciloscopio para hacer medidas, y verificar funcionamientos.
Recuerde que si hace algo de mas, o es creativo recibira extra nota, que podria ser añadida a la nota del laboratorio o quices, o parcial.