100% encontró este documento útil (1 voto)
458 vistas23 páginas

Simulación de Convertidores BCD a 7 Segmentos

Este documento describe el desarrollo de dos circuitos para la conversión de códigos binarios codificados decimalmente (BCD). El primer circuito convierte de un código BCD 8421 a un display de 7 segmentos utilizando compuertas lógicas. El segundo circuito convierte entre cuatro códigos BCD (2421, 5421, 7421 y exceso-3) al código 8421. Ambos circuitos son simulados utilizando el lenguaje VHDL y el software TINA.

Cargado por

Sasi Ramírez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (1 voto)
458 vistas23 páginas

Simulación de Convertidores BCD a 7 Segmentos

Este documento describe el desarrollo de dos circuitos para la conversión de códigos binarios codificados decimalmente (BCD). El primer circuito convierte de un código BCD 8421 a un display de 7 segmentos utilizando compuertas lógicas. El segundo circuito convierte entre cuatro códigos BCD (2421, 5421, 7421 y exceso-3) al código 8421. Ambos circuitos son simulados utilizando el lenguaje VHDL y el software TINA.

Cargado por

Sasi Ramírez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd

NDICE

INTRODUCCIN....2

OBJETIVOS....3

MARCO TERICO....4

DESARROLLO DE LOS CIRCUITOS


CIRCUITO I....6
CIRCUITO II......12

RESULTADOS
..18

DE

INVESTIGACIN.

OBSERVACIONES......20

CONCLUSIONES...
..21

BIBLIOGRAFA.22

INTRODUCCIN
En el mundo de la programacin y las computadoras es muy comn el uso de
sistemas de numeracin distintos al decimal, como el hexadecimal u octal para
hacer ms asimilable la lgica binaria de la computadora. Con el fin de facilitar la
adaptacin al lenguaje de la mquina se disearon distintos cdigos numricos
BCD, como el 2421, 5421, 7421, 8421 y el exceso-3. Todos son basados en el
cdigo binario pero representan los 10 dgitos del sistema de numeracin
decimal.
En el presente reporte se trabajar con conversin entre sistemas en base a
compuertas bsicas AND, OR y NOT; siempre con la ayuda de software de
simulacin aplicando lenguaje VHDL. En este caso se utilizar TINA.
Se realizar el anlisis del funcionamiento de un convertidor de cdigos en base
a tablas de verdad. Para la simplificacin de las expresiones lgicas se har uso
de los mapas de Karnaugh y como ya se indic los circuitos sern diseados
nicamente con compuertas lgicas bsicas.
La implementacin de los circuitos diseados se llevar a cabo a travs de la
simulacin con la ayuda de software.
Es importante conocer la lgica del funcionamiento antes de elaborar un circuito
fsicamente y por ello es de gran ayuda la utilizacin de lenguajes VDHL y
software de simulacin.

OBJETIVOS

General.
Conocer el funcionamiento de los convertidores de cdigos numricos
BCD utilizando solamente compuertas bsicas.

Especficos.
Elaborar tablas de verdad para convertidores de cdigo BCD.
Simplificar expresiones lgicas a travs de Mapas de Karnaugh.
Codificar en VHDL y simular los circuitos diseados.
Hacer uso de un display de 7 segmentos para mostrar informacin.

MARCO TERICO
En sistemas de computacin, Binary-Coded Decimal (BCD) o Decimal codificado
en binario es un estndar para representar nmeros decimales en el sistema
binario, en donde cada dgito decimal es codificado con una secuencia de 4 bits.
Con esta codificacin especial de los dgitos decimales en el sistema binario, se
pueden realizar operaciones aritmticas como suma, resta, multiplicacin y
divisin de nmeros en representacin decimal, sin perder en los clculos la
precisin ni tener las inexactitudes en que normalmente se incurre con las
conversiones de decimal a binario puro y de binario puro a decimal. La
conversin de los nmeros decimales a BCD y viceversa es muy sencilla, pero
los clculos en BCD se llevan ms tiempo y son algo ms complicados que con
nmeros binarios puros.
En BCD cada cifra que representa un dgito decimal (0, 1,...8 y 9) se representa
con su equivalente binario en cuatro bits (nibble o cuarteto) (esto es as porque es
el nmero de bits necesario para representar el nueve, el nmero ms alto que se
puede representar en BCD). En la siguiente tabla se muestran los cdigos BCD
ms empleados:
Dgito
Decimal
0
1
2
3
4
5
6
7
8
9

8421

7421

5421

2421

Exceso-3

0000
0001
0010
0011
0100
0101
0110
0111
1000
1001

0000
0001
0010
0011
0100
0101
0110
1000
1001
1010

0000
0001
0010
0011
0100
1000
1001
1010
1011
1100

0000
0001
0010
0011
0100
1011
1100
1101
1110
1111

0011
0100
0101
0110
0111
1000
1001
1010
1011
1100

Como puede verse en la tabla los cdigos BCD son basados en el peso de los
dgitos. El exceso-3 es igual que el 8421 solo que se le suma 3.

Como se observa, con el BCD slo se utilizan 10 de las 16 posibles


combinaciones que se pueden formar con nmeros de 4 bits, por lo que el
sistema pierde capacidad de representacin, aunque se facilita la compresin de
los nmeros. Esto es porque el BCD slo se usa para representar cifras, no
nmeros en su totalidad. Esto quiere decir que para nmeros de ms de una cifra
hacen falta dos nmeros BCD.
La conversin de estos cdigos a decimal es muy sencilla, solamente se escribe
cada dgito de acuerdo a su equivalente en el otro cdigo. Ejemplo:

Convertir el decimal 145 a 5421.


1= 0001, 4= 0100, 5=1000,
Entonces:

14510 = 0001010010005421

Igualmente es de cdigo BCD a decimal.


Ejemplo:
Convertir 1100111100012421 a decimal.
Se agrupan de 4 en 4 de derecha a izquierda, y se escribe el equivalente en
decimal para cada grupo de 4 bits, as,
1100=8, 1111= 9, 0001= 1,
Entonces:

1100111100012421 = 89110

El BCD es muy comn en sistemas electrnicos donde se debe mostrar un valor


numrico, especialmente en los sistemas digitales no programados (sin
microprocesador o microcontrolador).
Utilizando el cdigo BCD, se simplifica la manipulacin de los datos numricos
que deben ser mostrados por ejemplo en un visualizador de siete segmentos.
Esto lleva a su vez una simplificacin en el diseo fsico del circuito (hardware). Si
la cantidad numrica fuera almacenada y manipulada en binario natural, el
circuito sera mucho ms complejo que si se utiliza el BCD.

DESARROLLO DE LOS CIRCUITOS


1. Desarrollar y simular un convertidor de cdigo 8421 a 7 segmentos
utilizando TINA como simulador y un display de 7 segmentos de la siguiente
forma.

Funcionamiento de display de 7 segmentos (SSD Seven Segments Display).


Necesita de 7 entradas cada una representando una rayita de las 7 que lo
conforman con las que se pueden formar nmeros y letras dependiendo de lo que
reciba a la entrada. El esquema es el siguiente:

A cada uno de los segmentos que forman el display se les denomina a, b, c, d, e,


f y g, y estn ensamblados de forma que se permita activar cada segmento por

separado consiguiendo formar cualquier dgito numrico. A continuacin se


muestran algunos ejemplos:

Si se activan o encienden todos los segmentos se forma el nmero "8".


Si se activan slo los segmentos: "a, b, c, d, e, f," se forma el nmero "0".
Si se activan slo los segmentos: "a, b, g, e, d," se forma el nmero "2".
Si se activan slo los segmentos: "b, c, f, g," se forma el nmero "4".

Muchas veces aparece un octavo segmento denominado p.d. (punto decimal).


Se inicia con la creacin de la tabla de verdad.
Tiene 4 entradas: A, B, C y D correspondientes a dgitos en cdigo 8421 y tiene 7
salidas: ao, bo, co, do, eo, fo y go para cada segmento del display.
El siguiente es el formato de nmeros que se implementar:

Se tiene entonces la siguiente tabla de verdad:


Nota: Para los cdigos no vlidos se presentar un cdigo de error en el display;
en este caso la letra e minscula estar denotando error.
A
0
0
0
0
0
0
0
0
1
1
1

Entradas (8421)
B
C
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1

D
0
1
0
1
0
1
0
1
0
1
0

ao
1
0
1
1
0
1
0
1
1
1
1

bo
1
1
1
1
1
0
0
1
1
1
1

Salidas (7 segmentos)
co
do
eo
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1

fo
1
0
0
0
1
1
1
0
1
1
1

go
0
0
1
1
1
1
1
0
1
1
1

1
1
1
1
1

0
1
1
1
1

1
0
0
1
1

1
0
1
0
1

1
1
1
1
1

1
1
1
1
1

0
0
0
0
0

1
1
1
1
1

1
1
1
1
1

1
1
1
1
1

1
1
1
1
1

Se simplificarn utilizando mapas de Karnaugh segn mintrminos.


Se tiene entonces para ao:
ao= m (0, 2, 3, 5, 7-15)

Al hacer la simplificacin se tiene la siguiente expresin:


ao= A + CD + BD + BD
Para bo:
bo= m (0-4, 7-15)

bo= A + B +CD + CD
Para co:
co= m (0,1, 3-9)

co= AB + BC +AD
Para do:

do= m (0, 2, 3, 5, 6, 8, 10-15)

do= BD + BC + CD + AB + BCD
Para eo:
eo= m (0, 2, 6, 8, 10-15)

eo= BD + AC + AB + CD
Para fo:
fo= m (0, 4-6, 8-15)

fo= CD + BD + BC + A
Para go:
go= m (2-6, 8-15)

go= BC + BC + CD + A

Debido a que el software utilizado solamente posee displays de nodo comn ( la


entrada se activa con un impulso bajo 0 en este caso) y la tabla de verdad se
hizo pensando en un display de ctodo comn ( la entrada se activa con un 1) y
con el fin de que no fuera necesario realizar el anlisis completo nuevamente
solamente se negar cada una de las expresiones obtenidas, quedando entonces
de la siguiente forma:

ao= ( A + CD + BD + BD)
bo= (A + B +CD + CD)
co=( AB + BC +AD)
do= (BD + BC + CD + AB + BCD)
eo= (BD + AC + AB + CD)
fo= (CD + BD + BC + A)
go= (BC + BC + CD + A)
El siguiente es el cdigo VHDL desarrollado en TINA:
------------------------------------- TINA VHDL Macro Description Begin
--- entity_name:ckto1;
-- arch_name:ignored;
-- ports:a,b,c,d;ao,bo,co,do,eo,fo,go;
--- TINA VHDL Macro Description End
-----------------------------------ENTITY ckto1 IS
PORT(
A,B,C,D
:IN
BIT;
ao,bo,co,do,eo,fo,go :OUT BIT);
END ckto1;
ARCHITECTURE arch_ckto1 OF arch_ckto1 IS
BEGIN
ao
<=
NOT(A OR (C AND D) OR (B AND D) OR ((NOT B) AND (NOT D)));
bo
<=
NOT(A OR (NOT B) OR ((NOT C) AND (NOT D)) OR ( C AND D));
co
<=
NOT(((NOT A)AND B) OR ((NOT B)AND (NOT C)) OR (D AND (NOT A)));
do
<=
NOT(((NOT B)AND(NOT D)) OR ((NOT B)AND C) OR (C AND (NOT D)) OR (A AND B)
OR (B AND (NOT C) AND D));
eo
<=
NOT(((NOT B) AND (NOT D)) OR (A AND C) OR (A AND B) OR ( C AND (NOT D)));
fo
<=
NOT(A OR ((NOT C) AND (NOT D)) OR ( B AND (NOT D)) OR ( B AND (NOT C)));
go
<=
NOT(A OR ( C AND (NOT B)) OR ( B AND (NOT C)) OR ( C AND (NOT D)));
END arch_ckto1;

10

Se tiene tambin la grfica del funcionamiento del circuito. Recurdese que la


salida se activa con un 0.

Funcionamiento en TINA.

11

2. Desarrollar un convertidor de cdigos BCD: 2421, 5421, 7421 y exceso-3,


todos al cdigo BCD 8421.
Para este circuito se usarn 6 entradas. Dos sern de control y las otras cuatro
de cada cdigo, as:
A y B: Entradas de control.
AB
00
01
10
11

Cdigo
2421
5421
7421
Exceso-3

C, D, E y F: Bits de cada cdigo.


Tendr 4 salidas: W, X, Y, Z para el cdigo 8421.

12

Para las combinaciones no vlidas de los cdigos en la salida se generarn


Dont care Conditions por tanto se colocar una x en la salida cuando se de
este caso.
Segn lo anterior la tabla de verdad queda como sigue:
Control
A
B
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0

Entradas
Cdigos BCD
C
D
E
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1

F
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1

W
0
0
0
0
0
x
x
x
x
x
x
0
0
0
1
1
0
0
0
0
0
x
x
x
0
0
0
1
1
x
x
x
0
0
0
0
0
0
0
x

Salidas
8421
X
Y
0
0
0
0
0
1
0
1
1
0
x
x
x
x
x
x
x
x
x
x
x
x
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
x
x
x
x
x
x
1
0
1
1
1
1
0
0
0
0
x
x
x
x
x
x
0
0
0
0
0
1
0
1
1
0
1
0
1
1
x
x

Z
0
1
0
1
0
x
x
x
x
x
x
1
0
1
0
1
0
1
0
1
0
x
x
x
1
0
1
0
1
x
x
x
0
1
0
1
0
1
0
x

13

1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1

0
1
1
x
x
x
x
x
x
x
x
0
0
0
0
0
0
0
0
1
1
x
x
x

1
0
0
x
x
x
x
x
x
x
x
0
0
0
0
1
1
1
1
0
0
x
x
x

1
0
0
x
x
x
x
x
x
x
x
0
0
1
1
0
0
1
1
0
0
x
x
x

1
0
1
x
x
x
x
x
x
x
x
0
1
0
1
0
1
0
1
0
1
x
x
x

Se procede entonces con la simplificacin de cada salida a travs de mapas de


Karnaugh.

Para W:
W = m (14, 15, 27, 28, 41, 42, 59, 60) + d (5-10, 21-23, 29-31, 39, 43-50, 61-63)

W= BCD + CDE + BCEF + ABCF + BCEF


Para X:

14

X = m (4, 11-13, 20, 24-26, 36-38, 40, 55-58) + d (5-10, 21-23, 29-31, 39, 43-50,
61-63)

X= ABCD + CDEF + BCDE + BCDF + CDEF + ACD + BCD + BDE


Para Y:
Y = m (2, 3, 12, 13, 18, 19, 25, 26, 34, 35, 38, 40, 53, 54, 57, 58) + d (5-10, 2123, 29-31, 39, 43-50, 61-63)

Y = BEF + BCE + ACE + BCEF + ABEF + ACEF


Para Z:
Z = m (1, 3, 11, 13, 15, 17, 19, 24, 26, 28, 33, 35, 37, 40, 42, 52, 54, 56, 58, 60)
+ d (5-10, 21-23, 29-31, 39, 43-50, 61-63)

Z = BCF + ABF + CDF + ACF + ABF + BCD


Se tienen entonces las siguientes expresiones:

15

W= BCD + CDE + BCEF + ABCF + BCEF


X= ABCD + CDEF + BCDE + BCDF + CDEF + ACD + BCD + BDE
Y = BEF + BCE + ACE + BCEF + ABEF + ACEF
Z = BCF + ABF + CDF + ACF + ABF + BCD
Con las expresiones se procede a la creacin del cdigo VHDL en TINA. El
cdigo es el siguiente:
------------------------------------- TINA VHDL Macro Description Begin
--- entity_name:ckto2;
-- arch_name:ignored;
-- ports:a,b,c,d,e,f;w,x,y,z;
--- TINA VHDL Macro Description End
-----------------------------------ENTITY ckto2 IS
PORT(
A,B,C,D,E,F
W,X,y,Z
END ckto2;

:IN
:OUT

BIT;
BIT);

ARCHITECTURE arch_ckto2 OF arch_ckto2 IS


BEGIN
W
<=
(B AND C AND D) OR (C AND D AND E) OR ((NOT B) AND C AND E AND(NOT F)) OR (A
AND (NOT B) AND C AND F) OR (B AND C AND E AND F);
X
<=
((NOT A) AND (NOT B) AND C AND (NOT D)) OR (C AND (NOT D) AND (NOT E) AND
(NOT F)) OR ( B AND C AND (NOT D) AND (NOT E)) OR ( B AND C AND (NOT D) AND (NOT F)) OR
((NOT C) AND D AND E AND F) OR ((NOT A) AND (NOT C) AND D ) OR ((NOT B) AND (NOT C) AND D)
OR ((NOT B) AND D AND (NOT E));
y
<=
(B AND E AND (NOT F)) OR ((NOT B) AND (NOT C) AND E) OR ((NOT A) AND (NOT C)
AND E) OR ((NOT B) AND C AND (NOT E) AND (NOT F)) OR (A AND B AND (NOT E) AND F) OR ((NOT
A) AND C AND (NOT E) AND F);
Z
<=
((NOT B) AND (NOT C) AND F) OR ((NOT A) AND (NOT B) AND F) OR (C AND (NOT D)
AND (NOT F)) OR ((NOT A) AND (NOT C) AND F) OR (A AND B AND (NOT F)) OR (B AND C AND D);
END arch_ckto2;

16

La siguiente es la grfica del funcionamiento del circuito.

Funcionamiento de circuito en TINA.

17

RESULTADOS DE INVESTIGACIN

18

Investigacin de las libreras existentes para VHDL, las caractersticas,


elementos que contiene, como llegar a stas y cmo utilizarlas.
Library: Contiene un listado de todas las libreras utilizadas en el diseo.
Package: Es una forma para almacenar y usar informacin til que describe a un
modelo (relacionada con Library).
Una librera es una coleccin de piezas de cdigo usualmente empleadas.
Esto permite poder reusar esas piezas compartirlas con otros diseos.
Sintaxis:
LIBRARY <nombre de la librera>;
USE <nombre de un package>;
Ejemplo: LIBRARY ieee;
USE ieee.std_logic_1164;
El cdigo es escrito en forma de Funciones (Functions), Procesos (Process),
Procedimientos (Procedures) Componentes (Components) y luego ubicados
dentro de Paquetes (Packages) para ser compilados dentro de la Librera destino.
Libreras ms comunes del paquete VHDL :
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_arith.all;
USE ieee.std_logic_signed.all;
USE ieee.std_logic_unsigned.all;
LIBRARY std;
Librera que no requiere ser declarada en un diseo.
Contiene declaraciones de tipos de datos y funciones de entrada-salida de texto
entre otros.
USE [Link];
USE [Link];
Standard: donde se definen los tipos lgicos y numricos bsicos
TEXTIO: Define tipos para la creacin de texto y procedimientos para el ingreso e
impresin de textos.
LIBRARY work;

19

USE [Link];
Librera que no requiere ser declarada en un diseo.
Es donde se salvan todos los archivos relacionados con el diseo en curso
(Creados por el compilador, simulador, etc.)
USE ieee.std_logic_1164:
Especifica el STD_LOGIC (8 niveles) y el STD_ULOGIC (9 niveles) para sistemas
lgicos multinivel.
De todos estos niveles slo 3 son sintetizables sin restricciones; el resto sirven
para simulacin.
USE ieee.std_logic_arith:
Especifica tipos de datos con y sin signo, operaciones aritmticas y de
comparacin numrica y funciones para conversin de datos.
USE ieee.std_logic_signed:
Permite operaciones con signo con datos tipo STD_LOGIC_VECTOR.
USE ieee.std_logic_unsigned:
Permite operaciones sin signo con datos tipo STD_LOGIC_VECTOR.

20

OBSERVACIONES
Circuito 1.
El software utilizado solamente posee displays de 7 segmentos de nodo comn,
es decir que se activan con un 0 a la entrada.
El desarrollo del circuito 1 se hizo de acuerdo a un display de ctodo comn (que
cada entrada de activar con un 1). Debido a ello fue necesario negar cada
expresin que haba sido obtenida. Se poda tambin haber hecho el anlisis
nuevamente desde la tabla de verdad, en vez de poner 1 poner 0 y en vez de
0, 1.
Si el circuito llegara a implementarse fsicamente se hara con un display de
ctodo comn.
Circuito 2.
Al usar Dont care conditios al ingresar un cdigo no vlido a la entrada, no se
puede predecir el funcionamiento de la salida. Lo ideal sera que nunca se
ingresaran cdigos no vlidos o se pudiera tener una salida especial que indique
cuando un cdigo ingresado no es vlido. Por las peticiones del diseo de circuito
se utilizaron las Dont care conditions y por ello funciona de esa forma.

21

CONCLUSIONES
El BCD sigue siendo ampliamente utilizado para almacenar datos, en aritmtica
binaria o en electrnica. Los nmeros se pueden mostrar fcilmente en
visualizadores de siete segmentos enviando cada cuarteto BCD a un visualizador.
La BIOS de un ordenador personal almacena generalmente la fecha y la hora en
formato BCD; probablemente por razones histricas se evit la necesidad de su
conversin en ASCII.
La ventaja del cdigo BCD frente a la representacin binaria clsica es que no
hay lmite para el tamao de un nmero. Los nmeros que se representan en
formato binario estn generalmente limitados por el nmero mayor que se pueda
representar con 8, 16, 32 o 64 bits. Por el contrario, utilizando BCD, aadir un
nuevo dgito slo implica aadir una nueva secuencia de 4 bits.
Los mapas de Karnaugh son de gran ayuda para la simplificacin de expresiones
lgicas, pues de una forma relativamente sencilla puede llegarse a la mnima
expresin.
Los software de simulacin con VHDL nos permiten conocer el comportamiento
del circuito sin necesidad de implementarlo fsicamente ahorrando de esa forma
tiempo y dinero, a la vez que se adquiere mayor conocimiento sobre el circuito.

22

BIBLIOGRAFA

[Link]
[Link]
Anlisis y diseo de circuito lgicos y digitales Victor Nelson. 1 edicin.
Prentice Hall.
Tina Help

23

También podría gustarte