You are on page 1of 3

1

Resumen— En el presente documento analizaremos la teoría
referente a los módulos IP o también conocidos como IP cores y
diseñaremos una aplicación en base a estos módulos apoyándonos
del software ISE Project Navigator Xilinx, el cual nos ayudara a la
simulación y su diseño.

Palabras clave— PicoBlaze, VHDL, FPGA, ASI C, I P, I SE.
I. INTRODUCCIÓN
En el diseño de aplicaciones sobre los CI tipo FPGA o
ASIC podemos importar “código” ya preestablecido, lo que se
conoce como módulos IP (Semiconductor intellectual property
core, no confundir con el protocolo de internet). Estos
módulos son bloques con una funcionalidad particular, estos
bloques son tanto facilitados por las mismas empresas que
desarrollan estos CI como por personas aparte con el fin de
colaborar en el desarrollo tecnológico. Nosotros podemos
diseñar nuestros propios módulos para usarlos como plantillas
en futuras aplicaciones o también para que los demás se
ayuden del mismo.

II. DESARROLLO DEL ARTÍCULO

MODULOS IP (SEMICONDUCTOR INTELLECTUAL
PROPERTY)
Dentro de una FPGA se puede incluir la funcionalidad de
varios CI. Esta funcionalidad es desarrollada tanto por uno
mismo como a través de terceros. Debido a que estas
funcionalidades se parecen a componentes electrónicos sin su
parte física también se les conoce como “componentes
virtuales”.

Existen 3 tipos de módulos IP:
1) Soft-core: Se habla de este tipo de módulo cuando se
trata de código sintetizable, similar al código fuente para
software o también a descripción a nivel de puerta
(netlist).
2) Hard-core: Se entiende de este módulo el caso de una
descripción física; estos presentan problemas a la hora de
asociar diferentes procesos entre ellos o pasar de un
fabricante a otro.
3) Firm-core: Por este módulo de refiere a un diseño que
puede ser modificado en términos de “placement and
routing” o en tecnología de bibliotecas.



Los dispositivos que contienen procesadores integrados y otras
funciones implementadas en forma de hard-core y soft-core se
conocen con el nombre de dispositivos de plataforma FPGA
porque pueden emplearse para implementar un sistema
completo sin necesidad de dispositivos externos de soporte.

Los módulos IP son usados para varias aplicaciones, las cuales
la empresa Xininx ha dividido en los siguientes grupos:


Fig.1.Logo de la compañía XILINX



El hecho de ir agregando módulos ya definidos en nuevos
diseños forma parte de la tendencia System-on-Chip (SoC), en
donde se trata de integrar la mayor cantidad de
funcionalidades en un solo chip. Estos son altamente aplicados
en los sistemas embebidos.

En la página oficial de esta compañía se puede encontrar
varios módulos IP descargables alguno son gratuitos y otro
pagados (http://www.xilinx.com/ise/embedded/edk_ip.htm).
Otro sitio web de gran importancia es Open cores
(http://opencores.org/) aquí se puede descargar módulos IP de
gran utilidad.

ISE Proyect Navigator tiene también otra clasificación para
los IP cores, este los separa por su funcionalidad en diferentes
áreas:

Interfaz/Bus/Puen
te
Periféricos
Procesadores
Comunicación
Infraestructura
Control de
memoria
Depuración
D.Martinez*1, A.Sánchez*2, L.Barreno, R.Gualavisi*3
*Diseño de VLSI, Universidad de las Fuerzas Armadas,
Sangolquí, Ecuador

Implementación de módulos IP
2

Fig.2.Clasificacion de IP cores según ISE.


ISE nos da la opción de utilizar IP cores disponibles en el
programa, pero también podemos descargar más desde el
internet si lo deseamos.

En lo que a procesadores se refiere, Xilinx nos ofrece varias
opciones junto con su respectiva documentación (Datasheet,
guía de usuario, etc) de entre las cuales en este caso se
utilizará el procesador PicoBlaze.

Para utilizar PicoBlaze primero el módulo debe ser descargado
desde la página oficial de Xilinx de manera gratuita y luego
buscamos software especial que nos faciliten la programación
como PBlaze de Mediatronix o KCPSM3 de Xilinx.

NUCLEO PROCESADOR PICOBLAZE.
PikoBlaze es un microcontrolador de 8 bits que esta
específicamente diseñado y optimizado para las FPGA de
Xilinx, el cual requiere solo una pequeña parte de las FPGA.

Entre sus características tenemos:


PicoBlaze consiste en dos componentes. EL KCPSM3 (que
contiene la ALU, los registros, la RAM, etc) y el bloque de
memoria (programa).


Fig.3.- Componentes de PicoBlaze.

Algunas de las instrucciones de PikoBlaze son:

Tabla 1.-Instrucciones de PikoBlaze.
RETURN SUBCY
RETURN C INPUT sX,sY
RETURN NC INPUT sX, kk
RETURN Z OUTPUT sX,sY
RETURN NZ OUTPUT sX, kk
RETURNI ENABLE ENABLE INTERRUPT
RETURNI DISABLE DISABLE INTERRUPT
ADDCY COMPARE

El proceso de utilización de PicoBlaze tiene la siguiente
secuencia:
1) Escribir el programa de PicoBlaze en assembler de la
aplicación requerida.
2) Ejecutar el archivo psm usando KCPSM3 o PBlaze, con
esto se genera un módulo IP exclusivo de la aplicación
que se esté realizando.
3) Copiar los módulos kcpsm3.vhd, rom_form.vhd y
miprograma.vhd dentro de la carpeta del proyecto de ISE
Project Navigator.
4) Se genera el modulo principal en ISE Project Navigator
que va a requerir de los módulos generados.
5) Programar el modulo principal.
III. CONCLUSIONES
- No es necesario empezar un código desde 0 ya que
existen módulos definidos que simulan un procesamiento
de datos.
- Si no se dispone en el editor algún modulo necesario, se
lo puede descargar desde el internet y no necesariamente
de la página oficial.
- Para utilizar módulos más complejos como
microprocesadores se debe seguir una serie de pasos.
- Cada módulo posee su documentación, así que es muy
importante revisarla antes de realizar alguna acción,


16 registros de
propósito general
de 8 bits.
ALU con bandera
de acarreo y de
0.
64 bytes de
memoria de
datos.
PikoBlaze
256 puertos de
entrada y salida
cada uno.
Pila de 31
palabras.
57 instrucciones
de 18 bits.
PikoBlaze
3
IV. BIBLIOGRAFIA
[1] Pong P. Chu (2008) version número 3, FPGA PROTOTYPING BY
VHDL EXAMPLES, WILEY INTERSCIENCE, p. 320-343.
[2] Xilinx TM. PicoBlaze 8-bit Microcontroller.
http://www.xilinx.com/products/intellectual-property/picoblaze.htm.
Extraído el 13 de junio del 2014.
[3] Varios autores (2010). System on a chip.
http://es.wikipedia.org/wiki/System_on_a_chip. Extraído el 13 de junio
del 2014.
[4] Varios autores (2005). Semiconductor intellectual property core.
http://en.wikipedia.org/wiki/Semiconductor_intellectual_property_core.
Extraído el 13 de junio del 2014.
[5] Julian G. (2010). Soft-Core and Hard-Core Processors.
http://fpgadomain.blogspot.com/2010/03/soft-core-and-hard-core-
processors.html. Extraído el 13 de junio del 2014.
[6] Margaret R. (2011). IP core (intellectual property core).
http://whatis.techtarget.com/definition/IP-core-intellectual-property-
core. Extraído el 13 de junio del 2014.

V. INFORMACION DE LOS AUTORES
Diego Xavier Martínez Hidalgo
nació en Quito, Ecuador, el 23 de
agosto de 1991. Se graduó en el
Colegio Técnico Experimental
Salesiano Don Bosco en el año
2008 de bachiller Eléctrico –
Electrónico. Actualmente estudia
ingeniería Electrónica en Redes y
comunicación de datos en la
Universidad de las Fuerzas
Armadas ESPE. Actualmente
debido a sus estudios no ejerce
profesionalmente.

Andrés Ricardo Sánchez Jácome
nació en Quito, Pichincha,
Ecuador, 31 de marzo 1990. Se
graduó en el Instituto Tecnológico
Superior Central Técnico en el año
2008 de bachiller técnico industrial
en electrónica actualmente estudia
ingeniería Electrónica en
Telecomunicaciones en la
Universidad de las Fuerzas
Armadas ESPE. Actualmente no
ejerce profesionalmente.

Ricardo Sebastián Gualavisí
Lamaico nació en Quito, Ecuador
el 18 de Diciembre de 1991.
Realizó sus estudios primarios en el
Colegio Paulo VI y sus estudios
secundarios en el Colegio Don
Bosco, obteniendo su título de
bachiller en Técnico Electrónico.
Actualmente está cursando sexto
nivel de Ingeniería Electrónica,
Automatización y Control en la
Universidad de las Fuerzas
Armadas ESPE. Ha trabajado en empresa Eléctrica, sin
embargo hoy en día se dedica de lleno a sus estudios.

Luis Miguel Barreno Reyes nació
en Latacunga, Ecuador, el 23 de
Diciembre de 1991. Se graduó en el
Colegio Fiscal Mixto “Nicolás
Infante Diza” en el año 2009 de
bachiller Físico Matemático
actualmente estudia ingeniería
Electrónica en Automatización y
Control en la Universidad de las
Fuerzas Armadas ESPE.
Actualmente debido a sus estudios
no ejerce profesionalmente.