LẬP TRÌNH
HỆ THỐNG NHÚNG
CƠ BẢN
Chương 04: Mạch Tuần Tự
GV:
Email:
Nguyễn Ngọc Tú
Mạch tuần tự
Logic tổ hợp:
NNTu
Ngõ xuất chỉ phụ thuộc vào các ngõ vào
Có thể thực hiện các phép toán thông dụng
Yêu cầu phân lớp ra nhiều cấu trúc
Ưu điểm về chi phí và khả năng linh động
Hê Thống Nhúng - Embedded Systems (W 2008)
2
Mạch tuần tự
Logic tuần tự:
NNTu
Ngõ xuất phụ thuộc vào cả ngõ vào và trạng thái
cũ của ngõ xuất
Lưu thông tin giữa các tính toán, không cần thiết
kế theo tầng lớp
Cần một số loại kiểu bộ nhớ để ghi nhớ giá trị cũ
Hê Thống Nhúng - Embedded Systems (W 2008)
3
Mạch tuần tự
Mạch lưu trữ thông tin
“Trạng thái” theo thời gian
NNTu
Hê Thống Nhúng - Embedded Systems (W 2008)
4
Mạch tuần tự: khái niệm
Ghi nhớ trạng thái cũ: xuất, nhập.
Ngõ xuất từ hệ thống truyền ngược lại cho hệ
thống
Phần tử lưu trữ - mạch lưu thông tin nhị
phân: memory.
NNTu
Hê Thống Nhúng - Embedded Systems (W 2008)
5
Cơ chế đồng bộ (Sync) – Bất đồng
bộ (Async)
Có 2 kiểu mạch tuần tự:
Synchronous (latch mode – mạch lật): biến đổi
theo các bước thời gian không đổi. Đồng bộ bằng
tín hiệu xung theo thời gian clock.
Asynchronous (fundamental mode – mạch cơ bản)
: biến đổi dựa trên các tín hiệu đầu vào theo thời
gian, ngõ xuất có thể biến đổi ở bất cứ thời gian nào
(clockless – không có xung).
NNTu
Hê Thống Nhúng - Embedded Systems (W 2008)
6
Clock: xung
NNTu
Hê Thống Nhúng - Embedded Systems (W 2008)
7
Mạch đồng bộ: Flip flops
Flip-flops nhận dữ liệu từ mạch tổ hợp và xung
đồng bộ clock
NNTu
Hê Thống Nhúng - Embedded Systems (W 2008)
8
Phần tử lưu nhớ
Không thể thay đổi giá trị
Cổng đảo Inverters
Bộ đệm (Buffers)
NNTu
Hê Thống Nhúng - Embedded Systems (W 2008)
9
Mô phỏng sự kiện rời rạc
Để hiểu được hoạt động của mạch tuần tự, cần mô phỏng theo các
sự kiện rời rạc
Các quy luật:
Các cổng đã được mô hình dạng lý tưởng và thời gian trễ cố định
Bất kỳ sự thay đổi trong ngõ vào được coi như là nguyên nhân
biến đổi ngõ xuất
Những thay đổi ngõ xuất được tạo ra sau một khoảng thời gian trễ
khi có sự thay đổi từ ngõ vào
NNTu
Hê Thống Nhúng - Embedded Systems (W 2008)
10
Mô phỏng cổng NAND
Ví dụ: cổng NAND 2 ngõ vào với thời gian trễ là 0.5 ns.
F(Instantaneous)
A
B
DELAY 0.5 ns.
F
Giả sử A,B có giá trị 1 từ trước đó
t=0, A thay đổi sang 0 ở t= 0.8 ns khiến cho F(I)=1.
t (ns) A
B
–∞
1
1
0
1⇒ 0 1
0 1
0.5
0.8 1⇐ 0 1
1.3
NNTu
1
1
F(I)
0
1⇐ 0
F
Ghi chú
0
A=B=1 (trước đó)
0
F(I) chuyển sang 1
1⇐ 0 F chuyển sang 1 sau 0.5 ns
1
F(Instantaneous) chuyển sang 0
1⇒ 0 1
0 1⇒ 0 F chuyển sang 0 sau 0.5 ns
Hê Thống Nhúng - Embedded Systems (W 2008)
11
Mô hình độ trễ của cổng
Giả sử các cổng sau có độ trễ tương ứng
như sau
n = 0.2 ns, n = 0.4 ns,n = 0.5 ns
0.2
NNTu
0.4
Hê Thống Nhúng - Embedded Systems (W 2008)
0.5
12
Mô hình độ trễ của mạch
Xét 1 MUX:
Với hàm:
A
Y = A khi S = 1
Y = B khi S = 0
0.2
S
B
0.4
0.5
Y
0.4
A
B
S
S
Y
“lệch pha” dẫn tới cổng đảo bị trễ
NNTu
Hê Thống Nhúng - Embedded Systems (W 2008)
13
Trạng thái lưu trữ
Khi A gắn với Y ?
Với hàm:
Y = B khia S = 1,
Y(t) phụ thuộc vào
Y(t – 0.9) khi S = 0
0.2
S
B
0.4
0.5
Y
0.4
B
S
S
Y
Mạch tổ hợp đơn giản đã trở thành mạch tuần tự theo thời gian biến đổi của
trạng thái đầu vào
Y được lưu giá trị trong một khoảng thời gian
NNTu
Hê Thống Nhúng - Embedded Systems (W 2008)
14
Trạng thái lưu trữ
Mô phỏng ví dụ trên thay đổi theo thời gian với mỗi bước 100ns,
lúc này 10ns coi như không đáng kể.
Time
B
1
1
1
0
0
0
1
S
0
1
0
0
1
0
0
Y
0
1
1
1
0
0
0
Ghi chú
Y “nhớ” 0
Y = B khi S = 1
Y “nhớ” B = 1 for S = 0
Không đổi Y dù B thay đổi
Y = B khi S = 1
Y “nhớ” B = 0 for S = 0
Không đổi Y khi B thay đổi
Y mô tả trạng thái mạch, chưa phải thực sự là ngõ xuất.
NNTu
Hê Thống Nhúng - Embedded Systems (W 2008)
15
Trạng thái lưu trữ
Giả sử đặt thêm
cổng, tạo trễ
0.4
0.2
Kết quả biến đổi như
sau:
Mạch coi như không
ổn định.
Khi S = 0, mạch trở
thành máy tạo dao
động oscillator. Có
thể làm xung clock
thô.
NNTu
0.5
S
B
0.4
B
0
1
1
1
1
1
S
1
1
0
0
0
0
0.2
Y
0
1
1
0
1
0
Y
Ghi chú
Y = B khi S = 1
Y “nhớ” A
Y, Trễ 1.1
Y, Trễ 1.1
Y, Trễ 1.1
Hê Thống Nhúng - Embedded Systems (W 2008)
16
Mạch gài-lật
(latch, trigger)
SR
(dùng NOR)
-- SR: “set-reset”, với 2 ngõ vào thêm; không định nghĩa
trạng thái khi S=R=1.
-- Hàm logic:
NNTu
Q = (R+Q’)’; P = (S+Q)’
Hê Thống Nhúng - Embedded Systems (W 2008)
17
R=S=1 ?
Hiểu giá trị ngõ xuất
NNTu
Khi S=R=1, cả 2 ngõ xuất là 0.
Nếu cả 2 ngõ nhập là 0, giá trị sẽ phụ thuộc giá trị
xuất/ giữ trước đó.
Do đó các trạng thái “không xác định – không định
nghĩa” sẽ tránh sử dụng.
Hê Thống Nhúng - Embedded Systems (W 2008)
18
S’R’
(với NAND)
0 S’
1
R’
Q
Q’
1
0
S’
0
0
1
1
R’
0
1
0
1
Q Q’
1 0 Set
X Y NAND
00
1
01
1
10
1
11
0
NNTu
Hê Thống Nhúng - Embedded Systems (W 2008)
19
S’R’ (với NAND)
1 S’
1
R’
Q
Q’
1
0
S’
0
0
1
1
R’
0
1
0
1
Q Q’
1 0 Set
1 0 Hold
X Y NAND
00
1
01
1
10
1
11
0
NNTu
Hê Thống Nhúng - Embedded Systems (W 2008)
20
S’R’ (với NAND)
1 S’
0
R’
Q
Q’
0
1
S’
0
0
1
1
R’
0
1
0
1
Q Q’
1 0 Set
0 1 Reset
1 0 Hold
X Y NAND
00
1
01
1
10
1
11
0
NNTu
Hê Thống Nhúng - Embedded Systems (W 2008)
21
S’R’ (với NAND)
1 S’
1
R’
Q
Q’
0
1
S’
0
0
1
1
R’
0
1
0
1
Q Q’
1
0
1
0
0
1
0
1
Set
Reset
Hold
Hold
X Y NAND
00
1
01
1
10
1
11
0
NNTu
Hê Thống Nhúng - Embedded Systems (W 2008)
22
S’R’ (với NAND)
0 S’
0
R’
Q
1
Q’
1
S’
0
0
1
1
R’
0
1
0
1
Q
1
1
0
1
0
Q’
1 Disallowed
0 Set
1 Reset
0 Hold
1 Hold
X Y NAND
00
1
01
1
10
1
11
0
NNTu
Hê Thống Nhúng - Embedded Systems (W 2008)
23
Các mạch SR
NNTu
Hê Thống Nhúng - Embedded Systems (W 2008)
24
Mô phỏng SR
NNTu
Hê Thống Nhúng - Embedded Systems (W 2008)
25