Home
Resumen de Tesis JBasurto y JCrespin, director de tesis Msig
Contents
1. Esta prueba se basa en colocar el algortimo CORDIC descrito en lenguaje C en el c digo principal y mediante el uso del temporizaor alt_timestamp medir el tiempo que se toma en realizar el c lculo el algoritmo CORDIC en C int main while 1 int rr alt_ticks_per_second int t1 0 t2 0 t3 0 p1 p2 int angulo1 0 seno coseno printf Ingrese angulo scanf d amp angulo1 int angulo2 angulol to_radianes MUL int k d tx ty tz int x cordic_1K y 0 z angulo2 tI alt_timestamp_start for k 0 kK lt CORDIC_NTAB k d z gt gt CORDIC_NTAB 1 tx x y gt gt k d d ty y x gt gt k d d tz z cordic_ctab k d d x tx y ty Z bz j t2 alt_timestamp coseno x seno y l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l i return 0 l alt_timestamp_start inicia el contador y alt_timestamp detiene el contador entonces el valor del contador est almacenado en la variable t2 Al final de la prueba el temporizador dio por resultado el valor de 9671 flancos de reloj 6 Resultados La siguiente tabla resume los resultados obtenidos en las pruebas realizadas Tabla 2 Comparaci n de la medici n de tiempo de respuesta en diferentes escenarios N meros de flancos Prueba Contador de flacos 15 Core CORDIC Implementacion en C 9671 aprox Podemos observar que el core CORDIC
2. retorna sus salidas m s r pido que su implementaci n en C Esta diferencia se debe porque que el core CORDIC recibe el dato a calcular de manera directa no pasa por el procesador NIOS lo procesa y arroja una respuesta pero al usar el algoritmo CORDIC en lenguaje C para procesar un dato el c digo tiene que ser cargado en memoria y luego al procesador que es donde se va a ejecutar el c digo lo que toma mas tiempo obtener una respuesta a diferencia del core CORDIC 7 Conclusiones e El desarrollo de sistemas embebidos posee enorme versatilidad frente a cambios en el dise o de hardware o software ya que pueden ser modificados en cualquier momento sin alterar o a adir hardware extra en el PBC a diferencia de los m todos tradicionales e La precisi n del resultado entregado por el algoritmo puede mejorarse aumentando el n mero de iteraciones con las cuales opera e El core CORDIC agregado al SOC entrega resultados mucho m s r pido que la implementaci n del algoritmo escrita en lenguaje C dentro del c digo principal del sistema 8 Recomendaciones e La interconexi n entre el core CORDIC y el Sistema Nios puede realizarse instanciando ambas entidades en un nuevo proyecto a adir se ales internas y sentencias de port map e Utilizar las herramientas de depuraci n incluidas en NIOS II SBT para la resoluci n de problemas que aparecieran durante el desarrollo del c digo e Para realizar mediciones de tiempo s
3. CORE FPGA NIOS II SOPC Builder Abstract The Project has as its goal the implementation of a configurable NIOS II hardware based embedded System and programmed into a FPGA that will contain an IP core module which function is to execute transcendental operations The IP CORE is based in CORDIC algorithm and together with others embedded blocks into an ALTERA CYCLONE II FPGA device interfaces with the NIOS II processor by an Avalon bus generated and configured automatically by the SOPC builder construction tool This Project is limited to calculate 3 trigonometric functions which are Sine Cosine and Tangent the user inputs by the keyboard the function to execute and the angle value the first two functions are gotten from the CORDIC core and the Tangent function as a result of the Sine and Cosine relation The finality of using an IP CORE resides into improve the system efficiency measuring its time response Keywords IP CORE FPGA NIOS II SOPC Builder 1 Introducci n Uno de los tantos problemas presentes en la ingenier a es el c lculo de funciones trascendentales funciones trigonom tricas logar tmicas y exponenciales debido a su complejidad y a los recursos que se requiere para la implementaci n en la actualidad existen grandes sistemas que usan aplicaciones que requieren de este tipo de c lculo como ejemplo podemos mencionar a los detectores de fase donde es necesario el c lculo de la tangente inversa para sincronizac
4. M QUINA CALCULADORA DE FUNCIONES TRASCENDENTALES BASADA EN EL ALGORTIMO CORDIC CON NIOS II Juliana Basurto Jorge Cresp n Ing Ronald Ponguillo Facultad de Ingenier a en Electricidad y Computaci n Escuela Superior Polit cnica del Litoral ESPOL Campus Gustavo Galindo Km 30 5 V a Perimetral Apartado 09 01 5863 Guayaquil Ecuador jabasurt espol edu ec joxacres Oespol edu ec rponguilGespol edu ec 006 Resumen El proyecto tiene como finalidad la implementaci n de un sistema embebido en una arquitectura de hardware basada en el procesador configurable Nios II y programado en un FPGA que tendr inmerso un m dulo ip core cuya funci n es realizar el c lculo de funciones trascendentales El m dulo IP CORE est basado en el algoritmo CORDIC y juntos a otros bloques embebidos en un dispositivo ALTERA CYCLONE II FPGA se interconectan al procesador NIOS H por medio de la implementaci n de un bus Avalon que es generado y configurado de manera autom tica por la herramienta de construcci n SOPC Builder Este proyecto est limitado al c lculo de 3 funciones trigonom trica que son Seno Coseno y Tangente el usuario ingresara por teclado la funci n a calcular y el valor del ngulo las dos primeras obtenidas del core CORDIC y la Tangente como resultado de la relaci n de Seno y Coseno La finalidad de usar un IP Core radica en mejorar la eficiencia del sistema medida por su tiempo de respuesta Palabras Claves IP
5. adido los IP s necesarios para nuestro sistema presionamos el bot n GENERAR Este proceso crear una descripci n en lenguaje HDL de todos los IP que se agregaron al sistema SOPC Builder En la Figura 5 podemos observar en un bloque esquem tico el sistema basado en NIOSII Figura 5 Bloque del sistema basado en NIOS II 4 2 Inclusi n de un ip core al sistema basado en NIOS II Nuestro sistema debe realizar el c lculo de funciones senos cosenos y tangentes para lo cual vamos a utilizar un CORE basado en el algoritmo CORDIC El core est escrito en lenguaje VHDL la creaci n de CORES utilizando lenguajes de descripci n de hardware est fuera del alcance de este proyecto y fue obtenido de la web WWW OPpencores org El core est formado por 3 archivos que deben ser agregados a nuestro proyecto en QuartusII Para a adir los archivos del core seguiremos la siguiente ruta en QuartusIl Project gt Add Remove Files on a Project General Fies libraries Select the deson files you want to indude in the project Cli 4 Operating Settings and Corcitions Wectory to the project Votage p Temperature Fie name 4 Compiaton Process Settings Early Timing Estimate Incremental Compilaton Physical Synthesis Optimizations 4 EDA Tool Settings prdicftrunk polar wectjsc corprocvhd Desgn Eni y Synthesis DE2 Meda Computer vhd Simulation D rios_system gp Formal Verifica don Block 1 0df Bowrdevel Block4 bdf Figura 6 A adir los archivos de
6. ci n de pines usados se al ENTRADA impar Pas RAD Se ales de salida ENTI AR tmp TONS del teclado que son leidas por el ENTRADA Input Pin m2o procesador O me O en LEDS ouput Pinia a mostrarse en los LEDS 1 Output PIN_AF22 leds verdes LEDS 0 Output PIN_AE22 SALIDA 3 Output PIN_M23 SALIDA 2 Output PIN_M22 Se ales de entrada SALIDA Output Pinko desde el procesador KC CC ETT ia ene reses Ya realizada la asignaci n de pines se procede a compilar el proyecto en Quartusll donde son generados los archivos necesarios para programar y configurar la FPGA Antes de iniciar la carga del dise o debemos revisar e Que se est aplicando alimentaci n a la tarjeta DE2 e La conexi n USB entre el PC y el puerto USB Blaster de la tarjeta e Configuraci n de la tarjeta DE2 est en modo JTAG e El archivo de dise o que va a ser volcado debe tener extensi n sof SALIDA O CLOCK_27 CLOCK_50 Ele Edt View Processing Tools Window Hep D 1 Enable real time ISP to allow background programming for MAX II and MAX V devices Chedsum Usercade Fie Devi DE2_Media_Computer_ti EP2C35F672 Figura 10 Ventana para cargar la computadora con NIOS II en el dispositivo Presionamos el bot n START Al terminar la barra de progreso muestra 100 En este momento la computadora basada en NIOS II est cargada en el dispositivo pero a n no es capaz de reali
7. i n de portadora en sistemas de Radio Software SR o los sistemas de aviaci n donde debido a diferentes situaciones clim ticas es necesario calcular la rapidez y velocidad de vuelo realizando funciones senos y cosenos El uso de un FPGA nos brinda una excelente v a para el desarrollo de aplicaciones que requieran del c lculo de funciones matem ticas inclusive complejas sobre ambientes de software donde no se posee unidades aritm ticas complejas o multiplicadores y sobre todo a bajo costo es por eso que el algoritmo CORDIC es adecuado para este proyecto ya que est basado en desplazamientos sumas y tablas de b squeda que no requiere de unidades aritm ticas espec ficas para ser implementado lo que lo hace muy efectivo en nuestro hardware 2 Algoritmo CORDIC 2 1 Fundamento te rico 1 Propuesto por Jack Volder en el a o 1959 y es un m todo para calcular funciones elementales usando lo m nimo en hardware como registros de desplazamientos sumadores restadores y comparadores Existen dos modos de operaci n Modo rotaci n y el modo vectorial 2 1 1 Modo de rotaci n del CORDIC En ste modo el acumulador del ngulo es inicializado con el ngulo deseado La decisi n de la rotaci n en cada iteraci n es realizada para disminuir la magnitud del ngulo residual en el acumulador Por lo tanto dicha decisi n est basada en el signo del ngulo residual despu s de cada paso Las ecuaciones de recurrencia ut
8. ilizadas en ste modo son Mis Xi Y d I Y i Y m X d 24 mi Z d tan 27 1 Z lt 0 Donde di c Z gt 0 Y los resultados finales para cada par metro son X A XocosZo Y ysenZo Y A YycosZo XysenZo Z 0 Donde A Il V1 272i N tese que al hacer las condiciones iniciales Y 0 y Xy 1 A los resultados ser an el seno y el coseno de Zo El algoritmo CORDIC original solamente funciona para ngulos entre 1c 2 y 1 2 por lo que para ngulos fuera de ste intervalo hay que tener en cuenta ciertas consideraciones de signo en los par metros X y Y adem s se debe sumar un desplazamiento en el ngulo inicial Z 2 1 2 Modo vectorial del CORDIC En modo vectorial el vector de entrada es rotado cierto ngulo con el fin de alinearlo con el eje x Esta operaci n da como resultado el ngulo de rotaci n y la magnitud escalada del vector original en este caso la componente x del resultado Lo que esta funci n vectorial hace es disminuir al m ximo la componente y del resultado que se obtiene con cada rotaci n este valor de componente en y es usado para determinar la direcci n para la cual se debe hacer la rotaci n En caso de que el valor inicial del acumulador sea cero el resultado arrojado por la operaci n ser el del ngulo recorrido durante la rotaci n total es decir cuando terminen las iteraciones Las ecuaciones para este modo est n definidas de la siguiente f
9. l core CORDIC Fie Name cordc trunk polar 2ectip X _corde vhd Ahora el core es un bloque independiente como se muestra en la Figura 7 a nuestro sistema hay que conectarlo con nuestro sistema Figura 5 Core _Cordic Figura 7 Bloque del core CORDIC Para realizar dicha conexi n crearemos una nueva entidad con 2 componentes nios_system nuestro sistema y sc_corproc CORDIC core y luego debemos unir ambos componentes con se ales internas en los puertos correspondientes debe quedar como se muestra en la siguiente figura Internal Wires Used to concatenate some SDRAM control signals Signal BA STD LOGIC VECTOR 1 DOWNTO 0 signal OR 1 DOWNTO 0 signal Wzeta signal wsen signal 16 downto 0 downto 0 downto 0 Figura 8 Conexi n del core con el sistema Una vez hecho la conexi n podemos visualizar en un diagrama esquem tico nuestro sistema completo como se muestra en la Figura 9 sc_corproc Cordic_Core Figura 9 Diagrama que muestra el sistema con el core a adido 4 3 Carga del sistema basado en NIOS II al FPGA Ya dise ado nuestro sistema ahora hay que embeberlo en la FPGA para esto primero hay que hacer la asignaci n de pines f sicos de la tarjeta a las terminales de nuestro dise o Esto permite encaminar de manera correcta las se ales generadas de manera interna del FPGA con sus correspondientes generadores receptores fuera del dispositivo Tabla 1 Tabla con asigna
10. obre la ejecuci n de c digo se recomienda utilizar un temporizador TIMESTAMP Nuestro hardware debe incluir al menos un temporizador en su dise o Debemos incluir en el c digo la librer a que contiene las funciones necesarias de dicha herramienta include sys alt_timestamp h Funciones a utilizar e alt_timestamp_start e alt_timestamp e alt_timestamp_freg 9 Bibliograf a 1 Richard Herveille Algoritmo CORDIC http cutler eecs berkeley edu classes ee225c Paper s cordic pdf 2 Tarjeta de desarrollo de2 de altera https paruro pe productos tarjeta altera de2 3 Sistemas en chip http es wikipedia org wik1 System_on_a_chip 4 Enciclopedia libre FPGA http es wikipedia org wik1 Field_Programmable_ Gate_Array 5 Enciclopedia libre Quartus II http es wikipedia org wik1 Quartus_Il 6 SOPC Builder gu a del usuario http www altera com literature ug ug_sopc_builde r pdf
11. orma X Xy gt 2 Yi YX di 27 Zal lis d tan 25 Donde d 1 Si y lt 0 1 para otros valores Por lo tanto Xn Any Xo F Yo Yn 0 Zn Zn di tan 2 Xo An M N 1 275 Para obtener la funci n arco tangente es decir 0 y a s tan 2 es necesario usar el modo vectorial del Xx m dulo CORDIC inicializando el ngulo del acumulador con cero Con el fin de calcular valores infinitos x 0 el argumento de entrada debe ser ingresado como un vector x y Una vez el acumulador guarde el valor del ngulo calculado este valor no se ver afectado por el incremento rotacional Za Zo Ftan 2 Xo 2 2 Arquitectura de implementaci n del algoritmo CORDIC La arquitectura que se usa es la arquitectura Bit Paralela Desplegada La denominaci n de paralela se debe a la forma en que se opera con las componentes X Y y Z El dise o se separa en etapas correspondientes a cada iteraci n Cada etapa est compuesta por los mismos componentes dos unidades de desplazamiento y dos sumadores algebraicos Por consiguiente la salida de una etapa corresponde a la entrada de la siguiente etapa Los valores iniciales para X0 YO y ZO se ingresan en paralelo a la primera etapa En el esquema se supone que las componentes tienen un ancho de m bits La se al Modo indica el modo de Operaci n Rotaci n o Vectorizaci n Xo Yo Modo Zo A Bus de m bits Figura 1 Esquema de la arq
12. osar nuestro sistema basado en NIOSH Pero para poder administrar los recursos de esta tarjeta se tiene que estableces una conexi n entre el host tarjeta el host se refiere al computador que contiene el software para el dise o del sistema esta conexi n es posible mediante el USB Blaster 3 2 Quartus II Este software ofrece un completo entorno de desarrollo multiplataforma que se adapta f cilmente a las necesidades espec ficas de dise o de SOPC 3 Esta herramienta permite el an lisis y la s ntesis de dise os realizados en lenguaje HDL examinar diagramas RTL 5 Dentro de Quartus II se encuentra una herramienta de desarrollo de sistema llamada SOPC Builder 3 3 SOPC Builder Es una herramienta de prop sito general para la creaci n de sistemas que pueden o no pueden contener un procesador Permite definir y generar un completo SOPC de alto rendimiento en mucho menos tiempo que el m todo tradicional Con esta herramienta es posible dise ar la estructura de un sistema de hardware que por medio de una interfaz gr fica de usuario que permite agregar componentes a un sistema configurar los componentes y genera la l gica de interconexi n de forma autom tica 6 3 4 NIOS II SBT para Eclipse El Nios II SBT para Eclipse es un conjunto de plugins basados en la infraestructura de Eclipse nos permite crear interfaces usuario hardware que se pueden escribir en varios lenguajes de programaci n por ejemplo Lenguaje A
13. ssembler C C Java Esta es la herramienta que nos permitir controlar el sistema embebido en la FPGA por medio de instrucciones descritas en leguaje C que es el lenguaje que se eligi para el desarrollo de este proyecto 4 Dise o e implementaci n Antes de proceder a realizar cualquier dise o es necesario saber c mo debe funcionar el sistema en el siguiente diagrama de flujo se muestra el proceso del funcionamiento de la m quina calculadora Envio de datos al Core Cordic Lectura de datos por Preparaci n del teclado valor de ngulo Obtenci n de los datosentregados por el core Procesamiento de datos Core Cordic Mostrar resultados en el display LCD Figura 3 Diagrama de flujo del funcionamiento del sistema 4 1 Dise o del sistema basado en NIOS II El dise o se lo realiza por medio de la herramienta SOPC Builder en la Figura se muestra los m dulos o IPs a adidos cada m dulo corresponde al hardware que tendr el proyecto Name Description a sysid System ID Peripheral cpu Nios Il Processor lo memoria On Chip Memory RAM or ROM jtag JTAG UART lo timer interval Timer icd Character LCD El leds Parallel Port El jp2 Parallel Port E salida PIO Parallel VO entrada PIO Parallel VO lo seno El coseno Ear E Figura 4 Hardware agregado con SOPC Builder En la segunda l nea de la Figura 4 vemos que el sistema tiene un procesador NIOSII Luego de haber a
14. uitectura Bit Paralela Desplegada 2 3 Ventajas del algoritmo CORDIC Debido a que dicho algoritmo funciona en base a sumas restas y desplazamientos el hardware requerido para su implementaci n no requiere de unidades aritm ticas sofisticadas que son costosas he aqu una ventaja del algoritmo CORDIC es que el costo de su implementaci n es bajo y debido al hardware que usa consume menos energ a en comparaci n con un sistema cuyo hardware trabaje realizando c lculos en su ALU La existencia de este algoritmo permite que sea posible poder implementar sistemas que hagan el c lculo de funciones trascendentales sobre hardware b sico que no posea unidades aritm ticas complejas como por ejemplo un microcontrolador PIC 3 Plataformas de desarrollo 3 1 Tarjeta DE2 de Altera Es la parte tangible de este proyecto esta tarjeta nos proporciona una serie de m dulos q pueden ser administrados desde un software por el desarrollador los m dulos usados en este proyecto son 2 e FPGA Cyclone II EP2C3F672C6 e Puertos de expansi n 40 pines e USB Blaster para la configuraci n de la FPGA e Display LCD de 16x2 e 3 LEDs verdes e Reloj de 50 MHz 10 mus o DE270 4 wrrr Aa Y pe NA i 5 gt F a T a e Oca 0 EST TL EL IIA q E A UEnAARuARRERERRRIN EEEE T RS AM de MA A Figura 2 Tarjeta DE2 de Altera 4 El FPGA es la parte m s importante porque es all donde va a rep
15. zar ninguna tarea sin el software apropiado 4 4 Ingreso obtenci n de datos El ingreso de datos se logra por medio de un teclado hexadecimal que es conectado al puerto de expansi n JP2 de la Tarjeta DE2 usando como medio un BUS de datos A la computadora basada en NIOS2 se agreg el PIO SALIDA y el PIO ENTRADA ver Figura4 que son los encargados del transporte de los datos transmitidos recibidos por el teclado desde el procesador al teclado y viceversa Cada bits de estos PIO son asignados a una ubicaci n de pines en la FPGA ver la Tabla2 Figura 11 Teclado hexadecimal 5 Pruebas Prueba 1 medici n del tiempo de respuesta del core CORDIC A e O O T E a T N TEA zz Figura 12 Diagrama esquem tico del sistema para contar los flancos mediante un bloque contador Esta prueba consiste en medir el tiempo de respuesta que toma el core CORDIC en procesar arrojar un resultado para esto usamos un contador que ser el que nos de la cantidad de flancos que transcurran tanto el core como el contador tendr n la misma habilitadora para que ambos se activen e manera simult nea y la frecuencia a la que trabajaran ambos ser de 1HZ que esta dado por un divisor de frecuencia El contador mostrara su respuesta por medio de los LEDs rojos Al finalizar la prueba en valor que dio el contador es de 15 flancos de reloj Prueba 2 Medici n del tiempo de respuesta del algoritmo CORDIC implementado en lenguaje C
Download Pdf Manuals
Related Search
Related Contents
CARBURETOR, SOLEX 44 PAI Cadre d`analyse de l`Association Parc Résidentiel de Loisirs / mode d`emploi MANUEL D`UTILISATION - Lacrosse Technology EIP4CCPU User`s Manual (September 2, 2014) Tag-Heuer HL940 Copyright © All rights reserved.
Failed to retrieve file