Laboratorio 2B

Reglas para el laboratorio:

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%

Obviamente, a pesar de que funcionalidad es 30% de la nota, si el laboratorio no tiene un mínimo de funcionalidad, la nota del laborotorio será 0.

Fechas de seguimiento del google site para este laboratorio (Este seguimiento se tendra en cuenta para calificar su laboratorio, si usted no tiene nada documentado en la pagina ó no ha agregado nuevo material, no muestra resultados.. o la documentación es mediocre... no se le tendra cuenta la fecha de seguimiento y su nota ira bajando):

    1. Sabado 14 de Febrero. 10 - 24%

    2. Martes 17 de Febrero. 25 - 39%

    3. Sabado 21 de Febrero. 40- 64%

    4. Martes 24 de Febrero. 65 -79%

    5. Sabado 28 de Febrero. 80 - 89%

    6. Jueves 26 de Febrero. 90 - 99%

    7. Martes 5 de Marzo(Entrega Del Lab) 100%

    8. PAGINA DEL SEGUIMIENTO

Recuerde:

    1. Las consultas pueden ser por correo(Correos claros de las dudas), skype ó sabados de 8 am a 12 pm en el K314.

    2. No deje dudas, o no deje trabajar para lo ultimo, y arregle su horario de acuerdo a las necesidades que tenga de manera que el tiempo le alcance tanto para sus materias y para realizar este laboratorio.

Laboratorio 2:

Nota Este Laboratorio se hara en parejas y si se hace a cabalidad, podra ser un proyecto de clase enviado a el Congreso STSIVA 2015, como proyecto de Aula.

Materiales:

  • Cable stereo de 3.5mm.

    • Audifonos Stereo.

    • DE2-115.

    • Control Remoto DE2--115.

    • Pantalla con entrada VGA y cable VGA.

    • Matlab.

Procedimiento:

    • Descargue la Plantilla para el Laboratorio.

    • Descargue el siguiente archivo rar, el cual contiene un contenido Binario, y descomprimalo en una ruta cercana a la raiz.

    • Abra el Control Panel de la DE2-115.

      • Primero debe descargar el archivo "DE2_115_ControlPanel.sof" a la FPGA.

      • Cuando Abra el Control Panel, seleccione memorias, y luego seleccione memoria FLASH, borre su contenido, y despues en la casilla "Sequential Write", checkee la caja "File Lenght" y oprima el boton "Write a File to memory". Seleccione el archivo "song.bin" y espere a que el control panel descargue este contenido a la memoria Flash.

    • Decomprima la plantilla, abrala, y compruebe que puede compilar el proyecto base sin ningun problema.

    • Programe la FPGA con el .sof generado, y utilizando el control que viene con la tarjeta oprima los botones apuntando a la tarjeta, y vera que los siete segmentos variaran apareciendo un codigo.

    • Sabiendo que la plantilla base funciona, entremos en detalle en el diseño de el laboratorio.

    • Como usted puede observar en este laboratorio existiran muchos modulos Hw funcionando, unos verdes, otros azules, blancos y magenta.

    • Usted tendra que diseñar todos a excepto los que estan en Verde, que solo debera entender como funcionan e implementarlos.

    • En la plantilla, usted ya tiene instanciados estos dos chips Verdes, el primero llamado IR_RX, es el encargado de decodificar la trama serial proveniente del receptor infrarojo que tiene la DE2-115, y el Audio/Codec esta encargado de controlar el chip WM8731(Descrito en las paginas 555 a la 574 del libro de Pong Chu).

  • Requerimientos del diseño:

      • El proposito de este laboratorio es diseñar un sistema que consiste primero en un repdroductor de AUDIO, utilizando la memoria FLASH de la tarjeta DE2-115, la cual usted programo inicialmente con un archivo binario, que contiene una misteriosa canción muestreada a 8 bits(Unsigned 8 bit PCM) a 44100 Hz, y esta ya localizada desde entre las direcciones de memoria 0x000000 a 0x7f7a00. Por este motivo usted tendra que diseñar 2 Maquinas de estado para hacer la lectura de esta cancion a una velocidad apropiada.

      • En el diseño, usted podra ver los chips llamados "FSM Flash Control Music Reader" y "FSM Flash Reader".

        • FSM Flash Reader: Esta encargado de leer directamente de la memoria FLASH los valores que se le ordenen, utilizando sus entradas Address y start.

        • Este chip es el intermediario para leer valores que se encuentran en la memoria Flash, y utiliza el protocolo Start Finish, Cada vez que se manda un pulso de Start a este chip, el toma la direccion de entrada la almacena y por medio de las señales de control se comunica directamente con la memoria Flash para leer el valor de esta direccion de memoria y entregarlo por su salida Data[7:0], al finalizar esta FSM envia un pulso de finish, indicando que ha terminado el proceso y se encuentra disponible para hacer otra lectura si asi fuera necesario. Ademas, por medio de la señal IDLE, indica si esta disponible para hacer una lectura.

          • Para diseñar esta FSM usted debe buscar el datasheet de la memoria Flash DE2-115 y revisar la pagina 65, donde se señala el comportamiento para hacer una lectura usando las señales de control. Para esto debe tener en cuenta los tiempos establecidos.

          • Por requerimiento este chip debe funcionar a 50 MHz.

          • Este chip debe funcionar a maxima velocidad.

          • La salida de este chip debera ir conectada directamente a DAC_R[15.0].

      • FSM Flash Control Music Reader: Este chip es el encargado de controlar al chip FSM Flash Reader, este tiene 2 buses de entrada llamados ini_address y end_address, los cuales indican el rango de direcciones donde se encuentra la cancion misteriosa en la memoria Flash. El chip estara activo siempre y cuando Start este en 1. Ademas recibira 4 bits llamdos Orders, los cuales corresponden a las salidas "speedup, speed_down, revert, y play/pause" del chip "FSM order decoder". Inicialmente, el chip debera leer valores de la memoria FLASH a una velocidad de 44100Hz inicialmente, y leer los valores en orden desde la posicion de memoria inicial hasta la final.

        • Si el chip recibe un pulso de speed_up, automaticamente debe incrementar la velocidad de lectura en 500Hz (cada vez que llegue un pulso +500Hz).

        • Si el chip recibe un pulso de speed_down, automaticamente debe reducir la velocidad de lectura en 500Hz(cada vez que llegue un pulso -500Hz)..

        • Si el chip recibe un pulso de play/pause, este debera pausar la lectura o resumirla.

        • Si el chip recibe un pulso de revert, este debera leer la cancion almacenada al contrario de la cancion, lo que quiere decir que empezara a decrementar en la direccion de direccionamiento.

      • Una vez que diseñe los chips para la lectura, los simule y los pruebe con Switches o pulsadores, para verificar su comportamiento, usted debera diseñar el chip llamado "FSM order Decoder" que estara a cargo de enviar convertir el codigo que se recibe por medio del chip "IR RX" a pulsos, los cuales estaran conectados a los demas sistemas en el diseño.

        • Este chip debera genera pulsos por sus salidas "Guitar_up, Guitar_down, guitar_left, guitar_right, guitar_play, speed_up, speed_down, revert, y play/pause". Mientras que por las salidas HistoSel[1:0] y ECHO, debera mantener un valor fijo. Las ordenes estan estipuladas en la siguiente imagen.

        • Cada vez que usted pulse el boton ECHO_ON, la salida ECHO debe ponerse en 1.

        • Cada vez que usted pulse el boton ECHO_OFF, la salida ECHO debe ponerse en 0.

        • Cada vez que usted pulse histoSel=0, la salida debe ponerse en 0.

        • Cada vez que usted pulse histoSel=1, la salida debe ponerse en 1.

        • Cada vez que usted pulse histoSel=2, la salida debe ponerse en 2.

        • Cada vez que usted pulse histoSel=3, la salida debe ponerse en 3.

        • Cada vez que usted pulse Guitar_up, se genera un pulso a la salida, por 2500000 ciclos del reloj(10% en alto y 90% en bajo) que esta controlando la FSM del chip.

        • Cada vez que usted pulse Guitar_down, se genera un pulso a la salida, por 2500000 ciclos del reloj(10% en alto y 90% en bajo) que esta controlando la FSM del chip.

        • Cada vez que usted pulse Guitar_left, se genera un pulso a la salida, por 2500000 ciclos del reloj(10% en alto y 90% en bajo) que esta controlando la FSM del chip.

        • Cada vez que usted pulse Guitar_right, se genera un pulso a la salida, por 2500000 ciclos del reloj(10% en alto y 90% en bajo) que esta controlando la FSM del chip.

        • Cada vez que usted pulse Guitar_play, se genera un pulso a la salida, por 2500000 ciclos del reloj(10% en alto y 90% en bajo) que esta controlando la FSM del chip.

        • Cada vez que usted pulse play/pause, se genera un pulso a la salida, por 2500000 ciclos del reloj(10% en alto y 90% en bajo) que esta controlando la FSM del chip.

        • Cada vez que usted pulse speed_down, se genera un pulso a la salida, por 2500000 ciclos del reloj(10% en alto y 90% en bajo) que esta controlando la FSM del chip.

        • Cada vez que usted pulse speed_up, se genera un pulso a la salida, por 2500000 ciclos del reloj(10% en alto y 90% en bajo) que esta controlando la FSM del chip.

        • Cada vez que usted pulse revert, se genera un pulso a la salida, por 2500000 ciclos del reloj(10% en alto y 90% en bajo) que esta controlando la FSM del chip.

        • Este chip debera funcionar a 10Mhz.

      • Verifique que el chip "FSM order Decoder", funciona tanto en simulacion y unalo a los chips que lleva hasta ahora diseñados, pruebe que efectivamente se lee la canción y se varian los parametros de lectura usando el control remoto.

    • Ha completado el 30% del laboratorio(Martes 17 de Febrero. 25 - 39%)

      • Ahora demos un vistazo al chip "String Slector", este chip esta a cargo de recbir pulsos por medio de las señales "Guitar_up, down, left. right".

        • El tendra dos contadores internos, uno llamado X, y el otro Y, los dos iniciaran en 0.

        • Si el chip recibe un pulso por parte de Guitar_right, se debera sumar 1 al contador X(Llegando a un maximo de 5).

        • Si el chip recibe un pulso por parte de Guitar_left, se debera restar 1 al contador X(Llegando a un minimo de 0).

        • Si el chip recibe un pulso por parte de Guitar_down, se debera sumar 1 al contador Y(Llegando a un maximo de 9).

        • Si el chip recibe un pulso por parte de Guitar_up, se debera restar 1 al contador Y(Llegando a un minimo de 0).

        • Este chip debera funcionar a 10Mhz.

      • Ahora simule el modulo y pruebelo, unalo al diseño, recuerde que para unirlo al chip "FSM Order Decoder" se debe hacer por medio de atrapaflancos para sincronizar los pulsos.

      • Ahora diseñe el chip "ECHO Effect", este chip activara el echo o desactivara el echo de la señal de audio que esta dada por el chip "FSM Flash _reader", el diseño para el echo se realizo en el Laboratorio 1, por lo cual usted solo debe implementar el chip, para lograr un ECHO de 150ms, teniendo en cuenta que si el ECHO_ON esta en 1, se debera muestrear la señal a 22KHz, de lo contrario, la señal Data[15:0] pasara directamente a la salida del chip.

      • Añada el chip al diseño y pruebe su funcionamiento.

      • Ahora es tiempo de diseñar el chip llamado "Selector2histogram" que sencillamente es un Multiplexor de busese, de acuerdo a su entrada HistoSel[1:0].

      • Añada el chip al diseño y pruebe su funcionamiento.

        • Para esto, ustede debera conectar una fuente de audio a la entrada de "Line In", el jack de color azul de la FPGA, y verificar que efectivamente se escuchan por ahora los dos canales provenientes del ADC_L, ADC_R, y Data1.(Como se dara cuenta la salida del "Selector2histogram" esta conectada a la entrada DAC_L del chip "Audio Codec").

    • Ahora ya ha realizado un 54 % del laboratorio(Sabado 21 de Febrero. 40- 64%)

      • Es tiempo de diseñar el modulo "Karplus-Strong Guitar Synthesizer" este modulo se basa en el algoritmo Karplus-Strong que se basa en la sintesis de audio por medio de lineas de Delay y filtros pasabajos, para simular el efecto de un instrumento, en este caso una Guitarra. en el siguiente esquema se muestra el esquema Karplus_strong

          • Como se observa, se tiene una linea de delay, la cual es sencillamente una cadena de registros en serie, en este caso estos registros en serie deben iniciarlizarce con ruido cada vez que se quiera generar una señal de audio. Estos registros se reescriben por medio de una pequeño filtro pasabajos que corresponde al retenedor de orden 0(un registro), dos registros de corrimiento que dividen la señales en 2 y un sumador.(Referencia)

          • La linea de delay, y el retenedor de orden 0, en este laboratorio funcionaran a una frecuencia de 44100Hz.

        • Antes que nada, lo que se quiere simular con el algortimo Karplus-Strong, es los sonidos de una guitarra, por lo cual debemos ver en que consiste una guitarra.

          • La guitarra, tiene Frets, Strings, los Strings corresponden a la cuerda que se desea emular, y los frets corresponden a una region especificamente del mango de la guitarra. Cuando posiciona el dedo en alguna de las secciones de la guitarra, y se raspa la cuerda, se tiene como resultado una nota que varia de la siguiente manera en el tiempo:

              • Dependiendo de la nota, esta señal podria ser mas grabe o aguda. El algoritmo Karplus-Strong, se encarga de simular este efecto a la salida. Para entender mas de su comportamiento le sugiero dar un vistazo las paginas 13 a 63 del siguiente manual de referencia.

        • ¿Pero comó funciona este algoritmo? ==> usted se estara preguntando. Para que usted entienda a cabalidad su comportamiento, el Prof Bruce Land de la Universidad de Cornell escriibio un archivo en Matlab, que usted abrira y analizara

        • Al abrirlo podra observar, Fs, la cual corresponde a la frecuencia a la que funciona la linea Delay "44100Hz", "p" que corresponde a la cantidad de registros en serie que se tienen para el delay, "tmax" es el tiempo por el cual se dejara sonar la cuerda, "factor" el valor en el que se divide la señal que en este caso es 0.5 q corresponde a 1/2(este medio es el mismo el cual aparece en el esquema Karplus-Strong).

        • Ejecute el script en matlab, y luego analice lo que hace el algoritmo.

        • Si se dio cuenta, cada vez que ejecuta el algoritmo suena como una nota de la guitarra, las cuales se pueden variar segun la siguiente tabla realizada por(Avtar Khalsa & Kamruzzaman Rony):

        • Cada numero es el delay en registros correspondiente a cada nota con respecto a los frets y strings de una guitarra.

        • Varie "p" en el script y podra ver que la nota varia.

        • ¿Pero como funciona este script?

          • Lo primero que se hace es inicializar con ruido la cadena de registros que estan en serie de forma aleatoria(white noise).

            • Para poder llenar con ruido este vector es necesario resetear los registros con valores aleatorios.

            • Para generar un generador de numeros aleatorios, usted debera diseñar un un LFSR, el cual se describe en las paginas 21 a 33 de las Diapositivas del Dr Yair Linn.

            • El LFSR que usted diseñe debe general valores de 16 bits.

          • El proceso de inicializar la cadena de registros con ruido, debe hacerse de manera rapida, de tal forma que no se note al usuario.

            • Cada vez que se genere un valor aleatorio verifique que exista una variacion significativa siempre entre cada registro, para que el delay realmente guarde valores variantes fuertes(Vea el script en matlab y grafique "sr" para que se haga a la idea).

          • Una vez estan inicializados los registros estos empiezan a funcionar a 44100Hz, de acuerdo al esquema que define la universidad de standford en su pagina.

          • Estos registros deben cambiar a 44100 Hz por un tiempo de 3.5 segundos.

          • Para que se haga una idea de que es lo que tiene que diseñar mire el siguiente esquema:

          • Diseñe uno de los modulos para probar una sola Nota, por ejemplo para probar High E Fret 2, deberia existir un delay de 127 registros a 44100.

          • Conecte este modulo de prueba a la entrada de audio DAC_L, o DAC_R directamente para probar que efectivamente el diseño funciona de acuerdo a la teoria y al script en Matlab.

          • Una vez que funcione el modulo, usted debe empezar con el diseño del modulo "Karplus-Strong Guitar Synthesizer" el cual funciona de la siguiente manera

            • Si Note X = 0, quiere decir que se esta seleccionando Low E, si Note X =1 se esta seleccionando A, si Note X=5 se esta seleccionando High E.

            • Si Note Y= 0, se esta seleccionando el fret 0, si Note Y=9, se esta seleccionando el fret 9, correspondiente a la tabla.

            • Si hay un pulso de Start a la entrada de este chip, debera sonar la nota correspondiente.

            • Lo que quiere decir que dependiendo de la entrada {NoteY,NoteX}, se tendra un delay o un numero de registros.

            • En el caso de la Tabla, el maximo numero de registros al que se puede llegar a tener es de 469, entonces probablemente ese sea el valor de registros con el eque usted deba diseñar el modulo generador de sonido de guitarra.

            • pero, ¿que pasa si se selecciona un delay de 85 que corresponde a High_E fret 9?, al usted tener un valor fijo de registros, no los puede cambiar ya que es Hardware, lo que sugiero es que si pasa esto, usted puede seleccionar desde cual registro usted puensa hacer la retroalimentación del sistema. Es decir, si es 85, la retroalimentacion debera realizarce desde el registro 85 contando desde la izquierda a la derecha, en el caso de que se seleccione "A fret 1" que es 351, la retrolimentacion se hara desde el registro 351 contando de izquierda a derecha, y asi sucesivamente.

            • En este diseño solo se desea hacer sonar una nota a la vez por lo que no es necesario replicar o crear un modulo para cada nota de la tabla, por eso se es recursivo y se crea uno solo que varie la retroalimentación.

            • Nota Curiosa, si usted quisiera diseñar un piano, o un sintetizador de guitarra, que haga que suenen mas de una nota a la vez, podria hacerlo, pero deberia crear para cada nota un correspondiente activador, y a la salida sumarlas como dice en el manual de referencia de la universidad de standford en la pagina 43.

      • Pruebe el modulo, conectado directamente a DAC_L, y utilice remoto para probar que se esten generando las notas a la salida del sistema.

      • Una vez probado y verificado, conectelo segun el diseño principal.

    • Ahora ya ha llegado a un 70% del laboratorio(Martes 24 de Febrero. 65 -79%).

      • Ahora usted debe diseñar el chip "VGA sync"

        • Para esto usted debe completar la practica de sincronización VGA esta practica esta basada en la DE0-NANO por lo cual usted debe adaptar los pines para que funcione con la DE2-115,

        • Nota: VGA_BLANK_N = V_SYNC & H_SYNC;

      • Una vez entendido como funciona el sincronizador VGA, para este laboratorio vamos a manejar uno que maneje una resolucion de vieo de 800x600.

      • Agregue este sincronizador al diseño y pruebe que efectivamente se este sincronizando la pantalla.

        • Podria dibujar algo sobre ella para saber si lo esta haciendo.

    • Felicidades ha llegado a un 75% del laboratorio(Martes 24 de Febrero. 65 -79%)(Sabado 28 de Febrero. 80 - 89%).

      • Ahora debe diseñar el modulo "Painter", este modulo consiste en una logica que de acuerdo a la posicion de objetos en la pantalla debera cambiar el color correspondiente a cada elemento que se active sobre la pantalla, como usted lo hizo en la practica VGA.

        • En este caso el modulo cuenta con las entradas NoteX, NoteY, revert, play/pause y ECHO.

        • Se desea diseñar la siguiente interfaz grafica con el modulo painter:

        • Si llega un pulso proveniente del revert, el boton revert debe hacer toggle, se debe poner en un color(puede ser su negativo) cuando revert este activo, de lo contrario debera permananecer en su color original(Esta ubicado en X=729, Y=623, su W=61 y H=48).

        • Si llega un pulso de Play/Pause, se debera hacer lo mismo con el boton de play/pause(Esta ubicado en X=645, Y=623, su W=61 y H=48).

        • En el caso de ECHO, como es un estado, el boton debera permanecer en un color si ECHO es 1, y en otro si ECHO es 0(Esta ubicado en X=812, Y=623, su W=61 y H=48)..

        • En el caso deuqe Bar_on este activo, se debe pintar de color:

          • Morado(0x8800FF), si X >=372 && X<510

          • Verde(0x00E63F), si X >=510 && X<750.

          • Rojo(0xDB0F25), si X >=750

        • El modulo debe dibujar lineas horizontales de color Negro de un ancho de 212 en X y un alto de 1 en Y cuando(Lineas que corresponden a los separadores de los Frets):

          • X=141, Y=248

          • X=141, Y=298

          • X=141, Y=348

          • X=141, Y=398

          • X=141, Y=448

          • X=141, Y=498

          • X=141, Y=548

          • X=141, Y=598

          • X=141, Y=648

          • X=141, Y=698

          • X=141, Y=748

        • El modulo debe dibujar lineas verticales de color Rojo(0x993333) de alto 560 y ancho 1 cuando:

          • X=155, Y=229.

          • X=187, Y=229

          • X=222, Y=229

          • X=257, Y=229

          • X=293, Y=229

          • X=327, Y=229

        • El modulo debe dibujar lineas verticales de color Rojo(0x990000) de alto 560 y ancho 1 cuando:

          • X=136, Y=227.

          • X=351, Y=227.

        • El modulo debe dibujar lineas horizontales de color Rojo (0x990000) de ancho 215 y alto 1 cuando:

        • X=136, Y=227.

        • X=136, Y=787.

        • El cuadro azul que aparece dentro del mango de la guitarra de la Interfaz Grafica, Variara su posicion de acuerdo a la entrada NoteX y NoteY del chip, por ejemplo(Su tamaño es de W=26 y H=28):

          • Si NoteX=1 y NoteY=3, la posicion de el cuadro azul sera X=175 y Y=359.

          • Si NoteX=0 y NoteY=3, la posicion de el cuadro azul sera X=145 y Y=359.

          • Si NoteX=3 y NoteY=3, la posicion de el cuadro azul sera X=243 y Y=359.

          • Si NoteX=4 y NoteY=3, la posicion de el cuadro azul sera X=279 y Y=359.

          • Si NoteX=5 y NoteY=3, la posicion de el cuadro azul sera X=313 y Y=359.

          • Si NoteX=5 y NoteY=4, la posicion de el cuadro azul sera X=313 y Y=409.

          • Si NoteX=5 y NoteY=2, la posicion de el cuadro azul sera X=313 y Y=309.

          • Si NoteX=5 y NoteY=1, la posicion de el cuadro azul sera X=313 y Y=259.

          • Si NoteX=5 y NoteY=0, la posicion de el cuadro azul sera X=313 y Y=209.

        • Cree y diseñe el modulo segun los requemientos, pruebelo y pongalo en el diseño del laboratorio.

    • Felicidades ha llegado a un 85% del laboratorio(Sabado 28 de Febrero. 80 - 89%).(Jueves 26 de Febrero. 90 - 99%)

      • Ahora faltan los dos ultimos modulos para finiquitar este laboratorio en un 100%, los modulos "histogram" y "Graph Bars", Estos modulos practicamente ya estan diseñados, pero no por usted, si no por un estudiante de un proyecto final anterior, lo que usted hara es modificarlos, e implementarlos para ponerlos en el diseño de este laboratorio.

        • Entre a la pagina del proyecto https://sites.google.com/site/rtawdde0nano/

        • Vaya a la bitacora y vea como sus compañeros de semestres pasados diseñaron el modulo de histograma, vaya a la seccion "DISEÑO DEL HISTOGRAMA SE UNA SEÑAL."

        • A diferencia de este ya diseñado, usted debera diseñar uno que tenga el histograma de 512 barras, y la amplitud maxima de estas sea de 255.

        • El grafico de histograma debe estar activo en las posiciones de pantalla X=375, Y=283, su ancho debe ser de 512 y su alto de 255.

      • Implemente y modifique estos dos modulos para finalizar el laboratorio.

      • Ponga los dos modulos restantes en el diseño final.

    • Felicidades usted ha llegado al 100% de este laboratorio(Dia de entrega).