Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PROYECTO 1
Unidad Aritmética Lógica de datos de 4 bits.
CIRCUITOS COMBINACIONALES
Tipo: Laboratorio
Dispositivo Programable: CPLD
CAD: ISEV12
OBJETIVO:
Diseñar y simular y construir una Unidad Aritmética Lógica (ALU) de 4 bits de 4 funciones. Utilizando un CPLD y programación
VHDL
DESCRIPCION
El ALU realizara las funciones de:
1. A + B
2. A-B
3. A and B
4. A xor B
1.- Los datos se dará por medio de dos dip switch de 4 bits
PROCEDIMIENTO
5.- Defina el archivo TOP-LEVEL del proyecto, para ello cree un nuevo archivo de tipo esquemático, llamado ALU_4bits,
Del lado derecho aparece el área de trabajo, para trabajar en forma esquemática.
6.- Posicione el cursos sobre el archivo ALU-4bits (TOP LEVEL) de click derecho y cree un nuevo archivo llamado suma 4 bit, en forma
de modulo VHDL
3
Del lado derecho aparece el área de trabajo, para trabajar en formato VHDL.
7.-Diseñe la suma empleando el código de la practica 1.11 (SUMADOR DE DOS DATOS DE 4 BITS )
8.- Pruebe la sintaxis del modulo de suma
7.- Convierta el archivo VHD de la suma en un módulos esquematico., seleccione “Create Schematic Symbol” o con la opción Tools >
Symbol Wisard
4
Seleccionamos el icono de “Add Symbol” , aparece un menú con la biblioteca de simbolos de ISE , seleccionamos la carpeta donde
esta nuestro proyecto, en la ventana de Symbol aparece el símbolo de la suma, la arrastramos al area de trabajo
8.- De igual forma creamos los módulos de la, RESTA, AND y XOR
9.- RESTA
Tome como referencia el código de la practica 1.11 (SUMADOR DE DOS DATOS DE 4 BITS CON UNA GALS. ) , cambie la entrada
B por el NEG B usando compuertas XOR
Dibuje el circuito y deduzca las funciones booleanas.
DATO A SUMADOR CODIFICADOR
A
C 1
2
3
I0/CLK
I1
IO0
IO1
23
22
21
1
2
3
I0/CLK
I1
IO0
IO1
23
22
21
I2 IO2 I2 IO2
4 20 4 20
I3 IO3 I3 IO3
5 19 5 19
I4 IO4 I4 IO4
6 18 6 18
I5 IO5 I5 IO5
7 17 7 17
I6 IO6 I6 IO6
8 16 8 16
1 I7 IO7 I7 IO7
9 15 9 15
3 I8 IO8 I8 IO8
10 14 10 14
2 I9 IO9 I9 IO9
11 11
DATO B 13
I10
13
I10
1 I11 I11
3
C 2
3
AM22V10 AM22V10
1
3
2
1
0 2
3
SUMA / RESTA
10.- AND
Tome como referencia el siguiente código y modifíquelo para 4bits
5
11.- XOR
Tome como referencia el código del modulo AND, modifíquelo para 4bits , pruebe el diseño, haga su modulo y agréguelo al proyecto
principal.
12 .- SELECTOR DE DATOS
Para el selector de los módulos utilice un multiplexor de 4 datos , tome como referencia la practica 1.6.- MULTIPLEXOR
Selector de 4 Datos de 4 bits
SW1 MULTIPLEXOR
DATO A F
C 1
2
I0/CLK
I1
IO0
IO1
23
22
SALIDA
THUMBSWITCH-HEX 3 21
I2 IO2
4 20
I3 IO3
5 19
SW2 6
I4 IO4
18
I5 IO5
F
7 17
DATO B C 8
9
I6
I7
I8
IO6
IO7
IO8
16
15
THUMBSWITCH-HEX 10 14
I9 IO9
11
I10
13
I11
SW3
AM22V10
DATO C F
C
THUMBSWITCH-HEX
SW4 S1 0
DATO D F
C
THUMBSWITCH-HEX S0 0
Para conectar los modulos que forman el ALU , utilice el comando en ISE ADD WIRE
Para definir las entradas y salidas que conectaran a las terminales del cpld utilice el comando Add IO Marker
De forma automática se asigna el nombre genérico de XILINX_#### , a las etiquetas de entrada y salida , ### es un numero consecutivo.
Para asignar un nuevo nombre a la etiqueta, sobre de ella de Click derecho > Rename Port > Rename the Branch, en la ventana que
aparece cambie el nombre de Xilin_###, por el nuevo nombre en nuestro caso DATO A
14.- Cheque que no existan errores en el esquemático usando el comando Check Schematic
-- ALU DE 4 BITS
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
APENDICE A
DEFINICION DE BUSES en ISE
Usando la forma ESQUEMATICA
Usando la herramienta ADD NET NAME en el campo NAME escribimos el nombre “Dato_4bits”
Del lado derecho aparece un cursor con este nombre, lo movemos y lo posicionamos en la primera línea
Repetimos el mismo comando pero ahora escribimos el nombre del bus que queremos definir lo nombramos “Dato_4bits(3:0)”
La segunda línea aparece más gruesa lo cual indica que se trata de un bus
Para trabajar de manera individual con los con los bit del bus
Usamos la herramienta ADD BUS TAP, Trazamos dos línea verticales en el bus y agregamos salidas o entradas de bus usando
esta herramienta.
Al seleccionar BUS TAP Aparece una ventana en donde podemos cambiar la orientación .
Al agregar la línea en los extremos aparece un pequeño cuadro de color rojo indicando que es una terminal.
Usando la herramienta ADD NET NAME en el campo NAME escribimos el nombre del bit del bus que nos interese.
Listo ya se pueden usar de manera individual los bits que forman el bus.
Si se requiere con la herramienta ADD IOMARKER les asignamos etiquetas para usarlos como entrada o salida
12