Thiết kế mạch chuyển mã từ Gray sang BCD 8421 Môn kỹ thuật xung số Khoa Công nghệ thông tin Đại học Bách khoa Đà Nẵng
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
BÀI TẬP
KỸ THUẬT XUNG SỐ
THIẾT KẾ MẠCH CHUYỂN ĐỔI MÃ
TỪ GRAY SANG BCD 8421
Đà Nẵng, ngày 8 tháng 4 năm 2010.
Trang 21 Nhận xét:
- Trong thực tế để mã hóa số thập phân, người ta sử dụng số nhị phân 4 bit tương ứng với 16 tổ hợp mã nhị phân phân biệt Do việc chọn 10 tổ hợp trong số 16 tổ hợp đó để
mã hóa các ký hiệu thập phân từ 0 đến 9 nên xuất hiện nhiều loại mã BCD khác nhau như: BCD 8421, BCD 7421, BCD 5421, BCD 2421, Gray…
- Ta nhận thấy mã Gray được suy ra từ mã BCD 8421 bằng cách: các bit 0,1 đứng sau bit 0 (ở mã BCD 8421) khi chuyển sang mã Gray thì được giữ nguyên, còn các bit 0,1 đứng sau bit 1 khi chuyển sang mã Gray thì đổi ngược lại
Thiết kế các dạng logic:
Dạng OR-AND: tạo biểu thức tối giãn dạng OR-AND của nguyên hàm
Dạng AND-OR: tạo biểu thức tối giãn dạng OR-AND của đảo hàm rồi phủ định một lần triển khai đến cấp biến
Dạng NOR-AND: tạo biểu thức tối giản dạng OR-AND của đảo hàm rồi phủ định một lần nhưng không triển khai
Dạng NOR-NOR: tạo biểu thức tối giãn dạng AND-OR rồi phủ định hai lần triển khai đến cấp số hạng
Dạng NAND-NAND: tạo biểu thức tối giãn dạng OR-AND của nguyên hàm rồi phủ định hai lần triển khai đến cấp số hạng
2 Bảng công tác:
Số
thập
phân
Tổ
hợp
thừa
Mạch chuyển mã GrayBCD841
Trang 33 Lập và tối giãn biểu thức logic cho các đầu ra:
3.1 Dùng định lý logic:
- Để tạo biểu thức tối giãn của nguyên hàm ta or tất cả các tổ hợp làm hàm ra bằng
1 và các tổ hợp thừa, của đảo hàm ta or tất cả các tổ hợp làm hàm ra bằng 0 và các tổ hợp thừa
* Đầu k: Ta có k(a,b,c,d) = ∑(8,9,10,11,12,13,14,15)
a
ac c
a
abc c b c b c
ab
abcd d
abc cd b d c b d c b d c b d c ab d c ab
k
* Đầu l: Ta có l(a,b,c,d) = ∑(4,5,6,7,10,11,12,13,14,15)
b
ac b a b
ac c b a b
abc c b c b c b bc
a
abcd d
abc cd b d c b d c b a d c b d c b d c b bcd a d bc
a
l
* Đầu m: Ta có m(a,b,c,d) = ∑(2,3,6,7,10,11,12,13,14,15)
c
b
c
b
ac b a
c
b
c
b
ac c b a ac c
b
c
b
ac c b a c
b
c
b
abc c b a c b a c
b
c
b
abcd d
abc cd b a d c b a d c b a d c b a d c b d c b d c b a
cd
b
m
) (
) (
* Đầu n: Ta có n(a,b,c,d) = ∑(1,3,5,7,9,10,11,12,13,14,15)
ad bcd d c b d
c
b
d
c
b
ac b ad bcd d c b d
c
b
d
c
b
ac b a abd bcd
d c b d
c
b
d
c
b
ac c b a abd bcd d c b d
c
b
d
c
b
abc c b c b abd bcd d c b d
c
b
d
c
b
abc d c ab abc bcd a c b d c b c b a d c
b
d
c
b
abc c b c b a d c ab d c b bcd a d
c
b
a
d
c
b
abcd d
abc cd b d c b a d c b a d c b a d c ab d c b bcd a d c b
a
d
c
b
n
) (
) (
) (
) (
) (
) (
3.2 Dùng bảng Karnaugh:
- Mỗi mạch có 4 đầu ra k, l, m, n, mỗi đầu ra là một hàm của 4 biến vào a, b, c, d.
Ta lập cho mỗi đầu ra một bảng Karnaugh
- Để tạo biểu thức tối giãn của nguyên hàm ta đánh vòng các ô làm hàm ra bằng 1, của đảo hàm ta đánh vòng các ô làm hàm ra bằng 0
- Những tổ hợp thừa được đánh x và không bắt buộc nằm trong vòng
* Đầu k
Trang 4a
a
k
k a
* Đầu l
b
b a
a
b
l
lab
cd
ab 00 01 11 10
00 0 0 0 0
01 0 0 0 0
11 1 1 x x
10 x x x x
cd
ab 00 01 11 10
00 0 0 0 0
01 1 1 1 1
11 0 0 x x
10 x x x x
Trang 5* Đầu m:
c b c
b
bc
c b a
a
c b c b
mabcb c
* Đầu n:
b c d b c d b cd
d c b d
c b a
bcd
d c b
d a
ad
ad bcd d c b d c b d c b
n b c d bc db cdb c d d
cd
ab 00 01 11 10
00 0 0 1 1
01 1 1 0 0
11 0 0 x x
10 x x x x
cd
ab 00 01 11 10
00 0 1 0 1
01 1 0 1 0
11 0 1 x x
10 x x x x
Trang 64 Thiết kế các dạng logic:
4.1 Dạng OR-AND:
4.1.1 Biểu thức:
a
k
b
l
c b c b
ad d c b d c b bcd d c b
4.1.2 Vẽ mạch:
k
a
l b
c
m
d
n
Trang 74.2 Dạng AND-OR:
4.2.1 Biểu thức:
a
k
a
k
k
b a
l
b b
a
l
l
c b bc a
) )(
(b c b c a
c b bc a c b bc a
m
d a d c b cd b d bc d c b
d a d c b cd b d bc d c b d a d c b cd b d bc d c b
n
(abcd)(bcd)(bcd)(bcd)(ad)
4.2.2 Vẽ mạch:
l b
m c
d
n
Trang 84.3 Dạng NOR-AND:
4.3.1 Biểu thức:
a
k
a
k
k
b a
l
b
a
l
l
c b bc a
c b bc a
m
d a d c b cd b d bc d c b
d d c b cd b d bc d
c
b
n
4.3.2 Vẽ mạch:
k a
l
b
m
c
n
d
4.4 Dạng NOR-NOR:
4.4.1 Biểu thức:
Trang 9k
a
k
k
b
l
b a b
l
l
) )(
(b c b c
a
c b c b a c b c b
a
m
) )(
)(
)(
)(
(a b c d b c d b c d b c d a d
) )(
)(
)(
)(
(a b c d b c d b c d b c d a d
n
abcdbcdbcdbcdad
4.4.2 Vẽ mạch:
l b
c
m
d
n
4.5 Dạng NAND-NAND:
4.5.1 Biểu thức:
a
k
a
k
k
Trang 10l
b
l
l
c b c b
c b c b c b c b m
ad d c b d c b bcd d c b
ad d c b d c b bcd d c b ad d c b d c b bcd d c b
n
4.5.2 Vẽ mạch:
k
a
l b
c
m
d
n
5 Viết chương trình mô phỏng:
5.1 Chương trình:
#include<conio.h>
#include<stdio.h>
main()
Trang 11int a,b,c,d,x,y,z,t,i=0;
printf("\n\t\t\t\tBANG CHUYEN MA\n");
printf("\n\t\t\t| -|");
printf("\n\t\t\t|STT| GRAY | | BCD8421 |");
printf("\n\t\t\t| -| -| -| -|");
for(x=0;x<=1;x++)
for(y=0;y<=1;y++)
for(z=0;z<=1;z++)
for(t=0;t<=1;t++)
{
if(z==0) d=t; else d=!t;
if(y==0) c=z; else c=!z;
if(x==0) b=y; else b=!y;
a=x;
if(i<10) printf("\n\t\t\t| %d |%2d%2d%2d%2d | ===> |%2d%2d%2d%2d |",i,a,b,c,d,a,
!a&&b,(!a&&b&&!c||(!b&&c)),(!b&&!c&&d)||(b&&c&&d)||(a&&d)||(!b&&c&&!d)|| (!a&&b&&!c&&!d));
i++;
}
printf("\n\t\t\t| -|");
getch();
}
5.2 Kết quả: