Practica 2.- Comparadores de 4 bits

Anuncio
PRACTICA No. 2
“COMPARADORES DE 4 BITS”
MATERIA: DISEÑO DIGITAL
SEMESTRE FEBRERO-JUNIO DEL 2012
NOMBRE DE LOS ALUMNOS:
1.-__________________________________________________________________
2.- __________________________________________________________________
3.- __________________________________________________________________
OBJETIVO GENERAL DE LA PRÁCTICA:
Que el estudiante adquiera las competencias en el diseño de comparadores e
identifique sus características combinacionales que lo hacen un circuito de alto uso en
la electrónica digital.
EVALUACION: __________
CATEDRATICO: ING MIGUEL ANGEL PEREZ SOLANO
INSTITUTO TECNOLOGICO DE OAXACA
I.
Objetivos específicos.
-
-
Tener claro el concepto de circuitos combinacionales.
Describir como es el funcionamiento de un circuito comparador de 1 bit.
Construir una tabla de verdad para la descripción de un comparador de 2
bits.
Entender el modelo matemático de una compuerta con 2 entradas de “n”
bits
Investigar en la pagina de Texas instruments
http://upgrade.kongju.ac.kr/data/ttl/func.html circuitos de “glue logic” (los
clásicos circuitos integrados 74xx) realizan la función lógica de
comparación (comparadores).
Interpretar las formas de onda presentadas a la salida de un comparador
de cualquier característica, a la aplicación de estímulos (0s y 1s) en sus
diversas entradas.
Saber modelar en VDHL un comparador de cualquier característica a sus
entradas.
Sintetizar el archivo de un comparador de 2 entradas de 4 bits utilizando
XST (del ISE Webpack de Xilinx).
Implementar un comparador de dos entradas de 4 bits Nexys 3.
II. MATERIAL Y SOFTWARE UTILIZADO




Proteus
Tarjeta Basys 2 de Xilinx.
ISE Webpack
Adept.
III. FUNDAMENTO TEORICO
Primeramente estableceremos que un circuito lógico no es mas que una asociación de
compuertas (como las vistas en la practica 1) que realizan un función lógica. Todo el
conjunto de circuitos lógicos que contiene un sistema digital, se clasifican en circuitos
lógicos combinacionales y circuitos lógicos secuenciales.
Un circuito lógico combinacional, es aquel cuyo valor de salida solo depende de los
valores aplicados a su entrada (únicamente de eso y de nada mas). Esto se ilustra en
la figura 2.1
Figura 2.1 Esquema de un circuito lógico combinacional
Un circuito lógico combinacional, es aquel cuyo valor de salida siguiente depende tanto
de los valores aplicados a la entrada, como del estado presente a la salida. Se
caracterizan por utilizar retroalimentación de la salida a la entrada y una señal de reloj
(clk). Un circuito secuencial está compuesto por lógica combinacional mas un bloque de
CATEDRATICO: ING MIGUEL ANGEL PEREZ SOLANO
INSTITUTO TECNOLOGICO DE OAXACA
memoria que almacena el estado presente y lo alimenta nuevamente a la entrada para
genera el estado siguiente cuando el clk lo determine. Esto se muestra en la figura 2.2
Figura 2.2 Diagrama a bloques de un circuito lógico secuencial
COMPARADORES:
Una actividad común en el diseño
de sistemas digitales es comparar
dos números de cualquier numero
de bits, y producir una indicación
si son iguales o si uno es mas
grande que otro. La OR-exclusiva
produce un 1 si las dos entradas
(de 1 bit) son diferentes en caso
contrario emite un 0, como se
muestra en la figura 2.3.
Figura 2.3 XOR como comparador
Los números de “n” bits (multibit)
son distintos si cualquiera de los
pares de entrada son distintos. El
circuito de la figura 2.4 muestra
un comparador de 4 bits
utilizando compuertas XNOR y
una AND. La salida de la AND es
1 si los números son iguales, pero
si cualquier par es diferente, será
suficiente para llevar a la AND a
un valor de 0
Estos comparadores pueden
extenderse a cualquier numero de
bits (comparadores de 2 entradas
y cada entrada de “n” bits).
Figura 2.4 Comparador de 4 bits
Un comparador es un circuito lógico combinacional. Para construir un
comparador de 4 bits que indicara; igual a, mayor que y menor que, tendremos
que seguir un proceso de diseño digital, como sigue.
CATEDRATICO: ING MIGUEL ANGEL PEREZ SOLANO
INSTITUTO TECNOLOGICO DE OAXACA
a)
Diagrama a bloques: Aquí se
definen las variables booleanas de
entrada y salida como se muestra en
la figura 2.5.
Como se muestra, las variables de
entrada son x,y , cada una de 4 bits.
Las salidas son de 1 bit, los cuales
indicaran con un 1 si las dos
cantidades son iguales, o cual es
mayor que la otra.
Figura 2.5 Definición de las variables
Como se lleva esto a un circuito lógico físicamente: existen 4 formas:

Construirlo
mediante
compuertas lógicas: Es es un
método muy arcaico pero es
bueno para el razonamiento
lógico, se podría trabajar hasta el
nivel de simulación.
 Mediante lógica estándar TTL,
se utiliza el circuito integrado
SN7485,
el
cual
es
un
comparador
de
4
bits
(actualmente un método en
desuso por las limitantes de los
circuitos integrados) .

Utilizando
PLDs.
Mediante un proceso de diseño
asistido por computadora (CAD)
y utilizando herramientas para la
automatización
de
diseño
electrónico (EDA), podemos
configurar una SPLD (dispositivo
lógico programable simple) o un
CPLD
(dispositivo
lógico
programable complejo). Aunque
con limitantes este método esta
en uso limitado.
CATEDRATICO: ING MIGUEL ANGEL PEREZ SOLANO
INSTITUTO TECNOLOGICO DE OAXACA
•
Una de las actuales
formas del diseño electrónico
digital es mediante el uso de los
FPGAs (arreglos de compuertas
programables en el campo).
Método que seguiremos ya que
es la forma actual de diseñar
utilizando
un
lenguaje
de
descripción de hardware (HDL)
conocido como VHDL (lenguaje
de descripción de hardware para
circuitos integrados de muy alta
velocidad).
ACERCA DE VHDL
El conocimiento del lenguaje estandarizado VHDL se ha convertido en algo
imprescindible para todos los estudiantes, diseñadores e ingenieros que están de
alguna manera ligados al desarrollo de sistemas electrónicos digitales.
La evolución espectacular de la tecnología y del diseño microelectrónico ha permitido la
realización de sistemas electrónicos digitales complejos en un único circuito integrado
de escala de integración progresivamente elevada (muy alta (VLSI), ultra alta (ULSI),
giga (GSI)) que llegan a contener en su interior más de 1.000.000 puertas lógicas. Pero
esto sólo se ha podido llevar a cabo mediante un cambio profundo de las técnicas de
diseño de circuitos integrados.
Los circuitos de escala de integración media y alta (MSI y LSI respectivamente) se
diseñaron mediante la realización de un prototipo formado por módulos más sencillos y
la comprobación de su funcionamiento antes de proceder a la integración. Esta forma
de diseño recibe el nombre de abajo a arriba (bottom-up) porque se enlazan diversos
módulos para constituir un bloque funcional más complejo. Pero en el caso de los
circuitos integrados de complejidad VLSI y superiores no resulta práctica la realización
física de un prototipo y por ello es necesario simular y verificar su correcto
comportamiento antes de integrarlos. Ello trajo consigo la necesidad del desarrollo de
métodos de diseño asistido por computadora, divididos en varias fases que, a partir de
la especificación del funcionamiento, llevan hasta la descripción física del circuito, por lo
que reciben el nombre de arriba a abajo (top-down). Así, mediante simulación es
posible una rápida detección de errores en fases tempranas del diseño, resulta factible
la reutilización del mismo para diferentes tecnologías y se pueden utilizar las
herramientas de síntesis actuales para obtener rápidamente un esquema lógico o
estructural y, en definitiva, una netlist* de entrada para el trazado físico (layout) del
ASIC, MCM, etc. o la asignación de recursos (mapping) en el caso de la lógica
programable (PLDs y FPGAs).Todo ello, obviamente, incrementa la productividad y la
eficacia del diseño.
IV. METODOLOGIA DE LA PREPARACION DE LA PRACTICA
a)
Utilizando el estilo funcional de programación escribiremos un archivo fuente
(source) en ISE Webpack de Xilinx llamado “comp4bits.vhd” dentro de un
proyecto que llamaremos “comparadores”, el cuál se muestra en la sección
siguiente de resultados. Ver figura 2.6
CATEDRATICO: ING MIGUEL ANGEL PEREZ SOLANO
INSTITUTO TECNOLOGICO DE OAXACA
b)
c)
d)
e)
f)
Posteriormente se procede a sintetizar el archivo .vhd (usando la opción synthezise
XST), proceso que reconoce el hardware necesario que requerirá el diseño de la
FPGA (crea el netlist).
Como paso siguiente se procede a la implementación del circuito (utilizando
“implement design”) en donde se hará el “translate”, el “map” y el “place & route” de
la FPGA para asignarles los IOUs.
Se procede a la simulación del diseño, el cual se describirá en la sección de
resultados y conclusiones de la practica. En este paso se crea un archivo tesbench
para los estímulos del circuito como se muestra en los resultados. Ver figura 2.7 y
2.8
Se procede a asignarle las patillas especificas de entrada (switches) y salidas
(LEDs) utilizando la aplicacion Plan Ahead en la opción de “user constraints>I/O pin
planning (plan ahead) presyntesis”. Aca se utiliza el archivo .ucf o lo genera
automáticamente la aplcacion. Ver figura 2.9
Por ultimo se genera el archivo de programación (generate program file) en cual
tendrá una extensión “.bit”, el cual mediante el software adept se utilizara para
programas el FPGA.
V.- Resultados y Conclusiones de la Práctica
A continuación se muestra la pantalla del programa fuente (source), el cual será
sintetizado con el XST de Xilinx.
Figura 2.6 Pantalla del archivo fuente ( source).
CATEDRATICO: ING MIGUEL ANGEL PEREZ SOLANO
INSTITUTO TECNOLOGICO DE OAXACA
Posteriormente se muestran las pantallas de los archivos de simulación (el tesbench y
el de waveforms).
Figura 2.7 Archivo testbench para el comparador de 4 bits.
A continuación se presenta los resultados de la simulación del comparador de 4 bits
aplicándole el tesbench anterior.
En dichas formas de onda se nota claramente el funcionamiento del circuito a la
aplicación de valores de entrada y la respuesta de cada salida-
CATEDRATICO: ING MIGUEL ANGEL PEREZ SOLANO
INSTITUTO TECNOLOGICO DE OAXACA
Figura 2.8 Pantalla de la formas de onda en la simulación
Una vez hecho esto, se procede a asignar las patillas correspondientes de acuerdo a
como esta conectado el FPGA en la tarjeta NEXYS 3, para ello se utiliza el siguiente
archivo .ucf.
Figura 2.9 Archivo de constraints .ucf
Y por ultimo se genera el archivo de generación ( .bit) que servirá para que con adept
se baje a la tarjeta del FPGA. Una vez hecho se esto, se realizan las pruebas en la
computadora para su comprensión.
CATEDRATICO: ING MIGUEL ANGEL PEREZ SOLANO
INSTITUTO TECNOLOGICO DE OAXACA
VI.- Fuentes de información (Referencias bibliográficas y sitios internet)
www.xilinx.com
www.ti.com
LIBRO: Fundamentos de lógica digital con diseño VHDL
Stephen Brown, Zwonko Vranesivc
Mc Graw Hill.
SUERTE MUCHACHOS USTEDES PUEDEN LOGRAR LO QUE SE
PROPONEN…PRINCIPALMENTE SON JOVENES…Solano
VII.- ANEXOS (colocar acá datos que requieran agregar, extra al trabajo)
CATEDRATICO: ING MIGUEL ANGEL PEREZ SOLANO
INSTITUTO TECNOLOGICO DE OAXACA
Descargar