Descargar

Diseño de un dsPIC en VHDL


    RESUMEN

    El uso de herramientas CAD, son imprescindibles para el diseño de sistemas electrónicos hoy en día, pero para afrontar sistemas de alta complejidad, es necesario utilizar metodologías de diseño adecuadas, con el fin de tener resultados óptimos en su síntesis en cuanto a velocidad, aprovechamiento eficiente del área del circuito integrado y consumo óptimo.

    1. INTRODUCCION

    Para diseñar sistemas electrónicos con herramientas CAD, se debe de partir en primera instancia de un conocimiento previo de las funciones que tiene la herramienta de diseño a utilizar, para así poder aprovechar todo el potencial del software en el diseño a realizar, seguido de un conocimiento a nivel funcional del circuito que se desea diseñar, una vez iniciadas estas etapas se comenzara de decidir que metodología de diseño se aplicara y el grado de abstracción, dependiendo de los requisitos del sistema a modelar, si son modelos solo para simulación se pueden tratar con un nivel de abstracción alto, pero si requiere de circuitos sintetizables en FPGAS, CPLD o SoC, se debe pensar en modelar el sistema a un nivel comportamental

    Para diseñar el dsPIC se escogió la herramienta QUARTUS en su versión 6.1 de la compañía Altera, software especializado para diseñar circuitos digitales que son sintetizables en circuitos integrados FPGA. El dispositivo seleccionado para la síntesis es de la familia Stratix, para su análisis y síntesis se decidió por una técnica de optimización balanceada en área y velocidad, en el proceso de análisis de tiempo se selecciona el método clásico.

    Se escoge el dsPIC30F4011 de la compañía Micro Chip, que es un microcontrolador programable con bloques especiales DSP, para el tratamiento y procesamiento de señales digitales.

    El dsPIC se diseña basándose en un núcleo RISC con arquitectura tipo Harvard modificada con instrucciones procesadas de forma Pipeline.

    Se escoge como metodología de diseño una metodología hibrida, basando el diseño general con metodología TOP-DOWN y algunos módulos específicos como BOTTON-UP. Los diseños son realizados en código VHDL y conexionados entre ellos por medio de diagramas de bloques.

    2. MEMORIA DE DATOS

    La memoria de datos posee un banco de memoria de 4 Kbytes, que soporta 6 modos de direccionamiento:

    ? Directo

    ? Indirecto

    ? Indirecto con pre incremento

    ? Indirecto con post incremento

    ? Direccionamiento circular

    ? Direccionamiento inverso

    Consta de 2 buses de datos externos de 16 bits cada uno, con un diseño en hardware para soportar los direccionamientos necesarios, posee los siguiente modulos:

    ? 3 módulos de memoria tipo fifo.

    ? Sumador-restador de 16 bits.

    ? Banco de memoria 4Kbytes.

    ? Modulo de activación de direccionamientos especiales.

    2.1 Memorias tipo FIFO.

    Las memorias fifos "XWAGU" apunta a las direcciones de memoria para escritura, las fifos WRAGU y YRAGU apuntan a las direcciones de lectura, cada una de 16 bits diseñadas de manera que infieren la megafuncion altsyncram, se logra obtener una memoria capaz de soportar cada una hasta 7 direccionamientos tipo FIFO (First in first out).

    2.2 Sumador-restador.

    El sumador-restador realiza el incremento de las direcciones cuando se requiere realizar direccionamiento indirecto con incremento o decremento en las posiciones de memoria, también maneja el algoritmo para realizar el direccionamiento inverso, utilizado para simplificar le reordenamiento de datos para algoritmos usados en la FFT (Fast Fourier Transform). Internamente controla la salida hacia el bus de datos de 16 bits "x_data_bus".

    2.2 Banco de memoria.

    El banco de memoria se diseña basado en un código VHDL que posee dos relojes duales, uno para lectura y otro reloj para escritura, que logra inferir la megafuncion altsyncram, logrando así utilizar los bloques dedicados para memoria que posee la FPGA Stratix.

    2.3 Modulo de activación de direccionamiento.

    El modulo de activación de direccionamientos especiales "DATA" es un diseño que posee registros para la activación del direccionamiento circular, con el objetivo de eliminar la necesidad de software para la comprobación de limites cuando se realizan bucles interactivos en operaciones DSP, también controla la activación del direccionamiento inverso generado por el sumador-restador.

    3. MEMORIA DE PROGRAMA

    La memoria de programa en el dsPIC es una memoria tipo EPROM donde se pueden guardar valores de manera permanente cuando se realiza cualquierfunción con el microcontrolador, en sistemas FPGA no se puede sintetizar memorias tipo EPROM, pero si se puede simular el comportamiento de esta diseñando el modulo de memoria de programa por medio de una megafuncion de una memoria RAM con triple puerto de entrada y dos de salida, con un tamaño de 16 bits x 4096 palabras, con la posibilidad de acceder a un archivo tipo HEX en donde se guarda toda la información del código para los ejemplos de simulación del dsPIC en VHDL. Se diseñaron dos métodos de acceso para el espacio de la memoria de programa:

    ? Por medio del contador de programa "PC".

    ? Mediante instrucciones de lectura y escritura tipo "TABLE".

    El presente texto es solo una selección del trabajo original. Para consultar la monografìa completa seleccionar la opción Descargar del menú superior.