Академический Документы
Профессиональный Документы
Культура Документы
Temas:
1. Introducción
2. Presentación
3. Objetivos generales y específicos
4. Justificación
5. Antecedentes
6. Metodología
7. Marco teórico
7.1- electricidad
7.2- desarrollo sustentable
7.3- innovación
7.4- electrónica digita
7.5- Control eléctrico.
7.6- ¿Que es un relevador?
7.7- Ventilador centrífugo
8. Diseño del prototipo.
9. Lista de materiales y presupuesto.
10. Manual de usuario
11. Conclusión
¿Para qué se utiliza?
12. Referencias bibliográficas
1- Introducción
Los FPGAs se han vuelto más y más populares en los últimos tiempos. Incluso para
aplicaciones profesionales se suelen usar estos chips, pero también para DIY y makers
que quieren implementar un circuito discreto dentro de un chips con todas las ventajas que
esto implica. No es barato ni fácil encontrar una fabrica para enviar tus layouts o patrones y
que te fabriquen un chip a medida.
Una solución alternativa a eso es adquirir un FPGA y programar lo que quiera que sea
lo que necesites implementar dentro del chip…
2- Presentación
Ross Freeman y Bernard Vonderschmitt, cofundadores de Xilinx, fueron los que inventaron
el FPGA en 1984. Lo hicieron como evolución a los chips CPLD de aquella época. Los
chips programables CPLD tenían unas carencias que resolvieron los nuevos diseños FPGA
y desde entonces han venido evolucionando hasta la fecha.
El mercado de FPGAs es tan fructífero que compañías como Intel, Xilinx, Altera, Quick
Logic, Lattice, etc., han invertido mucho para desarrollar mejores FPGAs y también
entornos de programación integrados o IDEs para ellos. Aportando así plataformas muy
buenas para facilitar la tarea de los desarrolladores o makers.
Actualmente esos fabricantes no solo aportan un chip programable, sino que también
incluyen numerosos elementos auxiliares para aportar más posibilidades a los
desarrolladores. Por ejemplo, incluyen celdas de memoria flash, celdas de memoria
SDRAM, etc.
6.- METODOLOGÍA
]
7.- MARCO TEORICO
Para entender el proyecto que se acaba de explicar anteriormente, se
necesitan conocimientos previos sobre Electricidad, Desarrollo sustentable,
Innovación y Electrónica Digital. A continuación, se le explicara previamente
cada uno de los puntos ya mencionados para así entender y analizar un poco
más de este proyecto dicho a realizar.
7.1- ELECTRICIDAD
La electricidad es un conjunto de
fenómenos producidos por el
movimiento e interacción entre las
cargas eléctricas positivas y negativas
de los cuerpos físicos.
La palabra "electricidad" procede del
latín electrum, y a su vez del
griego élektron, o ámbar. La
referencia al ámbar proviene de un
descubrimiento registrado por el
científico francés Charles François de
Cisternay du Fay, que identificó la
existencia de dos tipos de cargas eléctricas (positiva y negativa). Las cargas
positivas se manifestaban al frotar el vidrio, y las negativas al frotar sustancias
resinosas como el ámbar.
7.3- INNOVACIÓN
Innovación es un cambio que introduce novedades, y que se refiere a
modificar elementos ya existentes con el fin de mejorarlos o renovarlos. Este
término proviene del latín "innovatio" que significa "Crear algo nuevo", y está
formada por el prefijo "in-" (que significa "estar en") y por el concepto "novus"
(que significa "nuevo"). Además, en el uso coloquial y general, el concepto se
utiliza de manera específica en el sentido de nuevas propuestas,
nuevos inventos y sus implementaciones económico-sociales.
En el sentido estricto, en cambio, se dice que de las ideas solo pueden
resultar innovaciones luego de que ellas se implementan como nuevos
productos, servicios, o procedimientos, que realmente encuentran una
aplicación exitosa, imponiéndose en el mercado a través de la difusión.1
Hay una forma de innovación consistente en la mejora de la gestión
empresarial con nuevos procedimientos, utilización de una tecnología,
automatización, mejorando la calidad, definiendo nuevas formas de satisfacer
al cliente, son sólo algunas ideas de lo que puede ser y conseguir la
innovación y ayuda a las empresas a crecer y ser más competitivas. 2
En economía, Joseph Schumpeter fue quien introdujo este concepto en su
«teoría de las innovaciones»,3 en la que lo define como el establecimiento de
una nueva función de producción. La economía y la sociedad cambian cuando
los factores de producción se combinan de una manera novedosa. Sugiere
que invenciones e innovaciones son la clave del crecimiento económico, y
quienes implementan ese cambio de manera práctica en los emprendedores.
La innovación es un factor clave para el desarrollo empresarial y
el crecimiento económico de los países, siendo aquellos que más invierten en
investigación e innovación los que más riqueza alcanzan.
También se utiliza el concepto de innovación en las ciencias humanas y en
la cultura. La búsqueda a través de la investigación de nuevos conocimientos,
las soluciones o vías de solución, suponen curiosidad y placer por la
renovación. Los conceptos de vanguardia y creatividad se hacen relevantes
en este contexto.
7.5- SIMULACIÓN.
Xilinx
La herramienta Xilinx-ISE (Integrated Software Environment) es una herramienta de diseño de
circuitos profesional que nos va a permitir, entre otras funciones, la realización de
esquemáticos y su posterior simulación
En este tutorial se va a utilizar concretamente:
Entorno ISE: donde se realizará el diseño del circuito, bien mediante un esquemático
o utilizando un lenguaje específico de diseño
Z BD ABCD ACD
• 1 puerta OR de 3 entradas
• 1 puerta AND de 2 entradas
• 1 puerta AND de 3 entradas
• 1 puerta AND de 4 entradas
• 3 inversores para generar las líneas negadas de A, B y D.
Fig. 1
1. Creación de un nuevo proyecto
Fig. 2
Tutorial Xilinx-ISE
Fig. 5
Fig. 6
Tutorial Xilinx-ISE
Fig. 7
11
1. Realización del esquemático del circuito
1.1. Componentes
Lo primero será fijar las puertas necesarias para la
realización del circuito. En el menú de la parte
izquierda superior de la herramienta (figura 8)
puede verse una parte llamada Categories, donde
se muestra una clasificación de las distintas
categorías de componentes.
Seleccionando cualquiera de ellas puede verse en
la ventana inmediatamente inferior, Symbols, las
puertas y componentes que forman la categoría
seleccionada. Si se selecciona <All Symbols> podrá
tenerse un listado de todos los componentes
pertenecientes a la biblioteca de componentes
Para poder obtener las puertas lógicas necesarias,
habrá que seleccionar <All Symbols> o Logic en la
ventana de Categories, y una vez en Symbols,
coger:
• and2: puerta AND de 2 entradas
• and3: puerta AND de 3 entradas
• and4: puerta AND de 4 entradas Fig. 8
• or3: puerta OR de 3 entradas
• inv: inversor (se necesitarán 3)
2. Realización del esquemático del circuito
2.1. Componentes
Si se desea rotar un componente puede hacerse empleando la opción
inferior del mismo menú, Orientation, y utilizando el menú desplegable
elegir la orientación deseada
Para eliminar un componente del editor de esquemáticos simplemente hay
que seleccionarlo y pulsar la tecla Supr. Asimismo, para mover un
componente bastará con seleccionarlo y arrastrarlo hasta el lugar
deseado mientras se mantiene pulsado el botón izquierdo del ratón
Tras la elección de las puertas necesarias, el editor de esquemáticos
muestra la apariencia de la figura 9
Se recomienda salvar el esquemático a menudo, para evitar posibles
problemas. Ello puede hacerse desde File Save As o pulsando el
icono
Fig. 9
2. Realización del esquemático del circuito
2.2. Conexionado
El siguiente paso será realizar las uniones entre las distintas puertas. Ello
puede hacerse desde el menú principal del editor de esquemáticos:
Add Wire, o pulsando el símbolo . El cursor se transformará en una
cruz. Tendremos que pulsar con el botón izquierdo del ratón los dos
extremos para que queden unidos por un cable
Si queremos unir una entrada o salida de un componente y dejar el otro
lado del cable “al aire” tendremos que hacer un doble click con el botón
izquierdo del ratón para indicar que el extremo final va suelto
El aspecto que ofrece el circuito en este momento, y tras hacer un zoom
para tener una mejor visión, es el mostrado en la figura 10. Se añade,
para mejor comprensión, y utilizando flechas auxiliares (que no forman
parte del diseño) a qué entrada o salida corresponde cada cable.
D
C
B Fig. 10
A
2. Realización del esquemático del circuito
Fig. 12
Fig. 13
3. Creación de un
símbolo
Con el esquema realizado se puede hacer un nuevo componente o
símbolo consistente en una especie de “caja negra”, donde el usuario
sólo verá un bloque con el mismo número de entradas y de salidas
que el esquema original, que englobará a éste y realizará su misma
función
Este símbolo que se crea pasa a formar parte de la biblioteca de
componentes del proyecto, y podrá utilizarse como un componente
más
Para crearlo: ToolsSymbol Wizard desde el menú principal. Aparece
entonces la ventana de la figura 14, donde hay que indicar que el
símbolo se crea a partir del esquemático ya realizado (opción Using
Schematic con el esquemático “circuito”)
3. Creación de un símbolo
Fig. 14
3. Creación de un símbolo
Fig. 15
3. Creación de un
símbolo
4. Simulación
Fig. 16
4. Simulación
Fig. 17
4. Simulación
La opción Check Outputs define cuándo deberían estar ya en su valor
correcto las salidas tras un cambio en las entradas. La opción Assign
Inputs define el tiempo que pasa desde que se comprueban las salidas
hasta que se asigna un nuevo valor a las entradas
Para este tutorial no cambiaremos ninguna de las especificaciones por
defecto salvo la de Initial Length of Test Bench, que pondremos a
1600 ns (cada paso lleva 100 ns y así podremos probar las 16
opciones de la tabla de verdad inicial). Por tanto, las especificaciones
quedarán finalmente:
– Check Outputs: 50 ns
– Assign Inputs: 50 ns
– Initial Length of Test Bench: 1600 ns
En la ventana Initialize Timing presionaremos OK para aceptar las
especificaciones por defecto. Aparecerá entonces la ventana
correspondiente al banco de pruebas que se utilizará para la
simulación (figura 18)
4. Simulación
Fig. 18
4. Simulación
4.2. Inicialización de las entradas del circuito
En la nueva ventana del banco de pruebas (figura 18) aparece un
cronograma donde habrá que introducir los estímulos (ceros o unos)
correspondientes a las entradas para poder reproducir la tabla de la
verdad del circuito diseñado
Aparecen, en la parte izquierda, las señales de las cuatro entradas y la
salida. Inicialmente, todas las entradas se encuentran a cero
Es necesario inicializar las entradas con los valores adecuados para
poder comprobar el correcto funcionamiento del circuito. Los estímulos
(ceros o unos) se introducirán pinchando en la zona azul de cada
celda
Para reproducir la tabla de verdad en el mismo orden, la entrada A
permanece 8 ciclos a “0” y otros 8 a “1”. La entrada B cambia de 0 a 1
cada 4 ciclos de reloj, la entrada C realiza el cambio cada 2 ciclos de
reloj y, por último, la entrada D cambia continuamente de 0 a 1
Los cambios se irán reflejando según se vayan introduciendo
en el cronograma
4. Simulación
4. Simulación
Fig. 19
4. Simulación
Simulación del comportamiento del circuito
Fig. 20
4. Simulación
Al arrancar el programa ModelSim aparece la ventana ModelSim SE,
se ejecuta la simulación y aparecen una serie de ventanas
embebidas en la principal (ver figura 21)
Estructura
del diseño
simulado
(workspace) Formas de
onda
simuladas
(wave)
Señales en
el nivel
seleccionado
de la
estructura
(objects) Fig. 21
4. Simulación
35
4. Simulación
En la ventana wave-default, habrá que hacer un zoom para poder visualizar la
salida del circuito. Presionar Zoom Zoom Full y Zoom
Zoom In. El resultado de la simulación debería ser como el mostrado en la
figura 22
Fig. 22
4. Simulación
Para una comprobación más fácil del correcto funcionamiento del
circuito y puesto que las entradas recorren todos los posibles
estados (0, 1, 2... 15) sería bueno poder reunir las entradas
individuales en una, bajo la forma de un vector, y que así nos
mostrara los estados por los que van pasando las combinaciones de
las señales a las que representa
Para ello, seleccionamos las entradas del circuito en la ventana wave-
default pulsando el botón izquierdo del ratón y las teclas shift o ctrl,
con lo que aparecerán en el interior de un recuadro blanco:
Fig. 23
4. Simulación
Con las señales que se vayan a combinar ya seleccionadas, se utiliza
la opción de menú Wave Combine Signals…:
4. Simulación
Fig. 24
Fig. 25
39
10.- Conclusión
¿Cómo se programa?
Para programar un FPGA lo podemos hacer desde nuestro sistema operativo favorito,
como GNU/Linux, Windows y MacOS, aunque ciertamente existen más entornos de
desarollo para Windows. Por lo general, las mismas compañías que fabrican el FPGA
ofrecen un IDE muy completo con el que trabajar y donde encontrar todas las
herramientas que necesitas en una misma suit de software.
Solo que en el caso del FPGA lo que tenemos es una matriz o array de componentes
elementales como celdas de memoria, compuertas AND, OR, NOT, Flip-flops, y
otros elementos o bloques básicos de electrónica digital que podemos usar. Con el
programa escrito lo que vamos a hacer es imponer la forma en que esos bloques
esenciales se van a agrupar para formar el cirucito que queremos, como por ejemplo una
ALU.
Siguiendo con el tema de la programación, una vez que sabemos que se puede escribir
código como lo haríamos en Arduino IDE o para desarrollar cualquier otro programa, y de
ver cómo se hace a nivel de hardware, diré que realmente no se trata de una programación
como tal. Más bien es una descripción de hardware. De hecho se usan lenguajes de
descripción de hardware como es VHDL, Verilog, etc.
Con ese programa se describe a nivel lógico lo que hace el cirucito que queremos
implementar. Y luego se pasa al FPGA. Aunque es verdad que algunas plataformas
permiten programación en lenguajes de programación como C para poder implementar una
CPU en el FPGA y luego generar programas para cargar en una memoria y ser procesadas
por dicho procesador.
Los FPGAs suelen usarse por separado, pero es cierto que existen multitud de
herramientas y kits en el mercado que te facilitarán la vida para poder integrar tu FPGA
con la plataforma Arduino. Un ejemplo de placa para llevar FPGA a tus proyectos con
Arduino es MKR Vidor 4000, aunque hay otras.
MKR Vidor 4000 es una placa con tres chips. Uno de ellos es un FPGA, concretamente un
Intel Cyclone 10. También hay otros chips para conectividad Bluetooth LE o de bajo
consumo y también compatibilidad WiFi. Un buen complemento para dotar a tu Arduino de
funcionalidades de conectividad y poder implementar lo que necesites en el FPGA.
Con ello tienes un hardware personalizable, configurado por ti mismo para el propósito
que quieras. Eso ofrece infinitas posibilidades.
Referencias bibliográficas:
https://www.hwlibre.com/fpga/
https://www.marca.com/claro-mx/trending/2020/05/30/5ed29185e2704e93a88b45e3.html
https://www.uv.es/rosado/courses/dcse/prac1_ISE_VHDL1.pdf
https://www.xilinx.com/video/hardware/ise-tools-for-spartan-6-fpga-on-windows-10.html
https://emagcas.webs.ull.es/index_archivos/apuntes_sed/mux2a1_tutorial.pdf