DISEÑO E IMPLEMENTACIÓN DE SOPC BASADOS EN EL
MICROPROCESADOR PICOBLAZE
J. VIEJO, E. OSTUA, M. J. BELLIDO, J. JUAN, A. MILLAN
P. RUIZ-DE-CLAVIJO Y D. GUERRERO
Depa amen o de Tecnología Elec ónica. Uni e sidad de Se illa
A . Reina Me cedes, s/n (E. T. S. Ingenie ía In o má ica) - 41012 Se illa
{julian, os ua, bellido, jjchico, amillan, paulino, gue e}@d e.us.es
Tel.: +34 954556160 - Fax: +34 954552764
h p://www.d e.us.es/g m/
Con es e abajo p e endemos ealiza una apo ación a la docencia de la ma e ias que cu-
b en el diseño de SoPC (Sys em on P og ammable Chip). Pa a ello, hemos desa ollado un
demos ado de diseño de un SoPC su icien emen e sencillo como pa a que pueda in eg a -
se en una asigna u a docen e. El demos ado es á basado en un mic op ocesado sencillo
como es PicoBlaze, y el sis ema comple o es á pensado pa a implemen a se en FPGAs de
la amilia Spa an-3 de Xilinx.1
1. In oducción
Ac ualmen e, la ecnología mic oelec ónica pe mi e inclui sis emas comple os den o de una única
pas illa de silicio. Son los llamados SoC (Sys em on Chip), den o de los cuales son de especial in e és
aquellos que se denominan SoPC (Sys em on P og ammable Chip). En és os, en un mismo chip incluimos
mic op ocesado , memo ia, lógica p og amable pa a diseño a medida, y o o ipo de componen es que
ealizan unciones de p ocesado especí icas a las necesidades del sis ema.
Es e ipo de sis emas supone un e o no sólo pa a los desa ollado es de sis emas po las innume-
ables en ajas que supone la implemen ación de SoPC, sino ambién pa a los docen es de las ma e ias
elacionadas con la mic oelec ónica digi al. E ec i amen e, el diseño e implemen ación de un SoPC im-
plica que hay que conoce el diseño de sis emas digi ales basados en mic op ocesado jun o con el diseño
e implemen ación mic oelec ónica de sis emas digi ales. Es deci , el diseñado de SoPC iene que uni
las capacidades del ingenie o de sis emas con las del ingenie o de diseño mic oelec ónico.
Es a can idad de conocimien os que se manejan en el diseño de SoPC obliga a los docen es que se
dediquen a es as ma e ias a dispone de un ma e ial didác ico especialmen e diseñado pa a acili a la
in oducción de los concep os an o de diseño de sis emas basados en mic op ocesado es, como de su
implemen ación a ni el mic oelec ónico.
Es e abajo es á desa ollado con es a idea, es deci , que si a como ma e ial didác ico pa a aquellas
ma e ias docen es donde se enga como obje i o el diseño e implemen ación de SoPC. El obje i o del
abajo es p esen a un ejemplo de implemen ación de SoPC sob e FPGA, empleando como mic op oce-
sado PicoBlaze, poniendo a disposición de la comunidad docen e odo el ma e ial p esen ado.
El abajo se ha o ganizado como sigue: las secciones 2 y 3 es án dedicadas a p esen a el mic op oce-
sado PicoBlaze y la me odología básica de implemen ación de SoPC basados en es e mic op ocesado .
En la sección 4, se in oduci á el ejemplo de aplicación p ác ica de diseño e implemen ación de SoPC.
Finalmen e, en la quin a sección se expond án las conclusiones más impo an es.
1Es e abajo ha sido inanciado pa cialmen e po el p oyec o OFU TIC 1023 de la CONSEJERÍA DE INNOVACIÓN, CIENCIA
YEMPRESA de la JUNTA DE ANDALUCÍA.
Figu a 1: Diag ama de conexión de PicoBlaze con la memo ia de p og ama
2. PicoBlaze
PicoBlaze es un So Co e de 8 bi s, es deci , un mic op ocesado diseñado pa a se 100 % empo a-
ble en FPGAs (Vi ex-E, Vi ex-II, Vi ex-II/P o, Vi ex-4, Spa an-II, Spa an-IIE y Spa an-3) y CPLDs
(CoolRunne -II) de Xilinx [1]. Es impo an e comen a que exis en di e en es a qui ec u as de es e mi-
c op ocesado (KCPSM [2], KCPSM2 [3] y KCPSM3 [4]), es ando cada una de ellas op imizada pa a
un de e minado ipo de FPGA.
Al es a el sis ema comple o pensado pa a implemen a se en FPGAs de la amilia Spa an-3, en los
siguien es es apa ados amos a in oduci las ca ac e ís icas, la a qui ec u a y el juego de ins ucciones
de la e sión de PicoBlaze pa a es e ipo de disposi i os, inalizando es a sección con una compa a i a
del es o de a qui ec u as, que end á como obje i o mos a qué posibilidades nos pueden o ece cada
una de ellas.
2.1. Ca ace ís icas gene ales
PicoBlaze pa a Spa an-3 [4] iene las siguien es ca ac e ís icas:
ã30 ins ucciones (en unción de odas las condiciones posibles llegamos a un o al de 57).
ãCada ins ucción iene un amaño de 18 bi s.
ã16 egis os de p opósi o gene al de 8 bi s.
ã256 pue os di eccionables an o di ec a como indi ec amen e, que nos pe mi en conec a PicoBla-
ze con o os disposi i os.
ãSeñal de ese , de in e upción y de ack de in e upción (nue a en es a e sión).
ãPe mi e di ecciona una memo ia de p og ama de 1024 palab as de 18 bi s cada una.
Tan o el mic op ocesado como la memo ia de p og ama son comple amen e empo ables en nues os
diseños, po lo que en p incipio, PicoBlaze no equie e una memo ia ex e na.
El diag ama de conexión de PicoBlaze con dicha memo ia queda á como se mues a en la Fig. 1.
En es a igu a, las señales ADDRESS e INSTRUCTION ep esen an el bus de di ecciones y el de ins-
ucciones espec i amen e. Además, podemos obse a el conjun o de señales que p opo cionan a es e
mic op ocesado la lógica necesa ia pa a conec a se con o os disposi i os.
Figu a 2: A qui ec u a de PicoBlaze
2.2. A qui ec u a
En es e subapa ado, amos a desc ibi b e emen e la a qui ec u a de PicoBlaze. En é minos gene-
ales, es á compues a po una unidad de da os y o a de con ol ( e Fig. 2 ) donde:
ãLa unidad de da os (pa e supe io de la Fig. 2) con iene el banco de egis os, el módulo que
con ola los pue os de en ada/salida, una ALU y una memo ia Sc a ch Pad de 64 By es.
ãLa unidad de con ol (pa e in e io de la Fig. 2) engloba los módulos que se enca gan de la deco-
di icación de la ins ucción p oceden e del bus de ins ucciones y del con ol de ope ación, in e-
upciones y lujo de p og ama. También con iene el egis o PC (P og am Coun e ) e incluye una
pila pa a dicho egis o (P og am Coun e S ack). Es a pila pe mi e ealiza llamadas a sub u inas
y sal os, y po an o, modi ica la secuencia no mal de ejecución de un p og ama.
2.3. Juego de ins ucciones
Den o del juego de ins ucciones de PicoBlaze podemos dis ingui di e en es g upos, en e los que
se encuen an:
ãDe con ol del p og ama: JUMP, CALL y RETURN.
ãLógicas: LOAD, AND, OR, XOR y TEST.
ãA i mé icas: ADD, ADDCY, SUB, SUBCY y COMPARE.
ãDe desplazamien o: SR0, SR1, SRX, SRA, SL0, SL1, SLX y SLA.
ãDe o ación: RR y RL.
Ca ac e ís ica PicoBlaze pa a Vi ex-E
y Spa an-IIE
PicoBlaze pa a Vi ex-II
y Vi ex-II/P o
PicoBlaze pa a Spa an-3,
Vi ex-II/P o y Vi ex-4
Tamaño de
ins ucción
16 bi s 18 bi s 18 bi s
Regis os de
8 bi s
16 32 16
Espacio de
p og ama
256 ins ucciones 1024 ins ucciones 1024 ins ucciones
P o undidad
de la pila
15 31 31
Ensamblado KCPSM KCPSM2 KCPSM3
Tamaño 76 slices de una
Spa an-IIE
84 slices de una Vi ex-II 96 slices de una
Spa an-3
Rendimien o 37 MIPS (Spa an-IIE) 55,8 MIPS (Vi ex-II) 44 MIPS (Spa an-3) y
100 MIPS (Vi ex-II/P o)
Memo ia
Sc a ch-Pad
- - 64 By es
Tabla 1: Compa a i a en e las dis in as a qui ec u as
ãDe en ada/salida: INPUT y OUTPUT.
ãDe in e upción: ENABLE/DISABLE INTERRUPT y RETURNI ENABLE/DISABLE.
ãDe manejo de la memo ia Sc a ch Pad: STORE y FETCH.
Todas las ins ucciones de PicoBlaze se ejecu an bajo odas las condiciones en 2 ciclos de eloj, siendo
el ancho de da os de 8 bi s. Cuando ealizamos ope aciones lógicas y a i mé icas con la ALU, el p ime
ope ando es siemp e un egis o, que además unciona como egis o des ino, es deci , aquél en el que
gua damos el esul ado de la ope ación. El segundo es, bien un egis o o bien un alo cons an e que
iene como pa áme o en la ins ucción que es amos ejecu ando.
2.4. Compa a i a en e las dis in as a qui ec u as
En la Tabla 1 p esen amos una compa a i a de las ca ac e ás icas uncionales de las di e en es e -
siones de PicoBlaze pa a cada ipo de FPGA. Como podemos comp oba en dicha abla, muchas de las
ca ac e ís icas de PicoBlaze pa a Vi ex-E y Spa an-IIE se han is o mejo adas en las a qui ec u as pa a
Vi ex-II, Vi ex-II/P o y Spa an-3: se amplía el amaño de la ins ucción de 16 a 18 bi s, el espacio
de p og ama pasa de 256 a 1024 ins ucciones y el de la pila de 15 a 31 ni eles. En la Tabla 1 am-
bién obse amos como la a qui ec u a KCPSM3 dispone de un bloque de memo ia Sc a ch Pad y de dos
nue as ins ucciones (STORE y FETCH) pa a con ol de es a memo ia. En el caso de PicoBlaze pa a
KCPSM2 podemos des aca que cuen a con el doble de egis os de p opósi o gene al que las o as dos
a qui ec u as.
Finalmen e, obse amos cómo las nue as e siones mejo an el endimien o gene al, pasando de los
37 MIPS en una Spa an-IIE has a los 100 MIPS en una Vi ex-II/P o.
3. Me odología de diseño e implemen ación
La es uc u a mínima de un SoPC basado en PicoBlaze se compone del módulo de PicoBlaze
(kcpsm3. hd) y la memo ia que almacena el p og ama (<ROM>. hd). A es os componen es se les iene
que uni la in e az de conexión con las señales de en ada y de salida, así como el es o de componen es
de p ocesado que se necesi en en cada sis ema especí ico.
La me odología de diseño de es e ipo de sis emas es á basada en lenguajes de desc ipción de ha -
dwa e, en nues o caso en VHDL [5].
En la Fig. 3 se mues a la es uc u a del código VHDL que desc ibe el sis ema. Como se obse a, es
una desc ipción que bien es comple amen e es uc u al, es deci , odos los componen es es án desc i os
en módulos indi iduales y en la desc ipción del sis ema solamen e se es ablece el in e conexionado, o
bien puede se una desc ipción mix a es uc u al-compo amien o. En cualquie caso, como se puede
obse a en el código de la Fig. 3, el mic op ocesado PicoBlaze y la memo ia de p og ama se incluyen
en el código VHDL del sis ema como componen es. Pa a el es o de elemen os puede emplea se una
desc ipción es uc u al o de compo amien o.
En la Fig. 4 se mues a la me odología seguida pa a el diseño e implemen ación del sis ema. En
dicha igu a, obse amos como el p ime paso de la me odología p opues a es desc ibi el sis ema. En
es a desc ipción, hay que emplea el módulo de PicoBlaze adecuado a la FPGA que se aya a p og ama ,
y además, gene a el código de la memo ia de p og ama y del es o de componen es de in e conexión y
p ocesado.
Pa a gene a el iche o que de ine la memo ia de p og ama (<ROM>. hd), empleamos el ensambla-
do p opo cionado jun o a PicoBlaze, quedando el p oceso de gene ación como sigue:
1. Esc ibimos un iche o con el p og ama (<ROM>.psm).
2. U ilizamos el ensamblado de PicoBlaze pa a gene a el iche o VHDL que de ine la memo ia que
con iene el p og ama (<ROM>.psm).
Una ez que engamos desc i o comple amen e nues o sis ema, ealiza emos una e i icación del mis-
mo u ilizando la he amien a de simulación ModelSim XE III [6]. Si as inaliza la simulación con
ModelSim comp obamos que el diseño no se ajus a co ec amen e a las especi icaciones de pa ida, ea-
liza emos las modi icaciones que conside mos opo unas del p og ama y/o del es o de componen es,
epi iendo es e paso has a que ob engamos el compo amien o deseado.
A con inuación, sin e iza emos e implemen a emos nues o diseño empleando las he amien as del
en o no de Xilinx ISE [7]. Finalmen e, con igu a emos la placa y desca ga emos el sis ema implemen-
ado en la FPGA a a és de la he amien a iMPACT, comp obando sob e la p opia placa si el esul ado
ob enido se ajus a al deseado, ol iendo nue amen e a un paso an e io en caso con a io.
4. Ejemplo de aplicación
En es e apa ado, amos a ealiza una desc ipción del diseños que se ha desa ollado con PicoBlaze,
en conc e o, una UART que en ía a un e minal los ca ac e es ecibidos desde un eclado. Así, en la
Fig. 5. mos amos el diag ama de bloques del dicho diseño, donde podemos dis ingui los siguien es
componen es:
1. Módulo embedded_kcpsm3, donde se ealiza la conexión de PicoBlaze con la memo ia de p og a-
ma.
2. Módulo x1, que in e iene como in e az en e los dis in os con olado es y PicoBlaze [8].
3. Módulo con olado _ps2. Se a a del con olado del eclado [9].
--Desc ipción ex e na del sis ema
en i y <SoPC> is
Po (
--Decla ación de las señales de en ada al sis ema
--Decla ación de las señales de salida del sis ema
clk: in s d_logic
);
end <SoPC>;
--Desc ipción in e na del sis ema
a chi ec u e Mix a_Es uc u al_Compo amien o o <SoPC> is
--Decla ación del componen e PicoBlaze
componen kcpsm3
Po (
add ess : ou s d_logic_ ec o (9 down o 0);
ins uc ion : in s d_logic_ ec o (17 down o 0);
--Decla ación del es o de señales de PicoBlaze
clk : in s d_logic
);
end componen ;
--Decla ación de la memo ia de p og ama
componen <ROM>
Po (
add ess : in s d_logic_ ec o (9 down o 0);
ins uc ion : ou s d_logic_ ec o (17 down o 0);
clk : in s d_logic
);
end componen ;
--Decla ación de o os componen es y señales
--Desc ipción del sis ema
begin
--Conexión de PicoBlaze con la memo ia de p og ama
p ocesso : kcpsm3
po map (
add ess => add ess,
ins uc ion => ins uc ion,
--Conexión del es o de señales de PicoBlaze
clk => clk
);
p og am: <ROM>
po map (
add ess => add ess,
ins uc ion => ins uc ion,
clk => clk
);
--Colocación de o os componen es
--Desc ipción uncional de o as pa es del sis ema
end Mix a_Es uc u al_Compo amien o;
Figu a 3: Implemen ación en VHDL del sis ema
Figu a 4: Me odología de diseño e implemen ación seguida
Figu a 5: Esquema del diseño desa ollado
4. Módulo con e so _make_code, que si e pa a con e i el make code ecibido a su código ASCII
co espondien e.
5. Módulos baud_con , ua _ x y ua _ x. Es os es módulos co esponden al con olado del pue o
se ie[10].
Pa a el desa ollo de es e ejemplo, se ha empleado un disposi i o Spa an-3 S a e Ki Boa d de Digilen
[11] que con iene una Spa an-3 XC3S200.
5. Conclusiones
Con es e abajo hemos p e endido cub i un hueco que, desde nues a pe spec i a, c eemos que
exis ía en cuan o a la docencia del diseño e implemen ación de SoPC. En el abajo hemos analizado las
ca ac e ís icas de PicoBlaze, y además, hemos p opues o una me odología de diseño e implemen ación
de SoPC basado en es e mic op ocesado .
Po úl imo, hemos plan eado y desa ollado un ejemplo de diseño de SoPC empleando elemen os
que son muy accesibles: códigos del mic op ocesado Picoblaze y placas de e aluación con FPGAs de
Xilinx ipo Spa an-3.
Re e encias
[1] “Web O icial de Xilinx.” h p://www.xilinx.com/.
[2] K. Chapman, “PicoBlaze 8-Bi Mic ocon olle o Vi ex-E and Spa an-II/IIE De ices.”
h p://www.xilinx.com/b docs/appno es/xapp213.pd , Feb ua y 2003.
[3] K. Chapman, “PicoBlaze 8-Bi Mic ocon olle o Vi ex-II Se ies De ices.”
h p://www.xilinx.com/b docs/appno es/xapp627.pd , Feb ua y 2003.
[4] K. Chapman, “PicoBlaze 8-Bi Embedded Mic ocon olle Use Guide o Spa an-3, Vi ex-II and
Vi ex-II PRO FPGAs.” h p://www.xilinx.com/b docs/use guides/ug129.pd , No embe 2005.
[5] “VHDL In e na ional.” h p://www. hdl.o g/.
[6] “Modelsim Xilinx Edi ion III.” h p://www.xilinx.com/ise/op ional_p od/mxe.h m.
[7] “Using he ISE Design Tools o Spa an-3 Gene a ion FPGAs.”
h p://www.xilinx.com/b docs/appno es/xapp473.pd , May 2005.
[8] S. Shaheen, “The X1 and X2 Modules in eg a e Xilinx PicoBlaze and UART Modules.”
h p://www.openco es.o g/ o ums.cgi/co es/2004/06/000925, June 2004.
[9] D. Quin e o, “Compac and op imized PS/2 con olle o Keyboa d and Mice.”
h p://www.openco es.o g/p ojec s.cgi/web/ps2co e/o e iew, Ap il 2003.
[10] K. Chapman, “UART T ansmi e and Recei e Mac os,” Oc obe 2002.
[11] “Spa an-3 S a e Ki Boa d Use Guide.” h p://www.xilinx.com/b docs/use guides/ug130.pd ,
May 2005.