Sie sind auf Seite 1von 16

Investigacion

Implementacion de un codicador
y decodicador digital
ReedSolomon a traves de
programacion VHDL
Cecilia E. Sandoval Ruiz
y
Antonio Fedon
Universidad de Carabobo,

Area de Estudios de Postgrado,


Facultad de Ingeniera
Venezuela
cecisandova@yahoo.com, afedon@cantv.net
recibido: diciembre de 2006
preimpreso
resumen
En este artculo se presenta un procedimiento metodologico simple
y el estado del arte para dise nar bloques funcionales del codi-
cador ReedSolomon orientados a tecnologa FPGA. Este se inicia
con el dise no a nivel de algoritmo del codicador, luego se con-
cibe la arquitectura y se captura el dise no de hardware usando
VHDL, nalmente se lleva acabo la validacion del comportamiento
del codicador utilizando ModelSim 5.7 a traves de simulaciones de
los modulos.
Las operaciones en los campos nitos de Galois, GF(2
m
), es la
base de varios algoritmos en el area de correccion de errores y proce-
samiento digital de se nales, sin embargo los calculos involucrados
requieren gran cantidad de tiempo al ser implementados a traves
de software, por razones de desempe no y seguridad es preferible
implementar los algoritmos en hardware.
1
C. E. SANDOVAL RUIZ Y A. FED

ON
1. Introducci on
En los actuales momentos se evidencia una creciente tendencia hacia el uso
de dispositivos de logica recongurable a alta escala de integracion (Wak-
erly, 2001), en funcion de los benecios que esta tecnologa ofrece a los
dise nadores de sistemas digitales, estos dispositivos programables a traves
de un lenguaje de descripcion de hardware como VHDL, los cuales per-
miten congurar sistemas digitales seg un las especicaciones demandadas
por los usuarios, ajustar cambios en la programacion, optimizar los dise nos
tratandolos en forma modular.
Una importante caracterstica de VHDL es que se encuentra estandariza-
do bajo la norma 1076 (Prez y cols., 2002). Es por ello que se ha seleccionado
como lenguaje para la descripcion del codicador de canal digital.
Debido a la gran importancia que tiene el campo de las comunicaciones
digitales, por la ventaja que ofrece sobre las comunicaciones analogicas,
resulta interesante dise nar un sistema compacto que incorpore las etapas
de procesamiento y comunicacion de datos, ya que debido a la gran exi-
bilidad de las FPGAs (Field Programmable Gates Array) no se requiere
establecer requisitos mnimos para realizar cualquier tipo de dise no. Siendo
imprescindible que la memoria sea suciente para almacenar la totalidad
del hardware a implementar (Suardaz, 2004).
Se plantea entonces la necesidad de emplear la tecnologa de programa-
cion en VHDL como soporte para el dise no del codicador ReedSolomon,
donde se presenta la posibilidad de subdividir el codicador, atendiendo a
cada modulo seg un su funcion especica para lograr los objetivos planteados
a traves de la descripcion de hardware, y realizar los ajustes que permitan
optimizar el dise no en la etapa de programacion.
2. Codificador ReedSolomon
En el estudio de los codicadores de canal se presenta como el mas ven-
tajoso el codigo Reed-Solomon (vease la gura 1). Se puede observar que
su probabilidad de error en relacion se nal a ruido esta cercano al lmite de
Shannon, presentando mayor eciencia sobre otros codigos correctores de
error (Antolin Agatep, 2000).
En esta etapa se presenta el tratamiento de la trama de datos para formar
la palabra de codigo que sera transmitida incluyendo un mecanismo para
correccion de errores, en este estudio se considerara Codigo ReedSolomon
(ReedSolomon Code). Este es un codigo corrector de errores basado en
bloques con un amplio rango de aplicaciones en comunicaciones digitales
y almacenamiento. El codigo fue inventado en 1960 por Irving S. Reed
y Gustave Solomon, miembros del MIT Lincoln Laboratory, en su artculo
2
IMPLEMENTACI

ON DE UN CODIFICADOR Y DECODIFICADOR DIGITAL REEDSOLOMON


FIGURA 1. Caracterstica de los codicadores de canal (Fuente: Reed-Solomon Solutions with
Spartan-II FPGA (Antolin Agatep, 2000)
publicado Polynomial Codes over Certain Finite Fields. Mas sin embargo
la clave para hacer del codigo ReedSolomon una aplicacion tecnologica fue
la implementacion de un algoritmo eciente de decodicacion el cual fue
realizado por Elwyn Berlekamp de la Universidad de Berkeley (Suardaz,
2004).
Actualmente los codigos ReedSolomon se utilizan para corregir errores
en varios sistemas, incluyendo: dispositivos de almacenamiento (cintas, dis-
cos compactos, DVD, codigos de barras), comunicaciones inalambricas o
moviles (telefona celular, enlaces de microondas, etc.), comunicaciones
satelitales, television digital/DVB, modem de alta velocidad como ADSL,
x DSL (Cuervo, s/f).
Estos codigos pertenecen a la familia de codigos de bloque, en que el
codicador procesa un bloque de smbolos sin codicar, a los que agrega
redundancia para producir otro bloque, de mayor longitud, de smbolos
codicados, de ah el interes en desarrollar un proyecto en donde aplique
este tipo de algoritmo de correccion de errores en VHDL.
2.1. Propiedades de los codigos ReedSolomon
El codigo ReedSolomon es un subconjunto de los codigos BCH y son de
bloques lineales. Un codigo ReedSolomon se especica como RS(n, k) con
smbolos de s bits. Lo anterior signica que el codicador toma k smbolos
3
C. E. SANDOVAL RUIZ Y A. FED

ON
de los s bits y a nade smbolos de paridad para hacer una palabra de codigo
de n smbolos. Existen n k smbolos de paridad de s bits cada uno. Un
decodicador puede corregir hasta t smbolos que contienen errores en una
palabra de codigo, donde 2t = (n k) (Xilinx System Generator v2.1 for
Simulink).
El siguiente diagrama muestra una tpica palabra de codigo ReedSolo-
mon (este se conoce como un codigo sistematico puesto que los datos se
dejan inalterados y los smbolos de paridad se anexan):
FIGURA 2. Palabra de Codigo ReedSolomon (Fuente: Reed-Solomon Solutions with Spartan-II
FPGA (Antolin Agatep, 2000)
Para codicar la trama con esta estructura se debe procesar a traves
de un circuito digital que opere bajo los fundamentos de campo nito de
Galois. Este presenta una arquitectura en el codicador compuesta por los
bloques funcionales mostrados en la gura 3.
FIGURA 3. Arquitectura generica de un codicador ReedSolomon (Fuente: ReedSolomon
Solutions with Spartan-II FPGA (Antolin Agatep, 2000)
2.2. Campos de Galois aplicados a la codicacion ReedSolomon
Los codigos ReedSolomon se basan en un area especialista de las matema-
ticas llamada Campos Galois (GF) o campos nitos. Un campo nito tiene
4
IMPLEMENTACI

ON DE UN CODIFICADOR Y DECODIFICADOR DIGITAL REEDSOLOMON


la propiedad de que las operaciones aritmeticas (+, , , /, etc.) en ele-
mentos del campo siempre tienen un resultado en el campo. Un codicador
o decodicador ReedSolomon debe ser capaz de realizar estas operaciones
aritmeticas (Nazar, 2004; Negrete, 2006; Ortiz-Garca, 2006).
2.3. Generador polinomial
Una palabra de codigo ReedSolomon es generada usando un polinomio
especial. Todas las palabras de codigo validas son divisibles exactamente
por el polinomio generador. La forma general de este polinomio es:
g(x) = (x
i
)(x
i+1
) (x
i+2t
);
la palabra de codigo se genera de:
c(x) = g(x) i(x),
donde g(x) es el polinomio generador, i(x) es el bloque de informacion, c(x)
es una palabra de codigo valida y se conoce como un elemento primitivo
del campo (Antolin Agatep, 2000; Cuervo, s/f).
El primer paso corresponde a la denicion del campo de Galois para la
codicacion, el cual estara denido en funcion de la longitud del smbolo,
entiendase m bits/smbolo, el cual permite conocer el polinomio reducible
del campo de Galois GF(2
m
).
Las bases teoricas que sustentan este codicador estan dadas por el poli-
nomio en su forma general:
g(x) =
nk1

i=0

x
h(Generator Star)

;
al ser expandido se obtiene:
g(x) = G
nk1
x
nk1
+ G
nk2
x
nk2
+ + G
1
x + G
0
,
donde n es la longitud de la palabra codicada (en smbolos), k es la lon-
gitud del mensaje codicado (en smbolos) y m es la longitud del smbolo
(bits).
5
C. E. SANDOVAL RUIZ Y A. FED

ON
3. Dise no de un codificador-decodificador ReedSolomon (7, 3)
En base al desarrollo teorico estudiado se realizo la descripcion de cada uno
de los modulos.
3.1. Dise no del codicador RS(7, 3)
Para comprender en forma practica el calculo del codeword, asumiremos un
campo GF(8), es decir, m = 3 bits/smbolo; la representacion de los ele-
mentos del campo estara comprendida por el polinomio irreducible p(x) =
x
3
+x+1, el cual tiene por raz , por lo que al igualar a cero el polinomio
se obtiene
3
+ + 1 = 0, tal que
3
= + 1 sera la representacion para
sustituir el elemento (8) que se desborda del campo, con lo que se puede
convertir a un elemento perteneciente al campo.
A partir de la expresion de G(x), para un codicador RS(7, 3) se obtuvo
el polinomio generador de la forma:
G(x) =
2
x
3
+
5
x
2
+
5
x +
6
,
el cual es sustituido en funcion de la tabla 2.2, obteniendose:
G(x) = 4x
3
+ 7x
2
+ 7x + 5,
el cual permite obtener la palabra codicada compuesta por 3 smbolos de
datos y 4 smbolos de paridad. Lograndose implementar el codicador de
la forma que muestra la gura 4.
FIGURA 4. Codicador RS(7, 3) (Fuente: Propia del autor).
6
IMPLEMENTACI

ON DE UN CODIFICADOR Y DECODIFICADOR DIGITAL REEDSOLOMON


Al aplicar los datos de entrada D = [1, 3, 7, 0, 0, 0, 0], se obtiene a la salida
C = [1, 3, 7, 0, 1, 1, 5], para lo cual se denieron los multiplicadores para el
campo de Galois, los cuales son componentes que obtienen a su salida el
resultado del producto en el campo en funcion de la entrada.
El modulo en VHDL para la multiplicacion del coecientes 4 por los
smbolos de entrada es:
TABLA 1. Codigo en VHDL del multiplicador por 4 en GF(8).
with D in select
dato1<="000" when "000", --4x0=0
"100" when "001", --4x1=4
"011" when "010", --4x2=3
"111" when "011", --4x3=7
"110" when "100", --4x4=6
"010" when "101", --4x5=2
"101" when "110", --4x6=5
"001" when others; --4x7=1
El manejo de los registros y la XOR entre los elementos procesados sera:
TABLA 2. Codigo en VHDL de la arquitectura del RS(7, 3).
process (clk)
begin
if (clkevent and clk=1) then
rdato4<=dato4;
rdato3<=rdato4 xor dato3;
rdato2<=rdato3 xor dato2;
rdato1<=rdato2 xor dato1;
D dato<=rdato1 xor D in;
end if;
end process;
D out<=rdato1;
Este dise no es una aplicacion practica sencilla que permite ilustrar el
funcionamiento y validar el codigo en VHDL; este puede ser extendido para
cualquier codicador RS(n, k).
3.2. Validacion en MATLAB del dise no
El calculo del campo de Galois se realizo tambien usando la herramienta
matematica MATLAB, el comando para obtener el arreglo de Galois (gf) se
aplico a la matriz de datos a enviar y al n umero de bits por smbolo, en
7
C. E. SANDOVAL RUIZ Y A. FED

ON
este caso 3 bits por smbolo: msn =gf ([matriz de datos], m). En tanto que
la palabra de codigo se obtiene al aplicar el comando de codicacion (rsenc)
al arreglo de Galois (msn) y a la longitud de la palabra de codigo, con la
longitud del mensaje: Code =rsenc (msn,n,k).
TABLA 3. Codigo en tt MATLAB del RS(7, 3).
>>m=3 % longitud del smbolo (en bits)
>>n=7 % longitud del codeword (en smbolos)
>>k=3 % longitud del mensaje (en smbolos)
>>i(x) =gf([1,3,7], m) % aplica gf(2
m
) al mensaje sin formato
>>c(x) =rsenc(i(x), n, k) % aplica g(x).i(x) para obtener el codeword
>>c(x) =[1,3,7,0,1,1,5] % palabra de codigo obtenida
Con lo cual queda validado el codicador dise nado a traves de la herra-
mienta matematica MATLAB. Esto para comprobar la abilidad del dise no
realizado.
3.3. Dise no del decodicador RS(7, 3)
Para la implementacion del decodicador a traves de VHDL, se toma como
base la arquitectura dada en la gura 5.
FIGURA 5. Diagrama de bloques del decodicador RS (Fuente: ReedSolomon Solutions with
Spartan-II FPGA (Antolin Agatep, 2000).
Ahora, en base al diagrama de bloques se deniran las funciones es-
peccas de cada modulo.
8
IMPLEMENTACI

ON DE UN CODIFICADOR Y DECODIFICADOR DIGITAL REEDSOLOMON


3.3.1. Calculo del sndrome
Este es un calculo similar al calculo de paridad. Un codigo de palabra Reed
Solomon tiene 2t sndromes que dependen solamente de los errores (no de
la palabra transmitida). Los sndromes pueden ser calculados al sustituir
las 2t races del polinomio generador g(x) en r(x) (Cuervo, s/f).
3.3.2. Encontrar el n umero de errores y localizarlos
Encontrar el lugar del smbolo erroneo implica resolver de forma simultanea
ecuaciones con t incognitas. Varios algoritmos rapidos existen para realizar
lo anterior. Estos algoritmos toman ventaja de la estructura matricial es-
pecial de los codigos ReedSolomon y reducen de gran forma el esfuerzo
computacional requerido.
3.3.3. Polinomio localizador de error
Para encontrar un polinomio localizador de error se pueden utilizar el al-
goritmo BerlekampMassey o el algoritmo de Euclides. El algoritmo de
Euclides tiende a ser el mas utilizado en la practica debido a que es mas
facil de implementar, sin embargo el algoritmo BerlekampMassey tiende
a llevar a una implementacion hardware y software mas ecientes. Este
algoritmo fue elegido debido a que se limita a entregar el resultado de la
division unicamente (Cuervo, s/f). Ademas sus unicas operaciones sobre
los datos son la suma polinomial que en hardware son realizadas con com-
puertas XOR y las multiplicacion y division por potencias de 2, que por ser
aritmetica binaria se traducen en hardware como corrimientos de bits.
Ahora debemos localizar los smbolos erroneos, para ello debemos seguir
un procedimiento que implica resolver unos sistemas de ecuaciones, el pri-
mero de ellos sigue la formula general:
S
t+j
= f
1
S
t+j1
+ + f
t1
S
j+1
+ f
t
S
j
.
3.3.4. Correccion de errores
Nuevamente, esto implica resolver ecuaciones con t incognitas para poder
encontrar los valores verdaderos, que deberan ser sustituidos en las posi-
ciones correspondientes para as poder reproducir el mensaje correcto que
se intento enviar. Esto se hace con el algoritmo de b usqueda de Chien,
donde 1 j t, f
i
son las incognitas y S
i
los componentes del sndrome
calculado.
La posicion en la que estan los errores se obtiene de los exponentes de
9
C. E. SANDOVAL RUIZ Y A. FED

ON
las races de un polinomio f(x) cuya formula general es:
f(x) = x
t
+ f
1
x
t
+ + f
t1
x + f
t
.
3.3.5. Generador del error
Debemos resolver un sistema de ecuaciones con tantas incognitas como
errores hayamos detectado y tiene la forma, para nuestro ejemplo:
Y
1
+ Y
2
= S
1
,
x
1
Y
1
+ x
2
Y
2
= S
2
,
donde Y
1
indica el valor del error en el smbolo dado por (nexponente de
x
1
), x
1
es la raz de f(x), Y
2
indica el valor del error en el smbolo dado por
(n exponente de x
2
), x
2
es la otra raz de f(x). Finalmente se realizara
la adicion entre modulo-2 (XOR), entre el dato de entrada que fue recibido
por el decodicador (que se mantiene registrado en una memoria RAM) y
el error generado, con lo que se obtiene el codigo recuperado.
Una vez que se maneja el algoritmo se realiza la denicion de la entidad,
la cual esta representada a traves del plano de transferencia (RTL) en la
gura 6, siendo este resultado de la descripcion bajo la sintaxis VHDL.
TABLA 4. Codigo en VHDL de los componentes.
begin
U1: calc sindrome port map (rx, inicio, clk, s1, s2, s3, s4);
U2: localiz e port map (s1, s2, s3, s4, f1, f2, xa, xb, pos1, pos2);
U3: valor e port map (s1, s2, s3, s4, xa, xb, e1, e2);
end Behavioral;
Y se procede a la descripcion del comportamiento. Cada uno de los
modulos internos ha sido descrito como componente, quedando la imple-
mentacion mostrada en la gura 7.
4. Metodologa
Entre los pasos que se siguieron para la programacion se realizo el modelo
del codicador y decodicador a dise nar RS(7, 4) con el n umero de smbolos
m = 3, con lo cual se logro describir su comportamiento. Este fue descrito
bajo la sintaxis del lenguaje descriptor de hardware estandarizado VHDL,
y se creo un archivo de asignacion de pines para as realizar el mapeo sobre
10
IMPLEMENTACI

ON DE UN CODIFICADOR Y DECODIFICADOR DIGITAL REEDSOLOMON


FIGURA 6. Entidad del decodicador RS.
FIGURA 7. Estructura del decodicador RS.
el dispositivo de hardware recongurable seleccionado para esta aplicacion,
como lo es el FPGA de Xilinx, Spartan IIe 208 pq, dando como resultado del
proceso de programacion un archivo de extension .bit el cual fue descargado
en el dispositivo.
Adicional a la fuente del codicador se crearon las fuentes de interfase
para lograr la visualizacion de los datos en el display del banco de prueba
DIO1, el archivo .vhdl corresponde a la tabla 5.
11
C. E. SANDOVAL RUIZ Y A. FED

ON
TABLA 5. Convertidor de elementos del campo nito a display siete
segmentos (archivo driver.vhdl).
with OCT select
display<="1111001" when "001", --1
"0100100" when "010", --2
"0110000" when "011", --3
"0011001" when "100", --4
"0010010" when "101", --5
"0000010" when "110", --6
"1111000" when "111", --7
"1000000" when others; --0
El archivo driver.ucf que presenta la asignacion de pines, se muestra en
la tabla 6.
TABLA 6. Asignacion de pines al display del banco de prueba DIO1
(archivo driver.ucf).
NET "A" LOC = "P17" ;
NET "a1" LOC = "P45" ;
NET "a2" LOC = "P47" ;
NET "a3" LOC = "P49" ;
NET "a4" LOC = "P56" ;
NET "B" LOC = "P20" ;
NET "C" LOC = "P22" ;
NET "D" LOC = "P24" ;
NET "E" LOC = "P29" ;
NET "F" LOC = "P31" ;
NET "G" LOC = "P34" ;
De igual manera se conguraron los pines de entrada de datos para la
recepcion de la trama. En la gura 8 se muestra el proceso de programacion.
5. An alisis de resultados
Los resultados obtenidos a traves de la simulacion del codicador y del
decodicador corresponde al mostrado en la gura 9.
En la simulacion del comportamiento del codicador ReedSolomon se
establecio el procesamiento de los datos recibidos (rx). En la gura 9 se
pueden observar los resultados, donde tx es la trama de entrada de datos
que se ha codicado generando cx; a esta nueva trama de siete smbolos se le
ha adicionado el ruido del canal sobre dos de sus smbolos cualesquiera ex,
con lo que se obtiene la trama recibida rx. Estos smbolos son procesados y
12
IMPLEMENTACI

ON DE UN CODIFICADOR Y DECODIFICADOR DIGITAL REEDSOLOMON


FIGURA 8. Proceso de programacion del FPGA.
FIGURA 9. Simulaci on del Codec RS(7, 3).
se obtiene s1, s2, s3 y s4, los resultados del sndrome; estos son procesados
13
C. E. SANDOVAL RUIZ Y A. FED

ON
a traves del sistema de ecuaciones produciendo los coecientes de f(x),
entiendase f
1
y f
2
, que sirven de entrada a la matriz de conversion para
obtener x
a
y x
b
, estas ultimas, races del polinomio f(x) y con los cuales
se calculan los valores de los errores e
1
y e
2
, los cuales son sumados en las
posiciones localizadas con la entrada al receptor rx, obteniendose la data
corregida.
En la implementacion del dise no sobre el FPGA, se establecio la trama
de datos a enviar, como en la simulacion (D = 4, 2, 7), correspondientes
a la secuencia de datos (D = 100, 010, 111), estos son codicados para la
transmision; asmismo, se presenta la salida de datos a transmitir a traves
de los display siete segmentos del banco de prueba del sistema de desarrollo
del Spartan IIe 208 pq, Xilinx. Este procedimiento se realizo con el n de
completar el proceso de implementacion. La gura 10 muestra en el display
menos signicativo la secuencia de salida cx.
FIGURA 10. Prueba sobre el FPGA.
Es importante destacar los benecios de implementar el codicador-
decodicador ReedSolomon en un FPGA, ya que permite el procesamiento
paralelo. Adicionalmente los proveedores del paquete VHDL deben seguir
14
IMPLEMENTACI

ON DE UN CODIFICADOR Y DECODIFICADOR DIGITAL REEDSOLOMON


las normas de programacion IEEE-1076, haciendo que los dise nos sean
portatiles a cualquier plataforma (Chang, 1999; Ashenden, s/f; IEEE Stan-
dard VHDL Language Reference Manual1076, 2002; Carpio, 1997).
6. Trabajos futuros
El dise no de un dispositivo para implementar un codigo popular Reed
Solomon como lo es RS(255, 223) con smbolos de 8 bits. Cada palabra de
codigo contiene 255 bytes de palabra de codigo, de los cuales 223 bytes son
datos y 32 bytes son paridad. Para este codigo se tiene: N = 255, k = 223,
s = 8, 2t = 32 y t = 16.
El decodicador puede corregir cualquier error de 16 smbolos en la pa-
labra de codigo, es decir, errores de hasta 16 bytes en cualquier lugar de
la palabra pueden ser automaticamente corregidos. Una vez establecido el
polinomio g(x) (los sndromes pueden ser calculados al sustituir las 2t races
del polinomio generador g(x) en r(x).)
7. Conclusiones
Teniendo en cuenta que el comportamiento del los modulos dise nados ha
sido validado a traves de la simulacion, se realizo el mapeo del dise no sobre el
FPGA y se obtuvo una programacion exitosa del codicador y decodicador
ReedSolomon. Entre los aportes realizados se presentan:
Estado del arte sobre codicacion ReedSolomon. Se ha incluido ade-
mas un n umero importante de referencias bibliogracas.
Compendio de la teora de campos nitos de Galois orientada a codi-
cacion ReedSolomon.
Desarrollo de un modelo de codicacion ReedSolomon.
Desarrollo de la sintaxis de programacion en VHDL (Lenguaje Descrip-
tor de Hardware).
Se constata, a traves de simulaciones que la introduccion de tecnicas de
codicacion ReedSolomon mejoran notablemente las prestaciones del
sistema. Una de las mejores alternativas es el posible uso de una cadena
concatenada semejante a la propuesta en la norma IEEE 802.16.
8. Referencias bibliogr aficas
[1] Antolin Agatep, ReedSolomon Solutions with Spartan-II FPGA, WP110 1.1, 10
de febrero de 2000.
15
C. E. SANDOVAL RUIZ Y A. FED

ON
[2] Ashenden, Peter J., Tutorial VHDL, EDA Consultant, Ashenden Designs Pty, Ltd.,
http://www.ashenden.com.au
[3] Carpio, Fernando, VHDL. Lenguaje para descripcion y modelado de circuitos, 1997.
[4] Cuervo, Efren C., Construccion de un decodicador ReedSolomon en VHDL.
[5] Chang, K. C., Digital Systems Design with VHDL and Synthesis, An Integrated
Approach, IEEE Computer Society, eua, 1999.
[6] IEEE Standard VHDL Language Reference Manual1076, publicada en 2002.
[7] Lopez Martnez, Fco. Javier, Dise no de transmisor y receptor para redes inalmbricas
W-Man, Mencion de Honor Malaga, 2005.
[8] Nazar A. Saqib, Implementacion eciente de algoritmos criptogracos en dispositivos
de hardware recongurable, Tesis doctoral, Mexico, 2004.
[9] Negrete C., Marco A, Inversion modular en campos nitos binarios, mayo de 2006.
[10] Ortiz-Garca, Implementacion en hardware recongurable de un divisor en campos
nitos binarios GF, mayo de 2006.
[11] Prez L., Serafn A., y otros, Dise no de sistemas digitales con VHDL, Editorial Thom-
son, Espa na, 2002, http://www.dte.uvigo.es/vhdl/
[12] Suardaz, Juan, Control electronico mediante telefona movil digital basada en la red
GSM, Revista Tecnologa y Desarrollo, 2004.
[13] Wakerly, John F., Dise no digital: principios y prcticas, tercera edicion, Editorial Pear-
son, Mexico, 2001.
[14] Xilinx System Generator v2.1 for Simulink.
abstract
In this paper we present a simple methodology to design basic and
the state-of-the-art ReedSolomon Coders building blocks, oriented
to eld programmable gate arrays (FPGA). The design methodol-
ogy is initialized with the design at the software level of the Coder,
later the architecture is designed and captures using VHDL, nally
the simulations using ModelSim 5.7 and results allow validating the
behavioral of the coder the design methodology proposed.
The operations in nite or Galois elds, GF(2
m
), is a basic for
several algorithms in areas error-correction codes and digital sig-
nal processing. Nevertheless the involved calculations are very time
consuming, especially when they are performed by software. Due
to performance and security reason, it is rather convenient to im-
plement algorithms by hardware.
16

Das könnte Ihnen auch gefallen