+ All Categories
Home > Documents > Diseno,~ implementaci on y validaci on de una shield para la...

Diseno,~ implementaci on y validaci on de una shield para la...

Date post: 16-Apr-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
86
Dise˜ no, implementaci´on y validaci´on de una shield para la tarjeta de desarrollo de sistemas embebidos PYNQ-Z1 por Mar´ ıa Caro Chinchilla, n o de matr´ ıcula 12069 Trabajo de Fin de Grado para la obtenci´ on del t´ ıtulo acad´ emico Grado en Ingenier´ ıa de las Tecnolog´ ıas Industriales en la Universidad Polit´ ecnica de Madrid Tutores: Jos´ e Andr´ es Otero Marnotes Alfonso Rodr´ ıguez Medina DEPARTAMENTO DE AUTOM ´ ATICA, INGENIER ´ IA EL ´ ECTRICA Y ELETR ´ ONICA E INFORM ´ ATICA INDUSTRIAL Escuela T´ ecnica Superior de Ingenieros Industriales Madrid, Febrero 2019
Transcript

Diseno, implementacion y validacion de unashield para la tarjeta de desarrollo de sistemas

embebidos PYNQ-Z1

porMarıa Caro Chinchilla, no de matrıcula 12069

Trabajo de Fin de Grado

para la obtencion del tıtulo academicoGrado en Ingenierıa de las Tecnologıas Industriales

en laUniversidad Politecnica de Madrid

Tutores:Jose Andres Otero MarnotesAlfonso Rodrıguez Medina

DEPARTAMENTO DE AUTOMATICA, INGENIERIA ELECTRICA YELETRONICA E INFORMATICA INDUSTRIAL

Escuela Tecnica Superior de Ingenieros Industriales

Madrid, Febrero 2019

2

Agradecimientos

Quisiera comenzar este Trabajo Fin de Grado dando las gracias a todas las personas queme han ayudado a lo largo del desarrollo del proyecto, y de la titulacion.

En primer lugar a mis tutores Andres Otero y Alfonso Rodrıguez por brindarme laoportunidad de realizar este proyecto, por guiarme pacientemente, y por ensenarmesiempre con la energıa positiva que transmiten. A Jorge Portilla por hacer un hueco ensu agenda y atender mis dudas respecto a Altium.

A mi familia, a la que siempre estare agradecida por su apoyo, por ensenarme elvalor del esfuerzo, por entenderme y animarme en los momentos en los momentos defrustracion, por quererme tanto y por ser mi ejemplo de vida.

A Fausto por ser mi gran apoyo y estar siempre ahı dispuesto a ayudar, por sabercalmar mis nervios y levantarme cuando caigo. Por todo lo que nos queda por vivir.

A mis amigos tanto los creados en esta escuela como los que me acompanan desde elcolegio, porque juntos hemos sabido sobrellevar las dificultades, y sin vosotros no hubierasido posible.

3

4

RESUMEN

El proposito de este Trabajo Fin de Grado consiste en realizar una shield para latarjeta de desarrollo de sistemas embebidos PYNQ-Z1, una shield es una tarjeta deexpansion electronica que se puede apilar sobre la tarjeta base para dar funcionali-dades extra a la misma. Sin embargo el verdadero fondo del proyecto, es prestar lasherramientas necesarias para el adecuado aprendizaje del uso de FPGAs en la asigna-tura de Electronica Digital de la especialidad de Electronica y Automatica que ofrecela Universidad Politecnica de Madrid en el grado de Ingenierıa en Tecnologıas Indus-triales. Ademas, gracias a la versatilidad del dispositivo Zynq con el que cuenta la placaPYNQ-Z1, la shield desarrollada se ha empleado con exito en asignaturas del Masterde Electronica Industrial, como Design of Embedded Systems o Integrated Circuits andReconfigurable Computing.

En los ultimos anos se ha acelerado la evolucion de los dispositivos programables, comolas FPGAs, como consecuencia de las demandas del mercado. Las demandas mas im-portantes se refieren a reducir del tiempo necesario para desarrollar un producto respectoa ASICs, circuitos empleados para aplicaciones especıficas, o mejorar el paralelismo queofrecen las FPGAs frente a CPUs, unidad central de procesamiento que interpretan lasinstrucciones y las ejecutan de manera secuencial. Los fabricantes de FPGAs respondena estas demandas dando lugar a grandes avances en un tiempo limitado.

Uno de los primeros avances fue el lanzamiento de dispositivos System on Chip, SoC,que supuso una revolucion en la arquitectura interna de los dispositivos integrando en ununico chip, un procesador y logica programable (hardware). Permitiendo de este mododesarrollar lo mejor de los dos mundos, la flexibilidad y la reduccion en el tiempo dedesarrollo de software, y la alta tasa de procesado hardware. Sin embargo, en este tipo dediseno la dificultad se plantea en la busqueda del equilibrio entre alcanzar la versatilidadnecesaria sin perjudicar la velocidad de trabajo. Los lenguajes de descripcion Hardwarepermiten sintetizar descripciones de los algoritmos realizadas mediante transferenciasentre registros (RTL) en circuitos digitales, acelerando el desarrollo de codigo sintetizableen FPGAs, buscando con ello acelerar la implementacion en logica programable de lasfunciones que tardan mas tiempo en ejecutarse.

El programa docente considera importante su aprendizaje porque interviene en unamplio rango de aplicaciones en ingenierıa, debido a la alta versatilidad de estos dis-positivos. La principal aplicacion de las FPGA es el procesamiento digital de senales,

5

RESUMEN

procesamiento de datos y comunicaciones. La eleccion de las FPGAs para aplicacionesde tratamiento de senal se debe a su alta frecuencia de trabajo, a su capacidad deprocesamiento en paralelo, y a su bajo precio en comparacion con los ASICs.

Algunas de las aplicaciones en las que se utilizan son sistemas de vision artificial, deimagenes medicas, radio definida por software, encriptacion y codificacion, radioastro-nomıa, reconocimiento de voz, entre otras muchas [17].

En la asignatura de Electronica Digital se pretende dar a conocer los lenguajes dedescripcion Hardware y los dispositivos FPGA. Como parte de la evolucion de la asig-natura, en cada curso se actualizan las herramientas de trabajo con las que se cuenta,a la vez que mejora la tecnologıa. Ejemplo de esta evolucion, es el uso de placas demayor potencia y herramientas que aceleran el diseno, correspondiendose en la medidade lo posible, con los dispositivos utilizados actualmente en empresa e investigacion.El proyecto surge de esta decision de mejorar los recursos con la obtencion de nuevasplacas de desarrollo, PYNQ-Z1, con una FPGA en su interior de mayores capacidades,Zynq-7020.

Para poder llevar a cabo este planteamiento e incorporar las mejoras al plan docenteactual en el que se basa la asignatura, es necesario introducir elementos que permitanvisualizar el manejo que los alumnos adquieren durante el aprendizaje, ya que se tratade una ensenanza eminentemente practica, en la que los alumnos afianzan y demuestransus conocimientos mediante la elaboracion de un proyecto de diseno digital. Por lo quese requiere una ampliacion de hardware que permita incorporar mas componentes, quese adecuen al contenido de las practicas y que en el futuro permitan mayor desarrollo almanejar mas variedad de componentes, a la hora de realizar tanto las practicas como eltrabajo final.

Una vez conocidos los objetivos, comienza el desarrollo de la idea. En primer lugar,una fase de investigacion para conocer las capacidades de la nueva placa de desarrollo,los pines que ofrece y su recorrido interno para identificar las posibilidades que admite.En esta primera fase tambien se investiga el tipo de componentes que resultan de interesy que modelos se adaptan mejor a las condiciones presentadas.

En la siguiente fase, comienza el diseno de la shield mediante la herramienta AltiumDesigner. El proceso de diseno de divide en varias partes. Comenzando por el diseno delos esquematicos en los que se reflejan los componentes que intervienen y se plasman susconexiones. Dentro de la fase de esquematicos se debe realizar tambien el diseno de lashuellas de todos los elementos, este diseno implica una alta precision, debido al reducidotamano de la mayorıa de los componentes. Las huellas muestran las dimensiones queocupa cada elemento y la situacion de sus pads, y son almacenadas en las propiedadesque aloja cada sımbolo representativo del esquematico.

6 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

A continuacion, se disena la PCB en la que aparecen las huellas mencionadas anterior-mente y su disposicion final. Se dimensiona la shield resultante y comienza el desarrollodel layout considerando las limitaciones de espacio, la disposicion mas adecuada segunsu posterior uso, facilitando el proceso de conexionado, etc. El proceso de conexionado,se llama enrutado y consiste en conectar cada componente con los elementos que seanecesario para su correcto funcionamiento. Una vez disenada la PCB se envıa para sufabricacion externa mediante tecnicas litograficas.

Finalmente, se lleva a cabo la soldadura que permite situar los componentes reales a laPCB disenada y se realiza un banco de pruebas que permitan verificar el funcionamiento.

Marıa Caro Chinchilla 7

Indice

1 INTRODUCCION 101.1 Motivacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.3 Shield: Definicion y Arduino como modelo . . . . . . . . . . . . . . . . . . 14

2 ESTADO DEL ARTE 172.1 FPGA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.1.1 Definicion y arquitectura interna . . . . . . . . . . . . . . . . . . . 172.2 Modelos mas utilizados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.2.1 Virtex-7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.2.2 Kintex-7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.2.3 Artix 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.3 Tarjetas de desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.3.1 Spartan 3 Starter Kit Board . . . . . . . . . . . . . . . . . . . . . . 252.3.2 Basys 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.3.3 PYNQ-Z1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.4 Lenguajes de descripcion de hardware . . . . . . . . . . . . . . . . . . . . 272.4.1 Vivado y Vivado HLS . . . . . . . . . . . . . . . . . . . . . . . . . 29

3 DESARROLLO 333.1 Componentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.2 Diseno de la Shield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

3.2.1 Entorno de desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . 393.2.2 PCB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4 VALIDACION DEL PROTOTIPO 544.1 Verificacion de resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

4.1.1 Referencia para las practicas de la asignatura de Digital . . . . . . 56

5 CONCLUSIONES Y LINEAS FUTURAS 615.1 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615.2 Valoracion de impactos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625.3 Lıneas futuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

6 PRESUPUESTO Y PLANIFICACION TEMPORAL 646.1 Presupuesto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646.2 Planificacion temporal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

8

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

7 ANEXOS 68

INDICE DE FIGURAS 83

INDICE DE TABLAS 85

Marıa Caro Chinchilla 9

1 INTRODUCCION

El proyecto basa su realizacion en la tecnologıa de circuitos impresos o PCB (printedcircuit board). Una PCB es una superficie usada en circuitos electronicos que sirve comosoporte de los componentes y que establece pistas de material conductor que permitela interconexion entre ellos sobre una base no conductora Esta tecnologıa aparecio porprimera vez en el ano 1936, de manos del ingeniero austrıaco Paul Eisler formando partede una radio. Unos anos despues, en 1943, Estados Unidos se comenzo a usar a granescala para fabricar radios que serıan usadas en la Segunda Guerra Mundial y en 1950la invencion se pudo comercializar [28].

Su implementacion favorecio el proceso de reduccion de tamano en los dispositivoselectronicos, al sustituir los espacios llenos de cables y conexiones por finas capas quesoportan el conjunto de componentes y conexiones. Hecho que tuvo como consecuenciaun crecimiento del mercado de la electronica de consumo seguido por un crecimiento enla produccion y una reduccion de precios. Facilita la produccion en masa, ya que permiteque el circuito impreso y su montaje se desarrolle de forma automatizada haciendo sufabricacion en grandes lotes mas economica y fiable.

Desde entonces el sector de la ingenierıa electronica ha experimentado un gran de-sarrollo que aumenta exponencialmente. Este desarrollo viene impulsado por la mayorimportancia que esta cobrando en los mercados debido a la integracion de dispositivoselectronicos en los objetos de la vida cotidiana, ejemplo de ello se puede encontrar en elec-trodomesticos, automocion, etc, y las necesidades crecientes que demandan los avancesen tecnologıas de comunicacion e informacion.

Las PCBs o circuitos impresos son muy utilizados en disenos electronicos. Las pistasque conforman los caminos que ha de tomar el conexionado son generalmente de cobre yla base de resinas de fibra de vidrio reforzada. En la actualidad, tambien se fabrican demateriales flexibles cuando entre los elementos que une se produce movimiento relativo,en esta ocasion los materiales utilizados son celuloide como base, y pintura conductorapara las pistas.

La produccion de las placas esta automatizada, lo cual permite agilizar el procesoası como disminuir el tamano y los costes y aumentar la fiabilidad. El montaje de loscomponentes puede ser automatizado o manual, el metodo manual se usa en placas deprototipado o para producciones de un numero reducido de ejemplares. El montaje

10

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

manual es un trabajo laborioso, en el que hay que verificar la correcta orientacion ydisposicion de los componentes, la dificultad de manipular los componentes de reducidasdimensiones, todo ello colabora con la incorporacion de una mayor probabilidad de error.

Algunos aspectos a tener en cuenta al proceder al diseno de PCB son: la posicionideal de cada elementos fundamentandose en su funcion posterior y en otros factores,como un conexionado optimo que permita la funcionalidad, los conectores que requierepara su conexion con otros dispositivos o para su alimentacion, etc. La eficiencia en eldesarrollo de las PCB depende tambien del programa de diseno que se utilice. El disenocon herramientas mas innovadoras permite que los productos se fabriquen con estandaresde calidad altos, permite realizar un enrutado preciso y la elaboracion de conexiones dealta velocidad que se adapte a las estructuras y fines que se desean fabricar, y administrarde manera adecuada los materiales que se requieren para su elaboracion. La tecnologıaPCB ha respondido continuamente y se ha adaptado a las circunstancias cambiantes enmuchos campos relacionados, en particular en la industria de circuitos integrados. Perola creacion y uso de PCB no es exclusivo de la industria, sino que su uso se ha expandidodebido a los recursos compartidos de hardware y software libre, en los que se compartendiagramas y esquemas hardware y se ofrecen entornos de programacion simplificada encodigo libre.

1.1 Motivacion

La docencia tiene un impacto fundamental en el desarrollo de la sociedad, y en el ambitode la ingenierıa su impacto afecta especialmente al desarrollo tecnologico. En la EscuelaTecnica y Superior de Ingenieros Industriales la docencia se compagina con la actividadinvestigadora. Los Trabajo Fin de Grado colaboran en esta labor investigadora, par-ticipando en los proyectos que desarrollan el personal investigador y docente. Esteproyecto desarrollando un proyecto ingenieril pretende colaborar con la labor docente enla asignatura de Electronica Digital obteniendo como resultado un elemento clave parael desarrollo de la asignatura, y posteriormente podrıa ser empleado como herramientapropia de los investigadores en el desarrollo de demostradores de los avances tecnicosresultado de la labor investigadora de los docentes de la escuela.

La educacion superior con las nuevas incorporaciones a planes europeos, la implantacionde nuevas titulaciones, llevan al modelo educativo a experimentar cambios en sus metodoshabituales. Un cambio que ya se venıa gestando desde hace tiempo, es el paso de lasclases orientadas a la “ensenanza del profesor” a “el aprendizaje del alumno”, y con elloactividades en las que el alumno sea mas partıcipe de las materias y absorba de modoactivo los conocimientos.

Marıa Caro Chinchilla 11

1 INTRODUCCION

En el ambito de la ingenierıa, las actividades en las que el alumnado desarrollaun proyecto son muy indicadas y se comprueban los buenos resultados mediante laelaboracion de mecanismos para el seguimiento y la evaluacion. Esto se aplica duranteel desarrollo de la asignatura mencionada, con el desarrollo de practicas y la posteriorelaboracion de un trabajo. La inversion de tiempo en la ejecucion de los trabajos esrelativamente alta, ya que el proceso de aprender haciendo involucra diferentes fases,conocimiento del funcionamiento de las herramientas, curva de aprendizaje, desarrollodel trabajo, errores y capacidad de identificarlos y solucionarlos. Por ello es funda-mental a la hora de disenar el trabajo a realizar, manejar el alcance al que pueden llegary potenciar un factor motivador.

En el caso de esta asignatura, el factor motivador se trabaja con la realizacion decircuitos digitales que implementan juegos sencillos, lo que implica el uso de recursosvisuales. De esta forma se facilita la identificacion de posibles errores y despierta elinteres de los alumnos ya que sus logros resultan tangibles y observables, aspectos pocohabituales en del estudio de otras materias.

En la evolucion de la docencia tambien consiste en utilizar recursos con las capacidadesnecesarias y cuyo uso no este obsoleto, con el fin de familiarizar a los alumnos conherramientas que pueden usar en su desarrollo profesional o en proyectos propios. EsteTrabajo Fin de Grado se realiza para actualizar el material que tendran a su disposicionlos alumnos, de manera que la docencia continue cumpliendo con todo lo mencionadoanteriormente.

1.2 Objetivos

El objetivo fundamental de este Trabajo Fin de Grado es disenar, fabricar y soldar unprototipo para su posterior validacion de una shield para una placa de desarrollo de sis-temas embebidos PYNQ-Z1, es decir, una ampliacion modular de hardware cuyo fin essu utilizacion en las actividades practicas de la asignatura de Electronica Digital. Debealbergar todos los recursos necesarios para su correcto desarrollo e identificar nuevasfuncionalidades que puedan resultar de interes en un perıodo futuro, ademas de com-probar su correcto funcionamiento realizando dichas practicas sobre la PYNQ-Z1 con elmodulo finalizado. Existen asignaturas mas avanzadas del Master de Electronica Indus-trial, tales como Design of Embedded Systems, Integrated Circuits and Reconfigurablecomputing, que siguen una filosofıa similar a la Electronica Digital, en lo que se refierea su orientacion al desarrollo de proyectos y se han visto beneficiadas al poder disponerpara su empleo en dichos proyectos de la placa desarrollada en este Trabajo de Fin deGrado.

12 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

Para lograr el objetivo final se debe ir cumpliendo con metas a mas corto plazo sinperder la vision global. Estas metas se organizan de modo que permitan avanzar enel proyecto con criterio y dando los pasos previos necesarios para cumplir los objetivossatisfactoriamente, ya que todas las etapas dependen en gran medida de la anterior.Cada una de estas metas es explicada mas ampliamente a lo largo del desarrollo deltrabajo y se mencionan a continuacion.

El punto de partida son las necesidades de las que surge el proyecto, por lo que seconocen los elementos mınimos que debe incluir y la placa a la que debe solaparse. Desdeesta idea inicial se ha complementado y dado forma al proyecto hasta convertirlo en unarealidad.

Las metas que han permitido el desarrollo del proyecto mostradas en un orden logicoson:1.Investigacion sobre la placa PYNQ-Z1, de sus perifericos existentes, y de los zocalosdisponibles que permiten llevar a cabo su expansion.2.Revision actualizada de recursos y componentes que pueden resultar interesantes en laaplicacion, y su compatibilidad con las necesidades primarias a cumplir.3.Lista de componentes definitiva y adjudicacion para su conexion a los zocalos de laplaca.4.Diseno de PCB en Altium Designer. Este proceso involucra otras tareas como: creacionde esquematicos, huellas de componentes, distribucion del lay-out, enrutado.5.Realizacion del banco de pruebas de los componentes y realizacion de las practicasimpartidas en los ultimos anos de la asignatura en cuestion.6.Una vez la placa ha sido fabricada se finaliza con la soldadura de componentes al cir-cuito impreso para las pruebas definitivas sobre el prototipo construido.

Ademas el desarrollo de un Trabajo de Fin de Grado permite el desarrollo de objetivostransversales que no se habıan adquirido previamente en el desarrollo de este.I. Enfrentarse a un proyecto real, cuyo resultado es tangible y aporta algo al entorno.II. Organizacion temporal para cumplir con los plazos que exige el proyecto.III. Aprendizaje autonomo y por colaboracion con profesores en nuevos temas.IV. Desarrollo de una memoria, que completa el proyecto. Plasmar de manera ordenadalos resultados y la metodologıa de trabajo.

La presente memoria recoge y explica los pasos seguidos en el desarrollo del proyecto,se divide en diferentes bloques cuyo contenido se desarrolla a continuacion.

• Entorno del trabajo: se enmarca el trabajo en un contexto tecnologico ex-plicando sus antecedentes y el marco en el que de desarrolla, ası como lasherramientas que utiliza.

Marıa Caro Chinchilla 13

1 INTRODUCCION

• Desarrollo: descripcion de los pasos seguidos para lograr el diseno buscado,indicando los aspectos tecnicos tenidos en cuenta. Explicando cada uno delos pasos que involucran la creacion de una PCB mediante el empleo de laherramienta de diseno Altium.

• Validacion del prototipo y desarrollo de las practicas: se comprueba el co-rrecto funcionamiento resultado del proceso de conexionado y soldadura. Severifica cada una de las practicas en Vivado, un entorno integrado para eldesarrollo de sistemas digitales sobre FPGAs.

• Conclusiones y lıneas futuras: se comentan los objetivos alcanzados duranteel desarrollo del proyecto y las posibles funciones que puede adoptar en elfuturo.

• Presupuesto y organizacion temporal del trabajo: se refleja el gasto realizadoen la fabricacion de las PCBs, el precio por placa que supondrıa la placacompleta y la organizacion a traves de un esquema EDP y el desarrollo delGANTT.

1.3 Shield: Definicion y Arduino como modelo

Una Shield es una placa de circuito modular que aporta una funcionalidad extra, seusa para ampliar hardware, aumentando de este modo sus capacidades de la forma mascompacta y estable. Pudiendo mejorar la capacidad de comunicacion con otros sistemaso con el entorno, la capacidad de actuacion permitiendo gestionar mas sistemas, etc.Este circuito modular va acoplado a la placa por la parte superior, pudiendose apilarvarios.

La shield dispone de pines especıficos que cumplen con tareas necesarias como laalimentacion del circuito o la comunicacion entre dispositivos. Va alimentada con latension 3.3V o 5V y GND de la placa a la que va unida. La comunicacion entre ambosdispositivos tambien monopoliza pines para tal uso, la comunicacion se puede realizarmediante el uso de algunos pines digitales o analogicos y por el bus SPI o I2C, protocolosde comunicacion entre procesadores.

El dispositivo que mas shields utiliza y con mas variedad que se puede encontrar en elmercado es Arduino. Arduino es una placa basada en un microcontrolador ATMEL, losmicrocontroladores son circuitos integrados en los que se pueden grabar instrucciones quepermiten crear programas que interactuan con los circuitos de la placa. La plataforma

14 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

que ofrece Arduino favorece la creacion de electronica de codigo abierto, la cual estabasada en hardware y software libre, flexible y facil de utilizar para los creadores ydesarrolladores. Como resultado presenta una placa con todos los elementos necesariospara conectar perifericos a las entradas y salidas de un microcontrolador [5].

La shield disenada es compatible con Arduino, por lo que contiene el factor de formaque el standard de Arduino marca.

Fig. 1.1: Distribucion estandar de Arduino. Fuente [7]

Algunos de los ejemplos de shield de Arduino mas utilizados se destacan a con-tinuacion:

Arduino Ethernet Shield 2, shield oficial que permite la conexion del Arduino a internetmediante un puerto ethernet RJ-45, ademas incluye un zocalo para tarjetas de memoriamicro-SD [6]. Permite un uso sencillo debido a la inclusion de las librerıas necesariaspara su desarrollo en el entorno IDE oficial de Arduino.

Arduino GSM-GPRS Shield V2, shield oficial y en este caso la conectividad es porGPRS y 3G se consigue a traves de un modulo GSM M10 que incluye una antenaceramica integrada y mediante el uso de una tarjeta SIM que permite enviar y recibirllamadas, SMS y datos [4].

Modulo GPS/GPRS/GPS para Arduino, shield oficial para proporcionar conectividadGPRS y un GPS de gran precision. Se alimenta por a una baterıa LiPo que podrıaalimentar al Arduino aportando autonomıa [3].

Marıa Caro Chinchilla 15

1 INTRODUCCION

Arduino Rele Shield, shield oficial para eliminar una de las limitaciones de Arduino,el control de cargas con consumo. Se realiza a traves del control de cuatro reles quesoportan un consuma maximo de 8A con 4 pines digitales [2].

Arduino Bluetooth Bluefruit Le Low Energy nRF8001, shield oficial que introduce elprotocolo bluetooth. Se caracteriza por el bajo consumo necesario en el uso de Arduinoy permite facil comunicacion y conexion con Smartphones [7][12].

Shield educativos como Echidna Shield. El objetivo es simplificar el cableado de loscircuitos y facilitar el trabajo en el aula.

16 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

2 ESTADO DEL ARTE

2.1 FPGA

2.1.1 Definicion y arquitectura interna

Field Programmable Gate Arrays, es un dispositivo semiconductor que mediante bloqueslogicos interconectados, permite implementar circuitos digitales. Su funcionalidad seconfigura mediante un fichero de configuracion, resultado de la sıntesis del circuito aimplementar, lo mas comun es emplear para ello un lenguaje de descripcion hardwareespecializado a partir del cual se determina la interconexion de la logica interna y quepuede ser programada las veces que el disenador desee.

Las FPGAs contienen bloques logicos configurables (CLB, Configurable Logic Blocks)estos bloques ejecutan funciones sencillas como las que realiza una puerta logica o fun-ciones complejas mediante combinaciones. La mayorıa de estos dispositivos incluyenelementos de memoria, desde registros basicos como los biestables, a bloques de me-moria completos. Dentro de las diferentes tecnologıas de memoria, las FPGA se dife-rencian por el uso de volatiles RAM, no volatiles ROM, reprogramables EPROM, o noreprogramables basadas en fusibles.

La jerarquıa de interconexiones programables es determinada por el usuario, definiendocon ello el diseno digital. La funcionalidad descrita puede ser revisada con facilidad,incluso despues de ser implementada, y posteriormente reprogramada si las necesidadesa cubrir varıan.

Se caracterizan por la gran flexibilidad que otorgan pudiendo configurarse para practica-mente cualquier aplicacion, y por su rapidez al ser capaces de trabajar en varios procesosen paralelo. Como factor limitante para el usuario destaca el precio que condicionara lacapacidad y tamano del dispositivo.

Se aumentan las posibilidades de las FPGA al combinar la logica habitual con micro-procesadores y procesadores embebidos (ejemplo procesador AVR en Atmel, procesadorPowerPC, MicroBlaze o PicoBlaze en Xilinx). En el caso de ZYNQ, dispone de un pro-cesador de silicio ademas de la FPGA dentro del mismo chip. Muchas FPGA soportan

17

2 ESTADO DEL ARTE

la reconfiguracion parcial del sistema, permitiendo que una parte del diseno sea repro-gramada, mientras las demas partes siguen funcionando. Este es el principio de la ideade la computacion reconfigurable.

La arquitectura interna de una FPGA varıa en funcion del fabricante, cada uno deellos busca diferenciarse, conseguir la mejor arquitectura posible, incluir dispositivos in-novadores, mejorar rendimiento y reducir costes. Pero en la arquitectura base compartenmuchos puntos en comun.

Fig. 2.1: Arquitectura interna basica de una FPGA. Fuente [21]

De la Figura 2.1, se observa los bloques que configuran una arquitectura basica, CLBs,matriz de interconexion, los bloques de E/S, ademas de los mostrados en la imagenanterior cabe mencionar elementos de gran importancia como son los bloques de memoriaRAM, cada uno con un multiplicador dedicado, los controladores de reloj (DCM, DigitalClock Manager), procesadores de senal digital (DSP) que permiten operar a mayorvelocidad [20].

Bloques Logicos configurables (CLB): Estos elementos constituyen el nucleo de laFPGA. Cada CLB consta de una parte logica combinacional y de unos registros de al-macenamiento que son empleados en la logica secuencial. Se identifican con coordenadasXY dentro de la matriz programable, situando el X0Y0 en la esquina inferior derecha,el tamano de la matriz depende del tamano de la FPGA. Mediante el uso de tablasde busqueda, LUT, tambien llamados generadores de funciones se implementan las fun-ciones logicas o elementos de almacenamiento como biestables D (flip-flops) o biestablesasıncronos (latches)[16].

18 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

Bloques de entrada/salida (IOB): Gestionan el flujo de datos entre pines y logicainterna, siendo este flujo bidireccional. Son configurables por el usuario como entrada,salida o lınea bidireccional. Permiten la interactuacion del dispositivo con el exterior.

Matriz de interconexiones (SM): permiten la union de las diferentes lıneas de inter-conexion y con ello, la transmision y comunicacion entre bloques logicos a traves dedispositivos de conmutacion.

Bloques de memoria RAM: Almacenamiento de bloques de 18 Kbits.

Administradores digitales de reloj (DCM): resuelve problemas comunes de retraso,desfase, multiplicacion y division de la senal de reloj principal.

2.2 Modelos mas utilizados

A continuacion se realiza un pequeno analisis del mercado actual de las FPGA, presen-tando los principales fabricantes y los modelos mas usados. De este modo identificarlos productos mas adecuados que encajen en un entorno educativo basado en sistemasdigitales, incluyendo practicas de laboratorio y proyectos de investigacion. Por ello,algunas de las caracterısticas que se valoran a la hora de elegir un fabricante son:

• Companıas que desarrollen programas universitarios con el fin de presentar facilida-des a las organizaciones academicas en el acceso de los recursos, servicios y productos delos que disponen. Algunas de ellas ofertan descuentos en la adquisicion de los productoseducacionales destinados al laboratorio, o acuerdan con los centros licencias temporalessuficientemente largas para el aprendizaje de la herramienta.

• Disposicion de un software libre de desarrollo de sistemas digitales, disponible paratodo el que este interesado en usarlo y que permita el aprendizaje autonomo. Descargabledesde la correspondiente pagina web, con foros y guıa de uso que faciliten la resolucionde dudas, rasgos habituales en aplicaciones de software abierto con un volumen maselevado de consumidores.

• Los productos que ofrecen deben cumplir las siguientes caracterısticas: Kit completopara la programacion del sistema, manuales de usuario y hojas de datos para la ayudaen su uso y entendimiento de los dispositivos. Uso de tecnologıa reprogramable, parapoder hacer el numero de disenos deseado en el mismo dispositivo, variedad de recursos(LED’s, displays, interruptores, pulsadores, diferentes puertos de entrada/salida, etc)cuyo fin es permitir disenar un programa completo de practicas para el alumnado en

Marıa Caro Chinchilla 19

2 ESTADO DEL ARTE

cuanto a disenos de sistemas digitales, permitiendo ası mayor creatividad y grados decomplejidad a la hora de disenar y crear proyectos.

Los principales fabricantes son Actel, Intel, Atmel, Cypress, Lattice, Quicklogic, Xi-linx... Entre los anteriores, las companıas que mejor cumplen con los requisitos men-cionados son Intel, Xilinx y Atmel. Descartando las demas, debido a no cumplir con losrequisitos mas importantes como son: el hecho de no ofrecer un software de desarrollolibre, no ofrecer un programa universitarios para la obtencion de sus productos, que susproductos no esten orientados al aprendizaje, y por tanto a la realizacion de practicas,o carecer de los recursos necesarios y sin la posibilidad de incorporarlos.

Respecto al mercado mundial, el siguiente grafico muestra la cuota de mercado queacapara cada empresa.

Fig. 2.2: Cuota de mercado. Fuente [24]

Xilinx se considera uno de los fabricantes mas destacados a escala mundial y el quemayor cuota abarca. Sus FPGAs estan basados en la tecnologıa SRAM, capaz demantener los datos mientras continue alimentada, son dispositivos que permiten repro-gramaciones, MTP (Many Times Programmable). Actualmente los modelos mas utili-zados son los correspondiente a la serie 7, destacando los siguientes Vitex-7, Kintex-7 yArtix-7. Estas nuevas familias mejoran el rendimiento, la capacidad, la alimentacion delsistema y su precio. El desarrollo de la serie 7 establece nuevos estandares de rendimientoy ancho de banda para mercados limitados en energıa y sensibles a los costes, como la in-dustria aeroespacial y de defensa, infraestructura de comunicaciones, electronica medica,industrial y de consumo, estos mercados exigen caracterısticas de alto rendimiento en

20 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

un amplio rango de densidad.

Fig. 2.3: Comparacion de familia Serie 7. Fuente [30]

2.2.1 Virtex-7

La familia Virtex-7 se basa en la tecnologıa de diseno de 28nm y ofrece una mejora delrendimiento del sistema respecto al modelo anterior, Virtex 6, reduciendo la potenciaconsumida un 50%. Ademas, Virtex-7 duplica el ancho de banda de memoria en com-paracion con la generacion anterior de FPGAs Virtex con 1.866 Mbit/s de memoria derendimiento de la interfaz y mas de dos millones de celulas logicas. Dicha arquitec-tura reduce drasticamente los tiempos de desarrollo diferenciandose de este modo en elmercado.

Dentro de la familia Virtex-7 existen 11 modelos. En la siguiente tabla, figura 2.4, semuestran los diferentes modelos y caracterısticas que varıan.

Marıa Caro Chinchilla 21

2 ESTADO DEL ARTE

Tabla resumen de las caracterısticas de la familia de FPGA Virtex-7

Fig. 2.4: Familia Virtex-7. Fuente [35]

- Utiliza una tecnologıa de proceso de 28 nm.- Frecuencia del reloj 1GHz.- Ofrecen una capacidad de hasta 2M de celdas logicas.- Entre 6500K y 21500K de RAM distribuida.- Numero de I/O entre 300 y 1200.- Hasta 2,8 Tb/s de ancho de banda serial.

2.2.2 Kintex-7

Xilinx amplia la gama de dispositivos que ofrecen tecnologıa de 28nm, y permiten me-jorar rendimiento, potencia y ancho de banda. La familia de Kintex-7 es la que mejorrelacion precio-rendimiento ofrece. Es una opcion clara para las aplicaciones de rapidocrecimiento de hoy en dıa, como las comunicaciones inalambricas. Ademas su interfazadmite disenos de bufer de memoria unica en lugar de los disenos de bufer de dos ocuatro requeridos con otros dispositivos, por lo que un solo dispositivo Kintex-7 puedeprocesar video a velocidades que permiten una implementacion de un solo chip.

Dentro de la familia Kintex existen 7 modelos. En la siguiente tabla, figura 2.5, semuestran los diferentes modelos y caracterısticas que varıan.

Tabla resumen de las caracterısticas de la familia de FPGA Kintex-7.

22 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

Fig. 2.5: Familia Kintex 7. Fuente [33]

-Utiliza tecnologıa de proceso de 28 nm de bajo consumo.-Frecuencia de reloj 710MHz-Ofrecen una capacidad de: 65600 celdas logicas a 477000.-Maximo de RAM distribuıda 6800Kb.-Numero de I/O entre 300 y 500.-Ancho de banda en serie de 800 Gbps e incluye nucleos IP CPRI / OBSAI (9.8 Gbps)-Procesador de senal digital 144GMACS.

2.2.3 Artix 7

Las FPGA Artix-7 siguen la lınea de los modelos anteriormente mencionados en lo queha reduccion de consumo, mayor rendimiento y mayor ancho de banda se refiere, utilizatecnologıa de 28nm y dispone de los transceptores mas optimizados de la industria. Sonideales para productos como equipos medicos portatiles, radios militares o infraestruc-tura compacta inalambrica. Satisfacen las necesidades de pequeno tamano y peso queestablecen algunos mercados.

Dentro de la familia Artix 7 existen 6 modelos. En la siguiente tabla, figura 2.6, semuestran los diferentes modelos y caracterısticas que varıan.

Marıa Caro Chinchilla 23

2 ESTADO DEL ARTE

Tabla resumen de las caracterısticas de la familia de FPGA Artix 7

Fig. 2.6: Familia Artix 7. Fuente [32]

- Utilizan tecnologıa de proceso de 28 nm de bajo consumo.- La velocidad del reloj interno es superior a 450 MHz.- 6 administradores de reloj con retroalimentacion de desplazamiento de fase.- Ofrece una capacidad de entre 6000 celdas logicas y 102440.- Slices entre 938 a 16000 (Cada ‘slice’ contiene cuatro LUTs y ocho ‘flip-flops”.- Transceptores de 6.6Gb/s que permiten un ancho de banda maximo de 211Gb/s.- Entre 180 y 4320 Kb del bloque de memoria RAM.- Maximo RAM distribuıda: 1.100 Kb.- Numero total de bancos de I/O entre 2 y 8.- Maximo I/O de usuario: 400.- Un chip de conversion de analogico a digital (XADC).

Se cuenta con una matriz reconfigurable de tipo Artix-7 en la placa PYNQ-Z1 sobrela que se trabaja en el presente proyecto, aspecto que se desarrolla mas ampliamente enel siguiente apartado.

2.3 Tarjetas de desarrollo

Las tarjetas de desarrollo son plataformas de hardware que incorporan un circuito con loselementos basicos de un computador, un microcontrolador, memoria RAM, dispositivosde entrada/salida, como elementos fundamentales. Es una placa de tamano reducido,se usa habitualmente en entornos industriales para el control de sistemas embebidos. Amedida que la tecnologıa avanza las tarjetas de desarrollo han evolucionado a sistemasmas sofisticados, que incluyen mayor cantidad de elementos gracias a las reducciones detamano y mejoras en el rendimiento de los dispositivos. Algunos de los modelos de usomas extendido son Arduino y Raspberry Pi, claves en el desarrollo de Internet de lascosas (IoT).

24 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

Las placas que a continuacion se muestran, son los modelos utilizados hasta el mo-mento en el Centro de Electronica Industrial en la docencia de sistemas digitales. Elobjetivo es la introduccion en el ambito de los sistemas y disenos digitales por lo que lasplacas escogidas incorporan recursos que favorecen el aprendizaje.

El origen del presente trabajo reside en la sustitucion de dichas placas de desarrollopor un nuevo dispositivo que mejora las caracterısticas en potencia y rendimiento, y quese ajusta a los avances en tecnologıa, la placa de desarrollo PYNQ-Z1.

2.3.1 Spartan 3 Starter Kit Board

La Spartan-3 Starter Kit Board es una placa que permite diseno de circuitos avanzados.Cuenta con Spartan-3 XC3S200 FPGun de 500 K e interfaces DDR, son un tipo dememoria principal encargada de almacenar datos de programa e informacion, para serusada por la CPU, basada en SDRAM (Memoria Dinamica de Acceso Aleatorio conuna interfaz Sincronica). La placa Spartan-3 tambien es compatible con MicroBlaze TM

Embedded Development Kit (EDK) y PicoBlaze TM de Xilinx y con todas las versionesde herramientas Xilinx ISE. Ademas de la FPGA, la placa incluye 4 botones, 8 switches, 8LEDs, display de 7 segmentos y 4 dıgitos, puerto serie, puerto VGA, incluye conectoresde expansion con acceso a 40 pines. Funciona con los cables de velocidad completaJTAG3, JTAG USB y JTAG USB de Digilent, ası como con los cables P4 y MultiPROde Xilinx.

Fig. 2.7: Spartan 3 Starter Kit Board. Fuente [34]

Actualmente es un producto obsoleto y retirado del mercado dado que ya no es com-patible con los nuevos conjuntos de herramientas de Xilinx.

Marıa Caro Chinchilla 25

2 ESTADO DEL ARTE

2.3.2 Basys 2

La placa Basys 2 es una tarjeta de desarrollo fabricada por Digilent, basada en una FPGASpartan 3E-100 de Xilinx, y un controlador USB Atmel AT90USB2. Esta disenadapara el aprendizaje de sistemas digitales de complejidad media, utilizando un entornoprofesional. Proporciona un hardware completo, adecuado para circuitos con dispositivoslogicos basicos y controladores complejos, contando con un arreglo logico programablede 100.000 puertas, gran coleccion de dispositivos de E/S incorporados, memoria flash,interfaz programable USB2, 4 botones, 8 switches, 8 led’s, puerto PS2, puerto VGAy 4 modulos de expansion. Los cuatro modulos de expansion estandar permiten quelos disenos crezcan mas alla de la placa Basys2 utilizando placas de pruebas, placas decircuitos disenadas por el usuario o Pmods (los Pmods son modulos de E / S analogicasy digitales de bajo costo que ofrecen conversion A / D y D / A, controladores de motor,entradas de sensores) y muchas otras caracterısticas).

Fig. 2.8: Basys 2. Fuente [9]

Tiene un precio de 130e, aunque esta obsoleta en el mercado actual.

2.3.3 PYNQ-Z1

La placa PYNQ-Z1 es una tarjeta de desarrollo fabricada por Digilent de Xilinx, es unaplataforma programable de proposito general para sistemas integrados. Los usuariospueden personalizar tanto su hardware como su software para diversas aplicaciones.Esta disenada para ser utilizada con PYNQ, una nueva estructura de codigo abierto quepermite a los programadores embebidos explotar las capacidades de los SoC (Systems onchips) programables Xilinx Zynq sin tener que disenar circuitos logicos programables.

Se basa en un chip ZYNQ XC7Z020-1CLG400C perteneciente a la familia Zynq-7000

26 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

que incorpora una FPGA Artix-7. El microcontrolador, distingue la unidad de sistemade procesamiento, llamado ”Processing System” o PS, definido por dos nucleos ARMCortex-A9 MPCore funcionando a 650 Mhz, de la logica programable, PL, la comuni-cacion entre ambos sistemas se lleva a cabo mediante una interfaz AXI4 que transmitela informacion a traves de un bus interno. Entre muchas de las caracterısticas cabemencionar los recursos de conectividad y E/S que ofrece con puente USB-UART, circuitode programacion USB-JTAG, USB OTG PHY, Gigabit Ethernet PHY, puerto receptory fuente HDMI, 4 botones, 2 switches, 4 LEDs, 2 LEDs RGB, 2 puertos estandar Pmod,16 E / S FPGA total, conector de blindaje Arduino / chipKIT, 49 E / S FPGA total(6 entradas analogas de 0-3.3 V de terminacion unica a XADC y 4 entradas analogicas0-1.0V diferenciales a XADC) [10].

Fig. 2.9: PYNQ-Z1. Fuente [10]

Su precio en el mercado es 220e. Sin embargo en el caso del Centro de ElectronicaIndustrial de la UPM, este se ha adherido a un programa academico que reduce su preciohasta los 65e. Es la que se usa actualmente en el centro tanto para docencia como parainvestigacion.

2.4 Lenguajes de descripcion de hardware

Un lenguaje de descripcion hardware, tambien llamado HDL (Hardware DescriptionLanguage) es un lenguaje utilizado para modelar el comportamiento y/o la estructura

Marıa Caro Chinchilla 27

2 ESTADO DEL ARTE

de un circuito electronico. Fueron desarrollados para facilitar la creciente complejidad delos disenos digitales. Permiten diferentes grados de abstraccion, de uso mas comun sonlos lenguajes de alto nivel centrados en la funcionalidad. La traduccion a circuito logicose lleva a cabo mediante un sintetizador dando como resultado un circuito fısicamenterealizable. Dichos lenguajes hacen posible que el disenador de hardware pueda mode-lar y simular un componente electronico antes de que este sea construido mediantesimulaciones que permiten evaluar el funcionamiento.

El flujo de diseno para crear un circuito es:

Definir las tareas que se pretende que realice el circuito.Definir la estructura o el comportamiento esperado del mismo (como transferencias entreregistros) mediante un lenguaje de descripcion HDL.Verificacion de sıntesis y simulacion del circuito.Programacion de la FPGA y comprobacion del correcto funcionamiento.

Fig. 2.10: Flujo de diseno en HDL. Fuente [24]

A nivel practico la gran ventaja que proporciona este tipo de herramienta, es la posi-bilidad que brinda el sintetizador de saltar desde el ambito de la simulacion, a partir dela expresion textual a la implementacion real del hardware.

Existen diferentes tipos de lenguaje HDL diferenciados por nivel y grado de abs-traccion, (segun su diseno a nivel funcional o a nivel de componentes). Los mas popularesespecialmente en la docencia de circuitos digitales son VHDL y Verilog, son lenguajesconsiderados de bajo nivel al ser una descripcion mas cercana a la circuiterıa, que implicacierto conocimiento del funcionamiento interno.

28 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

Hasta el curso actual en la asignatura de Electronica Digital se ha utiliza VHDL paraintroducir a los alumnos en el diseno de circuitos digitales para aplicaciones de ciertacomplejidad. Por ello se ahondara en el conocimiento de este.

El lenguaje VHDL (combinacion de VHSIC y HDL, Very High Speed Integrated Cir-cuit y Hardware Description Language) definido por IEEE (Institute of Electrical andElectronics Engineers) (ANSI/IEEE 1076-1993) [29], se ha convertido en el lenguaje dereferencia para realizar modelos sintetizables de manera automatica, con una gran de-manda de uso. Entre las ventajas de su uso cabe destacar que al estar basado en elestandar IEEE mencionado garantiza la compatibilidad con cualquier otra herramientaque respete las especificaciones, permite disenar y modelar el circuito mediante herrami-entas de sıntesis crear implementaciones al nivel mas bajo, puertas logicas. Pudiendoası adaptarse a distintos propositos y utilizarse en las sucesivas fases que se dan en eldesarrollo de los disenos.

Es un lenguaje que permite un diseno modular, permitiendo dividir el codigo VHDL ysu diseno hardware en partes mas pequenas. Dando lugar a dos metodologıas top-down,un diseno complejo se divide en partes mas sencillas de programar, o bottom-up, undiseno complejo construıdo a partir de disenos mas simples.

Este lenguaje de modelado da lugar a distintas posibles descripciones segun el gradode abstraccion, denominandose estilos. En el estilo RTL (Register Transfer Level) seutilizan construcciones simples como operaciones logicas, y aritmeticas. Con mayorgrado de abstraccion se describe el estilo basado en el comportamiento (behavioural),desarrolla algoritmos de complejidad similar a los utilizados en los lenguajes de alto nivel[26].

Finalmente, la sıntesis logica llevada a cabo por el software genera una netlist o archivoque contiene la lista de conexiones, registrando la descripcion de las celdas logicas y lasconexiones concretas. Dado que las dificultades crecen al acercarse al nivel hardware serecomienda mayor nivel de abstraccion en la descripcion para optimizar la eficiencia yel tiempo de ejecucion. Aunque en la practica se combina en mayor o menor medida elempleo de varios estilos.

2.4.1 Vivado y Vivado HLS

Vivado es una herramienta para la sıntesis y diseno de sistemas digitales, es ofrecida porXilinx para FPGA y dispositivos Zynq. Desde 2014, la herramienta Vivado comienzaa usarse en FPGAs medianas y grandes de Xilinx, mantiendose ISE para modelos maspequenos. Sin embargo en la actualidad se recomienda el uso de Vivado para todas las

Marıa Caro Chinchilla 29

2 ESTADO DEL ARTE

FPGA. De hecho, los nuevos dispositivos ofrecidos por Xilinx no soportan la herramientaprevia, ISE.

Xilinx desarrollo esta nueva herramienta para el control de sus nuevos dispositivosde alta capacidad, acelerando el diseno de logica programable, proporcionando una inte-gracion y una implementacion mas rapida para los sistemas programables en dispositivos.En la figura 2.11, se comparan ambas herramientas, donde se observa la drastica reducionen tiempo de compilacion.

Fig. 2.11: Comparacion tiempo compilacion ISE con Vivado. Fuente [18]

Vivado ofrece un desarrollo integrado, que permite mejorar la productividad del diseno,convirtiendose en el sistema mas avanzado y robusto de la industria. En las tecnologıasde proceso de 28nm y menores, el cuello de botella temporal se produce en el proceso deinterconexion, utiliza algoritmos que reducen esos tiempos, al tiempo que ofrece buenrendimiento y baja potencia. Logra ası, reducir el tiempo de compilacion siendo 4 vecesmas rapido y mejora la densidad del diseno en un 20% [31].

Ofrece un nivel de abstraccion mayor que el estructural que permite describir circui-tos basandose en el comportamiento y las relaciones entre entradas y salidas sin hacerreferencia a la estructura real del hardware.

La interfaz que desarrolla Vivado permite un uso mas sencillo e intuitivo para eldisenador y ofrece un resumen de los puertos E/S sintetizados, definicion de su uso

30 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

como entrada o salida, los protocolos empleados,etc.

Vivado HLS

Las siglas HLS corresponden a High-Level Synthesis, se identifica con un proceso dediseno que interpreta la funcionalidad de un proceso descrita de forma algorıtmica yobtiene un diseno hardware que cumpla con lo esperado. Es una herramienta de de-sarrollo software de sıntesis de alto nivel que complementa a la herramienta Vivado.Realiza la programacion hardware a traves de lenguajes como C o C++. Este entornopor tanto permite programar en lenguajes de alto nivel y obtener el diseno sintetizadode su implementacion en RTL.

Vivado HLS tambien incluye un reporte con informacion referente al diseno imple-mentado. Algunos puntos son de especial relevancia como la temporizacion, valoresreferentes al ciclo de reloj requerido, al tiempo de sıntesis. Ademas de informacionreferente a los recursos del hardware utilizados.

Las entradas a Vivado HLS son las funciones escritas en C o C++, u otros de loslenguajes que admite como SystemC, debido a las limitaciones que puede aportar ellenguaje en C, el disenador introduce una serie de restricciones y directivas para que eldiseno cumpla con las especificaciones marcadas:-Constraints o limitaciones: se introduce una condicion restrictiva de tiempo, indicandoel periodo de reloj deseado.-Directivas: incluyen en la composicion de la aplicacion en terminos de segmentacion yparalelismo. Utiliza los archivos testebench, para simular la funcion de C antes de lasıntesis y para verificar la salida RTL.

Como salida se obtiene archivos de implementacion RTL en formatos de lenguaje dedescripcion de hardware (HDL),VHDL o Verilog. Esta es la salida primaria de VivadoHLS, a traves del uso de la sıntesis de Vivado, se puede obtener la implementacion anivel hardware.

Marıa Caro Chinchilla 31

2 ESTADO DEL ARTE

Fig. 2.12: Flujo de diseno Vivado HLS. Fuente [36]

32 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

3 DESARROLLO

3.1 Componentes

El presente proyecto surge de la necesidad de ampliar el hardware de la placa de desa-rrollo Pynq-Z1, y adaptarlo para el desarrollo de las practicas con el diseno de contenidoactual. Como primer paso se realiza un analisis de los recursos que se requieren y delos que se dispone, partiendo como objetivo inicial de los recursos que ofrecıa la Basys2. Requisitos mınimos: 4 botones, 8 LEDs, display de 4 dıgitos de 7 segmentos y 8switches.Recursos que ofrece la Pynq-Z1: 4 botones, 2 LEDs, 2 LEDs RGB y 2 switches.

Fig. 3.1: PYNQ-Z1. Fuente [11]

33

3 DESARROLLO

No solo es importante el numero de dispositivos que introduzca, sino la disposicionespacial de estos para poder asociarlos y relacionar de forma visual sus entradas y salidas.Por ello es necesario incluir: Display de 4 dıgitos de 7 segmentos, 4 botones a unadistancia cercana al display, de modo que se pueda asociar cada boton con un dıgito.Por esta razon se incluyen 4 botones mas, a pesar de que la placa ya los incorpora,estos pueden usarse para ampliar las opciones y asociarse a otros elementos, 8 LEDs y8 switches.

Una vez analizados los requisitos mınimos que debe cumplir la shield, cabe establecerel numero de pines que quedan libres para ası proceder a la busqueda de elementosque aporten funcionalidades extra que permitan ampliar las opciones de diseno de lostrabajos o que se usen habitualmente en proyectos de investigacion. La figura 3.1 muestrala identificacion de los zocalos y a continuacion se especifica el numero de pines quepresenta, y que resultan parte de las E/S del sistema que comunican con la FPGA desu interior. La identificacion de cada pin se muestra en la imagen de la figura 3.2.

J1 12 pines

J2 2 pines

J3 16 pines

J4 16 pines

J5 4 pines

J6 6 pines

J7 8 pines

Tabla 3.1: Listado de zocalos y numero de pines.

Fig. 3.2: Conectores de expansion de PYNQ-Z1. Fuente [11]

34 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

En el caso de J6 los pines disponibles estan destinados a la comunicacion SPI, razonpor la cual se deja liberado para en el futuro poder acceder a ellos. Dan lugar a un total64, de los cuales permiten conexion destinada a E/S 49, resto tiene una funcion definidaen el funcionamiento de la placa de desarrollo.6 entradas analogicas de 0-3.3V de un solo extremo para XADC.4 entradas analogicas diferenciales 0-1.0V a XADC.6 comunicacion SPI.

La lista de componentes es completada con los siguientes elementos: modulo de camarapara Raspberry, un zumbador y un driver de control para un motor paso a paso. Elzumbador es un elemento de control sencillo que emite sonidos cuya integracion enlos trabajos o practicas resulta relativamente sencillo. El caso del driver se incorporapara aprender el manejo de un motor paso a paso y combinar este control con otrasactividades integradas en la placa. Por ultimo el modulo para insertar una camara quepermite realizar tratamiento de imagenes y vıdeo.

La Pynq-Z1 establece unas condiciones a la hora de escoger el producto, la fundamentales la tension que maneja para alimentar los dispositivos, 3.3V a 5V por conexion USBaunque la placa puede ser alimentada hasta 7V a 15V con fuente de alimentacion externa.Otro de los factores a considerar es el espacio limitado para la cantidad de componentespor ello el tamano es un factor delimitante.

Caracterısticas de los componentes

Cabe destacar el funcionamiento de algunos componentes, especificando el numero desenales que llegan y el control que se hace de ellas.

•Display 4 dıgitos de 7 segmentos.

Se utiliza para representar visualmente numeros y letras, su uso esta muy extendidodebido a la simpleza de su funcionamiento. Esta compuesto por 7 dispositivos LED cuyocontrol determina el numero o letra que se pretende proyectar, en este componente seincluye un punto en cada dıgito. Para el control del dispositivo tambien son necesariasunas senales adicionales que permitan seleccionar que dıgito se pretende iluminar, noes posible seleccionar varios simultaneamente. El efecto de todos ellos encendidos seconsigue variando la seleccion del dıgito tan rapidamente que el ojo humano no percibeel apagado y el efecto visual es el encendido de todos ellos.

Marıa Caro Chinchilla 35

3 DESARROLLO

Fig. 3.3: 7 segmentos. Fuente [14]

Segun el componente el control se realiza de diferentes maneras, segun sea de anodoo de catodo comun. El funcionamiento en este caso se explica partiendo de un extractode la hoja de datos del display.

Fig. 3.4: Control de las senales del display. Fuente [14]

Siendo las senales 12, 9 , 8 y 6 las correspondientes a la seleccion de dıgito, corres-pondiendo el resto a los 7 segmentos mas el punto. En este dispositivo la seleccion dedıgito se activa con un ‘1’, activacion por alta, y los segmentos a iluminar con un ‘0’,activacion por baja.

•Modulo de camara Raspberry

El modulo camara de 5 megapıxeles, con un lente de foco fijo. Es capaz de tomarimagenes estaticas de 2592 x 1944, y tambien es compatible con el formato de video1080p30, 720p60 y 640x480p60/90. Se conecta por medio de un pequeno conector en laparte superior de la tarjeta. La camara tiene 15 senales de las cuales solo son necesariaspara su uso son 8, que deben ir colocadas a pares diferenciales.

-CAM1 CN y CAM1 CP corresponden al MIPI CLOCK.Proporcionan el pulso del reloj para los carriles de datos de MIPI para la primera camara.Se conectan a la MIPI reloj positivo (MIPI Clock Positive, MCP) y MIPI reloj negativo(MIPI Clock Negative, MCN), pines de la camara IC [27].

36 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

CAM1 CN→ IO L13N T2 MRCC 13 (J3 pin6)

CAM1 CP→ IO L13P T2 MRCC 13 (J3 pin8)

-CAM1 DN0 y CAM1 DP0 corresponden a lınea de datos 0.Pines para el carril de datos 0 de la camara, mediante MIPI datos positivos (MCP0), yMIPI datos negativos (MDN0) [27].

CAM1 DN0→ IO L16N T2 13 (J3 pin14)

CAM1 DP0→ IO L16P T2 13 (J3 pin2)

-CAM1 DN1 y CAM1 DP1 corresponden a lınea de datos 1. Pines para el carril dedatos 1 de la camara 1, mediante MIPI datos positivos (MDP1), y MIPI datos negativos(MDN1) [27].

CAM1 DN1 L14N T2 SRCC 13 (J3 pin 12)

CAM1 DP1→ IO L14P T2 SRCC 13 (J3 pin16)

-SCL0 y SDA0 corresponden al bus I2C.Facilita la comunicacion serial, que permite que el usuario controle las funciones de lacamara tales como seleccionar las resoluciones. Estos pines se conectan directamente a lainterfaz de esclavo SCCB dentro de la camara IC. El pin SCL (serial clock) proporcionauna entrada de reloj de interfaz serie estandar, y la interfaz serie estandar SDA (serialdata) para e/s de datos [27].

SCL0→ IO L24N T3 24

SDA0→ IO L24P T3 24

•Zumbador

Es un transductor electroacustico que produce un sonido o zumbido continuo o in-termitente de un mismo tono. El tono puede modificarse variando la frecuencia delzumbador mediante el uso de un potenciometro, control que se aplica en la shield delproyecto. El control de este componente se realiza a traves de una sola senal al zumbadorpasando previamente por el potenciometro. El nivel de sonido que alcanza son 80dB.

Marıa Caro Chinchilla 37

3 DESARROLLO

•Driver A4988

Es un controlador que simplifica el manejo de motores paso a paso, permite manejarlos altos voltajes e intensidades que requieren estos motores, limita la corriente quecircula por el motor, y proporciona las protecciones para evitar que la electronica puedaresultar danada. Para el control se necesitan unicamente dos senales, una para girar yotra para indicar el sentido del giro. Permite realizar microstepping, existen 3 senalesque marcan la resolucion del paso que se avanza, en este caso ha quedado prefijado en

el diseno con el paso de maxima resolucion (paso

16).

Fig. 3.5: Conexiones A4988. Fuente [23]

Disponen de regulador de intensidad incorporado, ya que algunos motores de ciertapotencia, como los NEMA 17 y NEMA 23, necesitan para su funcionamiento tensionessuperiores que generarıan una corriente superior a la que pueden soportar las bobinas.Permiten alimentar el motor a tensiones nominales superiores a las que serıa posiblepor su resistencia e intensidad maxima admisible. El limitador interrumpe la senalproporcionando una senal pulsada PWM de forma que el valor promedio de la intensidadque atraviesa la bobina es la intensidad nominal del motor. Son dispositivos fiables yrobustos, pero con el uso continuado se calientan y resulta conveniente situar una aletaque facilite la disipacion de calor.

Se adjunta las tabla 3.2 que muestra el contenido final de una shield, cada uno de loscomponentes con su respectivo proveedor, codigo, unidades por placa y precio. Dandoun total de 39,96e por shield.

38 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

Componente Proveedores Codigo Cantidad Precio

Botones Mouser PTS645SL432LFS 4 0,64eDisplay Mouser LDQ-M286RI 1 2,36eLED Mouser APTD3216LCGCK 8 2,40eSwitch Mouser JS202011CQN 8 2,64eConector Cam Mouser 1-1734248-5 1 0,75eZumbador Mouser ABI-042-RC 1 2,63ePotenciometro Mouser 3310C-002-103L 1 1,18eDriver A4988 Pololu POL-a4988 1 5,95eConector motor Mouser 1715747 1 2,04eConector alimentacion Mouser 1715721 1 1,08eConector 8x1 Digi-key 952-2271-ND 1 0,26eConector 2x1 Digi-key M20-9990246 1 0,09eConector 6x2 Mouser 5-146258-6 1 1,03eConector 8x2 Mouser 5-146258-8 1 0,26eConector5x1 Mouser 5-146290-5 1 0,32eConector3x2 Mouser 925367-3 1 0,53eResistencia 220 Ohm Mouser CRCW1206220RFKEAC 8 0,96eResistencia 1 kOhm Mouser 652-CRS1206FX1001ELF 16 5,28eResistencia 10 kOhm Mouser ERA-8ARB103V 8 8,80eCondensador100nF Mouser C1206C104K5JACTU 2 0,76e

Tabla 3.2: Listado de componentes por placa.

3.2 Diseno de la Shield

3.2.1 Entorno de desarrollo

El entorno de trabajo en el que se desarrolla el diseno de la PCB es Altium Designer.Altium Designer es uno de los paquetes de software de diseno de PCB de gama altamas populares en el mercado hoy en dıa, esta desarrollado y comercializado por AltiumLimited. Es un conjunto de programas para el diseno electronico en todas sus fases, yasean esquemas, simulacion, diseno de circuitos impresos, enrutador automatico, imple-mentacion de FPGA, o desarrollo de codigo para microprocesadores. No se trata de unconjunto de paquetes sueltos que son conectados mediante archivos externos (netlist),sino de un programa unico (dxp.exe) comunica al usuario con los distintos servidores(editor de texto, editor de esquemas, editor de PCB).

En el caso concreto que se aborda, dentro de las opciones que ofrece Altium, se hausado el diseno de esquematicos, donde los componentes se extraen de bibliotecas queincluyen los distintos tipos de modelos: sımbolo, modelo 3D y huella (footprint). El

Marıa Caro Chinchilla 39

3 DESARROLLO

diseno de PCBs, es un sistema complejo de edicion de circuitos basado en los compo-nentes y sus huellas anteriormente introducidas en el esquematico. La PCB es un reflejodel diseno que se plasma en los esquemas, por lo que el diseno del esquematico debeser correcto para que funcione de acuerdo con los requisitos planteados. Debe existiruna sincronizacion que garantice que todos los componentes esquematicos permanecenrelacionados con su implementacion fısica de la PCB. Los cambios en el diseno de la PCBpueden dar lugar a una reasignacion de los indicadores o a una anotacion posterior, yestos cambios deben producirse en el entorno esquematico. La integridad del diseno serefuerza con la sincronizacion entre los indicadores a nivel esquematico y de PCB, lo quereduce los errores.

La integracion de las diferentes fases es una de las ventajas que ofrece, resultado dela creacion de un proyecto general en el que se administra la incorporacion de archivosque incluyen archivos de sımbolos de diagramas esquematicos (.schlib), archivos de em-paquetado de PCB (.pcblib), archivos de diagramas esquematicos (.SCH) y archivos dePCB (.PCB). Despues de la traduccion y edicion del diagrama esquematico, la lista deredes se mostrara en PCB, de modo que se considera que el diagrama esquematico y PCBestan correlacionados y se puede llevar a cabo una operacion interactiva entre archivos.Si no se colocan en el mismo archivo de ingenierıa, los diagramas PCB y esquematicos seconsideraran independientes entre sı y la netlist del diagrama esquematico no se incluiraautomaticamente en el archivo PCB.

Esquematicos

Una vez elegidos los componentes concretos que se utilizaran comienza el proceso deelaboracion de los documentos requeridos para realizar el diseno. En primer lugar losesquematicos, mediante el uso de sımbolos estandarizados se plasman los componentesy las conexiones entre ellos que tendran lugar en la shield. Se incluyen todos los ele-mentos, los anteriormente mencionados y todos los auxiliares (conectores, resistencias ycondensadores). El dimensionamiento de resistencias conforme a la intensidad maximaque permiten los componentes y la capacidad de los condensadores es fundamental, yaque un dimensionamiento inadecuado o la ausencia de estos componentes supone un malfuncionamiento, y puede dar lugar a consecuencias tales como el quemado de LEDs,lecturas erroneas debido al ruido electronico, etc. De este primer paso depende el disenoPCB posterior, por lo que es necesario asegurarse, y obtener informacion de las ho-jas de datos de los componentes para adecuar los requisitos necesarios para realizar unconexionado adecuado.

En la realizacion del esquema, se introducen los sımbolos de los componentes. Elentorno de desarrollo Altium ofrece unas bibliotecas en las que se puede encontrar unaamplia variedad de elementos, pero en ocasiones es necesario realizar el modelo simbolico

40 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

de alguno de ellos o llevar a cabo modificaciones en modelos ya creados. Estas variacioneso nuevas creaciones se incorporan a la biblioteca mediante un proceso sencillo. En elcaso de la shield para Pynq-Z1, el componente del driver y el display de 4 dıgitos y 7segmentos, no aparecen en las bibliotecas proporcionadas y es necesaria su creacion. Ladescripcion simbolica basica de cualquier elemento consiste en introducir las entradas ysalidas de las que consta y la enumeracion de sus pines, como se muestra en el ejemplo.

(a) Display 7 segmentos (b) Conectorcamara

(c) Driver

Fig. 3.6: Representacion para esquematicos de componentes creados. Fuente propia

La distribucion de los componentes en el plano esquematico no afecta a la distribucionfinal en la placa, unicamente supone una descripcion grafica y sencilla de los elementosque intervienen en la placa y las conexiones entre ellos, por ello la distribucion es la queel disenador considere adecuada para entender el circuito mas facilmente.

Marıa Caro Chinchilla 41

3 DESARROLLO

Fig. 3.7: Esquematico. Fuente propia

42 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

Fig. 3.8: Esquematico. Fuente propia

Marıa Caro Chinchilla 43

3 DESARROLLO

3.2.2 PCB

Huellas

Dentro de los esquematicos se asocia en la descripcion de cada componente se introducesu huella o footprint. La huella es la representacion real en el plano del componente, de-limitando el espacio que ocupa, la disposicion y tamano de sus pines. Una vez se completetoda la informacion previa necesaria y se verifique, compatibilizando reciprocidades, seprocede a la generacion de la PCB. En esta fase del proyecto los componentes vienenrepresentados por su huella y se procede a realizar su distribucion final en el layout dela placa resultante.

En el caso que se aborda, la mayor parte de las huellas han sido creadas y anadidas,esto se debe a que los componentes concretos escogidos no se encuentran en las bibliotecasaportadas , y por ello, se procede a su creacion. El proceso de diseno de huellas, es unproceso minucioso en el que se debe ser preciso y atender a las hojas de datos en los quese describe el PCB layout recomendado, es decir, la forma y dimensiones de la huellaque recomienda el fabricante.

En la ventana de diseno de componentes para PCB se dibujan los pads (zona decontacto en la PCB de un pin o terminal de un componente) con las medidas indicadas,y tambien las dimensiones del componente visto en planta. El programa permite definirla forma y tamano de los pads, el grosor de las vıas y de las lıneas que delimitan elempaquetamiento. Al iniciar el diseno de la huella aparece una matriz escalada encuadros para facilitar el proceso de medicion, el tamano de la escala se ajusta segun ladimension del componente, afinando la cuadrıcula hasta 0.025 mm y con un maximo de2.5 mm, con un origen de coordenadas desde el cual medir. Los pads llevan un numerodesignador, cada uno de ellos corrresponden al pin del mismo numero que encontramosen el componente referido en el esquematico, este dato es importante y de necesariaconsideracion para realizar una conexion adecuada y que corresponda con la asignadaen el esquematico.

Capas

Los circuitos impresos ofrecen distintos grados de complejidad en la realizacion de undiseno. La complejidad se basa en el numero de conexiones necesarias y el espacio queestas demanden. Ofrece ası la posibilidad de disponer de capas en las que plasmar elenrutado que no interfieran entre sı sobre las que establecer comunicacion especıficamediante vıas.

44 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

La PCB mas sencilla se llama PCB capa simple porque los conductores se situanunicamente en uno de sus lados, suele ser el lado posterior. Para fabricar este tipo dePCB se utiliza un nucleo, uno de sus lados es cubierto por completo de cobre. Luegose transfiere al diseno sobre este lado de la PCB y a traves de un proceso quımico seelimina el cobre expuesto quedando visibles las pistas y pads de los componentes. Lacapa superior de la placa es llamada capa de componentes, ya que se montan sobre estamediante agujeros pasantes y se sueldan al lado del cobre, en el caso de componentes demontaje superficial, estos deben situarse y soldarse en el lado del cobre. Este tipo dePCB tiene bajo coste y se usan en aplicaciones con un bajo nivel de integracion.

Fig. 3.9: PCB de una sola capa. Fuente [22]

La PCB de dos capas permite disenos un poco mas complejos, simplemente se agregauna capa de cobre sobre el lado superior, lo que permite realizar ruteo en ambos lados.Es el caso del diseno realizado.

Fig. 3.10: PCB de doble capa. Fuente [22]

Existen PCB con mas de dos capas, multicapa. Permiten un ruteo mas complejo perola caracterıstica principal que ofrecen es la capacidad de agregar planos de alimentacionentre las capas, VCC o GND, lo que ofrece una excelente proteccion contra el ruidoelectrico. Pueden ser fabricados de distintas formas, la mas sencilla consiste en laminarmultiples PCB de doble capa mediante el uso de una resina o prepeg. La relacion entre lacantidad de capas electricas y las prepeg puede ser definida por el disenador de acuerdoal coste, las dimensiones y las caracterısticas electromagneticas requeridas.

Marıa Caro Chinchilla 45

3 DESARROLLO

Fig. 3.11: PCB multicapa. Fuente [19]

Las distintas capas de una PCB se conectan a traves de los pines de los componenteso a traves de pequenos agujeros metalizados denominados vıas. El diametro de estasvıas es menor que el de los agujeros pasantes metalizados utilizados para montar loscomponentes. En el caso de una placa de dos capas se ve la vıa por ambas caras, peroen casos multicapa es posible ver unicamente uno de los lados, son llamadas vıas ciegas,o incluso no verlas al unir estas capas internas, son llamadas vıas enterradas.

En el diseno de Altium se pueden usar todos estos tipos de vıas pero como disenadorhay que tener en cuenta que las vıas enterradas son mas costosas y no todos los fabri-cantes pueden hacerlas.

En las PCB se aplica una mascara antisoldante, debido al riesgo de conexiones ac-cidentales debido a puentes entre pads o pistas adyacentes en la aplicacion de estanodurante la soldadura. Esta mascara protege al cobre y solo deja expuestos los pads parapermitir la soldadura.Tiene una doble ventaja, la de prevenir la corrosion del cobre yevitar puentes en el proceso de montaje. Se coloca en las capas superior e inferior.

Es posible y recomendable situar informacion en la placa, se realiza en la capa deserigrafıa. Es util para indicar sobre la placa la ubicacion de los componentes, darinformacion sobre los componentes que permita su identificacion por parte del usuario,el nombre de la placa, el fabricante, codigo de barras o logotipo. Esto se hace conuna tinta tradicionalmente blanca o negra que se adhiere a la capa superficial y no esconductiva. Lo ideal es elegir un color que contraste con el color de la base para facilitarla lectura [13].

46 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

Reglas de diseno (DRC)

El editor de Altium utiliza un conjunto de reglas para definir algunos parametros cuyoobjetivo es cumplir con los requisitos de un diseno adecuado o que mejor se adapte alas necesidades del proyecto, tambien deben ser modificadas por requisitos que imponeel fabricante de PCBs. Vienen establecidas por defecto y pueden ser modificadas en“Design rules”. Cubren todos los ambitos involucrados, desde grosor de vıas, estilos deconexion de planos, etc.

Reglas electricasReglas de enrutamientoReglas de SMTReglas de mascaraReglas del planoReglas de TestpointReglas de fabricacionReglas de alta velocidadReglas de colocacionReglas de integridad de senal

Varias de estas reglas pueden afectar al mismo objeto, se aplican de modo jerarquicoy resuelven posibles conflictos de aplicacion segun la prioridad [1]. Con un conjunto biendefinido de reglas de diseno, permite completar con exito disenos con diferentes tamanosy, a menudo, con estrictos requisitos de diseno. Tomarse el tiempo para configurar lasreglas desde el principio del diseno facilita el trabajo, y durante la realizacion de la PCBse cuenta con la certeza de que el sistema de reglas esta aplicandolas adecuadamentepara garantizar el exito y la fiabilidad en el resultado.

Fig. 3.12: Ejemplo de configuracion de reglas. Fuente [1]

Marıa Caro Chinchilla 47

3 DESARROLLO

Algunas de las reglas modificadas se aplican al campo de reglas de enrutamiento, yson: el grosor de vıa establecido a 0.3mm, el diametro de vıa a 0.6mm y el diametrodel agujero interior a 0.3mm. Se establece el tamano maximo y mınimo permitido y elpreferente.

Lay-out

En primer lugar, se delimita la forma y dimensiones que finalmente tendra la PCB. Comose comenta al inicio del documento, la placa del proyecto es compatible con Arduino.Adecuandose a este estandar, se marca el tamano y la disposicion de pines, ya que debecoincidir tanto en posicion como en numero para que se acople adecuadamente y seproduzca la conexion. En el estandar de Arduino se toma como referencia el ArduinoUno, debido a que es el mas conocido y documentado, y en definitiva, porque es el modeloque comparte similitudes en la distribucion de pines con la PYNQ-Z1. La PYNQ-Z1introduce mayor cantidad de pines que deben ser correspondidos en la PCB. Dando comoresultado la siguiente distribucion y tamano de partida, en la imagen se especifican lasmedidas debido a que el procedimiento debe ser preciso, no para el tamano sino para lasdistancias relativas entre conectores.

Fig. 3.13: Esquema de distribucion de pines, distancias y dimensiones. Fuente [8]

Sin embargo, aunque ambas placas deben estar conectadas, esto no implica que eldiseno de la PCB de este proyecto deba ser identico al de la Arduino. Existe la posi-bilidad de realizar un diseno cuyas dimensiones sean mayores o menores. En el casoabordado, disminuir el tamano no es recomendable por dos motivos: primero, el ancho

48 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

de la placa no puede ser menor debido a la restriccion que imponen los conectores. Lareduccion de tamano en la otra direccion tampoco es una opcion, ya que el espaciodebe ser suficiente para situar todos los componentes y para llevar a cabo las conexionessin generar problemas. Quedando como opciones mantener el tamano del modelo oampliarlo.

Esta ultima opcion presenta ciertas ventajas, la principal es el aumento de espacioque permitira un mejor posicionamiento de los componentes, ası como la posibilidadde anadir utilidades nuevas. Sin embargo, los pines disponibles no ofrecen grandesposibilidades para ampliar funcionalidades, por ello se elige como opcion mantener lasdimensiones. Con ello se obtiene una PCB equilibrada y compacta. Una superficiemayor taparıa los recursos que ofrece de manera implıcita la placa PYNQ-Z1, lo queinicialmente no serıa un problema dado que los recursos necesarios para las practicasactuales se encuentran en la PCB, pero podrıa ser de utilizar en demos que se prueben oen las futuras modificaciones del diseno de practicas que amplıen los recursos recurriendoa los que ofrece la placa.

Como anadido, aumentar el tamano supone un conjunto mas voluminoso, lo que hacemas difıcil su manejo y manipulacion, dado que la geometrıa puede ser asimetrica. Estoaumenta su vulnerabilidad ante posibles golpes. Dado que una de las finalidades de estaplaca es servir de dispositivo de apoyo para futuras practicas de laboratorio, se busca undiseno que ofrezca robustez y facilidad en el manejo. Es por esto que se considera comosolucion mas adecuada a los fines del proyecto el diseno de la PCB con una geometrıaajustada a la placa de Arduino para ası poder asegurar estabilidad y proteccion en eluso.

A continuacion, se lleva a cabo el posicionamiento de los componentes partiendo dela base expuesta en la figura 3.10. Para comenzar la distribucion es necesario pensaren la funcionalidad que desempenan y que posicion es la mas adecuada e intuitiva paracumplir con su objetivo. Y ademas que se adapte a los recursos ya plasmados en laPYNQ-Z1. Por dichas razones, la distribucion comienza en los botones y en el displayde 4 y de 7 segmentos.

La posicion mas intuitiva de los botones corresponde a la zona inferior, izquierda. Enla zona mas baja posible resulta la mas logica, ya que permite un manejo mas facil deestos al situarse mas cerca del lımite de la placa donde tambien se encuentran los botonesque contiene la PYNQ-Z1. Ademas de permite la vision durante su manipulacion manualdel resto de componentes. La disposicion de los botones debe ir acompanada del displayde 7 segmentos, haciendo coincidir cada boton con un dıgito. Este hecho resulta de granutilidad en el desarrollo del trabajo de la asignatura de Electronica Digital, ya que enmuchos de los trabajo que se proponen se asocian ambos elementos. Todo ello reafirmaque el espacio elegido es el optimo ya que permite cumplir con todas las condiciones

Marıa Caro Chinchilla 49

3 DESARROLLO

expuestas.

La situacion de los LEDs no presenta tantas restricciones y ocupa poco espacio por loque queda supeditado al resto de necesidades, el unico apunte es que deben ir juntos ymanteniendo cercanıa con los switches.

Los switches deben ir todos juntos, el conjunto de ellos resulta el conjunto mas vo-luminoso por ello, recae sobre el conjunto cierta prioridad en el lay-out que se va es-tructurando. En las practicas, los switches y los LEDs estaran relacionados, siendo estarelacion a pares switch-LED con la misma enumeracion que se identifica gracias a laserigrafıa que acompana a los componentes.

Otro elemento con prioridad sobre la distribucion que cabe comentar son los conectoresrelacionados con el motor paso a paso. Estos son uno de 4 accesos para las 4 senales delmotor correspondientes 2 a una bobina y 2 a otra (1A, 2A, 1B, 2B) y otro de dos enlos que se introduce la alimentacion del motor (VMOT y GND). Su requisito consisteen situarse en los lımites de la placa para poder permitir el acceso sin elementos queinterfieran y, de este modo, poder realizar la conexion buscada. Conviene considerar acontinuacion la posicion que ocupa el driver de control del motor paso a paso, dado quesu proximidad a estos elementos resulta de gran practicidad. El conjunto de estos treselementos ocupa una gran cantidad de espacio aunque permite mayor flexibilidad, yaque acepta una proximidad relativa.

El conector de la camara Raspberry, se ajusta al espacio disponible con una restricciondentro de la libertad que ofrece debido a su tamano no excesivo. Se ha de tener en cuentaque su montaje es superficial y todas las conexiones que conlleva se realizan en la mismacapa, proceso que dificulta el acceso a todos los pines y su correspondiente union al pindel conector que corresponda. Debido a la consideracion mencionada, se decide situar elconector de la camara lo mas proximo posible al conector J3, en la parte superior, parafacilitar el rutado.

En ultimo lugar se consideran el zumbador y el potenciometro, ajustandose al espaciorestante. El potenciometro cuenta con un saliente como se muestra en tabla de com-pontes, por lo que se ha situado en el extremo de la PCB. Si otros elementos ofrecieranlimitaciones con mayor prioridad que no hubieran permitido situarlo en el extremo dela placa, existen variantes del modelo que lo situan en el eje z vertical, por lo que nohubiera supuesto un problema.

Enrutado

Para completar el proceso de creacion de la placa y la finalizacion de su PCB, se llevaa cabo el enrutado. Este proceso consiste en realizar la conexion de los componentes

50 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

mediante pistas de estano, las pistas del circuito no pueden cruzarse o interferir con otraspistas que lleven distinta senal, en ello reside la complejidad del enrutado.

La conexion esta marcada por la conexiones realizadas en el esquematico, que tambienqueda reflejado en los pads de la PCB, en los que el programa indica la senal correspon-diente y no permite una conexion erronea.

La estrategia de routing seguida es un rutado manual, a pesar del recurso ofrecido porAltium de autorutado. Este recurso es util para PCB con pocas conexiones o espaciosuficiente, pero en situaciones de mayor complejidad da lugar a muchos errores y suponeuna mayor inversion de tiempo dedicada a la resolucion de los problemas que presenta.En el proyecto abordado el espacio es limitado y existe una cantidad considerable decomponentes por lo que la mejor opcion es un rutado manual aprovechando las doscapas de las que se dispone para distribuir las conexiones y evitar cruces impermisibles.En caso de tener un mayor numero de capas el enrutado permite mas flexibilidad y conello un proceso mas sencillo, aunque el producto resultante se encarece. Todo ello haceque existan diferentes tecnicas y estrategias para realizar correctamente para realizarplacas impresas de modo que sean tan compactas y eficientes como sea posible.

Una vez que se termina el rutado de la placa, esta puede ser producida. Se obtiene unprototipo de la placa por medio de un fabricante externo, se realiza soldadura manualde los componentes para realizar las pruebas de validacion.

Marıa Caro Chinchilla 51

3 DESARROLLO

Fig. 3.14: PCB con ambas capas visibles. Fuente propia

Fig. 3.15: PCB cara superior. Fuente propia

52 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

Fig. 3.16: PCB cara inferior. Fuente propia

Fig. 3.17: PCB vista final. Fuente propia

Marıa Caro Chinchilla 53

4 VALIDACION DEL PROTOTIPO

4.1 Verificacion de resultados

Para comprobar el diseno se llevan a cabo una serie de pruebas que verifiquen el correctofuncionamiento. El objetivo del proyecto es su uso en las practicas de la asignaturaElectronica Digital, y aunque el diseno de la placa se desarrolla pensando en posiblesfuturas ampliaciones, el foco de las pruebas se centra en los componentes de los queactualmente se dispone y que intervienen en la asignatura.

Para el diseno de los modulos y la escritura del codigo se usan dos plataformas XilinxISE Design Suite y Vivado Design Suite. En un primer momento, el codigo se desa-rrolla en Xilinx ISE comprobando la sintaxis y la implementacion en las FPGA usadasanteriormente y en las que se encuentran los recursos necesarios, esta fase se lleva a cabodurante la fabricacion de las shields para PYNQ-Z1.

Una vez llegado el material y tras el proceso de soldadura de componentes, se obtieneun primer prototipo de shield finalizada y lista para las pruebas definitivas. Estas prue-bas se desarrollan en Vivado, herramienta que se ha mencionado anteriormente en eldesarrollo de la memoria.

La diferencia fundamental entre el uso de una u otra consiste en el fichero de restric-ciones que especifica a que pines va conectado cada una de las senales del diseno. En elcaso de Xilinx ISE, usa fichero de extension .ucf en el que el desarrollo y la interpretaciones sencilla. A continuacion se muestra un ejemplo, se indica precedido de NET, la senalcorrespondiente seguido de LOC igual al pin que corresponda, que variara segun la placade desarrollo utilizada.

UCF para BASYS 2NET clk LOC = B8;NET reset LOC = A7;NET boton LOC = G12;NET Leds (0) LOC = M5;NET Leds (1) LOC = M11;NET Leds (2) LOC = P7;NET Leds (3) LOC = P6;

54

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

NET Leds (4) LOC = N5;NET Leds (5) LOC = N4;NET Leds (6) LOC = P4;NET Leds (7) LOC = G1;

En el caso de Vivado se aplica un fichero de extension .xdc cuyo contenido resultamas complejo de interpretar. Mediante comandos TCL se asigna a cada puerto un pin y,opcionalmente, una tension de referencia. El archivo viene completamente comentado,unicamente se activan los puertos correspondientes a los recursos utilizados. En el casode usar los recursos como LEDs o botones integrados en la PYNQ-Z1, la activacion essencilla ya que son facilmente identificables. En el caso tratado, se ha generado un XDCcustom para la placa de expansion que se trata en este proyecto.

Fig. 4.1: Archivo XDC. Fuente propia

El primer componente que se prueba es el display de 4 dıgitos y 7 segmentos, secomprueba que el elemento responde adecuadamente a la seleccion de dıgito y que lostodos los segmentos se iluminan segun las solicitaciones del codigo.

A continuacion se verifican los LEDs y los switches. En los LEDs, la correcta ilu-minacion de cada uno de ellos, y en los switches la comprobacion se realiza conectandola entrada aplicada a los switches con la salida que ofrecen los LEDs, de este modo siun switch esta encendido el led correspondiente se ilumina, del mismo modo, si esta enmasa el LED se apaga.

Respecto a los botones, puede comprobarse su correcto funcionamiento de un modosimilar a los switches, conectando la senal de entrada del boton con algun otro recurso

Marıa Caro Chinchilla 55

4 VALIDACION DEL PROTOTIPO

con senal de salida, analizando la respuesta esperada se verifica el resultado.

4.1.1 Referencia para las practicas de la asignatura de Digital

En este apartado se concreta el codigo usado para las pruebas anteriormente mencionadasque esta estrechamente relacionadas con las practicas, ya que en cada una de ellasse puede comprobar el funcionamiento de uno o varios elementos. A continuacion, sedescribe el contenido de cada una de las practicas, que conforman la base y las primerastomas de contacto, para el posterior desarrollo del trabajo de la asignatura.

Practica 1

El objeto de la primera practica es la familiarizacion con las herramientas de diseno,simulacion e implementacion de sistemas digitales. En esta practica se implementa unreloj digital, usando el display de 7 segmentos, el correcto desarrollo de la practicaverifica su funcionamiento. Para su desarrollo se introduce un primer bloque basico, undivisor de frecuencia, necesario en casi cualquier tipo de sistema digital. El divisor defrecuencia se aplica para generar una senal periodica que se usara como control periodicoen tareas que lleven un tiempo diferente al marcado por el reloj del sistema (125MHz).En esta primera practica se requiere el uso de dos de ellos, uno con base de 1Hz paracontrolar el tiempo del reloj contando internamente los segundos y otro con base de2kHz que se usa para cambiar la seleccion de dıgito a una velocidad suficientementealta para que al ojo humano resulte encendido simultaneo de los cuatro. En los dıgitosqueda representado de derecha a izquierda unidades, decenas de segundo y unidades ydecenas de los minutos, a traves del control de los 7 segmentos para indicar el numerocorrespondiente adecuadamente. Todo el sistema se reinicia pulsado uno de los botones.

Practica 2

En la segunda practica se plantea el control de los LEDs simulando el sistema de lucesfrontales del coche fantastico. El funcionamiento consiste en el control de encendido delos LEDs primero de izquierda a derecha y luego de derecha a izquierda, con solo un LEDencendido a la vez. Este patron se repite indefinidamente, a una velocidad que permitarecorrer los 8 LEDs de ida y vuelta en 1 segundo, por lo que es necesario un divisorde frecuencia y se usan dos botones, uno para reset y otro para indicar el comienzo delsistema.

56 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

Practica 3

En la tercera practica se finaliza esta primera inmersion en el diseno de sistemas digitales,y por ello en ella se tratan otros aspectos fundamentales en estos circuitos como son lasmaquinas de estado sıncronas y los circuito anti-rebotes para filtrar las entradas pro-cedentes de los botones. Ambos necesarios para implementar una cerradura electronicaque encienda un LED cuando se detectan dos pulsaciones, en el orden que sea, de losdos botones elegidos.

En la imagen se muestra la maquina de estados que se da en el anti-rebotes y ladescripcion de las senales y estados:

Flanco: Salida del detector de flancos.Q2: Salida del circuito sincronizador.T: Senal que indica que se ha llegado al valor maximo en la temporizacion.A su vez, producira dos salidas:S: Salida filtradaE: Senal de habilitacion del temporizador.Como se ve en la figura, la maquina de estados contara con tan solo dos estados:

S NADA: La maquina permanece en este estado mientras no se acciona el pulsador.Una vez pulsado pasara a S BOTON e iniciara un temporizador que va a evitar, duranteun tiempo determinado, que se registren los flancos del resto de los rebotes de la senal.S BOTON: La maquina permanece en este estado mientras el temporizador no llega asu fin.

Una vez recibida la senal que indica que se ha alcanzado el valor maximo de la cuenta,se vuelve a S NADA. En la transicion se activara la senal de salida, si la senal Q2 tienevalor 1. De esta manera se evita considerar los flancos en la senal de bajada.

Marıa Caro Chinchilla 57

4 VALIDACION DEL PROTOTIPO

Fig. 4.2: Maquina de estados antirrebotes. Fuente [25]

Para finalizar se muestra la maquina de estados para controlar si se cumple la secuen-cia. En el caso de no pulsar ningun boton o botones que no formen parte de la cerradurase mantiene en el estado actual.

Fig. 4.3: Maquina de estados cerradura electronica. Fuente propia

En cada uno de las pruebas se comprueba la sintaxis del codigo y su simulacion conTestbench, previamente a su implementacion sobre la placa.

58 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

Fig. 4.4: Testbench de divisor de frecuencia. Fuente propia

Fig. 4.5: Testbench practica 2. Fuente propia

Fig. 4.6: Testbench practica 3. Fuente propia

Marıa Caro Chinchilla 59

4 VALIDACION DEL PROTOTIPO

Fig. 4.7: Shield en funcionamiento.

Fig. 4.8: Placa PYNQ Z1 con shield acoplada en la Division de Ingenierıa Electronica

60 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

5 CONCLUSIONES Y LINEAS FUTURAS

5.1 Conclusiones

En el presente proyecto se ha obtenido como resultado una shield para PYNQ-Z1 cuyafinalidad es su uso en el laboratorio durante las practicas de la asignatura de ElectronicaDigital del grado en Ingenierıa de Tecnologıas Industriales y las asignaturas Design ofEmbedded Systems o Integrated Circuits and Reconfigurable Computing, del Master enElectronica Industrial, que acompanan a lo largo del cuatrimestre a los conocimientosteoricos impartidos en clase y permiten ponerlos en practica e interiorizar lo aprendidode una forma mas profunda.

Como conclusion principal se puede asegurar el exito del proyecto, puesto que losdispositivos estan siendo utilizados actualmente en las clases practicas de las asignaturasque se mencionan y, tanto los profesores como los alumnos estan satisfechos con sufuncionamiento. Resulta gratificante poder observar que el proyecto cumple su objetivo,y colabora con la permanente evolucion a la que se ven sometidas las tecnicas practicasde docencia.

El exito final del proyecto se respalda en la serie de objetivos previos que se han idosuperando y, a traves de los cuales se obtiene una shield funcional que se adapta a lasnecesidades requeridas. El primer paso que hace posible el proyecto es el seguimiento delos pines disponibles en los modulos Pmod mediante el uso del datasheet de la PYNQ-Z1 que permite obtener la primera conclusion y es el numero de pines accesibles parala expansion. Sin embargo el grueso del proyecto reside en el uso de la herramientaAltium y el correcto desarrollo de cada una de sus partes y todo lo que a ellas involucra.Presentando como dificultad inicial, superar la curva de aprendizaje que conlleva el usode esta herramienta y realizar el rutado manual de los componente bajo la limitacion detamano.

Finalmente, para poder afirmar con certeza un resultado favorable a las expectativasmarcadas por lo objetivos, es imprescindible llevar a cabo un proceso de validacion.En este proyecto dicha validacion del prototipo se realiza con las practicas previamenteexplicadas, dando un resultado favorable. Una vez se concluye que el diseno es correcto seusa el mismo codigo para comprobar la soldadura en cada shield, y con ello, identificar loscomponentes en los que el estano no contacta adecuadamente con el pad correspondiente.

61

5 CONCLUSIONES Y LINEAS FUTURAS

5.2 Valoracion de impactos

El primer aspecto a considerar en la valoracion de impactos, es el impacto social. Elobjetivo de la realizacion de este proyecto es mejorar la docencia, lo que se encuentraligado a un impacto social positivo. En primera instancia se considera un impacto so-cial limitado al conjunto de alumnos que optan por la especialidad de Automatica yElectronica o el Master en Electronica Industrial, en esta universidad. Ofrece facilidadespara el aprendizaje de circuitos digitales, mediante un modulo de ampliacion hardwareque permite manejar y visualizar tareas de aprendizaje y modulos de pruebas, en unaplaca de diseno de circuitos logicos usada actualmente en industria e investigacion. Cola-bora de este modo con la familiarizacion de los alumnos con elementos que posiblementeutilicen en su desarrollo profesional y ofrece recursos a la Universidad Politecnica Ma-drid para fomentar la docencia del ”Aprender haciendo” e involucrar a los alumnos enproyectos a pequena escala que realizan ellos mismos interiorizando mejor los conoci-mientos adquiridos y enfrentandose a los problemas que puedan surgir y a sus posiblessoluciones.

A continuacion, se analiza el impacto ambiental. Este proyecto involucra la fabricacionde las shields, todo proceso de fabricacion implica emision de gases, consumo de energıay generacion de residuos.

En los procesos de semiconductores y componentes electronicos se generan residuospotencialmente peligrosos como residuos de material con epoxi, desechos de solventes yreveladores, etc. Estos procesos estan sujetos a guıas generales de medio ambiente, saludy seguridad que plantean tecnicas de prevencion de contaminacion. Algunas de las me-didas indican variaciones en los procesos como la sustitucion de soluciones de grabadocon cianuro, por acido sulfurico de cobre, sulfuro de oro y niquelado sin electricidad.En cuanto emisiones relacionadas con la fabricacion de semiconductores y componenteselectronicos preocupan aquellas que pertenecen a los gases de efecto invernadero y lassustancias toxicas, reactivas y corrosivas (vapores acidos, compuestos organicos volatiles,etc)[15]. Sin embargo, este proceso de fabricacion y la posible prevencion y actuacionsobre dicho efectos se encuentra fuera del alcance del proyecto. Se procura hacer unpedido con la holgura necesaria de materiales pero sin excesos, ajustandose a las ne-cesidades a cubrir, mas una serie de repuestos por los posibles errores o deteriores quese puedan dar en el montaje .

El impacto economico sobre la universidad Politecnica de Madrid y en concreto sobre elcentro de Electronica Industrial, el presupuesto de los materiales no supone un gasto ex-cesivo. Sin embargo con las nuevas medidas impuestas a los presupuestos sobre compraslimitan los proveedores y los presupuestos, adaptandose el proyecto a dichas restricciones.

62 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

5.3 Lıneas futuras

Como se ha mencionado anteriormente, el proyecto incluye recursos no utilizados enlas practicas actuales pero que pretenden ofrecer recursos para ampliar las opciones adesarrollar. Es el caso del zumbador, el controlador de motor que permite la conexionde un motor paso a paso y el modulo de conexion de una camara de Raspberry. Con losrecursos adicionales comentados se puede ampliar la complejidad por el control de mayornumero de componentes, o desarrollar proyectos mas complejos que incluyan tratamientode imagenes. Ademas de contar con los componentes que ofrece la shield, los disenospueden incluir el uso de los recursos que ofrece la misma placa, como botones, LED extray LED RGB.

El elemento mas sencillo que se incorpora es el zumbador, serıa el componente masfacilmente combinable con las practicas actuales e integrable en los trabajos de la asigna-tura. Como practica para incorporar en planes posteriores se propone un indicador delnivel de sonido con LED. Como incorporacion del componente a la practica 3 se proponeintroducir sonido al introducir una secuencia erronea en la deteccion de secuencia y comocomplemento el uso del led RGB en rojo, que simule la activacion de un alarma con unencendido intermitente. Extrapolable a los juegos que se desarrollan en los trabajos,introducir sonido al perder en el juego en cuestion, entre otras sugerencias.

El control del motor ofrece la infraestructura necesaria para integrar un motor enel montaje, lo cual permitirıa incorporar elementos moviles al diseno. Se propone unapractica cuyo contenido sea el control del motor, tanto en velocidad como en direccion,visualizandose los impulsos que lo controlan por uno o varios LEDs. Tambien se proponeel control de un ascensor con un tornillo sin fin que transforme el movimiento rotatorioen movimiento lineal en el eje z, uno de los botones simula el boton de llamada y losotros 3 el piso de destino.

En el caso del modulo para insertar la camara Raspberry, el objetivo serıa el trata-miento de datos para conformar la imagen tomada o el tratamiento de dichas imagenespara detectar cambios y con ello detectar movimiento en la zona a la que apunta lacamara. Este tratamiento se escapa del planteamiento docente actual en lo que a laasignatura se refiere, pero puede resultar de utilidad como herramienta en el desarrollode Trabajos de Fin de Grado o Master, o para uso del equipo de investigador del centrode Electronica Industrial.

Marıa Caro Chinchilla 63

6 PRESUPUESTO Y PLANIFICACION TEMPORAL

6.1 Presupuesto

En la tabla 6.1 queda reflejado el gasto real asumido por la Universidad, en el desarrollode 10 shields.

Componente Codigo Cantidad Coste unidad Precio total

Condensadores 100nF C1206C104K5JACTU 20 0,283e 5,66eAlojamiento cables 5-146290-5 10 1,38e 13,8eAlojamiento cables 5-146258-6 10 1,11e 11,1eAlojamiento de cables 952-2271-ND 10 0,245e 2,45eLED APTD3216LCGCK 80 0,287e 22,96eResistencias 1KOhm 652-CRS1206FX1001ELF 160 0,143e 22,88eResistencias 220 Ohm CRCW1206220RFKEAC 80 0,057e 4,56eConmutador deslizante JS202011AQN 80 0,383e 30,64eResistencias 10KOhm ERA-8ARB103V 80 0,96e 76,8eAlojamiento de cables M20-9990246 10 0,058e 0,58eAlojamiento de cables 5-146258-8 20 0,961e 19,22eBotones PTS645SL432LFS 40 0,16e 6,4eDisplay 7 segmentos LDQ-M286RI 10 4,86e 48,6ePCB PCB20180619 10 4,90e 49e

Total 314,65e

Tabla 6.1: Presupuesto empleado en el proyecto.

64

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

La tabla 6.2 refleja el presupuesto de todo lo que implicarıa una shield completa.

Componente Proveedores Codigo Cantidad Precio

Botones Mouser PTS645SL432LFS 4 0,64eDisplay Mouser LDQ-M286RI 1 2,36eLED Mouser APTD3216LCGCK 8 2,40eSwitch Mouser JS202011CQN 8 2,64eConector Cam Mouser 1-1734248-5 1 0,75eZumbador Mouser ABI-042-RC 1 2,63ePotenciometro Mouser 3310C-002-103L 1 1,18eDriver A4988 Pololu POL-a4988 1 5,95eConector motor Mouser 1715747 1 2,04eConector alimentacion Mouser 1715721 1 1,08eConector 8x1 Digi-key 952-2271-ND 1 0,26eConector 2x1 Digi-key M20-9990246 1 0,09eConector 6x2 Mouser 5-146258-6 1 1,03eConector 8x2 Mouser 5-146258-8 1 0,26eConector5x1 Mouser 5-146290-5 1 0,32eConector3x2 Mouser 925367-3 1 0,53eResistencia 220 Ohm Mouser CRCW1206220RFKEAC 8 0,96eResistencia 1 kOhm Mouser 652-CRS1206FX1001ELF 16 5,28eResistencia 10 kOhm Mouser ERA-8ARB103V 8 8,80eCondensador100nF Mouser C1206C104K5JACTU 2 0,76ePCB ElecrowPCB20180619 1 4,90e

Total 44,86e

Tabla 6.2: Presupuesto completo de una shield completa.

Fig. 6.1: Presupuesto total.

Marıa Caro Chinchilla 65

6 PRESUPUESTO Y PLANIFICACION TEMPORAL

6.2 Planificacion temporal

En este capıtulo se muestra la distribucion temporal en la que se ha desarrollado elpresente proyecto.

Fig. 6.2: EDP. Fuente propia

En la figura anterior se muestra la estructura de descomposicion del Trabajo Fin deGrado o EDP, que desglosa las actividades en las que se ha divido el proyecto y latareas que incluyen a cada seccion. Esta actividades describen los grandes bloques enlos que se divide el proyecto, los cuales se dividen sucesivamente en componentes maspequenos hasta que el nivel de detalle es suficiente para realizar una asignacion adecuadade tareas, duracion, recursos y costes. Posteriormente el diagrama de Gantt determinalas interacciones entre actividades y su duracion en el tiempo y ofrece una vision graficade la organizacon. En la parte izquierda del grafico se muestran las tareas y segunla longitud de las barras corresponde una duracion. Existen tareas que no se puedenrealizar sin la finalizacion previa de otra tarea, u otras relaciones que se representan porla interacion con flechas de union. Mantiene el codigo de colores que se plasma en laEDP.

66 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

Marıa Caro Chinchilla 67

7 ANEXOS

Codigo practica 1

library i e e e ;use i e e e . s t d l o g i c 1 1 6 4 . a l l ;use i e e e . numer ic std . a l l ;

entity TOP1 i sport (

c l k : in s t d l o g i c ;r e s e t : in s t d l o g i c ;segmentos : out s t d l o g i c v e c t o r (6 downto 0 ) ;s e l e c t o r : out s t d l o g i c v e c t o r (3 downto 0)

) ;end TOP1;

architecture behav io ra l of TOP1 i s

constant CUENTA 1Hz : i n t e g e r := 125000000;constant CUENTA 2kHz : i n t e g e r := 62500 ;signal enableI 1Hz : s t d l o g i c ;signal enableO 1Hz : s t d l o g i c ;signal cnt 1Hz : i n t e g e r range 0 to CUENTA 1Hz−1;signal u seg : i n t e g e r range 0 to 9 ;signal d seg : i n t e g e r range 0 to 9 ;signal u min : i n t e g e r range 0 to 9 ;signal d min : i n t e g e r range 0 to 9 ;signal cnt 2kHz : i n t e g e r range 0 to CUENTA 2kHz−1;signal enableI 2kHz : s t d l o g i c ;signal enableO 2kHz : s t d l o g i c ;signal b i t s : i n t e g e r range 0 to 3 ;signal sal idamux : i n t e g e r range 0 to 9 ;begin

f r eqd iv 1Hz : process ( c lk , r e s e t )begin

68

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

i f r e s e t = ’1 ’ thencnt 1Hz <= 0 ;

e l s i f c lk ’ event and c l k = ’1 ’ theni f enableI 1Hz= ’1 ’ then

i f cnt 1Hz = CUENTA 1Hz−1 thencnt 1Hz <= 0 ;

elsecnt 1Hz <= cnt 1Hz + 1 ;

end i f ;end i f ;

end i f ;end process ;

enableI 1Hz <= ’ 1 ’ ;enableO 1Hz <= ’1 ’ when cnt 1Hz = CUENTA 1Hz−1and enableI 1Hz = ’1 ’ else ’ 0 ’ ;

cont BCD : process ( c lk , r e s e t ) −−Contador BCD min/ segbegin

i f r e s e t = ’1 ’ thenu seg <=0;d seg <=0;u min <=0;d min <=0;

e l s i f c lk ’ event and c l k = ’1 ’ theni f enableO 1Hz = ’1 ’ then

i f u seg=9 then −−unidades de segundou seg <=0;i f d seg=5 then −−decenas de segundo

d seg <=0;i f u min=9 then −−unidades de minuto

u min<=0;i f d min=5 then −−decenas de minuto

d min<=0;else

d min<=d min+1;end i f ;

elseu min<=u min+1;

end i f ;else

d seg<=d seg +1;end i f ;

Marıa Caro Chinchilla 69

7 ANEXOS

elseu seg<= u seg +1;

end i f ;end i f ;

end i f ;end process ;

f r eqd iv 2kHz : process ( c lk , r e s e t ) −−d i v i s o r de f r e c u e n c i a de 2kHzbegin

i f r e s e t = ’1 ’ thencnt 2kHz <= 0 ;

e l s i f c lk ’ event and c l k = ’1 ’ theni f enableI 2kHz= ’1 ’ then

i f cnt 2kHz = CUENTA 2kHz−1 thencnt 2kHz <= 0 ;

elsecnt 2kHz <= cnt 2kHz + 1 ;

end i f ;end i f ;

end i f ;end process ;

enableI 2kHz <= ’ 1 ’ ;enableO 2kHz <= ’1 ’ when cnt 2kHz = CUENTA 2kHz−1and enableI 2kHz = ’1 ’ else ’ 0 ’ ;

c o n t 2 b i t s : process ( c lk , r e s e t )i f r e s e t = ’1 ’ thenb i t s <=0;e l s i f c lk ’ event and c l k = ’1 ’ then

i f enableO 2kHz = ’1 ’ theni f b i t s=3 then

b i t s <=0;else b i t s<= b i t s +1;end i f ;

end i f ;end i f ;

end process ;

with b i t s selectsalidamux<= u seg when 0 ,

d seg when 1 ,u min when 2 ,

70 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

d min when 3 ,0 when others ;

with b i t s selects e l e c t o r <= ”0001” when 0 ,

”0010” when 1 ,”0100” when 2 ,”1000” when 3 ,”−−−−” when others ;

with sal idamux selectsegmentos <= ”0000001” when 0 , −−0

”1001111” when 1 , −−1”0010010” when 2 , −−2”0000110” when 3 , −−3”1001100” when 4 , −−4”0100100” when 5 , −−5”0100000” when 6 , −−6”0001111” when 7 , −−7”0000000” when 8 , −−8”0000100” when 9 , −−9”−−−−−−−” when others ;

end behav io ra l ;

Codigo practica 2

library IEEE ;use IEEE . STD LOGIC 1164 .ALL;use i e e e . numer ic std . a l l ;

entity TOP2 i sport (

c l k : in s t d l o g i c ;r e s e t : in s t d l o g i c ;

s e l e c t o r : out s t d l o g i c v e c t o r (7 downto 0 ) ;boton : in s t d l o g i c

) ;end TOP2;

Marıa Caro Chinchilla 71

7 ANEXOS

architecture Behaviora l TOP2 i s

constant CUENTA 14Hz : i n t e g e r := (125∗10∗∗6)/14 ;signal enableI 14Hz : s t d l o g i c ;signal enableO 14Hz : s t d l o g i c ;signal cnt 14Hz : i n t e g e r range 0 to CUENTA 14Hz−1;signal s en t ido : i n t e g e r range 0 to 1 ;signal b i t s : i n t e g e r range 0 to 7 ;signal aux : i n t e g e r range 0 to 1 ;signal enable : i n t e g e r range 0 to 1 ;

begin

f r eqd iv 14Hz : process ( c lk , r e s e t )begin

i f r e s e t = ’1 ’ thencnt 14Hz <= 0 ;

e l s i f c lk ’ event and c l k = ’1 ’ theni f enableI 14Hz= ’1 ’ then

i f cnt 14Hz = CUENTA 14Hz−1 thencnt 14Hz <= 0 ;

elsecnt 14Hz <= cnt 14Hz + 1 ;

end i f ;end i f ;

end i f ;end process ;

enableI 14Hz <= ’ 1 ’ ;enableO 14Hz <= ’1 ’ when cnt 14Hz = CUENTA 14Hz−1and enableI 14Hz = ’1 ’ else ’ 0 ’ ;

c o n t 2 b i t s : process ( c lk , r e s e t )begin

i f r e s e t = ’1 ’ thenb i t s <=0;s en t ido <= 0 ;

e l s i f c lk ’ event and c l k = ’1 ’ theni f enable=1 then

i f enableO 14Hz = ’1 ’ theni f b i t s=1 then

sent ido <=0;e l s i f b i t s=6 then

sent ido <=1;

72 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

end i f ;i f s en t ido=0 then

b i t s<=b i t s +1;else

b i t s<=bi t s −1;end i f ;

end i f ;end i f ;

end i f ;

end process ;

comienzo : process ( c lk , r e s e t )begin

i f r e s e t = ’1 ’ thenaux<=0;

e l s i f c lk ’ event and c l k = ’1 ’ theni f boton = ’1 ’ then

i f aux<=0 thenenable <=1;aux<=1;

end i f ;end i f ;

end i f ;

end process ;

with b i t s selects e l e c t o r <= ” 00000001 ” when 0 , −−0

” 00000010 ” when 1 , −−1” 00000100 ” when 2 , −−2” 00001000 ” when 3 , −−3” 00010000 ” when 4 , −−4” 00100000 ” when 5 , −−5” 01000000 ” when 6 , −−6” 10000000 ” when 7 , −−7”−−−−−−−−” when others ;

end Behaviora l ;

Codigo practica 3

Marıa Caro Chinchilla 73

7 ANEXOS

l ibrary IEEE ;use IEEE . STD LOGIC 1164 .ALL;

entity TOP p3 i sport (

c l k : in s t d l o g i c ;r e s e t : in s t d l o g i c ;Boton B : in s t d l o g i c ;Boton A : in s t d l o g i c ;l ed : out s t d l o g i c) ;

end TOP p3 ;

architecture behav io ra l of TOP p3 i s

component a n t i r r e b o t e i sport (

c l k : in s t d l o g i c ;r e s e t : in s t d l o g i c ;boton : in s t d l o g i c ;f i l t r a d o : out s t d l o g i c

) ;end component ;

signal A: s t d l o g i c ;signal B: s t d l o g i c ;

type e s tados i s ( S00 , A1B1 , A1B0 , A2B0 , A0B1 , A2B1 , A0B2 , A1B2 , A2B2 ) ;signal miestado : e s tados ;

begin

b a i n s t : a n t i r r e b o t eport map(

c l k => c lk ,r e s e t => r e s e t ,boton => Boton A ,f i l t r a d o=>A

) ;

b b i n s t : a n t i r r e b o t eport map(

74 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

c l k => c lk ,r e s e t => r e s e t ,boton => Boton B ,f i l t r a d o=>B

) ;

fsm : process ( c lk , r e s e t )begini f r e s e t = ’1 ’ then miestado <= S00 ;

e l s i f c lk ’ event and c l k= ’1 ’ then

case miestado i swhen S00=>

i f A= ’1 ’ then miestado<=A1B0 ;e l s i f B= ’1 ’ then miestado<=A0B1 ;end i f ;

when A1B0=>i f A= ’1 ’ then miestado<=A2B0 ;e l s i f B= ’1 ’ then miestado<=A1B1 ;end i f ;

when A2B0=>i f B= ’1 ’ then miestado<=A2B1 ;end i f ;

when A0B1=>i f A= ’1 ’ then miestado<=A1B1 ;e l s i f B= ’1 ’ then miestado<=A0B2 ;end i f ;

when A1B1=>i f A= ’1 ’ then miestado<=A2B1 ;e l s i f B= ’1 ’ then miestado<=A1B2 ;end i f ;

when A2B1=>i f B= ’1 ’ then miestado<=A2B2 ;end i f ;

when A0B2=>i f A= ’1 ’ then miestado<=A1B2 ;

Marıa Caro Chinchilla 75

7 ANEXOS

end i f ;

when A1B2=>i f A= ’1 ’ then miestado<=A2B2 ;end i f ;

when A2B2=>

end case ;end i f ;end process ;

l ed <=’1’ when miestado=A2B2 else ’ 0 ’ ;

end Behaviora l ;

l ibrary IEEE ;use IEEE . STD LOGIC 1164 .ALL;

use IEEE .NUMERIC STD.ALL;

entity a n t i r r e b o t e i sport (

c l k : in s t d l o g i c ;r e s e t : in s t d l o g i c ;boton : in s t d l o g i c ;f i l t r a d o : out s t d l o g i c

) ;end a n t i r r e b o t e ;

architecture Behaviora l of a n t i r r e b o t e i s

constant CUENTA : i n t e g e r := 1250000;signal cnt : i n t e g e r range 0 to CUENTA−1;

−−maquina de e s t a d o stype s t a t e t i s (S NADA, S BOTON) ;signal s t a t e : s t a t e t ;signal bf : s t d l o g i c ;signal bs : s t d l o g i c ;signal t : s t d l o g i c ;signal e : s t d l o g i c ;

76 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

−−b i e s t a b l e s primero y segundosignal b 1 : s t d l o g i c ;signal b 2 : s t d l o g i c ;

begin

−−maquina de e s t a d o sprocess ( c lk , r e s e t )

begini f r e s e t = ’1 ’ then

s t a t e <= S NADA;e l s i f c lk ’ event and c l k = ’1 ’ then

case s t a t e i swhen S NADA =>

i f bf = ’1 ’ thens t a t e <= S BOTON;

end i f ;when S BOTON =>

i f t = ’1 ’ thens t a t e <= S NADA;

end i f ;end case ;

end i f ;end process ;

e<=’1’ when s t a t e = S BOTON else ’ 0 ’ ;f i l t r a d o <=’1’ when s t a t e = S BOTON and ( t = ’1 ’ and bs = ’1 ’) else ’ 0 ’ ;

−−s i n c r o n i z a d o r y d e t e c t o r de f l a n c o s

process ( c l k , r e s e t )begin

i f r e s e t = ’1 ’ thenb 1 <= ’0 ’;bs <= ’ 0 ’ ;b 2<= ’ 0 ’ ;

e l s i f c lk ’ event and c l k = ’1 ’ thenb 1<= boton ;bs <= b 1 ;b 2 <= bs ;

Marıa Caro Chinchilla 77

7 ANEXOS

end i f ;end process ;

b f <= not ( b 2 ) AND bs ;

−− temporizador

process ( c l k , r e s e t )begin

i f r e s e t = ’1 ’ then cnt<=0;e l s i f c lk ’ event and c l k = ’1 ’ then

i f e = ’1 ’ theni f cnt=CUENTA−1 then

cnt<=0;else cnt <= cnt +1;end i f ;

end i f ;end i f ;

end process ;

t<=’1’ when e = ’1 ’ and cnt = CUENTA−1 else ’ 0 ’ ;

end Behaviora l ;

l ibrary IEEE ;use IEEE . STD LOGIC 1164 .ALL;

use IEEE .NUMERIC STD.ALL;

entity a n t i r r e b o t e i sport (

c l k : in s t d l o g i c ;r e s e t : in s t d l o g i c ;boton : in s t d l o g i c ;f i l t r a d o : out s t d l o g i c

) ;end a n t i r r e b o t e ;

architecture Behaviora l of a n t i r r e b o t e i s

constant CUENTA : i n t e g e r := 1250000;signal cnt : i n t e g e r range 0 to CUENTA−1;

78 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

−−maquina de e s t a d o stype s t a t e t i s (S NADA, S BOTON) ;signal s t a t e : s t a t e t ;signal bf : s t d l o g i c ;signal bs : s t d l o g i c ;signal t : s t d l o g i c ;signal e : s t d l o g i c ;

−−b i e s t a b l e s primero y segundosignal b 1 : s t d l o g i c ;signal b 2 : s t d l o g i c ;

begin

−−maquina de e s t a d o sprocess ( c lk , r e s e t )

begini f r e s e t = ’1 ’ then

s t a t e <= S NADA;e l s i f c lk ’ event and c l k = ’1 ’ then

case s t a t e i swhen S NADA =>

i f bf = ’1 ’ thens t a t e <= S BOTON;

end i f ;when S BOTON =>

i f t = ’1 ’ thens t a t e <= S NADA;

end i f ;end case ;

end i f ;end process ;

e<=’1’ when s t a t e = S BOTON else ’ 0 ’ ;f i l t r a d o <=’1’ when s t a t e = S BOTON and ( t = ’1 ’ and bs = ’1 ’) else ’ 0 ’ ;

−−s i n c r o n i z a d o r y d e t e c t o r de f l a n c o s

process ( c l k , r e s e t )begin

i f r e s e t = ’1 ’ then

Marıa Caro Chinchilla 79

7 ANEXOS

b 1 <= ’0 ’;bs <= ’ 0 ’ ;b 2<= ’ 0 ’ ;

e l s i f c lk ’ event and c l k = ’1 ’ thenb 1<= boton ;bs <= b 1 ;b 2 <= bs ;

end i f ;end process ;

b f <= not ( b 2 ) AND bs ;

−− temporizador

process ( c l k , r e s e t )begin

i f r e s e t = ’1 ’ then cnt<=0;e l s i f c lk ’ event and c l k = ’1 ’ then

i f e = ’1 ’ theni f cnt=CUENTA−1 then

cnt<=0;else cnt <= cnt +1;end i f ;

end i f ;end i f ;

end process ;

t<=’1’ when e = ’1 ’ and cnt = CUENTA−1 else ’ 0 ’ ;

end Behaviora l ;

80 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

BIBLIOGRAFIA

[1] Altium. ‘PCB Desing Rules Reference’. In: (2017).

[2] Arduino. Arduino 4 Relays Shield. https://store.arduino.cc/arduino-4-relays-shield.

[3] Arduino. Arduino GSM Shield. https://www.arduino.cc/en/Guide/ArduinoGSMShield.

[4] Arduino. Arduino GSM Shield 2. https://store.arduino.cc/arduino-gsm-shield-2-integrated-antenna.

[5] Arduino. ¿Que es Arduino? https://arduino.cl/que-es-arduino/.

[6] Arduino. Shields para Arduino. https://store.arduino.cc/arduino-ethernet-shield-2. 2017.

[7] Arduino Open Source Comunity. Shield para Arduino. https://aprendiendoarduino.wordpress.com/2015/03/23/shields-para-arduino/.

[8] Dhgate. Arduino UNO R3 Junta ATmega328 ATmega8U2 con el cable USB. https://es.dhgate.com/product/2012-new-arduino-uno-r3-board-atmega328-

atmega8u2/155916748.html.

[9] Digilent. Basys 2 Reference Manual. https://reference.digilentinc.com/reference/programmable-logic/basys-2/reference-manual.

[10] Digilent. PYNQ-Z1: Python Productivity for Zynq-7000 ARM/FPGA SoC. https://store.digilentinc.com/pynq-z1-python-productivity-for-zynq-7000-

arm-fpga-soc/.

[11] Digilent. PYNQ-Z1 Reference Manual. https://reference.digilentinc.com/reference/programmable-logic/pynq-z1/start.

[12] Centronic-Componentes Electronicos. Arduino shields. https:cetroniconline.blogspot.com/2015/05/arduino-shields.html. 2015.

[13] MC Electronics. Diseno y fabricacion de circuitos impresos Altium Designer. https://issuu.com/mcelectronics/docs/libro_issue. 2013.

[14] Mouser Electronics. LDQ-M286RI Hoja de datos. https://www.mouser.es/

datasheet/2/244/LDQ-M286RI-1135754.pdf.

[15] IFC Corporacion Internacional Financiera. ‘Guıas sobre medio ambiente, salud yseguridad para la fabricacion de semiconductores y otros componentes electronicos’.In: (2007).

81

BIBLIOGRAFIA

[16] Robert Antoni Buj Gelonch. Procedimiento de diseno de circuitos digitales me-diante FPGAs. https://repositori.udl.cat/bitstream/handle/10459.1/45767/Buj.pdf?sequence=1&isAllowed=. 2007.

[17] Marıa Freire Hermelo. Herramientas de sıntesis de alto nivel para FPGAs: Unanueva revolucion. https://www.gradiant.org/noticia/herramientas- de-sintesis-de-alto-nivel-para-fpgas-una-nueva-revolucion-2/. 2013.

[18] National Instruments. Las Ventajas de los Dispositivos FPGA de la Serie 7 deXilinx. https:ttp://www.ni.com/white-paper/14583/es/. 2014.

[19] Inydel. Fabricacion, montaje y puesta en marcha. http : / / www . inydel . es /

Fabricaci\%C3\%B3n_y_montaje.html.

[20] M.L. Lopez Vallejo y J. L. Ayala Rodrigo. ‘FPGA:Nociones basicas e imple-mentacion’. In: (2004).

[21] David G. Maxinez Jessica Alcala Jara. VHDL El arte de programar sistemas di-gitales. https://es.slideshare.net/LuiiRivas/vhdl-27983666. 2002.

[22] PCBway. Prototipos de PCB de forma sencilla. https://www.pcbway.es/pcb_prototype/.

[23] Pololu. A4988 Stepper Motor Driver Carrier. https://www.pololu.com/product/1182.

[24] Eduardo Boemo Scalvinoni. ESTADO DEL ARTE DE LA TECNOLOGIA FPGA.https://docplayer.es/10812141-Estado-del-arte-de-la-tecnologia-

fpga.html.

[25] DIE UPM. Practica 3- Cerradura electronica. 2017.

[26] Francisco Javier Torres Valle. Lenguaje de descripcion Hardware. https:https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=11&ved=

2ahUKEwipvc6485LgAhXHz4UKHcBICfE4ChAWMAB6BAgKEAI&url=https\%3A\%2F\

%2Fwww.todopic.com.ar\%2Fforos\%2Findex.php\%3Faction\%3Ddlattach\

%3Btopic\%3D6778.0\%3Battach\%3D239&usg=AOvVaw3jAvtZZNZ402ELKGB2IIbO.

[27] Peter J. Vis. Raspberry Pi CSI Interface. https://www.petervis.com/Raspberry_PI/Raspberry_Pi_CSI/raspberry-pi-csi-interface-connector-pinout.

html.

[28] Wikipedia. Placa de circuito impreso. https : / / es . wikipedia . org / wiki /

Circuito_impreso.

[29] Wikipedia. VHDL. https://https://es.wikipedia.org/wiki/VHDL.

[30] Xilinx. 7 Series FPGAs DataSheet. https://www.xilinx.com/support/documentation/data_sheets/ds180_7Series_Overview.pdf. 2018.

[31] Xilinx. Accelerating Implementation. https : / / www . xilinx . com / products /

design-tools/vivado/implementation.html.

[32] Xilinx. Artix-7. https://www.xilinx.com/support/documentation/product-briefs/artix7-product-brief.pdf.

82 Escuela Tecnica Superior de Ingenieros Industriales (UPM)

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

[33] Xilinx. Kintex-7 FPGAs.

[34] Xilinx. Spartan 3 Started Kit Board. https : / / www . xilinx . com / support /

documentation/boards_and_kits/ug130.pdf.

[35] Xilinx. The Xilinx Virtex-7 family. https://www.xilinx.com/support/documentation/product-briefs/virtex7-product-brief.pdf.

[36] Xilinx. Vivado Design Suite User Guide, High-Level Synthesis. https://www.

xilinx.com/support/documentation/sw_manuals/xilinx2017_4/ug902-

vivado-high-level-synthesis.pdf. 2018.

Marıa Caro Chinchilla 83

INDICE DE FIGURAS

1.1 Distribucion estandar de Arduino. Fuente [7] . . . . . . . . . . . . . . . . 15

2.1 Arquitectura interna basica de una FPGA. Fuente [21] . . . . . . . . . . . 18

2.2 Cuota de mercado. Fuente [24] . . . . . . . . . . . . . . . . . . . . . . . . 20

2.3 Comparacion de familia Serie 7. Fuente [30] . . . . . . . . . . . . . . . . . 21

2.4 Familia Virtex-7. Fuente [35] . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.5 Familia Kintex 7. Fuente [33] . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.6 Familia Artix 7. Fuente [32] . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.7 Spartan 3 Starter Kit Board. Fuente [34] . . . . . . . . . . . . . . . . . . 25

2.8 Basys 2. Fuente [9] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.9 PYNQ-Z1. Fuente [10] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.10 Flujo de diseno en HDL. Fuente [24] . . . . . . . . . . . . . . . . . . . . . 28

2.11 Comparacion tiempo compilacion ISE con Vivado. Fuente [18] . . . . . . 30

2.12 Flujo de diseno Vivado HLS. Fuente [36] . . . . . . . . . . . . . . . . . . . 32

3.1 PYNQ-Z1. Fuente [11] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.2 Conectores de expansion de PYNQ-Z1. Fuente [11] . . . . . . . . . . . . . 34

3.3 7 segmentos. Fuente [14] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

3.4 Control de las senales del display. Fuente [14] . . . . . . . . . . . . . . . . 36

3.5 Conexiones A4988. Fuente [23] . . . . . . . . . . . . . . . . . . . . . . . . 38

3.6 Representacion para esquematicos de componentes creados. Fuente propia 41

3.7 Esquematico. Fuente propia . . . . . . . . . . . . . . . . . . . . . . . . . . 42

3.8 Esquematico. Fuente propia . . . . . . . . . . . . . . . . . . . . . . . . . . 43

3.9 PCB de una sola capa. Fuente [22] . . . . . . . . . . . . . . . . . . . . . . 45

3.10 PCB de doble capa. Fuente [22] . . . . . . . . . . . . . . . . . . . . . . . . 45

3.11 PCB multicapa. Fuente [19] . . . . . . . . . . . . . . . . . . . . . . . . . . 46

3.12 Ejemplo de configuracion de reglas. Fuente [1] . . . . . . . . . . . . . . . . 47

3.13 Esquema de distribucion de pines, distancias y dimensiones. Fuente [8] . . 48

3.14 PCB con ambas capas visibles. Fuente propia . . . . . . . . . . . . . . . . 52

3.15 PCB cara superior. Fuente propia . . . . . . . . . . . . . . . . . . . . . . 52

3.16 PCB cara inferior. Fuente propia . . . . . . . . . . . . . . . . . . . . . . . 53

3.17 PCB vista final. Fuente propia . . . . . . . . . . . . . . . . . . . . . . . . 53

4.1 Archivo XDC. Fuente propia . . . . . . . . . . . . . . . . . . . . . . . . . 55

4.2 Maquina de estados antirrebotes. Fuente [25] . . . . . . . . . . . . . . . . 58

4.3 Maquina de estados cerradura electronica. Fuente propia . . . . . . . . . . 58

84

Diseno, implementacion y validacion de una shield para la tarjeta de desarrollo desistemas embebidos PYNQ-Z1

4.4 Testbench de divisor de frecuencia. Fuente propia . . . . . . . . . . . . . . 594.5 Testbench practica 2. Fuente propia . . . . . . . . . . . . . . . . . . . . . 594.6 Testbench practica 3. Fuente propia . . . . . . . . . . . . . . . . . . . . . 594.7 Shield en funcionamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . 604.8 Placa PYNQ Z1 con shield acoplada en la Division de Ingenierıa Electronica 60

6.1 Presupuesto total. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 656.2 EDP. Fuente propia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

Marıa Caro Chinchilla 85

INDICE DE TABLAS

3.1 Listado de zocalos y numero de pines. . . . . . . . . . . . . . . . . . . . . 343.2 Listado de componentes por placa. . . . . . . . . . . . . . . . . . . . . . . 39

6.1 Presupuesto empleado en el proyecto. . . . . . . . . . . . . . . . . . . . . 646.2 Presupuesto completo de una shield completa. . . . . . . . . . . . . . . . . 65

86


Recommended