sábado, 26 de enero de 2008

VHDL (Continuacion)

Diseño con VHDL del proceso de traslado de palanquillas hasta la entrada del horno, a traves de una serie de vias de rodillos.

El funcionamiento del proyecto es el siguiente: Se tienen tres vias de rodillos que contienen una serie de motores (aproximadamente de 10 a 12 motores en cada una). En cada eje de los motores se encuentra acoplado un rodillo que gira con el movimiento que genera el motor. Los motores estan ubicados uno seguido del otro, por lo que se emula una cinta transportadora. La primera via es manual (MANUAL VR), la cual es controlada por el operador asignado a la entrada del horno para que la traslade a la siguiente que se acciona automaticamente cuando se ingresa el numero de palanquillas a utilizar en el proceso de laminacion, en este caso para la creacion de cabillas, luego de un proceso desbastador que sufre el material a lo largo del tren de Barras.


A continuacion se muestra un esquema de como se va generando el movimiento de las palanquillas hasta el horno (Fig. 1).

FIG# 1. Movimiento de palanquillas hasta la entrada del horno.


Una vez que se ingresa el numero de palanquillas a laminar se accinan los motores del grupo 1 y grupo 2 de la via de rodillos como se observa en la figura anterior. El operador, manualmente coloca la palanquilla, y esta arrastrada por la via siguiente por efecto de la friccion. Una vez que pasa por la via de rodillos del grupo 1, al ver que no tiene palanquillas en la via de rodillos 2 sigue el trayecto hasta frenar porque es detectada por un sensor (S2) ubicado en la via. Cuando la via de rodillos numero 2 esta ocupada, se realiza pregunta del estado del sensor 3 (S3), ubicado en la entrada del horno para detectar palanquillas en esta zona. En el caso que la misma este vacia, se procede a enviar una señal al separador empujador ubicado en la via de rodillos N#2 para que haga el traslado y desalojar la via. Una vez que es desalojada, se inicia el movimiento de los motores para ubicar la nueva palanquilla. Todo este proceso se genera hasta que el conteo que se obtiene a traves del sensor 3 (S3), alcanza el numero de palanquillas ingresado en a traves del teclado. Cuando esto sucede se detiene el proceso hasta que nuevamente se realice la accion de colocar el numero de palanquillas a laminar.

Por lo que el operador realiza la operacion de la siguiente manera (Fig.#2):


Fig.#2. Modo de ingreso de los datos.
Ahora bien, el diagrama de flujo del programa a cargar en el PLD o FPGA es como se muestra a continuacion (Fig #3):

Fig #3. Diagrama de flujo del programa a instalar en el dispositivo programable.





2. DESCRICPCION FUNCIONAL

1. Definir el numero de palanquillas a laminar.
2. Iniciar el Procesos.
3. Accionar los motores del grupo 1 y 2 de la vía de rodillos.
4. El operador, manualmente coloca la palanquilla ¿donde?, y esta es arrastrada por la vía siguiente por efecto de la fricción.
5. Una vez que pasa por la vía de rodillos del grupo 1, al ver que no tiene palanquillas en la vía de rodillos 2 sigue el trayecto hasta frenar porque es detectada por un sensor (S2) ubicado en la vía.
6. Cuando la vía de rodillos numero 2 esta ocupada, se realiza pregunta del estado del sensor 3 (S3), ubicado en la entrada del horno para detectar palanquillas en esta zona.
7. En el caso que la misma este vacía, se procede a enviar una señal al separador empujador ubicado en la vía de rodillos numero 2 para que haga el traslado y desalojar la vía.
8. Una vez que es desalojada, se inicia el movimiento de los motores para ubicar la nueva palanquilla.Todo este proceso se genera hasta que el conteo que se obtiene a través del sensor 3 (S3), alcanza el numero de palanquillas ingresado en a través del teclado.


3. DISEÑO
La metodología de diseño a usar consiste en seguir paso a paso la estructuración de un trabajo, es una receta de actividades, con la finalidad de alcanzar el objetivo de forma analítica y con menor impacto en el desarrollo de un proyecto, la metodología de diseño en nuestro caso usaremos PLD, FPGA y VHDL combinando pasos que aporte en nuestro diseño para alcanzaremos nuestra meta.

Fig. #4. Proceso de diseño con PLD

4. Definición de la Apliaciòn.

Se requiere diseñar en VHDL un programa del control de un proceso de alineación de palanquillas previamente para continuar con el proceso laminación de un horno, es el proceso que continua y por el cual debe esperarse para reiniciar el ciclo, este proceso es realizado por lote, primero se alinean las palanquillas, luego en el horno son convertidas en laminas u otros producto; nosotros centralizaremos nuestra atención en la primera fase y es proceso semi-automatizado.

5. Selección del PDL.

VHDL es sólo uno de un conjunto de lenguajes especializados en la descripción de elementos de hardware como ABEL, Verilog, AHDL, entre otros; que se caracterizan por permitir implementar casi cualquier tipo de circuito lógico sin la necesidad de utilizar esquemáticos pues la descripción de los componentes y su comportamiento se hace por medio de instrucciones similares a las de un lenguaje de programación como PASCAL o C. Aún cuando el estándar no coloca ninguna limitación a la complejidad del diseño, no todos los circuitos descritos con VHDL pueden ser traducidos a una implementación física posterior. Este proceso de tomar el código en VHDL y generar los elementos lógicos que efectúan la función deseada se conoce como síntesis. Las descripciones que admiten este proceso se les denomina Sintetizables. El dispositivo seleccionado es de la familia Spartan2E, especificamente el modelo xc2s50e, ya que posee la cantidad de compuertas necesarias para este proyecto, aparte de que el costo es bajo en comparacion a otros modelos de su misma especie.

6. Asignación de IN/OUT:

Entidad componente básicos del lenguaje VHDL: Es la declaración de entradas /salidas de un módulo. De acuerdo al IEEE Std 1076-2002, una entidad “es la abstracción principal de hardware en VHDL. Esta representa una parte de un diseño de hardware que tiene entradas y salidas bien definidas y realiza una función bien definida. Una entidad de diseño puede representar un sistema entero, un sub-sistema, una tarjeta, un chip, una macro-celda, una compuerta lógica o cualquier nivel de abstracción intermedio”.

Nuestra entidad la llamaremos: entradas

Vamos a iniciar con el análisis de las entradas y salidas, declaración de variables que vamos a requerir.

Fig#5. Teclado Numerico para el ingreso del numero de palanquillas




Fig#6. Tabla con los valores binarios asignados para cada numero de entrada


La entrada de los datos es a traves del teclado y la salida de datos es a traves de un display como se muestra en la Fig.#7, y la codificacion a la salida se muestra en la Fig# 8.


Fig#7. Display de 7 segmentos utilizado para la visualizacion de los datos de salida.


Fig#8. Tabla con los valores binarios asignados para cada numero de salida.


7. Definición de la Lógica.

Arquitectura: Es la descripción detallada del comportamiento o estructura interna de un módulo (entidad). Una arquitectura define el cuerpo de una entidad. Esta especifica las relaciones entre las entradas y las salidas de una entidad, pudiendo ser expresada en términos de estructura, flujo de datos o comportamiento. La descripción estructural muestra a la entidad y sus componentes internos junto con las conexiones entre estos, siendo bastante similar al proceso de diseño basado en esquemáticos y componentes MSI (Micro-Star International) o SSI discretos.

A continuacion se muetra el programa en VHDL para ser cargado en el dispositivo programable:



Resumen del cuerpo del programa:

1. Guarda la señal tecleada del numero requerido en el registro, al_reg
2. Codifica la señal a mostrar en el display, al_disp
3. Contar el numero de palanquillas a laminar, cnt
4. La dos rodillos se detienen al alcanzar el numero productos segun el registro, del_reg
end movmiento.


8. Compilación.

Proceso y resultado de compilar código fuente, a grandes rasgos el proceso se puede describir en los siguientes pasos:* El compilador recibe el código fuente.
*Se analiza lexicográficamente.
* Se analiza semántica y sintácticamente (parseado).
* Se genera el código intermedio no optimizado.
* Se optimiza el código intermedio.
* Se genera el código objeto para una plataforma específica.
Finalmente ya puede ejecutarse el código máquina.


Fig#8. Pantalla del programa XILINX ISE 9.2i.


9. Simulación.

La simulación del diseño es quizá la fase más importante en un proyecto de esta envergadura, y al mismo tiempo es la más crítica y compleja. Obviamente, se trata de un diseño difícil de monitorizar, y tratar de reducir el espacio de errores a su mínima expresión es una tarea ardua, por lo que hay que encontrar un método que permita automatizar el proceso de verificación.


Fig#9. Esquema del proceso hasta la simulacion del programa.


En la gráfica 10 se refleja la inconsistencia en la señal IGUAL, ya que no se condicionó su activación para después de ingresado el dato; y lo mismo ocurre con al_disp, donde antes de la visualización del número hay un valor indeterminado. Todo esto pasa sólo en el comienzo de la simulación, lo cual no tiene implicación alguna sobre el funcionamiento del diseño.

Fig#10. Validación de la variable IGUAL.


En la gráfica 11 se ingresa el valor de las palanquillas que se desean laminar a través del teclado. Este valor se debe mantener hasta que se presione la tecla ENTER, mientras se hace la codificación para mostrarlo en el display en su respectivo formato. Con la señal de ENTER se activa la los rodillos o banda.


Fig#11. Validación de la tecla ENTER.



En la gráfica 12 la señal del sensor activa el contador y se realiza la comparación con el valor almacenado en DEL_REG y CUENTA; cuando coinciden se activa la señal IGUAL, que indica la desactivación de la banda. Si el contador llega al valor inicial, se resetea y se pone a cero el valor del contador.



Fig#12. Validación de la variable CUENTA y IGUAL.


10. Corrección.

Ahora, si se desea usar una sola señal para activar y desactivar la banda, podría usarse una señal triestado, donde en su estado normal esté en alta impedancia. Para esto, se agrega un nuevo bloque y se modifica el comparador.

Con estos cambios el análisis gráfico 13 demuestra de nuevo, el arranque del circuito. La activación de la señal RODILLO tiene un cero, el cual no se ha logrado eliminar, pero igual podría eliminarse en la etapa de activación de la banda.

Fig#13. Validación de la variable RODILLO.


La desactivación de la banda si es plenamente correcta, como se aprecia:


Fig#14. Validación del resultado final.


11. Programación.

Una vez que se ha completado este proceso, el circuito está listo para su implementación física. Sin embargo, puede retornar a la ventana de procesos para el archivo Simulación_Mux.tbw y efectuar una simulación Post-Fit, es decir, una simulación en la cual se consideran los tiempos de retardo generados por la interconexión particular de los bloques lógicos dentro del PLD y que brinda una interesante oportunidad de estudiar el comportamiento real del circuito en el momento de ocurrir los cambios en sus entradas.

12. Esquemático.

El RTL, es un diagrama esquemático que muestra la interconexión de los componentes que integran el circuito en forma de bloques funcionales, es decir, no especifica el detalle de conexión eléctrica entre las señales. Por ejemplo, en la figura 12 se muestra una porción del penúltimo nivel del diagrama RTL del multiplexor, obsérvese que se muestra la utilización de una compuerta AND de 3 entradas.




Fig#15. Logica de compuertas internas en la fpga seleccionada.





Fig#16. Vista de la distribucion de entradas en la fpga seleccionada.


13. Implementación.

Una barra de progreso le indicará como transcurre el proceso de programación del PLD, hasta que el mensaje “Programming Suceded” le informe que ya ha programado al dispositivo de forma correcta.


Fig#17. Vista del programa implementado.
14. CONCLUSIONES.

· La programación de dispositivos permitió simular y verificar el correcto funcionamiento.

· El diseño con PDL tiene su propio diagrama de flujo, lo usamos en este trabajo para tomarlo como guía para conseguir el objetivo de programación y simulación.

· El modelo usado en este trabajo constituye una herramienta de gran utilidad para evaluar el lenguaje VHDL (Very High Speed Integrated Circuit Hardware Description Language) es un lenguaje de descripción de hardware estructurado para modelar sistemas digitales.

· Nos permitió programar una lógica digital en un lenguaje de descripción de hardware utiliza fundamentos teóricos de sistemas digitales. Las modificaciones en el diseño es flexible, es decir no necesitan un esfuerzo adicional notable con respecto a los desarrollos de hardware convencionales.
· Son herramientas de diseño confiable y automatizada.
·
· FPGA son dispositivos lógicos de propósitos general programables por los usuarios.

No hay comentarios: