Programación de PLD´s


Circuitos combinacionales mediante
elementos programables (PLDs)
 1. Objetivos.
Los PLD son pequeños ASICs (“Application Specific Integrated Circuit”) configurables por el usuario y capaces de realizar una determinada función lógica. La mayoría de los PLD consisten en una matriz de puertas AND seguida de otra matriz de puertas OR (ver figura al margen). Mediante esta estructura puede realizarse cualquier función como suma de términos producto.
Dentro de esta familia de componentes aparecen las GAL (“Generic Array Logic”) que es una marca registrada de
Lattice Semiconductor con la que se designa a dispositivos borrables por medios eléctricos, que han sido diseñados
para sustituir a la mayoría de las PAL de la serie general (no reprogramables) manteniendo la compatibilidad patilla a
patilla.
El objetivo de estos ejercicios prácticos es introducir al alumno en el manejo de software específico para el diseño, la simulación y posterior programación de elementos lógicos programables (PLDs) para lo que se realizarán diseños de sistemas combinacionales y secuenciales.
Como programa base para la realización de estos ejercicioss se va a emplear el programa OrCAD/PLD de fácil utilización y que permite la obtención de los ficheros JED para la posterior implementación física del diseño.

2. Descripción: El compilador OrCAD/PLD.

OrCAD/PLD es una herramienta de diseño de lógica programable para PALs y PROMs. Contiene un lenguaje para descripción de hardware, un compilador para este lenguaje (PLD.EXE) y un software de simulación (VECTORS.EXE) que puede generar vectores de test.
OrCAD/PLD permite especificar la lógica de los circuitos mediante el editor de esquemas (OrCAD/SDT) o un editor de texto. El compilador recibe como entrada un fichero ASCII, bien escrito con editor de texto o creado a partir de una lista de conexiones generada por el capturador de esquemas. En nuestro caso usaremos los ficheros texto, por lo que es necesario conocer la sintaxis del lenguaje utilizado. Vamos a empezar describiendo los elementos que se emplean en los ficheros fuente. 
En clase programaremos le dispositivo GAL 22V10 

Semáforo Programable

Semáforo Programable con microcontrolador PIC16f84A.
En este proyecto realizaremos la programación de un semáforo con cuatro programas diferentes.
La programación se realizara primero en Lenguaje Ensamblador y posteriormente en Lenguaje C++
(Para procesos microcontrolados)

Dichos ficheros se ejecutaran en la maqueta realizada en clase y que tiene la siguiente configuración de entradas y salidas:



 SEMÁFORO PROGRAMABLE. 
SISTEMAS DE REGULACIÓN Y CONTROL AUTOMÁTICO
                   
 Selección de programa:
  RA0 = 0 y RA1 = 0 => PROGRAMA 2
  RA0 = 0 y RA1 = 1 => AMBAR INTERMITENTE
  RA0 = 1 y RA1 = 0 =>   "       "
  RA0 = 1 y RA1 = 1 => PROGRAMA 1

  PINES DE ENTRADA Y SDALIDA:
      RB0   Rojo semáforo 1 y 2
      RB1   Ambar semáforo 1 y 2
      RB2   Verde semáforo 1 y 2
      RB3   Rojo semáforo 3 y 4
      RB4   Ambar semáforo 3 y 4
      RB5   Verde semáforo 3 y 4
      RB6   Peatonal 1 y 2
      RB7   Peatonal 3 y 4 Rojo
      RA2   Peatonal 1 y 2 Verde
      RA3   Peatonal 3 y 4 Verde
      RA0   Interruptor de selección de programa
      RA1   Interruptor de selección de programa