You are on page 1of 10

IMPLEMENTACIN DE CDIGOS DE LNEA EN UNA TARJETA DE ENTRENAMIENTO BASADA EN UN FPGA

Checa Romo Viviana Elizabeth, Ing. Velsquez Crdova Jos Daniel, Ing. lvarez Rueda Robin, PhD.
Escuela Politcnica Nacional Isabel La Catlica 202 y Veintimilla, Quito-Ecuador
Resumen Se describe la implementacin de cdigos de lnea con el lenguaje de programacin VHDL en el FPGA de la Spartan-3E Starter Kit Board. En primer lugar se realiza una introduccin a los FPGAs y la Spartan-3E Starter Kit Board; tambin se desarrolla un estudio preliminar de la sntesis, simulacin y programacin en Xilinx ISE; y se proporciona un panorama de VHDL. Posteriormente se detalla cada cdigo de lnea implementado, adems se visualizan simulaciones de la codificacin en el software Matlab. Luego se describe la elaboracin de una interfaz grfica en Matlab, la misma que permite: introduccin de datos, configuracin del puerto de comunicacin y velocidad de transmisin, escoger el tipo de cdigo de lnea a implementarse, observar las seales enviada y recibida posterior a la decodificacin en el FPGA, adems de desplegar informacin adicional. A continuacin se explica la implementacin de cada cdigo de lnea en VHDL y se muestra la simulacin en Testbench. Tambin se detalla el diseo de un circuito interpretador unipolar-bipolar y un circuito interpretador bipolar-unipolar. Finalmente se visualizan los resultados obtenidos en el FPGA con un osciloscopio que son semejantes a los obtenidos en Matlab. Trminos para indexacin FPGA, Spartan-3e starter kit board, VHDL, cdigos de lnea, Interfaz grfica, Matlab.
1

I.

INTRODUCCIN A LOS FPGAs

Un Dispositivo lgico programable o PLD, es un circuito integrado formado por cierto nmero de compuertas lgicas y/o mdulos bsicos cuyas conexiones pueden ser personalizadas o programadas por el usuario final para construir circuitos digitales reconfigurables. Los PLDs se clasifican en: SPLDs (Dispositivo lgico programable simple), CPLDs (Dispositivo Lgico Programable Complejo), y FPGAs (Matrices de Compuertas Programables en Campo). FPGA, Field Programmable Gate Array, es un PLD, que tiene capacidad lgica muy alta debido a que posee un arreglo bidimensional de bloques lgicos comunicados por medio de una matriz de cables e interruptores cuya interconexin y funcionalidad son programables por los usuarios. El tamao, estructura, nmero de bloques, cantidad de conexiones y forma de conectividad difieren de una arquitectura a otra. La arquitectura de los FPGAs de la familia Spartan 3E consta de 5 elementos fundamentales programables: CLBs (Bloques Lgicos Configurables), IOBs (Bloques de Entrada/Salida), Bloques RAM, Bloques Multiplicadores, DCMs (Administradores de Reloj). En el mercado se ofertan diferentes tarjetas de evaluacin y desarrollo, las cuales incluyen un FPGA y una diversidad de perifricos. Spartan-3E Starter Kit Board es una tarjeta de entrenamiento que dispone principalmente de los componentes: FPGA Spartan-3E XC3S500E de Xilinx, Flash PROM de 4 Mb, CPLD CoolRunner XC2C64A, 4 interruptores deslizantes, 3 entradas para seal de reloj, dos conectores seriales RS-232 (un DB9 hembra y un DB9 macho), una variedad de

Checa R. Viviana E. E-mail: vivi_chk@yahoo.com Velsquez Jos Daniel. E-mail: jdanivelasquez@hotmail.com lvarez Robin, profesor a tiempo completo de la Facultad de Ingeniera Elctrica y Electrnica de la Escuela Politcnica Nacional. E-mail: robin.alvarez@epn.edu.ec

conectores de expansin, tres conectores perifricos de 6 pines de entrada y salida. Xilinx ISE, es un conjunto de herramientas de desarrollo elaborado por Xilinx para facilitar la creacin de diseos. El flujo de diseo utilizando el software Xilinx ISE de un mdulo hardware sobre un FPGA comprende los siguientes pasos: creacin del modelo, sntesis del diseo, implementacin del diseo y programacin del dispositivo. HDL (Lenguaje de Descripcin de Hardware) define las funciones de los CLBs y las conexiones entre ellos. VHDL significa Very high speed integrated circuit Hardware Description Language y es un HDL. Un cdigo VHDL autnomo est compuesto de 3 partes fundamentales: Declaracin de Libreras, Entidad y Arquitectura. La Declaracin de Libreras es una coleccin de partes de cdigo usadas comnmente. En la declaracin se debe incluir todas las libreras que van a ser utilizadas en el diseo. La Entidad especifica todos los puertos de entrada y salida. La Arquitectura contiene el cdigo que describe el comportamiento del circuito. En VHDL se puede construir: Cdigo Concurrente, cdigo que se ejecute en forma paralela; y Cdigo Secuencial, tambin llamado cdigo de comportamiento, las secciones de cdigo que se ejecutan en forma secuencial son: procesos, funciones y procedimientos. II. CDIGOS DE LNEA

En el presente proyecto se ha considerado desarrollar los cdigos de lnea que se muestran en la Tabla 1, relacionados a su polaridad. Tabla 1: Cdigos de Lnea considerados en el presente proyecto de titulacin relacionados a su polaridad.
Cdigos unipolares NRZ RZ 50 % 4B5B Diferencial tipo M (NRZI) Diferencial tipo S Cdigos Polares Bifase L o Manchester Manchester Diferencial CMI Cdigos Bipolares AMI HDB3 MLT-3

Todos los cdigos presentados en la tabla anterior, han sido desarrollados en VHDL en base a su algoritmo de codificacin y diagrama de flujo de la codificacin en Matlab. El cdigo Diferencial Tipo M se lo ha escogido como ejemplo en este documento. Diferencial Tipo M En el cdigo diferencial tipo M el dgito binario 1L cambian el nivel de la seal (Si estuvo en A cambiar a +A), en tanto que los 0L mantienen dicho nivel. El diagrama de flujo de la programacin en Matlab se visualiza en la Figura 2.

Un Sistema de Comunicaciones tiene el propsito de transmitir informacin desde un emisor hasta un receptor a travs de un canal.

Figura 1: Diagrama de bloques de un Sistema de


Comunicaciones.

Dentro del esquema que se presenta en la figura 1, los Cdigos de Lnea se encuentran en el bloque Codificador de Fuente, donde desempean la funcin de transformar los smbolos que emite el Emisor en smbolos de un cdigo binario ms adecuado para ser transmitido a travs de un canal de comunicaciones.

Figura 2: Diagrama de Flujo de la codificacin


Diferencial Tipo M en Matlab.

La simulacin para ste cdigo se la hace en base a los caracteres a y b que juntos en binario son: 1000011001000110.

Figura 3: Codificacin Diferencial Tipo M en


Matlab.

Figura 5: Diagrama de Bloques de la Interfaz


Grfica.

DESARROLLO DE LAS GUIs Presentacin de la Interfaz Grfica Al inicializar la Interfaz Grfica, la primera ventana que se muestra es la de Presentacin. Figura 4: Espectro de potencia terico para el
cdigo Diferencial Tipo M.

III.

DESARROLLO DE LA INTERFAZ GRFICA

La Interfaz Grfica se desarroll en el Software de Matlab, en base a su herramienta GUIDE (Ambiente de desarrollo de Interfaces Grficas de Usuario), ya que combina un ambiente grfico con la programacin en cdigo. El propsito de la realizacin de la Interfaz Grfica es que el usuario disfrute de un entorno amigable, ante el ingreso de la secuencia de caracteres a ser codificada y el tipo de cdigo de lnea a implementarse en el FPGA. Estos caracteres se transmiten del PC al FPGA (Dispositivo que se encarga de la codificacin y decodificacin) en forma de bits a travs del puerto RS-232 (Puerto de Comunicacin de la Spartan-3E Starter Kit Board). Posterior a la decodificacin, el PC recibe los caracteres decodificados desde el FPGA, entonces la interfaz grfica presenta: la secuencia de caracteres antes de ser codificados enviada al FPGA, la seal en forma de bits enviada, la secuencia de caracteres decodificados recibida desde el FPGA y la seal en forma de bits recibida. El esquema de la Interfaz Grfica se presenta en la Figura 5.

Figura 6: Presentacin de la Interfaz Grfica. Configuracin e Ingreso de Datos Esta GUI permite al usuario seleccionar las opciones de configuracin e ingresar los datos (caracteres) a ser codificados y decodificados en el FPGA.

Figura 7: Configuracin e Ingreso de Datos. Seleccin del Cdigo de Lnea Para esta GUI, existen tres marcos especficos: Generales, Simulacin y Hardware.

Decodificacin sta Esta pantalla muestra la secuencia de caracteres enviados y recibidos por el FPGA, y su respectivo valor en binario Adems se binario. visualiza la velocidad de transmisin y la velocidad de seal.

Figura 8: Seleccin del Cdigo de Lnea. Cada uno de los botones que contiene esta GUI se describen a continuacin: Informacin de Cdigo de Lnea, este botn presenta una Interfaz Grfica que visualiza una resea del cdigo de lnea escogido. Visualizacin del Espectro Terico, abre una pantalla que muestra la Densidad Espectral de Potencia Terica luego de la codificacin con el cdigo de lnea seleccionado. Graficar Seales a Codificar y Codificada, presenta una ventana que incluye tres grficas: la seal de reloj, la seal a codificar (originada como resultado de ensamblar los identificadores de inicio y fin de datos y todos los bits de datos producidos por la secuencia de caracteres introducida), y la seal codificada con el cdigo de lnea seleccionado. Enviar Datos al FPGA para la Codificacin, Co al presionar este botn, el PC enva un flujo de l bits que contiene un nmero binario que identifica el cdigo de lnea seleccionado que se desea implementar en el FPGA, seguido de los datos a ser codificados. Ver datos recibidos Decodificados al Decodificados, presionar este botn Matlab toma los datos binarios que llegan por el pin de recepcin del puerto RS-232 y los muestra en las GUIs: 232 Decodificacin, y Grfica de Seal Enviada y Recibida.

Figura 10: Visualizacin de Caracteres Enviados y


Recibidos del FPGA.

Grfica de seales enviada y recibida Permite visualizar la ventana de la Figura ermite 11, que muestra tres grficas: la seal de reloj, la seal enviada, y la seal recibida del FPGA. Esta ventana tiene tres botones: Ingresar Nuevos Datos, abre la ventana de Configuracin e Ingreso de Datos con el propsito de iniciar una nueva codificacin; ropsito Atrs, abre la ventana Decodificacin; Salir, tana Deco cierra la interfaz grfica.

Figura 11: Grfica de la Seal de Reloj, Seal Enviada y Seal Recibida del FPGA. IV. IMPLEMENTACIN Y SIMULACIN DE LOS CDIGOS DE LNEA

Figura 9: Grfica de la Seal de Reloj, Seal a


Codificar y Seal Codificada.

La Figura 9 muestra el caso especfico cuando el carcter introducido por el usuario es a y el cdigo de lnea seleccionado es Diferencial Tipo M.

Para la codificacin y decodificacin de datos, es necesario considerar los siguiente: Configurar la velocidad en el FPGA, es decir generar un reloj interno de frecuencia determinada que permita llevar a cabo procesos en VHDL; almacenar los datos lmacenar despus de su recepcin en el FPGA para su posterior codificacin; identificar el tipo de dentificar cdigo de lnea a implementarse despus del implementarse; almacenamiento de datos serializarlos para que sean codificados, implementar un Interpretador Unipolar Bipolar y un Interpretador Bipolar Unipolar debido a las caractersticas de la Spartan 3E Starter Kit Board (No trabaja con niveles de voltaje n negativos); posterior a la decodificacin, osterior

ensamblar los datos para que sean enviados a la Interfaz Grfica; enviar los datos decodificados desde el FPGA a Matlab para la respectiva visualizacin. Banco de Trabajo A continuacin se presenta los elementos que conforman el banco de trabajo utilizado en el proyecto. Hardware Tarjeta de entrenamiento SPARTAN 3E STARTER KIT BOARD Circuito externo interpretador UnipolarBipolar y Bipolar-Unipolar 2 Fuentes DC Osciloscopio Tektronix TDS 1002B Computador con Sistema operativo Windows XP con Service Pack 3, dos puertos USB, memoria RAM, mnimo de 512 Mbytes, y Procesador Pentium 4 o superior Cable USB-Serial Software MATLAB 7.1 Xilinx ISE 10.1

Donde el Stream de Datos est constituido por el Identificador de Inicio de Datos, Identificador de Cdigo, Datos (caracteres ASCII de 8 bits) e Identificador de Fin de Datos. Diagrama de Bloques de la Implementacin en VHDL A continuacin se muestra el esquema de implementacin en VHDL del proyecto.
Reloj_48MHz
Reloj_38400

Reloj_48000

NRZ_codificacion RZ_codificacion cod_4B5B

Proceso configuracion_velocidad

Dif_M_codificacion Dif_S_codificacion

Proceso entrada_de_datos

Manchester_codificacion

Manch_dif_codificacion

Proceso matriz_datos

CMI_codificacion AMI_codificacion

Proceso serializacion_datos Proceso codificacion

HDB3_codificacion MLT3_codificacion NRZ_decodificacion RZ_decodificacion

Proceso decodificacion Proceso ensamblaje_bandera_matriz Proceso serializacion_salida


C4B5B_decodificacion
Dif_M_decodificacion Dif_S_decodificacion Manchester_decodificacion Manch_dif_decodificacion CMI_decodificacion AMI_decodificacion

Figura 12: Banco de Trabajo. Para los propsitos del proyecto, los perifricos utilizados de la tarjeta de entrenamiento son: el conector DB9 hembra (DCE), que permite la transmisin y recepcin de datos; los interruptores deslizantes y los pines de entrada y salida adecuados. La transmisin y recepcin de datos entre MATLAB y el FPGA se la hace de manera asincrnica (no hay ninguna relacin de tiempo entre MATLAB y el FPGA), debido a que este modo se usa tpicamente en transmisin de cdigos ASCII a travs del puerto RS-232. El flujo de bits que enva Matlab hacia el FPGA est constituido por el siguiente esquema:

HDB3_decodificacion MLT3_decodificacion

Figura 14: Diagrama de Bloques del programa


principal y sus componentes en VHDL.

Componentes de Reloj La tarjeta de entrenamiento dispone de un nico reloj interno de 50 MHz, a partir de este se realizan las derivaciones requeridas por el proyecto.

Figura 15: Seales de reloj obtenidas a partir del reloj interno que posee la Tarjeta de Entrenamiento. Figura 13: Transmisin de seales desde
Matlab al FPGA.

Desarrollo de Procesos Configuracin de Velocidad Este proceso tiene como finalidad obtener en el FPGA seales de reloj de frecuencia adecuada de acuerdo a la velocidad que el usuario ha seleccionado en la Interfaz Grfica. Las seales de reloj RELOJ_OUT y RELOJ_OUT_Doble se obtienen a partir de la seal de reloj RELOJ_BASE, mientras que RELOJ_OUT_4B5B se obtiene a partir de RELOJ_BASE_4B5B. Entrada de Datos Este proceso realiza una recepcin de datos serial, el flujo de bits de datos consiste en 11 bits por carcter, el primero es el bit de inicio, el cual, si est en cero, indica el inicio de la recepcin. Los siguientes ocho bits son los de datos. El dcimo bit es el de paridad, y finalmente el undcimo bit es el de parada, el mismo que debe ser uno lgico al concluir la transmisin del carcter. Matriz de Datos El propsito de este proceso es almacenar en una matriz 100 x 8, los valores de datos, que representan el valor binario de los caracteres ASCII ingresados por el usuario. Serializacin de Datos Una vez almacenada la seal de datos en la matriz, este proceso permite tomar bit a bit todos los caracteres a ser codificados (desde el bit menos significativo del primer carcter hasta el bit ms significativo del ltimo carcter ingresado), obtenindose la seal a codificar. Codificacin La eleccin del Cdigo de Lnea que se va a implementar se establece de acuerdo al Identificador de Cdigo, ID_Codigo, que forma parte del flujo de bits que se enva de MATLAB a la Spartan 3E Starter Kit Board. Para la codificacin de cada cdigo de lnea se la hace en componentes diferentes. La seal de reloj RELOJ_OUT se la utiliza para la codificacin de los siguientes cdigos: NRZ, Diferencial Tipo M, Diferencial Tipo S, AMI, HDB3 y MLT3. En cuanto a los cdigos que requieren transicin a mitad de tiempo de bit, la seal de reloj para codificacin es RELOJ_OUT_Doble, y para el cdigo de lnea 4B5B se utiliza la seal RELOJ_OUT_4B5B. Para la visualizacin de la codificacin con cada uno de los cdigos ya sean unipolares, polares o bipolares, se crean dos seales: salida1 y salida2, las cuales toman valores que constituyen las entradas al circuito externo interpretador unipolar a bipolar, dando como

resultado tres niveles de voltaje, - 5, 0 y 5 [V], tal como se muestra en la Tabla 2. Tabla 2: Niveles de voltaje de acuerdo a las
seales de salida
Niveles de Voltaje 0 [V] - 5 [V] + 5 [V] Restringido salida1 salida2

0L 0L 1L 1L

0L 1L 0L 1L

A continuacin se va presentar la componente de la codificacin correspondiente al cdigo Diferencial Tipo M. Codificacin Diferencial Tipo M La componente DIF_M_codificacion permite realizar la codificacin Diferencial tipo M. En la Figura 16 se muestra el diagrama de flujo de la programacin en VHDL para esta componente.

Figura 16: Diagrama de Flujo Codificacin


Diferencial Tipo M en VHDL.

La simulacin de esta componente se la hace con TestBench de Xilinx ISE 10.1. La seal para codificacin la constituyen los caracteres ab que en binario es 100011001000110.

Figura 17: Simulacin en Testbench de la


codificacin Diferencial Tipo M en VHDL.

Decodificacin Para continuar la construccin del diseo en forma jerrquica, la programacin en VHDL para la decodificacin con cada cdigo de lnea tambin se la realiza en componentes diferentes. Se identifica al cdigo de lnea, con el mismo ID_Codigo que en la codificacin. Se utilizan dos seales de entrada de datos que representan la seal codificada debido a que el FPGA no puede recibir niveles de voltaje negativos. Los valores que toman estas seales de entrada al FPGA son las salidas del circuito externo interpretador bipolar unipolar, tal como se muestra en la Tabla 3. Tabla 3: Niveles de voltaje de acuerdo a las
seales entrada_cod1 y entrada_cod2.
Niveles de Voltaje Restringido - 5 [V] 0 [V] + 5 [V] entrada_cod1 0L 0L 1L 1L entrada_cod2 0L 1L 1L 0L

Figura 19: Simulacin en Testbench de la decodificacin Diferencial Tipo M en VHDL. Identificacin de bandera de inicio, ensamblaje de datos, matriz. Luego de la decodificacin, se procede a almacenar los bits de datos de la seal decodificada en la matriz de decodificacin de tamao 100 x 11. Este proceso incluye en cada fila de la matriz el bit de inicio, bit de paridad y bit de parada, a parte de los 8 bits decodificados. Serializacin y salida de datos. Este proceso tiene como objetivo el retorno de los datos decodificados como un stream de once bits por carcter a la interfaz grfica. Asignacin de pines A las seales de la entidad del programa principal se les asigna varios pines de la Spartan 3E Starter Kit Board. Estos pines pueden ser para seales de entrada o salida, como: reset, pines del puerto RS-232, entradas y salidas de los circuitos interpretadores, seales de reloj, seal a codificar, seal decodificada, entre otras. Diseo y construccin de los circuitos interpretadores Debido a que la tarjeta de entrenamiento trabaja con niveles de voltaje LVTTL (TTL de bajo voltaje), nicamente se obtienen voltajes positivos; por consiguiente se requiere la construccin de un circuito externo interpretador unipolar bipolar y un circuito externo interpretador bipolar unipolar para los cdigos de lnea polares y bipolares.

Al igual que en la codificacin, se va a tomar como ejemplo el cdigo Diferencial Tipo M para la decodificacin. Decodificacin Diferencial Tipo M La componente DIF_M_decodificacion tiene tres seales de entrada y una seal de salida. En la Figura 18 se observa el diagrama de flujo para esta componente.

Figura 20: Diagrama de Bloques de la conexin


entre el FPGA y los circuitos externos.

Figura 18: Diagrama de Flujo de la Decodificacin


Diferencial Tipo M en VHDL.

La simulacin de la decodificacin se la realiza en TestBench.

Circuito interpretador unipolar bipolar Este circuito externo tiene dos seales de entrada binarias y obtiene una seal bipolar de salida, de acuerdo a la Tabla 2, esto se puede efectuar con el diagrama de bloques de la Figura 21. El diagrama de bloques se lo

cumple basndose operacionales.


salida1

en

amplificadores
Salida Bipolar

V.

RESULTADOS

salida2

Amplificador Inversor Av = 1

Con el objetivo de visualizar y almacenar los resultados producidos en la implementacin se utiliza el hardware DS1M12 Osciloscopio y Generador de o Funciones USB, instrumento de EasySync. Visualizacin de las seales de reloj Las Figuras 23 y 24 presentan las tres seales de reloj generadas en base a RELOJ_BASE y RELOJ_BASE_4B5B. Estas seales se producen cuando se ha seleccionado la velocidad estndar de 9600 bps en la interfaz grfica.

Figura 21: Diagrama de bloques del circuito ues


Interpretador unipolar-bipolar. ipolar

En la Figura 21 se aprecia que se deben utilizar dos amplificadores operacionales, uno como amplificador inversor para obtener un nivel de voltaje negativo cuando la entrada al mismo sea un 1L, y el otro como sumador no inversor. El amplificador operacional seleccionado para la implementacin de este circuito externo es el LF353, debido a su bajo costo y buena respuesta a altas velocidades (el tiempo de subida y tiempo de bajada est l en el orden de las unidades de us), suficiente para que no exista distorsin e ISI ara (Interferencia inter smbolos) a la mayor velocidad, 19200 bps, en los cdigos que tienen transiciones a mitad de bit. Circuito interpretador bipolar unipolar Este circuito tiene como entrada una seal de tres niveles de voltaje -5 [V], 0[V] y +5[V] 5 segn sea el caso del cdigo. El circuito interpretador bipolar - unipolar va a ser el encargado de traducir los tres niveles de voltaje en dos salidas binarias que van a ser entradas a la tarjeta de entrenamiento para la decodificacin. En la Figura 22 se observa el diagrama de bloques que representa la estructura del diseo de este circuito.
Amplificador Sumador No Inversor Entrada Bipolar Salida unipolar 1

Figura 23: Seales de Reloj RELOJ_OUT y


RELOJ_OUT_Doble.

Figura 24: Seal de Reloj RELOJ_OUT_4B5B. Resultados de funcionamiento La codificacin y decodificacin con todos los cdigos de lnea expuestos se puede realizar a las velocidades 2400, 4800, 9600 y 19200 bps. Sin embargo las pruebas de funcio funcionamiento que se presentan, es a 19200 bps por ser la condicin ms crtica. Todas las pruebas de funcionamiento se realizan con el carcter ASCII a de valor binario 1000 0110, el bit menos si significativo a la izquierda. El carcter de ejemplo est . acompaado de dos caracteres adicionales que constituyen los identificador de inicio y cadores fin de datos. La Figura 25 muestra la codificacin de la seal de datos con el Cdigo Diferenci tipo M igo Diferencial en Matlab.

Amplificador Sumador Inversor

Salida unipolar 2

Figura 22: Diagrama de bloques del circuito es


interpretador bipolar-unipolar. ipolar

Caracteres restringidos Se han utilizado varios identificadores como: de inicio y fin de datos, de velocidad, y de cdigo de cada uno de los cdigos de lnea utilizados; los cuales corresponden a caracteres que no se utilizan usualmente Los usualmente. caracteres restringidos que no deben ser ingresados como datos, corresponden a los gresados identificadores mencionados.

Anlisis de Tiempos de Procesamiento En la Tabla 4 se presenta un resumen de los tiempos de procesamiento totales en la codificacin y decodificacin en VHDL desde que se obtiene la seal de datos, con cada datos uno de los cdigos de lnea que se analiza. ea analiza Tabla 4: Tiempos de procesamiento totales de los
Cdigos de Lnea. Lnea

Figura 25:1 Codificacin Diferencial tipo M en MATLAB. En la Figura 26 se muestra la seal de datos a codificar y la seal codificada. Se aprecia que existe un retardo de un tiempo de bit en xiste realizarse la codificacin.

Cdigo de Lnea NRZ RZ 50% 4B5B Diferencial Tipo M Diferencial Tipo S Manchester Manchester Diferencial CMI AMI HDB3 MLT3

Tiempo de Procesamiento a 19200 bps 104 s 52 s 892 s 104 s 104 s 52 s 52 s 78 s 104 s 520 s 104 s

Tiempo de Procesamiento a otras velocidades 2 tiempos de bit 1 tiempo de bit Aprox. 17 tiempos de bit 2 tiempos de bit 2 tiempos de bit 1 tiempo de bit 1 tiempo de bit 1, 5 tiempos de bit 2 tiempos de bit 10 tiempos de bit 2 tiempos de bit

Figura 26: Visualizacin de la Codificacin


Diferencial tipo M.

VI.

CONCLUSIONES

La seal codificada y la seal decodificada se visualizan en la Figura 27. Existe un retardo de . un tiempo de bit de la seal decodificada respecto a la seal codificada.

El DFS (Sintetizador de Frecuencia) del DCM, es una herramienta que cumple un papel importante en la elaboracin de este proyecto, ya que permiti obtener la seal de reloj bsica a partir de la cual se desarrollaron otras seales de reloj ocupadas en la transmisin, recepcin, codificacin, y decodificacin de datos en la tarjeta de entrenamiento. La programacin en VHDL no debe contener ogramacin seales y/o variables que pueden ser omitidas, las listas de sensibilidad deben contener todas las seales que al cambiar de estado permiten que se ejecute un proceso, las seales y variables de los tipos entero y natural deben natura declararse en rangos numricos en los cuales se desenvuelven, y al utilizar segmentos secuenciales se debe saber las formas de d utilizacin de condicionales. Los scripts de MATLAB y los cdigos fuente con el lenguaje de programacin VHDL son totalmente diferentes. Los scripts de MATLAB ente son secuenciales, en su lugar VHDL es inherentemente concurrente. En los resultados obtenidos se visualiza que para cada cdigo de lnea en particular, desde que se obtiene la seal a codificar en el FPGA hasta que se la codifica, al igual desde que ingresa la seal codificada hasta que se la decodifica; el tiempo de procesamiento se pro

Figura 27: Visualizacin de la Decodificacin


Diferencial Tipo M.

Visualizacin de las seales enviadas desde el FPGA a la interfaz grfica En la Interfaz grfica se grafica los datos recibidos, sin bits de inicio, paridad y parada tal como lo muestra la Figura 28. .

Figura 28: Grfica de los datos recibidos en la atos Interfaz Grfica.

mantiene en funcin de tiempos de bit, es decir no se tiene un tiempo de procesamiento fijo sino depende de la velocidad de transmisin escogida por el usuario. VII. RECOMENDACIONES

http://www.opencores.org/ http://www.fpga4fun.com/ http://www.isa.cie.uva.es/proyectos/codec /marco1.html

Se recomienda realizar proyectos de sistemas digitales implementados en VHDL con FPGAs, incluso se podra elaborar un laboratorio de circuitos digitales con FPGAs. Para definir el comportamiento del FPGA se utiliza VHDL, sin embargo se recomienda investigar otros mtodos, entre ellos: Verilog, la herramienta System Generator de Simulink, los IP Cores, la herramienta EDK (Embedded Development Kit). En cuanto a hardware se sugiere investigar la familia de FPGAs Virtex 5 debido a que tiene la misma arquitectura pero atributos diferentes que la familia Spartan 3E; adems se encuentran embebidos en tarjetas de desarrollo que poseen ms perifricos. Como una ampliacin de este proyecto, se propone la implementacin de los cdigos de lnea en base al esquema tradicional de comunicacin de datos, con dos tarjetas de entrenamiento, en conjunto con dos computadores que constituyan un transmisor y receptor conectados por un canal de transmisin, y adems hacer las pruebas a largas distancias. REFERENCIAS

Viviana Checa R. Naci en San Gabriel en 1985. Realiz sus estudios secundarios en la Unidad Educativa Experimental "Manuela Caizares - Quito obteniendo el ttulo de Bachiller en Ciencias especializacin Fsico Matemticas, sus estudios superiores los realiz en la Escuela Politcnica Nacional Quito, en la Facultad de Ingeniera Elctrica y Electrnica con especializacin en Ingeniera en Electrnica y Telecomunicaciones. e-mail: vivi_chk@yahoo.com Daniel Velsquez C. Naci en Ambato en 1986. Realiz sus estudios secundarios en el Instituto Tecnolgico Superior Bolvar obteniendo el ttulo de Bachiller en Ciencias y formando parte del cuadro de honor. Sus estudios superiores los realiz en la Escuela Politcnica Nacional - Quito, en la Facultad de Ingeniera Elctrica y Electrnica con especializacin en Ingeniera en Electrnica y Telecomunicaciones. e-mail: jdanivelasquez@hotmail.com Robin lvarez Rueda. Naci en Cayambe, Ecuador, en 1969. Ingeniero en Telecomunicaciones, graduado de la Escuela Politcnica Nacional, Quito Ecuador, 1996; M.Sc. en Telecomunicaciones por la Universidad de Cantabria, Santander Espaa, 2001; Ph.D en Telecomunicaciones por la Universidad Politcnica de MadridEspaa, Enero-2006. e-mail: robin.alvarez@epn.edu.ec

MEYER-BAESE, Uwe; Digital Signal Processing with Field Programmable Gate Arrays. Springer-Verlag Berlin Heidelberg. Alemania. 2001 PEDRONI, Volnei A.; Circuit Design with VHDL. 1a Edicin. 2004 STALLINGS, William; Data and Computer Communications. 5 Edicin. WOODS, Roger; McAllister, John; LIGHTBODY, Gaye; YI, Ying; FPGAbased Implementation of Signal Processing Systems. 1a Edicin. 2008 XILINX, ISE Design Suite 10.1 Release Notes and Installation Guide. 2008. XILINX, Spartan-3 Generation FPGA User Guide XILINX, Spartan-3E FPGA Family XILINX, Spartan-3E Starter Kit Board User Guide

You might also like