You are on page 1of 3

Introduccin a la simulacin de sistemas

digitales

04-05

UPV

LDD

Ejemplo: SUMA/RESTA ACUMULADA

ATC
OBJETIVO:
En estas sesiones de laboratorio vamos a estudiar una de las herramientas software habituales
que se utilizan para el diseo de sistemas digitales. Existen varias alternativas en el mercado; en
este curso vas a utilizar un paquete comercial muy comn, MAX+plus II de la casa ALTERA,
para implementar diseos en dispositivos de lgica programable. Para estudiar este conjunto de
aplicaciones vamos a disear un pequeo sistema digital, siguiendo todos los pasos habituales:
definicin del sistema lgico, dibujndolo o mediante lenguajes tipo VHDL, compilacin,
simulacin, e implementacin en un dispositivo concreto utilizando la placa UP1.
EJEMPLO:
Se ha diseado un sistema que suma o resta nmeros naturales de dos bits y muestra el
resultado acumulado en un registro. Los datos se introducen mediante dos interruptores. El
sistema se controla mediante tres pulsadores: LD, S y R. Como ejemplo, slo se considera la
suma hasta 4 bits y no se consideran resultados negativos. Por ello, al superar el valor 15
(overflow), o si el resultado es <0 (underflow) no se pueden realizar ms operaciones hasta
pulsar LD.
LD: carga en el registro de un dato de 4 bits. No existe seal de inicializacin a cero; para introducir un 0
hay que ejecutar LD 0. Al cargar un dato los dos indicadores del sistema (overflow y underflow) se
ponen a 0.
S: suma de un nmero de dos bits al valor del registro, tal como se ha hecho en el ejemplo anterior
(SUM). Al detectar overflow (>15), se activa el indicador OVF; a continuacin slo se admite una
operacin LD.
R: resta de un nmero de dos bits al valor del registro. Al detectar underflow (<0), se activa el indicador
UNF; a continuacin slo se admite una operacin LD.
El algoritmo de control y un esquema de la unidad de proceso aparecen en la figura e la pagina siguiente.

Unidad de proceso:
0,0,N1,N0
4
Biest JK

JOVF
4

J
K

KOVF

Cout

clk

RESETL
N3-0

OVF

CL

Rest
Sumador

Biest JK
0

Dat_0

Mux

JUNF

J
K

KUNF

clk

Ld_R
clk

RESETL

Registro
4

Unidad de control:
RESET*

E0

0
1

E1

LD

E2
KOVF
KUNF
DAT_0
LD_R

S
1

Cout
(>15)

JOVF
1

JUNF

E5

LD

Cout
(< 0)
0

LD+S+R

E3
LD_R
REST

LD_R

E4

Q
CL

UNF

TRABAJO A REALIZAR
1.

DESCRIPCIN DEL DISEO

En primer lugar se va a describir el diseo propuesto utilizando tanto el editor grfico como el de texto.
a) Editor grfico (Unidad de proceso):
Un diseo puede describirse grficamente utilizando los smbolos de los mdulos incluidos en alguna
de la tres bibliotecas de la herramienta Altera, o bien, los de los diseos previos realizados por un
usuario. En este caso, se va a describir la Unidad del proceso del ejemplo utilizando elementos de las
citadas bibliotecas. Para ello consultar el resumen de la gua del usuario de la herramienta y seguir las
siguientes pautas:
Usar la biblioteca de primitivas para puertas lgicas y biestables.
Usar la bibliotecas de CI estndar TTL de la serie 74 para el Sumador
Usar la biblioteca de mdulos parametrizables para el registro de almacenamiento. y el
multiplexor.
b) Editor de texto para VHDL (Unidad de control):
La Unidad de control se va a describir utilizando el lenguaje VHDL. Para ello seguir los pasos ya vistos
en las clases tericas y consultar la gua Altera para editar dicho fichero.
c) Usar de nuevo el editor grfico para generar la descripcin del sistema completo: Unidad de control +
Unidad de proceso.
2. SIMULACIN LGICA
Se van a simular desde un punto de vista lgico las unidades previamente diseadas. Para ello y tal como se
describe en la gua de usuario Altera, los pasos a seguir son:
a) Compilar el diseo:
En primer lugar se realizar una compilacin funcional simple.
b) Editar las formas de onda de las seales de entrada del sistema a simular utilizando para ello el Editor de
Formas de onda: Waveform Editor.
c) Simular el diseo descrito en el orden siguiente:
1. Unidad de control: las posibles transiciones de estados (al menos los casos ms crticos), las seales
de salida a activar.
2. Unidad de proceso: las respuestas de los diferentes mdulos incluidos
3. El sistema completo: realizar un estudio lo suficientemente representativo del funcionamiento del
sistema sin alargarlo en exceso con casos redundantes.
3.

COMPILACIN Y PROGRAMACIN EN UNA CPLD.

Se va a implementar el diseo en una de los dispositivos disponibles en la placa UP1, en concreto el de la


familia FLEX10K20, utilizando para ello el ByteBlaster que permite su programacin directa desde el
PC.
Para poder visualizar de manera adecuada las salidas y aplicar las entradas se actuar de la siguiente manera:
Para el dato de entrada se utilizarn los microinterruptores
Asignaremos el pulsador PB1 a La seal S, y el pulsador PB2 a R.
Asignaremos microinterruptores a Reset, y a la seal LD.
Visualizaremos el estado del sistema en uno de los dgitos y el resultado en el otro
NOTA: Para ello ser necesario incluir en el diseo dos decodificadores Hex-7seg.
.
a) Tareas previas.
Seleccionar el dispositivo concreto en el que se va a implementar el diseo, volver a compilarlo (esta vez
con el dispositivo seleccionado). Aadir al diseo los mdulos necesarios de acuerdo con las pautas del
prrafo anterior, y realizar la asignacin de pines de entrada/salida. Para ello consultar la gua del
usuario y la informacin resumida de la placa UP1.
b) Programar la CPLD
Seleccionar en el men Programer, verificar las conexiones de la placa UP1 al PC yl programarlo.
c) Comprobar el funcionamiento del sistema real.

You might also like