Académique Documents
Professionnel Documents
Culture Documents
APENDICE A
DISPOSITIVOS LOGICOS PROGRAMABLES .................................... A-1
A.1 INTRODUCCION ............................................... A-2
A.2 SISTEMA CUPL ............................................... A-3
A.2.1 CARACTERISTICAS ....................................... A-4
A.2.2 ARCHIVOS .............................................. A-5
A.2.3 UTILIZACION ........................................... A-7
A.3 ARCHIVO DE DESCRIPCION ..................................... A-8
A.3.1 SECCION DE IDENTIFICACION ............................. A-9
A.3.2 SECCION DE DEFINICION ................................ A-10
A.3.3 SECCION DE ECUACIONES ................................ A-11
A.3.3.1 EXPRESIONES ..................................... A-13
A.3.3.2 OPERACIONES EN CONJUNTOS ........................ A-14
(a) CAMPOS ........................................... A-14
(b) OPERADOR DE IGUALDAD ............................. A-15
(c) RANGO ............................................ A-16
A.3.3.3 TABLA DE VERDAD ................................. A-16
A.3.3.4 COMANDO CONDITION ............................... A-17
A.3.3.5 MAQUINAS DE ESTADO .............................. A-18
A.4 SIMULADOR ................................................. A-21
A.4.1 SECCION DE IDENTIFICACION ............................ A-21
A.4.2 SECCION DE ORDENAMIENTO .............................. A-22
A.4.3 SECCION DE VECTORES .................................. A-22
A.4.4 OPCIONES ............................................. A-24
A.5 PROCEDIMIENTO ............................................. A-27
A.6 DISEOS ................................................... A-28
A.6.1 TARJETA PRINCIPAL .................................... A-28
A.6.1.1 IODECODE ........................................ A-29
(a) DESCRIPCION LOGICA DE IODECODE ................... A-31
(b) ARCHIVO DE SIMULACION DE IODECODE ................ A-33
(c) RESULTADOS DE IODECODE ........................... A-34
A.6.1.2 WAIT2 ........................................... A-35
(a) DESCRIPCION LOGICA DE WAIT2 ...................... A-37
(b) ARCHIVO DE SIMULACION DE WAIT2 ................... A-39
(c) RESULTADOS DE WAIT2 .............................. A-41
A.6.2 TARJETA DE EXPANSION ................................. A-43
A.6.2.1 EXP_DEC ......................................... A-44
(a) DESCRIPCION LOGICA DE EXP_DEC .................... A-45
(b) ARCHIVO DE SIMULACION DE EXP_DEC ................. A-47
(c) RESULTADOS DE EXP_DEC ............................ A-48
A.6.2.2 EXP_GLUE ........................................ A-49
(a) DESCRIPCION LOGICA DE EXP_GLUE ................... A-51
(b) ARCHIVO DE SIMULACION DE EXP_GLUE ................ A-53
(c) RESULTADOS DE EXP_GLUE ........................... A-54
A.6.3 EXPANSION DE MEMORIA ................................. A-55
A.6.3.1 DESCRIPCION LOGICA DE RAM_EXP ................... A-56
A.6.3.2 ARCHIVO DE SIMULACION DE RAM_EXP ................ A-58
A.6.3.3 RESULTADOS DE RAM_EXP ........................... A-59
A.7 CONCLUSIONES .............................................. A-60
A.8 REFERENCIAS ............................................... A-61
2
A.1 INTRODUCCION
estos son circuitos integrados, los cuales son programables, que constan
entre si.
1
TTL = Transistor Transistor Logic
2
CMOS = Complementary Metal Oxide Semiconductor
3
Un PLD consume un promedio de 100mA @ 5V, mientras que tres dispositivos
de la familia TTL consumen un promedio de xxxmA @ 5V.
4
PLD = Programable Logic Device
5
Se le llama mapa de fusibles como el de las memorias PROM, aunque su
construccin no utilice fusibles (luz ultravioleta UV-PLD o elctricamente
borrable EE-PLD).
A-3
6
CUPL = Universal Compiler for Programable Logic
A-4
A.2.1 CARACTERISTICAS
-Aplicabilidad Universal
CUPL soporta los productos de todos las casas fabricantes de PLD, y
distintos dispositivos.
-Documentacin Flexible
CUPL le permite documentar extensamente su diseo, adems que la
-Simplificador y Simulador
CUPL le proporciona cuatro niveles de simplificacin de ecuaciones
7
Un circuito donde la salida es funcion del estado de la maquina y las
entradas del circuito.
8
Un circuito donde la salida es funcion solamente del estado de la maquina.
A-5
A.2.2 ARCHIVOS
archivo ms (*.SI).
sistema CUPL.
A-6
Archivos de Entrada.
*.PLD Archivo con las descripciones lgicas.
*.SI Archivo con valores esperados (para simulador).
Archivos Intermedios
*.ABS Archivo generado por CUPL, para ser usado por CSIM.
Archivos de Salida
*.LST Archivo con listado de errores
*.DOC Archivo con documentacin
*.SO Archivo con resultado de la simulacin
A.2.3 UTILIZACION
library:
Nombre de archivo de la libreria a utilizar. Solo cuando se
device:
Nombre del dispositivo a utilizar. Solo cuando no se especifica el
dispositivo, en el archivo *.PLD .
source:
Nombre del archivo a compilarse (*.PLD) .
descripcion logica.
C:>cupl -j test
Luego de esto cuando no se encuentran ms errores se simule y
minimize la descripcion logica con la siguiente lnea de comando.
reservadas.
& # ( ) -
* + [ ] /
: . .. /* */
; , ! ' =
@ $ ^
compuesta por hasta nueve datos como el nombre del diseo, nmero de
el diseo.
Ejemplo:
Name IODECODE;
Partno None;
Date 03/09/92;
Revision 01;
Designer Lambrano;
Company LOGITAL;
Assembly PC Memory;
Location U11;
Device P16L8; <=== Indica que se esta utilizando un PAL16L8
cierta cuando, sus dos variables son ciertas (notese que nos referimos a
ciertas y no a uno '1'). Para que una variable sea cierta, su nivel
A-10
logico ('0' '1') debe coincidir con su nivel activo definido. ('0' para
activo bajo y '1'para activo alto). El formato de la declaracion PIN, es
el siguiente:
Donde:
variable.
[pin_n1...pin_nx]
= Operador de igualdad
[var1...varx]
Ejemplo:
/** Entradas **/ <=== Solo comentarios
Not ! B = !A
OR # C = A # B
XOR $ C = A $ B
[!]var[.ext] = exp;
Donde:
! Operador de complemento.
= Operador de igualdad.
Ejemplo:
/** Declaracion de Variables Intermedias **/
A.3.3.1 EXPRESIONES
ser entre un conjunto y una variable, o entre dos conjuntos. Por ejemplo:
Es igual a:
(a) CAMPOS
= Operador de igualdad.
Ejemplo:
FIELD CUENTA = [Q0,Q1,Q2,Q3];
FIELD CUENTA = [Q0..3];
FIELD DIR = [A4..9];
etc.
crea una comparacion bit por bit, entre un conjunto de variables y una
field_var:constante;
Donde:
variables (hexadecimal).
Ejemplo:
OK = [Q0,Q1,Q2,Q3]:9;
CS = DIR:3F;
A-15
(c) RANGO
variables (hexadecimal).
Ejemplo
OK = [Q0,Q1,Q2,Q3]:[9..C];
CS = DIR:[30..3F];
Ejemplo:
FIELD entrada = [IN2..0];
FIELD salida = [OUT7..0];
TABLE entrada => salida {
0 => 0F;
1 => F0;
2 => 34;
3 => 1F;
4 => F1;
5 => 34;
6 => F2;
7 => 34;
}
CONDITION {
...
Donde:
de salida.
SEQUENCE field_var {
PRESENT state_n1
NEXT state_n2;
PRESENT state_n3
...
IF expr NEXT state_n4 OUT [!]var3 OUT [!]var4;
}
Donde:
campo field_var.
de salida.
$Define S0 0
$Define S1 1
$Define S2 2
$Define S3 3
SEQUENCE count {
PRESENT S0 NEXT S1;
PRESENT S1 NEXT S2;
PRESENT S2 NEXT S3;
PRESENT S3 NEXT S0;
}
$Define S0 0
$Define S1 1
$Define S2 2
$Define S3 3
FIELD count = [Q1,Q0];
SEQUENCE count {
PRESENT S0
IF UP NEXT S1;
IF !UPNEXT S3;
PRESENT S1
IF UP NEXT S2;
IF !UPNEXT S0;
PRESENT S2
IF UP NEXT S3;
IF !UPNEXT S1;
PRESENT S3
IF UP NEXT S0;
A-19
IF !UPNEXT S2;
}
A.4 SIMULADOR
Esta seccion esta compuesta por datos como el nombre del diseo,
Name IODECODE;
Partno None;
Date 03/09/92;
Revision 01;
Designer Lambrano;
Company LOGITAL;
Assembly PC Memory;
Location U11;
Device P16L8; <=== Indica que se esta utilizando un PAL16L8
ORDER:
var1, {%X}, {"comentario"}, var2, ... varn;
Donde
en la simulacion.
descripcion logica.
Ejemplo:
ORDER:
A11, %2, A10, %2, A9, %2, A8, %2, A7, %2, A6, %2, A5, %2,
A4, %2, IO, %2, !wr, %4, !cs_8259, %2, !cs_8253, %2,
!cs_8255, %2, !cs_8251, %2, !cs_923, %2, cs_8116, %2,
!io_wr, %2, !mem_wr;
de ordenamiento.
Los valores que se pueden colocar en cada columna estan definidos
en la tabla A.5. Si un valor no esperado, aparece en la simulacion, el
Ejemplo:
VECTORS:
X X X X X X X X 0 1 * * * * * * * *
0 0 0 0 0 0 1 0 1 1 * * * * * * * *
0 0 0 0 0 1 0 0 1 1 * * * * * * * *
0 0 0 0 0 1 1 0 1 1 * * * * * * * *
0 0 1 1 1 1 1 1 1 1 L Z H * * * * *
1 1 1 1 0 1 0 0 1 1 * * * * * * * *
A.4.4 OPCIONES
$MSG:
Esta opcion permite incluir en el archivo de salida (*.SO),
cualquier mensaje, con propositos de documentacion o aclaracion.
Ejemplo:
VECTOR:
$REPEAT n:
Esta opcion causa la repeticion n-veces del siguiente vector
Ejemplo:
VECTOR:
$MSG "Probando el CS del 8253";
$REPEAT 3;
0 0 0 0 0 1 0 0 1 1 * * * * * * * *
$TRACE n:
Este comando ajusta la cantidad de informacion que el simulador
Nivel N = 0: (normal)
Solamente incluye el resultado de la prueba de los vectores. Este
es el nivel que normalmente se utiliza, a menos que se encuentren errores
y se desee verificar valores intermedios en el pulso del reloj (antes,
Nivel N = 1:
Cuando se utiliza, retroalimentacion de circuitos combinatorios (no
basculadores) el valor retroalimentado es desconocido en la primera
evaluacion del vector. Si el nuevo valor retroalimentado cambia, alguna
A-23
Nivel N = 2:
El nivel N = 2, identifica tres faces de simulacion para diseos
segunda fase es "en el reloj", donde los valores de los basculadores son
Nivel N = 3:
Este nivel provee la maxima informacion del simulador. Cada fase
Ejemplo:
VECTOR:
$MSG "Probando el CS del 8253";
$TRACE 2;
0 0 0 0 0 1 0 0 1 1 * * * * * * * *
$EXIT:
Esta instruccion termina la simulacion, en cualquier punto. Los
A-24
Ejemplo:
VECTOR:
0 0 0 0 0 1 0 0 1 1 * * * * * * * *
$EXIT;
0 0 0 0 0 1 0 1 0 1 * * * * * * * *
0 1 0 1 0 1 0 1 0 1 * Z * * * H * *
A-25
A.5 PROCEDIMIENTO
genere errores.
A.6 DISEOS
didactico SD-88.
Presentaremos el diagrama equivalente, los archivos de descripcion
(*.PLD), los archivos de simulacion (*.SI), el resultado de la simulacion
y el diagrama del dispositivo.
perifericos.
PAL16L8 10 --- 6 2
PAL16R4 8 4 4 ---
PAL16R6 8 6 2 ---
A.6.1.1 IODECODE
de 16bytes.
el maximo numero de salidas con que consta el PAL16L8, por lo tanto nos
quedan solo diez (10) pines de entrada que debemos utilizar. De los diez
(10) pines de entrada, tomamos dos (2), para generar las seales io_wr &
mem_wr, con las seales IO/m & wr. Los otros ocho pines de entrada los
utilizamos para el bus de direcciones, de A11 a A4, los que nos permite
seleccionar cualquier localidad desde X000H hasta XFFFh, con una
resolucion de 16Bytes osea, un banco puede ser 000h-00Fh y el otro
IODECODE
A-29
Name IODECODE;
Partno None;
Date 03/09/92;
Revision 01;
Designer Lambrano;
Company LOGITAL;
Assembly SD88;
Location U11;
Device P16L8;
/*********************************************************/
/* */
/* Este dispositivo genera las senales de seleccion para */
/* 8253, 8255, 8251, 74C923, 8116, 8259 ademas de las */
/* senales io_wr, mem_wr */
/* IO AND wr ==> io_wr */
/* !IO AND wr ==> mem_wr */
/* */
/*********************************************************/
/*********************************************************/
/* */
/* Pines de entrada */
/* */
/*********************************************************/
/*********************************************************/
/* */
/* Pines de Salida */
/* */
/*********************************************************/
/*********************************************************/
/* */
/* Variables Intermedias */
/* */
/*********************************************************/
/*********************************************************/
/* */
/* Ecuaciones Logicas */
/* */
/*********************************************************/
Name IODECODE;
Partno None;
Date 03/09/92;
Revision 01;
Designer Lambrano;
Company LOGITAL;
Assembly SD88;
Location U11;
Device P16L8;
/*********************************************************/
/* */
/* Este dispositivo genera las senales de seleccion para */
/* 8253, 8255, 8251, 74C923, 8116, 8259 ademas de las */
/* senales io_wr, mem_wr */
/* IO AND wr ==> io_wr */
/* !IO AND wr ==> mem_wr */
/* */
/*********************************************************/
/*********************************************************/
/* */
/* Definicion del Ordenamiento */
/* */
/*********************************************************/
ORDER:
A11, %2, A10, %2, A9, %2, A8, %2, A7, %2, A6, %2, A5, %2,
A4, %2, IO, %2, !wr, %4, !cs_8259, %2, !cs_8253, %2,
!cs_8255, %2, !cs_8251, %2, !cs_923, %2, cs_8116, %2,
!io_wr, %2, !mem_wr;
/*********************************************************/
/* */
/* Vectores de prueba */
/* */
/*********************************************************/
VECTORS:
/* 123456-Dejar seis espacios para los numeros de linea *.SO */
$msg " ! ! ! ! ";
$msg " 8 8 8 8 ! 8 !";
$msg " 2 2 2 2 9 1 ! m";
$msg " 5 5 5 5 2 1 i e";
$msg " 9_ 3 5 1 3 6 o m";
$msg " A A A A A A A A ! _ _ _ _ _ _ _ _";
$msg " 1 1 0 0 0 0 0 0 I w c c c c c c w w";
$msg " 1 0 9 8 7 6 5 4 O r s s s s s s r r";
$msg " ____________________________ ______________________";
$msg " Encendido ";
X X X X X X X X 0 1 * * * * * * * *
$msg " 8259 ";
0 0 0 0 0 0 1 0 1 1 * * * * * * * *
$msg " 8253 ";
0 0 0 0 0 1 0 0 1 1 * * * * * * * *
$msg " 8255 ";
0 0 0 0 0 1 1 0 1 1 * * * * * * * *
$msg " 8251 ";
0 0 1 1 1 1 1 1 1 1 * * * * * * * *
$msg " 74C923 ";
1 1 1 1 0 1 0 0 1 1 * * * * * * * *
$msg " 8116 ";
1 1 1 1 1 X X X 1 1 * * * * * * * *
1 1 1 1 1 X X X 1 0 * * * * * * * *
1 1 1 1 1 X X X 1 1 * * * * * * * *
$msg " !io_wr ";
X X X X X X X X 1 0 * * * * * * * *
$msg " !mem_wr ";
X X X X X X X X 0 0 * * * * * * * *
______________
| IODECODE |
A4 x---|1 20|---x Vcc
A5 x---|2 19|---x !mem_wr
A6 x---|3 18|---x !io_wr
A7 x---|4 17|---x cs_8116
A8 x---|5 16|---x !cs_923
A9 x---|6 15|---x !cs_8251
A10 x---|7 14|---x !cs_8255
A11 x---|8 13|---x !cs_8253
IO x---|9 12|---x !cs_8259
GND x---|10 11|---x !wr
|______________|
===============================================================================
Simulation Results
===============================================================================
A-31
! ! ! !
8 8 8 8 ! 8 !
2 2 2 2 9 1 ! m
5 5 5 5 2 1 i e
9_ 3 5 1 3 6 o m
A A A A A A A A ! _ _ _ _ _ _ _ _
1 1 0 0 0 0 0 0 I w c c c c c c w w
1 0 9 8 7 6 5 4 O r s s s s s s r r
____________________________ ______________________
Encendido
0001: X X X X X X X X 0 1 H H H H H L H H
8259
0002: 0 0 0 0 0 0 1 0 1 1 L H H H H L H H
8253
0003: 0 0 0 0 0 1 0 0 1 1 H L H H H L H H
8255
0004: 0 0 0 0 0 1 1 0 1 1 H H L H H L H H
8251
0005: 0 0 1 1 1 1 1 1 1 1 H H H L H L H H
74C923
0006: 1 1 1 1 0 1 0 0 1 1 H H H H L L H H
8116
0007: 1 1 1 1 1 X X X 1 1 H H H H H L H H
0008: 1 1 1 1 1 X X X 1 0 H H H H H H L H
0009: 1 1 1 1 1 X X X 1 1 H H H H H L H H
!io_wr
0010: X X X X X X X X 1 0 X X X X X X L H
!mem_wr
0011: X X X X X X X X 0 0 H H H H H L H L
A.6.1.2 WAIT2
32Kbytes.
por lo tanto nos quedan solo diez (10) pines de entrada que debemos
utilizar.
De los diez (10) pines de entrada, tomamos dos (2), para generar
las seales io_rd & mem_rd, con las seales IO/m & rd. De los otros ocho
pines de entrada utilizamos cinco (5) para el bus de direcciones, de A19
a A15, los que nos permite seleccionar cualquier localidad desde 00000H
hasta FFFFFh, con una resolucion de 32KBytes osea, un banco puede ser
00000h-07FFFh y el otro 08000h-0FFFFh, sin coincidir. De las tres
entradas restantes utilizamos una para el reloj del micro, una para
Name WAIT2;
Partno None;
Date 03/09/92;
Revision 01;
Designer Lambrano;
Company LOGITAL;
Assembly SD88;
Location U10;
Device P16R4;
/*********************************************************/
/* */
/* Este dispositivo genera las senales de seleccion para */
/* el RAM y EPROM. Incerta dos estados de espera cuando */
/* se seleccionan dispositivos perifericos (IO/m = 1) y */
/* genera las senales io_rd y mem_rd. */
/* IO AND wr ==> io_wr */
/* !IO AND wr ==> mem_wr */
/* */
/*********************************************************/
/*********************************************************/
/* */
/* Pines de entrada */
/* */
/*********************************************************/
/*********************************************************/
/* */
/* Pines de Salida */
/* */
/*********************************************************/
/*********************************************************/
/* */
/* Variables Intermedias */
/* */
/*********************************************************/
/*********************************************************/
/* */
/* Ecuaciones Logicas */
/* */
/*********************************************************/
Name WAIT2;
Partno None;
Date 03/09/92;
Revision 01;
Designer Lambrano;
Company LOGITAL;
Assembly SD88;
Location U10;
Device P16R4;
/*********************************************************/
/* */
/* Este dispositivo genera las senales de seleccion para */
/* el RAM y EPROM. Incerta dos estados de espera cuando */
/* se seleccionan dispositivos perifericos (IO/m = 1) y */
/* genera las senales io_rd y mem_rd. */
/* IO AND wr ==> io_wr */
/* !IO AND wr ==> mem_wr */
/* */
/*********************************************************/
/*********************************************************/
/* */
/* Definicion del Ordenamiento */
/* */
/*********************************************************/
ORDER:
CPU_CLK, %2, A19, %2, A18, %2, A17, %2, A16, %2, A15, %2,
!rd, %2, IO_RDY, %2, IO, %2, !oe,
%4, !rom_cs, %2, !ram_cs, %2, WAIT1, %2, WAIT2,
%2, RDY, %2, !mem_rd, %2, !io_rd;
/*********************************************************/
/* */
/* Vectores de prueba */
/* */
/*********************************************************/
VECTORS:
/* 123456-Dejar seis espacios para los numeros de linea *.SO */
$msg " ";
$msg " c ! ! ";
$msg " p I r r m ";
$msg " u O o a W W e i";
$msg " _ _ m m A A m o";
$msg " c a a a a a ! R ! _ _ I I R _ _";
$msg " l 1 1 1 1 1 r D I o c c T T D r r";
$msg " k 9 8 7 6 5 d Y O e s s 1 2 Y d d";
$msg " ____________________________ ___________________";
$msg " Encendido ";
0 X X X X X 1 1 0 0 * * * * * * *
$msg " Establecimiento de basculadores ";
$repeat 3;
C X X X X X 1 1 0 0 * * * * * * *
$msg " 32 Bancos de memoria del 00000h, 08000h al FFFFFh ";
C 0 0 0 0 0 1 1 0 0 * * * * * * *
C 0 0 0 0 1 1 1 0 0 * * * * * * *
C 0 0 0 1 0 1 1 0 0 * * * * * * *
C 0 0 0 1 1 1 1 0 0 * * * * * * *
C 0 0 1 0 0 1 1 0 0 * * * * * * *
C 0 0 1 0 1 1 1 0 0 * * * * * * *
C 0 0 1 1 0 1 1 0 0 * * * * * * *
C 0 0 1 1 1 1 1 0 0 * * * * * * *
C 0 1 0 0 0 1 1 0 0 * * * * * * *
C 0 1 0 0 1 1 1 0 0 * * * * * * *
C 0 1 0 1 0 1 1 0 0 * * * * * * *
C 0 1 0 1 1 1 1 0 0 * * * * * * *
C 0 1 1 0 0 1 1 0 0 * * * * * * *
C 0 1 1 0 1 1 1 0 0 * * * * * * *
C 0 1 1 1 0 1 1 0 0 * * * * * * *
C 0 1 1 1 1 1 1 0 0 * * * * * * *
C 1 0 0 0 0 1 1 0 0 * * * * * * *
C 1 0 0 0 1 1 1 0 0 * * * * * * *
C 1 0 0 1 0 1 1 0 0 * * * * * * *
C 1 0 0 1 1 1 1 0 0 * * * * * * *
C 1 0 1 0 0 1 1 0 0 * * * * * * *
C 1 0 1 0 1 1 1 0 0 * * * * * * *
C 1 0 1 1 0 1 1 0 0 * * * * * * *
C 1 0 1 1 1 1 1 0 0 * * * * * * *
A-35
C 1 1 0 0 0 1 1 0 0 * * * * * * *
C 1 1 0 0 1 1 1 0 0 * * * * * * *
C 1 1 0 1 0 1 1 0 0 * * * * * * *
C 1 1 0 1 1 1 1 0 0 * * * * * * *
C 1 1 1 0 0 1 1 0 0 * * * * * * *
C 1 1 1 0 1 1 1 0 0 * * * * * * *
C 1 1 1 1 0 1 1 0 0 * * * * * * *
C 1 1 1 1 1 1 1 0 0 * * * * * * *
$msg " Estados de espera para perifericos ";
$repeat 8;
C X X X X X 1 1 1 0 * * * * * * *
$msg " Estados de espera para dispositivos del BUS IBM-XT ";
$repeat 8;
C X X X X X 1 0 0 0 * * * * * * *
$msg " mem_rd ";
0 X X X X X 0 1 0 0 * * * * * * *
$msg " io_rd ";
0 X X X X X 0 1 1 0 * * * * * * *
===============================================================================
Chip Diagram
===============================================================================
______________
| WAIT2 |
CPU_CLK x---|1 20|---x Vcc
A15 x---|2 19|---x !mem_rd
A16 x---|3 18|---x !io_rd
A17 x---|4 17|---x
A18 x---|5 16|---x RDY
A19 x---|6 15|---x WAIT2
!rd x---|7 14|---x WAIT1
IO_RDY x---|8 13|---x !ram_cs
IO x---|9 12|---x !rom_cs
GND x---|10 11|---x !oe
|______________|
===============================================================================
Simulation Results
===============================================================================
c ! !
p I r r m
u O o a W W e i
_ _ m m A A m o
c a a a a a ! R ! _ _ I I R _ _
l 1 1 1 1 1 r D I o c c T T D r r
k 9 8 7 6 5 d Y O e s s 1 2 Y d d
____________________________ ___________________
Encendido
0001: 0 X X X X X 1 1 0 0 X X X X X H H
Establecimiento de basculadores
0002: C X X X X X 1 1 0 0 X X L X H H H
0003: C X X X X X 1 1 0 0 X X L L H H H
0004: C X X X X X 1 1 0 0 X X L L H H H
32 Bancos de memoria del 00000h, 08000h al FFFFFh
0005: C 0 0 0 0 0 1 1 0 0 H L L L H H H
0006: C 0 0 0 0 1 1 1 0 0 H H L L H H H
0007: C 0 0 0 1 0 1 1 0 0 H H L L H H H
0008: C 0 0 0 1 1 1 1 0 0 H H L L H H H
0009: C 0 0 1 0 0 1 1 0 0 H H L L H H H
0010: C 0 0 1 0 1 1 1 0 0 H H L L H H H
0011: C 0 0 1 1 0 1 1 0 0 H H L L H H H
0012: C 0 0 1 1 1 1 1 0 0 H H L L H H H
0013: C 0 1 0 0 0 1 1 0 0 H H L L H H H
0014: C 0 1 0 0 1 1 1 0 0 H H L L H H H
0015: C 0 1 0 1 0 1 1 0 0 H H L L H H H
0016: C 0 1 0 1 1 1 1 0 0 H H L L H H H
0017: C 0 1 1 0 0 1 1 0 0 H H L L H H H
0018: C 0 1 1 0 1 1 1 0 0 H H L L H H H
0019: C 0 1 1 1 0 1 1 0 0 H H L L H H H
0020: C 0 1 1 1 1 1 1 0 0 H H L L H H H
0021: C 1 0 0 0 0 1 1 0 0 H H L L H H H
0022: C 1 0 0 0 1 1 1 0 0 H H L L H H H
0023: C 1 0 0 1 0 1 1 0 0 H H L L H H H
0024: C 1 0 0 1 1 1 1 0 0 H H L L H H H
0025: C 1 0 1 0 0 1 1 0 0 H H L L H H H
0026: C 1 0 1 0 1 1 1 0 0 H H L L H H H
0027: C 1 0 1 1 0 1 1 0 0 H H L L H H H
0028: C 1 0 1 1 1 1 1 0 0 H H L L H H H
0029: C 1 1 0 0 0 1 1 0 0 H H L L H H H
0030: C 1 1 0 0 1 1 1 0 0 H H L L H H H
0031: C 1 1 0 1 0 1 1 0 0 H H L L H H H
0032: C 1 1 0 1 1 1 1 0 0 H H L L H H H
0033: C 1 1 1 0 0 1 1 0 0 H H L L H H H
0034: C 1 1 1 0 1 1 1 0 0 H H L L H H H
0035: C 1 1 1 1 0 1 1 0 0 L H L L H H H
0036: C 1 1 1 1 1 1 1 0 0 L H L L H H H
Estados de espera para perifericos
0037: C X X X X X 1 1 1 0 H H H L H H H
0038: C X X X X X 1 1 1 0 H H H H H H H
A-36
0039: C X X X X X 1 1 1 0 H H H H L H H
0040: C X X X X X 1 1 1 0 H H H L L H H
0041: C X X X X X 1 1 1 0 H H H L H H H
0042: C X X X X X 1 1 1 0 H H H H H H H
0043: C X X X X X 1 1 1 0 H H H H L H H
0044: C X X X X X 1 1 1 0 H H H L L H H
Estados de espera para dispositivos del BUS IBM-XT
0045: C X X X X X 1 0 0 0 X X H L H H H
0046: C X X X X X 1 0 0 0 X X H H H H H
0047: C X X X X X 1 0 0 0 X X H H L H H
0048: C X X X X X 1 0 0 0 X X H L L H H
0049: C X X X X X 1 0 0 0 X X H L H H H
0050: C X X X X X 1 0 0 0 X X H H H H H
0051: C X X X X X 1 0 0 0 X X H H L H H
0052: C X X X X X 1 0 0 0 X X H L L H H
mem_rd
0053: 0 X X X X X 0 1 0 0 X X H L L L H
io_rd
0054: 0 X X X X X 0 1 1 0 H H H L L H L
experimentacion).
2. Generacion de seis seales (cso, wro, rdo, INT1, INT2 & SQT).
A.6.2.1 EXP_DEC
de 16bytes.
A-37
dispositivo EXP_DEC.
dejar documentacion de su
USR3 570..57F 570..57F
descripcion logica.
Name EXP_DEC;
Partno None;
Date 17/09/92;
Revision 01;
Designer Lambrano;
Company LOGITAL;
Assembly SD88 TARJETA DE EXPANSION;
Location U11;
Device P16L8;
/*********************************************************/
/* */
/* Este dispositivo genera las senales de seleccion para */
/* 8251, 8253, 8255, ADC, DAC, USER1, USER2, USER3 */
/* */
/*********************************************************/
/*********************************************************/
/* */
/* Pines de entrada */
/* */
/*********************************************************/
/*********************************************************/
/* */
/* Pines de Salida */
/* */
/*********************************************************/
/*********************************************************/
/* */
/* Variables Intermedias */
/* */
/*********************************************************/
/*********************************************************/
/* */
/* Ecuaciones Logicas */
/* */
/*********************************************************/
A-39
Name EXP_DEC;
Partno None;
Date 17/09/92;
Revision 01;
Designer Lambrano;
Company LOGITAL;
Assembly SD88 TARJETA DE EXPANSION;
Location U11;
Device P16L8;
/*********************************************************/
/* */
/* Este dispositivo genera las senales de seleccion para */
/* 8251, 8253, 8255, ADC, DAC, USER1, USER2, USER3 */
/* */
/*********************************************************/
/*********************************************************/
/* */
/* Definicion del Ordenamiento */
/* */
/*********************************************************/
ORDER:
A11, %2, A10, %2, A9, %2, A8, %2, A7, %2, A6, %2, A5, %2,
A4, %2, IO, %4, !cs_51, %2, !cs_53, %2,!cs_55, %2, !cs_AD,
%2, !cs_DA, %2, !cs_usr1, %2, !cs_usr2, %2, !cs_usr3;
/*********************************************************/
/* */
/* Vectores de prueba */
/* */
/*********************************************************/
VECTORS:
/* 123456-Dejar seis espacios para los numeros de linea *.SO */
$msg " ! ! !";
$msg " c c c";
$msg " ! ! ! ! ! s s s";
$msg " c c c c c _ _ _";
$msg " s s s s s u u u";
$msg " A A A A A A A A _ _ _ _ _ s s s";
$msg " 1 1 0 0 0 0 0 0 I 5 5 5 A D r r r";
$msg " 1 0 9 8 7 6 5 4 O 1 3 5 D A 1 2 3";
$msg " _________________________ ______________________";
$msg " Probar las localidades del 500h al 57Fh ";
0 1 0 1 0 0 0 0 1 * * * * * * * *
0 1 0 1 0 0 0 1 1 * * * * * * * *
0 1 0 1 0 0 1 0 1 * * * * * * * *
0 1 0 1 0 0 1 1 1 * * * * * * * *
0 1 0 1 0 1 0 0 1 * * * * * * * *
0 1 0 1 0 1 0 1 1 * * * * * * * *
0 1 0 1 0 1 1 0 1 * * * * * * * *
0 1 0 1 0 1 1 1 1 * * * * * * * *
===============================================================================
A-40
Chip Diagram
===============================================================================
______________
| EXP_DEC |
A4 x---|1 20|---x Vcc
A5 x---|2 19|---x !cs_usr3
A6 x---|3 18|---x !cs_usr2
A7 x---|4 17|---x !cs_usr1
A8 x---|5 16|---x !cs_DA
A9 x---|6 15|---x !cs_AD
A10 x---|7 14|---x !cs_55
A11 x---|8 13|---x !cs_53
IO x---|9 12|---x !cs_51
GND x---|10 11|---x
|______________|
===============================================================================
Simulation Results
===============================================================================
! ! !
c c c
! ! ! ! ! s s s
c c c c c _ _ _
s s s s s u u u
A A A A A A A A _ _ _ _ _ s s s
1 1 0 0 0 0 0 0 I 5 5 5 A D r r r
1 0 9 8 7 6 5 4 O 1 3 5 D A 1 2 3
_________________________ ______________________
Probar las localidades del 500h al 57Fh
0001: 0 1 0 1 0 0 0 0 1 L H H H H H H H
0002: 0 1 0 1 0 0 0 1 1 H L H H H H H H
0003: 0 1 0 1 0 0 1 0 1 H H L H H H H H
0004: 0 1 0 1 0 0 1 1 1 H H H L H H H H
0005: 0 1 0 1 0 1 0 0 1 H H H H L H H H
0006: 0 1 0 1 0 1 0 1 1 H H H H H L H H
0007: 0 1 0 1 0 1 1 0 1 H H H H H H L H
0008: 0 1 0 1 0 1 1 1 1 H H H H H H H L
A.6.2.2 EXP_GLUE
RXRDY;
4. Generacion de la seal SQT a partir de las seales cd & ORIG.
seales (cd & O/A). Esto nos da un total de nueve (9), entredas dejando
de utilizar en este dispositivo tres (3) pines.
Este dispositivo, realiza basicamente cuatro funciones, dos
A-41
rdo sean exatamente iguales que las seales csi, wri & rdi
conversion.
ring (activa baja) con la seal RXRDY (activa alta), para generar la
del otro MODEM; cuando O/a = 1, significa que el MODEM local esta
originando la transmision. El unico momento en que se desea tener
desabilitado el transmisor (para recibir mejor la portadora del otro
Name EXP_GLUE;
Partno None;
Date 17/09/92;
Revision 01;
Designer Lambrano;
Company LOGITAL;
Assembly SD88 TARJETA DE EXPANSION;
Location U5;
Device P16L8;
/*********************************************************/
/* */
/* Este dispositivo genera las siguientes senales */
/* */
/* CONV + csi + wri + rdi ==> cso + wro + rdo */
/* int ==> INT1 */
/* ring + RXRDY ==> INT2 */
/* cd + O/a ==> SQT */
/* */
A-43
/*********************************************************/
/*********************************************************/
/* */
/* Pines de entrada */
/* */
/*********************************************************/
/*********************************************************/
/* */
/* Pines de Salida */
/* */
/*********************************************************/
/*********************************************************/
/* */
/* Ecuaciones Logicas */
/* */
/*********************************************************/
INT1 = !int;
Name EXP_GLUE;
Partno None;
Date 17/09/92;
Revision 01;
Designer Lambrano;
Company LOGITAL;
Assembly SD88 TARJETA DE EXPANSION;
Location U5;
Device P16L8;
/*********************************************************/
/* */
/* Este dispositivo genera las siguientes senales */
/* */
/* CONV + csi + wri + rdi ==> cso + wro + rdo */
/* int ==> INT1 */
/* ring + RXRDY ==> INT2 */
/* cd + O/a ==> SQT */
/* */
/*********************************************************/
/*********************************************************/
/* */
/* Definicion del Ordenamiento */
/* */
/*********************************************************/
ORDER:
CONV, %2, csi, %2, wri, %2, rdi, %2, int, %2, ring, %2, RXRDY
, %2, cd, %2, ORIG, %4, cso, %2, wro, %2, rdo, %2, INT1, %2,
INT2, %2, SQT;
/*********************************************************/
/* */
/* Vectores de prueba */
/* */
/*********************************************************/
A-44
VECTORS:
/* 123456-Dejar seis espacios para los numeros de linea *.SO */
$msg " ";
$msg " R ";
$msg " C r X O I I ";
$msg " O c w r i i R R c w r N N S";
$msg " N s r d n n D c I s r d T T Q";
$msg " V i i i t g Y d G o o o 1 2 T";
$msg " _________________________ ________________";
$msg " Probar cso, wro, rdo, con csi, wr1, rd1 ";
1 1 1 1 1 1 0 1 1 * * * * * *
1 0 1 1 1 1 0 1 1 * * * * * *
1 1 0 1 1 1 0 1 1 * * * * * *
1 1 1 0 1 1 0 1 1 * * * * * *
1 1 1 1 1 1 0 1 1 * * * * * *
$msg " Probar cso, wro, rdo, con CONV ";
1 1 1 1 1 1 0 1 1 * * * * * *
0 1 1 1 1 1 0 1 1 * * * * * *
1 1 1 1 1 1 0 1 1 * * * * * *
$msg " Probar INT1 ";
1 1 1 1 1 1 0 1 1 * * * * * *
1 1 1 1 0 1 0 1 1 * * * * * *
1 1 1 1 1 1 0 1 1 * * * * * *
$msg " Probar INT2 ";
1 1 1 1 1 1 0 1 1 * * * * * *
1 1 1 1 1 0 0 1 1 * * * * * *
1 1 1 1 1 1 0 1 1 * * * * * *
1 1 1 1 1 1 1 1 1 * * * * * *
1 1 1 1 1 1 0 1 1 * * * * * *
$msg " Probar SQT ";
1 1 1 1 1 1 0 0 0 * * * * * *
1 1 1 1 1 1 0 0 1 * * * * * *
1 1 1 1 1 1 0 1 0 * * * * * *
1 1 1 1 1 1 0 1 1 * * * * * *
===============================================================================
Chip Diagram
===============================================================================
______________
| EXP_GLUE |
CONV x---|1 20|---x Vcc
csi x---|2 19|---x SQT
wri x---|3 18|---x
rdi x---|4 17|---x INT2
int x---|5 16|---x INT1
ring x---|6 15|---x rdo
RXRDY x---|7 14|---x wro
cd x---|8 13|---x
ORIG x---|9 12|---x cso
GND x---|10 11|---x
|______________|
===============================================================================
Simulation Results
===============================================================================
R
C r X O I I
O c w r i i R R c w r N N S
N s r d n n D c I s r d T T Q
V i i i t g Y d G o o o 1 2 T
_________________________ ________________
Probar cso, wro, rdo, con csi, wr1, rd1
0001: 1 1 1 1 1 1 0 1 1 H H H L L H
0002: 1 0 1 1 1 1 0 1 1 L H H L L H
0003: 1 1 0 1 1 1 0 1 1 H L H L L H
0004: 1 1 1 0 1 1 0 1 1 H H L L L H
0005: 1 1 1 1 1 1 0 1 1 H H H L L H
Probar cso, wro, rdo, con CONV
0006: 1 1 1 1 1 1 0 1 1 H H H L L H
0007: 0 1 1 1 1 1 0 1 1 L L H L L H
0008: 1 1 1 1 1 1 0 1 1 H H H L L H
Probar INT1
0009: 1 1 1 1 1 1 0 1 1 H H H L L H
0010: 1 1 1 1 0 1 0 1 1 H H H H L H
0011: 1 1 1 1 1 1 0 1 1 H H H L L H
Probar INT2
0012: 1 1 1 1 1 1 0 1 1 H H H L L H
0013: 1 1 1 1 1 0 0 1 1 H H H L H H
0014: 1 1 1 1 1 1 0 1 1 H H H L L H
0015: 1 1 1 1 1 1 1 1 1 H H H L H H
0016: 1 1 1 1 1 1 0 1 1 H H H L L H
Probar SQT
0017: 1 1 1 1 1 1 0 0 0 H H H L L L
0018: 1 1 1 1 1 1 0 0 1 H H H L L L
0019: 1 1 1 1 1 1 0 1 0 H H H L L L
0020: 1 1 1 1 1 1 0 1 1 H H H L L H
A-45
direcciones.
El mapa de direcciones
Tabla A.10. Mapa de direcciones del
seleccionado para este dispositivo RAM_EXP
Dispositivo Localidades Banco
dispositivo se presenta en la RAM-1 08000..0FFFF 08000..0FFFF
lectura y escritura.
Name RAM_EXP;
Partno None;
Date 03/19/92;
Revision 01;
Designer Lambrano;
Company LOGITAL;
Assembly SD88 EXPANSION DE MEMORIA;
Location U4;
Device P16L8;
/*********************************************************/
/* */
/* Este dispositivo genera las senales de seleccion para */
/* siete memorias RAM y una memoria EEPROM. */
/* */
/*********************************************************/
/*********************************************************/
/* */
/* Pines de entrada */
/* */
/*********************************************************/
/*********************************************************/
/* */
/* Pines de Salida */
/* */
/*********************************************************/
/*********************************************************/
/* */
/* Variables Intermedias */
/* */
A-47
/*********************************************************/
/*********************************************************/
/* */
/* Ecuaciones Logicas */
/* */
/*********************************************************/
Name RAM_EXP;
Partno None;
Date 03/19/92;
Revision 01;
Designer Lambrano;
Company LOGITAL;
Assembly SD88 EXPANSION DE MEMORIA;
Location U4;
Device P16L8;
/*********************************************************/
/* */
/* Este dispositivo genera las senales de seleccion para */
/* siete memorias RAM y una memoria EEPROM. */
/* */
/*********************************************************/
/*********************************************************/
/* */
/* Definicion del Ordenamiento */
/* */
/*********************************************************/
ORDER:
A19, %2, A18, %2, A17, %2, A16, %2, A15, %2, IO,
%4, !cs1, %2, !cs2, %2, !cs3, %2, !cse, %2,
!cs4, %2, !cs5, %2, !cs6, %2, !cs7;
/*********************************************************/
/* */
/* Vectores de prueba */
/* */
/*********************************************************/
VECTORS:
/* 123456-Dejar seis espacios para los numeros de linea *.SO */
$msg " ";
$msg " A A A A A c c c c c c c c";
$msg " 1 1 1 1 1 I s s s s s s s s";
$msg " 9 8 7 6 5 O 1 2 3 e 4 5 6 7";
$msg " ________________ ______________________";
$msg " Probar las localidades del 00000h al 47FFFh";
0 0 0 0 0 0 * * * * * * * *
0 0 0 0 1 0 * * * * * * * *
0 0 0 1 0 0 * * * * * * * *
0 0 0 1 1 0 * * * * * * * *
0 0 1 0 0 0 * * * * * * * *
0 0 1 0 1 0 * * * * * * * *
0 0 1 1 0 0 * * * * * * * *
0 0 1 1 1 0 * * * * * * * *
0 1 0 0 0 0 * * * * * * * *
===============================================================================
Chip Diagram
===============================================================================
______________
| RAM_EXP |
A15 x---|1 20|---x Vcc
A16 x---|2 19|---x !cs7
A17 x---|3 18|---x !cs6
A18 x---|4 17|---x !cs5
A19 x---|5 16|---x !cs4
IO x---|6 15|---x !cse
x---|7 14|---x !cs3
x---|8 13|---x !cs2
x---|9 12|---x !cs1
GND x---|10 11|---x
|______________|
===============================================================================
Simulation Results
===============================================================================
A A A A A c c c c c c c c
1 1 1 1 1 I s s s s s s s s
9 8 7 6 5 O 1 2 3 e 4 5 6 7
________________ ______________________
Probar las localidades del 00000h al 47FFFh
0001: 0 0 0 0 0 0 H H H H H H H H
0002: 0 0 0 0 1 0 L H H H H H H H
0003: 0 0 0 1 0 0 H L H H H H H H
0004: 0 0 0 1 1 0 H H L H H H H H
0005: 0 0 1 0 0 0 H H H H L H H H
0006: 0 0 1 0 1 0 H H H H H L H H
0007: 0 0 1 1 0 0 H H H H H H L H
0008: 0 0 1 1 1 0 H H H H H H H L
0009: 0 1 0 0 0 0 H H H L H H H H
A.7 CONCLUSIONES
A.8 REFERENCIAS
Manual de CUPL
Logical Devices Inc.
Ver 1.00
1990
National
Programable Device Databook
....
Faltan...