Documentos de Académico
Documentos de Profesional
Documentos de Cultura
digitales y metodologías de diseño y análisis de sistemas Además de todo esto, el fabricante proporciona datos
combinacionales y secuenciales (mediante sobre la placa, tales como el pinout, el PCF (fichero
implementaciones y evaluaciones sencillas en una donde aparecen los pines restringidos de la placa y su
FPGA). Además, el uso de este tipo de sistemas, motiva uso), la hoja de características técnicas de la placa
al estudiante al desarrollo de otro tipo de aplicaciones (datasheet), o reglas de diseño de la placa.
que se pueden salir del marco de las prácticas de la
Por otra parte, el entorno de desarrollo que suministra
asignatura, como se verá más adelante.
el fabricante de la placa es el denominado IceStudio [7]
Cabe destacar de él su máxima simplicidad, ofreciendo
Además, IceZUM es placa basada en FPGA diseñada
una interfaz que permite instalar todas las herramientas
con los mismos patrones que Arduino, por lo que se
necesarias, tanto para la síntesis de HDL, como los
puede utilizar para su ampliación todos los “escudos”
drivers FTDI (Future Technology Devices International,
(shields) que existen en el mercado para Arduino y es un
circuito USB 2.0 a UART) necesarios para programar la
dispositivo de los denominados de Open Hardware. Por
IceZUM.
otra parte, IceStudio es el Entorno de Desarrollo
Integrado (IDE) que permite programar la FPGA. La misma interfaz ofrece una biblioteca de objetos ya
Aunque se podrían utilizar lenguajes de descripción creados, tales como:
hardware, realmente no es necesario para realizar
muchos diseños, entre los que se encuentran los ELEMENTOS BÁSICOS: Pines de entrada, de salida,
necesarios para cubrir las competencias de la asignatura comentarios, constantes y módulos con las entradas y
de Tecnología y Organización de Computadores. Sin salidas programables en Verilog.
embargo, existen componentes como los biestables, que
se necesitarían implementar explícitamente a partir de BIT: Se puede añadir un bit tanto a 1 como a 0.
puertas lógicas (ya que no existen en las bibliotecas
actuales del entorno de desarrollo) para que los CONFIGURACIÓN: En este menú desplegable se
estudiantes pudieran realizar las prácticas puede encontrar configuraciones pull-up para los pines y
correspondientes a los sistemas secuenciales. buffers tri-estado.
IV. DESCRIPCIÓN DEL SISTEMA ICEZUM ALHAMBRA LÓGICA: En este menú desplegable se pueden
encontrar dispositivos tales como multiplexores,
El hardware de la placa IceZUM Alhambra cuenta con
demultiplexores, módulos para controlar visualizadores
los siguientes dispositivos:
de 7 segmentos, todo tipo de puertas lógicas y algunos
FPGA: Lattice iCE40HX1K-TQ144 [6]. En esta tipos de flip-flops.
FPGA hay 1280 Celdas lógicas, formadas cada una de
ellas por una Look-up-table (LUT) y un flip-flop, 64 Este entorno de desarrollo también permite explotar el
Kbits de memoria RAM y un PLL. Esta es una FPGA potencial de los lenguajes de desarrollo hardware
realmente pequeña y de bajo coste, con recursos exportando a Verilog la traducción del diseño que se
lógicos reducidos pero suficientes para la realización realice, que puede ser modificado manualmente. Otra
de sistemas de nivel de complejidad reducido. gran ventaja del entorno es que permite añadir otros
RELOJ: Reloj MEMS a 12 MHz. diseños realizados anteriormente como módulos a
INTERRUPTOR: Cuenta con un pequeño interruptor nuevos diseños. Además, el entorno de desarrollo
para desactivar los pines. permite añadir nuevas colecciones (o bibliotecas), es
REGULADOR DE VOLTAJE: Permite alimentar la decir, empaquetar todos los diseños en una colección
placa con un rango de 6 a 17 voltios. para añadirlos a los menús desplegables, con lo que se
pueden añadir colecciones de otros diseñadores con
CORRIENTE DE ENTRADA: Permite hasta una
todos los módulos ya implementados que se necesiten.
corriente de 3 amperios, útil para alimentar actuadores
Este IDE está construido en nodeJS sobre Icestorm, el
como, por ejemplo, motores de robots.
cual es una secuencia de herramientas creadas mediante
PINES: Cuenta con 20 pines de Entrada/Salida a 5V y
el uso de ingeniería inversa para poder generar
10 a 3.3V.
bitstreams compatibles con las FPGAs Lattice iCE40.
INTERFAZ: Programación mediante un USB micro-B, Una vez generados los diseños con IceStudio, se puede
FTDI 2232H para programación e interfaz UART con proceder a su simulación. Para ello hay que hacer uso de
un PC. la herramienta Icarus Verilog [8], que sintetiza y simula
LEDS: La placa cuenta con 8 leds que el usuario el diseño exportado anteriormente. Antes de esto
puede utilizar en sus programas. también hay que exportar el testbench (fichero de test)
PULSADORES: Dispone de dos pulsadores utilizables en IceStudio, que es otro archivo en Verilog necesario
por el usuario. para declarar los estímulos de entrada para el diseño.
ANALÓGICO: Cuenta con cuatro entradas analógicas Una vez completado el proceso, se puede analizar el
conectadas a un convertido analógico/digital ADC comportamiento del diseño mediante un analizador
QFN16, con una precisión de 12 bits, conectado a la temporal, como, por ejemplo GTKWave. Con este
FPGA con un bus I2C propio. software y el sistema IceZUM, se pueden generar los
PROTECCIÓN: La placa cuenta con protección contra diseños, simularlos, y cargarlos y ejecutarlos en la placa.
cortocircuitos y polaridad inversa.
708 Jornadas SARTECO 2017
Fig. 5. Primer nivel ALU. Cada uno de los bloques azules representa
una ALU de 1 bit.
de una forma sencilla si el trabajo realizado es hardware de este tipo, por lo que es totalmente
correcto. recomendable aprender a utilizar este tipo de tecnología.
Además, una forma experimental comenzando con
módulos básicos y finalizando con el diseño de un
procesador sencillo o módulos de control de robots
motiva al estudiante hacia perfiles no exclusivamente de
software en su titulación, propiciándolo a cursar
asignaturas de un perfil de Ingeniería de Computadores.
Aparte de todo esto, aprender diseño lógico
combinacional y secuencial en un sistema real es mucho
más ameno que en un simulador, donde el estudiante
puede no percibir claramente la utilidad de lo que está
haciendo.