Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

263
DISEÑO E IMPLEMENTACION DEL CURSO ELECT¡VO'DISEÑO DIGITAL AVANZADO UTILIZANDO DISPOSITIVOS LOGICOS PROGMMABLES Y LENGUAJES DE DESCRIPCION HARDWARE' DANIEL FRANCO ARBELAEZ JHON EDUARD POSSO r]J.'i'Z 4O l8frr4¡rflffirryrrl Un¡Yüs¡dad Autóno¡na de Occid¿nt¡ sEccroN I Brl0f t,cA 02?546 CORPORACION UNIVERSITARIA AUTONOMA DE OCCIDENTE DIVISION DE INGENIERIAS DEPARTAMENTO DE INGENIERIA ELECTRONICA SANTIAGO DE CALI 1997

Transcript of Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

Page 1: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

DISEÑO E IMPLEMENTACION DEL CURSO ELECT¡VO'DISEÑO DIGITAL

AVANZADO UTILIZANDO DISPOSITIVOS LOGICOS PROGMMABLES Y

LENGUAJES DE DESCRIPCION HARDWARE'

DANIEL FRANCO ARBELAEZ

JHON EDUARD POSSO

r]J.'i'Z 4O

l8frr4¡rflffirryrrlUn¡Yüs¡dad Autóno¡na de Occid¿nt¡

sEccroN I Brl0f t,cA

02?546CORPORACION UNIVERSITARIA AUTONOMA DE OCCIDENTE

DIVISION DE INGENIERIAS

DEPARTAMENTO DE INGENIERIA ELECTRONICA

SANTIAGO DE CALI

1997

Page 2: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

DISEÑO E IMPLEMENTACION DEL CURSO ELECTIVO "DISEÑO DIGITAL

AVANZADO UTILIZANDO DISPOSITIVOS LOGICOS PROGRAMABLES Y

LENGUAJES DE DESCRIPCION HARDWARE"

DANIEL FRANCO ARBELAEZ

JOHN EDUARD POSSO

Monografia para optar al título deI ngeniero Electrónico.

DirectorZEIDA MARIA SOLARTElngeniero en Electrónica

CORPORACION UNIVERSITARIA AUTONOMA DE OCCIDENTE

DIVISION DE INGENIERIAS

DEPARTAMENTO DE INGENlERIA ELECTRONICA

SANTIAGO DE CALI

1997

Page 3: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

a/" ? /-rf tlr/

€./^lN

l

s\

Nota de aceptación

Aprobado por el com¡té de grado en

cumplimiento de los requisitos exigidos

por la Corporación Universitaria Autónoma

de Occidente para optar al título de

I ngeniero Electrónico.NNñ

\N

\\

N\R

r!\

$N\N

ñ

-.V

.N\\t\\

ñSantiago de Cali, Diciembre de 1997

Page 4: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

A mi familia quienes siempre me

apoyaron, en especial a mi padre. A

Zeida y a Daniel.

John E.

Page 5: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

A mis padres y hermanos por su

colaboración durante todo el tiempo

que estudie y a Zetda por su

amistad.

Daniel

Page 6: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

AGRADECIMIENTOS

Los autores expresan sus agradecimientos a:

Zeida María solarte, Jefe del Area de Sistemas Digitales y Computadores y

directora de la tesis por su constante apoyo, comprensión y confianza.

Todas las personas vinculadas con el programa de Ingeniería Electrónica,

profesores y secretaria, que de alguna forma tuvieron que ver con el desanollo de

este trabajo.

Neftalí por su continuo estimulo, sostén, paciencia y comprensión. Dicha tarea no

hubiera sido posible sin su infinito amor y fé en mi.

Page 7: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

CONTENIDO

INTRODUCCION

1. DISPOSITIVOS LOGICOS PROGRAMABLES

1.1 DEFtNtCloN

1.2 ELEMENTOS BASICOS DE PROGRAMACION

1.2.1 Fusibles

1.2.2 Antifusibles

1.2.3 Celdas UV EPROM

1.2.4 Celdas EE CMOS

1.3 NOTACTON

1.4 ARQUITECTURAS

1.4.1 Memoria de solo lectura programable (pROM)

1.4.2 Aneglo lógico programable (PLA)

1.4.3 Lógico de arreglo programable (PAL)

1.4.3.1 Dispositivos PAL combinacionales

1.4.3.2 Dispositivos PAL con registros

pá9.

1

4

4

6

6

9

I

11

12

13

13

15

16

18

19

Page 8: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

1.4.4 Otros tipos de PLD's

1.4.4.1 Aneglo de compuertas programables en el campo (FPGA)

1.4.4.2 Dispositivo lógico programable bonable (EPLD)

1.4.4.3 Lógica de aneglo genérica (GAL)

1.4.4.4 Lógica borrable eléctricamente programable (PEEL)

1.4.4.5 Circuito integrado de aplicación específica bonable (ERASIC)

1.4.4.6 Secuenciadores programables (PROSE)

1.4.4.7 Controladores de fusibles programables (FPC)

1.4.5 Macrocelda de salida

1.5 FAMILIAS DE PLD'S

1.5.1 lntroducción

1.5.2 Altera

1.5.2.1 Nomenclatura

1.5.2.2 PLD's de propósito general

1.5.2.2.1 MAX 7000

1.5.2.2.1.1 Descripción funcional

1.5.2.2.1.2 Bloques de aneglos lógicos

1 .5.2.2.1.3 Macroceldas

1 .5.2.2.1.4 Arreglo de interconecciones programables

1.5.2.2.1.5 Bloques de control l/O

1.5.2.2.2 MAX 9000

1.5.2.2.3 FLEX 8000

20

20

20

21

21

21

21

21

22

23

23

26

27

27

28

29

30

31

33

33

33

33

Page 9: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

1.5.2.2.4 MAX 5000

1.5.2.2.5 FLEX LOGTC

1.5.2,2.6 CLASICA

2. LENGUAJES DE DESCRIPCION HARDWARE

2.1 VHDL

2.1.1 Historia

2.1.2 Ventajas

2.1.3 Caracterlsticas del modelamiento del lenguaje

2.1.3.1 Terminología

2.1.3.2 Elementos básicos del lenguaje

2.1 .3.2.1 ldentificadores

2.1.3.2.2 Datos objetos

2.1.3.2.3 Declaración de constantes

2.1.3.2.4 Declaración de variables

2.1.3.2.5 Declaración de señales

2.1.3.3 Declaración de entidad

2.1.3.4 Cuerpo de la arquitectura

2.1.3.4.1 Estilo de modelamiento estructural

2.1.3.4.2 Estilo de modelamiento de flujo de datos

2.1.3.4.3 Estilo de modelamiento de comportamiento

2.1.3.4.3.1 Declaración de entidad

2.1.3.4.3.2 Cuerpo de la arquitectura

34

34

34

36

37

38

39

40

40

41

41

42

44

44

45

45

47

47

52

54

54

55

Page 10: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

2.1.3.4.3.3 Declaración de proceso

2.1.3.4.3.4 Declaración de asignación de variables

2.1.3.4.3.5 Declaración de asignación de señales

2.1.3.4.3.6 Drivers de señal

2.1.3.4.3.7 Declaración WAIT

2.1.3.4.3.8 Declaración lF

2.1 .3.4.3.9 Declaración CASE

2.1.3.4.3.10 Declaración LOOP

2.1.3.4.3.11 Declaración EXIT

2.1.3.4.4 Estilo de modelamiento mezclado

2.1 .3.4.5 Declaración de configuración

2.1.3.4.6 Declaración de paquete

2.2 AHDL

2.2.1 Introducción

2.2.2 Estructura de un archivo de diseño

2.2.2.1 Declaración TITLE

2.2.2.2 Declaración PARAMETERS

2.2.2.3 Declaración INCLUDE

2.2.2.4 Declaración CONSTANT

2.2.2.5 Declaración DEFINE

2.2.2.6 Declaración FUNCTION PROTOTYPE

2.2.2.7 Declaración OPTIONS

56

56

57

59

60

60

62

62

M

69

70

73

75

75

76

76

76

77

78

78

79

80

Page 11: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

2.2.2.8 Declaración ASSERT

2.2.2.9 Sección SUBDESIGN

2.2.2.10 Sección VARIABLE

2.2.2.10.1 Declaración INSTANCE

2.2.2.10.2 Declaración NODE

2.2.2.1 0.3 Declaración REGISTER

2.2.2.1 0.4 Declaración STATE MACHINE

2.2.2.11 Sección lógica

2.2.2.1 1.'l Ecuaciones booleanas

2.2.2.11.2 Ecuaciones de control booleanas

2.2.2.11 .3 Declaración CASE

2.2.2.1 1 .4 Declaración DEFAULT

2.2.2.11.5 Declaración lF THEN

2.2.2.11.6 Declaración lF GENERATE

2.2.2.11.7 Declaración FOR GENERATE

2.2.2.11 .8 Declaración TRUTH TABLE

3. CONCLUSIONES

BIBLIOGRAFIA

ANEXOS

80

81

82

83

84

84

85

86

87

88

89

90

91

92

93

95

97

101

102

Page 12: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

FIGURA 1.

FIGURA 2.

FIGURA 3.

FIGURA 4.

FIGURA 5.

FIGURA 6.

FIGURA 7.

FIGURA 8.

FIGURA 9.

FIGURA 10.

FIGURA 11.

FIGUM 12.

FIGUM 13.

FIGURA 14.

FIGUM 15.

FIGURA 16.

FIGURA 17.

LISTA DE FIGURAS

Diagrama general de un PLD

Fusible vertical

Estructura de un fusible

Estructura de una celda EPROM

Celda EE

Notación

Línea producto programada

Arquitectura de una PROM

Arquitectura de un PLA

Arquitectura PAL combinacional

Arquitectura PAL con registros

Macrocelda de salida

Nomenclatura

Diagrama en bloques de los dispositivos EpM7032,EPM7064 y EPM7096

Diagrama en bloques de los dispositivos MAX 7000Ey MAX 7000S

Macrocelda para los dispositivos EPMZ032, EpM7064y EPM7096

Macrocelda de los dispositivos MAX 7000E y MAX ZO00S

pá9.

5

7

8

I

11

12

13

14

16

18

19

22

27

29

30

31

32

Page 13: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

FIGURA 18.

FIGURA 19.

FIGURA 20.

FIGURA 21.

FIGURA 22.

FIGURA 23.

FIGUM 24.

FIGURA 25.

Circuito sumador de dos bits (Half-adder)

Circuito de un decodificador de 2 a 4

Contador con flip-flops T y compuertas AND

Forma de ondo de reloj con perfodo constante

Gráfica de retardo inercial

Gráfica de retardo de transporte

Forma de onda de reloj con diferente período alto y bajo

Full adder de 1 bit

46

46

51

54

58

59

68

70

Page 14: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

RESUMEN

En el presente trabajo se dan pautas

son:

. PLD's

. Lenguajes de descripción hardware

en dos temas de electrónica digital como

En cuanto a PLD's se da una explicación de lo que son, como funcionan y como

están formados, se mencionan los diferentes tipos de elementos básicos de

programación, los cuales permiten la configuración del dispositivo para que

efectúen una función deseada; se explican las diversas clases de arquitecturas y

las desigualdades que hay entre ellas. Por último se nombran los fabricantes que

existen y se habla en forma detallada de la familia ALTERA.

En los lenguajes de descripción hardware se dan bases para trabajar gon VHDL y

AHDL, entre los cuales existe mucha similitud. Para dichos lenguajes se dio una

introducción y se explicaron las características del modelamiento del lenguaje de

cada uno.

Por último se elaboraron 4 ejercicios que muestran la aplicación de estos temas

amparados en el software de simulación ALTERA MM+PLUS ll .

Page 15: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

INTRODUCCION

Desde la creación de los primeros circuitos digitales, en la década de los años 30,

desarrollados con relés, la electrónica digital ha tenido notables avances como

fueron la invención de los tubos de vaclo y posteriormente los dispositivos

semiconductores (diodos y transistores ) los cuales fueron un paso fundamental

que permitió la construcción de sistemas de menor consumo, más pequeños,

más rápidos y fiables. Luego se realizaron circuitos sólidos más adelante llamados

circuitos integrados. Esta tecnologla hace posible la construcción en un solo

bloque semiconductor, de un circuito que realice una función electrónica compleja,

en el cual los distintos elementos quedan conectados directa e inseparablemente.

El costo de un sistema digital puede estar dominado por las tarjetas de circuitos,

las fuentes de alimentación, las interconexiones y el empaque, así como por los

costos de diseño y verificación y otros costos de producción. Con frecuencia los

dispositivos lógicos digitales solo representan una fracción del costo total de un

sistema. En consecuencia, los diseñadores de sistemas digitales intentan

minimizar la cantidad total de paquetes de circuitos, lo que a su vez minimiza los

costos de espacio en las tarjetas de circuitos, energía y otros costos.

Page 16: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

El comportamiento de circuitos de lógica digital se logró analizar y describir

utilizando el álgebra de Boole, la cual fue creada para darle expresión a las leyes

fundamentales del razonamiento en el lenguaje simbólico del cálculo. De aquí se

pudo establecer que todo circuito lógico podía expresarse como suma de

productos o como producto de sumas. Esta característica permitió el surgimiento

de nuevos chips LSI con estructuras regulares formadas por arreglos AND y OR

conocidos con el nombre de Dispositivos lógicos programables ( PLD's ), los

cuales le permitían al diseñador adecuarlo para una función específica.

Los PLD's han sido una herramienta muy útil en el diseño digital gracias a que

simplifican la tarea del diseñador, ahorran espacio y potencia, también con la

aparición de los EPLD's ( dispositivos bonables ) que permiten la reutilización de

estos cuantas veces sea necesario.

Las formas para programar estos dispositivos son múltiples, pero se destacan

principalmente los lenguajes de descripción hardware. El VHDL se crea con el fin

de homogeneizar y volver compatibles las henamientas de simulación, debido a la

aparición de gran cantidad de lenguajes que no permitían el intercambio de

diseños. Así se logra un lenguaje con un amplio rango de posibilidades de

descripción que podía trabajar en cualquier simulador y que fuera independiente

de la tecnologfa o metodología del diseño.

Page 17: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

La aplicación práctica se realiza haciendo uso del software de desarrollo ALTERA

MAX+PLUS ll el cual permite hacer el diseño en tres modos diferentes: modo

esquemático, utilizando lenguajes de descripción hardware ( VHDL y AHDL,

lenguaje de descripción de altera ) y edición por formas de onda. El programa

contiene un simulador que tiene en cuenta los tiempos de retardo y también da la

posibilidad de programar el dispositivo a través de una MPU ( Unidad maestra de

programación ).

El presente trabajo muestra las caracterlsticas principales de los PLD's y de los

lenguajes de descripción hardware, con el fín de que esta información sea

transferida a otras personas para que puedan utilizar esta henamienta para el

desarrollo de diseños lógicos en la materia electiva "Diseño digital avanzado

utilizando dispositivos lógicos programables y lenguajes de descripción hardware".

Page 18: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

1. DISPOSITIVOS LOGICOS PROGRAMABLES ( p L D's )

1.1 DEFtNtCtON

El término dispositivo lógico programable o PLD (Programmable Logic Device) se

aplica de manera general a los circuitos integrados que tienen un conjunto base

de componentes, como conmutadores, compuertas o celdas más complejas, pero

cuyas interconexiones se pueden configurar de acuerdo a la aplicación para

convertirlos en componentes de diseño de propósito general. Un PLD en forma

general, consiste de un aneglo de compuertas lógicas AND conectadas a un

aneglo de compuertas OR a través de elementos básicos de programación (EBp).

Los EBP's pueden ser fusibles o celdas basados en los elementos de

almacenamiento de los diferentes tipos de memoria, los cuales permiten alterar el

estado de una conexiÓn, sea que abran o cierren la intersección a la que se

encuentran asociados.

Dependiendo de que sea programable el arreglo AND, el arreglo OR o ambos, se

consideran tres tipos fundamentales de PLD's:

- PLA's: El arreglo AND y el aneglo OR son programables.

Page 19: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

PRoM's: consiste de un aneglo AND fijo y de un arreglo oR programable.

PAL's: Este dispositivo consta de un aneglo AND programable seguido por un

aneglo OR frjo.

Los pines de entrada del circuito integrado (lC) van hacia el arreglo AND, mientras

que los de salida parten del arreglo OR. Esta arquitectura permite implementar

cualquier función que se pueda expresar mediante suma de productos. La

mayoría de PLD's contienen además, bloques de entrada y salida con elementos

que facilitan dlsenos secuenciales, tales como: Registros, enganchadores,

caminos de realimentación, etc.

ARREGLOS

PROGRjI{ABLES

AND YOR

BLOQUE

DE

ENTRJDA

BLOQUE

DE

SAIIDA

FIGURA 1. Diagrama general de un PLD.

Page 20: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

6

Las interconexiones de un PLD para una aplicación específica se produce en dos

formas principales. La primera requiere uno o dos pasos especiales en el proceso

de fabricación del chip del lC y en este caso se dice que el PLD ha sido

programado en fábrica o con mascara. El segundo método permite que el

diseñador o el usuario final lleve a cabo el proceso de configuración del lC

encapsulado, inyectándole señales eléctricas a través de un equipo especializado,

conocido como unidad de programación de un PLD. Estas señales abren o

cierran los EBP's para establecer los patrones de conexión deseados entre los

componentes. Los lC's que se configuran en esta forma se denominan

programables sobre el campo. En algunos casos, un lC programable sobre el

campo también es borrable, de manera que se puede programar en repetidas

ocasiones.

1.2 ELEMENTOS BASICOS DE PROGRAMACION

1.2.1 Fusibles. Los fusibles son enlaces generalmente metálicos que se

programan haciéndoles pasar una elevada corriente. El material y la tecnología

usada en la fabricación de los fusibles debe garantizar una apertura confiable, sin

salpicaduras y con un mínimo de posibilidades de unirse nuevamente

(GROWBACK), problema frecuente que presentaban las primeras versiones. Los

fusibles se dividen en dos grupos:

- Fusibles Laterales

- Fusibles Verticales

Page 21: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

I

El fusible vertical consta de un transistor con la base abierta conectado a dos

líneas (una línea de entrada y una línea producto). Debido a la alta impedancia del

transistor, la línea de entrada no esta conectada a la línea producto mientras este

elemento no sea programado. La programación produce un corto equivalente

entre la juntura colector emisor. La programación se efectúa mediante el proceso

de migración inducida por avalancha (AlM), que se logra fozando a pasar una

corriente a través del emisor con lo cual se produce una ruptura por avalancha de

la juntura emisor - base. El calor generado localmente hace que el aluminio se

difunda desde el emisor hasta la juntura emisor - base, lo cual causa un corto

circuito permanente.

Fusible vertical no programado.

Fusible veftical programado.

FIGURA 2. Fusible vertical.

Srü¡tr¡io P

Page 22: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

8

Los fusibles laterales están constituidos generalmente por filamentos metálicos de

diferentes materiales dentro de los cuales los mas populares son los de: Nicromo,

Titanio-Tungsteno (TlW) y Silicato de Platino (PtSi). Estas tecnologías de fusibles

han sido usadas por varios años y son ampliamente aceptadas por los fabricantes

debido en gran parte a su alta confiabilidad.

Cuando se aplica un pulso rápido de coniente, el voltaje del fusible sube

abruptamente al valor determinado por su resistencia térmica, luego baja

rápidamente a un valor aproximado de 2 voltios, este valor es casi independiente

de la corriente aplicada. Durante el periodo de tiempo en que el fusible es fundido

la corriente cae rápidamente a cero indicando la separación o apertura del metal

en dos secciones diferentes. La separación ocurre en el centro del fusible ya que

por su forma la energía se concentra en ese punto.

I Aluminio

E Area de contacto

FIGURA 3. Estructura de un fusible

Page 23: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

9

1.2.2 Antifusible. Son estructuras de materiales que pueden cambiarse

eléctricamente desde un estado de alta impedancia, hasta formar un enlace de

conducción de baja resistencia. Tienen la forma básica de un emparedado de

película metálica y dieléctrico. El dieléctrico generalmente utilizado es el (SiO2), o

una composición de elementos de este tipo como por ejemplo el SILICATO

AMORFO. Al aplicarles voltajes del orden de los 10 a los 20 voltios ocurre un

rompimiento del dieléctrico, con esto se forma un enlace conductor permanente

con una resistencia del orden de los 300 a los 1000 ohmios.

1.2.3 Celdas UV EPROM. Algunas tecnologías de fabricación de PLD usan

celdas EPROM para realiza¡ la programación, a estos dispositivos se les

denomina comúnmente EPLD's.

Oxido de puerta

PC = Puerta de control

PF = Puefta flotanteE oxido de campo

I Substrato P

üntr¡lsld¡d tulonoma dc occithntr

stüclofi ¡ ErloltcA

+vg

FIGURA 4. Estructura de una celda EPROM

Page 24: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

10

Una celda EPROM tiene una capa de polisilicio llamada puerta flotante, la cual

esta literalmente entenada en las capas de óxido.

Durante la operación de programación o en el ciclo de escritura, un alto voltaje (13

a 14 voltios) es aplicado a la compuerta de control y otro (12 voltios generalmente)

al transistor de puerta flotante. La puerta flotante es acoplada capacitivamente al

voltaje aplicado bajo condiciones de polarización, esto permite que los electrones

calientes conducidos en la región del canal sean inyectados a la puerta flotante,

donde son atrapados por un potencial de banera de 3.1 eV en la interfaz de

polisilicio-oxido. Las cargas electrónicas negativas presentes en la puerta flotante

interna tienden a proteger el canal de voltaje positivo en el tope de la compuerta

de control formado entre la fuente y el drenador.

El estado de la puerta flotante es permanente, esto se debe a que la puerta está

enterrada en un óxido de extremadamente alta calidad y es eléctricamente aislada

con un camino diferente a tierra. Sin embargo con la exposición a rayos

ultravioleta con una longitud de onda menor de 4000 amstrong (típicamente del

orden de los 2500 amstrong) con energía mayor a 3.1 eV (típicamente una

intensidad de 1200 uWcm2) a través de una ventana transparente colocada en el

dispositivo, las cargas atrapadas pueden ser removidas descargando la puerta

flotante, esta exposición normalmente debe ser entre 15 y 20 minutos, pero

algunos dispositivos necesitan exponerse hasta por una hora.

Page 25: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

ll

1.2.4 Celdas EE CMOS. Los EBP's en los PLD's también suelen ser fabricados

usando una tecnología avanzada basada en CMOS EEPROM, por tanto posee las

ventajas de CMOS como son baja disipación de potencia y alta densidad entre

otras.

El proceso de prueba y producción CMOS emplea reglas de díseños actuales,

usando litografía escalonada en todos los niveles críticos con un tamaño mínimo

característico de 1.5 micras. El grosor del óxido de la puerta del transistor es

aproximadamente 300 amstrong. Este desarrollo resulta en una disminución

considerable de las dimensiones y de la densidad del empaquetamiento, además

de circuitos mas rápidos y de menor costo.

Las celdas EE las cuales pueden ser eléctricamente borrables y reprogramadas,

contienen una estructura de transistores de puerta flotante (dos capas de

polisilicio) con una región de óxido de menos de 100 amstrong a través de la cual

los electrones pueden "tunelea/' para cargar o descargar la celda.

Linea metálica

IOxido depositado Puerta de control

Puerta de selección

Drenadordifuso

Fuentedifusa

Región de tuneleo

FIGURA 5. Celda EE

Page 26: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

T2

Se ha adicionado un transistor en serie a la celda de almacenamiento para

prevenir fugas a las celdas descargadas no seleccionadas durante un ciclo de

verificación de carga.

1.3 NOTACTÓN

La notación para una compuerta AND standard de tres entradas frente a la

notación de una compuerta AND PLD es la siguiente:

A h ,rIB-l r ABCC- +++F*C

ESTA}.TDAR

ABCPLD

FIGURA 6. Notación estándar Vs PLD

La representación PLD para las entradas de una compuerta AND se denomina

línea o término producto, puesto que si se expresan en forma de ecuaciones

Booleanas aparecen formando productos matemáticos.

Las entradas A, B y C se conectan a la compuerta mediante EBPs ubicados en la

intersección entre una entrada y una línea producto. Una intersección cerrada se

expresa por una X, mientras que la ausencia de esta indica el caso contrario.

Page 27: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

l3

]NTERSECCIONPROGRÁlrdADAEN FABRICA

]NTERSECCIONABIERTA

-fv

J]-ll-l-¿-eINTERSECCION +l I I t''/CERR-ADA ---''"'ABC

FIGURA 7 . Línea producto programada

1.4 ARQUITECTUMS

1.4.1 Memoria de Solo Lectura Programable (PROM). La memoria programable

exclusiva para lectura (PROM) es el más antiguo PLD (data de 1970) debido a su

uso en aplicaciones de memoria de computadora, aunque por varios años, esta

arquitectura no fue considerada como un PLD, habiéndose usado muchas

PROM's pequeñas como elementos lógicos.

Las PROM diseñadas como dispositivos lógicos se conoce normalmente como

elementos lógicos programables (PLE). La arquitectura básica consiste de un

arreglo AND ftjo para decodificar las direcciones de memoria seguido de un

arreglo OR programable. Para cada una de las combinaciones de entrada

(direcciones) se genera un valor que ha sido programado en el dispositivo para

cumplir una función determinada.

Una PROM se caracleriza por el hecho de generar los 2 a la n minterminos de n

variables en su plano AND. Esta estructura permite que cada columna de salida

Page 28: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

t4

en el plano OR produzca cualquier función de hasta n variables, si se expresa en

forma canónica de suma de minterminos. Puesto que las funciones AND están

predeterminadas, no es necesario que el plano AND sea programable, de manera

que toda la programación se limita a los puntos de cruce en el plano OR.

FIGURA 8. Arquitectura de una PROM

En el arreglo AND, cada combinación de entrada esta disponible, sea que se

necesite o no. En estos dispositivos no es posible realizar minimización lógica de

ARREGLO ORPROGRAMABLE

ARREGLO AND FIJO

Page 29: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

l5

comb¡naciones de entrada por que el aneglo AND esta fijo. La salida puede

compartir líneas producto por que cada compuerta OR esta conectada a cada una

de ellas. Cada término producto mrresponde a una de sus direcciones y las

compuertas OR programables corresponden a los bits de datos.

La ventaja de las PROM's es que cada combinación de entrada puede ser

decodificada. La desventaja es que el número de pines de entrada está

restringido, ya que el tamaño del arreglo aumenta al doble por cada pin de

entrada adicional.

1.4.2 Aneglo Lógico Programable (PLA). En estos dispositivos tanto el aneglo

AND como el arreglo OR son programables. Por tanto, esta arquitectura es la más

flexible de las arquitecturas básicas. Un PLA es un PLD mas general ya que

cualquier término producto puede ser conectado a cualquier compuerta OR de

salida.

En esta arquitectura normalmente se habla de términos producto compartidos por

que las salidas pueden compartir una misma entrada. Pero, la flexibilidad de

programación de ambos arreglos disminuye el rendimiento del dispositivo (se

pierde velocidad y aumenta el consumo de potencia ) y del tamaño de la pastilla

de silicio.

Page 30: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

l6

ARREGLO ORPROGRAMABLE

ARREGLO ANDPROGRAMABLE

FIGURA 9. Arquitectura de un PLA

Cuando a un PLA se le adicionan flip-flops se obtiene un secuenciador lógico

programable o PLS, utilizado principalmente para implementar máquinas de

estado complejas y secuenciadores.

1.4.3 Lógica de Arreglo Programable (PAL). Monolithic Memories lnc introdujo los

dispositivos PAL a finales de la década de los 70s, como un sustituto de bajo

costo de las compuertas lógicas discretas, las PROM y los PLA.

Page 31: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

t7

Comúnmente no es necesario tener disponible todas las posibles combinaciones

de entrada, ya que en muchas aplicaciones no se necesita la flexibilidad del

arreglo OR programable. Estadísticamente en una ecuación se requiere

solamente un número limitado de términos producto y este número puede

reducirse aun mas con técnicas de minimización lógica.

Un dispositivo PAL consta de un aneglo AND programable seguido por un aneglo

OR fijo. El primer arreglo permite que el dispositivo pueda tener muchas entradas,

mientras que el segundo facilita que el dispositivo sea rápido y pequeño.

En esta arquitectura se tiene la posibilidad de programar únicamente las

combinaciones de entrada que se deseen, pero teniendo en cuenta que solo

algunas líneas producto están unidas a salidas específicas sobre el arreglo OR de

acuerdo a un patrón fijo. Típicamente se tiene I líneas producto por cada

compuerta OR de salida.

Las principales ventajas son la reducción en el tamaño y por ende menor costo

que un PLA, como también pueden ser mas rápidos y fáciles de programar. A las

PAL también se pueden incorporar líneas de entrada - salida bidireccionales,

control de polaridad de salida y realimentación al plano AND.

Dentro de los PAL se tiene una gran variedad de opciones dependiendo de : El

número de entradas, número de salidas, número de caminos de realimentación,

Page 32: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

l8

pines de l/O programables, números de registros de salida y otros. Sin embargo

se pueden diferenciar claramente dos tipos: Aquellos orientados a diseños

combinacionales y aquellos orientados a diseños secuenciales.

1 .4.3.1 Dispositivos PAL Combinacionales.

LINEAS DE ENTRADA (0 - 7 )

0123 4567

LINEASPRODUCTO(0-15)

0

1

¿

3

45

6

I

II

101112

1374TJ

PIN 5

LINEAPRODUCTOPARACONTROLTRES ESTADOS

BUFFER DESALIDA

FIGUM 10. Arquitectura PAL combinacional.

Page 33: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

l9

Están formados solamente por compuertas. Se utiliza en aplicaciones donde

se necesita almacenar estados anteriores tales como multiplexores

decodificadores.

1.4.3.2 Dispositivos PAL con Registros. A diferencia de los anteriores, estos

disponen de registros (flip-flops) en sus salidas que se realimentan al aneglo

AND. Esta realimentación hace posible la implementación de lógica secuencial y

máquinas de estado.

LTNEAS DEE¡,TTRADA ( 0 - 7 )

RELOJ 0123456-l

no

v

LINEASPRODUCTO(0-16)

0

1

o¿

3

4

5

61

I

10

11

12

13

14

15

FLIP-FLOPTIPO D

BUFEERREAIIMENTACIONDEREGfSTRO

PIN 5

BUEFERDESAIIDA

PIN 6

PIN?HABILITADORDE SAIIDA

Untnrsldrd rut6nom¡ dc 0cclthnh

sEcclott B,Btloltcr

FIGURA 11. Arquitectura PAL con registros.

Page 34: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

20

La mayoría de familias con registros a sus salidas utilizan flip-flop tipo D; mientras

que aquellas familias que poseen macroceldas de salida permiten programar el

tipo de flip-flop a partir de una descripción de un alto nivel.

1.4.4 OTROS TIPOS DE PLD's.

1.4.4.1 Arreglo de Compuertas Programables en el Campo. Esta es otra clase

general de PLD's conocida como FPGA (Field Programmable Gate Anays).

Consisten en arreglos bidimensionales de circuitos lógicos a nivel de registro

llamado celdas, separados por canales de cableado. Los canales de cableado

tienen conexiones programables que permiten enlazar las celdas en forma

esencialmente arbitrarias. Los tipos de celdas pocas veces están limitados a

compuertas, a pesar del nombre "arreglo de compuertas". Por lo general, son

pequeños circuitos combinacionales de varias funciones, capaces de realizar

varias funciones Booleanas de unas cuantas variables dependiendo de la manera

en que se programen sus conexiones entrada-salida. Una celda también puede

contener algunos fl ip-fl ops.

1.4.4.2 Dispositivo Lógico Programable Borrable (EPLD). Son PLD's que pueden

ser borrados y reprogramados como ocurre con las memorias EPROM.

Internamente tienen las mismas estructuras AND-OR-registros de los PAL y las

PLA. La sigla EEPLD se usa para referirse a los EPLD bonables eléctricamente.

Page 35: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

2l

1.4.4.3 Lógica de Aneglos Genérica (GAL). Es una familia de dispositivos

eléctricamente bonable del tipo PAL pero un poco mas flexibles y densos.

1.4.4.4 Lógica Eléctricamente Borrable Programable (PEEL). Al igual que los

anteriores, estos dispositivos PLD's usan tecnología eléctricamente bonable. Sus

arquitecturas son similares a las encontradas en los EPLD's.

1.4.4.5 Circuito Integrado de Aplicación Especifica Borrable (ERASIC). Estos

PLD's incluyen un aneglo generalmente AND que se realimenta hacia las

entradas con el fin de permitir la implementación de lógica multinivel.

1.4.4.6 Secuenciadores Programables (PROSE). Son PLD's cuya arquitectura se

ha óptimizado para el diseño de máquinas de estado de alta complejidad.

Combina en un mismo dispositivo un arreglo AND y una PROM utilizando la

eficiencia de ambos en el diseño de máquinas de estado.

1.4.4.7 Controladores de Fusibles Programables (FPC). Es un chip diseñado

para permitir la implementación de complejas máquinas de estado y

controladores, mediante la programación de una secuencia adecuada de

microinstrucciones en una memoria interna del chip.

Page 36: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

22

1.4.5 Macroceldas de salida. Son estructuras que tiene algunos PLDs. Estas

reemplazan compuertas oR simples y flip-flops por circuitos que pueden

programarse para funcionar de formas diferentes.

Globsl Goct(One Per l-AB)

Pmgrutnnfun6gbbr

UO Fce<bactaaa aaa aaa

8or20D€dcat€d

Inputs

24 ProgrammableIntercorh€ct Signab

(Muhl-t-AB Devi:€s Orúy)

32 o.64Ég8nd€r

ProductTems

FIGURA 12. Macroceldas de salida

Una salida puede programarse con cualquier polaridad (activa baja o activa alta).

El registro de salida, puede programarse como un flip-flop tipo D, T, J-K, ó S-R, o

también puede programarse para que sea transparente (salida combinacional). En

esta configuración el término producto realimentado puede conectarse al registro,

creando una salida combinacional con realimentación de registro. El reloj del

registro puede programarse para ir hacia un pin extemo o hacia un término

producto interno. También son programables las entradas det flip-flop SET y

Page 37: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

23

RESET, los modos de operación asíncrono o síncrono y los habilitadores de

salida. La entrada del flip-flop puede ser la salida de una compuerta OR excluslva

en la cual sus entradas son términos producto.

1.5 FAMILIAS DE PLD's

1.5.1 Introducción. A continuación se da una muestra de la clase de dispositivos,

arquitecturas y PLD's especializados ofrecidos actualmente por importantes

fabricantes como son: ALTERA, Advanced Microdevice, National Semiconductor e

Intel.

Los diversos fabricantes de PLD's basan la evolución de sus productos de

acuerdo a las necesidades del mercado y los avances en las tecnologías de

fabricación, las cuales permiten cr,da vez mayores densidades de integración y

mayores velocidades, aumentando la capacidad funcional de los dispositivos y por

ende ampliando sus campos de aplicación.

En particular los usuarios requieren mayor flexibilidad y funcionalidad de los

dispositivos, para lo cual se han involucrado ciertas características tales como:

registros de entrada intemo, uso más eficiente de los términos producto, manejo

mas flexible de las salidas, y señales de control (habilitadores, relojes y reset's)

los cuales no se encuentran disponibles en las arquitecturas PAL estándar.

Page 38: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

24

Dentro del grupo de PLD's los dispositivos PAL de 2O y 24 pines poseen las

arquitecturas estándar mas populares que constan básicamente de un aneglo

AND programable y un arreglo OR fijo con salidas combinacionales a través de

registros. Estos dispositivos PAL son usados básicamente como reemplazos para

lógica MSI/SSI estándar en la implementación de diseños lógicos digitales.

Por otra parte los PLD de más de 24 pines son predominantemente usados en la

implementación de máquinas de estado.

Uno de los mayores inconvenientes que ha surgido para los PLD's, es la

implementación de la lógica de interconexión y control entre un microprocesador y

un dispositivo periférico. Esto ha sido posible debido al crecimiento en la densidad

de los PLD's, permitiendo implementar bloques funcionales completos, tales

como: controladores de buses, unidades de control de intem.¡pción y dispositivos

orientados a la implementación de diseños complejos con máquinas de estado.

Un problema con la arquitectura PAL es que ordinariamente se usa un bajo

porcentaje del número total de compuertas disponibles (30% al 40%). Aumentar

mas el número de compuertas en esta arquitectura agrava este inconveniente,

además, el aumento en la complejidad hace crecer exponencialmente la cantidad

de EBP's (celdas o fusibles de programación). En su lugar, los fabricantes han

adoptado estrategias tales como: integración de bloques funcionales MSI

arreglos lÓgicos y adopción de nuevas arquitecturas tales como arreglos

@n

de

Page 39: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

25

compuertas en donde se hace una partición del diseño en cuadrantes que provee:

mayor flexibilidad, eficiencia y evita el crecimiento desmedido de EBP's.

La integración de partes MSI estándar en los PLD's es una herramienta poderosa

para disminuir el número de partes alrededor de una CPU, creando así

dispositivos que desempeñan funciones estándar y con un buen nivel de

flexibilidad.

Una evolución consecuente es la integración de PLD's en nuevos chips

soporte para microprocesadores, brindando mayor versatilidad a este tipo

dispositivos.

National semiconductor utiliza tecnologías TTL, EECMOS y ECL en la fabricación

de sus dispositivod. Estos están soportados por el software PLAN, además existe

una gran variedad y disponibilidad de henamientas de desanollo y equipos de

programación compatibles.

Advanced micro devices posee una gran variedad de dispositivos lógico, los

cuales se encuentran clasificados según su funcionalidad en dispositivos PAL

estándar, PAL universales, PAL asóncronos, dispositivos MACH, secuenciadores,

dispositivos PAL programados y PAL militares.

de

de

Page 40: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

26

Intel tiene dispositivos lógicos con la arquitectura basada en un arreglo AND

programable y uno OR fijo ó configurable con tecnología EPROM que permite que

los dispositivos sean probados en fábrica para garantizar su eficacia.

1.5.2 Altera. Altera proporciona el mas amplio rango de soluciones de lógica

programable, con un rango de densidades entre 300 y 100000 compuertas, con

una variedad de encapsulados entre 20 y 560 pines, desde los equivalentes

PAUGAL de alta velocidad para las alternativas programables de la industria

hasta los aneglos de compuertas. ALTERA tiene una solución para cualquier

requerimiento de diseño lógico programable.

Con velocidades superiores a los 200 MHz. y retardos lógicos pin a pin de 5 ns ,

Altera ofrece los mas rápidos dispositivos lógicos programables de alta densidad

disponibles.

Los dispositivos lógicos programables de ALTERA cubren un amplio rango de

densidades con aplicaciones desde decodificadores de direcciones hasta

subsistemas completos. El último prototipo ALTERA que revoluciono los arreglos

de compuertas fue el EPF8050M el cual proporciona 50000 compuertas usables

(100000 disponibles) en un solo dispositivo.

Page 41: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

27

1.5.2.1 Nomenclatura

ft Clod(FI R¡IMm ntllc¡kFit t{ x50ü,t x7m,il x9o0FC Gir*nErüfúREüm

*, nf,lgtrúgllú¡12,t2lt¡10¡lu,9l0tld,lll0ú, rÜzt tl¡2rú2 y Íttw9524"t4t2,8úló lr20A

It20¡ | ||ta,|| ru¡¡lO¡Yil 5m¡09FÉ 20.7t0.fl60F * 5qn 50óaJr 2rJr2¡AJ¡lJ 1925192A

78l'úfi ¡oÚ4nfr I tüt | fr I tf?f tT!#.9320,9tüt 9{80,9560

FC: l0ó1,10ülV,¡213

t{üÉ.. d p¡! Ér lT X 90m, ilü 7m, ffÍofÉi flq m ord C¡r$¡rdil Ef0tddd dtl.

D Cü*dd¡F¡DFd!¡.|Cfin ño*¿il+.F&¡rm¡ C¡d3lb¿óleúi|l¡Cllj frdicJ{odd+o¡icleCrd.Éryldagrltrll: !{gldmyFcrl

llr(ntqrodfttF¿KlrlA th*qudfotpot FAFIr: Íüqdla¡od[üt iqñq¡d2i¡ffi1g tldc¡dqtr¡¡qtdftrFdq

c cmrürqrnp'c57üq H$*t hd!td¡pñürl-{0'Cb$'q li:lt fÉotl+Í.nf55' C lo 125' q

Éü:ptn ru¡rq|rbol *tFlemdlb¡iüdc,r¡"dEtD¡ 5fólL,

r*o ct kc*i¡ l¡ l*tl

^¿ú lA¡ AA b l@.¡h € ñ *i?Jipñi. drll

trs¿ b ll.slDtt3, ¡Íf ñii:tü €qb rtt d¡rift e b ll-ll D{13,orrrrrdúr lmrÍllrc ¡tüddú+Fcs*rmryOr*¡6t9.

FIGURA 13. Nomenclatura

1.5.2.2 PLD's de propósito general. Están disponibles en una gran variedad de

densidades de integración, ofreciendo desde reemplazos PAL hasta dispositivos

de alta densidad que integran cientos de compuertas TTL y de otros tipos de

lógica. Este grupo de EPLD's se encuentra formado por: La familia CLASICA, la

familia FLEXLOGIC, la familia MAX5000, la familia MAX 7000, la familia FLEX

8000 y la familia MAX 9000.

Para las prácticas en la univers¡dad se utilizará la familia MAX 7000 y por lo tanto

se dará una explicación mas completa de su estructura intema, aunque la

diferencia con las otras familias es muy po€ y solo varían la cantidad de

compuertas y de macroceldas de salida.

Page 42: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

28

1.5.2.2.1 Max 7000. La familia MAX 7000 considerada de dispositivos de alta

velocidad y alto desarrollo, está basada en la segunda generación de arquitectura

de matrices de arreglos múltiples, y están fabricados con tecnología CMOS.

Características:

. Dispositivos lógicos programables basados en tecnología EEPROM.

o Familia con densidades lógica que varía desde 600 a 5000 compuertas

usables.

. 5 ns de retardo lógico pin a pin con frecuencias de contadores de hasta 178.6

MHz.

. Los flipflops de las macroceldas son programables con control individual de

clear, preset, clock y clock enable.

o Tiene un modo programado de ahorro de potencia del 50 % o mas en cada

macrocelda.

. Expansor configurable de términos producto, permitiendo hasta 32 términos

producto por macrocelda.

. Disponibilidad de empaques cuadrados planos de 1mm delgado , cuadrados

planos, j-lead desde 44 pines hasta 208 pines.

. Bit de seguridad programable para la protección de diseños propios.

. Operación a 3.3 v o 5.0 v

Page 43: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

29

Feature EPM7fl32

EPM7032VEPMTIB2S

EPM7|l64EPM706{S

EPfit7o96

EPM7096S

EPM7128E

EPIftIl28SEPM7128SV

EPM716flE

EPm7160S

EPM7192E

EPil7l92SEPfit7250EEPM7256S

Usablegates

600 1,250 1.800 2,500 3,200 3,750 5,000

Macrocells 32 64 96 128 160 192 256

Logic arrayblocks

2 4 6 I l0 12 16

Max, userl/O plns

36 68 76 't00 104 124 164

tpo (ns) 5 (12) 5 o 6 (10) 6 7.5 7.5

tsu (ns) 4 (10) 4 5 s (7) 5 6 6

tps¡ (ns) 2.5 (-) 2.5 2.5 2.s (3) 2.5 3 3

tcor (ns) 3.5 (7) 3.5 4 4 (5) 4 4.5 4.5

fs¡r (MHz) 178.6 (90.9) 178.6 151.5 151.5 (100) 151.5 125 125

1.5.2.2.1.1 Descripción funcional. La arquitectura del MAX 7000 incluye cuatro

entradas dedicadas que pueden ser usadas como entradas de propósito general o

como señales de control global de alta velocidad ( clock, clear, y 2 señales output

enable ), para €da macrocelda y pines de entrada y sal¡da.

INPUT/@LKINPUT/@LRn

INPUTiOEIINPUTOEz

ffiEi

aaa

UO -ffil*'i,';i3ffi ffi

uo

MacrocollsItoB 36 36

Macrocalls17 to24 t,,".,.

aaaBlock Macrocells

9to16 l6

PIA

t6

Macroceüs25to32 ffi Blod(

ffiffito 16

@

Eto16

aaa

uo

lliffi ,irji:lidH

3EH

ffiffiuo

aaaru

Mao33

ocells Iro¿o I 36

lMacrocellat'"g tuElock Macrocollg4l to 48 't6 18

Macrocslls57 to E4

Bloct

8to16

E@

aa

8tol6Oa

Elol6UO Cns

StolS!O plrr8

6to16todu

8to181/O ptsE

FIGURA 14. Diagrama en bloques de los dispositivos EPM7032,EPM7064 y EPM7096

Unho¡¡idrd Autónoma dc 0ccidcntrS[Lcr0N B.ErtOttCA

Page 44: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

30

lNruT/GCLRn

a8to12l¡OPkE.

a 6to12UO

a0lo 1210 .

a3 eroreloa

FIGURA 15. Diagrama en bloques de los dispositivos MAX 7000E y MAX 70005

1.5.2.2.1.2 Bloques de aneglos lógicos ( LAB's ). La arquitectura de los

dispositivos MAX 7000 está basada en el enlace de módulos de aneglos lógicos

de alto desarrollo llamados bloques de arreglos lógicos ( LAB's ) Un LAB consiste

de un aneglo de 16 macroceldas y se encuentran enlazados con otros LAB's a

través de los aneglos de interconexión programable ( PIA ).

Cada LAB está alimentado por las siguientes señales:

. 36 señales de la PIA que son usados por entradas lógicas generales.

¡ Control global que es usado para funciones de registro secundarios.

. Caminos de entrada directos desde los pines de | / O a los registros que son

usados para fijación rápida de tiempos en los MAX 7000E y MAX 70005.

Iaa

Page 45: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

3l

1.5.2.2.1.3 Macroceldas. La macrocelda del MAX 7000 puede ser configurada

individualmente para operación combinacional o secuencial La macrocelda

consiste de tres bloques funcionales: El arreglo lógico, la matriz de selección de

término producto y el registro programable.

La lógica combinatoria es implementada en el aneglo lógico, el cual provee 5

términos producto por macrocelda. La matriz de selección de términos producto

localiza esos términos que se usarán como entradas lógicas primarias para

impfementar funciones combinatorias o como entradas secundarias para las

funciones de clear, preset, clock y clock enable en los registros de la macrocelda.

l-AB Locel A¡Tay

Parellol LogicExpandels(ftom oth€rmacrocelb)

3E Slgnals 16 Expanderfrom PIA ProduciT€m3

Global GlobalClear Cbc*

WlcFtrlíricl

Sharsd LogbExpsndera

F|GURA 16. Macrocelda para los dispositivos EPM7032, EPM 7064 y EPM Z096

Page 46: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

32

LAg locsl AnayGlobal GlobalCbar 'ClodG

l?oílr¡o p|nParallsl Loglc

Expander3(from othermacrooells)

Fast lwUlSot6cf

fuoÚatrürptlaRs0ktc¡

RegisbrBypa!s

36 Signale 16 ExPandarfiom PIA PtodudTems

FIGURA 17. Macrocelda de los dispositivos MAX 7000E y MAX 7000S

Se disponen de dos tipos de expansores de término producto para suplementar

los recursos lóg¡cos de la macrocelda:

1. Expansor compartible, el cual está formado por los términos producto invertidos

que están real¡mentados en el arreglo lógico.

2. Expansor paralelo, los cuales son térm¡nos producto ped¡dos de macroceldas

adyacentes.

Para funciones con registros, cada flipflop de la macrocelda puede

individualmente programado para implementar operación D, T, JK o SR

control de reloj programable.

b l¡oConüolElocl(

Shared LogicExpandors

Page 47: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

33

1.5.2.2.1.4 Arreglo de interconexion programable ( PIA ). La lógica entre los

LAB's está enrutada a través de la lógica de interconexión programable ( PIA ) .

Este bus global es un camino programable que conecta una señal fuente a algún

destino en el dispositivo. Todas las entradas dedicadas, pines llO , y salidas de la

macrocelda alimentan la PIA , la cual hace que las señales estén disponibles a

través de todo el dispositivo. Solo las señales requeridas por cada LAB son

enrutadas desde la PIA hacia el LAB.

1.5.2.2.1.5 Bloques de control de l/O. Los bloques de control de l/O permiten

que cada pin l/O sea individualmente configurado como entrada, salida o en

operación bidireccional. Todos los pines l/O tienen un buffer tri-state que es

individualmente controlado por una señal global de output enable o directamente

conectados a WC O GND .

1.5.2.2.2 MAX 9000. Es un PLD de alta densidad basado en los términos

producto con dispositivos desde las 320 a 560 macroceldas, con salidas dual y

registros l/O. Están basados en tecnologfa EEPROM.

1.5.2.2.3 FLEX 8000. Son PLD's con características como gran cantidad de

registros, alta densidad, baja potencia y reconfigurables en circuito. Combinan los

beneficios característicos de las FPGA'S con el alto desanollo, los predecibles

retardos en las interconexiones y facilidad de usar de un EPLD. Se encuentran

basados en tecnología de 0.6 micrones .

Page 48: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

34

La familia FLEX 8000 es ideal para aplicaciones que requieren un gran número de

registro y pines | / O. Los dispositivos varlan en una densidad de 2500 hasta

50000 compuertas usables , eon 282 hasta 4752 registros y de 78 a 360 pines | /

O. Los dispositivos FLEX 8000 basados en tecnología SRAM requieren bajo

poder en standby y son reconfigurables en circuito, haciéndolos ideales para

aplicaciones como tarjetas en PC , instrumentos alimentados por baterías , y

tarjetas multipropósito para telecomunicaciones.

1.5.2.2.4 MAX 5000. Son EPLD's de bajo costo que solucionan tareas de diseño

con integrados que varlan desde los 20 pines hasta los 100 pines. Proporcionan

soluciones para diseños que requieren un alto nivel de lógica combinatoria, con

densidades que varlan desde las 300 hasta las 3800 compuertas usables.

1.5.2.2.5 Flex logic. Es una familia de EPLD's de mediana densidad y alta

velocidad. Es un innovado acople de poderosa arquitectura con dos tecnologías

líderes ( SRAM y FLASH ) que la hace la familia mas común.

1.5.2.2.6 Clasica. Son los EPLD's estándar de la industria que ofrecen

soluciones a alta velocidad e integración lógica de baja potencia. Tienen

frecuencias en los contadores internos tan altas como 115 MHz . Posee entre I y

48 macroceldas programables y entre 150 y 900 compuertas usables. Se

encuentran en pastillas de 20 a 68 pines.

Page 49: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

35

Está compuesta de aneglos simples de lógica interconectada globalmente, la

familia clásica estándar de la industria ofrece soluciones a bajo costo para

aplicaciones de baja densidad. Esta familia ofrece un modo único (Zero-Power )

el cual permite que el dispositivo consuma solo microamperios de coniente en

standby, haciéndolo ideal para aplicaciones de bajo poder. Su construcción está

basada en tecnología EPROM.

Page 50: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

2. LENGUAJES DE DESCRIPCION HARDWARE

Debido a la necesidad de predecir la conecta operación de circuitos complejos,

cuya descripción es bastante complicada, se creó un,lenguaje estructurado, para

lograr descripciones eficientes y concisas del diseño y funcionamiento de tales

sistemas.

En un lenguaje de descripción hardware se hace una explicación de lo que el

sistema hace en términos de secuenciación de operaciones y del flujo de

información desde un punto a otro en el sistema.

Las ventajas que trae realizar diseños con los lenguajes de descripción hardware

son:

o Posibilidad de diseñar en niveles altos de abstracción.

. Reducir la complejidad.

o División entre flujo y control de datos.

o Independencia del hardware.

o Estructurar las técnicas de diseño.

. Analizar los tiempos y la concunencia.

r Capturar las especificaciones.

Page 51: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

37

o Verificar y simular.

2.1 VHDL

VHDL es un acrónimo para Lenguaje de Descripción Hardware VHSIG (Circuitos

Integrados de Muy Alta Velocidad). Es un lenguaje de descripción hardware que

puede ser usado para modelar un sistema digital en muchos niveles de

abstracción, variando desde el nivel de algoritmo al nivel de compuerta. La

complejidad del sistema digital a ser modelado puede variar desde una simple

compuerta a un sistema electrónico digital complejo y puede ser descrito

jerárquicamente, incluyendo el modelamiento de la temporización en la misma

descripción.

Este lenguaje permite expresar el comportamiento concurente o secuencial de un

sistema digital, con o sin temporización, también permite modelar el sistema

como una interconexión de componentes.

Un archivo de diseño en VHDL puede ser creado utilizando el editor de texto del

MAX+PLUS ll, donde hay la necesidad de llamar una librerla que contiene las

estructuras que permiten la compilación de archivo de este tipo, ó con cualquier

editor de texto.

Page 52: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

38

2.1.1 Historia. El proceso de desanollo del VHDL comienza formalmente en junio

de 1981 con un grupo de trabajo patrocinado por el programa VHSIC del gobiemo

de los Estados Unidos, cuyas metas eran:

. Avanzar en las áreas de diseño, proceso y tecnologla de producción.

Proveer medios para que la modificación de sistemas operacionales

avanzados se hiciera de manera rápida ( inserción de nuevos componentes

microelectrónicos ).

Mejorar la comunicación entre y dentro de las compañías para perfeccionar los

procesos de desanollo.

La conclusión de este grupo de trabajo fue que se debía establecer una meta

para desanollar un nuevo lenguaje de descripción hardware estándar en la

industria, independiente de la tecnología y que llenara las necesidades de los

miembros de la comunidad microelectrónica.

En julio de 1983 el grupo de Intermetrics, lBM, y Texas Instruments ganó el

contrato para desanollar el nuevo lenguaje y para implementar el software

necesario para usarlo. La versión final del lenguaje desanollado, conocido como

VHDL versión 7.2 , estuvo disponible en agosto de 1985, y en febrero de 1987

estuvo disponible el conjunto de henamientas revisado completamente.

Page 53: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

39

En marzo de 1986 la IEEE crea un grupo de análisis con el fin de realizar la

estandarización del VHDL y surge el IEEE - 1076 el cual fue aprobado en

diciembre de 1987. Como un estándar de la IEEE, VHDL debe ser sometido a

revisión cada 5 años para asegurar se relevancia en la industria. La primera de

tales revisiones se completó en septiembre de 1993.

2.1.2 Ventajas. VHDL es un lenguaje jerárquico, esto es, un sistema digital

puede ser modelado como un conjunto de mmponentes interconectados; y a su

vez cada @mponente puede modelarse como un conjunto de subcomponentes

interconectados.

Soporta modelos de temporización sincrónica y asincrónica.

Usando este lenguaje se pueden realizar varias técnicas de modelamiento

digital tales como descripción de máquinas de estado finitas, descripciones de

algoritmos y ecuaciones Booleanas.

Este lenguaje soporta tres estilos de descripciones básicas diferentes:

estructural, de flujo de datos y de comportamiento. Un diseño también puede

ser expresado con cualquier combinación de estos tres estilos descriptivos.

Este lenguaje no tiene limitaciones para el tamaño de los diseños.

Soporta un amplio rango de niveles de abstracción, variando desde

descripciones de comportamiento abstracto hasta descripciones muy precisas

al nivel de compuerta.

Page 54: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

40

o El lenguaje tiene elementos que facilitan el modelamiento, por ejemplo,

componentes, funciones procedimiento y paquetes.

2.1.3 Características de modelamiento del lenguaje.

2.1.3.1 Terminologla. VHDL es un lenguaje de descripción hardware que puede

ser usado para modelar un sistema digital. Una abstracción hardware de este

sistema es llamada una entidad. Para describir una entidad, VHDL proporciona 5

diferentes tipos de construcciones primarias llamadas unidades de diseño. Ellas

son:

1. Declaración de entidad.

2. Cuerpo de la arquitectura.

3. Declaración de configuración.

4. Declaración de paquete.

5. Cuerpo del paquete.

Una entidad se modela usando una declaración de entldad y al menos un cuerpo

de arquitectura. La declaración de entidad describe la mirada extema de la

entidad, por ejemplo, los nombres de las señales de entrada y salida. El cuerpo de

arquitectura contiene la descripción interna de la entidad, por ejemplo, un conjunto

de componentes interconectados que representan la estructura de la entidad, o un

Page 55: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

41

conjunto de sentencias secuenciales o concunentes que representan su

comportamiento.

La declaración de configuración es usada para crear una configuración para una

entidad. Esta declaración relaciona con la entidad un cuerpo de arquitectura de

los muchos que pueden estar asociados con ella. También puede especificar la

relación con otras entidades de los componentes usados en el cuerpo de

arquitectura seleccionado. Una entidad puede tener cualquier cantidad de

configu raciones d iferentes.

Una declaración de paquete enciena un conjunto de declaraciones relacionadas

tales como declaraciones de tipo, declaraciones de subtipo y declaraciones de

subprograma que pueden ser compartidas por dos o mas unidades de diseño. Un

cuerpo de paquete contiene las definiciones de subprogramas declarados en la

declaración de paquete.

2.1.3.2 Elementos básicos del lenguaje. Se describen los elementos básicos del

lenguaje. Esto incluye datos objeto los cuales almacenan valores de un tipo dado,

literales que representan valores constantes, y operadores que operan sobre los

datos objeto. Cada dato objeto pertenece a un tipo específico.

2.1.3.2.1 ldentificadores. Un identificador en VHDL esta compuesto de una

secuencia de uno o más caracteres. Un caracter legal es una letra mayúscula

--

Page 56: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

42

(4...2), o una letra minúscula (a...2), o un dígito (0...9) o el caracter de subrayado

O. El primer caracter en un identificador debe ser una letra y el último no puede

ser una raya. Las letras mayúsculas y minúsculas son consideradas iguales

cuando son usadas en un identificador. Tampoco, dos caracteres de subrayado

pueden aparecer consecutivamente. Algunos ejemplos de identificadores son:

DRIVE_BUSSET-CK-HIGH

SelecfSignalcoNsTS2_59

RAM_addresr2d2

Los comentarios en una descripción deben ser precedidos por dos guiones

consecutivos C-); el comentario se extiende hasta el final de la línea. Los

comentarios pueden aparecer en cualquier lugar dentro de una descripción.

-Esfe es un comentario, y termina en el final de esta línea-Para continuar un comentario sobre una segunda línea,--se debe comenzar como si fuera un comentario independienteentity UART is end; -Esfe comentario empieza después de la

* declaración de entidad

2.1.3.2.1 Datos Objetos. Un dato objeto retiene un valor de un tipo especifico.

Es creado para darle significado a una declaración. Una declaración de objeto es

usada para declarar un objeto, su tipo, su clase, y asignar opcionalmente un

valor. Un ejemplo es:

variable COUNT: INTEGER;

Page 57: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

43

Esto resulta en la creación de un dato objeto llamado COUNT el cual puede

retener valores enteros. El objeto COUNT es también declarado para ser de tipo

variable. Todo dato objeto pertenece a una de las tres clases siguientes:

. CONSTANTE: Un objeto de clase constante puede retener un valor único de un

tipo dado. Este valor es asignado al objeto antes de que empiece Ia simulación

y no puede ser cambiado durante el curso de la misma.

o VARIABLE: Un objeto de clase variable puede también retener un solo valor de

un tipo dado. Sin embargo, en este caso, se le pueden asignar distintos valores

al objeto en tiempos diferentes usando una declaración de asignación de

variable.

. SEÑAL: Un objeto perteneciente a la clase señal tiene una historia pasada de

valores, un valor actual, y un conjunto de valores futuros. Los valores futuros

pueden ser asignados a una señal objeto usando una declaración de

asignación de señal.

Los objetos señales pueden ser considerados como cables en un circuito,

mientras objetos variables y constantes son análogos a su contraparte en un

lenguaje de programación de alto nivel como C o Pascal. Los objetos señales son

típicamente usados para modelar cables y flip-flops mientras que objetos variables

y constantes son usados para modelar el comportamiento del circuito.

Page 58: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

44

2.1.3.2.3 Declaración de Constantes. Ejemplos:

constant RISE_TIME: TIME := 10 ns;constant BUS_WIDTH: INTEGER := 8;

La primera sentencia declara el objeto RISE_TIME que puede retener un valor de

tipo TIME (un tipo predefinido en el lenguaje) y el valor asignado a el objeto en el

arranque de la simulación es 10 ns. La segunda sentencia de constante declara

una constante BUS_WIDTH de tipo INTEGER con un valor de 8.

2.1.3.2.4 Declaración de Variables. Ejemplos de declaración de variables son:

variable CIRL_SIAIUS; BIT_VECTOR (10 to 0);variable SUM_INTEGER range 0 to 100 := 10;variable FOU N D, DONE.' BOOLEAN ;

La primera declaración especifica una variable objeto CTRL_STATUS como un

arreglo de 11 elementos, con cada elemento del aneglo de tipo BlT. En la

segunda declaración, se asignó un valor inicial a la variable SUM. Cuando

empieza la simulación, SUM deberá tener un valor inicial de 10. Si el valor inicial

no se especifica para una variable objeto, se usa un valor por defecto como valor

inicial. Este valor por defecto es T'LEFT donde T es de tipo objeto y LEFT es un

atributo predefinido de un tipo que da el primer valor en el conjunto de valores

perteneciente al tipo. En la tercera declaración, el valor que se asigna a FOUND y

DONE en el inicio de la simulación es FALSE (FALSE es el primer valor del tipo

Page 59: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

45

predefinido Boolean). El valor inicial de todos los elementos del aneglo de

CTRL STATUS es'0'.

2.1.3.2.5 Declaracion de Señales.

signal CLOCK: BIT;signal DATA_BUS: BIT_VECTOR (0 to 7);signal GATE_DELAY: TIME :=10 ns;signal VCC : BIT :='1';

La interpretación de estas declaraciones de señal es muy similar a las

declaraciones de variable. La primera declaración de señal declara el objeto señal

CLOCK de tipo BIT y da un valor inicial de '0'( siendo '0' el primer valor de tipo

BIT). La tercera declaración de señal declara una señal objeto GATE_DELAY de

tipo TIME que tiene un valor inicial de 10 ns. La última señal será VCC de tipo BIT

y con un valor de '1'.

2.1.3.3 Declaración de Entidad. La declaración de entidad especifica el nombre

de la entidad a ser modelada y lista el conjunto de puertos de interfaz. Los puertos

son señales a través de las cuales la entidad se comunica con otros modelos en

su ambiente extemo. Ejemplo:

Declaración de entidad para el sumador de dos bits mostrado en la figura 18.

Page 60: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

46

CARRY

FIGURA 18. Circuito sumador de dos bits (HALF-ADDER)

entity HALF-ADDER isport (4, B: in BIT; SUM, CARRY: out BIT);

end HALF_ADDER;

La entidad llamada HALF-ADDER, tiene dos puertos de entrada, A y B (el modo in

especifica puerto de entrada), y dos puertos de salida, SUM y CARRY (el modo

out especifica puerto de salida). BIT es un tipo predefinido del lenguaje, es un tipo

de enumeración que contiene los caracteres'0'y'1'.

El siguiente es un ejemplo de una declaración de entidad para un circuito

decodificador mostrado en la figura 19.

B

=NABLE

z(o)

z(11

z(2)

z(3)

FIGUM 19. Circuito de un decodificador de2 a 4

Page 61: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

47

entity DECODER 2*4 isport (4, B, ENABLE: in BIT; Z: out BIT_VECTOR (0 to 3));

end DECODER 2.4;

Esta entidad llamada DECODER 2*4, tiene tres puertos de entrada y cuatro

puertos de salida. BIT_VECTOR es un arreglo de tipo BIT predefinido. El rango "0

to 3" para el puerto Z especifica el tamaño del aneglo.

2.1.3.4 Cuerpo de Arquitectura. Los detalles intemos de una entidad están

especificados por un cuerpo de arquitectura usando cualquiera de Ios siguientes

estilos de modelamiento:

1. Como un conjunto de componentes interconectados ( para representar

estructura).

2. Como un conjunto de sentencias de asignación concutrentes ( para representar

flujo de datos ).

3. Como un conjunto de sentencias de asignación secuenciales (para representar

comportamiento).

4. Cualquier combinación de los tres anteriores.

2.1.3.4.1 Estilo de Modelamiento Estructural. En este estilo, una entidad se

describe como un conjunto de componentes interconectados.

Page 62: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

48

Una representación estructural para la entidad del decodificador 2*4, mostrado en

la figura 19, es la siguiente:

architecture DEC_SIR of DECODER 2*4 iscomponent INV

port (A: in BIT;Z: out BIT);end component;component NAND3

port (4, B, C: in BIT; Z: out BIT);end component;signal ABAR, BBAR: BIT;

beginlO: INV port map (A, ABAR);11: INV port map (8, ABAR);NO;NAND3 port map (ABAR, BBAR, ENABLE, Z(0));Nl:NAND3 port map (ABAR, B, ENABLE, Z(1));N2:NAND3 port map (A, BBAR, ENABLE, Z(2));NO:NAND3 port map (A, B, ENABLE, Z(3));

end DEC_SIR;

En donde:

archit*ture DEC SIR of DECODER 2*4 is

lndica que el nombre del cuerpo de arquitectura es DEC_STR y está asociado con

la decfaración de entidad DECODER 2*4; por lo tanto, hereda la lista de puertos

de interfaz de esta declaración de entidad.

component INVport (A: in BIT; Z: out BIT);

end component;component NAND3

port (4, B, C: in BIT;Z: out BIT);end component;

Page 63: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

49

En este grupo de sentencias se declaran los dos componentes (lNV y NAND3)

utilizados.

signal ABAR, BBAR: BIT;

El cuerpo de arquitectura contiene una declaración para las dos señales, ABAR y

BBAR de tipo BlT. Estas señales, que representan cables, son usadas para

conectar los diferentes componentes que forman el decodificador. El alcance de

estas señales está restringido al cuerpo de arquitectura, y por lo tanto, estas

señales no son visibles fuera de é1, a diferencia de los puertos de una declaración

de entidad que están disponibles para cualquier cuerpo de arquitectura asociado

con la declaración de entidad.

beginlO: INV port map (A, ABAR);11: INV port map (8, ABAR);NO:NAND3 port map (ABAR, BBAR, ENABLE, Z(0));N1:NAND3 port map (ABAR, B, ENABLE, Z(1));

N2:NAND3 port map (A, BBAR, ENABLE, Z(2));NS;NAND3 port map (A, B, ENABLE, Z(3));

end DEC_SIR,'

Con las sentencias de instanciación de componentes anteriores se describe una

interconexión de componentes (vistos como cajas negras) sin implicar cualquier

comportamiento de sus componentes, ni de la entidad que ellos colectivamente

representan. Las señales A, B y ENABLE, son los puertos de entrada declarados

en la declaración de entidad DECODER 2*4. En la instanciación de componente

Unlüarsidtd autónoma de Occ¡drnta

sEuclot{ B ELloItcA

Page 64: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

50

etiquetada N3, el puerto A está conectado al puerto de entrada A del componente

NAND3, el puerto B está conectado al puerto de entrada B del componente

NAND3, el puerto ENABLE está conectado al puerto de entrada C, y el puerto de

salida Z del componente NAND3 está conectado al puerto Z(3) de la entidad

DECODER 2*4. El comportamiento de los componentes NAND3 e INV no es

aparente, tampoco lo es el comportamiento de la entidad del decodificador que el

modelo estructural representa.

Declaración Generate. La declaración Generate consiste de un esquema de

generación y un conjunto de declaraciones concunentes. La forma general de

una declaración Generate es:

nombre identificador: esquema de generación generated e cl a ra cio n e s co n c u ne nte s

end generate identificador ;

Existen dos tipos de esquemas de generación: El esquema if y el for. Para el

esquema if, la declaración generate especifica una creación condicional del

conjunto de las declaraciones concunentes que contenga. Mientras que para el

for se especifica una creación repetitiva.

El esquema for declara un parámetro generate y un rango discreto, definiendo tos

valores que el parámetro generate tomará.

Page 65: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

5l

for identificador in rango discreto

El esquema if se utiliza cuando se tienen estructuras irregulares. Es decir, cuando

existen estructuras repetitivas que en ciertas partes de la arquitectura cambia su

forma. Esto se puede ver claramente en el ejemplo de un contador que consiste

de flip-flops T y compuertas AND. Donde los flip-flops internos van conectados de

la misma forma, pero los externos tienen conexiones diferentes.

FIGUM 20. Contador con flip-flops T y compuertas AND

entity Counter isport (

CLK: Bit;Carry: Bit;Dout : buffer Bit_vector (7 downto 0));

end counter;architecture Counter of Counter is

component TFFport (CLK : Bit ; T : Bit ; Q : buffer Bit) ;

end component;

component AND2port (11, 12 : Bit ; 01 : out Bit) ;end component;

signal S: Bit_vector (7 downto 0) ;signal Tied_high : Bit :='1' ;

begin

Gl : for I in 7 downto 0 generate

Page 66: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

52

G2:ifl=TgenerateTFF_7 : TFF port map (CLK, S(l -1), Dout() ;

end generate ;

G3:ifl=0generateTFF_O : TFF port map (CLK, Tied_high, Dout(l) ;S(, <- Dout(l) ;

end generate ;

G4 : if I > 0 and I < 7 generateAnd_1 : And2 port map lsl - 1), Dout(t), S(t)) ;TFF_1 : TFF port map (CLK, S(l - 1), Dout(l)) ;

end generate;end generate;

end Counter;A diferencia de las declaraciones if secuenciales, el if generate no puede tener

else o ramas elsif .

2.1.3.4.2 Estilo de Modelamiento de Flujo de Datos. En este estilo de

modelamiento, el flujo de datos a través de la entidad se expresa usando

declaración de asignación de señales. La estructura de la entidad no está

especificada expllcitamente en este estilo de modelamiento, pero puede ser

implícitamente deducida. Aquí esta un modelo de ffujo de datos para la entidad del

DECODER 2*4:

architecture DEC_DATFLOW of DECODER 2*4 issignal ABAR, BBAR: BIT;

beginZ(3) <= not (A and B and ENABLE); -fnse 1

Z(0) <- not (ABAR and BBAR and ENABLE); -fmse 2BBAR <= not Bi -fiiase 3Z(3) <- not (A and BBAR and ENABLE); -frcse 4

Page 67: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

53

ABAR <= not A;Z(1) <= not (ABAR and B and ENABLE);

end DEC_DATAFLOW;

-frase 5-fnase 6

El cuerpo de arquitectura consiste en una declaración de señal y seis

declaraciones asignadas de señales concurrentes. La declaración de señal

declara las señales ABAR y BBAR para ser usadas localmente dentro de la

cuerpo de arquitectura. En cada declaración de asignación de señal, la cláusula

after no fue usada para especificar retardo. En tales casos, se asume un retardo

por defecto de 0 ns. Este retardo es también conocido como un retardo delta, y

representa un retardo infinitesimalmente pequeño. Este pequeño retardo

corresponde a un retardo cero con respecto al tiempo de simulación y no a un

tiempo de simulación real.

La cláusula after puede ser usada para generar una señal de reloj como se

muestra en la siguiente declaración de asignación de señales:

CLK <= not CLK after 10 ns;

Esta declaración crea una forma de onda periódica sobre la señal CLK con un

periodo de 20 ns.

Page 68: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

54

at10 Z0 30 40 S0 0O ZO ns

FIGURA 21. Forma de onda de reloj con periodo constante

2.1.3.4.3 Estilo de Modelamiento de Comportamiento. En contraste con los

estilos de modelamiento descritos anteriormente, el estilo de modelamiento de

comportamiento especifica el comportamiento de una entidad como un conjunto

de declaraciones que son ejecutadas secuencialmente en el orden especificado.

Este conjunto de declaraciones secuenciales, que son especificadas en el interior

de la declaración de un proceso, no especifican explícitamente la estructura de la

entidad pero especifican meramente su funcionalidad. Una declaración de

proceso es una declaración concurrente que puede aparecer dentro de un cuerpo

de arquitectura.

2.1.3.4.3.1 Declaracion de entidad. Una declaración de entidad describe la

interfaz interna de la entidad y la muestra como una caja negra. Aqul se especiftca

el nombre de la entidad, los nombres de los puertos de interfaz, sus modos y el

tipo de puerto.

entity Nombre De La Entidad isport ( nombres de /os puertos : tipo de puerto );

end nomb¡e de la entidad ;

Page 69: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

55

cada puerto de interfaz puede tener alguno de los siguientes modos:

1. lN : El valor del puerto de entrada solo puede ser leído en el modelo de la

entidad

2. OUT : El valor del puerto de salida solo puede ser actualizado dentro del

modelo de la entidad; el no puede ser lefdo

3. INOUT : El valor de un puerto bidireccional puede ser leldo y actualizado dentro

del modelo de la entidad.

4. BUFFER : El valor de un puerto buffer puede ser leldo y actualizado dentro del

modelo de la entidad. Sin embargo, difiere del modo INOUT en que no puede

tener más de una fuente y la clase de señal que le puede ser conectada puede

ser de otro puerto buffer o una señal con al menos una fuente.

2.1.3.4.3.2 Cuerpo de arquitectura. Un cuerpo de arquitectura describe la vista

interna de una entidad. También describe la funcionalidad o la estructura de la

entidad. La sintaxis de un cuerpo de arquitectura es:

architecture nombre de la arquitectura of nombrc de la entidad isbegin

d e cl a ra ci o n e s co n cu ne nte s ;end nombre de la arquitectura;

Las declaraciones concurrentes describen la composición intema de una entidad.

Todas las declaraciones son ejecutadas en paralelo y por lo tanto su orden textual

de aparición dentro del cuerpo de arquitectura no tiene impacto sobre el

comportamiento implicado.

Page 70: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

56

2.1.3.4.3.3 Declaracion de proceso. Una declaración de proceso contiene las

sentencias secuenciales que describen la funcionalidad de una porción de una

entidad.

I etiqueta del proceso: ] process [ ( lista sensitiva ) ]begin

declaraciones secuencialesend process [etiqueta del proceso ];

La lista sensitiva es un conjunto de señales las cuales cuando un evento ocure

sobre alguna de ellas, hacen que se ejecuten las sentencias secuenciales que se

encuentran dentro del proceso en el orden en que aparecen. El proceso se

suspende después de ejecutar la última declaración y espera hasta que otro

evento ocurra sobre una de las señales de la lista.

2.1.3.4.3.4 Declaración de asignación de variables. Las variables pueden ser

declaradas y usadas dentro de una declaración de proceso. Para asignarle un

valor a una variable se hace de la siguiente forma:

variable-object := expresion ;

Las variables son creadas al tiempo de la elaboración y retienen sus valores

durante toda la simulación.

Page 71: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

57

process ( A )variable EYENIS_ON_A : INTEGER := 0 ;

beginEYENIS_ ON_A:= EYENIS_ ON_A + 1 ;

end process;

La variable EVENTS_ON_A empieza inicializada en cero (0), cuando algún evento

ocurre sobre la señal A, la variable es incrementada en uno (1). Al finalizar la

simulación la variable de eventos en A contendrá el número de eventos que

ocunieron sobre la señal A.

2.1.3.4.3.5 Declaración de asignación de señales. La forma más simple de hacer

asignación de señales es:

signahobj*t 1= expresion I after delay-value ] ;

Una declaración de asignación de señal puede aparecer dentro o fuera de un

proceso. Cuando es ejecutada, el valor de la expresión es computado y su valor

es programado para ser asignado a la señal después de un retardo específico. Si

no se especifica la cláusula after el retardo es asumido por defecto. Algunos

ejemplos de declaración asignada de señal son:

COUNTER <= COUNTER + '0010';PAR <- PAR xor DIN after 12 ns;

Page 72: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

58

Cuando se hace asignación de señales existen tres tipos de retardos, el delta, el

de transporte, y el inercial. El retardo delta modela el hardware donde se necesita

una mínima cantidad de tiempo para que un cambio ocurra. Este tipo es usado

por defecto cuando no se especifica el retardo en la asignación de señal.

El retardo inercial representa el tiempo durante el cual un valor de entrada debe

ser estable antes de que el valor sea propagado a la salida. Además el valor

aparece a la salida después del retardo especificado. Si la entrada no es estable

durante eltiempo especificado, no habrá cambio en la salida.

Z <= A after 10 ns;

A fr Z 5 I 10 252830 45 48

--- z

F|GURA 22. Gráfic.a de retardo inercial

El retardo de transporte representa retardos de propagación puros, es decir,

cualquier cambio en una señal, no importa que tan pequeña sea, es propagado a

la salida después del retardo especificado.

Page 73: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

59

A rr L 5 810 252830 4518

-_- z r-rr-r r-l l-ll l_l | |

15 1820 35ffi40

FIGURA 23. Gráfica de retardo de transporte

2.1.3.4.3.6 Drivers de señal. Toda asignación de señal en un proceso crea un

driver para esa señal. Este driver mantiene su valor actual y todos sus futuros

valores como una secuencia de una o mas transacciones, donde cada transacción

identifica el valor con el que aparecerá la señal y el tiempo en el cual lo hará.

Z <= transport A after 10 ns;

processbegin

resef <= 3 after 5 ns, 21 after 10 ns, 14 after ns;end process;

Todas las transacciones en un driver se ordenan en el orden de incremento del

tiempo. Un driver contiene al menos una transacción la cual puede ser el valor

inicial de la señal. Si una señal se encuentra dentro de un proceso solo puede

tener un driver, si hay más de uno las transacciones de la segunda asignación de

señal modifican las transacciones que están presentes en el driver dependiendo

de si se usa el modelo de retardo inercial o de transporte.

Univ¡lsirlad Autónoma de (hgoontl

stuct0at 8 Brt0f tüA

Page 74: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

60

2.1.3.4.3.7 Declaración WAIT. Un proceso puede ser suspendido de tres formas

básicas diferentes.

wait on lista sensitiva;wait until exprcsión Booleana;waitfor exprcsión de tiempo;

Algunos ejemplos son:

wait on A, B, C;

La ejecución de esta declaración causa que el proceso se suspenda y espera a

que un evento ocurra sobre alguna de las señales. Una vez que esto pasa el

proceso continua con la ejecución de la próxima declaración.

waituntil(A=B);

El proceso se suspenderá hasta que la condición especifica se vuelva verdadera.

wait for 10 ns;

Cuando se ejecuta esta declaración en un tiempo t, el proceso se suspende por

10 ns, y cuando el tiempo de la simulación avanza a t+10 ns el proceso continua

con la siguiente sentencia.

2.1.3.4.3.8 Declaración lF. Una sentencia if selecciona una secuencia de

declaraciones para ejecución basada en el valor de una condición. La condición

puede ser alguna expresión que evalúa a un valor Booleano.

Page 75: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

6l

if expresion booleana thend e cl a ra ciones secue n ci al e s

I elsif exp¡esion booleana thendeclaraciones secue nciales l

I elsedeclaraciones secue nciales lend if;

La sentencia if es ejecutada por el chequeo de cada condición secuencialmente

hasta que la verdadera sea encontrada. Después el conjunto de declaraciones

secuenciales asociadas con esa condición serán ejecutadas. La declaración if

puede o no tener cláusulas elsif y una cláusula opcional else. Aqul están algunos

ejemplos.

if SUM <= 100 thenSUM := SUM + 10i

end if;

if CTRL ='1'thenif CTRL2 ='0'then

MUX_OUT <= "0010"'else

MUX_OUT <= "0001";end if;

elseif CTRL2 ='0'then

MUX_OUT <= "1000";else

MUX_OUT <= "0100";end if;

end if;

Page 76: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

62

2.1.3.4.3.9 Declaración CASE. El formato para una declaración case es:

case exprcsion iswhen opción => declaraciones secuencialeswhen opción => declanciones secuencialesI when others => declaraciones secuencailes ]

end case;

La declaración case selecciona una de las ramas para la ejecución basada en el

valor de la expresión. Este valor debe ser de tipo discreto o de tipo de aneglo de

una dimensión. Las opciones pueden ser expresadas como valores simples, como

un rango de valores, usando | ( bana vertical: representa una 'o/' ), o usando la

cláusula others. Todos los posibles valores de la expresión deben ser cubiertos

en la declaración. La cláusula others puede ser usada como una opción para

cubrir los valores innecesarios y debe ser la última rama de la declaración.

PMUX: process (A, B, C, D, CTRL)variable TEMP: BIT;

begincase CIRI ,b

when u00" => TEMP := A;

when "07'=> TEMP := B;when "70'=) TEMP := C;when "7 7 " => TEMP := D;

end case,'

end MUX_BEHAVIOR;

2.1.3.4.3.10 Declaración LOOP. La declaración loop es usada para iterar a

través de un conjunto de declaraciones secuenciales.

Page 77: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

63

I nombre del lazo : ] esquema de iteración loopd e cl a ra ciones secue n ci a le s

end loop I nombre del lazo ];

Hay tres tipos de esquemas de iteración. El primero es el esquema de iteración

for que tiene la forma:

for identificador in rango

Ejemplo:

Upg HEXL is ( '0', '7', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' );

for NUM in HEXA ('9') downto HEXA ('0') loop-NUM tomañ valores en tipo hexadecimal de '9' hasta '0'Declarcciones secue ncíales

end loop;for CHAR in HEXA loop

-CHAR tomará valores en tipo hexadecimal de '0' hasta 'F'

end loop;

Cuando las señales NUM y CHAR tomen algún valor de los especificados en el

rango, se ejecutarán las declaraciones secuenciales que se encuentran dentro del

lazo.

La segunda forma de iteración es el esquema while:

while expresion booleana

Un ejemplo de un esquema de iteración while es

J:=0;SUM := 10;

Page 78: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

64

WH_LOOP: while J < 20 loopSUM := SUM * 2;J:=J+3;

end loop;

Las declaraciones dentro del cuerpo del lazo son ejecutadas secuencial y

repetidamente tantas veces como la condición, J < 20, sea verdadera. De lo

contrario la ejecución continua con la sentencia siguiente a la declaración del lazo.

La tercera y última forma de iteración es una donde no se especifica un esquema.

Aqul todas las declaraciones en el cuerpo del lazo son ejecutadas repetidamente

hasta que alguna acción lo haga salir del lazo. Estas acciones pueden ser

causadas por una declaración exit, next, o return. Ejemplo:

SUM := 1; J := 0;L2:loop

J:=J+21;SUM := SUM * 10;exit when SUM > 100:

end loop L2;

En este ejemplo la declaración exit causa la ejecución de un salto fuera del lazo

L2 cuando la SUM se vuelva más grande.

2.1.3.4.3.11 Declaración EXIT. La sentencia Exit es una declaración secuencial

que puede ser usada solo dentro de un lazo. Causa la ejecución de un salto fuera

del lazo en que se encuentra o del lazo que especifica la etiqueta. La sintaxis es:

Page 79: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

65

exit I etíqueta ] [ when condición ]

Si se usa la cláusula when solo se ejecutará el salto cuando la condición se

cumpla.

Todas estas declaraciones, que pueden ser usadas en el estilo de modelamiento

de comportamiento, deben seguir un patrón básico cuando se van a utilizar

dentro de un cuerpo de arquitectura, por ejemplo, considere el siguiente modelo

para la entidad del DECODER 2.4.

architecture DEC_SECUENTIAL of DECODER 2*4 isbegin

process (A, B, ENABLE)variable ABAR, BBAR: BIT;

beginABAR := not A;BBAR:= not B;if (ENABLE ='1') then

Z(3) t- not (A and B);z(0) <= not (ABAR and BBAR);z(2) <= not (A and BBAR);z(1) <= not (ABAR and B);

elseZ<=ul111";

end if;end process;

end;

Page 80: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

66

Una declaración de proceso tiene una parte declarativa (entre las palabras claves

process y begin), y una parte de declaración (entre las palabras claves begln y

end process). Las sentencias que aparecen dentro de la parte de la declaración

son ejecutadas secuencialmente.

process (4, B, ENABLE)

La lista de señales especificada dentro del paréntesis después de la palabra clave

process constituyen una lista sensitiva y la declaración del proceso es invocada

siempre que allí haya evento sobre cualquier señal en la lista. En el ejemplo

previo, cuando un evento ocure sobre las señales A, B o ENABLE, las

declaraciones que apareoen dentro del proceso de declaración son ejecutadas

secuencialmente.

variable ABAR, BBAR: BIT;

La declaración de variable (comienza con la palabra clave variable) declara dos

variables llamadas ABAR y BBAR. Una variable es diferente de una señal en que

ella siempre es asignada a un valor instantáneamente y el operador usado es el

símbolo compuesto .'= .En contraste con una señal que es asignada a un valor

siempre después de un cierto retardo (especificado por el usuario o el retardo

delta por defecto), y el operador usado para asignar un valor a la señal es el

símbolo compuesto <=. También, las variables pueden ser declaradas dentro de

Page 81: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

67

un proceso y su €mpo de aplicación es limitado a ese proceso (las variables

pueden ser también declaradas dentro de un subprograma).

beginABAR := not A;BBAR:= not B;

if (ENABLE = '1') thenZ(3) <- not (A and B);Z(0) <- not (ABAR and BBAR);z(2) <= not (A and BBAR);z(1) <= not (ABAR and B);

elseZ<="1111";

end if;

-f¡ase I-f¡ase 2-fiiase 3-frase 4

-frase 5-fiase 6-f¡ase 7

-fiase 8

En el anterior cuerpo de arquitectura, si un evento ocune sobre cualquier señal, A,

B, o ENABLE, la frase 1 la cual es una declaración de asignación de variable, es

ejecutada, luego frase 2, y así sucesivamente. La ejecución de la tercera frase, en

la declaración if, permite saltar a la rama apropiada basándose en el valor de la

señal, ENABLE. Si el valorde ENABLE es'1', las próximas cuatro declaraciones

asignadas de señales, 4 hasta 7, son ejecutadas independientemente de si A, B,

ABAR, o BBAR cambian de valor, y la señal objetivo es programada para dar su

respectivo valor después de un retardo delta. S¡ ENABLE tiene un valor '0', un

valor de'1'es asignado a cada uno de los elementos de salida del aneglo Z.

cuando la ejecución alcanza el fin del proceso, el mismo se suspende, y espera

que otro evento ocura sobre una señal en una lista sensitiva.

Page 82: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

68

Es posible usar las declaraciones case o loop dentro de un proceso. La

semántica y estructura de estas declaraciones son muy similares a las de un

lenguaje de alto nivel de programación como C o Pascal.

Una declaración expllcita wait puede también ser usada para suspender un

proceso, para esperar una cierta cantidad de tiempo, hasta que una condición se

cumpla, o hasta que un evento ocurra sobre una o más señales. Aquí hay un

ejemplo sobre la declaración de un proceso que genera un reloj con diferente

periodo de alto y bajo.

proGessbegin

CLK <= '0';wait for 20 ns;CLK <='1';wait for 12 ns;

end process;

.5 10 2025 3540 50 55

FIGURA 24. Forma de onda de reloj con diferente período alto y bajo

Este proceso no tiene una lista sensitiva ya que una expllcita declaración wait

está presente dentro del proceso. Es importante recordar que un proceso nunca

termina. Siempre se estará ejecutando o estará en un estado suspendido. Todos

los procesos son ejecutados una vez durante la fase de inicialización de

Page 83: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

69

simulación hasta que ellos logran suspenderse. Por lo tanto, un proceso con una

lista no sensitiva y sin una declaración explícita wait nunca será suspendido por si

mismo.

2.1.3.4.4 Estilo de modelamiento mezclado. Es posible mezclar los tres estilos de

modelamiento que nosotros hemos visto en un solo cuerpo de arquitectura. Eso

es, dentro de un cuerpo de arquitectura, nosotros podemos usar declaración de

instanciación de componentes (que representa estructura), declaraciones de

asignación de señales concurrentes (que representa flujo de datos), y

declaraciones de proceso (que representa comportamiento). A continuación un

ejemplo de un estilo de modelamiento mezclado para un full-adder.

entity FULL_ADDER isport (A, B CIN: in BIT; SUM, COUT: out BIT);

end FULL_ADDER;

architecture FA_MIXED of FULL_ADDER is

component XOR2port (A, B: in BIT;Z: out BIT);

end component;

signal 31: BIT;begin

Xl: XOR2 port map (A, B, S1); -+structu¡aprocess (A, B, CIN) -compoñamiento

variable T1, 72, T3: BIT;begin

T1 := A and B;T2:= B and CIN;T3 := A and CIN;COUT <=71 orT2orT3;

endprocess,'SUM <= Sl xor CIN; -flujo de datos

end FA_MIXED;

Unlr¡r¡klrd rul&toot¿ dr Occtdrntlsfcc,on &SLtottcA

Page 84: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

70

AB

ctN

FIGURA 25. Full-Adder de un bit

El full-adder representado esta usando una declaración de instanciación de

componente, una declaración de proceso y una declaración de asignación de

señal. Todas estas declaraciones son concurrentes, y por !o tanto, el orden de

aparición dentro del cuerpo de arquitectura no es importante. Note que en una

declaración de proceso es ella misma es una declaración concurrente; sin

embargo, las sentencias dentro de una declaración de proceso son siempre

ejecutadas secuencialmente. 51 es una señal localmente declarada dentro del

cuerpo de arquitectura y es usada para pasar el valor de la salida del componente

X1 a la expresión para la señal SUM.

2.1.3.4.5 Declaración de configuración. Una declaración de configuración es

usada para seleccionar uno de los muchos posibles cuerpos de arquitectura que

una entidad puede tener, y para unir componentes. Una declaración de

configuración es una unidad separada de diseño y permite que la unión sea

desanollada después que el cuerpo de arquitectura sea escrito. También es

Flujo de datos

Page 85: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

7l

posible tener más de una declaración de configuración por entidad. Considere la

siguiente declaración de configuración para la entidad FULL ADDER.

library CMOS_LIB;configuraüon FA_BINDING of FULL_ADDER is

for FA_MIXEDfor X1:XOR2

u se e ntity C M O S_L I B. XO R_G AT E ( DATA F LOIU ;end for;

end for;end FA_BINDING;

Iibrary CMOS_LI B, MY_LIB;configuration FA_BINDING of FULL_ADDER is

Esta declaración es una cláusula de contefo de librería que hace el nombre

CMOS_LIB visible dentro de la declaración de configuración. El nombre de la

configuración es FA_BINDING, y el especifica una configuración de la entidad del

FULL_ADDER.

for FA_MIXEDfor Xl:XOR2

u se entity C M O S_Ll B.XO R_c ATE ( D ATA F LOVU ;

end for;end for;

La sentencia especifica que el cuerpo de arquitectura FA_MIXED (descrito en el

estilo de modelamiento mezclado) es seleccionada para esta configuración. La

declaración (for X1: ...end for) liga la instanciación de componentes, con nombre

Page 86: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

72

X1, a la entidad XOR-GATE y la cuerpo de arquitectura DATAFLOW, que residen

en la librerfa de diseño CMOS LlB.

No hay semántica de comportamiento o de simulación asociada con una

declaración de configuración. Simplemente especifica una unión que es usada

para construir una configuración pa'a una entidad. Estas uniones son

desanolladas durante la fase de la simulación en la que el diseño está siendo

ensamblado. Teniendo definida una configuración para la entidad, la configuración

puede luego ser simulada.

Cuando un cuerpo de arquitectura no contiene alguna instanciación de

componentes, por ejemplo, cuando se usa el estilo de flujo de datos, cada cuerpo

de arquitectura también puede seleccionarse para crear una configuración. Por

ejemplo, el cuerpo de arquitectura del DEC_DATAFLOW se puede seleccionar

para la entidad del DECODER 2*4 usando la siguiente declaración de

configuración.

configuration DEC_CONFIG of DECODER 2*4 isfor DEC_DATAFLOWend for;

end DEC_CONFIG;

DEC_CONFIG define una configuración que selecciona el cuerpo de arquitectura

DEC_DATAFLOW para la entidad DECODER 2.4.

Page 87: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

2.1.3.4.6 Declaración de paquete. Una declaración de paquete se usa para

almacenar un conjunto de declaraciones comunes como componentes, tipos,

procesos y funciones. Estas declaraciones pueden luego se importadas dentro de

otra entidad de diseño usando una cláusula de contexto. A continuación

miraremos un ejemplo de declaración de paquete:

package EXAMPLE_PACK istype SUMMER is (MAY, JUN, JUL, AUG, SEP);component D_FLIP_FLOP

port (D, CK: in BIT; Q, QBAR; out BIT);end component;constant PIN?_DELAY: TIME := 125 ns;function lNT2BlT VEC (INT_VALUE: INTEGER)

return etÚecroa;end EXAMPLE_PACK;

El nombre del paquete declarado es EXAMPLE_PACK. El contiene declaraciones

de tipos, componentes, constantes y funciones. Nótese que el comportamiento de

la función |NT2B|T_VEC no aparece en la declaración de paquete; solo aparece

en fa función de interfaz. La definición o cuerpo de la función aparece en un

cuerpo de paquete. Si el paquete ha sido compilado dentro de una librerla de

diseño llamada DESIGN_LIB el modelo sería el siguiente:

library DESIGN_LIB;use DES/ G N _Ll B. EXA M P LE_PAC K. a I I ;entity RXis....

La cláusula de contexto library hace que el nombre de la librerla de diseño

DESIGN_LIB sea visible dentro de esta descripción. Esto es seguido por el uso de

Page 88: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

74

la cláusula de contexto use que importa todas las declaraciones del paquete

EXAMPLE_PACK dentro de la declaración de entidad de RX.

Es también posible importar declaraciones selectivamente de una declaración de

paquete en otras unidades de diseño. Por ejemplo:

library DESIGN_LlB;use DES/ G N_Ll B. EXAM P LE_PAC K. D_F Ll P_F LOP ;use DES/ G N _L I B. EXA M P LE_P AC K. P I N 2P I N _D E LAY ;archit*ture RX STRUCTURE of RX is ...

Las dos cláusulas de contexto use hacen que la declaración de componentes

para D_FLIP_FLOP y la declaración de constante para PlN2PlN_DELAY, sean

visibles dentro del cuerpo de arquitectura.

Cuerpo de paquete. Un cuerpo de paquete es principalmente usado para

almacenar las definiciones de funciones y procedimientos que fueron declarados

en la declaración de paquete correspondiente. Por lo tanto, un cuerpo de paquete

está siempre asociado con una declaración de paquete; además, una declaración

de paquete puede tener máximo un cuerpo de paquete asociado con el. En

comparación con un cuerpo de arquitectura y una declaración de entidad donde

múltiples cuerpos de arquitectura pueden ser asociados con una sola declaración

de entidad.

Cuerpo de paquete para el paquete EXAMPLE_PACK

Page 89: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

75

package body EXAMPLE_PACK isfuncüon I NTZBIT_VEC (l NT_VALU E : I NTEG ER)

return BIT VECTORbegin

-El compo¡tamiento de la función se descnbe aqufend |NT2B|T_VEC;

end EXAMPLE_PACK;

El nombre del cuerpo de paquete debe ser el mismo que el de la declaración de

paquete con el cual esta asociada. Es importante notar que el cuerpo de paquete

no es necesario si la correspondiente declaración de paquete no tiene

declaraciones de funciones ni de procedimiento.

2.2 ALTERA HARDWARE DESCRIPTION LANGUAGE

2.2.1 lntroducción

El lenguaje de descripción hardware de ALTERA ( AHDL) es un lenguaje modular

de alto nivel que está completamente integrado para trabajar en el sistema de

desanollo ALTERA MAX+PLUS ll Permite desanollar diseños de lógica

combinacional compleja, operaciones de grupo, máquinas de estado, tablas de

verdad y lógica parametrizada. Para crear los archivos de diseño de texto en

AHDL se puede utilizar el editor de texto del MAX+PLUS ll o cualquier editor de

texto.

Page 90: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

76

Las declaraciones AHDL son poderosos, versátiles y fáciles de usar. Se pueden

crear proyectos jerárquicos con AHDL o mezclado con otro tipo de archivos de

diseño.

2.2.2 Estructura de un archivo de diseño. La estructura del AHDL consta de

varias secciones y declaraciones, algunas son opcionales y otras son necesarias.

2.2.2.1 Declaración TITLE . La declaración TITLE permite proveer comentarios

para el archivo de reporte generado por el compilador.

TITLE " Cont¡olador del display ";

La declaración title tiene las siguientes características:

o La declaración comienza con la palabra TITLE , seguida por un texto encenado

en comillas. La declaración termina con un punto y coma.

. La cadena de caracteres debe tener un máximo de 255 caracteres.

o Las declaración debe colocarse fuera de las otras secciones AHDL.

2.2.2.2 Declaración PARAMETERS. La declaración PAMMETERS permite

declarar uno o más parámetros que controlan la implementación de funciones

parametrizada.

PARAMETERS(

FILENAME = " myfile.mif u,

Page 91: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

77

WIDTH,AD_WDTH = 8,NUMWORDS = 2^AD WIDTH

La declaración parameters tiene las siguientes caracterlsticas:

o Una declaración comienza con la palabra PARAMETERS , seguida por una

lista de parámetros y valores de omisión, encenados en paréntesis.

. Los parámetros están separados por comas ( , ). Los nombres de parámetros

están separados de los valores de omisión por el slmbolo igual ( = ¡.

. Los valores de los parámetros pueden consistir de una cadena de texto

encenado en comillas ( " ). Cuando el parámetro no está encenado el

compilador lo toma como una expresión aritmética.

. La declaración termina con un punto y coma ( ; ).

2.2.2.3 Declaración INCLUDE . La declaración INCLUDE permite importar texto

de un archivo "include" en el archivo corriente.

INCLUDE " Const.inc "

La declaración tiene la siguiente característica:

o La declaración include comienza con la palabra INCLUDE , seguida por el

nombre del archivo a ser incluido, encenado en comillas ( " ).

o Si no se especifica la extensión del archivo el compilador asume .inc.

. La declaración termina mn un punto y coma ( ; ).

);

Page 92: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

78

. Se puede generar un arch¡vo "include" con CREATE DEFAULT INCLUDE FILE

del menú de archivo.

2.2.2.4 Declaración CONSTANT. La declaración CONSTANT permite sustituir

un nombre simbólico significante por un número o una expresión aritmética. El

nombre simbólico simplemente representará ese número.

CO^rSfA^rT UPPER_LIMIT = 130;COirSfA^rf BAR = 1+2D|V3+LOG 2(256);

características:

o La declaración constant comienza con la palabra GONSTANT, seguida por un

nombre simbólico, un slmbolo igual, y un numero o una expresión aritmética.

o La declaración termina con un punto y coma ( ; ).

. Una vez la constante ha sido declarada, se puede usar a través de todo el

archivo.

2.2.2.5 Declaración DEFINE. La declaración DEFINE permite definir una

función evaluada, la cual es una función matemática que retoma un valor que está

basado en argumentos opcionales.

DEFINEMAX(a,b) = (a>b) ?a:b;SUBDES'G'V( dataa[MAX(WlDTH,0)...0]: input;

datab[MAX(WlDTH,0)...0]: output; )

Page 93: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

79

BEGINdatab[] = dataaq;

END;

La declaración tiene las siguientes características:

o La declaración define comienza con la palabra DEFINE , seguida por un

nombre simbólico y una lista de uno o mas argumentos encerrados entre

paréntesis.

o Los argumentos deben estar separados por comas. Un signo igual separa la

lista de argumentos de una expresión aritmética.

o La declaración termina con un punto y coma ( ; ).

2.2.2.6 Declaración FUNCTION PROTOTYPE La declaración FUNCTTON

PROTOryPE tienen la misma función que los símbolos en los diseños

esquemáticos. Ambos proporcionan una descripción corta de una función lógica,

listando su nombre, entradas salidas y puertos bidireccionales. Un puerto de

máquina se puede usar para funciones que importan o exportan máquinas de

estado.

FUNCTION Compare (a[3..0], b[3..0] );RETURN ( Less, equal, greater );

Características:

o La palabra FUNcrloN está seguida por el nombre de ra función.

Unlrrrsid¡d Autónoma cle ftcithnttStccroN 8 BLtotf.c^

Page 94: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

80

. Una lista de los puertos de entrada para la función le siguen al nombre.

. Las entradas y las salidas están encenadas en paréntesis. Los nombres de los

puertos individuales están separados por comas.

o La palabra RETURN es seguida por una lista de las salidas y puertos

bidireccionales de la función.

o La declaración termina con un punto y coma ( ; ).

2.2.2.7 Declaración OPTIONS. La declaración OPTIONS fija la opción BlT0 para

especificar si el bit mas bajo de un grupo es el mas o el menos significativo

(MSB, LSB ).

La declaración inicia con la palabra oPTloNs , seguida por Blr0 y su

especificación. La declaración termina con un punto y coma ( ; ).

OPTIONS BlT0 = MSB

2.2.2.8 Declaración ASSERT . La declaración ASSERT permite probar la validez

de una expresión arbitraria que usa parámetros , números, funciones evaluadas o

los puertos usados o sin usar.

ASSERT (WTDTH >0)REPORT WIDTH (%o) must be a positive integer ,\tidth,,

SEVERITY ERRORHELP_ID INTVALUE;

Page 95: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

81

La declaración tiene las siguientes características:

o La palabra ASSERT es seguida por una expresión aritmética que está

opcionalmente encenada en paréntesis. Cuando la expresión es falsa, la

afirmación es activada y el mensaje que sigue la palabra REpoRT es

desplegada en el procesador de mensajes.

. La palabra REPORT es seguida por un mensaje ( opcional ). El mensaje está

encerrado en comillas, y puede incluir un caracter % ( porcentaje ), que se

sustituye con el valor de la variable de mensaje. Si no hay un reporte se activa

un mensaje genérico con el siguiente formato:

<SEVERITYI : Line <Numero de línea), File <Nombre archivo>: afirmaci6n

fallada

La palabra SEVERIW es seguida por un nivel de severidad de error,

precaución o información.

o La declaración termina con un punto y coma ( ; ).

2.2.2.9 Sección SUBDESIGN. La sección SUBDESIGN declara las entradas,

las salidas y puertos bidireccionales.

SUBDES'GN TOP

( F, BAR, CLK : INPUT =40, A1, A2, A3 : OUTPUTBtz..Ol : BIDIR;

VCC ;,

)La sección tiene las siguientes características:

Page 96: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

82

. La palabra SUBDESIGN está seguida por el nombre del subdiseño. El nombre

debe ser el mismo nombre del archivo.

o La lista de los puertos de entrada y salida está encenada en paréntesis.

o Los nombres de las señales están representados por nombres simbólicos y se

les asigna un tipo de puerto ( INPUT, OUTPUT, BlDlR, MACHINE INPUT,

MACHTNE OUTPUT).

. Se puede opcionalmente asignar valores de omisión de GND ó VCC después

de especlficar el tipo de puerto.

2.2.2.10 Sección VARIABLE . La sección VARIABLE es usada para declarar ylo

generar algunas variables usadas en la sección lógica, La sección variable puede

incluir una o mas declaraciones:

r Declaración INSTANCE

t Declaración NODE

r Declaración REGISTER

r Declaración STATE MACHINE

La sección variable tiene las siguientes características:

. La palabra VARIABLE inicia la sección variable.

o Los nombres simbólicos definidos por el usuario están separados por comas, y

estos a su vez están separados del tipo de variable por dos puntos. El tipo de

Page 97: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

83

variable puede se nodo, nodo tri-state, funciones, declaraciones de maquinas

de estado.

. La sentencia termina con un punto y coma.

2.2.2.10.1 Declaración INSTANCE. Cada ejemplo de una función lógica

particular puede ser declarado como una variable con una declaración INSTANCE

en la sección variable. Después que se haya declarado, se pueden usar los

puertos de entrada y de salida de cada función lógica como puertos en la sección

lógica.

VARIABLEComp : Comparc;Adder : Lpm_add_sub WITH ( Lpm_Wdth = 8)

Teniendo en cuenta que las entradas de la función "Comparen son a[3..0], b[3..0]

y las salidas "less", uequal", "greate/' se pueden usar los siguientes puertos de

"Comp" en la sección lógica:

Comp.a[, Comp.b[, Comp.less, Comp.equal, Comp.greater.

El uso de los puertos debe cumplir el siguiente formato:

< Nombre Ejemplo > . < Nombre Puerto >

Estos puertos pueden ser usados en una declaración de comportamiento del

mismo modo que los nodos.

Page 98: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

84

2.2.2.10.2 Declaración NODE. Existen dos tipos de nodos: NODO Y NODO TRI-

STATE. Ambos son usados para almacenar señales que no han sido declaradas

en la sección subdesign ó en la sección variable. Además un nodo o un nodo tri-

state son similares para los tipos de puerto INPUT, OUTPUT, BlDlR, en que

representan un simple cable que propaga señales.

VARIABLEb : NODE;t : TRI_STATE_NODE;

2.2.2.10.3 Declaración REGISTER. Una declaración REGISTER se usa para

declarar registros de tipo D, T, J-K y S-R , flipflops ( DFF, DFFE, TFF, TFFE,

JKFF, JKFFE, SRFF, SRFFE ) Y Latches.

VARIABLEff : TFF;

El nombre de este ejemplo de flipflop es ff . Después de hacer está declaración se

puede usar los puertos de entrada y salida del ejemplo de ff basados en el

siguiente formato:

< Nombre Ejemplo > . < Nombre Pueño >

ff.t, ff.clk, ff.clrn, ff.q .

Page 99: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

85

2.2.2.10.4 Declaración STATE MACHINE. Se utiliza parc crear una máquina de

estados declarando el nombre de la máquina, sus estados, y opcionalmente, sus

bits en la sección variable.

VARIABLESS .' MACHINE OF BITS (q1, q2, q3)

uflTH STAIESI Sf = 8"000",

52= 8"010",53 = B " 111 " ) ;

El nombre de la máquina de estados es ss. Los bits de estado q1, q2, q3 son

saf idas de los registros para esta máquina. Los estados son 51, S2 y 53 , eada

uno de los cuales tiene asignado un valor numérico de estado para los bits q1, q2,

q3.

Una declaración de máquina de estado tiene las siguientes características:

. Un nombre simbólico. Este nombre va seguido por dos puntos y por la palabra

MACHINE.

. La declaración debe incluir una lista de estados y puede incluir una lista de los

nombres de los bits.

. Los bits de estado son opcionales y están especificados con la palabra OF

BITS, seguido por una lista de los nombres simbólicos de los bits, separados

por comas. La lista debe estar encenada en paréntesis.

Page 100: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

86

. Los estados están espec¡ficados con la palabra WITH STATES , seguido por

una lista de los nombres simbólicos de los estados separados por comas y

encerados entre paréntesis.

o Los nombres de los estados pueden estar opcionalmente asignados a un valor

con un símbolo igual seguido por un valor numérico.

. Un punto y coma termina la declaración.

2.2.2.11 Sección lógica. La sección lógica especifica las operaciones lógicas del

archivo de texto y se considera el cuerpo de un diseño de este tipo. Una o mas de

las siguientes sentencias o construcciones pueden ser usadas en esta sección:

I Ecuaciones Booleanas

r Ecuaciones de control Booleanas

I Declaración CASE

r Declaración DEFAULT

r Declaración lF THEN

I Declaración lF GENERATE

r Declaración FOR GENERATE

I Declaración TRUTH TABLE

Las palabras BEGIN y END encierran la sección Lógica. Un punto y coma ( ; ) le

siguen a la palabra END para finalizar esta sección.

Page 101: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

87

2.2.2.11.1 Ecuaciones Booleanas. Las ecuaciones Booleanas se usan en la

sección lógica para representar la conexión de los nodos de flujo de las entradas y

salidas.

El siguiente ejemplo muestra una ecuación booleana:

a[] = ((c[] & -8"001101" + e[6..1])# ( p, q, r, s, t,u ) ;

El lado izquierdo de la ecuación puede ser un nombre simbólico de grupo , o

puerto. Se puede usar el operador NOT ( ! ) para invertir un item a la izquierda. El

lado derecho consiste de una expresión booleana.

El símbolo igual es usado para indicar que el resultado de la expresión booleana

es la fuente del nodo simbólico o grupo a la izquierda. El simple slmbolo igual (=)

difiere del doble slmbolo igual (==) en que el segundo es usado como

comparador.

r El número binario está negado debido al operador menos ( - ).

r El número binario -8"001 101" hará una AND con el grupo c[.

r El resultado de esta AND se sumara al grupo e[6..1]

r El resultado de la operación anterior entrará en una OR con el grupo ( p, q, r, s,

t,v).

r El resultado final se asigna al grupo a[.

r Un punto y coma finaliza cada ecuación.

Page 102: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

88

2.2.2.11.2 Ecuaciones de Control Booleanas. Las ecuaciones de control son

ecuaciones booleanas usadas en la sección lógica para fijar las señales de ctock,

reset, y clock enable de la maquina de estados.

ss.clk = clkl;

ss.reset=a&b;

ss.ena = clkl ena ;

Las ecuaciones booleanas de controltienen las siguientes características:

r Se pueden definir las entradas clock, reset, y clock enable de cada maquina de

estados en el siguiente formato:

< Nomb¡e Máquina de Estados >. < Nomb¡e Puerto >

En el ejemplo anterior las entradas están definidas para la maquina de

estados ss.

r Se puede usar el nombre declarado de la máquina de estados como el nombre

de la máquina de estados de la ecuación de control.

r La señal de reloj debe estar siempre asignada a un valor.

r Si el estado de inicio de una máquina se asigna a un valor diferente de cero, se

requiere de una señal de reset.

r La asignación de la señal clock enable es opcional.

r Un punto y coma finaliza la ecuación.

Page 103: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

89

2.2.2.11.3 Declaración CASE. La declaración CASE relaciona las altemativas

que pueden ser activadas dependiendo del valor de la variable, grupo, o expresión

que le sigue a la palabra CASE.

CASE F[].q ,sWHEN H "00" =)

addr[] = g's = a&b,'

WHEN H "07" =>Countfl.d = Count[].Q + 1;

WHEN H ',02", H "03", H "04" =>f[3..0].d = addr[4..1] ;

WHEN OIHERS =>f[].d = f].q;

END CASE;

La declaración tiene las siguientes características:

r Las palabras CASE e lS encierran una expresión booleana, grupo, o máquina

de estado.

r La declaración se termina con la palabra END CASE y un punto y coma.

r Una o más alternativas únicas son listadas en la cláusula WHEN en el cuerpo

de la declaración.

r En cada cláusula altemativa WHEN, uno o mas valores constantes separados

por comas estás seguidas por un slmbolo ( => ).

r Si la expresión booleana seguida por la palabra CASE evalúa una altemativa

específica, todas las declaraciones de comportamiento que le siguen a la flecha

se activan.

Un¡Yü¡ldtd autónoma de occidcntr

sE0croil I Ertoltri^

Page 104: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

90

r Cuando no hay otra altemativa verdadera, Las palabras opcionales WHEN

OTHERS define las altemativas de omisión.

r La declaración de omisión define el comportamiento por defecto cuando no se

usa WHEN OTHERS.

r Si la declaración de caso es usada para definir las transiciones de una maquina

de estados, Las palabras WHEN OTHERS no pueden ser usadas para recubrir

los estados ilegales de una maquina de estados de n bits al menos que la

maquina contenga exactamente 2^n estados.

r Cada declaración de comportamiento termina con un punto y coma ( ; ).

2.2.2.11.4 Declaración DEFAULT. La declaración DEFAULT permite especificar

los valores por defecto para las variables usadas en las tablas de verdad,

declaraciones lF THEN y CASE. Las señales activas altas automáticamente por

defecto toman GND. Estas declaraciones son requeridas solo para señales

activas bajas.

BEGINDEFAULTS

a = VCC;END DEFAULTS;IF Y &Z THEN

a=GND;END IF;

END;

La declaración default tiene las siguientes caracterlsticas:

Page 105: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

91

r Está encerrado por las palabras DEFAULT y END DEFAULT y termina con un

puntoy coma(;).

r El cuerpo del a declaración consiste de una o mas ecuaciones booleanas que

asignan valores constantes a variables.

r Cada ecuación finaliza con un punto y coma ( ; ).

r La declaración se activa si la variable que le sigue está indefinida para ciertas

condiciones. En el ejemplo la variable a es indefinida cuando Y OR Z es un

cero lógico, por lo tanto la ecuación ( a= VCC ) se activa en la declaración

default

r Solo se permite una declaración default en la sección lógica, y debe ser la

primera sentencia después de la palabra BEGIN.

r Si una variable se asigna a un valor más de una vez, todas las asignaciones

son ignoradas excepto la última.

r Una declaración default no puede ser usada para fijar un valor de X ( DON'T

CARE).

2.2.2.11.5 Declaración lF THEN. La declaración lF THEN lista una serie de

declaraciones de comportamiento que se activarán después de la evaluación

positiva de una o mas expresiones booleanas.

IF a[] -= b[] THENC[8.-1] = H'77";addr[S..1] = f[3..1].q +t;f[].d=addr[]+1;

EtSrF 93 $ 94 THENf[].d = addr[];

Page 106: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

92

EtSEd = VCC;

END IF ;

Características de la declaración:

Las palabras lF y THEN encienan la expresión booleana a ser evaluada y está

seguida por una o mas declaraciones de comportamiento, cada una de las

cuales termina con un punto y coma ( ; ).

Las palabras ELSIF y THEN encienan algunas expresiones booleanas

adicionales a ser evaluadas, y son también seguidas por una o mas

declaraciones de comportamiento. Estas pueden repetirse.

Las declaraciones de comportamiento siguientes a la palabra THEN son

activadas para la primera expresión que evalúa la verdad.

La palabra ELSE seguida por una o mas declaraciones de comportamiento es

similar a WHEN OTHERS para las declaraciones CASE. Si ninguna de las

ecuaciones booleanas evaluadas previamente es verdadera, entonces la

declaración de comportamiento que le sigue a ELSE se activara.

La palabra END lF y un punto y coma finaliza la declaración.

2.2.2.11.6 Declaración lF GENERATE. La declaración lF GENEMTE relaciona

una serie de declaraciones de comportamiento que son activadas después de la

evaluación positiva de una expresión aritmética.

Page 107: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

93

lF DEVICF_FAMILY == "FLEX8K" GENERATECú = SKadder ( a0, b[], cin) ;

ELSE GENERATEC0 - otheradder (a0, b[], cin ) ;

END GENERATE;

La declaración tiene las siguientes características:

I Las palabras lF y GENERATE encierran la expresión aritmetica a ser evaluada

y está seguida por una o mas declaraciones de comportamiento, coda una de

las cuales termina con un punto y coma ( ; ) . Estas declaraciones son

activadas sl la expresión es verdadera.

r Las palabras ELSE GENERATE están seguidas por una o mas declaraciones

de comportamiento, cada una de las cuales finaliza con un punto y coma, Estas

declaraciones son activadas si la expresión aritmética es falsa.

r La palabra END GENERATE y un punto y coma terminan la declaración

r La declaración lF GENEMTE puede ser usada tanto en la sección lógica

como en la sección variable.

2.2.2.11.7 Declaración FOR GENERATE.

COilSfAwT NUM = 8;SUBDESTGN 4gents(

a[NUM..1], B[NUM..1], CIN : INPUT ;C[NUM..l] , COUT : OUTPUT ;

)VARIABLE

carryout[(NuM+1)..1] : NODE ;BEGIN

carryout[l] = CIN l

Page 108: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

94

FOR ¡ IN 1 TO NUM GENERATEcfrl = a4l $ bftl $ carryoutfl;carryoutfi+1] = a[i] & bfrl # carryoutq| & @t0 $ bFI);

END GENERATECOUT = carryout[NuM + 1] ;

END;

La declaración FOR GENERATE tiene las siguientes caracterlsticas:

I Las palabras FOR y GENEMTE endenan los siguientes items:

1. Un nombre de variable temporal, la cual consiste de un nombre simbólico que

se usa sólo en el contexto de la declaración FOR GENERATE. En el ejemplo

anterior la variable es i. Este nombre de variable no puede ser una constante,

un parámetro o el nombre de un nodo que se use en cualquier parte del

proyecto.

2. La palabra lN , está seguida por un rango delimitado por dos expresiones

aritméticas. Las expresiones aritméticas están separadas por la palabra TO. En

el ejemplo las expresiones aritméticas son I y NUM .

r La palabra GENERATE está seguida por una o mas declaraciones lógicas,

cada una de las cuales finaliza con un punto y coma.

I Las palabras END GENEMTE y un punto y coma terminan la declaración.

Page 109: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

95

2.2.2.11.8 Declaración TRUTH TABLE. La declaración TRUTH TABLE se usa

para especificar lógica combinatoria o el comportamiento de maquinas de estado.

En una tabla de verdad AHDL, cada entrada contiene una combinación de

valores de entrada que producirán valores específicos de salida. Estos valores de

salida pueden usaese como realimentación para especificar los estados de

transición y las salidas de las maquinas de estado.

TABLEa0, f[4..1].q0, B'0000"0, B "0100'1, B "o)O(X"x, B'1111',

END TABLE ;

=>=>=>=>=>

f[4..1].dB'0001',B "0010",B "0100",B "0101",

control ;1;0;0;1;

La declaración de tabla de verdad tiene las siguientes caracterlsticas:

r El encabezamiento de la tabla de verdad consiste de la palabra TABLE,

seguido por una lista de entradas de la tabla separadas por coma, un slmbolo

de flecha ( => ), y una lista de salidas separadas también por comas. El

encabezado termina con un punto y coma.

I Las entradas de la tabla de verdad son expresiones booleanas; las salidas son

variables. En el ejemplo las entradas son a0 y f[4..1].q y las salidas f[4..1].d y

control.

r El cuerpo de la tabla consiste de una o más entradas, las cuales están

separadas por comas y una o más salidas también separadas por comas. Las

entradas y salidas están separados por un slmbolo ( => ).

Page 110: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

96

r Cada señal tiene una correspondencia una a una con los valores de cada

entrada. Para la primera entrada en el ejemplo anterior si a0 = 0 y f[4..i¡.q = g

"0000'entonces f14..1].d = B'0001" y control = 1.

r Los valores de entrada y salida pueden ser números, constantes predefinidas

VCC O GND, constantes simbólicas, o grupos de números o constantes.

r Las palabras END TABLE, seguidas por un punto y coma finalizan la tabla de

verdad.

r El número de ltems separados por coma en una columna de la tabla de verdad

debe ser igual al del encabezamiento.

Page 111: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

3. CONCLUSIONES

Desde el surgimiento de la electrónica como ciencia siempre se ha planteado la

duda de como reducir un circuito en cuanto a su tamaño, su cableado y a mejorar

su velocidad de respuesta, esto en la parte digital se ha logrado mediante técnicas

como son el uso de mapas de kamaugh, máquinas de estado, etc. En la

actualidad el uso de los PLD's permite la optimización de un circuito que cumpla

determinada función, dicha optimización incluye tamaño y cableado, siendo esto

favorable en circuitos que requieren muchos componentes, básicamente por dos

razones:

Ahono de espacio

Costos

El uso y funcionamiento de los lenguajes de descripción hardware, siendo estos

otra henamienta que ayuda a solucionar problemas de tipo digital, en muchos

casos mejoran un circuito, ya que no se manejan dispositivos estándar sino que

simplemente se ejecuta una instrucción que cumple la misma función y que en

algunos casos resulta mas simple y favorable dentro de un diseño.

Estas formas de diseño pueden implementarse utilizando el software de desanollo

ALTERA MAX+PLUS ll el cual es una henamienta que permite la programación

Page 112: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

98

de los PLD's, ya sea que se halla simulado desde un circuito esquemático

(Componentes TTL o LS ), de un lenguaje de programación ( VHDL o AHDL ) , o

de la mezcla de ambos, lo cual es una ventaja muy poderosa para los

diseñadores de circuitos digitales, porque permite la elaboración de un diseño

según sea la necesidad.

Durante el desanollo de algunos diseños se nos presentaron ciertos problemas,

los cuales daremos a conocer con su respectiva solución con el fin de que no se

tengan los mismos inconvenientes cuando se hagan futuros ejercicios.

Si se está realizando un diseño en VHDL donde se tenga múltiples asignaciones a

las variables, ejemplo :

a:=b;

c:=a;

se crean problemas debido a la rápida ejecución del programa en comparación

con los retardos de asignación, aunque se sabe que estas son declaraciones

secuenciales y se ejecutarán como tales. Por lo tanto se debe evitar hacer este

tipo de asignación.

Es importante también conocer que el VHDL en ALTERA tiene una serie de

librerías en las cuales se incluyen operadores lógicos, matemáticos, tipos de

puertos y otros parámetros que para ser usados dentro de un diseño es necesario

haber llamado la librería anteriormente, como por ejemplo la librerla IEEE en la

Page 113: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

99

cual se encuentra el arch¡vo "std_logic_arith" el cual define operadores

matemáticos y lógicos.

Cuando se realiza un diseño que tiene puertos bidireccionales y que por tal razón

es necesario utilizar tres estados para evitar las colisiones, se debe tener en

cuenta que siempre hay que colocarlos en el nivel superior del diseño sin importar

que se encuentren en etapas inferiores sobre los mismos puertos.

A parte de los problemas de tipo de diseño se tuvo un gran inconveniente que fue

que en nuestro medio prácticamente nadie manejaba el software ALTERA

MAX+PLUS ll. Cuando habían erores lo que se hacía era buscar en la ayudas

alguna guía que nos mostrara que se había hecho mal, o se escribía a los

ingenieros de ALTEM para que nos ayudaran a solucionar el problema.

En algunas ocasiones cuando se cometen ciertos erores de diseño el programa

cae en operaciones invalidas que obligan a cerrar la aplicación inmediatamente

(esto como resultado de una compilación). Para solucionar esto, si el diseño se ha

hecho paso a paso, se puede conegir la última parte del desanollo hasta

encontrar la causa del enor, si de este modo es imposible se recomienda utilizar

el correo electrónico de ALTERA ([email protected]) donde hay un grupo de

ingenieros disponibles para resolver cualquier duda que se tenga.

U¡lrls¡drd rulóflom¡ da Occirl¡¡tr

sEccloii I &torÉc^

Page 114: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

100

Para comprobar el funcionamiento del software como henamienta para programar

PLD's se desanollaron algunas prácticas y se les hizo el montaje flsico

lográndose establecer que si un diseño funciona conectamente en la simulación,

se obtendrán los mismos resultados sobre el dispositivo programado. También se

comprobó que al realizar estos diseños con este método solo se necesitaría un

solo dispositivo, mientras que si se hace de manera discreta (con productos

estándar) se usaría una gran cantidad de integrados.

Page 115: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

BIBLIOGRAFIA

CARTER, John W.. Digital designing with programable logic devices. New Jersey

: Prentice-hall, 1997.

HAYES, John P.. Introdución el diseño lógico digital. Wilmington : Addison-wesley

lberoamericana, S.4., 1 996.

NELSON, Victor P., NAGLE, H. Troy, CARROLL, Bill D., lRWIN, J. David. Análisis

y diseño de circuitos lógicos digitales. México : Prentice-hall, 1996.

i INSTITUTO COLOMBIANO DE NORMAS TECNICAS Y CERTIFICACION. Tesis

y otros trabajos de grado. Bogotá : icontec, 1996.

ALTERA. MAX+PLUS ll Getting started. San jose : Altera corporation. 1995.

ALTERA. MAX+PLUS ll AHDL. San jose : Altera corporation, 1995.

BHASKER, Jayaram. A VHDL primer. New Jersey : Prentice-hall, 1992.

WAKERLY, John f.. Diseño digital principios y prácticas. México : Prentice-hall,

1992.

MANO, M Monis. Lógica digital y diseño de computadores. México : Prentice-hall,

1982.

Page 116: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

ANEXO A

A continuación, se presentará el manual de usuario básico para el manejo del

software ALTERA MM+PLUS ll, con el cual las personas interesadas pueden

empezar a conocer la forma de realizar diseños utilizando esta henamienta.

Page 117: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

ALTERA MM+PLUS II

MANUAL DE USUARIO

El ALTERA MAX+PLUS ll es un sistema de desanollo el cual permite a los

diseñadores la libertad para escoger el método de entrada del diseño y las

henamientas. Soporta dispositivos con diferentes arquitecturas, core en múltiples

plataformas, proporciona una intertaz fácil de usar y ofrece también un amplio

rango de características.

MODOS DE ENTMDA DEL DISEÑO

MAX+PLUS ll provee tres editores de entrada de diseño: El gráfico, el de texto, y

el de formas de onda. Incluye además dos editores auxiliares: El floorplan y el de

slmbolos.

Para crear un archivo nuevo se escoge "NEW" del menú de archivo, se

selecciona el tipo de editor deseado ( Gráfico, sfmbolos, texto o formas de onda )

y se escoge la extensión del archivo de la lista.

Page 118: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

GQraphic Editor file

figmtd Editor file

ñ Text Edito¡ file(i, ![,avefom Editor file

Lsdrm

l.'"rrel

iffi:ffi

Para salvar el archivo se escoge " SAVE AS " del menú de archivo y se escribe el

nombre del archivo.

Directo¡ies:

ft' c:\man2rork

Si se desea trabajar sobre algún diseño previamente hecho, para hacerle cambios

o complementarlo, se debe seleccionar "OPEN" del menú de archivo y escribir o

seleccionar el nombre del diseño sobre la caja de diálogo corespondiente.

compl-gdfcompl2-gdfcont.gdfcontador-gdfdani-gdfddd.gdfeiem-qdfmctlo-gdfmono.gdfmotor-gdfn¡nn n¡lf

trw

ffi*il¿'

:ffi

Page 119: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

f-', Eraphic Edito¡ files

fi'symbol Edito¡ files

ñle¡¡t Editor file¡(?llawform Edito¡ filcs

li'All f¡les

@f'-¡ynl

Frdrrelf '*dfBl['-'l

eiem-wü ft' c:\ma*2work

6c:

En ALTERA MAX+PLUS ll se debe espec¡f¡car un archivo de diseño como un

proyecto concurrente antes de compilar o desafrollar otro procesamiento como la

simulación. Para especificar el nombre del proyecto, que debe tener el mismo

nombre del archivo, se debe selecc¡onar " PROYECT NAME " del menú de

arch¡vo y escr¡b¡r en ¡a cas¡lla correspondiente.

Page 120: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

jl Directory i¡: c:\ma¡2no¡h\tutodal

Drive¡:

fJ Shon Only Tops of Hie¡archie¡

comp.pofcomp-vhdcompl-gdfcompl-iedcompl-pofcompl2-gdfcompl2-iedcompl2-pofcont-gdfcont-iedcont-pofcontad-oof

rffi¡tr

ry

iÍ)iiffi

[irectorie::ffic:\

ma*2work

EDITOR GRAFICO

El editor gráf¡co perm¡te que la entrada de diseños esquemáticos sea rápida y

fácil. La edición se hace arrastrando y soltando uno o mas objetos dentro de un

área de diseño. El diseñador puede hacer un diseño mas compacto con la

conex¡ón de primitivas con buses para crear arreglos de símbolos.

MAX+PLUS ll proporc¡ona símbolos para una gran var¡edad de funciones lógicas

que se pueden usar en el editor gráfico.

Para entrar un símbolo se define un punto de inserción y se escoge " ENTER

SYMBOL " del menú de símbolos. La caja de dialogo proporciona cuatro librerías

que contienen una lista de símbolos que pueden ser usados.

Page 121: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

La librería ' PRIM " contiene una gran variedad de compuertas ( normales,

negadas a la salida, negadas en la entrada ), los pines de entrada y salida, niveles

lógicos 'VCC" y "GND", primitivas de buffers y diferentes tipos de registros. La

librería " MF " , tiene elementos de la lógica TTL y algunos multiplexores. La

librería " MEGA-LPM " ofrece una gran variedad de funciones lógicas

prediseñadas tales como decodificadores, multiplexores, sumadores, registros y

contadores. La librería "EDIF "contiene elementos de lógica TTL con otras

características y algunas compuertas de gran tamaño.

Symbol[ama:

$¡mbol Lib¡a¡ier:

c: \maxplus2\manZib\pdnc: \marplu*2\nu¡fl ib\mfc: \ma*phnAmaxZib\mega_lpmc: \ma*pluc2\ma¡¡fl ib\edif

Directory h: ctma*2wo*\tuto¡iolSymbol filer:

@ c:\H max2rork

rtlDilgesil

conp $conpl fficonl ,#conlado¡ iffidb iffidcry

dd iiiddd ,"?:l

taj.ieiem

Para conectar los símbolos se coloca el puntero de selección 1R ) en el p¡n de

uno de los símbolos. El puntero de selección se convierte en un puntero de líneas

Page 122: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

I

ortogonales ( T). Con el mouse presionado se anastra hasta el pin del elemento

que se quiere conectar y se suelta el mouse.

Cuando se van a conectar buses se debe seleccionar del menú de opciones

"LINE STYLE " y escoger la línea gruesa.

La conexión entre dos símbolos se puede hacer por nombre, marcando la línea o

las líneas de los pines a conectar con el mismo nombre.

EDITOR DE TEXTO

El software MAX+PLUS ll contiene un editor de texto ideal integrado para la

entrada y edición de lenguajes de descripción hardware ( HDL ) para archivos de

diseños escritos en VHDL, Verilog HDL, o el lenguaje de descripción hardware de

ALTERA ( AHDL ).

Cada uno de estos lenguajes pueden implementar máquinas de estado, tablas de

verdad, lógica condicional y ecuaciones booleanas. El sofiware provee dos tipos

de plantillas (una para VHDL y otra para AHDL ) con las cuales se pueden

sefeccionar diferentes formatos para realizar un diseño.

Page 123: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

Si ef diseño se va a realizar en VHDL se debe colocar inicialmente la siguiente

librería:

library IEEE ;

use IEEE.STD_LOGIC_1 1 64.ALL ;

EDITOR DE FORMAS DE ONDA

El editor de formas de onda MAX+PLUS ll es usado para crear y editar archivos

de diseño de formas de onda y también para crear vectores de entrada para la

simulación que permite probar la funcionalidad del diseño, donde el diseñador

puede utilizarlo como un analizador lógico para ver el resultado de la simutación.

La entrada por diseño de formas de onda es mejor.usarla para diseños de lógica

secuencial y funciones repetitivas.

f,ode ilame:

Defadt falue:l/O fype(-a fnput Pin(? Ogtput Pinll Buried l.lode

Fo¡ Ufaveform Design File [trIDFl OnlyHode lypcC¡Pin lnput(-*,ftcgi*tared

fi EombinEtorial{},lfachine

flock:

Ee*et:

Preget;

Page 124: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

Para colocar los nodos de entrada y de salida para un diseño de este tipo se debe

escoger " INSERT NODE " del menú de nodo. seguido se le da el nombre en la

casilla correspondiente y se selecciona eltipo ( entrada, salida o nodo enterrado).

Para la edición de las entradas se selecciona cada una y se les da el nivel

deseado ( alto, bajo, tipo reloj, etc.).

CHEQUEO DE ERRORES DE S¡NTAXIS Y CREACION DE SIMBOLO

Después de realizar un diseño es necesario revisar que el archivo no tenga

errores de sintaxis para asegurarse que fue editado correctamente. Para realizar

esto se debe escoger "PROYECT SAVE & CHECK " del menú de archivo.

Para crear un símbolo que contenga todo el diseño pero que solo muestre los

pines de entrada y salida se selecciona " CREATE DEFAULT SYMBOL " y

automáticamente se genera un símbolo con el mismo nombre del archivo.

COMPILACION DEL PROYECTO

La labor del compilador es probar que el proyecto este libre de errores, sintetiza

la lógica, adapta el proyecto en un dispositivo ALTERA, genera los archivos de

salida para la simulación y programación y actualiza la ventana del display de

jerarquía.

Page 125: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

Para compilar el proyecto escoja "PROYECT SAVE & COMPILE" del menú de

archivo. Cualquier mensaje de información, eror precaución aparecerá en la

ventana del procesador de mensajes que se abre automáticamente.

SIMULACION

La simulación se realiza para verificar que el proyecto funciona conectamente. Es

decir nos permite probar completamente el proyecto, para asegurar que responde

correctamente a todas las posibles situaciones, antes de programarlo en un

dispositivo. Durante la simulación se alimentan los vectores de entrada al

simulador. El simulador usa estas entradas para crear las señales de salida que

un dispositivo programado produciría bajo las mismas condiciones.

Para crear un archivo canal simulador ( ScF ) se escoge "NEW" del menú de

archivo, se selecciona'WAVEFORM EDITOR FILE" escogiendo la extensión.scf.

ffiffiffiffitrilmv.:

Page 126: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

el archivo con los y grupos seleccionados. Todos los nodos de entrada

Se puede elegir el

del menú de archivo

unidades.

Para ingresar los nodos

SNF" del menú de nodos

]lode / Group:

AgailaHe ]lodcr t

Type

de finalización de la simulación escogiendo "END TIME"

escribiendo el tiempo deseado con las respectivas

entrada y salida se escoge 'ENTER NODES FROM

17 E¡e¡erve Erirtirg ilode:

f: Shos All Hode llann S¡rnolqrm

'ffiiW

lTlnputs

E Olrtput¡

l7 E¡oup

f: atl

nnffiHWX

WwwwSe presiona "LIST" paral sacar una lista de los nodos de entrada y de salidas

disponibles en el . Se seleccionan los nodos deseados, con la flecha (=>¡

se transfieren a la caja dQ nodos y grupos seleccionados ( SELECTED NODES &

GROUPS ) y finalmente pe escoge "OK". El editor de formas de onda sobrescribe

Salactcd Hode* t Groupc:

Page 127: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

tienen por defecto un nivel lógico de cero (0), y todos los nodos de salida y nodos

enterrados tiene por defecto un nivel lógico indefinido (X).

Name: 50.0ns 100.0ns 15U.0ns

rn¡ LD

r*- ENA

r*- CLK

,ñ5 DA[3..0]

iff D[3..0]

i@¡r o[3..0]

dp oA[3..0]

ii} Our

Si se desea colocar nodos o grupos adicionales se hace con el comando "INSERT

NODES" del menú de nodos.

Page 128: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

0

[ode ]'lame:

Default falue:l/0 Type

t[nput Pin

G Olrtput Pin(i Ewied llode

ilodgilGroup:

For Simulator Channcl File ISCFI OnlyT

Hogler t Groups from SilF:

Primero se debe marcar el tipo de nodo que se desea insertar ( INPUT, OUTPUT,

BURIED NODE ) y presionar 'LIST" para que aparezca la lista de los nodos

disponibles, se selecciona y se pres¡ona "OK".

Para organizar las entradas, sal¡das y nodos en un orden deseado se pres¡ona el

mouse sobre el símbolo que ¡nd¡ca el tipo de nodo (entrada n-, salida ilff,

nodo dF ) en el editor de formas de onda.

La edición de las entradas se realiza marcando cada una de ellas y escogiendo

'OVERWRITE" del menú de edición o con los botones de niveles lógicos que se

encuentran en la columna a la izquierda de la pantalla. Si solo se desea camb¡ar

tffiiffi

lTllnputE lJBegi¡tered

H Oug¡uts lf Coubinatodal

Mgroup ffiHemnn Bit

nAll ffiHemcryhlord

flj Show All ilode Hame S¡rnoryrr

Page 129: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

el nivel en una parte del nodo de entrada se selecciona con el mouse y se sobre

escribe con el nivel lógico deseado.

La simulación del proyecto se lleva acabo escogiendo "PROYECT SAVE&

SIMULATE" del menú de archivo. Al finalizar la simulación aparece un cuadro

donde descrimina si la simulación fue exitosa o no, el tiempo de estabilización del

circuito, el tiempo de finalización de simulación, y el porcentaje de cubrimiento de

la simulación , los errores y las advertencias.

Se puede crear un archivo tabla que contendrá la misma información del archivo

SCF pero en forma de texto, aquí se muestran Ias entradas y salidas como una

tabla. Se escoge'CREATE TABLE FILE" del menú de archivo y automáticamente

se muestra un cuadro con un nombre de archivo xxx.tbl, se presiona "OK" para

crear el archivo.

Page 130: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

Para ver el contenido de este archivo se selecciona "OPEN" del menú de archivo y

se escoge del archivo editor de texto la extensión ".tbf . Automáticamente se abre

fa ventana de editor de texto y se visualiza el archivo seleccionado.

PROGRAMACION DE UN DISPOSITIVO

Cuando se compila un proyecto se crea el archivo objeto del programador (.pof)

que es el que se usará para programar el dispositivo.

Para abrir la ventana del programador se selecciona "PROGRAMMER" del menú

MAX+PLUS II .

ll Security Bit I

File: regd2.pof l

Device: EPM7064LC4{-7

Checksum: 000D2624

Page 131: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

Si el archivo .pof no es mostrado, use el comando "SELECT PROGMMMING

FILE" del menú de archivo, para seleccionar el archivo deseado para utilizarlo

como archivo de programación.

MAX+PLUS ll opcionalmente graba todas las acciones y mensajes del

programador en un archivo bitácora (.pl|.Para crear un archivo de este tipo se

selecciona "INPUT/OUTPUT'del menú de archivo, se marca la opción "Log (.plf)"

y el nombre del archivo aparecerá con esta extensión, presiona'OKo.

Finalmente para programar el dispositivo insértelo en la base y seleccione el botón

"PROGRAM".

Page 132: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

ANEXO B

Este anexo contiene la documentación de las prácticas desanolladas, y los

enunciados de las prácticas propuestas para efectuarse durante el desarrollo del

curso.

Unlw¡l@ lut6oorn¡ dc Occirhnb

sEcctolt I &t0rf,c^

Page 133: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

PRACTICAS REALIZADAS

MULTIPLICADOR DE CORRIMIENTO

La siguiente práctica consiste de una unidad la cual multiplica dos númenrs A y B

de cuatro bits cada uno usando corrimiento.

A continuación se dará un ejemplo numérico para comprender como trabaja dicho

multiplicador:

A=0011(3H)

B=0101(5H)

00000101 Como el ultimo bit de B es 1, sumo A con unacumulador que arranca en 0 y desplazo.

=>0100110101=>0100011010 Como el ultimo bit de B es cero simplemente

desplazo.

=>01001 11101 Como el ultimo bit de B es 1, sumo con A ydesplazo.

+

001 1

=>0100011110 Como el ultimo bit de B es 0, simplementedesplazo.

0100001111 Este es el resultado final = 15 ( 0F H ).

Page 134: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

Como se puede apreciar todo es basado siempre mirando el ultimo bit de B y se

empieza a desplazar, también teniendo en cuenta el carry generado, que es el bit

de mayor peso ( l0 ).

La parte anterior es la parte de control, la cual se realizo mediante un controlador

de Richard, y cuyo diagrama de flujo es el siguiente:

Page 135: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

donde:

ST0 : Estado 0, es el de ananque o start.

ST1 : Estado l, en este estado es donde se mira como está el último bit de

BO

ST2 : Estado 2, este estado siempre está anclado a un uno lógico (Vcc).

ST3 : Estado 3, en este estado se está mirando continuamente si un

contador que se cargo con el numero tres binario ha llegado a cero.

FA

FB

FC

FD

FE

FF

Cargar B, y cargar el contador de tres.

Cargar A más lo del acumulador.

Despfazar A más lo del acumulador y desplazar B.

Desplazar A más lo del acumulador y desplazar B.

Decrementar el contador de tres.

Fin.

FA, FB, FC, FD y FE, se usaron en una tabla de verdad para que estos dieran los

valores conectos a los selectores de unos registros donde se manejan B y el

resultado de A mas lo del acumulador.

El circuito del controlador de Richard es el siguiente:

Page 136: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

Circuito contolador de Richard

Page 137: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

El circuito completo es el siguiente:

El mismo multiplicador de conimiento se implemento en VHDL cuyo algoritmo se

hizo basado en el diagrama de flujo del controlador de Richard. El programa es el

siguiente:

Page 138: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

PROGRAMA EN VHDL

LIBRARY IEEE;USE IEEE.STD_LOGIC_1 1 64.ALL;USE I EEE.STD-LOGIC-ARITH.ALL;

ENTITY SUMAS ISPORr (

A, B : lN UNSIGNED (3 DOWNTO 0);R : OUT UNSIGNED (7 DOWNTO 0));

END SUMAS;

ARCHITECTURE RAPIDO OF SUMAS ISBEGIN

PROCESS(4, B)VARIABLE AA, S : UNSIGNED (8 DOWNTO 0);VARIABLE C : UNSIGNED (3 DOWNTO O);

BEGINC := "0000";S := "000000000";ArA'='0'& A(3 DOWNTO 0) & C(3 DOWNTO 0);FORKINOTO3LOOP

lF B(K) = '1'THENS:_M+S;

END IF;S := '0' & S(8 DOWNTO 1);

END LOOP;R <= S(8 DOWNTO 1);

END PROCESS;END RAPIDO;

donde :

C : Variable que toma el valor de cero originalmente.

S : Variable que toma el valor de cero originalmente, y la cual va a retener

en ultimas el valor de la multiplicación.

Page 139: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

AA : Variable que originalmente toma el valor de cero, y queda de nueve

bits donde el bit mas significativo es cero, la parte intermedia es el

numero A y la parte menos significativa es la variable C.

La instrucción nueva es la siguiente:

S : ='0' & S ( I DOWNTO 0 ), la cual lo único que hace es desplazar el

valor que tiene S en ese momento.

Page 140: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

RELOJ CUAO

El reloj CUAO se encarga de activar una alarma cada vez que haya un cambio de

clase.

La parte de los minutos esta formada por dos contadores BCD conectados en

cascada que realizan la secuencia de 0 hasta 59. El diseño de este bloque se hizo

utilizando el modo esquemático.

El bloque de las horas se realizo en el lenguaje de descripción de ALTERA

(AHDL) diseñando un contador de cuatro bits para las unidades y utilizando un

flip-flop JK para las decenas.

Otro modulo se encarga de comparar la hora actual con una tabla que contiene

las horas en que se debe activar la alarma. Esto se hizo en VHDL.

Page 141: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

7:00 AM7:50 AM8:40 AM8:50 AM9:40 AM

10:30 AM10:40 AM11:30 AM12:20 PM2:00 PM2:50 PM3:40 PM3:50 PM4:40 PM5:30 PM6:20 PM7:10 PM8:00 PM8:50 PM9:40 PM

000000001

1

1

1

1

1

1

1

1

1

1

1

01110111100010001001000000000001001000100010001 1

001 1

0100010101100111100010001001

00000101010001010100001 1

0100001 1

001000000101010001010100001 I00100001000001010100

00000000000000000000000000000000000000000000000000000000000000000000000000000000

07000750084008500940103010401 13032202200225023r'¡023502MO253026202710280028502940

El periodo de reloj de un pulso por minuto se logro utilizando la frecuencia de la

red de energía ( 60 Hz ) con el siguiente circuito:

Unlüütld¡d rutóoom¡ ¡t¡ 0ccrtJgttr

SEtclOt 8,$l0IECA

R1 = 22RR2 = 220KVCC=5V

Page 142: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

Estos 60 pulsos por segundo se pasaron por dos divisores por diez y dos por seis

dando como resultado un pulso por minuto. Esta señal es la que se colocaba en

los relojes de los contadores de las horas y minutos.

Circuito de las unidades y decenas de los minutos:

11....F!!l!.?-....:

Page 143: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

Algoritmo de las unidades y las decenas de la hora:

SUBDESIGN HORA( CLK, CLR, ENA :INPUT;

HU[3..0], HD, R :OUTPUT;)VARIABLE

COUNT[3..0], DD, DF : DFF;Y, HD, CR : NODE;FF : JKFF;

BEGINCOUNTI.CLK = CLK;COUNTI.CLRN = CLR;FF.CLK = !COUNT3;FF.CLRN = DF.Q;FF.J = VCC;FF.K = VCC;DD.CLK = !CLK;DD.PRN = HD;DD.D=!(!Y&ENA);DF.CLK = CLK;DF.PRN = HDiDF.D = DD.Q;IF CR & ENA THEN

COUNTI.D = H"0";ELSIF !Y & ENA THEN

COUNTI.D = H"1";ELSIF ENA THEN

COUNTI.D = COUNT[].Q + 1;

ELSECOUNTI.D = COUNTI.Q;

END IF;CR=(COUNTO&COUNT3);HD = FF;Y = !(ICOUNTO & COUNTI & HD);HU[¡ = COUNTI;R = COUNTI:END;

Page 144: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

Algoritmo que indica las horas en que debe activarse la alarma:

LIBRARY IEEE;USE IEEE.STD_LOGIC-1 1 64.ALL ;

entity mem isport( A : lN BIT_VECTOR (15 DOWNTO 0);

y : out bit);end mem;architecture mem of mem issignal x, Z: bit;begin

process ( A )begin

case A is

when X"0700" 1X"0750"x"1030" I x"1040"x2250" I X"2340"x2620 1x2710"=>Y <='1';

when others => Y <='0';END case;

x"0840" I x"0950" I x"0940"1x"1 130" 1x3220" I X"2200"1x"2350" lx"24/¡l l X"2530"1

I x"2800" I x"2850" I X"2940"

end process;

end mem;

Page 145: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

Circuito total del reloj de la CUAO:

:H:¡ii.;i:::::::::;|iffi:lt.,¡::::.::.:i

Page 146: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

CERRADURA DIGITAL

La cenadura digital es un circuito que compa¡a la clave digitada a través de un

teclado con un número de acceso el cual es programado intemamente. Se tienen

tres oportunidades para digitar la clave y en el último intento fallido el sistema se

bloquea evitando que se continúe insertando más datos.

El circuito está compuesto por dos bloques principales: El de control que se

realizó utilizando una máquina de estados y el comparador que revisaba los

números programados simultáneamente con los que se van digitando.

El circuito de control se realizo en VHDL debido a que permite realiza¡ máquinas

de estado de una manera sencilla.

El bloque de comparación está conformado por un circuito de decodiftcación

encargado de colocar el número digitado en el conespondiente código binario, lo

cuaf se realizó en VHDL, y por un módulo que se encarga de seleccionar cada

uno de los cuatro números programados y colocarlos en el comparador,

dependiendo de si es el primero, segundo, tercero ó cuarto número introducido.

Page 147: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

Circuito de control.

LIBRARY ieee;USE ieee.std_log ic_ 1 1 M.all;USE ieee.std_logic_arith.all ;

ENTITY CONTROL ISPORT(

clk : lN STD_LOGIC;X, CLAVE, BORROW, lNlClO, PA : lN STD_LOGIC;CLAVE_ERROR, CAPT, CAR3, RES_TAB, RES_CAR, DEC-CAR,RES_COUNT, RES_SEL, ABRIR, ALARMA : OUT STD_LOGIC);

END CONTROL;

ARCHITECTURE a OF CONTROL ISTYPE STATE_TYPE lS (ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, STg,

ST9, ST1O, ST11, ST12, ST13, ST14, ST15);SIGNAL state: STATE_WPE;

BEGINPROCESS (clk)

BEGINlF clk'EVENT AND clk = '1'THEN

CASE state lSWHEN ST0 =>

ALARMA <= '0',ABRIR <= '0',CAR3 <='f i

RES_TAB 4='1'ilF PA='1'THEN

STATE <= ST0;ELSE

STATE <= ST1;END IF;

WHEN ST1 =>CAR3 <='0'iRES_TAB <='0'ilF (X='1') THEN

STATE <= ST2;END IF;

Page 148: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

Continuación circuito de control

WHEN ST2 =>CAPT <='1',lF (X='0') THEN

STATE <= ST3;END IF;

WHEN ST3 =>CAPT <= '0',RES_CAR 4='f i

lF (X='1') THENSTATE <= ST4;

END IF;

WHEN ST4 =>RES_CAR <='0',CAPT <='1',lF (X='0') THEN

STATE <= ST5;END IF;

WHEN ST5 =>CAPT <= '0'lRES_CAR <='1'llF (X='1') THEN

STATE <= 5T6;END IF;

WHEN 5T6 =>CAPT <= 'f i

RES_CAR <='0'llF (X='0') THEN

STATE <= ST7;END IF;

WHEN ST7 =>CAPT <= '0',RES_CAR <='f i

lF (X='1') THENSTATE <= ST8;

END IF;

Page 149: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

Continuación circuito de control

WHEN ST8 =>CAPT <='f i

RES_CAR <='0'ilF (X='0') THEN

STATE <= ST9;END IF;

WHEN ST9 =>CAPT <='0'iRES_CAR <='f i

STATE <= ST1 0;

WHEN ST10 =>RES_CAR <='0'ilF (CLAVE='1') THEN

STATE <= ST1 1;ELSE

STATE <= ST12;END IF;

WHEN ST11 =>ABRIR <='f i

lF PA='1'THENSTATE <= ST0;

ELSESTATE <= ST1 1;

END IF;

WHEN ST12 =>DEC_CAR <= '1',RES_COUNT <='1';RES_SEL <='f i

STATE <= ST13;

WHEN ST13 =>DEC_CAR <='0'lRES_COUNT <='0';RES_SEL <='0',CLAVE_ERROR <='1'lSTATE <= ST14:

Page 150: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

Continuación del circuito de control

WHEN ST14 =>CLAVE_ERROR <='0'ilF (BORROW='O') THEN

STATE <= ST1 5;ELSE

STATE <= ST1;END IF;

WHEN ST15 =>ALARMA 4= .1'I

lF (lNlClO='1') THENSTATE <= ST0;

ELSESTATE <= ST1 5;

END IF;

END CASE;END IF;

END PROCESS;END A;

U0httid.d autón{,ms rts occid¡nb

sEcctolt B,Bt torEcl

Page 151: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

Circuito de comparación

Circuito de selección de la clave

,t..............9.....

'n..............9.....:P..............9.....4..............q.....el..............9.....? .. ......1:4............. 9.....:|.,............f.....:+.............. J.....a..............¡.....n rsl c1i............-....-.--

!.1:;;.:::::: ::i::: ¡

irc . . . . - . . ..?. ..

¡...... ... .t...

tt¡c.....*qr....

ltux4lIIHD'DTDID'3t30

s¡oD

E

FgH

I

JitT_ol

+.+........................ i

Page 152: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

Programa de decodificación del número

L¡BRARY IEEE;USE IEEE.STD_LOGIC_1 1 64.ALL ;

entity num isport(

a, b, c, d, e, f, g, h, ¡, j, rst : in bit ;

q : out bi!_vector (3 downto 0));end num;

architecture des of num isbegin

process (a, b, c, d, e, f, g, h, i, j, rst)begin

if a='1' then

Q (= x"0";

elsif b='1' then

Q (= x"1";

elsif c='1' thenI (= x"2";

elsif d='1' thenI (= x"3";

elsif e='1' thenQ

(= x"4";elsif F'1' then

Q (= x"5";

elsif g='1' thenQ (= x"6";

elsif h='1' thenI (= x"7";

elsif i='1' then

Q (= x"8";

elsif j='1'thenI (= x"9";

elsif rst='l'thenQ

(= x"0";end if;

end process;end des;

Page 153: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

Esquema general del circuito

J.f.........F...rf.........s...¡c+.........3...r¿.........r...9,......... r...3.........1'...:,t. . . . . . . . . . I . .itr. . . . . . . . . . t . .

ri"""'lii"i.r.....!rr99..rt.......[!...

qüL:Éi'ii_;""':*ri É;;;:::l{::.:: :::::::: :::.

¡Lrn¡ #;;: : :H :j: x: : : : : : : : : :.

ttal l- - a:rrDl ¡- -.tr9a¡ ¡- -.:rrrl ¡. -.¡

D

c atáv¡

f

I

t,t_at

aa,-taaatC acr_caa

¡a¡ata tat_aaltt

¡ar-ra!aDlrl

atatla

l¡¡

t¡¡ i

Page 154: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

CIRCUITO DE CONTROL DE UN MOTOR PASO A PASO

Un motor paso a paso es un dispositivo muy usado en la industria. Estos, tienen

diferentes caracterfsticas en su movimiento como lo son el giro en paso completo

o en medio paso, y en el sentido de las manecillas del reloj o en sentido contrario.

Un motor paso a paso tiene tantas entradas como bobinas en su interior, y

dependiendo del desfase entre los pulsos de entrada se dará un movimiento

caracterlstico.

El circuito de control se encarga de generar los pulsos de entrada dependiendo de

como se desee el giro. Las entradas del circuito son : Un pin para los pulsos de

reloj, otro para especificarsi es paso completo ( 1 )ó medio paso ( 0 )yel que

indica el movimiento en el sentido de las manecillas ( 1 ) ó en sentido contrario(0).

F = FULL. ( Paso completo )

C = CW ( Sentido de las manecillas )

Page 155: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

lalol.lol'03

O1

OO

02

abcdefgh| 1000 | 1100 | 0100 | 0110 | 0010 | 0011 | 0001 I 1001 |

Sentido de las manecillas +Sentido contrario de las manecillas

Cada estado representa medio paso

El primer paso es realizar un diagrama de estados basados en el diagrama de

tiempos anterior. Con este diagrama se realiza una tabla de estados con los

estados presentes y los siguientes.

Page 156: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

fi Dfii0 0 0 0 0 0 0 0 0 1

0 0 0 1 0 0 0 0 1 I0 0 0 1 0 1 1 0 0 1

0 0 0 1 1 0 0 0 1 1

0 0 0 1 1 1 1 0 0 00 0 1 0 0 0 0 1 1 00 0 1 0 0 1 0 0 1 1

0 0 1 0 1 0 0 1 0 00 0 1 0 1 1 0 0 0 1

0 0 1 1 0 0 0 0 1 00 0 1 1 0 1 0 0 0 1

0 0 1 1 1 0 0 1 1 00 0 1 1 1 1 1 0 0 1

0 1 0 0 0 0 1,l 0 0

0 1 0 0 0 1 0 1 1 00 1 0 0 1 0 1 0 0 00 1 0 1 1 1 0 0 1 00 1 0 1 0 0 0 0 0 00 1 1 0 0 0 0 1 0 00 1 1 0 0 1 0 0 1 00 1 1 0 1 0 1 1 0 00 1 1 0 1 1 0 0 1 1

0 1 1 1 0 0 0 0 0 01 0 0 0 0 0 1 0 0 1

1 0 0 0 0 1 1 1 0 01 0 0 0 1 0 0 0 0 1

1 0 0 0 1 1 0 1 0 01 0 0 1 0 0 0 0 0 1

1 0 0 1 0 1 1 0 0 01 0 0 1 1 0 0 0 1 1

1 0 0 1 1 1 1 1 0 01 0 1 0 0 0 0 0 0 01 0 1 1 0 0 0 0 0 01 1 0 0 0 0 1 0 0 01 1 0 0 0 1 0 1 0 01 1 0 0 1 0 1 0 0 1

1 1 0 0 1 1 0 1 1 01 1 0 1 0 0 0 0 0 01 1 1 0 0 0 0 0 0 01 1 1 1 0 0 0 0 0 0

Page 157: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

De la tabla de estados obtenemos :

DA= BCDG + BCDC + ASCDF + enCnf'C + neCDFG.

DB = ectc + Ácnc + ÁgcDF + nscDrc + egcDrc.

DC =ABDG + egDG + egcorC + egCDF + ABCDFG .

DD = ABCG + NBCC + ¡BCDF'G + NBCDF + ¡SCD¡C + AECD .

Cada una de estas ecuaciones se desanollaron en lenguaje de descripción (VHDL

(DB y DD) y AHDL (DA y DC)) y basados en esto se realiza la máquina de

estados utilizando fl ip-flops.

El circuito consta de tres modos:

1) Con cada pulso el motor se mueve un paso.

2) Con un pulso sostenido el motor se mueve dependiendo del reloj.

3) Con un pulso de inicio comienza el movimiento.

51 SO MODO

001012103

La operación en estos modos se realiza usando multiplexores y demultiplexores

principalmente.

Page 158: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

l. ....1rrtg.

?1.......+f...:

Finalmente se tienen siete entradas y cuatro salidas asf:

ENTRADAS SALIDAS

F-Hcw_ccw

SO

S1CLKSTOPPULSO

Los siguientes archivos son la lógica de Kamaugh para cada uno de los cuatro

flip-flops de la máquina de estado para el circuito de control del motor paso a

paso.

OAQBQCQD

Page 159: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

SUBDESIGN DA(

QD, QC, QB, QA, F, C : INPUT;DA : OUTPUT;

)BEGIN

DA=(OD&lQC&lQB&!C)#(!oD&lQC&OB&C)#(oD & QC & lQB & lQA & F & !C)#(!oD & lQC & lQB & OA & !F) #(!oD&QC&QB&lQA&F&C)#(!oD&lQC&lQB&!aA);

END;

LIBRARY IEEE;USE IEEE.STD_LOGIC-1 1 &1.ALL ;

ENTITY DB ISPORT(QD, QC, QB, QA, F, C: lN BIT ; DB : OUT BIT);

END DB;

ARCHITECTURE SS OF DB ISBEGIN

PROCESS(QD, QC, QB, QA, F, C)BEGIN

DB <= (Nor(OD) AND Nor(Oc) AND (OA) AND Nor(c)) oR(NOr(OD) AND (OC) AND NOr(OA) AND c) oR(QD AND (OC) AND NOr(OB) AND NOr(OA) AND (F)) OR(Nor(oD) AND Nor(OC) AND QB AND NOr(OA) AND NOr(F)) OR((oD) AND NOT(OC) AND NOT(OB) AND (OA) AND (F) ANDNor(c));

END PROCESS;END SS;

Page 160: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

SUBDESIGN DC(

QD, QC, QB, QA, F, C : INPUT;DC : OUTPUT;

)BEGIN

DC=(OD&lQB&lQA&C)#(!oD & QB & lQA & !C) #(!oD & QC & lQB & lQA & !F) #(oD&lQC&lQB&QA&F&C)#(!oD & lQC & QB & QA& F & !C) ;

END;

LIBRARY IEEE;USE IEEE.STD-LOGIC-1 1 64.ALL ;

ENTITY DD ISPORT(QD, QC, QB, QA, F, C: lN BIT ; DD : OUT BIT);

END DD;

ARCHITECTURE SS OF DD ISBEGIN

PROCESS(QD, QC, QB, QA, F, C)BEGIN

DD <= ((OC) AND NOT(OB) AND NOT(OA) AND NoT(c)) oR(NOT(OC)AND NOT(OB) AND (OA) AND C) OR(QD AND NOr(OC)AND NOT(OB) AND NOT(OA) AND NOT(F)) OR(NOT(OD) AND NOr(OC) AND QB AND (OA) AND (F) AND C) OR(NOT(OD) AND (OC) AND (OB) AND NOr(OA) AND (F) ANDNor(c)) ;

END PROCESS;END SS;

Page 161: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

Lógica de control del motor paso a paso.

i..........:... r,.=#t1:¡F-

's"¡¡1'. C.!:-'f

Esquema general del circuito de control de un motor paso a paso.

.fl) Q1

t.......................

.....-ffi

Page 162: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

Ejemplo de una compuerta XOR desanollado con el editor de formas de onda:

Para la edición con este método se debe escribir tanto la entrada como la salida,

por lo tanto si nuestras entradas son A y B, y la salida C, cuando A y B sean

iguales escribimos la salida con cero (0) y si son diferentes colocamos uno (1). De

manera que en la simulación cuando se presenten estas combinaciones se

coloque el respectivo valor en la salida después del debido retardo. Así como lo

muestra el siguiente gráfico :

A

B

Page 163: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

PRACTICAS PROPUESTAS

Diseñe una máquina tragamonedas electrónica la cual conste de las siguientes

partes:

o Al oprimir un intemlptor llamado jugar, se desplieguen tres números diferentes

los cuales van cambiando del 0 al 9 a diferente velocidad, esto dando la

impresión de ruedas giratorias. Dichos números se congelarán una vez se

suelte el botón jugar.

o Inicialmente el circuito le dará aljugador 50 puntos para que pueda apostar. El

jugador utilizará un teclado para introducir su apuesta la cual no puede ser

superior a la cantidad que se tenga en dicho momento.

o El monto de la recompensa dependerá de la coincidencia de los dfgitos. Dos

dígitos sumará la mitad de la apuesta, tres dlgitos sumará la totalidad de la

apuesta, sino hay coincidencia la apuesta se restará del valor acumulado.

Diseñe una caja registradora de una tienda de abanotes que contenga las

siguientes caracterlsticas :

o Enter: Se oprime después de teclear un precio.

¡ Total: Se oprime después de haber introducido todos los precios, para mostrar

la cuenta total.

. Clear Entry: Se oprime para limpiar el display si se ha cometido un enor al

introducir el precio de un articulo.

Page 164: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

o Clear Total: Se oprime para limpiar el total de la caja registradora antes de

introducir los artfculos de un nuevo cliente.

Diseñe una máquina de estados que controle el funcionamiento de un ascensor

para cuatro plantas. Defina las señales y condiciones de funcionamiento que

considere necesarias.

Diseñe un circuito que dividida dos números sin signo de cuatro bits usando un

algoritmo de conimiento y resta. La unidad de control realizarla mediante una

máquina de estados.

Diseñe un dispensador de gaseosas con precio único, que tenga tres entradas

para tres monedas de diferente valor, que entregue devuelta si la hay, y entregue

la gaseosa si la cuenta está completa.

Diseñar un circuito para el funcionamiento de un bus donde se tengan las

sigu ientes condiciones:

. Capacidad de cupo programable y un display donde se este mostrando

constantemente d icha capacidad.

. Si su capacidad llega al máximo, no se debe abrir la puerta delantera ( ingreso

de pasajeros)

Que sus puertas solo se puedan abrir cuando este detenido completamente y se

encuentre en un paradero.

Page 165: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

ANEXO C

Este anexo contiene el contenido programático de la electiva 'Diseño Digital

Avanzado Utilizando Dispositivos Lógicos Programables y Lenguajes de

Descripción Hardware".

Page 166: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

T'NIT¡ERSITTBIA ATXI{'IIOI¡A DE OCCIDEITB ].Dr5DIVISIóN DA IIft¡EIÍIERIASpRoGR¡tA DB rrfcrrÍrrnfl ¡r.rc=nór¡rce

ASIGNATT'R.tr :DISÑO DIGXTEI¡ AV¡¡TZADO IITIIJIZA¡TDO DISPOSITIVOS T,óCTCOSpRocR¡ttABr¡Bs y rJE¡IcuAitEs DE Dgsenrpcróu EARDWARE(PENSLM X996)

PREREQT'ISITO ¡ (C) ET,B TRóNICA DIGITA¡ II Y I¡ABOR¡TORIO (PIE¡SI'H 1996)cóDrco : pRortEE cIIRgo:p. rNo. BrrEerRóurcAStrolESTRE ¡ AREA PIBI¡ : SISTEDIAS DTOITIITES Y

COUPTXIADiORES

iIOR¡Í¡DA : DIIIRIIA VAIJIDABI¡E 3

DITRAC.CURSO ¡6,1 E. EOItÍOI¡OGABI¡E :FECIIA RtlI. : ARCEM :

Íxorcr.

1. OBüETIVOS.2. CONTENIDO.3. PRACTICAS SUGERIDAS.4. METODOI,OGÍA.5. SVALUACIóN.6. BIBLIOGRAFÍA.7. OBSERVACIONES.

1. OBüBTIVOS.

1. 1. OB''ETIVOS GENER¡¡ES.

L.1.1. Aprender nuevoa métodoe para realizar dieeño digital, con eIfin de tener una herramienta gue permita dar eolución a estetipo de problemae con ventajas como el atrorro de eepacio,facilidad para corregir un diseño, dismlnución de1 consumo depotencia, principalmente.

L.2. OBaTETrvOS ESPECÍTTCOS.

L.2.L. Conocer Ia teorfa de los disposit.ivos lógicos programables,para saber como están formados internamente y definir lasdiferenciaa entre loe distintoe tipoe de PLD's que aeencuentran en el mercado.

L.2.2. Hacer ueo de los lengruajee de descripción hardware como unade 1ae principales formas para programar un diepoeitivológico programable.

Page 167: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

2. CONrE¡rrDO.

2.L DISPOSITWOS I¡OCIICOS PROGR.EilABI¡ES2.I.L DEFINICION2.L.2 ELEMENTOS BASICOS DE PROGRAI¡ÍACION2.1.2.L Fusibl-es2.1.2.2 Antifusibles2.1.2 -3 Celdae IIV EPRoM2.L.2.4 Celdas EE CMOS

2.1.3 NOTACTON2.1,.4 ARQUTTECTURAS2.L.4.L Memoria de solo lectura programable (PROM)

2.L.4.2 Arregfo Iógico programable (PLA)2.1.4.3 Lógico de arreglo programahle (PAf,)2.1,.4.4 Otros tipos de PLD-g2.1,.4.5 Macrocefda de salida2.l.5 FA¡,IILIAS DE PIJD-S2.1".5.L Introducción2 .t.5 .2 Altera2.2 IJEfGiltAitES DB DE9CRIPCIOIÍ EARDIIARE2.2.L VHDI,2.2.L.1 Historia2.2.L.2 Ventajas2.2.L.3 Característicae del modelamiento del lengruaje2.2.2 AIIDL2.2.2.L Introducción2.2.2.2 Estructura de un archivo de diseño

PRAETICAS ST'GERIDAg.

3.1 pR.ÍcrrcA t s DrsÑo DE I'NA ¡¡ÁeurmEI.EC'|TRóIÍICA IJA EUAI¡ COTTSTB DE ITAS SIG'I'IENTES PARTEE ¡

- A1 oprimir un interruptor Llamado jugar, se desplieguentres números diferentea los cuales van cambiando del 0 al 9a diferente velocidad, esLo dando Ia impreeión de ruedaegiratorias. Dichos números ee congelarán una vez Ere suelteel botón jugar.

- Inicialmente el circuito le dará al jugador 50 puntoe paraque pueda apostar. El jugador utilizará un teclado paraintroducir €ru apuesta la cual no puede ser superiora la cantidad que ee tenga en dicho momento.

3.

0835 (Br,EqfrvA) DrsEÑo DIOITAI¡ AVA¡ÍZADO IXIII¡IZ}¡ÍDODISPOSITTVOS I,óGICOS PROGR¡TABI¡Is Y IJETGIT'A,JE8DB DESCRIPCIóTT EARDWARE 2 DI 5

Page 168: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

XXXX (EIJEqTTVA) DTSEÑO DIGITA¡ AV¡¡TZADO IXTII¡IZA¡ÍDODISPOSITIVOS I,óGICOS PROGR¡¡ÍABIJES Y LInIGU¡¡'ESDE DESCRIPCXóN EANDW¡RE 3 DA 5

- El monto de la recompenaa dependerá de la coincidencia deIoe dlgiEos. Dos dígitos sumará la mitad de Ia apuesta,tres dfgitos sumará Ia totalidad de la apueeta, sino haycoincidencia la apuesta se restará del valor acumulado.

3.2 PR.ICTICA 2 ¡ DISEÑO DE I'NA CAiIA REGIsTReDoR.tr DE I'tfA TIE¡ÍDA DBABARROTES QI'B COIME{GA I,AS SIGIIIEI¡']TES CARAETBRISTICAS ¡

- Enter: Se oprime después de teclear un precio.- Total: Se oprime deepués de haber introducido todoe los

precioe, para mostrar la cuenta total.- C1ear Entry: Se oprime para limpiar el display si se ha

cometido r¡n error af introducir el precio de unarticulo.

- C1ear Total: Se oprime para limpiar el Eotal de Ia cajaregistradora antes de introducir los artlculos de unnuevo cliente.

3 .3 PR.ÉCTICA 3 ¡ DISEÑO DE I'NA üAQIrINA DB EST¡DOS QI'B COÑÍNOI.E EI¡FIINCION¡ilIENaO DE ItN ASCE¡ISOR PAR CttAm,O PLllfrAS¡- Defina las señales y condiciones de funcionamiento que

considere neceearias.

3 . { pR.lcrrcA 4 ¡ DrsÑo DE ttN crRcttrro eItE DrvrDrDA Dog NltrÍm.osSIN SIGINO DE CAIXTRO BITS USANDO T'If AI¡(PRIN¡O DB CORRII¡IEJITO YRBSTA¡

- IJa unidad de control realizarla mediante una máquina deestados.

3.5 DrSEÑO DE Inr DrgPErfgADOR DE GASEOSAÍ¡ COtt PRECTO Úlrleo, QnBTBIGA TRES E¡¡TN.N¡AS PAR.tr TRES IÍONEDAS DE DIFREÍTI VTI¡OR, QI'BEnfn¡Cru¡ DnntBIrTA SI IrA EAY, Y E¡tTRECtttB IrA CASEO8A 8I IrAEI'EIÍTA ESTA COUPI¡ETA.

3.6 PR.ÉCTICA 3: DISÑO DE I'N EIRCI'ITO PARA EL rI'NCIoIIATInfTo DEItlt BIIS DOIIDE gE TEIIGA¡Í IrAS SIGUIEIEES COIúDICIOIIEST- Capacidad de cupo programable y un display donde se

eatse moatrando conatantemente dicha capacidad.

Ualr¡rsidrd lüt6nomr dú Ocú¡d.úsEcclon 8¡8Uo¡Écl

Page 169: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

:(xxx (Er,EcIIvA) DISEñO DIOITA¡ AVI¡IZ¡DO IXIII¡IZI¡¡DODISPOSITIVOS I.óGICOS PROOR¡¡IABIJES Y I¡E¡TGII'Ai'B8DE DESCRIPCIóN EARDIÍARE 4DE5

Si su capacidad llega aI máximo, no sepuerta delantera ingreso de pasajeros).Que sua puertas solo €re puedan abrirdetenido completamente y se encuentre en un

debe abrir la

cuando eetéparadero.

4.

4.1

4.24.34.4

5.

5.1_5.25.35.4

6.

IIETODOI,OGÍA.

EI curso ee desarrol-Lará a travée de:Expoeiciones magistralee iluetradac¡ con ejemploe prácticoeque ae resolverán conjuntamente con eI alumno.Trabajos dirigidos usando e1 software AJrTERA MAK+PLUS IIProyectos individuales o por grupos.Lecturas complementarias .

TITAI.UACIóN.

Primera práctica ....20tSegrunda práctica ....25tTercera práct.ica ....25tPráctica final ......30t

BIII.IOCR¡.FfA.

CARTER, .fohn W.. Digitallogic devicee. New Jersey

designing with programable: Prentice-hall , L99'7 .

HAYES, ilohn P.. Introdución el diseño lógico digital.Wilmington : Addison-wesley Iberoamericana, S.A., 1996.

NEI¡SON, Victor P., NAGLE, H. Troy, CARROLL, BiLl D.,IRWIN, ,J. David. Anál-ieie y diseño de circuiEos lógicoedigitales. México : Prentice-hall-, L996.

INSTITUTO COLOI{BIANO DE NORMAS TECNICASTeeis y otroe trabajos de grado. Bogotá

Y CERTIFICACION.: icontec , 1996.

jose: A1teraAI'TERA. MAX+PI¿US II Getting started. Sancorporation. 1995.

ALTERA. MAX+PLUS II AHDIJ. San jose : A1tera corporation,1995 .

Page 170: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

x¡(x¡( (Er,EerIvA) DIgEño DrcITAfr AVATSZADO rrrrIJIZAt¡DODISPOSITTVOS LóOICOS PR,OGRAIíABI,BS Y I¡ENG'UTi'ESDB DESCRIPCIóN EARDMRE 5 DE 5

BHASKER, ,Jayaram. A VHDL primer. New .fersey : prentice-hall, L992.

WAKERLY, ,Iohn f .. Diseño digital principioe y práctl_cas.México : Prentice-hall-, L992.

MANO, M Morris. Lógica digital y diseño de computadores.México : Prentice-hal-l-, L982.

7. OBSBRVAEIONBS.

Page 171: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

ANEXO D

A continuación se presentan las diapositivas correspondientes a las ayudas

didácticas para las clases teóricas de la electiva.

Page 172: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

i:Qxoso()5cr)

eGaJao_FA.t-Ll

s88

tFss sa58;€

E$I

r$$

Page 173: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

T€ F S9*'s: e

it:FF-n?E g Q s5€,8

Fg i F üBIÉ ! iciP:ñE r s$s€g* E rgg$gB F E SiHE EÉ igfitFiSÑtRgIt

Gs

Page 174: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

f¡]A4SEEiA(/)

H4úH H

HHH

(/)

3HH8EÉFHTEHgq

P{

H'r. É

HAH

EH

Page 175: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

ao(Uo

a-+,LoU'A.. o o

8 -s tro-aa5f,=b,+ +

U'o$l-o+,ñJ

ocoru,+, ¡- r-t

6 Sü=CUC= o-og a coooC-6OsÉEgHs€:Éo d€ctra8 E.EÉ E',g-oo-.É E€g 3gJ\JOr. A ()

E 8sEE 8-

F

-I.LtrOT

Page 176: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

oE$Eñ!-o¡ot-o-oc(E(JE(I)

(¡)

o'6=TL

Page 177: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

oüffiEo(Jfl)Effi0)

{I. '-lt. .l

l.'-:l

tr.JaL(I)

-G'f,n

=o)E o.$ '-t .-(l)F

.F¡ =ñrE{

¡T

rsu)*¡lgos.\¡

*r¡¡

$Nq)Eo!+rf

$.c)

dEe()

=aa

soc4

u)

e

s,coo,s\t\

Ito

Uo¡rüsidrr, aulóoom¡ rte &cid¡¡bstcctofi I EUOÍECl

Page 178: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

ooG*E s-coBE

$sBSESSE:

\J\\Js)orEE Su)s=

e baEf;8ñ*ev' o.Sr\nO888so.$l$,s.3ESSF R GE:$r\s ss) oqa.Eo

Page 179: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

$.SEosIcooou)

$Efl)

=o-fl)EoE.Fo

oCI-E8o-8E€E'F=om

HI

g+

oi=<u-

.l_¡oc(J(E+¡fl)o.lf, iF

fir(Ett$fl)==ü- o-

t¡tlU f¡{tr{p{

ift

Page 180: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

o0)(|)E=-l-¡o)T]Eio'6,(|)tr

E.o'(JC)0)(I)tn(l)E$E0)

=o-

E$l-m(l)=LLE

oE$c'c:(n(¡)=OE

oEoc)fl)E$E(l)

=o-(fr3$=t..-¡oo-(¡)EoE.Ro$(J.ñ(I)E+(E(l)-E

ü

su)(\

I

¡eoso+r¡aoa.

IsrQ()$.g.€

oEooqo

Page 181: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

UÉi4

qUEÉq

4

H

ECN14

UÉÉi

4II

I-+*ft

ttl4Équ

$Eo5a-Eoo$s\\¡obsrQoo!+r¡,

os$$o*rr(\p

l^\ ¡

aq8dAaE=o{

cn

gob\

€s\Gt|irf

c4Q)

o={$E

I5e$a.qrQ.\¡o(u

t|¡¡,

,o

Page 182: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

UÉq

4

lTflüHUFfu] ilF{ F{HHEH

If

jTflüHUU4ilHf-i1 F4

EtrÉ1 U

Éq

4ot+rfo5be

srQ¡\o()oQot+r¡

.S

eso$q)F

.\r

Page 183: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

,ESS TS

EI8 FÉ

út s$;n

IüÉüÉE

Soq$-oa$EeO)e

o_

et5¡q)l'/ooqobCU'=oEo

Page 184: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

i$s.Q()

E$

Ie E5oÉ

HÉ{ff o-tLoz.(oJ(}ltlE.E{

Page 185: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

ü9E3

HH ot4€EOE

Hüt50rff

ü EF € a

ÍsS3 üE n:FtFIEgfi3 F: Eg*Ffi O

E H$ gÑ$ü F

EEE E_E.-É'g g

coo+¡¡co

"ffir:&¡+' i

WrÁ iffilg".ifK

w' ¡wi?i¿líí:,Y.:::i.r:

sff¿, I

, ,S.

Page 186: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

q) u) c4EOOE'E'üF€€8$F

$€

EÉE*€ s-q)E E€SRa.9,üoS $,, S \

1 \rt

d $€2 S''n;gtüos-g gS EUScnEdd€ 8 E

€?,8Eoa.x'Q

eÉ8HüEHE\4.,g .E$a-l\\c{ss Fb8NsdP,Q)()vts fEd:E i$sÉ

soqco$s-sIu)o$.go

'Es

a.

FooO)

S$s5\,o

ob.So,oco

oa$Eeo,ea.

\I-II-T

Iq)Escf)s\o

IFr\ct)oBES5s

üalrr¡lfil Autonom¡ de (hc¡or¡b

SEOCl0ll t,8l-lOftC^

Page 187: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

(t)o.-\o

1r:

ztr"

o

FdeHñf;

ÉÉe\C¡

7tr"

zot

lU E-AZnElY,E5?

UM

l\I

3{qnúE-zft¡frlo4f¡lzJ

t*r€¡

ntcol\l

o

Oo..O11 C{cqsfú)r-rrñr

fr¡oú4HÉi

H*

Page 188: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

cnssoSM

g()f;

ÉEH8HHffiHfr{

BÉq

HH

OO O\ c) d (\¡ Cr\ {- (ñFÉFÉHÉ

tr{lnf+oHH

o-ñtñ)s-!1 rot\

OF4Ba*A-Ets

t*r\onsCrl

I\I

o

T34q

Í¡¡f¡¡A(n{14

Ff¡l

Page 189: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

888 s -oo-Eb v) I :E.Q.= gDeG óg *lt$ñO8: ilF ÑÑ

á$H Ys . S$

$€€ É $F Íl*üñ tiHtE cno'B t ñ€.8 =0 eg*ó FNF $a2

sEt pfi gsniSB; ttür e sFÑ F€ $TE ÉEEFEE A i üS X € É

i$sE Ei3 EE sfl *üt s*$ sge"3

oEoosr\¡

C)osooJao-.1o_

ob

IEIS¡\rr| -'oco$o

Socoq)

$!+rl

,ct)

¡l

oa.E$Ooeaou)u)oa

oooE\o

Page 190: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

S ES $H fi:

$*E ; t üE$

:fiE P$g ÉFE

iEEÉ$$fl*$$BFpr$tütfi$É E$fi l

sÍ' s$t sEEtxsgsssTs

ea(Ü

¡aoa$oiE\\¡oocn

l{l

s:Qo$o

\a.

ob

eO)ot+i¡fF\¡

ot|¡¡at\

5.g,o

a

co

ssoC)

$\

s.sco

u)oe\-loo+r,¡\¡

o

$\\#)nlEprsro

'o

t\\¡

f,lü.

Page 191: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

_Ét€Efi$E

o-

otro-oO

EFgs-c g

F FqsEE"S-5

RE;5üeo

aao

aaa

aao

5Hlt!t

$g

gEEe6ñ

Fs..'

ooEo-

s9CIb

ss

ot¡(úcl¡J

E

.9CDo

ls'jot|¡¡l(\\eer\¡

J

É!torgog(t([

=

Page 192: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

qi*¡lse$acosE$oc4

o5oe$aoQ$Ee

u.E $S E*--\!uttr 5s)Y :o9S--FO6ru\56= e ó(Ü()f|\-

- s E.UqrE heF())gSñ$\ñSo g:E'.E P:o. R'x +á\ A, _fO

J¿ rts rr\ v

8.Sü o¡E E\¿a-==)-rd€- a-+P b (t'r^s (sñr-!PbS-^cn'- G afu$q-o-.\ I _9 a.J a.b F-

Page 193: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

O cr)

b$.9A8,E8F€:É F i üFs i $ t iFF É t $ fiq u .; R 6

,És É E € :l0S q d S 'a;ñ I S o $Sb € e s .s'tQ' 'D o I 'd-

3ü q t E gÉ:B,S€E$ 3 8'F$! T Pü F CO ES EkERSSSa.oNü$;g*

* * *

$soE$

=

ato.Sob

\o+¡lo5bso()t-.

sflF'so5()soq)

Page 194: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

at'

EEt s

ÉfÉ3

I3€eE

É

e

F€I'eg.5

É

=T

F

gi3ÉII

oa3

.E

?3ssÉ?EIE?5$áI$üdi,¡:¿¿

Ea(\'

3E83gséidri.:¡üa

s3s3g'

¡H

E* ñ

ü=*

¡5.g¡

E.E

3It

EE36¡<!t*-.I-Ex5

F

=F

=g.p'atTE=z,

&€€?E

E?!TsE5

¡a

T€$,E=,f;€.1.

dEÉ':.ñÉF*dÉ's

HÉr.l>-q.

HF3..¡..¡cl.q¡.!'(lIaRa

=gsg

3$É

*t3R3 3

s$Eep$sF

EEFÉ

uñsÍ3csXÉtEgrgr efr ñÉ

3tC*bd.o-?¡P

-!¿

Page 195: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

Gt¡l$obct)IF¡\cnoCA¡{,a€S

EE5tFESE

\

S8sa

tfi-JOLL

RSTE5s\d

*Rt3

Hi

üÉ

5E

6u){-.1O

SE.s$

-.1

\oa.ob$-¡a.P

er+¡¡l

so5osoo

u)osII_u)

Unlr.rlldrd Autü¡omr dr OccuübsEccroft 818U0Itcl

Page 196: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

I E 8$ Ifi E P$ 'E$Eg€sBA.^!ee I €$ o'

s o ñ'{ s8 F Es H

R¡ ts üE ü

:S:E s; *i;EF F* -Eg\ ñS FS .,; $ iBs F*:S$ g :o-,P a-8I-'-.+E ¡:

ñ

EsEIinñEgtE B E.F S$S óe s¡E sSEEÉ ?ñ,EóE Pñ RE s 8'B *;Egá8Sáñ€s

Éct)

€o5a.Eoo

Goa(ooEct)ob$'tso5

obso

r()

Page 197: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

R€€ \E fifiFE$;ngHE t 3:f;oüñ t o

S S üF E

X ügf 8 ai

S *s'ü $E

tE $$e$s E a¡Hs€€:oEÉ€€Bs$ñESEF E$ s s o o.\-.lOO()9. a.

Page 198: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

s€aaa

aoa(oE

Fg

eó@:¡

ooa

(oPES@=

5&EüguEtR5**=>- -

;E

(o¡9 Cll

o

ñcr)

Page 199: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

(!

o@

aaaoNo(o

(\I

o(o

aoaocEg(\|

o@

I¡5oÉtü:aJot0

cÉJootrDo.z

Page 200: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

t'E EIS

8s$!Eg* Ñ suüsbñXNpo\F S

o,6'g

F i *::S,itFHgsI R:5 üE Rg FE E; F

É s* oÉES a SE Ee q'

$tE;es ñ

E E;E$H H

€co'9g$pa{-.1c4

SosoC)

u)

€$Nssossqo5oso

Q)u)

\

u)$booeoGE(oF

5

o-t-,.Q

a{-.1

S¡l

oa{J

IT

rO

Page 201: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

:Eg

FEsE

-92OEEF*Eu¡Ée8

*s5:HE

l¿8E-rOnEF8..cxvr|u,J

Esp$

gE

FF

.9

i$€AE$gE

6--i- c)Eooo

EEoo

oE

(o()o@f

\f(oal.\

Page 202: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

L9OEEFit()sE(oo-d

f;sÉ*frE

.cEEJOxEtr(D.Eg(/)ul

:Eg

Ea

FstsR

SE

F&q

ESr&ü

.9

5$€AE gE

ÉfLu¡9ts

ctr'EboE=

ñ9€Eo6

€$6o

E

EoGo

5

$sEs

Page 203: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

E€q€}E3SsF8.Uo5$üao8B

tÉt.F ÑE¡¡ v

Ooca()

!s$

oEooCO U)$o

üE=\)f;Pñ5$oogs\8.e

()

TEd8.

,F 8q¡¡dBStseX€t*

sooooN ,

ETR8HpgE ü

$$H

t qE

TE ESE cd

ÉlEI.H E

s€B

^-

So_

g

$-.l

Page 204: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

$,8 gi ü

E$$sgsE gt88E 3e;

ttfit;tt sggs*;H$ürügeg*Ég

$s*oE

€qo-Jo_LU

.o

ItLn*U\'ü¡¡

ocuJb

Unlrrnlüd Autürom dr occúnfstccto¡t 8r8u0fsc¡

Page 205: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

888o'sF

ob.

\otl¡¡l

soo

s5€coobs\o

¡\r

o$s.Pt\

.=

E

s\oo$r\¡

osq)\\¡tooco

Is\o

.\,r

o$()

\

""'o

¡o,sosS¡\

.-r{l

zIOo_

É,

I'atU-

Page 206: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

ct)o+¡¡,

-$'(u

=E$(\s

GeoS

{s5.sc4

\\$oEs

I

'(t)og\oEcoo\$N$sT

+r,coG\e5t|rrloEl.fr

I

.\¡osIsoa.obq

I

os\o¡\¡U,.S

¡r\¡

aI

|\r

C)\\¡bQ)qI

Page 207: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

Ii\

so

\Jc4

-o

so$ttt¡l|.¡\

EGEs

o5bp)gE$a\

G:+rJ

s:Qo

ob

Ir\s$os'tos.,$ob

obu)oIi\.sc4ot\o5E

obG(t)s\q)co

obo5a.

q\-,(t)q)

-.1o{

I'6os

=EG(\s

eo,ot|¡¡fs

sooe

Page 208: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

l.\aO)F

soob$aea.(U

o

dN-.oF

ú

H

\

-.loI

IsrQ

r\

()$

s\$NGeoE

.Q

€$s$

IoSO)

s(o6O)F

I

cr)$lln¡f

so.\¡E

sot\\

t\aO)F

Eeeae

I\\,+rf

:$

=I$cno

$+¡¡loa.Eo()

ob$co.S

e

¡{so.Qo

95+r¡qo

soo

€qo(D

¡-r.

o

's:9QICU

-.1I

o\r{tt\\¡

q)

CUxelrl

I

qobq)b

o-t-ssoo

oEoa.

oEoq

ñ8s

Fg

o\oa.o

o.\¡s5'- r

O F- Oñr-\ O ts-r afi.rr:ooss (\ F.g,S d

=Lglr.l (¡ u) EI

Page 209: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

ors$t\F\,$t|r¡lo

cno+¡¡f

(/to*'rasoq

os

.CÜE

IE.s

obcoo

{rrfc4o

'E$Eoa.E

os.Qo.$o

€sor\sEooea.C"os.gos\

\oa.d¡trlso.\rEsq)boE

oos.Et¡l

o'dl5o,soE

$¡ ñ(\\\\o\r, .\

-s8FS-a*3v) (u

CU

SooEoo

tli¡¡

osu)o

o(t)I

$

.Noa.Eor+'¡fosoE

o

sornG

Page 210: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

IJJ

$Eta.qq)

-.1ass

t\o

ot|¡¡f

o5b$a.

\Jogo5Otcj

'osrGa.obs:9()

es()oa\F

ooIs:9oesoooc'j

$sobogo5Oc.¡

(\\,,rQoe$oooF

Eqobss5

u)s

ssE

*

.\¡

sflI

Ptru)

Page 211: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

g)u)

osoñF.=

r+¡¡f

5o

so\o+ia()

e$o\q)

C"\(uF\

os5c)b

G|rilco

so

eaos$+rfsou)

s$soo$s

u,5as'\qa

ea5C"

$s5\ou)obo5a.

\ob$oiF¡\

+tr¡lsobs5

+\¡

S,qeoIttt¡¡()

e$o

ot|rrfu)o5a.Eoo

E(UoiFt!\

t¡r,sob

C\I(Y)

G

obeoa.O.,

{,\

€Iob\o

u)o

q)bcf)o()

s€

Page 212: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

sF\r{l

or

\o(t)qoa

h-c4oso¡\

$s5so O

o\a.s$

'oob$

ñ

ct()iF\\¡ooBq)

oEq

'ot|rra

ob\oqot+rf$o

orhrl

|.nlI

Page 213: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

(r)

e5

\€

ss

$rsoC"

oqso

qta$l---

5oEs\oC)

eaEq

€s5'=r\¡o()

s¡\+CU5tt¡fo$

$.\otüt¡a

.Qt\

$t\\¡\{toso.\

l+¡¡,

b{\osf,t¡

\.lSl.tJqcr)

$F\¡\t\,obs$(t)¡

s.g)(t,$\oq

SqsN

q)+t¡a

e

osoEoa.

ct)oco

sou)

e

su)o

+r¡a

s.g

8oFqs\=l^t

'(t)$oobo+rr

€i

Unlrrcldrd tutónoma de Ocs¡dütfsEccrofi 8,BUorte^

Page 214: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

HaoFq

Ioo,p¡a$

€ot|ir¡qoEooI$C)qo()

r¡to¡|¡¡¡soEgoFF

I

$s5oEoC)

(/)

PÉcn

-llrO

bqo

ga.s$

\.Rottils$

o-r

3's

tr

r¡¡

6o*raF

ru)-.JIrOo\a.s

s

q:Q()

esoooT

iFIea.

¡\¡-+n¡,

ob

o5a.

o5b

'aooes

so()

obs:9

trl¡

IJJ

tr

Page 215: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

obsQ)co

oo

$rqoco

ottt¡,ob\o

'-lqt

a$'t$

r¡\r-+i,

ob\o$\oE'ta.op

aoSIYOo\.lo

'oes()obeo.Sa.

$\

s.scr)

5E

Egot+rf

.So\.l

s.930

cooso.\¡o

i$rq

Page 216: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

^ .A' ¡^r(\|C¡

\rf \/ \/NNN(3N

sobEaEo

iFEoo€

Eod',s5

$r+t¡l

€\Gb

Gbr\+t¡¡soE

+,CtuoE

Í¡s0zillo

ob

s\o¡\oe$

obqoEo5

Page 217: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

cD'o

{¡rl

Q,

*r¡\!to\.

.St¡

IJJ\-la

N

ffiaoOIJJ

aEso

obiEsoob

Page 218: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

c4

eo'cotttrlr\$cn

g

obs\o.\¡o$.SaEo()\o¡\Sb$5o\F

osor\E€oa.E

a.ee$gqg$r\¡

()so5oq)u)

s:9oGs.Q)co$ob

o+r¡as5.FoossoEoocr)

c4

sIo

$a.coot+t¡f

sora5osoo

s:go$s.Q)co$o.

'ts\¡oos5oEoOc\

E.5+r¡()

Eqo

U,ol|¡rl

Eoo

obobF$

t\\¡\Gtt'¡fu)o

so\¡5O)\¡c4og

o5'g¡t+ra()or|.¡,r\

s $t|¡il()oqoQot|.rl.S

oEoOF

obo(\a\\,r

$5oo

Page 219: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

¡h

F

obo*'¡¡s5

U,obGt+¡¡,

oo

't()coobq)

LUaooIJJ H

a¡¡q

ñaqñq\Gs.934

a$l\ssg

tO63a.tC)

Eso

=tsosoa.Eo()

'soa.EooEso

oa.

a.Eoo

.-,(\\¡o¡\r¡Fc$Q)

zo*.¡\-É

eG

Page 220: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

r¡¡

0NLU

¡\

rcn

olIJJ

aEso

'qc.)a=

cr)

=

=t¡

N=

St¡

F

=

a=

\.la

ñ=IJJ

a

Page 221: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

o¡¡s:Qoeos

Q)beq)so

or+¡ls5'=r\¡o()s5

()

eoqoosrQ

r\¡

o

{

eo\h$Eo5bcno

bcooFqc4obsoItrf.Q

,i

.\¡

.ggosoo)Eso

es()ob

gosoU'

aEos

$Eo5b(t)¡¡

cnoo

*,,¡l

e

sp=\\,oF\¡oo

$Eo5oU)

-t -,

eosq)

o

Page 222: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

c4_$es\ +¡ftc)qsF, .\.b5corob

co

e5t+rJo\iu.Eu)osos

o5\

ortil

C)

ñ\o¡Gos5to€

cn5$q=-¡ $.rr .\,rEA(tl Fñ\oTO

|.fr

U,

Es5O)

.$

'ct)

h$Eo5oct)oN

E\.g

cit|ra

eo.9

.P5

cn.N

obso.\¡s

q5eso

Page 223: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

.s€$cf)

)g\t*NqIJJ\*

c\qIJJ

o

tcbGs.8)q$

G

oE(t,\o

oLU

oES*.ooHr\ñ

e$

$a.co

€Iob

bobs$c45

o\\¡5b

{

BtrQ)bo.

tQqa{\¡$s.930

Page 224: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

(ooq$

lEIl

r.c)

;

¡\

o-laSbs

$({

a

l*Ll

b

oilÉ

oOIIJJ

oEso

r¡.l

S+r,ostlV

tsN

+r,ostlVqr{¡{

ostlV

oN

qñao

N

Page 225: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

¡h

€o5a.

IoB.,/

c4oeo

b$b¡-,

t+i¡

so

C)qsoob

r\

bIEsosIEaEosEso

obcn

eaEos

\,

troa.

ob$

F\oco

o5

Gq5ob€

otlrrl(\q)

¡

\.looeaEo

=biEso

ñlC)

$s¡oEoo

$$

€ov,ob

esoooT

osoq)

!+i,

so

obol|rrfs5'=

$otF¡\oQ)Isor\¡

E$ob

Page 226: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

q5

*r,oo+t¡l¡i\,

e\\J'*¡foo+¡¡a\

\dl

U,o

$s5IS

e5rti¡, soEEaEosEso

'oes()ob

.SU'oa

.Qb€.\¡!l¡t¡,

sos

*.()o

*f¡\F

e$

Page 227: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

q)u)$+¡¡lq

\

5u)

sq)

€o

ocoooea.

s:9Qoa.

o5()ou)

co$

sf,ctc4o r¡\

+r¡l.oro3oooea.Eso

es()ob

sr\U|oa

zoE$+{o55.\

+tr¡lot.

'(u

Fas

Page 228: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

i\o.\¡os5

s:Qoeoaso$

'fs$s5

s\o¡\,()$q.p

osc45c4

sq)soEe\

'soqcooa$'=sct)$

-.1

oIo\aG'lG

5O)ct)

$q)

$

Page 229: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

o\

€oIs

co

gso+¡l.Qxo

cob9

qo

c4$Eos

o\

*G5

\oH.G

s.

\oa.opE5co$

Q)qos

ia\q's.934

s\o¡\o$s.g

zl\\¡\oC)$s.8)ct).

o¡¡u)I\¡CU

+r¡l

e

$o()$f\

oct)

€8ñ$HBO F-.S

Page 230: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

.4. r

EqLNq

Errlffir\LNr\

ErELfi

Q)t\

Page 231: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

t=EfEfrlu]frl

EflmrrÍ1r

ffiqLflEf

ErrlFr\¡Lfir\t

EF

mLN

(t)saF\

Unlr¡rsldrd Aut6nome d¿ 0cclónbSEcolofl 8,8tt0ltur

Page 232: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

\l-F

cnsoF\

\oHG

'GcF)

tlV ¡\

3034ooea.Eso

¡l¡¡ou)rY¡\.

¡¡II¡a

ooa.E.Q

()iFr\h'jsobi¡\,

'$s5oB.s

otÍi¡aso.Eo()

\IEt\

s+$rso

$8B

o5b-t

cdosor\o

co

Ess(t)

\o

Eo!|r¡l

|.fr

t\\¡5(\Q)

$rsou)

o

.SU'oa

t4t4ooea.

soh-

Page 233: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

""'o\i!s¡*'a¡\lu

=

'so

*f¡\lu

=

o+r¡fse

*

obEso

coooea.s

Page 234: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

\

h.!?oct)

s5ct)5sC)

oleo$so¡a\oIs5ct)5N()$s5

Io5a.hr\s:Q()

es()I$\.l

*t\

Eso

'cn

u)osor\¡

()

es()ob

ogo

go

l.

u)i\o¡\()

E

so()

es()$S

\

$s5$sor\¡()ooo \qg

.sle.Q()qo5

Page 235: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

s\o¡\c4

eR.osoF

q$Eect)

soo$s

\\o

F\¡o\\¡oq)u)u)

5ooct)

cnos

$b$u)$as\o¡-()5oo'O-..

se$a.

o30$C)

s:9oe$oob$

-.J

¡h

o30GoEso

osos=L_¡

soF

==

.,P

ELri

(\\¡rQ¡\oesC)oE

ct)qoso¡\o

Page 236: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

eo.Sdh.FE€

se.s\

€$oiFEss\.P

'or+r,r\

oboEo5oqooct)o

'obcoo.ghJ

(t)

e\$T

o\Eso

q5obct)

'$--l

0-o

cooso¡\¡oeG

I$co5u)q)

a.o.,

$Eo5oU,

Page 237: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

\oa.co

€$(t,5

s$co

$o,Ga\

e

c4(ub$r*¡l5oo'd.

so(t).

co$

\tE\-.5u

I

u)q)

srQr\¡

o

tl

oEF\

=

os+i¡L

xosrQ.\oes()I$s5

.9oo$q$r+rl

|.fr

ctNsob

$so

*rlqoE$b¡\,

r+¡¡l

oa.e

ocoosor\,r

oe$oob

oBoq)q

os

eoeotüi¡a

$-.t

rQ¡\()

eorhrf¡f\

o

Page 238: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

oEo5a.

$o

osol¡.lsoq

\$+i¡l()5o.\¡

ti¡¡l

ol-_ _

t¡L.

xo

oEssob

'Q

sooboooT

Page 239: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

.QqIJJ

a

oE

s

{

a5¡lr,ooEr

o\+¡¡,

so¡\Esob

¡\sa+¡fso¡¡

t|rr¡t

5oilf,o

l¡*.a\\ .¡¡rOF-Fda3iltrqO\¡()G>sÉ.9o 3¡,

Stroa.

sosoa.Eoo

l{ES*raoott\seG

oo{

--Jl-.1f,\Eso

'oE

oa.s.il

oou)

s5

.bqe

o.¡\r

E$obo

rtrS&¡\Htso

Page 240: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

c4

s$bobo's.F

I

t¡¡

P\,

¡h

oH

il'Eso

tsqtlV

f,u)

'oea.Eso

ao

6sa.G

s

ot+¡lso.\,E$

e5+-()

Ect)oII

Unlwsl@ Autónom¡ or fr!,datlf$ocni &8u0t¿ür

Page 241: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

F=oü

E=tfl

)

{m=ü

fftE+rItrEfuE{f

=-'l¡-

Íl+¡=

. fllEItrEEff-Eff

(.)

Page 242: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

orso

€obb$

s€o5a.ct)os.9

(/io.g\r¡l

6q)*rsoso

ob

Eoo

s\\J'

s,o¡

\or\¡

oesoo

I$5u)5s()$s5obs$c45

'co

€oa..s\oqoO)o5

r=¡

os.P

\

cnocoo()Qa.

coq)qooesoob

I$cn5

ct)c)

t!-

oesooo

r¡\+t¡lt\\¡o

ooa\

s5e

obu)o

e$a.

€$

e5Pso

$s\-l

o

qoobo

obs\o

r\¡

oe$

Page 243: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

tH$n$g$=

$i s; ::,!E;;É:iü* Fts $ s

ErE* * He

$ E I:;8fiRH€ü $ ¡ssFEEqt€Sl *$tE Ft

$;HEÉE *HFpgt g¡

SEEt 8€ f 8 S R

IJJ

oSo={

-.1

=otr0_E

(

OqIJJ

o

IJJ(

SoqttH-.1

Page 244: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

$'\s.Qo

I\

€$

sqoo

!

luttr

s8E g ¡¡

8EÉ$sñO:E b uJ-

$üH

:Es-.J Sooüsh:-.1 O \'l'-.O

: gE:Q Ag$*€ESO8 Rüa

\s38.8ffiHEct) \

€€$$

g'8G8EH-.1 Ct,

SEÉI\{E;b$B ¡\

tuEEEs= o'=-ssu$Es g$oo-.Jb S

o=IJJcn

alJ_l

o

oÉIOq

=f,IJJ

ot¡1-.Of,sqIJJ

Page 245: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

\\\T\¡\¡

EIo

F\E

\\

U) COooSSTE.su \d€a.

88Eo.t

t\

8fi\r\\J' \-

tosu\ñs€$gss ES ¡b

lJ.l-

8.8 *r.8Ns Fs9óp\\gog$5$a.ba.

ob

srQ()

e$oob

$-.l

U)qHlx

s:Q()

e$()oa

Fo

=Q¡sN

rrilrroH FA= _¡r a oTE==u, ll¡ ñ -t E

F ilse=ltJ

=t\- :ñ

oi rr

Page 246: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

a¡\acr)F

II

8S$ñ'E

.fi F*

$ $,HüEgq*

SSü\5,.'So

l-- t|¡r,>F O

3#eCN TJ

EÉ i8.R

F:d n gd +3 s .¡

sEsSNiñE Loiq\IHB*ea

o.S*Jqsoo

osoob5()sl\

9f¡\

t\

e$s5*iiYa.-gE=c)S uJ-

bsiESooe.'SFsose.Fsqbea.$

LUo)-.1O

=

srQ¡\¡oesoob$-.l

üo)-.1o=

srQ.\¡oe$()oa

l-.

-.1qlIJJo_o_)

l-=ilC"

=oo

ttJa5-lo

=

Page 247: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

H$$l+'¡¡

$btl

\aG+t¡,$?r

=v\ ¡hoatü=

^,4 uJ

l¡*.S*,qSoa¡

5¡¡

osa

=\-rxSa$r|¡i¡I

' ¡\*ta

¡\ ¡a3d':c\.Er

-.:;q$s\-Et=qxe.{X=*SENüfr8rfalU5O(,2\,

so€G(t)$a\Gt+rrfqoq)5b¡¡he=a.gEsh-S€€sg.Eo)o*8.g€ttrt l\..sd\SgS$p,FL

\$

srQr\¡

os\€Gs5c4oCU

5os$b$¡

sosrQos.F$s5

a\

ñob

o+rf.\¡

soa.lll=\lüosrQ¡\()

es()oB$

-.1Lri

=LLIJJ

aqrQC)

e$()

Page 248: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

sbLqg

:ESoo)a. r\o=€g .

'H sqq

$ Éa8 E:,qb I{'D

E2bÉFEPo3g'n üs

H.3 Ea

¡h

\otl¡l¡\ (U

=e:o,BSe¡B¡\

EE$o\_, _.1p\,ñ=gq5Poul=qotro=R

o5oq

'E¡i\4.€EE rrJq(t) ¡'= cnco

PT

fiñ*BF- lSPEHEts=üÉ€

9€f,.sl{ co

8€

c4osor\()

esC)Iu)$--lu-¡o-

F-

Poqo_

=otrO

=f,LL

s:Q()

e$C)

Page 249: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

gEu,

t€G=OüabEg sE'S ü -.1g es

fr=;FFS SSS $\,=F- g$

=5ilftüqCr,

€88S 5E=ooo5a.*a-l.-vRq.suhonSR-a*:ñN'F,H EHPqü d.gE ó.0Y

9.jcr $ q\J S.F 3_, (\

U I €*QLJ_l o -¡

N$.S H

,E:eEg\PpG G C98güEa

Page 250: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

r¡t

o r¡O=sll

*¡hl-ls5des=¡¡e¡r CF) i¡v{_.1 ño {

Hq\tr s\q= neN.o \{a\30rtJ

a\,530

=2otrhSñ4.a)cn

u)

,E$HEq

q$S-l

¡\¡r

6f;ÉKE\qt€É

F$E

Page 251: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

IJJ

=ELU q()g Fs3!eHA8flFssss:Q :9 :g :9oo()()eeee$$G$ooo()oooooooo

ct) o8E$53a.(ngoaE.s.SN$-,

E:eEH EG$EN-.I H

HNtqeü

l\ñrt¡¡r

E:e;HHqE:H:Ea.o.\

I(Uu)5coolü-.laSqssrQ

r\¡

o()oct)

$-..t

ü-taSqs(\rQo()oq FC\CD\F

Page 252: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

$oGoosStr

;;letIÉ $ Ft:is:€;t ñ l$g8E$.EeR

u¡o€.t¡E

=ESEssE*E*e"F

's e$ ü s'E

E,EF,=cÑÁssu$tgtr{

Page 253: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

K \q'H \¿Ug+)fl *'"tdF:ooFsg*€F c')

s P llj€aüFñ-S'R^ -J_--¡ vrH ¡E;,p

ñ *HsAE !L

HS--üü e Rr.s 8.€ UE s '{s)U ñNLucücñ i9 \)vLLE BAS

€ t;$t I c,,

;8fi;üüfigH$ ¡Fa s

EÉEI É[$SqFTEi$xgi;Er$

H Hfi*¡*[,Er *€ s áE

$H$ H$É $

Page 254: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

bssEe E$ sDJSb¡ba-E u,

N8üEbe\t^Soñ pv)ss_i:$

E8 E

=€ i

eB:,H 3Eil€Escn _ ,^ a: E 3.S:d'S co dCt OrFi a

$(uñs-ñ É

=:QHsHHdSÉE\

Page 255: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

U,$SU$ HEu{o

RF r=EHFH€u=$^ñUFaFdóütroqf,g\Jfi€ocncnqSSSSSaa:Q:9:9:Q:Q:QHHüüüüEüSHEE&GEE88888888tUlJJaOaaaO

¡¡srQooQ)q$+'¡lcoosQ)co(B\J$q5\c)u)

sobo5a.

coos.9()()pScosoooU,.Qoso*¡asocn

cno+¡rso¡\S.g)u)

q$obco

\(u

E

o$sf,ci

=Qo{i¡¡

ct)q)

oborso,Qos5q)bogo5()

q)

eob¡\¡qso

oco

\

o*t¡fxo+¡l

ob

9al\qe$

oEu)$or\,r

O)e(t)q)so.\¡()

e

coG

CU()iF¡\ooBo$oo,o

srQoooq$

-.1

R;oo,o-lsrQ

r\

-¡¡FNCD\FIf¡(oI\A

Page 256: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

o$\bnsdF;0rE€+iFF Ñ P,PP ó S ü(|)5o¡qc4S n€€frF.HüPs I óñ9v'o-dS pü6urs $B (^ \.SLf t ;7 fTr :; H¡\Fvo qu

EAEE8li 8.* .\d€ d s$ .h; Fn t:Ft S P sÉr,n

E€'g$ * t H,9 6 óe co q u,rJJ (J) q O c4 ct) u)

t\

r-lstsoa.

:fhqF

¡¡

Soo+FoFFoPa

I

\o

tl

\o

¡¡

sa.Eolü-u)

€\Gcn

\

ct)I$uSsou)sIo'\.vFq)bcoobosqooEsrQ

xoqoo

$\G+¡¡fsou)

Ea.ee$a.G.go,rQ

srQ.\¡o()ou)

ssocoI$u)5s

co$s$eooacf)Q)so.\o$5()q)

u)$-.lq$q$gooa(t)oso.\¡()$l5

Page 257: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

€8fi

¡\ts+ílb\ {FP \-=Iñ-t\=AO.i-UOcDXA

'|\ L ¡ P H ll ¡r'¡

:F;:l' trS: r =¡ñ

! $\u Fsqt rr

rr drsDob(o

= d; r$; É,¡h

ütrül{rss?===o a

=lLl

otl

FEbCÜ

AtltoPI

U,\

=o ltJ

ñslltqo

tl

€a.Eolü-

u.¡cn

ó

eas.$

q)5.P)u)oo5bsrQ¡\cn

e*o-ooo+=o,oa$'=ssI

obsoEsoa.q)bq$\J

st\t+t¡loa\ocn

sobo5a.o5ou)

s¡\+¡,$

$soose

IJJqosrQC)

eGoq)b$-.lu_¡qos:Q()

es()o

Page 258: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

t\ fll r'r

ofñ:9s=o

Ptñtr¡lS$HU$$ilatH ñ\ ñd

ttJ =AUJ

d$EIobó

u)SqbE Lu-

ut^ Cn

s6t\\d=

UJFEtrbLLGU) CN5(l)soct) ';\sñ8&'=os€

v)seoa.or+¡ra

o.EI\oa.u)

eosu)o\$oiF¡\()oBoot|¡¡f¡\s¡a

l-.-.1f,ilIJJ

aqrQt\

oe$()q)b$-.lH-¡f,ilIJJ

osrQoe$lo

Page 259: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

$o$r+'J \ F

€ ü=

t\

F+o-=F\¡ils'j;$

= ii É- F '+$ L IFBF ü\il\$ÉD\uOQ=- SD ll cD llr \Sq óS. u ü$Eñ Fb ñu;

b\ düñ

¡¡oa.Eo

rJ.r-

cnGs$oooact)osoa\

cr)

E*q)cn

\(u

Eo

€€

.EsSE

8gs'EC)$

€Eu)o8s'8€

$'ggFoEbs

$üco ij$$

=IJJ

Fl{srQ()

e$()I$--l

¿lüF|{

s:Qoe$

Page 260: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

H{qul

=lU 'ho¡\ks 's60\

üF S$\ S-

ii : E

SEHE$tXtEs[r ,, 9,, üS BB 8EHUa\üñ

Sq;og.E.g*a_cnr8:Q

$$soE$$s5s8e$s

¡\

EsEq

E't ÉFE."q

obu)oso.\¡oes()oEobo'tocr)

$s5$so.\¡o$e

HtIJJ

=l*Ll

o

\

srQ¡\oesoob$-t

HtLU

=LUol{

s:Qoe$oo

Page 261: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

¡\

l-5 ¡¡\A.r

=s .ñ

¡_$ ul¡r h

f ó e\J=

l¡h ¡¡F-itss\ :=8 F;JÉ ño 3u g s\.'

=\F¡

\

=B ¿* sÉ

=ru Ed E I= a \.Sñ EEA\' soo

oa.Eoh-

Htlü

=UJoqol{srQC)

e$()

Page 262: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

l\,¡¡\.

EItJ ¡h t ¡ñt\l=$\s s oi^ \ñi o:fh +

T FFF 56 ü;ca t5 trES- iJ=: u u E-Pc+F t,l

], FFE üSF= I $ B Eóq o o aNR ñ d

ñ=\oltJa

Page 263: Occid¿nt¡ l8frr4¡rflffirryrrl sEccroN 02?546

pts

,\'\t\t\t\

UFoaF

¡\\\\¡\\\\ññññhFOOF:OFAO-,.--OOFF'. o o P P\hüü*a a a a

lrr-lail

oa.Eo

IJJ-

obGrtifcooo\J

c4$s.\5o$E

oEottrlsq)

a\

E€o3\oo

oo

.ss$.SaEoo$o¡\o,rQ

\$()iE¡\ooBoe$a.$EGct)5qq)

UJ-.IaS

F)

rsrQ¡\()

e$()q)b$-.lrü-.lasF¡

Fq:Qoq$()

AAAAAltilllllll

ttR

SSFTi+PPPF T¡r*a a a a

H

tadsxIñ