scieee Science in your language
[es] (orig)

Diseño e implementación de SOPC basados en el microprocesador Picoblaze

Abstract

Con este trabajo pretendemos realizar una aportación a la docencia de la materias que cubren el diseño de SoPC (System on Programmable Chip). Para ello, hemos desarrollado un demostrador de diseño de un SoPC suficientemente sencillo como para que pueda integrarse en una asignatura docente. El demostrador está basado en un microprocesador sencillo como es PicoBlaze, y el sistema completo está pensado para implementarse en FPGAs de la familia Spartan-3 de Xilinx.

Read accessible full text

Diseño e implementación de SOPC basados en el microprocesador Picoblaze

Author: Viejo Cortés, Julián; Ostúa Arangüena, Enrique; Bellido Díaz, Manuel Jesús; Juan Chico, Jorge; Millán Calderón, Alejandro; Ruiz de Clavijo Vázquez, Paulino; Guerrero Martos, David
Publisher: Universidad Politécnica de Madrid
Year: 2006
Source: https://idus.us.es/bitstreams/16cff8a6-9d6c-4972-88aa-9623ad40586c/download
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.