CHƯƠNG 1
CÁC THIẾT BỊ LOGIC LẬP TRÌNH ĐƯC
(Programmable Logic Device)
Bộ nhớ bán dẫn Bộ nhớ bảng Bộ nhớ hàm RAM ROM PLD tónh động MROM PLA PAL LCA EPLD PEEL GAL
PROM PPLA
EPROM EPLPAL
EEPROM EEPPAL
RAM= Random Access Memory (bộ nhớ truy cập ngẫu nhiên)
ROM= Read Only Memory
M= Mask Programmed (được lập trình bằng che mặt nạ)
P = Programmable (lập trình được, khả lập trình)
EP = Erasable and Programmable
EEP = Electrically Erasable and Programmable (xóa và lập trình bằng điện)
PLD = Programmable Logic Device
PLA = Programmable Logic Array (mảng logic lập trình được)
PAL = Programmable Array Logic (logic mảng lập trình được)
LCA = Logic Cell Array (Mảng tế bào logic)
Hình 1.2 Cấu trúc cơ bản của ROM 2
m
x n
Kích thước của ROM là 2
m
x n (bit)
Nội dung của ROM chứa bảng chân trò của một hàm logic tổ hợp n ngõ
vào, m ngõ ra: có m+n cột và 2
m
hàng. Bỏ qua các trì hoãn thời gian, các ngõ
ra dữ liệu của ROM ở mọi lúc là các bit ra của hàng trong bảng chân trò được
chọn bởi các ngõ vào đòa chỉ.
Ví dụ: Bảng chân trò cho hàm tổ hợp có 3 ngõ vào và 4 ngõ ra
Inputs Outputs
A2 A1 A0 D3 D2 D1 D0
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
1 1 1 0
1 1 0 1
Dn
-2
Am
-1
Dn
-1
2. DÙNG ROM THỰC HIỆN HÀM LOGIC:
Bảng 1.1 là bảng chân trò của bộ giải mã 2 sang 4 với điều khiển cực tính
ngõ ra, hàm này có thể xây dựng bằng các cổng như ở hình 1.3.
Hình 1.3 Bộ giải mã 2 sang 4 với điều khiển cực tính giá trò ra
Như vậy ta có 2 cách để xây dựng bộ giải mã : với các cổng rời, hoặc với
ROM 8x4 mà chứa bảng chân trò như ở hình 1.4.
Hình 1.4 Kết nối để xây dựng bộ giải mã 2 sang 4 dùng ROM 8x4
Chú ý:
• Vấn đề hoán vò các cột bit trong bảng chân trò của hàm cần ghi ROM.
• Khi dùng ROM để chứa một bảng chân trò cho trước, các tín hiệu xuất
và nhập đọc từ phải sang trái trong bảng chân trò thường được gán vào
các ngõ vào đòa chỉ và ngõ ra dữ liệu của ROM với các nhóm theo thứ tự
Thí dụ :
Dùng ROM để thực hiện hàm nhân nhò phân không dấu cho 2 số 4 bit
với nhau.
Sử dụng ROM 2
8
x 8 (256 x 8) với kết nối như ở hình 1.5. Hình 1.5 Kết nối thực hiện nhân nhò phân không dấu dùng ROM 256x8
Nội dung ghi cho ROM (dạng file văn bản hex) như sau:
Đòa chỉ: Tích số của 1x2 3. CẤU TRÚC NỘI CỦA ROM:
Hình 1.6 là 1 sơ đồ ROM 8 x 4 tự tạo dùng bộ giải mã TTL và các diode.
Mỗi đường ra bộ giải mã được gọi là đường từ (word line) bởi vì nó chọn
một hàng hoặc một từ của bảng chứa trong ROM.
Mỗi đường thẳng đứng được gọi là đường bit (bit line) bởi vì nó tương
ứng với 1 bit ra của ROM.
Hình 1.6 ROM 8 x 4 đơn giản
Nhận xét: Có diode thì tương ứng ngõ ra ở → mức 0; còn không có diode
thì ngõ ra tương ứng ở mức 1.
CÁC KIỂU ROM THÔNG DỤNG:
Hình 1.10 Các ký hiệu logic cho các EPROM chuẩn với dạng DIP 28 chân
CÁC NGÕ VÀO ĐIỀU KHIỂN:
Hình 1.11 Cấu trúc ROM nội và tác dụng của các ngõ vào điều khiển
Ngõ ra của ROM thường phải được nối vào một bus 3 trạng thái ở đó
các thiết bò khác có thể lái bus ở các thời điểm khác. Do đó, ROM có ngõ điều
khiển “output enable” (OE : cho phép xuất) và ngõ vào chip select (CS: chọn
chip).
PLD (Programmable Logic Device)
1.
PLD TỔ HP (COMBINATIONAL PLD)
1.1 Dãy logic lập trình được (PLA – Programmable Logic Array)
PLA thực hiện cùng chức năng cơ bản như ROM. Một PLA với n input
và m output (Hình 1.18) có thể cài đặt m hàm của n biến. Tổ chức nội của
PLA gồm dãy AND và dãy OR.
Hình 1.18 Cấu trúc PLA (PLA n x m với p số hạng tích)
Thí dụ: Tổ chức nội của PLA 3x2 với 4 số hạng tích:
Hình 1.19 PLA với 3 ngõ vào, 4 số hạng tích và 2 ngõ ra.
Bảng PLA của PLA ở trên :
Ngõ
vào
Ngõ ra
(T) (C)
Chú ý :
Phần lớn các nhà sản xuất PAL có chỉ ra thiết kế nội của PAL ở ký hiệu
tên của nó. Thí dụ: PAL16L8B4 có 16 là số ngõ vào; L chỉ cấu trúc ngõ ra
(tích cực thấp); 8 là số ngõ ra; B là tốc độ và 4 chỉ tiêu tán công suất.
+ Với cấu trúc ra, thí dụ như :
H: (High) chỉ ngõ ra tích cực cao (acitve high)
L : (Low) chỉ ngõ ra tích cực thấp (active low)
C : (Complement) chỉ ngõ ra có cả 2 đường tích cực cao và thấp.
+ Tốc độ : A = tốc độ cao; B = tốc độ rất cao; và D = tốc độ cực cao.
+ Tiêu tán công suất: để trống chỉ đầy đủ; 2 chỉ 1/2; 4 chỉ 1/4.
Hình 1.22 Thí dụ một số cấu trúc ngõ ra Thí dụ: 10H8, 12H6, 18L4, 20L2, 16C1, 20C1.
2. PLD TUẦN TỰ (SEQUENTIAL PLD)
Phần lớn các thiết kế số cần các flipflop, do đó người ta thiết kế thêm
các PLD có chứa các flipflop. Các PLD như vậy thường được gọi là PLD có
thanh ghi (registered PLD) hay PLD tuần tự (sequential PLD), thường thì
thanh ghi được ra từ các D flipflop.
Hình 1.24 Một đoạn của PAL tuần tự.
Các dấu X trên sơ đồ chỉ sự cài đặt phương trình trạng thái kế:
Q
Ba PAL cuối trong bảng 1.10 chỉ các “XOR PAL”. XOR PAL có 1 cổng
XOR lái mỗi ngõ vào D flipflop như ở hình 1.26. Trong các PAL này, mỗi cổng
XOR được lái bằng 2 cổng OR và mỗi cổng OR được lái bằng 2 cổng AND.
Các ngõ ra flipflop có thể được hồi tiếp về các ngõ vào của cổgn AND như
trong các PAL có thanh ghi khác. Dạng tổng quát của phương trình trạng thái
kế cho mỗi flipflop trong XOR PAL là
Q
+
= D = ( P1 + P2) ⊕ (P3 + P4) Hình 1.26 Một đoạn của XOR PAL
THIẾT KẾ HỆ TUẦN TỰ ĐỒNG BỘ
1. Giới thiệu:
Hệ tuần tự gồm 2 phần: Flip-Flop và mạch logic (hệ tổ hợp). Do tính chất
của các ngõ ra, mà hệ tuần tự được chia thành 2 kiểu:
a. Kiểu MEALY:
: trạng thái hiện tại của FF
Q
+
1
, Q
+
2
, …, Q
+
k
: trạng thái kế tiếp của FF
Trạng thái kế tiếp = F (trạng thái hiện tại Q
i
và các ngõ vào X
j
)
Giá trò ngõ ra = G (trạng thái hiện tại Q
i
và các ngõ vào X
j
)
X
1
X
2
X
n
Z
Để biểu diễn mối quan hệ giữa trạng thái kế tiếp, các ngõ ra phụ thuộc vào
trạng thái hiện tại và các ngõ vào, người ta sử dụng bảng trạng thái và giản đồ
trạng thái.
* Bảng trạng thái (State Table):
Trạng thái
hiện tại
Trạng thái kế tiếp Ngõ ra (Z)
Giá trò vào: X = 0 1 X = 0 1
S
0
S
1
S
2
S
3
S
0
S
1
S
1
S
2
hiện tại giữ nguyên không đổi cho tới khi có xung clock.
S
0
S
2
S
1
S
3
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
X
Z
=
j
)
Giá trò ngõ ra = G (trạng thái hiện tại Q
i
) X
1
X
2
X
n
Z
1
Z
2
Z
m
Q
+
1
D
1
D
2
D
Giá trò vào: X = 0 1
S
0
S
1
S
2
S
3
S
0
S
2
S
0
S
2
S
2
S
3
S
3
0
S
3
0
S
2
1
S
1
1
X = 0
0
0
0
1
1
1
1
2. Rút gọn bảng trạng thái:
Với hệ tuần tự có m trạng thái, ta sử dụng n FF theo công thức sau:
2
n-1
< m ≤ 2
n
Do số lượng các trạng thái quyết đònh số lượng các FF thực hiện hệ, nên cần
phải lượt bỏ các trạng thái tương đương nhau; chỉ cần giữ lại 1 trạng thái đại diện.
Hai trạng thái được coi là tương đương nhau khi thay đổi cùng giá trò ngõ
S
2
S
5
S
6
0 0
S
3
S
0
S
0
0 0
S
4
S
0
S
0
1 0
S
5
S
0
S
0
0 0
S
6
0 0
S
1
S
3
S
4
0 0
S
2
S
3
S
4
0 0
S
3
S
0
S
0
0 0
S
4
S
0
S
0
1 0
S
3
S
0
S
0
0 0
S
4
S
0
S
0
1 0
* Phương pháp rút gọn bằng bảng kéo theo (Implication Table):
Vd:
PS NS Z
X=0 X=1
A D C 0
B F H 0
C E D 1
D A E 0
E C A 1
F F B 1
G B H 0
H C G 1
- Thành lập bảng kéo theo: mỗi ô vuông là 1 cặp trạng thái <i-j>
C
- Kiểm tra các ô từ trên xuống, từ trái sang phải nếu không tương thì điền
dấu X. Thực hiện bước này cho tới khi không còn ô có dấu X.
- Các ô còn lại sẽ là các cặp trạng thái tương đương.
A-G
C-F
B-G
B
C
D
E
F
G
H
G F E D C B A
D-F
C-H
C-E
B-D
C-H
B-F
A-F
E-H
A-D
E-F
B-D
C
A
A
PS NS Z
X=0 X=1 X=0 X=1
S
0
S
1
S
1
0 0
S
1
S
3
S
4
0 0
S
3
PS
Q
1
Q
2
NS (Q
+
1
Q
+
2
)Z
X=0 X=1 X=0 X=1
S
0
: 00 10 10 0 0
S
1
: 10 11 01 0 0
S
3
: 11 00 00 0 0
S
4
: 01 01 00 1 0
X Q
1
Q
2
Z Q
0 0 0
0 0 1
0 0 0
1 0
0 0
0 1
1 1
1 0
0 1
1 1
1 1
1 X 0 X
0 X X 0
X 0 1 X
X 1 X 1
1 X 0 X
0 X X 1
X 1 1 X
X 1 X 1
* Thực hiện bằng ROM và T-FF kích cạnh lên:
D
1
T
1
Q
1
T
2
Q
2
D
0
A
1
A
0
CK
D
2
A
2
R
OM 2
3
x
3
A
2
A
1
0 0 1
0 0 0
Baûng naïp PLA
X Q
1
Q
2
Z J
1
K
1
J
2
K
2
K
2
Q
2
CK
X
Z
ClockJ
1
J
1
Q
1
J
2
Q
2
J
2
Q
1
Q
2
1
t
0
t
3
t
2
t
1
t
0
0 0 0 0 0 0 1 1
0 0 0 1 0 1 0 0
0 0 1 0 0 1 0 1
0 0 1 1 0 1 1 0
0 1 0 0 0 1 1 1
0 1 0 1 1 0 0 0
0 1 1 0 1 0 0 1
0 1 1 1 1 0 1 0
1 0 0 0 1 0 1 1
1 0 0 1 1 1 0 0
Bảng trên liệt kê input và output mong muốn tại các thời điểm t
0
, t
1
, t
2
và t
3
G
H L
I M
J N
K P
0 1
1 0
1 0
1 0
t3 000
001
010
011
100
101
110
111
H
I
J
K
L
M
N
P
A A
A A
A -
A -
A -
E
H H
H M
0 1
1 0
t3 H
M
A A
A -
0 1
1 -
* Thiết kế dùng cổng logic và JK-FF:
Do có 7 trạng thái ta sử dụng 3 FF để thực hiện việc gán trạng thái. Ta có
bảng gán trạng thái và bảng chuyển trạng thái
Thời
gian
T/thái
hiện tại
Q1
+
Q2
+
Q3
+
Q
1
Q
= K
1
= Q
2
J
2
= K
2
= 1
J
3
= X' Q
1
' Q
2
' + X' Q
1
Q
2
'
+ XQ
1
' Q
2
'
K
3
= Q
2