Bộ đếm thập phân không đồng bộ(dùng JK-FF hoặc RS-FF).
- Viết các hàm kích của các FF của bộ đếm thập
phân đồng bộ(đếm thuận hay đếm ngược theo
yêu cầu), bỏ đi tín hiệu đồng bộ.
- Xung đếm x được đưa vào đầu vào xung nhịp
của FF có trọng số nhỏ nhất.
- Đầu vào xung nhịp của mỗi FF tiếp theo nối
với phần chung trong các biểu thức của J và K
của nó
144 trang |
Chia sẻ: thienmai908 | Lượt xem: 1406 | Lượt tải: 1
Bạn đang xem trước 20 trang nội dung tài liệu Chuyên đề Mạch dãy, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
nh dấu x là không xác định do tổ hợp
biến vào tương ứng không thể xảy ra, tại đây có
thể ghi trạng thái chuyển đến và tín hiệu ra tùy ý
sao cho có thể tối thiểu hóa trạng thái tôt nhất.
- Mỗi trạng thái đều có một trạng thái chuyển
đến là chính nó, đó là các trạng thái ổn định.
a1/0a1/0a1/0a1/0a1/010
a4/0a4/0a2/1a2/1a2/111
a3/0a3/0a3/0a3/0a3/001
a0/0a0/0a0/0a0/0a0/000
a4a3a2a1a0x1x2
4- Tối thiểu hóa trạng thái:
a012/0a012/010
a34/0a012/111
a34/0a34/001
a012/0a012/000
a34a012x1x2
5- Mã hóa nhị phân trạng thái:
Q=1a34
Q=0a012 Q=0
Q=1
21xx
2x
1
21
2
xx
x +
2x
6- Xây dựng hệ phương
trình của mạch, dùng
RS-FF.
21xxQy =
212121. xxxxQxxQS =+=
2xR =
21xxS =
2xR =
7- Sơ đồ dùng RS-FF kích bằng mức thấp:
S
R Q
Qx1
x2
y
2.8 MỘT SỐMẠCH DÃY THƯỜNG GẶP
2.8.1 THIẾT KẾ CÁC BỘ ĐẾM
2.8.2 CÁC BỘ GHI DỊCH
2.8.1 THIẾT KẾ CÁC BỘ ĐẾM (Counter)
• Bộ đếm là một mạch dãy tuần hoàn với chu kỳ
k trạng thái (a0, a1, ... ak-1) bằng hệ số đếm, có
một đầu vào đếm x, một đầu ra y. Dưới tác dụng
của t/h vào x, mạch chuyển trạng thái theo một
trình tự nhất định. Khi bộ đếm đang ở trạng thái
thứ k-1 mà có t/h vào x, mạch chuyển vể trạng
thái ban đầu a0 và cho ra t/h y=1.
a0 a1 a2 ak-1
x/0 x/0 x/0
x/1
0/x 0/x 0/x 0/x
• Phân loại các bộ đếm.
Theo cách làm việc: đồng bộ (Synchronous) và
không đồng bộ hay dị bộ (Asynchronous).
Theo hướng đếm: đếm thuận (Up Counter) và
đếm ngược (Down Counter).
Theo mã đếm: mã nhị phân, mã Gray, mã BCD,
mã Johnson, mã vòng...
Theo hệ số đếm k: k = 2n và k ≠ 2n
Theo khả năng lập trình (hệ số đếm, hướng
đếm...): không có khả năng và có khả năng lập
trình.
• Các bước thiết kế bộ đếm.
1- Vẽ đồ hình trạng thái.
2- Xác định số FF n:
- Mã nhị phân và mã Gray: n ≥ log2k
- Mã vòng: n = k
- Mã Johnson: n = (1/2)k
3- Mã hóa các trạng thái theo mã đã cho.
4- Xác định hàm ra và các hàm kích các FF (từ
đồ hình hoặc từ bảng chuyển trạng thái).
5- Vẽ sơ đồ bộ đếm.
2.8.1.1 Thiết kế các bộ đếm đồng bộ.
• Bộ đếm thuận nhị phân
đồng bộ có k = 2
- Đồ hình trạng thái:
- Số FF: n = log2k = 1
- Mã hóa trạng thái:
a0 mã hóa là: Q = 0
a1 mã hóa là: Q = 1
- Hàm ra: y = xQ
Hàm kích cho RS-FF:
a0 a1
x/0
x/1
0/x 0/x
Q=0 Q=1
x/0
x/1
0/x 0/x
QxS = xQR =
10x Q
1
0
01
x0
S
10x Q
1
0
10
0x
R
RS-FFx
Q
Q
S
R
C
Hàm kích cho JK-FF:
J = x K = x
Hàm kích cho D-FF:
Hàm kích cho T-FF:
QxD =
xT =
D-FF
D
C
Q
Qx
T-FF
T Q
Qx C
1
JK-FF
J
K
Q
Q
x
1
C
• Bộ đếm thuận nhị phân đồng bộ có k = 4
- Đồ hình trạng thái:
a0 a1 a2 a3
x/0 x/0 x/0
x/1
0/x 0/x 0/x 0/x
Q1Q0A
11a3
10a2
01a1
00a0
- Số FF: n = log24 = 2
- Mã hóa trạng thái:
00 01 10 11
x/0 x/0 x/0
x/1
0/x 0/x 0/x 0/x
- Hàm ra: y = xQ1Q0 Hàm kích cho RS-FF:
10011
0xx00
10110100x
Q1Q0S0
x0101
xx000
10110100x
Q1Q0S1
010x1
00xx0
10110100x
Q1Q0R1
01101
x00x0
10110100x
Q1Q0R0
00 QxS = 011 QQxS =
00 xQR = 011 QxQR =
RS-FF
Q1
1Q
1S
1R
CRS-FFx
Q0
0Q
0S
0R
C
Hàm kích cho JK-FF: J0 = K0 = x J1 = K1 = xQ0
JK-FF
Q1
1Q
1J
1K
CJK-FFx
Q0
0Q
0J
0K
C
1
• Bộ đếm ngược nhị phân đồng bộ có k = 4
- Đồ hình trạng thái:
a0 a1 a2 a3
x/0 x/0 x/0
x/1
0/x 0/x 0/x 0/x
Q1Q0A
11a3
10a2
01a1
00a0
- Số FF: n = log24 = 2
- Mã hóa trạng thái:
00 01 10 11
x/0 x/0 x/0
x/1
0/x 0/x 0/x 0/x
- Hàm ra, hàm kích cho RS-FF:
10011
0xx00
10110100x
Q1Q0S0
0x011
xx000
10110100x
Q1Q0S1
10x01
00xx0
10110100x
Q1Q0R1
01101
x00x0
10110100x
Q1Q0R0
00 QxS = 011 .QQxS =
00 xQR = 011 QxQR =
01.QQxy =
Hàm kích cho JK-FF: J0 = K0 = x
RS-FF
Q1
1Q
1S
1R
CRS-FFx Q0
0Q
0S
0R
C
011 QxKJ ==
JK-FF
Q1
1Q
1J
1K
CJK-FFx
Q0
0Q
0J
0K
C
1
• Bộ đếm thuận mã Gray đồng bộ có k = 4
- Đồ hình trạng thái đã mã hóa nhị phân:
00 01 11 10
x/0 x/0 x/0
x/1
0/x 0/x 0/x 0/x
x1001
x00x0
10110100x
00x11
0xx00
10110100x
- Hàm ra, hàm kích cho RS-FF:
Q1Q0S0
0x101
xx000
10110100x
Q1Q0S1
100x1
00xx0
10110100x
Q1Q0R1Q1Q0R0
10 QxS = 01 xQS =
10 xQR = 01 QxR =
01QxQy =
Hàm kích cho JK-FF:
Sơ đồ cũng giống như
dùng RS-FF.
RS-FF
Q1
1Q
1S
1R
CRS-FFx
Q0
0Q
0S
0R
C
10 QxJ = 01 xQJ =
10 xQK = 01 QxK =
• Bộ đếm ngược mã Gray đồng bộ có k = 4
- Đồ hình trạng thái đã mã hóa nhị phân:
00 01 11 10
x/0 x/0 x/0
x/1
0/x 0/x 0/x 0/x
01x01
00xx0
10110100x
001x1
x00x0
10110100x
x0011
xx000
10110100x
1x001
0xx00
10110100x
- Hàm ra, hàm kích cho RS-FF:
Q1Q0S0 Q1Q0S1
Q1Q0R1Q1Q0R0
10 xQS = 01 QxS =
10 QxR = 01 xQR =
01.QQxy =
Hàm kích cho JK-FF:
Sơ đồ cũng giống như
dùng RS-FF.
RS-FF
Q1
1Q
1S
1R
CRS-FFx
Q0
0Q
0S
0R
C
10 QxK = 01 xQK =
10 xQJ = 01 QxJ =
• Bộ đếm thuận thập phân đồng bộ (k = 10) mã
NBCD dùng JK-FF.
- Số FF: n ≥ log210 = 4
- Bảng chuyển trạng thái đã mã hóa nhị phân
bằng 4 biến D, C, B, A ứng với 4 FF:
x10x0xx1000010019
1x0x0xx0100110008
x1x1x11x100001117
1xx0x00x011101106
x11xx00x011001015
1x0xx00x010101004
x1x11x0x010000113
1xx00x0x001100102
x11x0x0x001000011
1x0x0x0x000100000
JAKAJBKBJCKCJDKDD'C'B'A'DCBAtt
- Hàm kích cho JK-FF: JA = KA = 1
CBAJD = AKD =
xxxx11
xxxx10
010001
000000
10110100DC
BAJD
xxxx11
xx1010
xxxx01
xxxx00
10110100DC
BAKD
xxxx11
xx0010
xxxx01
010000
10110100DC
BAJC
BAJC = BAKC =
xxxx11
xxxx10
010001
xxxx00
10110100DC
BAKC
xxxx11
xx0010
xx1001
xx1000
10110100DC
BAJB
ADJB = AKB =
xxxx11
xxxx10
01xx01
01xx00
10110100DC
BAKB
JK-FF
B
BJ
BK
kCJK-FF
x
A
AJ
AK
kC
1
A B
JK-FF
D
DJ
DK
kCJK-FF
C
CJ
CK
kC
C D
• Bộ đếm ngược thập phân đồng bộ (k = 10)
mã NBCD dùng JK-FF.
- Số FF: n ≥ log210 = 4
- Bảng chuyển trạng thái đã mã hóa nhị phân
bằng 4 biến D, C, B, A ứng với 4 FF:
x10x0xx0100010019
1x1x1xx1011110008
x1x0x00x011001117
1xx1x00x010101106
x10xx00x010001015
1x1xx10x001101004
x1x00x0x001000113
1xx10x0x000100102
x10x0x0x000000011
1x0x0x1x100100000
JAKAJBKBJCKCJDKDD'C'B'A'DCBAtt
xxxx11
xx0110
xxxx01
xxxx00
10110100DC
xxxx11
xxxx10
000001
000100
10110100DC
- Hàm kích cho JK-FF: JA = KA = 1
ABCJD ..= AKD =
BAJD BAKD
xxxx11
xxxx10
000101
xxxx00
10110100DC
xxxx11
xx0110
xxxx01
000000
10110100DC
BAJC
ADJC = ABKC .=
BAKC
xxxx11
xxxx10
10xx01
10xx00
10110100DC
xxxx11
xx0110
xx0101
xx0000
10110100DC
BAJB
ADACADACJB .=+= AKB =
BAKB
JK-FF
B
BJ
BK
kCJK-FF
x
A
AJ
AK
kC
1
A B
JK-FF
D
DJ
DK
kCJK-FF
C
CJ
CK
kC
C D
2.8.1.2 Thiết kế các bộ đếm không đồng bộ.
• Bộ đếm nhị phân không đồng bộ.
- Mỗi FF mắc kiểu bộ đếm nhị phân đồng bộ k=2.
- Xung đếm x được đưa vào đầu vào xung nhịp của
FF có trọng số nhỏ nhất (sườn âm tích cực).
- Đầu vào xung nhịp của mỗi FF tiếp theo nối với
đầu ra thuận của FF tầng ngay trước nếu là bộ
đếm thuận, nối với đầu ra đảo của FF tầng ngay
trước nếu là bộ đếm ngược.
JK-FF
J
K
Q
Q
1
C JK-FF
J
K
Q
Q
1
CJK-FF
J
K
Q
Q
x
1
C
Bộ đếm thuận dùng JK-FF:
JK-FF
J
K
Q
Q
1
C JK-FF
J
K
Q
Q
1
CJK-FF
J
K
Q
Q
x
1
C
Bộ đếm ngược dùng JK-FF:
• Bộ đếm thập phân không đồng bộ (dùng JK-
FF hoặc RS-FF).
- Viết các hàm kích của các FF của bộ đếm thập
phân đồng bộ (đếm thuận hay đếm ngược theo
yêu cầu), bỏ đi tín hiệu đồng bộ.
- Xung đếm x được đưa vào đầu vào xung nhịp
của FF có trọng số nhỏ nhất.
- Đầu vào xung nhịp của mỗi FF tiếp theo nối
với phần chung trong các biểu thức của J và K
của nó
VD. Bộ đếm thập phân thuận dùng JK-FF.
- Các hàm kích: JA = KA = 1
CBAJD = AKD =
BAJC = BAKC =
ADJB = AKB =
- Đầu vào xung nhịp cho từng FF:
ACD =BACC =
xCA = ACB =
JK-FF
B
BJ
BK
kCJK-FFx
A
AJ
AK
kC
1
A B
JK-FF
D
DJ
DK
kCJK-FF
C
CJ
CK
kC
C D
1
2.8.2 BỘ GHI DỊCH
2.8.2.1 Các bộ ghi dịch.
• Bộ ghi dịch là một dãy các FF nối tiếp nhau,
đầu ra của FF này nối với đầu vào FF tiếp theo,
dùng để lưu giữ thông tin và thực hiện dịch số
(dịch phái hay dịch trái).
• Ứng dụng: nhớ số liệu trong các CPU, các cổng
vào ra; chuyển số liệu song song thành nối tiếp
và ngược lại; dùng thiết kế bộ đếm; tạo dãy tín
hiệu nhị phân tuần hoàn theo yêu cầu cho trước.
• Bộ ghi dịch 4 bit, nạp vào và lấy ra nối tiếp
hoặc song song, dịch phải.
Q1
1Q
1S
1R
C
Q0
0Q
0S
0R
C
Q3
3Q
3S
3R
C
Q2
2Q
2S
2R
C
Pr Pr Pr Pr
ClCl Cl Cl
Ai Bi Ci Di
Ao Bo Co Do
x
Ck
Preset
Clear
• Bộ ghi dịch 4 bit, dịch phải, dịch trái.
Ai Bi Ci Di
Ao Bo Co DoCk1
Q0
0Q
0S
0R
Ck Q1
1Q
1S
1R
Ck Q2
2Q
2S
2R
Ck Q3
3Q
3S
3R
Ck
Ck2
X
MC
2.8.2.2 Thiết kế các bộ đếm từ bộ ghi dịch.
1- Xác định số bit của bộ ghi dịch:
n => log2k, với k là hệ số đếm.
2- Chọn chu trình chuyển trạng thái của bộ ghi
dịch.
3- Xác định hàm hồi tiếp và tối thiểu hóa.
4- Vẽ sơ đồ bộ đếm.
J
K
A J
K
B J
K
N
Mạch hồi tiếp
Fht
00x010
xx0x11
1x1001
1x0100
10110100DC BA
VD. Thiết kế bộ đếm có k=10 từ bộ ghi dịch.
1- Số bit của bộ ghi dịch: n = 4.
2. Chọn chu trình chuyển trạng thái:
0000 0001 0010 0101 1011
1000 0100 1010 1101 0110
DCBA 1 0 1 1
0
1000
0
3. Xác định hàm hồi tiếp:
BDCADACD
BDCADACDFht
....
..
=
=++=
Fht
Ck
A
AJ
AK
kC
A
B
BJ
BK
kC
B
C
CJ
CK
kC
C
D
DJ
DK
kC
D
4. Sơ đồ bộ đếm:
2.8.2.3 Tạo dãy tín hiệu tuần hoàn từ bộ ghi
dịch.
1- Xác định số bit của bộ ghi dịch:
n => log2L, với L là số bit của dãy (hay chu kỳ).
2- Chọn chu trình chuyển trạng thái của bộ ghi
dịch. Lập bảng chân lý của hàm hồi tiếp, hàm ra.
3- Xác định hàm hồi tiếp và tối thiểu hóa.
4- Xác định hàm ra và tối thiểu hóa.
5- Vẽ sơ đồ.
VD. Thiết kế mạch dùng bộ ghi dịch tạo dãy tuần
hoàn y = 10110110.
1- Xác định số bit của bộ ghi dịch.
L = 8, nên số bit của bộ ghi dịch: n = 3
2- Chọn chu trình chuyển trạng thái.
000 001 010 101
011100 110 111
CBA
1 0 1
1 100
0
000017
100116
101115
011104
111013
110102
001001
110000
yFhtABCS
Bảng chân lý của hàm hồi tiếp và hàm ra.
11101
10010
10110100C
3- Hàm hồi tiếp.
00101
11010
10110100C
BAFht
ABCBCAC
ABCBCACFht
...
.
=
=++=
ABCAAC
ABCAACy
...
.
=
=++=BAy
4- Hàm ra.
Fht
Ck
A
AJ
AK
kC
A
B
BJ
BK
kC
B
C
CJ
CK
kC
C
y
5- Sơ đồ bộ tạo dãy t/h tuần hoàn y = 10110110.
Các file đính kèm theo tài liệu này:
- KTS1_2.pdf