Guia1_CPLD_SDI215 MAXPLUS+QUARTUS_2015

Embed Size (px)

DESCRIPTION

Guia1_CPLD_SDI215 MAXPLUS+QUARTUS_2015

Citation preview

  • Universidad de El Salvador Escuela de Ingeniera Elctrica

    Sistemas Digitales 2 (SDI-215)

    Gua No. 1: CPLD

    Catedrtico: Ing. Salvador German.

    Instructor: Br. Francisco Ernesto Cruz Juarez.

    Introduccin.

    Con el avance tecnolgico muchos dispositivos han quedado desfasados o en algunos casos sin

    soporte, esto las lleva a ser obsoletos que a pesar que an son tiles, y han sido reemplazados por

    dispositivos completos.

    Dentro de este plano se puede mencionar al puerto paralelo (LPT o DB25), que si bien es un

    dispositivo til y fcil de utilizar ha sido reemplazado totalmente por el USB (Universal Serial Bus)

    que como su nombre lo indica es un dispositivo universal que busca la estandarizacin, el problema

    que se presenta es simple, la manipulacin de un dispositivo USB no es tan amigable como la de un

    puerto paralelo.

    Cabe mencionar que la informtica y las tecnologas reconocen dos partes fundamentales:

    software y hardware. Como ya se explic el hardware se ha actualizado buscando la

    estandarizacin, pero el software sigue otra lnea muy diferente, a un programa informtico no le

    interesa ser estndar, su principal inters es brindar una interfaz amigable para el usuario, ser una

    herramienta verstil y potente para cubrir con lo que se le demande y estar acorde a los ltimos

    dispositivos.

    Objetivos

    Desarrollar en el estudiante los conocimientos bsicos para el uso del software MAX+PLUS

    baseline y QUARTUS II.

    Que el estudiante conozca la sintaxis bsica del lenguaje AHDL.

    Utilizar el software como herramienta de compilacin y simulacin de sistemas digitales

    mediante el lenguaje de programacin AHDL.

    Observar los resultados obtenido en la compilacin y simulacin para luego ser

    implementados en dispositivos CPLD.

  • Desarrollo de la prctica

    Ejercicio No. 1: Detector de nmeros primos. En este ejemplo se desarrollara un programa que detecte los nmeros primos en una lista de tres

    bits, donde A, B y C son entradas y Z es la salida del sistema, para este circuito se considera que A

    es el MSB y C es el LSB, este programa se creara mediante su ecuacin booleana y ser para un

    dispositivo EPM3032ATC44-10.

    1. Se ejecuta el programa, clic en INICIO -> TODOS LOS PROGRAMAS -> MAX+PLUS II 10.2

    BASELINE ->MAX+PLUS II 10.2 BASELINE.

    2. Se abrir una ventana emergente, en la pestaa FILE -> NEW

    3. Se selecciona la opcin TEXT EDITOR FILE y clic en OK.

    4. En la ventana emergente colocamos nuestro cdigo, para esto necesitamos la ecuacin

    booleana que en este caso es: = + + , y en cuanto a la sintaxis en AHDL, es

    muy parecido a VHDL y sus diferencias se dan en la declaracin de bloques.

    AND & NOR !#

    OR # XOR $

    NOT ! XNOR !$

    NAND !&

  • 5. En la pestaa FILE -> SAVE AS, se selecciona la carpeta a donde se guardan los archivos,

    asegurndose que el archivo lleve el mismo nombre que el titulo dentro del programa y clic

    en OK.

    6. Siempre en la pestaa FILE -> PROJECT -> SET PROJECT TO CURRENT FILE

    7. Para asignar el dispositivo y los pines a utilizar lo hacemos desde la pestaa ASSIGN ->

    PIN/LOCATION/CHIP.

    8. Al ingresar a las opciones, en la derecha se tiene el botn ASSIGN DEVICE

  • 9. Se descubrir una nueva ventana, en esta se selecciona el dispositivo EPM3032ATC44-10 y

    luego clic en OK.

    10. En la casilla NODE NAME se debe colocar el nombre de la entrada o salida a modificar, en la

    casilla PIN se introduce el nmero de pin que se desea utilizar y en la casilla PIN TYPE

    especificamos si ser INPUT, OUTPUT o BIDIR, en este caso se toma como ejemplo la entrada

    A, en las imgenes se observa el PIN OUT del dispositivo y el ejemplo de como resultara

    asignarle el pin 2 a la entrada A.

  • 11. Se asignan los pines a todas las entradas y salidas, de no hacerlo el programa lo asignara,

    utilizando los pines mayores como prioridad.

    12. Luego en la pestaa FILE -> PROJECT -> SAVE AND COMPILE, si todo esta bien lanzara una

    ventana como esta:

    13. Luego en la pestaa FILE -> NEW -> WAVE EDITOR FILE -> OK, lanzara la siguiente ventana

  • 14. En la pestaa NODE -> ENTER NODE FROM SNF

    15. En la ventana emergente, clic en list, luego se seleccionan todos los nodos de la izquierda y

    con el botn -> se incluyen en la derecha y luego ok.

    16. Luego en la pestaa VIEW -> TIME RANGE, se cambia de 0.0 a 500 ns.

  • 17. A cada entrada se le da clic derecho, luego desplazarse al sub men Overwrite y en las

    opciones clic en Count Value , en el caso de C se debe dejar tal como esta y dar ok, para el

    caso de B en la opcin MULTIPLIYED BY se cambia el valor a 2, y en el caso de A en la misma

    opcin se debe cambiar a 4.

    18. Si todo esta bien el SCF debe verse asi:

  • 19. Luego en la pestaa FILE -> PROJECT -> SAVE AND SIMULATE

    20. Cuando termine dar clic en la opcin OPEN SCF, mostrara la simulacin final.

  • 21. Para revisar la conexin de los pines y el reporte de simulacin, hay que abrir el archivo

    primos.rpt con worpad o un bloc de notas.

    Ejercicio No. 2: Decoficador BCD a 7 segmentos por medio de tablas. En el siguiente ejercicio aprovecharemos la funcin table para la creacin de un decodificador BCD

    (8421) a 7 segmentos, para esto seguiremos el siguiente proceso:

    4. Se siguen los pasos 1, 2 y 3 de la misma forma que en el ejercicio anterior, esto desplegara

    la ventana del editor de texto, en donde se introduce el siguiente codigo:

    TITLE "7SEGMENTS;

    SUBDESIGN 7SEGMENTS

    (

    W, X1, Y, Z :INPUT;

    A, B, C, D, E, F, G :OUTPUT;

    )

  • BEGIN

    TABLE

    W, X1, Y, Z => A, B, C, D, E, F, G;

    0, 0, 0, 0 => 1, 1, 1, 1, 1, 1, 0;

    0, 0, 0, 1 => 0, 1, 1, 0, 0, 0, 0;

    0, 0, 1, 0 => 1, 1, 0, 1, 1, 0, 1;

    0, 0, 1, 1 => 1, 1, 1, 1, 0, 0, 1;

    0, 1, 0, 0 => 0, 1, 1, 0, 0, 1, 1;

    0, 1, 0, 1 => 1, 0, 1, 1, 0, 1, 1;

    0, 1, 1, 0 => 1, 0, 1, 1, 1, 1, 1;

    0, 1, 1, 1 => 1, 1, 1, 0, 0, 0, 0;

    1, 0, 0, 0 => 1, 1, 1, 1, 1, 1, 1;

    1, 0, 0, 1 => 1, 1, 1, 1, 0, 1, 1;

    1, 0, 1, 0 => 1, 1, 1, 0, 1, 1, 1;

    1, 0, 1, 1 => 0, 0, 1, 1, 1, 1, 1;

    1, 1, 0, 0 => 1, 0, 0, 1, 1, 1, 0;

    1, 1, 0, 1 => 0, 1, 1, 1, 1, 0, 1;

    1, 1, 1, 0 => 1, 0, 0, 1, 1, 1, 1;

    1, 1, 1, 1 => 1, 0, 0, 0, 1, 1, 1;

    END TABLE;

    END;

    El cual debe verse de la siguiente forma en el editor de texto:

  • **Nota importante: Se utilizo la variable X1 ya que el programa ya tiene reservada la letra X para

    otros usos.

    5. En la pestaa FILE -> SAVE AS, se selecciona la carpeta a donde se guardan los archivos,

    asegurndose que el archivo lleve el mismo nombre que el titulo dentro del programa y clic

    en OK.

    6. Siempre en la pestaa FILE -> PROJECT -> SET PROJECT TO CURRENT FILE

    7. Para asignar el dispositivo y los pines a utilizar lo hacemos desde la pestaa ASSIGN ->

    PIN/LOCATION/CHIP.

  • 8. Al ingresar a las opciones, en la derecha se tiene el botn ASSIGN DEVICE

    9. Se descubrir una nueva ventana, en esta se selecciona el dispositivo EPM3032ATC44-10 y

    luego clic en OK.

    10. En la casilla NODE NAME se debe colocar el nombre de la entrada o salida a modificar, en la

    casilla PIN se introduce el nmero de pin que se desea utilizar y en la casilla PIN TYPE

    especificamos si ser INPUT, OUTPUT o BIDIR, en este caso se toma como ejemplo la entrada

    A, en las imgenes podemos ver el PIN OUT del dispositivo y el ejemplo de como resultara

    asignarle el pin 2 a la entrada W.

  • 11. Se asignan los pines a todas las entradas y salidas, de no hacerlo el programa lo asignara,

    utilizando los pines mayores como prioridad.

    12. Luego en la pestaa FILE -> PROJECT -> SAVE AND COMPILE, si todo esta bien lanzara una

    ventana como esta:

    13. Luego en la pestaa FILE -> NEW -> WAVE EDITOR FILE -> OK, lanzara la siguiente ventana

  • 14. En la pestaa NODE -> ENTER NODE FROM SNF

    15. En la ventana emergente, clic en list, luego se seleccionan todos los nodos de la izquierda y

    con el botn -> se incluyen en la derecha y luego ok.

    16. Para visualizar toda la simulacin se da clic en la pestaa OPTIONS -> GRID SIZE

    17. En la ventana emergente se le asigna un valor de 50ns esto dividir el diagrama de tiempo

    en secciones de 50 ns.

  • 18. Luego en la pestaa VIEW -> TIME RANGE, se cambia de 0.0ns a 1us.

    19. A cada entrada se le da clic derecho, luego desplazarse al sub men Overwrite y en las

    opciones clic en Count Value , en el caso de W se debe dejar tal como esta y dar ok, para

    el caso de X1 en la opcin MULTIPLIYED BY se cambia el valor a 2, en el caso de Y en la misma

    opcin se debe cambiar a 4 y para Z se multiplicara por 8.

  • 20. Si todo esta bien el SCF debe verse asi:

    21. Luego en la pestaa FILE -> PROJECT -> SAVE AND SIMULATE

    22. Cuando termine dar clic en la opcin OPEN SCF, mostrara la simulacin final.

  • 23. Para revisar la conexin de los pines y el reporte de simulacin, hay que abrir el archivo

    primos.rpt con worpad o un bloc de notas.

  • Asignaciones

    Desarrollar un decodificador de BCD a 7 segmentos utilizando el mtodo de ecuaciones

    booleanas.

    Disear un decodificador de 8421 a 7421, exceso 3, 2421 y 5421. Donde tenga salidas a un

    display y muestre su equivalente en hexadecimal y que muestre tambin en leds el nmero

    en binario.

    Bibliografa: http://www.altera.com/literature/manual/archives/81_gs3.pdf

    http://www.altera.com/literature/ds/m3000a.pdf

    Actualizacin de software y dispositivos para el diseo de sistemas digitales utilizando CPLD, Proyecto de ingeniera II, Benjamn Robles.

    Gua CPLD SDI2-2014.

  • ANEXO

    Quartus II Edicin Web La Edicin Web es una versin gratuita de Quartus II que puede ser

    descargada o enviada gratuitamente por correo. Esta edicin permite la compilacin y la

    programacin de un nmero limitado de dispositivos Altera.

    La familia de FPGAs de bajo coste Cyclone, est soportada por esta edicin, por lo que los pequeos

    desarrolladores y desarrolladoras no tendrn problemas por el coste del desarrollo de software.

    Se requiere un registro de licencia para utilizar la Edicin Web de Quartus II, la cual es gratuita y

    puede ser renovada ilimitadamente o de pago.

    Un punto muy importante es la versin, ya que fsicamente poseen dispositivos EPM3032ATC10-7,

    EPM3064ATC10-7 y EPM240T100C5N es necesario utilizar una versin de software que le brinde

    soporte a las familia MAX3000A y MAX II a las cuales pertenecen los dispositivos en cuestin, ya

    que la versin 14.1 no brinda dicho soporte se utilizara la versin 13.0 service pack 1.

    Quartus II necesita una herramienta aparte que no vienen incluida dentro del programa principal,

    que sirve como interfaz entre el software y el equipo programador, su nombre es Quartus

    programmer y debe estar acorde con la versin del software, esta herramienta permite la

    configuracin del programador y es la encargada de la descarga de datos hacia el dispositivo fsico.

    Dispositivos a utilizar

    USB Blaster

    Es un programador compatible con Altera que brinda las funciones de un JTAG pero con la novedad

    de ser USB, posee una salida de diez pines.

    El kit de desarrollo en la pagina de Altera tiene un costo de 300 dlares pero el USB Blaster puede

    ser comprado via internet a precios que varan desde 15 a 20 dlares, una versin genrica es til.

    Figura No.1: Pinout USB Blaster

  • Se intent hacer de forma artesanal pero no se tuvo xito, como ya se menciono la manipulacin

    de los puertos USB no es tan sencillo, si bien es cierto que el enfoque del proyecto es hgalo usted

    mismo muchas veces dentro de la actualizacin de tecnologas hay costos que no pueden ser

    evitados.

    Fuente de 3.3 V

    Se vuelve necesario tener una fuente que provea 3.3 V ya que los CPLD trabajan con ese rango de

    voltaje, para darle solucin a ese punto se utilizan reguladores de voltaje LD33 que son reguladores

    de voltaje a 3.3v/1A, su empaquetamiento es un TO290 y son muy prcticos de utilizar ya que

    disponen de 3 pines: Vin, Vout y GND, en la entrada de voltaje basta una alimentacin de 5V y en

    la salida se tienen 3.3 V.

    Familia de CPLD MAX3000A y MAX II

    Los dispositivos MAX 3000A y MAX II son de bajo costo y alto rendimiento basados en la

    arquitectura MAX de Altera. Son fabricados con tecnologa avanzada CMOS, operan con 3.3v.

    Proveen entre 600 a 10000 compuertas utilizables y contadores de velocidad superiores a 227.3

    MHz. Son totalmente compatibles con lgica TTL.

    Figura No. 2: Distribucin de pines para los CPLD.

    Se utilizaran tres tipos de CPLD: EPM3032aTC44-10, EPM3064aTC44-10 y EPM240T100C5n.

    Una recomendacin muy notable es que cuando se ordenan los dispositivos es de tener bien

    presente que el empaquetamiento PLCC resulta ms didctico que el empaquetamiento TQFP o

    visto desde otra ptica el PLCC es un empaquetamiento ms grande y por lo tanto ms fcil de

    manipular.

    Instalacin y licenciamiento del Software. Para la descarga del software como ya se haba mencionado lo podemos buscar dentro de la pgina

    oficial de Altera: www.altera.com

  • Se recomienda entrar a este sitio https://www.altera.com/download/sw/dnl-sw-index.jsp siempre

    de la pagina de Altera y hacer seleccionar la versin basndose en dispositivos, tal como lo muestra

    la imagen

    Figura No. 3: Pantalla de bsqueda del software adecuado.

    Luego de dar clic a la versin, se llegara a la siguiente pgina en donde se debe descargar los

    archivos marcados.

    Figura No. 4: Pgina Principal de descarga.

  • Todo esto tendr un peso de 1.6 GB aproximado, pero se debe tener libre por lo menos 6 GB en

    disco duro para completar la instalacin de forma satisfactoria.

    Una ventaja significativa es que esta versin ya no necesita un archivo de licencia.

    Figura No. 5: Licencias.

    Una vez se tienen los archivos se ejecuta primero el archivo QuartusSetupWeb-version.exe Se

    desplegara el asistente de instalacin.

    Figura No. 6: Asistente de instalacin.

    Los siguientes pasos son similares a cualquier programa en Windows, aceptar los trminos y

    condiciones, seleccionar la carpeta de instalacin (recordar esta direccin ya que posteriormente

    se utiliza).

  • Figura No. 7: Trminos y condiciones.

    Figura No. 8: Carpeta de instalacin.

    Una vez finalizada la instalacin el programa estar listo para ser utilizado, en la ventana principal

    se despliega un asistente para la ejecucin de un nuevo proyecto, esa seccin ser descrita

    posteriormente.

  • Figura. 9: Pantalla inicial Quartus II.

    La instalacin del Quartus Programmer es posterior y sigue la misma lgica del programa anterior,

    Quartus Programmer es una extensin de la suite por lo tanto es un programa independiente, si se

    necesitara solo el programador perfectamente se podra instalar sin necesidad de instalar toda la

    suite, y para programar los dispositivos solamente se necesitaran los archivos .pof generados por

    el compilador previamente.

    Figura No. 10: Pantalla inicial del Quartus Programmer.

    Instalacin del USB Blaster Este proceso est hecho para Windows Vista/7/8 32 bits, el USB blaster debe estar conectado.

  • Se deben poseer privilegios de administrador para instalar el driver.

    No se recomienda usar la opcin Add Hardware del panel de control.

    Los siguientes pasos son solo para la instalacin del driver, la configuracin es un proceso aparte.

    1. Conecte el cable de descarga USB-Blaster en su PC. Aparecer el cuadro de dilogo Nuevo hardware encontrado.

    2. Seleccione Buscar e instalar el software de controlador (recomendado).

    3. Seleccione No buscar en lnea.

    4. Cuando se le pide que inserte el disco que viene con el USB-Blaster, seleccione No tengo el

    disco. Mostrar otras opciones.

    5. Seleccione Buscar en mi sistema software de controlador (avanzado) cuando vea el Windows no pudo encontrar el software controlador para su cuadro de dilogo de

    dispositivo.

    6. Haga clic en Examinar y vaya a la siguiente direccin

    C:\altera\13.0sp1\quartus\drivers\usb-blaster.

    7. Nota: No seleccione los directorios x32 o x64.

    8. Haga clic en Aceptar.

    9. Seleccione la opcin Incluir subcarpetas y haga clic en Siguiente.

    10. Si se le pide que Windows no puede comprobar el editor de este software de controlador,

    seleccione Instalar este software de controlador de todas formas en el cuadro de dilogo

    de seguridad de la ventana. El asistente de instalacin le guiar a travs del proceso de

    instalacin.

    11. Cuando El software de este dispositivo se ha instalado correctamente cuadro de dilogo aparece, haga clic en Cerrar.

    12. Para completar la instalacin, configure la programacin de hardware en el software

    Quartus II.

    CPLD. Como se haba mencionado los CPLD disponibles son de la familia MAX 3000 con un

    empaquetamiento tipo TQFP (Thin Quad Flat Package), correspondiente a un montaje superficial,

    ya que los dispositivos son de uso acadmico lo ideal era crear una base estndar, siguiendo esta

    idea se tomo el estndar DIL40 (Dual in Line, 40 pines) y se reconfiguro el nuevo pinout del

    dispositivo, el cual quedo de la siguiente manera:

    No. de Pin Descripcion No. de Pin Descripcion

    1 TDI, I/O expandible 21, 22, 23 General I/O

    2, 3 General I/O 24 VCC

    4 GND 25 InputOE2

    5, 6 General I/O 26 InputGCLK2

  • 7 TMS, I/O expandible 27 InputOE1

    8 General I/O 28 InputGCLK1

    9 VCC (3.3 V) 29, 30, 31 General I/O

    10 General I/O 32 TDO, I/O expandible

    11, 12, 13, 14 General I/O 33 General I/O

    15 VCC 34 VCC

    16, 17, 18, 19, 20 General I/O 35,36 General I/O

    37 TMS, I/O expandible

    38, 40 General I/O

    39 GND

    Tabla No. 1: Pin Out Base estndar.

    Programacin del CPLD en Quartus II A continuacin se muestra los pasos para programar un CPLD.

    1. Inicializar Quartus II.

    2. Del men File, click en New Project Wizard

    Figura No. 16: Menu File.

    3. Se abrir un asistente, en el cual hay que completar 5 pasos para la configuracin del

    proyecto.

  • 4. En el paso nmero 1 se asignara la carpeta en donde se guarden los archivos creados por el proyecto, asi como tambin el nombre del mismo, la carpeta puede tener cualquier

    ubicacin y el nombre del proyecto puede ser cualquiera.

    Figura No. 17: pagina 1 creacin del proyecto

    5. La pagina numero 2 permite agregar archivos de diseo ya existentes, si se requiere un proyecto desde cero lo ideal es clic en Next.

    6. La siguiente etapa permite seleccionar el dispositivo que se requiere programar, para el

    ejemplo se utilizara un EPM3064ATC44-10.

  • Figura No. 18: seleccin de dispositivos.

    7. La etapa 4 permite la seleccin de las herramientas a utilizar para la compilacin del

    proyecto por el momento no se configurara nada en esa parte.

    8. La etapa 5 muestra un reporte de configuracin del proyecto.

    Figura No. 19: reporte de configuracin.

    9. En el men File, clic en New.

    10. Seleccionar la opcin AHDL file y clic en Ok.

    Figura No. 20: seleccin de tipo de archivo

    11. Se abrir una ventana de edicin de texto en la cual se introducir el cdigo.

    12. En el men File, clic en la opcin Save As y se guarda el archivo .tdf con el mismo nombre

    del proyecto.

    13. Escribir el cdigo.