Proyecto 1: ¿Cuál es la menor distancia entre dos puntos? 1

Anuncio
Instituto Tecnológico de Costa Rica
Escuela de Ingenierı́a Electrónica
EL-4311 Estructura de Microprocesadores
Profesor: Ing. Jorge Castro-Godı́nez
I Semestre, 2013
Proyecto 1: ¿Cuál es la menor distancia entre dos
puntos?
1.
Descripción
Los conceptos de la geometrı́a euclideana establecen que la distancia más corta entre dos
puntos es un segmento de recta que pasa por ellos. Conociendo dos puntos en un espacio
euclideano se puede encontrar la ecuación que describe la recta que los une, la distancia entre
los puntos y el ángulo de la recta con respecto al eje horizontal. Funciones trigonométricas
básicas como el seno y el coseno, son requeridas para determinar estos parámetros.
El algoritmo CORDIC (Cordinate Rotation Digital Computer ), inventado por Jack Volder
en 1959, permite calcular funciones matemáticas trigonométricas e hiperbólicas. Este algoritmo resulta páctico pues puede ser implementado en Hardware (HW) reconfigurable, como un
CPLD o FPGA, con un pequño footprint. CORDIC solo requiere de una pequeña Lookup table (LUT) junto con lógica para realizar corrimientos y sumas, sin requerir de multiplicadores
o divisores dedicados.
En la solución de problemas de Ingenierı́a Electrónica es frecuente contar con dispositivos
de HW especı́ficos que desempeñan tareas puntuales y que requieren de comunicación entre sı́,
como sucede en algunos equipos de comunicaciónes eléctricas donde se cuenta con un sistema
basado en microprocesador que realiza el control general del sistema y que delega tareas
especı́ficas en subsistemas o módulos de procesamiento digital de señales (DSP) desarrollados
en FPGA.
2.
Requisitos
Se desea desarrollar un sistema que reciba dos puntos coordenados y que calcule la distancia
entre dichos puntos ası́ como el ángulo del segmento de recta que une los puntos con respecto
al eje horizontal.
Una aplicación desarrollada en ensamblador(nasm) de x86 recibirá la solicitud de cálculo
de la forma:
(xi , yi ), (xj , yj )
e.g., (5, 6), (45, 57)
La aplicación enviará, mediante comunicación serie ası́ncrona, la información extraı́da
de los puntos coordenados a un subsistema que se implementará en una FPGA (Spartan
3) para realizar los cálculos empleando el algoritmo de CORDIC.
1
El subsistema de la FPGA debe ser capaz de comunicarse con el computador mediante
comunicación serie, por lo que deberá implementarse un bloque IP que será proveido.
La aplicación tomará los resultados obtenidos y los mostrará al usuario, e.g,
Distancia: 100
Ángulo: 75◦
Considere un espacio de rectangular de dimensiones 800 × 600, en donde el origen se
encontrará en la esquina superior izquierda del rectángulo.
3.
Objetivos
Al concluir este proyecto el estudiante podrá:
Escribir programas en lenguaje ensamblador x86 en los que requieran la comunicación
con otros dispositivos mediante comunicación serie.
Integrar un sistema de propósito general, como lo es una PC, con un sistema de propósito especı́fico, en este caso, una implementación particular desarrollada en FPGA.
4.
Metodologı́a
El desarrollo de este proyecto implica diferentes etapas:
1. Realizar una investigación bibliográfica en cuanto al concepto y funcionamiento del
CORDIC
2. Diseñar una solución empleando diagramas de flujo y representaciones en alto nivel
con pseudocódigo, tanto para el programa que se ejecutará en el computador como la
implementación en la FPGA.
3. Escribir y depurar la implementación escrita en lenguaje ensamblador para x86 de 32
bits.
4. Realizar una descripción de HW que implemente el algoritmo CORDIC y la comunicación serie.
5. Integrar y validar el sistema.
5.
Entregables
Archivos fuente, código en ensamblador y descripción de HW.
Un documento donde se presenten los diagramas de bloques, de flujo y de estados
desarrollados en el diseño de la solución propuesta.
2
La fecha de entrega y presentación del proyecto es el lunes 15 de abril de 2013, antes
de las 5:00 pm. Los entregables deben ser subidos al tecDigital.
Todos los archivos deben ser entregados en un archivo .zip, donde se indique los
nombres de los miembros del grupo, e.g., ButchCassidy SundanceKid.zip
3
Descargar