Area de sistemas digitales



Descargar 64.55 Kb.
Fecha de conversión19.01.2017
Tamaño64.55 Kb.

BENEMERITA UNIVERSIDAD AUTONOMA DE PUEBLA
FACULTAD DE CIENCIAS DE LA ELECTRÓNICA




AREA DE SISTEMAS DIGITALES

SIMULADOR DLSIM (Digital Logic Simulator)

SOFTWARE

ORGANIZACION DE COMPUTADORAS


Abraham Eloy Cruz Machicado.

PRIMAVERA 2005




MANUAL DLSIM (DOS)
DL Sim es un simulador digital, el cual es utilizado internamente por el programma OPAL, es es un sistema de desarrollo de sistemas digitales basados en dispositivos programables PLDs.
Este programa es un simulador y no cuenta con un editor propio, aunque no es problema por que es posible usar alguno de los que nos proporciona la PC por mencionar algunos de los editores que podemos usar nombraremos:


  • Notpad (editor de notas)

  • Edit (Dos)

  • Editor de turbo C o cualquier otro compilador

  • Etc.


Simulador DLSIM (Digital Logic SIMulator).
Características.


  • Doce estados, manejador de eventos, análisis funcional y de tiempos .

  • Capacidad de 1,500 compuertas y 4,000 señales físicas.

  • Nivel de simulación digital de funcionamientos, compuertas y switchs.

  • Soporta buses de tercer estado, PLDS y ROMS.

  • Construye macros, generando directamente archivos PAL JEDEC.

  • Detección automática de picos y oscilaciones.

  • Compatible con Orcad y SCHEMA programas de captura esquemáticos.

  • Puede tomar entrada directamente de una descripción de archivos de circuito ASCII.

  • Permite disparos (gated) prueba vectores.

  • Imprime en HP LASERJET o impresora de matriz de punto de EPSON.

  • Interactivo con apoyo de ratón, para pantallas de EGA / VGA o Hercules.



Nuevos Caracteres Distintivos para versión 3


  • Los tiempos de simulación se pueden extender hasta 1, 000,000 pasos.

  • Grabación transitoria:

  • Solamente salidas transitorias, crea una pequeña lista en un archivo de salida.

  • Permite tiempos de retardo separados de rise_delay y fall_delay.

  • Permite entradas para compuertas primarios lógicas de nivel esquemático utilizando.

  • Carga reporte para todas las salidas.

  • Ahora soporta listas de información (netlist) PROTEL, SUPERCAD, TANGO & PCAD.



Las compuertas primarias de lógica combinacional son:
AND / NAND RAND / RNAND TAND / TNAND

OR / NOR ROR / RNOR TOR / TNOR


Cada uno de estas compuertas básicas pueden tener tantas entradas como sean requeridas las líneas de entrada pueden estar extendido con el carácter mas (+).
Las compuertas básicas lógicas de nivel más alto son:
DFF ; Flip-flop tipo ‘D’.

TFF ; Flip-flop tipo Toggle.

JKFF ; Flip-flop tipo JK.

MUX ; Multiplexor.

DLATCH ; Latch transparente.

ROM ; Memoria de solo lectura.

Los comentarios siguen un punto y coma; o $ en una línea.

La sintaxis: $ [String]

Acción: Añade comentarios a archivos o comandos.
*(Asterisco) En el archivo de circuito comienza un macro.

En archivo de lista significa un nivel lógico desconocido.

La sintaxis: *U1 7400 etc. (archivo de circuito).
+ (Carácter mas) Un carácter mas puede ser utilizado para extender líneas de probe, líneas de macros, líneas de entrada de compuerta.

LA ESTRUCTURA DEL BUS
La sintaxis: .BUS etiqueta node 1 node 2…

Un agrupamiento de nodos display numérico. Muestra gráficamente como una señal alta y baja con un valor numérico sobre puesto en la base especificada. Los valores están computados en el orden binario con los pesos de izquierda a derecha y alto y bajo. i.e. si N nodos están especificados, el nodo que esta a la izquierda tiene el valor 2**N. la base es Hexadecimal.


Los archivos de definición de circuito son normalmente (pero no necesariamente) identificados por la extensión .ckt. Contiene las especificaciones para construir un circuito. Cada línea lógica del archivo contiene un nombre básico, un nombre macro, o uno de las siguientes palabras clave como su primera palabra:
Todos los comandos del simulador comienzan con un punto.
.BELL Suena la campana cuando hay error.

.LIB Controla las librerías cuando son llamadas por el macro.

.ECHO Lista de red de trabajo (netlist).

.LIST Copia el netfile al archivo de salida.

.LOADING Contar la cantidad de entradas conectadas a cada salida.

.BUS Agrupamiento de señales para un desplegados numérico.

.ROM Construye una ROM de 256 x 32.

.PROBE EL conjunto de nodos, escalas, o los bus que son muestreados y desplegados.

.TIME Tiempo máximo de simulación.

.INIT_HI Inicia todos los valores en alto (normalmente desconocidos).

.INIT_LO inicia todos los valores en bajo (normalmente desconocidos).

.SCALE Sitúa el valor de un paso de tiempo.

.END Palabra clave para marcar el fin del archivo del circuito.
GLITCHES:
Cuando una entrada lógica de un elemento cambia de estado antes que la salida haya respondido a una entrada previa, cambia un glitch que será señalado y marca un lugar en la señal trazada en el tiempo apropiado. Solamente elementos lógicos retrasados pueden provocar glitches.
Formato de un archivo de entrada Filename.CKT.

$’$’ significa línea de comentarios y esta es ignorada excepto como abajo.

$ La primera línea de comentario en el archivo será la línea de titulo para el archivo de salida.

; Fin de línea. Después del punto y como todo será ignorado o tomado como comentario.

; Todas las líneas en blanco serán ignoradas.

‘.’ Comandos a simular.


Líneas de comienzo con un periodo son líneas de comando. (Periodo tiene que estar en el comienza de la línea).
.LIB Nombres de archivo [.LIB] [Nombre de archivo] [Nombre de archivo] selecciona el archivo de librería a ser llamado por lo macros. Estos pueden ser más de 10 librerías especificadas. Con cada archivo de biblioteca habrá otro archivo (Nombre de ARCHIVO.DIR en el mismo dir. Si el archivo. LIB esta mas arriba que la flecha de ARCHIVO.DIr el simulador remarcara el directorio archivo librería automáticamente. Una ruta de discos puede estar incluida en la misma librería, por ejemplo.

D:\WORK\TTL.


Muchos de librerías pueden ir en esa misma línea.
.BELL Suena una campana cuando hay error.

Nota: algunos de los errores que se encuentran antes de este interruptor no suena la campana así que esta línea debe estar en la parte superior del archivo del circuito.


.ECHO Le dice al simulador que imprima la netlist lógica en la pantalla.
.LIST Le dice al simulador que escriba la netlist lógica al archivo de salida. La salida de estado del simulador va siempre a un archivo con un mismo nombre que el archivo de circuito con la extensión .LST.
.BUS BUS_NAME sig15 sig14… sig0 (1 a 16 señales). Permite agrupamiento de señales en un BUS común que puede ser probado como cualquier otra señal. Buses puede estar en formato HEX. El nombre del BUS no puede ser usada como una compuerta de salida o externa. Las señales están agrupadas el MSB primero hasta 16 máximo (FFFF).

Las líneas de bus pueden ser extendido por el carácter. (+).


.TIME n0 n1

n0 es el tiempo final de la simulación. Máximo 32767(pasos de simulador).

n1 es el periodo de paso para la simulación.
.SCALE n.nnn.E-nn o n.nnn [base] [(base = ps, ns, us, ms).

El comando SCALE muestra el valor real de un paso de un tiempo de simulador para el programa DLVIEW {read outs}.

El número puede estar en formato exponencial o en decimal o con un argumento de opción base. Tiene que variar desde un pico segundo a un segundo por ejemplo: 1e-12 a 1.00e.g.
Una de cuatro tiempos de base mnemónicos puede estar suministrado. Ps, ns, us, ms.
i.e. [ps]=1e-12, [ns]=1e-9, [us]=1e-6 [ms]=1e-3.

e.g.


.scale 1.5 us

.scale 1.5e-6 (el mismo paso de tiempo que el anterior).


.PROBE SIGNAL_0… SIgnal_n EL comando de probe le dice al simulador que señal monitorear. Ahí tiene que ser al menos una señal monitoreada o la simulación abortara. Ahí puede haber muchas líneas .PROBE como se necesita un total de 128 señales monitoreadas.

Un periodo (‘.’) en la lista de la señal deja una línea blanca de la línea de señal. Las líneas de probe pueden ir en cualquier parte en el archivo y la misma señal (es) puede estar monitoreado tan a menudo como requerida para ayuda del display. E.g. clks.

Las líneas de probe pueden ser extendidas con el carácter (+).
.LOADING (lista todo el circuito de salida con la cantidad de entradas de conectadas).

Lo añade en el archivo .LST.


.ROM (256*16)

El nuevo comando ROM en el simulador, permite hasta ocho entradas de dirección, con hasta 16 señales de datos y hasta 256 ubicaciones conteniendo 0-ffff (HEX).

La sintaxis:

.ROM [dly]/ a7 a6 a5 a4 a3 a2 a1 a0/d15 … d0/ 0000 0001 0002 + … FFFF (hasta 256 entradas).

Ahí tiene que haber solamente tres slach en ROM. Ej.

.ROM [delay] /addr /data /contenido.


Los SLACH no están permitidos en los nombres de la señal en la ROM. El delay es opcional los campos de dirección y datos información va primero el MSB. Cualesquier dirección o dato faltante se supone cero. Los datos entran secuencial mente comenzando con la más baja dirección. Faltando contenidos se supone FFFF , la ROM puede continuar sobre líneas múltiples. Ahí tiene que haber suficientes bits en los contenidos para cubrir todas las señales de datos. i.e.
0-FFFF cubrir 16 señales.
Ejemplo de la ROM: (32*8)

.ROM 1 /a4 a3 a2 a1 a0 /d7 d6 d5 d4 d3 d2 d1 d0 /

+ 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f

+ 10 11 12 13 14 15 16 17 18 19 1ª 1b 1c 1d 1e 1f


El patrón binario en los contenidos de la ROM puede conducir las salidas de datos de esta. Las líneas de dirección son entradas y las líneas de datos son salidas de la ROM, similares para probar vectores. Las salidas de las ROM no pueden ser conectadas a otras salidas lógicas, pero pueden conectarse a un buffer de tres estados (como un 74244) si fuera requerido. ROMs pueden estar utilizando una tabla loockup o patrón de generadores.
Si la ROM esta siendo utilizada como un elemento lógico que esta conduciendo otras entradas lógicas entonces el delay mínimo para la parte tiene que ser 1.
. END termina el archivo de entrada. (Opcional).
OTROS CARACTERES ESPECIALES
‘*’ El asterisco es el comienzo de una expansión macro. Ver MACROS.

‘+’ El signo mas es una continuación de una lista de entrada macro. Puede haber muchas mas líneas, como se necesita hasta un total de 64 entradas por macro.


No puede haber otras líneas entre los ‘*’ y los ‘+’. Los macros pueden estar definidos en un archivo de librería.
Importante: un macro no puede ser procesado antes de la librería donde el macro esta definido y tiene que estar cargado con un comando .LIB. En todas las librerías se buscara el macro definido.
Todo las otras líneas estarán intentando interpretar comandos básicos o al reloj. Ver LOGIC: y CLK:
Globales automáticas: VCC & GND están automáticamente declarado como un nivel uno 1)y nivel cero (0). Estas señales no deberán ser manejadas por salidas lógicas. También la señal ficticia ‘NC’ es reservada como una señal de no conectar, y no puede ser conectada excepto se menciono anteriormente .
Un bloque de sustitución o macro es una colección de componentes que forma un subcircuito más complejo. Se definen utilizando la palabra clave de MACRO y EOM (END OF MESSANGE), que se almacena en una librería de partes. Después de eso pueden ser utilizadas varias veces refiriéndose a ellos por el nombre de macro.
Por ejemplo:
La definición de macro es como sigue:
.MACRO 7400 delay p1 p2 p3 p4 p5 p6 p7

+ p8 p9 p10 p11 p12 p13 p14

p3 NAND delay p1 p2

p6 NAND delay p4 p5

p8 NAND delay p10 p9

p11NAND delay p13 p12

.EOM
Los macros no pueden ser anidados. El nodo formal nombrado en la definición del macro es remplazado por el nombre del nodo actual cuando el macro es utilizado, e.g.
El uso del macro:
*U1 7400 3 in1 in2 out1 nc nc nc gnd

+nc nc nc nc nc nc vcc

*U2 7400 3 in3 in4 out2;
Nota: si faltan pines por conectar serán NC. NO pueden haber mas símbolos pasaron a un macros que el macro tiene colocar retenedores.
Para escribir compuertas en el simulador DLSIM, la instrucción general es:


Salida

Función

Retraso (Delay)

Entradas

Por ejemplo para una compuerta AND la instrucción es la siguiente:



Símbolo de la compuerta AND.


Si retraso = 0 es una compuerta ideal. Entonces:
A AND 0 B C
En este caso las compuertas pueden tener múltiples entradas (referirse a manual TTL).
Ejemplo para el uso Flip-flop. El simulador solo admite una salida entonces amplia la estructura de las condiciones:


Salida

Función

Retraso (Delay)

OTRAS SALIDAS

Entradas

Flip-Flop tipo D



Símbolo Flip-Flop tipo D.


Instrucción para definirlo:

QH DFF 0 QL CLK D
Ejemplo para el usa de un multiplexor.
Apéndice B. Simulador DLSIM (Digital Logic Simulator).
B.1. Componentes
Los componentes que se pueden utilizar en el simulador DLSIM se muestran en la tabla 1 y como podemos observar existen dispositivos normales, dispositivos del colector abierto y con una señal de disparo.


DISPOSITIVOS NORMALES

DISPOSITIVOS COLECTOR ABIERTO

COMPUERTAS CON UNA SEÑAL DE DISPARO

AND /NAND

RAND / RNAND

TAND / TNAND

OR XOR

ROR / RNOR

TOR / TNOR

XOR XNOR

RXOR / RXNOR

TXOR / TXNOR

BUF INV

R BUF RINV

TBUF / TINV

Tabla 1. Listado de componentes del simulador DLSIM.
Nota.- La resistencia de salida en los dispositivos de colector abierto sirve para variar la Io.
Un ejemplo de la compuerta AND para estos dispositivos se muestra en la siguiente figura.



Compuerta AND normal.



Compuerta AND de colector abierto.



Compuerta AND con una señal de disparo.



Ejemplo de listado de componentes del simulador DLSIM para la compuerta AND.
Elemento del simulador DLSIM
Los elementos que tiene el simulador son los siguientes:
DFF Flip-flop tipo D

TFF Flip-flop tipo T

JKFF Flip-flop tipo JK

MUX Multiplexor

DLATCH Latch transparente (candado)

ROM Memoria de solo lectura.


MULTIPLEXOR

El multiplexor básico es un dispositivo dos a uno(dos entrada una salida) , pero la salidad tambien lleva su complemento, es decir tien dos salidas SAL y NSAL y ccomo todo los multiplexores una señal de selección.



Símbolo Del Multiplexor.


LA INSTRUCCIÓN ES LA SIGUIENTE:
SAL MUX 0 NSAL SEL A B
Ejemplo. Para el caso de la MEMORIA ROM se pueden introducir datos en forma Hexadecimal. Esto es los datos podrán cambiar entre (0000FFFF) debido a que son 16 bits

Símbolo de la memoria ROM.


La manera en que se define la memoria es:
.ROM DELAY / a7 a6 a5 a4 a3 a2 a1 a0 / d15 d14 … d0 / 0000 0001 … FFFF
Definición de Macro.
Un macro es una celda básica. Modulo funcional. Caja negra, un modelo de cualquier circuito; ya sea combinacional o secuencial. O un chip que trae varios elementos por separado.

En la siguiente figura se muestra un ejemplo de un macro.


Ejemplo de un macro


Para usar macros se define como:
Parte que define una caja negra

.macro 7400 delay P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 P13 P14


Función para definir la caja negra.

P3 NAND 0 p1 p2

P5 NAND 0 p4 p5

P8 NAND 0 p9 p10

P11 NAND 0 p12 p13
Fin de macro la instrucción es la siguiente:

*U1 7400 0 IN1 IN2 S1 IN3 IN4 S2 GND S3 IN5 IN6 NC NC NC VCC

Donde NC es No Conexión.

COMANDOS DEL SIMULADOR.


Los comandos inician “con punto”.
.BELL Suena la campana cuando hay error.

.LIB Controla las librerías cuando son llamadas por el macro.

.ECHO Lista de red de trabajo (netlist).

.LIST Copia el netfile al archivo de salida.

.LOADING Contar la cantidad de entradas conectadas a cada salida.

.BUS Agrupamiento de señales para un desplegados numérico.

.ROM Construye una ROM de 256 x 32.

.PROBE EL conjunto de nodos, escalas, o los bus que son muestreados y desplegados.

.TIME Tiempo máximo de simulación.

.INIT_HI Inicia todos los valores en alto (normalmente desconocidos).

.INIT_LO inicia todos los valores en bajo (normalmente desconocidos).

.SCALE Sitúa el valor de un paso de tiempo.

.END Palabra clave para marcar el fin del archivo del circuito.

S Es para poner comentarios.

* Marca el inicio de un macro.

+ Extiende la línea de comandos.


Formato para la memoria ROM.


Formato

.BUS Nombre – Bus señales del Bus


.BUS DIR_ROM A4 A3 A2 A1 A0

.BUS DAT_ROM D7 D6D 5 D4 D3 D2 D1 D0

.SCALA
Ejemplo. Un circuito que genera retraso puede dar problemas, debido a que se van combinando los tiempos y pueden producir carreras no deseables.
El circuito de la siguiente figura se puede simular con diferentes tiempos.

Circuito generador de retraso de tiempo.


COMENTARIOS.
$ El circuito puede generar carreras.

$ La idea es simular con diferentes tiempos de retardo de tiempos de compuerta.

$ Utilizamos un macro.
$LIBRERIAS
.BELL $ Quiero detectar errores.

. LIB 7404.mac $ Se llama a la librería que se denomino 7400.mac

$ 7400.mac se encuentra como un archivo en memoria secundaria.

.SCALE 1ns

.TIME 100
$FUNCION

Sal rand 1 Ent SN1

Sall rand 0 Ent SN2

*U1 7404 Ent SN1 Sal SN2
LAS ENTRADAS PUEDEN SER DE DOS TIPOS:

1.- Tipo entrada INPUT

2.- Tipo reloj CLK
$ ENTRADAS

Ent clk 0 LLH

t clk 0 LLHHHHH
SALIDAS

.PROBE ent T sal sall

.END
NOTA : es necesario generar archivos CKT. Para correr se da DL. Nombre del archivo.
Ejemplos

Estructura para simular una compuerta AND con cincuenta tiempos, salida f entradas a, b y como la compuerta tiene cero (0) de retardo entonces esta compuerta es ideal.



$SIMULACION DE UNA COMPUERTA AND

.bell

.time 50;


a input=llh;

b input=hlh;


f AND 0 a b;

.probe a b f;

.end;


Ejemplo a simular


Cuando mandamos a compilar la compuerta simulada. Si nuestro archivo tiene algún error no fatal y aun así funciona bien nuestro archivo nos saldrá un Warnning y entonces nos aparecerá una pantalla como esta.

Esta pantalla nos dice en que línea se encuentra el error.

Si llegara a tener un error fatal entonces aparecerá una pantalla donde nos indica en que línea esta el error y una posible solución aunque no muy especifica.


En caso de que el archivo no tuviera error y se hubiera compilado correctamente entonces el programa creara un archivo con la extensión LST en el ejemplo anterior nuestro archivo tiene el nombre de AND.CKT entonces a la hora de simular el archivo textual nos creara un archivo AND.LST y este archivo lo ejecutaremos con el simulador DLVIEW con esta sintaxis.
C:\dlview AND.LST
A la hora de ejecutar este comando nos aparecerá una pantalla donde podremos visualizar la simulación de la compuerta así.

en este ejemplo podemos ver las entradas las líneas se extienden hasta el final de la pantalla porque a la hora de declarar los tiempos de simulación le ordenamos al programa que evaluara hasta 50


La base de datos está protegida por derechos de autor ©bazica.org 2016
enviar mensaje

    Página principal