Thiết kế mạch chuyển mã từ Gray sang Dư 3 Môn kỹ thuật xung số trường Đại học Bách Khoa Đà Nẵng
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
KHOA CÔNG NGHỆ THÔNG TIN
- -BÀI TẬP
KĨ THUẬT XUNG SỐ THIẾT KẾ MẠCH CHUYỂN MÃ TỪ
GRAY SANG DƯ 3
Trang 2Đề số 25:
Mã đầu vào: GRAY Mã đầu ra: DƯ 3
Bài làm
:
GRAY DU 3
1.Phân tích mạch:
- Bảng công tác:
Số thập
phân
GRAY ABCD
DƯ 3 F0F1F2F3
Tổ hợp
thừa
2.Tối giản biểu thức logic:
CODE
Trang 3a)Dùng bảng K:
D C
B
BD A
0
F =
D C A
B+
1
F =C D+A BD
B C D
cd
ab 00 01 11 10
cd
ab 00 01 11 10
cd
ab 00 01 11 10
01
cd
ab 00 01 11 10
a
Trang 4
F0=B C+BD+AC D F1=C D+ABD+A B D
cd
ab 00 01 11 10
00
cd
ab 00 01 11 10
cd
ab 00 01 11 10
3
D C B A D C B D C B BCD
2
F =D
Trang 5
F2=D
D C B A D C B
A
ABCD
D C AB D C B A D BC A CD B A D
C
B
A
F
+ +
+
+ +
+ +
=
3
b) Tối giản bằng định lý logic:
D AC BD
C
B
D C B A D ABC ABCD
D C AB D BC A BCD A D C B A D
C
AB
F
+
+
=
+ +
+ +
+ +
+
=
0
D B A ABD
D
C
D C B A D ABC ABCD
D BC A D C AB D C B A CD B A D
C
B
A
F
+ +
=
+ +
+ +
+ +
+
=
1
D
D BC D C B D C
B
D
C
B
D ABC D
C B A D C B A D BC A D C B A D C AB D C B A D
C
B
A
F
=
+ +
+
=
+ +
+ +
+ +
+
=
2
D C B A D C B A ABCD D
C AB D C B A D BC A CD B A D
C
B
A
cd
ab 00 01 11 10
Trang 63) Thiết kế mạch, vẽ mạch, viết chương trình mô phỏng: a) Dạng OR-AND:
- Ta có:
+ F0 =B C+BD+AC D
+ F1 =C D+ABD+A B D
+ F2 =D
+
Trang 7b) Dạng AND-OR:
- Ta có:
+ F0 = (A+B)(A+B+D)(A+C+D)(A+B+C+D)
+ F1 = (C+D)(A+B+D)(A+B+D)
+ F2 =D
+
A
B
C
D
[3]
[4]
[5]
[6]
[9]
[10]
[11]
[15]
[18]
1
0
F0
F1 F2
F3
Trang 8- Ta có:
+
D C B A D C A D B
A
B
A
D C B A D C A D B A B
A
D C B A D C A D B A B
A
F
+ +
+
=
+ + + + + + + + + +
+
=
+ + + +
+ +
+ +
=
) (
) (
) (
)
(
) )(
)(
)(
(
0
+
BD A D B
A
D
C
D B A D B A D C
F
+ +
=
+ + +
+ +
1
+ F2 =D
+
d)Dạng NOR-NOR:
- Ta có:
+
) (
) (
) (
)
(
) )(
)(
)(
(
0
D C B A D C A D B A B
A
D C B A D C A D B A B
A
F
+ + + + + + + + + +
+
=
+ + + +
+ +
+ +
=
+
) (
) (
)
(
) )(
)(
(
1
D B A D B A D
C
D B A D B A D
C
F
+ + + + + +
+
=
+ + +
+ +
=
+ F2 =D
+
) (
) (
) (
) (
) (
) (
) (
) (
) )(
(
) )(
)(
)(
)(
)(
(
3
D C B A D C B A D C
B
A
D C B A D C B A D C B A D C B A D C
B
A
D C B A D
C
B
A
D C B A D C B A D C B A D C B A D C B A D C B
A
F
+ + + + + + + + +
+
+
+
+ + + + + + + + + + + + + + + + +
+
+
=
+ + + +
+
+
+ + + +
+ + +
+ + +
+ + +
+ + +
+
+
=
Trang 9
A
B
C
D
[1]
[2] [3]
[4]
[5]
[6]
[7] [8]
[9]
[10]
[11] [12]
[13]
[14]
[15] [16] [17]
[23] [24] 0
0
0
0
0
0
0 0
F0
F1
F2 F3
d) Dạng NAND-NAND:
- Ta có:
+
D AC
BD
C
B
D AC BD C B D AC BD C
B
F
.
.
0
=
+ +
= +
+
=
+
D B A ABD
D
C
D B A ABD D
C
F
.
1
=
+ +
=
+F3 =D
+
D C B A D C B A ABCD D
C AB D C B A D BC A CD B A
D
C
B
A
D C B A D C B A ABCD D
C AB D C B A D BC A CD B A D C
B
A
F
.
.
.
.
3
=
+ +
+ +
+ +
+
=
Trang 10
B
C
D
[1] [2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10] [11]
[12]
[13]
[14]
[15] [16]
[17]
[18]
[19]
[22]
1
1
1
1
1 1
F0
F1
F2 F3
Mô phỏng mạch logic bằng C:
#include <conio.h>
#include <stdio.h>
void gray(char i, char *a, char *b, char *c, char *d);
main()
{
char a,b,c,d,f0,f1,f2,f3,i,j;
printf("Mach logic GRAY -> Du 3\n\n");
printf(" So A B C D F0 F1 F2 F3 \n");
for (i=0;i<=15;i++)
{
gray(i,&a,&b,&c,&d);
f0=(b&!c|b&d|a&c&!d)+'0';
f1=(c&!d|a&b&d|!a&!b&d)+'0';
f2=(!d)+'0';
Trang 11f3=(a&b&c&d|!a&!b&c&d|!a&b&!c&d|a&!b&!c&d|!a&b&c&!d|a&! b&c&!d|a&b&!c&!d|!a&!b&!c&!d)+'0';
printf(" %2d %d %d %d %d %2c %2c %2c %2c
\n",i,a,b,c,d,f0,f1,f2,f3);
}
getch();
}
void gray(char i, char *a, char *b, char *c, char *d)
{
char j,r;
j = i >>1 ;
r = (~i&j|i&~j);
*d = r & 1 ; r/=2;
*c = r & 1 ; r/=2;
*b = r & 1 ; r/=2;
*a = r & 1 ;
}
- Kết quả trên màn hình:
Mach logic GRAY -> Du 3
So A B C D F0 F1 F2 F3
0 0 0 0 0 0 0 1 1
1 0 0 0 1 0 1 0 0
2 0 0 1 1 0 1 0 1
3 0 0 1 0 0 1 1 0
4 0 1 1 0 0 1 1 1
5 0 1 1 1 1 0 0 0
6 0 1 0 1 1 0 0 1
Trang 127 0 1 0 0 1 0 1 0
8 1 1 0 0 1 0 1 1
9 1 1 0 1 1 1 0 0