Tài liệu Bài giảng môn Điện - Điện tử - Các thiết bị logic lập trình được: Các thiết bị logic lập trình được
CÁC THIẾT BỊ LOGIC LẬP TRÌNH ĐƯỢC
Trong chương này chúng ta tìm hiểu về PLD (Programmable
Logic Device - Thiết bị logic lập trình được) và ứng dụng của chúng
trong việc thiết kế hệ tổ hợp và hệ tuần tự.
Trước hết chúng ta xem lại về bộ nhớ bán dẫn và xem PLD
được xếp trong nhóm nào.
Nhắc lại về bộ nhớ bán dẫn
Bộ nhớ bán dẫn được chia ra làm hai loại chính: bộ nhớ
bảng (table memory) và bộ nhớ hàm (function memory).
Với các bộ nhớ bảng, địa chỉ A được định nghĩa trong dãy:
0 ≤ A ≤ m = 2N – 1
Với độ rộng từ của địa chỉ (address word width) là N (N =
5...22...), giá trị của N phụ thuộc vào kích thước bộ nhớ. Có thể cất
dữ liệu ở m địa chỉ của 2N địa chỉ. Độ rộng từ dữ liệu (data word
width) là n = 1..8..16...32... bit.
Phân loại các bộ nhớ bán dẫn thường dùng
với: RAM - Random Access Memory (bộ nhớ truy cập ngẫu nhiên...
46 trang |
Chia sẻ: ntt139 | Lượt xem: 2034 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Bài giảng môn Điện - Điện tử - Các thiết bị logic lập trình được, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Các thiết bị logic lập trình được
CÁC THIẾT BỊ LOGIC LẬP TRÌNH ĐƯỢC
Trong chương này chúng ta tìm hiểu về PLD (Programmable
Logic Device - Thiết bị logic lập trình được) và ứng dụng của chúng
trong việc thiết kế hệ tổ hợp và hệ tuần tự.
Trước hết chúng ta xem lại về bộ nhớ bán dẫn và xem PLD
được xếp trong nhóm nào.
Nhắc lại về bộ nhớ bán dẫn
Bộ nhớ bán dẫn được chia ra làm hai loại chính: bộ nhớ
bảng (table memory) và bộ nhớ hàm (function memory).
Với các bộ nhớ bảng, địa chỉ A được định nghĩa trong dãy:
0 ≤ A ≤ m = 2N – 1
Với độ rộng từ của địa chỉ (address word width) là N (N =
5...22...), giá trị của N phụ thuộc vào kích thước bộ nhớ. Có thể cất
dữ liệu ở m địa chỉ của 2N địa chỉ. Độ rộng từ dữ liệu (data word
width) là n = 1..8..16...32... bit.
Phân loại các bộ nhớ bán dẫn thường dùng
với: RAM - Random Access Memory (bộ nhớ truy cập ngẫu nhiên)
ROM - Read Only Memory
7
Bộ nhớ bán dẫn
Bộ nhớ bảng Bộ nhớ hàm
RAM ROM
Tĩnh Động MROM
PROM
EPROM
EEPROM
PLD
PLA PAL LCA EPLD PEEL GAL
PPLA
EPLPAL
EEPPAL
Chương 1
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 (xóa được và lập trình được)
EEP - Electrically Erasable and Programmable (xóa và lập trình bằng
điện)
PLD - Programmable Logic Device (thiết bị logic lập trình được, thiết
bị khả lập trình)
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)
Dung lượng bộ nhớ K được xác định bit (K = m.n với n là độ
rộng từ dữ liệu; m là số đường địa chỉ) và cũng theo byte (K/8) cho
các độ rộng từ dữ liệu 8 hay 16 bit.
Ví dụ: N = 3 (bit địa chỉ) và n = 2 (bit dữ liệu).
Hình 1.1 Một bảng để ghi ROM
Các bộ nhớ hàm chứa các hàm logic thay vì là các bảng. Mỗi
hàm của bảng chân trị có thể được biểu diễn bằng hàm logic. Viết
dưới dạng tích chuẩn thì hàm logic của biến d0 ở hình 1.1 là:
d0 = a2’a1’a0’d00 + a2’a1’a0d10 + ..... + a2 a1 a0 d70
= m0d00 + m1d10 +....+ m7d70 (với mi là minterm thứ i)
Nếu có ít di0 = 1 thì dùng bộ nhớ hàm tiện lợi hơn.
8
0 0 0 0
1 0 0 1
2 0 1 0
3 0 1 1
4 1 0 0
5 1 0 1
6 1 1 0
7 1 1 1
d01 d00
d11 d10
d21 d20
d31 d30
d41 d40
d51 d50
d61 d60
d71 d70
D0
D1
D2
D3
D4
D5
D6
D7
a2 a1 a0 d1 d0
A D
Các thiết bị logic lập trình được
Các thiết bị lập trình được PLD (Programmable Logic
Device)
PLD là tên gọi tổng quát của một IC số mà người ta có thể
lập trình được nó để cho nhiều loại hàm logic khác nhau. Nó là
một chip LSI chứa một cấu trúc mạch có qui luật ("regular"), cho
phép người thiết kế làm cho thích ứng với một ứng dụng cụ thể.
Cấu trúc mạch “regular” trong PLD thông thường là một dãy
(array - dãy, mảng) hình chữ nhật các ô nhớ đồng dạng (identical
cell) có thể lập trình từng ô được.
Các thiết kế dùng PLD thường nhỏ hơn và nhanh hơn các
tương đương SSI/MSI và chúng thường cũng rẻ hơn. Và một điều
quan trọng là các PLD làm đơn giản hóa công việc của người thiết
kế logic. Một PLD tương đương với một mạch SSI/MSI lớn hơn có
thể thường được viết bằng “một” chương trình đơn giản, và có thể
dễ dàng sửa lỗi hoặc cải tiến tính năng.
1.1 ROM - THIẾT KẾ HỆ TỔ HỢP VÀ HỆ TUẦN TỰ DÙNG ROM
1.1.1 ROM (Read-Only Memory)
ROM là một mạch tổ hợp có m ngõ vào và n ngõ ra (H.1.2).
Các ngõ vào được gọi là các ngõ vào địa chỉ (address inputs) và
thường được đặt tên là A0, A1,..., Am–1. Các ngõ ra được gọi là các ngõ
ra dữ liệu (data outputs) và thường được đặt tên là D0, D1,..., Dn–1.
A0 D0
A1 D1
A2 D2
Am-2 Dn-2
Am-1 Dn-1
Ngõ vào địa chỉ
(m đường)
Ngõ ra dữ liệu
(n đường)
Hình 1.2 Cấu trúc cơ bản của ROM 2m×n
9
Chương 1
ROM chứa bảng chân trị của một hàm logic tổ hợp m ngõ
vào, n ngõ ra. Ví dụ bảng 1.1 là bảng chân trị của hàm tổ hợp 3 ngõ
vào, 4 ngõ ra; có thể chứa nó trong ROM 23×4 (8×4). 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ỉ.
Bảng 1.1 Bảng chân trị của hàm logic tổ hợp 3 ngõ vào, 4 ngõ ra
Chú ý:
- Có thể dùng ROM như bất cứ phần tử logic tổ hợp nào.
- ROM là bộ nhớ không bốc hơi (nonvolatile memory) vì nội
dung của nó vẫn giữ được ngay cả khi không cấp điện.
1.1.2 Dùng ROM cho các hàm logic tổ hợp “ngẫu nhiên”
Bảng 1.1 thật sự 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.
10
A2 A0A1 D3 D2 D1 D0
Inputs Outputs
0 00 1 1 1 0
0 10 1 1 0 1
0 01 1 0 1 1
0 11 1 1 1 1
1 00 0 0 0 1
1 10 0 0 1 0
1 01 0 1 0 0
1 11 1 0 0 0
I0
( )A0
I1
( )A1
POL
( )A2
Y0
(D )0
Y1
(D )1
Y2
(D )2
Y3
(D )3
Các thiết bị logic lập trình được
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ó hai cách để xây dựng bộ giải mã: với các cổng
rời, hoặc với ROM 8×4 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 8×4 chứa bảng 1.1 (tích số)
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ự tăng dần.
Ví 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. Nếu dùng mạch rời ta dùng các IC
74284 và 74285, còn dùng ROM thì sử dụng ROM 28×8 (256×8) với
kết nối như ở hình 1.5.
11
A0 D0
A1 D1
A2 D2
D3
Y0
Y1
Y2
Y3
I0
I1
POL
8 4 ROM×
Chương 1
A0 D0
A1 D1
A2 D2
D3
P0
P1
P2
P3
256 8 ROM×
Y0
Y1
Y2
Y3
X0
X1
X2
X3
P4
P5
P6
P7
A3
A4
A5
A6
A7
D4
D5
D6
D7
Multiplicand
(số bị nhân)
Multiplier
(số nhân)
Product
(tích số)
Hình 1.5 Kết nối thực hiện nhân nhị phân không dấu dùng ROM 256×8
Nội dung ghi cho ROM (dạng file văn bản hex) như sau:
Địa chỉ Tích số của 1×2
00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
10: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
20: 00 02 04 06 08 0A 0C 0E 10 12 14 16 18 1A 1C 1E
30: 00 03 06 09 0C 0F 12 15 18 1B 1E 21 24 27 2A 2D
40: 00 04 08 0C 12 18 1E 23 28 2D 32 37 3C 41 46 4B
50: 00 05 0A 0F 14 19 1E 23 28 2D 32 37 3C 41 46 4B
60: 00 06 0C 12 18 1E 24 2A 30 36 3C 42 48 4E 54 5A
70: 00 07 0E 15 1C 23 2A 31 38 3F 46 4D 54 5B 62 69
80: 00 08 10 18 20 28 30 38 40 48 50 58 60 68 70 78
90: 00 09 12 1B 24 2D 36 3F 48 51 5A 63 6C 75 7E 87
A0: 00 0A 14 1E 28 32 3C 46 50 5A 64 6E 78 82 8C 96
B0: 00 0B 16 21 2C 37 42 4D 58 63 6E 79 84 8F 9A A5
C0: 00 0C 18 24 30 3C 48 54 60 6C 78 84 90 9C A8 B4
D0: 00 0D 1A 27 34 41 4E 5B 68 75 82 8F 9C A9 B6 C3
E0: 00 0E 1C 2A 38 46 54 62 70 7E 8C 9A A8 B6 C4 D2
F0: 00 0F 1E 2D 3C 4B 5A 69 78 87 96 A5 B4 C3 D2 E1
Người đọc thử thiết kế nhân hai số BCD dùng ROM với cách
tương tự?
1.1.3 Cấu trúc nội của ROM
12
Các thiết bị logic lập trình được
Cơ chế các ROM dùng để lưu trữ thông tin thì thay đổi với các
công nghệ ROM khác nhau. Trong phần lớn các ROM, sự xuất hiện
hoặc vắng mặt của một diode hay transistor phân biệt giữa 0 và 1.
Hình 1.6 là một sơ đồ ROM 8×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 trong hình 1.6 được gọi là đường bit
(bit line) bởi vì nó tương ứng với 1 bit ra của ROM.
1 A0
0 A1
1 A2
1
2
3
4
5
6
R 74 138×
G1
G2A
G2B
A
B
C
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
+5V
R
14
15
12
13
10
11
7
9
ROW0_L cao
ROW1_L cao
ROW2_L cao
ROW3_L cao
ROW4_L cao
ROW5_L cao
ROW6_L cao
ROW7_L cao
cao D0_L 1 2
thấp D1_L 3 4
cao D2_L 5 6
cao D3_L 9 8
U2
U2
U2
U2
D0
D1
D2
D3
74HC14
+5V
Hình 1.6 ROM 8×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 MOS ROM thường dùng transistor thay vì diode ở mỗi vị
trí mà bit sẽ được lưu trữ. Hình 1.7 cho thấy ý tưởng cơ bản này:
13
Chương 1
VDD
RCác ngõ ra
tích cực cao
Các ngõ vào
địa chỉ
Mạch
giải mã
Dữ liệu đếm các
bộ đệm ra đảo
Các đường bit
tích cực thấp và
ở mức thấp (LOW)
nếu có transistor
Hình 1.7 Các transistor MOS dùng làm các phần tử lưu trữ trong ROM
Chú ý:
Đôi lúc người ta vẽ đơn giản hơn
Mạch
giải mã
Phần tử chuyển mạch
swicthing element( )
Đường từ
(word line)
Đường từ
(word line)
Giải mã 2 chiều
Ví dụ: ROM 128×1
14
Các thiết bị logic lập trình được
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Mạch giải
mã 3
sang 8 0
1
2
3
4
5
6
7
A4
A5
A6
0
1
2
+5V
R
A0
A1
A2
A3
S0
S1
S2
S3
Mạch dồn kênh 16 sang 1
Y
D0
Hình 1.8 Cấu trúc của ROM 128×1 dùng giải mã hai chiều
Ngoài việc giảm tính phức tạp việc giải mã, việc giải mã hai
chiều có một thuận lợi khác là: nó dẫn đến một chip có kích thước
vật lý gần vuông, điều này quan trọng cho chế tạo và đóng gói
(packaging) IC.
Trong các ROM có nhiều ngõ ra dữ liệu, các dãy lưu trữ tương
ứng với mỗi ngõ ra dữ liệu có thể được làm hẹp hơn để đạt được bố
trí chip gần với hình vuông hơn. Ví dụ hình 1.9 cho thấy bố trí có
thể có của ROM 32K×8.
15
Chương 1
A6
A7
A8
A9
A10
A11
A12
A13
A14
A0
A1
A2
A3
A4
A5
Mạch giải
mã 9
sang 512
D7 D6 D5 D4 D3 D2 D1 D0
Mảng
512 64×
Mảng
512 64×
Bộ dồn
kênh 64
sang 1
Bộ dồn
kênh 64
sang 1
Hình 1.9 Bố trí có thể có của ROM 32K×8
1.1.4 Các kiểu ROM thương mại
Bảng 1.2 Các kiểu ROM thương mại
Kiểu Công nghệ Chu kỳ đọc Chu kỳ ghi Chú thích
Mask ROM NMOS,
CMOS
25-500ns 4 tuần Ghi 1 lần; công suất thấp
Mask ROM Bipolar <100ns 4 tuần Ghi 1 lần; công suất cao, mật độ
thấp
PROM Bipolar <100ns 5 phút Ghi 1 lần; công suất cao, không
có mặt nạ
EPROM NMOS,
CMOS
25-500ns 5 phút Dừng lại được; công suất thấp
EEPROM NMOS 50-500ns 10ms/byte Giới hạn là 10000ghi/vị trí
Chú ý là số liệu trong bảng 1.2 chỉ mang tính chất tham khảo vì
giá trị của chu kỳ đọc/ghi sẽ thay đổi theo công nghệ chế tạo bộ nhớ.
Các ROM thông dụng nhất là các EPROM: 2764, 27128,
27256 và 27512 với các ký hiệu logic ở hình 1.10.
16
Các thiết bị logic lập trình được
8K 8×
2764
VCC
VIH
1
27
10
9
8
7
6
5
4
3
25
24
21
23
2
20
22
VPP
PGM
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
CS
OE
O0
O1
O2
O3
O4
O5
O6
O7
11
12
13
15
16
17
18
19
16K 8×
27128
VCC
VIH
1
27
10
9
8
7
6
5
4
3
25
24
21
23
2
20
22
VPP
PGM
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
CS
OE
O0
O1
O2
O3
O4
O5
O6
O7
11
12
13
15
16
17
18
19
26 A13
16K 8×
27256
VCC
1
10
9
8
7
6
5
4
3
25
24
21
23
2
20
22
VPP
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
CS
OE
O0
O1
O2
O3
O4
O5
O6
O7
11
12
13
15
16
17
18
19
27
A1326
16K 8×
27512
10
9
8
7
6
5
4
3
25
24
21
23
2
20
22
VPP
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
CS
OE
O0
O1
O2
O3
O4
O5
O6
O7
11
12
13
15
16
17
18
19
27
A13
26
1
A14A14
Hình 1.10 Các ký hiệu logic cho các EPROM chuẩn
với dạng DIP 28 chân
Chú ý:
- Nhãn Vcc phải nối với +5volt
- Nhãn VIH phải nối với tín hiệu logic HIGH hợp lệ
- Chân có nhãn Vpp dùng để đưa vào điện áp lập trình.
Bảng 1.3 Các ví dụ EPROM
Dung
lượng
Tổ chức Kiểu Nhà sản xuất
Công suất làm
việc typical
Thời gian truy
cập tối đa
Số chân
CMOS
16Kbit
(VDD =5V,f=fmax)
2KX8 Cy7C291 Cy,Ws 250mW 35ns 24
64Kbit 8Kx8
8Kx8
4Kx16
27C64
27HC64
WS57C65
Ti, Fu, Na, Am
At, Cy, Ws
Ws
100mW
300mW
300mW
150ns
45ns
55ns
28
28
40
128Kbit 16Kx8
16Kx8
27C128
Cy7C251
Ti, Fu, Am
Cy, Ws
150mW
400mW
150ns
45ns
28
28
256Kbit 32Kx8
32Kx8
36Kx8
27C256
27HC256
27C202
Ti, At, Fu, Hi,
Mi, Ne, Na.
At, Cy, Ws.
In, Ws
150mW
350mW
500mW
150ns
55 ns 55ns
28
28
40
Các nhà sản xuất:
Am = AMD, At = Atmel, Cy = Cypress, Fu = Fujitsu, Hi = Hitachi, In = Intel
Mi = Mitsubishi, Na = National, Ne = NEC, Ti = Texas Instr, To =
Toshiba,
Ws = Wafer scale
17
Chương 1
Bảng 1.4 Các ví dụ về EEPROM
Dung
lượng
Tổ chức Kiểu
Nhà
sản xuất
Công suất làm
việc tiêu biểu
Thời gian truy
cập tối đa
Số chân
CMOS
16Kbit
16Kbit
(VDD =5V,f=fmax)
2KX8 28C16
2Kx8 28HC16
At, Se, Xi
At
100mW
300mW
200ns
35ns
24
24
64Kbit 8Kx8
8Kx8
28C64
28HC64
At, Se, Xi
At
120mW
280mW
200ns
45ns
28
28
256Kbit 32Kx8
32Kx8
28C256
28HC256
At, Se, Xi
At
150mW
350mW
200ns
70ns
28
28
1Mbit
1Mbit
128Kx8
64Kx16
28C010
28C1024
At, Se, Xi
At
300mW
400mW
300ns
150ns
32
40
Bảng 1.5 So sánh RAM & ROM theo hiệu suất ghi và đọc
RAM ROM
MROM PROM EPROM EEPROM
Ghi:
- Số lần
- Thời gian
bất kỳ
10 - 200ns
1 lần
nhiều tháng
1 lần
nhiều phút
... 100 lần
nhiều phút
104... 106 lần
nhiều ms
Đọc:
- Số lần
- Thời gian
bất kỳ
10 - 200ns
bất kỳ
≅ 100ns
bất kỳ
100 - 300ns
bất kỳ
30 - 300ns
bất kỳ
30 - 300ms
1.1.5 Các ngõ vào điều khiển và định thì ROM
Các ngõ ra của ROM thường phải được nối vào một bus ba
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 đó, phần lớn các chip ROM thương mại có các ngõ ra dữ
liệu 3 trạng thái và một ngõ điều khiển “output enable” (OE - cho
phép xuất) để cho phép các ngõ ra.
Nhiều ứng dụng ROM, đặc biệt là lưu trữ chương trình có
nhiều ROM được nối vào 1 bus, ở đó mỗi lần chỉ có 1 ROM lái bus.
Phần lớn các ROM có ngõ vào chip select (CS - chọn chip) để làm
đơn giản việc thiết kế các hệ thống như vậy. Ngoài OE ra, còn
phải cần có CS để cho phép các ngõ ra ba trạng thái.
Tuy nhiên trong nhiều ROM, CS cũng làm việc như ngõ vào
cắt nguồn cấp điện (power-down input); khi CS ở mức bù (ví dụ /CS
18
Các thiết bị logic lập trình được
= 0 chọn, thì bù là /CS = 1) thì không cấp nguồn cho các decoder
nội, các driver và các multiplexer của ROM. Ở chế độ chờ này
(standby mode) 1 ROM tiêu biểu tiêu thụ ít hơn 10% công suất được
dùng trong chế độ hoạt động (active mode). Hình 1.11 chỉ các ngõ
vào CS và OE được sử dụng như thế nào ở bên trong 1 ROM tiêu
biểu.
A0
A1
Am-1
Am
Am+1
An-1
CS_L
CE_L
Db-1 Db-2 D0
Giải
mã hàng
Mở nguồn
Mở
nguồn
Mảng
bộ nhớ
Mở
nguồn
Giải
mã cột
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
tAA tOZ tOE tOZ tOE
tOH
max(t ,t )AA ACS≥ tAA
ADDR
CL_L
OE_L
DATA
ổn định
tACS
ổn định ổn định
hợp lệ hợp lệ hợp lệ
Hình 1.12 Định thì ROM
19
Chương 1
với: tAA (Access time from address) - thời gian truy xuất từ địa chỉ của ROM
là trì hoãn truyền từ lúc địa chỉ vào ổn định đến khi dữ liệu ra ổn định.
Khi người thiết kế nói dùng ROM 200ns thì 200 ns để chỉ tham số này.
tACS (Access time from chip select) - trì hoãn truyền từ lúc có xác nhận
CS đến khi dữ liệu ra hợp lệ. Trong một số chip, tACS > tAA.
tOE (Output enable time) (thường tOE < tAA,ACS) là trì hoãn truyền từ lúc
OE và CS được xác nhận cho đến khi các mạch lái ba trạng thái ở ngõ ra
trong trạng thái tổng trở cao (hi-Z). Tùy theo các ngõ vào địa chỉ ổn định
đủ lâu, dữ liệu ra có thể hợp lệ hoặc không ở thời điểm này!
tOZ (Output-disable time) - trì hoãn truyền từ lúc OE hay CS bị bù cho
đến khi các mạch lái ba trạng thái ở ngõ ra đã vào trạng thái Hi-Z.
tOH (Output hold time) - độ dài thời gian mà các ngõ ra giữ hợp lệ sau
khi thay đổi các ngõ vào địa chỉ hoặc sau khi lấy bù /OE hay /CS.
1.1.6 Thiết kế hệ tuần tự dùng ROM
Ta có thể thiết kế dễ dàng một hệ tuần tự dùng ROM và các
Flip-Flop. Ta có mô hình tổng quát của hệ tuần tự (mạng mealy)
dùng các D-FF có xung nhịp:
Phần tổ hợp của hệ tuần tự có thể dùng ROM để thực hiện các
hàm ra (Z1, Z2,..., Zn) và các hàm trạng thái kế (Q1+, Q2+,..., Qk+).
Trạng thái của hệ được chứa trong một thanh ghi (tạo bằng các D
F/F và đưa hồi tiếp về ngõ vào của ROM. Như vậy hệ tuần tự mealy
với m input, n output và k biến trạng thái có thể được cài đặt bằng k
D F/F và ROM với (m+k) input (nghĩa là 2m+k từ [word]) và (n+k)
output.
Người ta thích dùng D F/F hơn J-K F/F vì sử dụng các F/F
với hai ngõ vào sẽ cần phải tăng số ngõ ra ở ROM. Còn việc các
phương trình vào của D F/F tổng quát thì cần nhiều cổng hơn các
phương trình J-K thì không còn ý nghĩa ở đây vì kích thước của
ROM chỉ phụ thuộc vào số các ngõ vào và ngõ ra và không phụ
thuộc vào độ phức tạp của các phương trình được cài đặt.
20
Các thiết bị logic lập trình được
D1
CK
D2
CK
Dk
CK
X1
X2
Xm
Mạng
tổ
hợp
Q1
Q2
Qk
Q1
Q2
Qk
Q1
Q2
Qk
+
+
+
Z1
Z2
Zn
Hình 1.13 Mô hình tổng quát cho mạng Mealy
dùng các D F/F có xung nhịp
Ví dụ: Thiết kế bộ (chuyển) đổi mã từ BCD sang quá 3. Ngõ
vào và ra là nối tiếp với LSB đi trước.
Ta có bảng sau:
X
input (BCD)
Y
Output (excess-3)
t3 t2 t1 t0 t3 t2 t1 t0
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ê các input và output mong muốn tại các thời
điểm t0, t1, t2 và t3.
21
Chương 1
Trước hết ta thành lập bảng trạng thái (bảng 1.6) và sau đó
sẽ rút gọn bảng dùng so các hàng giống nhau thì gom lại. Khi so
các hàng chứa dấu gạch ngang (đây là trường hợp "don't care" thì
dấu gạch ngang sẽ khớp với bất cứ trạng thái nào hoặc với bất kỳ
giá trị ra nào. Bằng cách so khớp các hàng theo cách này, ta có
H≡I≡J≡K≡L và M≡N≡P. Sau khi khử I, J, K, L, N và P, ta thấy
E≡F≡G và bảng được thu gọn thành 7 hàng (bảng 1.7).
Bảng 1.6 Bảng trạng thái của bộ chuyển đổi mã
Thời
điểm
Chuỗi vào nhận được
(LSB được nhận đầu tiên)
Trạng thái
hiện tại
Trạng thái kế
X=0 1
Giá trị ra hiện tại (Z)
X=0 1
t0 reset A B C 1 0
t1 0
1
B
C
D F
E G
1 0
0 1
t2 00
01
10
11
D
E
F
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 -
A -
A -
A -
0 1
0 1
0 -
0 -
0 -
1 -
1 -
1 -
Bảng 1.7 Bảng trạng thái được rút gọn của bộ chuyển đổi mã
Thời gian
Trạng thái
hiện tại
Trạng thái kế
X=0 1
Giá trị ra hiện tại (Z)
X=0 1
t0 A B C 1 0
t1 B
C
D E
E G
1 0
0 1
t2 D
E
H H
H M
0 1
1 0
t3 H
M
A A
A -
0 1
1 -
Người ta có thể dùng một cách khác để suy ra bảng 1-6 bằng
cách bắt đầu bằng giản đồ trạng thái. Giản đồ trạng thái (H.1.14)
22
Các thiết bị logic lập trình được
có dạng hình cây. Mỗi đường bắt đầu trạng thái reset biểu diễn 1
trong 10 chuỗi vào có thể có.
Hình 1.14 Giản đồ trạng thái của bộ chuyển đổi mã
Thiết kế không dùng ROM
Cần có ba flipflop để cài đặt bảng thu gọn vì có 7 trạng thái.
Mỗi trạng thái phải được gán vào một kết hợp duy nhất các trạng
thái flipflop. Ta có bảng gán trạng thái và bảng chuyển trạng thái
ở hình 1.15.
Thời gian Trạng thái hiện tại Q1+ Q2+ Q3+
Q1Q2Q3 X = 0 1
Z
t0 A 000 010 011 0 1
t1 B
C
010 101 100
011 100 100
1 0
0 1
t2 D
E
101 111 111
100 111 110
0 1
1 0
t3 H
M
111 000 000
110 000 ---
0 1
1 -
Hình 1.15 Bảng gán trạng thái và bảng chuyển trạng thái cho các flip-flop
Dùng các J-K flipflop, và sau khi lập các bảng Karnaugh và
rút gọn (xem phụ lục), ta có:
23
A
B
D F
0/1 1/0
C
E G
0/0 1/1
H L
0/0 1/1
J N
0/1 1/0
I M
0/1 1/0
K P
0/1 1/0
0/0 1/1 0/0 0/0 0/1 0/0 1/1 0/1 0/0 0/1
0/1 Reset
t0
t1
t2
t3
Chương 1
J1 = K1 = Q2 J3 = X' Q1' Q2' + X' Q1 Q'2 + XQ'1 Q'2
J2 = K2 = 1 K3 = Q2 và Z = X' Q3' + XQ3
Kết quả có mạch sau:
Hình 1.16 Bộ chuyển đổi mãõ
Thiết kế dùng ROM
Hình 1.17 Cài đặt mạng tuần tự dùng ROM
Ta sẽ cài đặt bộ chuyển đổi mã này dùng ROM và các D F/F.
Ta có bảng trạng thái của bộ chuyển đổi được ghi lại ở bảng 1.8a.
Vì có 7 trạng thái, nên cần 3 D F/F. Như vậy cần ROM có 4 input
24
K1 CK J1
Q1
, Q1
K2 CK J2
Q2
, Q2
Q2 1
K3 CK J3
Q3
, Q3
Q2
Clock
Q3
X
,
Q
X
,
Z
Q1
, Q2X
, Q2 Q1
,X, Q2
, Q1
,X,
D1
CK
Q1
+
Z
Q1
D2
CK
Q2
+
Q2
D3
CK
Q3
+
Q3
X
ROM
16 Words
X4 bits
clock
Các thiết bị logic lập trình được
(24 word) và 4 output như ở hình 1.17. Dùng gán nhị phân trực
tiếp, ta có thể xây dựng bảng chuyển trạng thái (bảng 1.8b) cho
trạng thái kế của các F/F như là hàm của trạng thái hiện tại và
input. Vì ta đang dùng các D flipflop, D1=Q1+, D2=Q2+, và D3=Q3+.
Bảng chân trị cho ROM ở bảng 1.8c, xây dựng được dễ dàng từ
bảng chuyển trạng thái. Như vậy các output của ROM (Z,D1,D2,D3)
là các hàm của các input của ROM (X,Q1,Q2,Q3). Ta có mạch kết
quả ở hình 1.17.
Bảng 1.8
c) Bảng chân trị
X Q1 Q2 Q3 Z D1 D2 D3
0 0 0 0 1 0 0 1
0 0 0 1 1 0 1 1
0 0 1 0 0 1 0 0
0 0 1 1 0 1 0 1
0 1 0 0 1 1 0 1
0 1 0 1 0 0 0 0
0 1 1 0 1 0 0 0
0 1 1 1 X X X X
1 0 0 0 0 0 1 0
1 0 0 1 0 1 0 0
1 0 1 0 1 1 0 0
1 0 1 1 1 1 0 1
1 1 0 0 0 1 1 0
1 1 0 1 1 0 0 0
1 1 1 0 X X X X
1 1 1 1 X X X X
25
a) Bảng trạng thái
Trạng thái
hiện tại
Trạng thái kế Giá trị ra
hiện ra (Z)
X = 0 1 X = 0 1
A B C 1 0
C E E 0 1
B D E 1 0
D H H 0 1
E H M 1 0
H A A 0 1
M A 1 --
b) Bảng chuyển trạng thái
Q Q Q1 2 3
X = 0 X = 0 X = 1
A 001 010 1 0
C 100 100 0 1
B 011 100 1 0
D 101 101 0 1
E 101 110 1 0
H 000 000 0 1
M 000 1 --
Q Q Q1 2 3
+ + + Z
X = 1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
Các thiết bị logic lập trình được
1.2 PLD TỔ HỢP (Combinational PLD)
1.2.1 Dãy logic lập trình được (PLA)
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.1.18) có thể cài đặt m hàm của n biến.
Tổ chức nội của PLA thì khác với tổ chức ROM.
Mảng các cổng
AND
Mảng các cổng
OR
m ngõ ra
n ngõ vào
inputs
p số hạng tích
Hình 1.18 Cấu trúc PLA (PLA n×m với p số hạng tích)
Ví dụ: Tổ chức nội của PLA 3×2 với 4 số hạng tích:
1
2
3
4
AB
AC
BC
ABC
C C B B A A
F1
F2
A
B
C
0
1
Hình 1.19 PLA với 3 ngõ vào, 4 số hạng tích và 2 ngõ ra
25
Chương 1
Bảng PLA của PLA ở trên:
Ngõ vào
Ngõ ra
(T) (C)
Số hạng tích A B C F1 F2
AB’ 1 1 0 — 1 —
AC 2 1 — 1 1 1
BC 3 — 1 1 — 1
A’BC’ 4 0 1 0 1 —
Mỗi hàng trong bảng PLA biểu diễn một số hạng tích tổng
quát. Do đó zero, một hoặc nhiều hàng có thể được chọn bởi mỗi
kết hợp các giá trị vào.
Có hai loại PLA: PLA lập trình mặt nạ và PLA lập trình
trường (field-programmable).
- PLA lập trình được mặt nạ (mask-programmable) thì được
lập trình lúc chế tạo ra (tương tự PROM).
- PLA lập trình trường có các nối kết cầu chì (fusible link) có
thể làm đứt để lưu trữ các mẫu trong các dãy AND và OR. Một
FPLA (Field Programmable Logic Array) tiêu biểu có 16 input, 48
số hạng tích và 8 output.
Chú ý: Khi số biến vào nhỏ, thì tổng quát là ROM kinh tế
hơn dùng PLA. Tuy nhiên khi số biến vào lớn, PLA thường cho
giải pháp kinh tế hơn ROM.
Ví dụ: Để cài đặt 8 hàm theo 16 biến sẽ cần ROM có 65536
word (8 bit) → có thể dùng nhiều ROM nhỏ hơn. Nhưng với cùng
chức năng như 8 hàm của 16 biến trên có thể cài đặt dùng một
PLA miễn là tổng số các số hạng tích là nhỏ. Nếu cần nhiều số
hạng hơn thì có thể OR lại các output của nhiều PLA.
26
Các thiết bị logic lập trình được
... ...
A A B B
A A B B. . . = 0 p + p + p + p ...1 2 3 4
p1 p2 p3 p4 ...
A A B B p1 p2 p3 p4 ...
không
cầu chì
cầu chì
còn nguyên
cầu chì
còn nguyên
cầu chì
đứt
cầu chì
đứt
Kết nối cố định
ở nhà máy
Kết nối lập trình được Biểu diễn được
đơn giản hóa
Kết nối bị đứt
(sau khi lập trình)
Biểu diễn được
đơn giản hóa
Cổng AND
nhiều ngõ vào
Không vẽ các điện trở
kéo lên (pull-up)
Cổng OR
nhiều ngõ vào
Không vẽ các điện trở
kéo xuống (pull-down)
Các số hạng vào
Cầu chì còn nguyên X được đặt bên trong
cổng AND cũng biểu diễn
các cầu chì còn nguyên
Cầu chì còn nguyên X được đặt bên trong
cổng OR cũng biểu diễn
các cầu chì còn nguyên
Các số hạng vào
Tất cả các cầu chì đứt
1 (Do các điện
trở kéo lên)
Các số hạng vào
Tất cả các cầu chì đứt
0 (Do các điện
trở kéo xuống)
Hình 1.20 Quy ước một số ký hiệu kết nối trong PLD
1.2.2 Logic dãy lập trình được (PAL - Programmable Array
Logic)
PAL là trường hợp đặc biệt của PLA mà trong đó dãy AND
lập trình được và dãy OR là cố định. Cấu trúc cơ bản của PAL thì
giống như PLA ở hình 1-18. Bởi vì chỉ có dãy AND là lập trình
được, do đó PAL ít mắc tiền hơn các PLA tổng quát hơn, và dễ lập
trình PAL hơn. Vì lý do này, các nhà thiết kế logic thường sử
dụng các PAL để thay thế các cổng logic khi phải cài đặt nhiều
hàm.
Xem hình 1.21 cho thấy một đoạn PAL.
27
Chương 1
F1
F4
F5
F8
l1
l2
Output
Hình 1.21a Chưa lập trình
l l l1 2 1 + l 2
, ,
l1
l2
Hình 1.21 Một đoạn PAL - b) Được lập trình
Chú ý:
Ngõ ra không đảo
Ngõ ra đảo
A
B
C
ABC
A B C
ABC
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ó.
Ví dụ: PAL 16L8B4
Với 16 là số ngõ vào; L chỉ cấu trúc 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, ví dụ như:
H: (high) chỉ ngõ ra tích cực cao (acitve high)
28
Các thiết bị logic lập trình được
L: (low) chỉ ngõ ra tích cực thấp (active low)
C: (complement) chỉ ngõ ra có cả hai đường tích cực cao
và thấp.
- Tốc độ: không có gì chỉ chuẩn; 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.
OE
CLK
D Q
Q
OE
CLK
D Q
Q
VCC VCC
Ngõ ra thanh ghi tích cực thấp Ngõ ra thanh ghi tích cực cao
I/O tổ hợp tích cực thấp I /O tổ hợp tích cực cao
Ngõ ra tổ hợp tích cực thấp Ngõ ra tổ hợp tích cực cao
Hình 1.22 Ví dụ một số cấu trúc ngõ ra
Ví dụ: 10H8, 12H6, 18L4, 20L2, 16C1, 20C1.
Ví dụ: Ký hiệu logic truyền thống cho PAL 16L8.
29
Chương 1
Xem thêm sơ đồ logic của PAL14L4 VÀ PAL12H6 ở phần phụ lục.
Khi thiết kế với PAL, ta phải đơn giản hóa các phương trình
logic của ta và cố đưa chúng khớp vào 1 (hoặc nhiều) các PAL khả
dụng, không giống như các PLA tổng quát hơn, các số hạng AND
không thể chia sẻ cho hai hay nhiều cổng OR. Với một kiểu PAL cho
trước, số số hạng AND (tích) đưa vào mỗi cổng OR ra là cố định và
bị giới hạn. Nếu số số hạng AND trong hàm được đơn giản là quá
lớn thì có thể chọn PAL có nhiều ngõ vào cổng hơn và ít ngõ ra hơn.
Ví dụ: dùng PAL thiết kế mạch đổi 1 số nhị phân 4 bit sang
số hex và xuất mã ASCII 7 bit cho số hex.
Input
W X Y Z
0 0 0 0
0 0 0 1
0 0 0 0
0 0 0 1
0 0 0 1
...
...
Số
hex
Mã ASCII cho số mã hex
A6 A4A5 A3 A2 A0A1
0 1 1 0
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 0
...
...
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
W
X
Y
Z
A6
A5
A4
A3
A2
A1
A0
B
a) b)
PAL0
1
9
A
F
Hình 1.23 Bộ chuyển đổi nhị phân sang ASCII
a) Bảng chân trị; b) Sơ đồ kết nối với PAL
Chú ý: Vì A5 = A4 và A6 = A4' nên chỉ cần dùng PAL tạo ra 5
hàm của 4 biến (H.1.23b).
Để viết được bảng PAL ta phải rút gọn các hàm ra. Bằng
cách dùng các bảng Karnaugh ta có kết quả sau:
A4 = W’ + X’Y’ (gom các ô 1 kế cận)
A4’ = WX + WY (gom các ô 0 kế cận)
A3 = WX’Y’
A3’ = W’ + X + Y
A2 = W’X + XZ + XY
A2’ = X’ + WY’Z’
A1 = WXY’Z’ + YZ + W’Y
A1’ = W’Y’ + Y’Z + X’Y’ + WYZ’
A0 = W’Z + X’Y’Z + WXZ’ + WYZ’
30
Các thiết bị logic lập trình được
A0’ = W’Z’ + WYZ + WXZ + X’Y’Z’
Sau đó tìm các PAL thích hợp để cài đặt các hàm trên. Sau
khi tìm kiếm ta chọn được PAL 12H6, có một ngõ ra không dùng.
Ta có thể viết lại phương trình cho A2 như sau:
A2 = W’X + (XZ + XY) = W’X + B với B = XZ + XY
Rồi ta có thể sử dụng ngõ ra thêm để tạo ra B và nối B vào một
trong các ngõ vào như được chỉ trong hình 1.23b. Với cách này, ta có
thể tạo ra tất cả 5 hàm với một PAL không cần thêm logic khác.
1.2.3 Thiết kế hệ tuần tự dùng PLA
Ta cũng có thể cài đặt các hệ tuần tự dùng PLA và các
flipflop theo cách tương tự như dùng ROM và các flipflop. Tuy
nhiên trong trường hợp các PLA, phép gán trạng thái có thể quan
trọng vì sử dụng phép gán tốt có thể giảm được số các số hạng
tích cần có và từ đó giảm được kích thước của PLA.
Ví dụ: Xét cài đặt bảng trạng thái của bảng 1.8a (ở phần
1.1.6) dùng một PLA và D flipflop. Cấu hình mạch thì giống như
hình 1.17, ngoại trừ là ta thay thế ROM bằng 1 PLA với kích
thước thích hợp. Sử dụng phép gán nhị phân trực tiếp dẫn đến
bảng chân trị được cho ở bảng 1.8c. Ta có thể chứa bảng này trong
1 PLA có 4 ngõ vào, 13 số hạng tích và 4 ngõ ra, nhưng nó sẽ
không cho thuận lợi hơn so với giải pháp ROM đã bàn ở phần
trước. Nếu sử dụng phép gán trạng thái ở hình 1.15, phương trình
ra và các phương trình vào D flipflop được suy từ các bảng trong
phần thiết kế không dùng ROM ở 1.16 là:
D1 = Q1Q2’ + Q1’Q2
D2 = Q2’
D3 = Q2’Q3 + X’Q1Q2’ + XQ1’Q2’ + X’Q1’Q2Q3’
Z = X’Q3’ + XQ3
Bảng PLA tương ứng với các phương trình này ở bảng 1.9.
Để cài đặt bảng này cần 1 PLA có 4 ngõ vào, 9 số hạng tích và 4
ngõ ra. Khi số ngõ vào nhỏ (như trong ví dụ này) tổng quát thì
31
Chương 1
giải pháp ROM kinh tế hơn giải pháp PLA; tuy nhiên khi số biến
vào lớn, PLA lại tốt hơn.
Bảng 1.9
X Q1 Q2 Q3 Z D1 D2 D3
- 1 0 - 0 1 0 0
- 0 1 - 0 1 0 0
- - 0 - 0 0 1 0
- - 0 1 0 0 0 1
0 1 0 - 0 0 0 1
1 0 0 - 0 0 0 1
0 0 1 0 0 0 0 1
0 - - 0 1 0 0 0
1 - - 1 1 0 0 0
Kế đến ta kiểm tra lại hoạt động của mạch, ban đầu giả sử
rằng X = 0 và Q1Q2Q3 = 000. Giá trị này chọn các hàng - -0- và 0 - -
0 trong bảng 1.9, vì vậy Z=1 và D1D2D3 = 010. Nếu giá trị vào kế là
X = 1 thì hàng -01- được chọn, vì vậy Z = 0 và D1D2D3 = 100. Sau
xung nhịp, Q1Q2Q3 = 100. Theo cách này ta có thể kiểm tra lại theo
bảng chuyển trạng thái ở hình 1.15.
1.2.4 Thiết kế hệ tuần tự dùng PAL
Dùng các PAL tổ hợp, cách thiết kế tương tự như với PLA
nhưng phải chú ý rút gọn hàm ra.
1.3 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 cho
thấy một đoạn của PAL tuần tự. D flipflop được lái từ một cổng OR
mà cổng này có hai ngõ vào lấy từ cổng AND. Ngõ ra flipflop được đưa
hồi tiếp về dãy AND có thể được nối vào A, A’, B, B’, Q hay Q’. Các
dấu X trên sơ đồ chỉ sự cài đặt phương trình trạng thái kế:
Q+ = D = A’BQ’ + AB’Q
32
Các thiết bị logic lập trình được
Ngõ ra flipflop được nối vào một bộ đệm đảo ba trạng thái
mà được cho phép khi EN = 1.
ClockA A’ B B’ Q’ Q
A
B
D Q
Q’
EN
Bộ đệm ra đảo
3 trạng thái
Mảng AND lậrp trình được
Q’
Q
Hình 1.24 Một đoạn của PAL tuần tự
Với cổng đảo ba trạng thái như sau:
C X Y
X Y
C
X Y
C
0 0
0 1
1 0
1 1
Hi-Z
1
0
Hi-Z
Output
disabled
Hình 1.25 Cổng đảo ba trạng thái
Bảng 1.10 chỉ các đặc tính của một số PAL tuần tự thông
dụng. Mỗi PAL này chứa một thanh ghi có từ 4 đến 10D flipflop. 6
PAL đầu trong bảng tương tự với 16R4 (16R4 có một dãy cổng
AND với 16 ngõ vào, và có 4D flipflop).
Bảng 1.10 Đặc tính của các PAL tuần tự
Kiểu
Số ngõ vào
(trực tiếp + hồi tiếp +I/O)
Số ngõ vào
(flip-flop +I/O)
Số cổng AND
trên cổng OR
16R4 8 + 4 + 4 4 + 4 8
16R6 8 + 6 +2 6 + 2 8
16R8 8 + 8 + 0 8 + 0 8
20R4 12 + 4 + 4 4 + 4 8
20R6 12 + 6 + 2 6 + 2 8
20R8 12 + 8 + 0 8 + 0 8
20X4 10 + 4 + 6 4 + 6 3/2*
33
Chương 1
20X8 10 + 8 + 2 8 + 2 3/2
20X10 10 + 10 + 0 10 + 0 -/2
Ghi chu ù: *3 với các ngõ ra tổ hợp, 2 cho các ngõ vào D flipflop.
Ba PAL cuối trong bảng 1.10 chỉ các “XOR PAL”. XOR PAL có
một 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 hai cổng OR và mỗi cổng
OR được lái bằng hai 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)
CLK EN
D Q
Q’
P1
P2
P3
P4
Hình 1.26 Một đoạn của XOR PAL
Để minh họa sử dụng các XOR PAL, ta sẽ thiết kế một bộ đếm
nhị phân 4 bit đếm lên/đếm xuống với ba ngõ vào điều khiển: U, D,
và L (U = Up = đếm lên; D = Down = đếm xuống; L = Load = nạp).
Khi U = 1, bộ đếm được tăng thêm 1, khi D=1 bộ đếm bị giảm đi
1, và khi L = 1 bộ đếm được nạp dữ liệu song song từ các ngõ vào
dữ liệu của nó (Di).
34
Các thiết bị logic lập trình được
Bảng 1.11 chỉ các trạng thái kế của bộ đếm cho U = 1 và cho
D = 1. Ta sẽ giả sử rằng U = D = 1 không xảy ra.
Bảng 1.11 Bộ đếm lên/đếm xuống
Q3 Q2 Q1 Q0 Q3 +
U = 1
Q2 + Q1 + Q0 + Q3 +
D = 1
Q2 + Q1 + Q0 +
0 0 0 0 0 0 0 1 1 1 1 1
0 0 0 1 0 0 1 0 0 0 0 0
0 0 1 0 0 0 1 1 0 0 0 1
0 0 1 1 0 1 0 0 0 0 1 0
0 1 0 0 0 1 0 1 0 0 1 1
0 1 0 1 0 1 1 0 0 1 0 0
0 1 1 0 0 1 1 1 0 1 0 1
0 1 1 1 1 0 0 0 0 1 1 0
1 0 0 0 1 0 0 1 0 1 1 1
1 0 0 1 1 0 1 0 1 0 0 0
1 0 1 0 1 0 1 1 1 0 0 1
1 0 1 1 1 1 0 0 1 0 1 0
1 1 0 0 1 1 0 1 1 0 1 1
1 1 0 1 1 1 1 0 1 1 0 0
1 1 1 0 1 1 1 1 1 1 0 1
1 1 1 1 0 0 0 0 1 1 1 0
Trước hết ta sẽ suy ra các phương trình trạng thái kế cho bộ
đếm lên. Bộ đếm này sẽ tăng thêm 1 mỗi lần có xung nhịp khi U =
1, và nó sẽ giữ nguyên trạng thái khi U = 0. Trong mọi hàng Q0 ≠
Q0+, vì vậy flipflop Q0 phải thay đổi trạng thái ở mọi xung nhịp
khi U = 1. Vì lẽ đó: +0Q = Q0 ⊕ U
Ta nhận thấy Q1 thay đổi (nghĩa là Q1 ≠ +1Q ) chỉ nếu Q0 = 1. Do đó
35
Chương 1
+
1Q = Q1 ⊕ UQ0
Q2 thay đổi chỉ trong các hàng 3 (0011), 7, 11 và 15; chỉ khi
Q1 = Q0 = 1. Do đó
+
2Q = Q2 ⊕ UQ1Q0
Cuối cùng Q3 thay đổi trạng thái chỉ trong những hàng mà
Q2 = Q1 = Q0 = 1; do đó:
01233 QQUQQQ ⊕=
+
Tương tự, bằng cách quan sát bảng 1.11, ta có thể suy ra các
phương trình cho bộ đếm xuống mà giảm đi 1 ở mỗi xung nhịp khi
D = 1: ;00 DQQ ⊕=
+ ;,011 DQQQ ⊕=
+
;,0
,
122 QDQQQ ⊕=
+ ;,0
,
1
,
233 QQDQQQ ⊕=
+
Chú ý, Q1 thay đổi trạng thái chỉ khi Q0 = 0; Q2 thay đổi
trạng thái chỉ khi Q1 = Q0 = 0...
Tổng quát, để sử dụng “XOR PAL”, ta phải biểu diễn trạng
thái kế của Qi ở dạng +iQ = Qi ⊕ Fi như trong các phương trình ở
trên. Người ta tìm các Fi bằng phương pháp quan sát hoặc rút gọn
bằng bảng Karnaugh.
Tiếp tục thiết kế bộ đếm lên-xuống với các ngõ vào điều
khiển U, D và L. Trước hết xét trường hợp khi U = D = 0. Khi L = 1,
bộ đếm được nạp song song từ các ngõ vào dữ liệu của nó (Di), và
khi L = 0, trạng thái bộ đếm giữ không đổi. Như vậy phương trình
trạng thái kế cho mỗi flipflop là
+
iQ = LDi + L’Qi (i = 0,1,2,3)
Ta sẽ kết hợp các phương trình khi xét cả U, D và L, giả sử
là L = 1 ảnh hưởng trên cả U = 1 hay D = 1, và U = D = 1 không
bao giờ xảy ra. Nếu ta bắt đầu bằng phương trình +0Q = Q0 ⊕ U, thay
Q0 bằng LD0 + L’Q0 và thay U bằng (U + D), ta được +0Q = (LD0 +
L’Q0) ⊕ (UL’ + DL’). Phương trình này cho kết quả đúng khi L = 0
và U hoặc D là 1. Để bảo đảm L = 1 ảnh hưởng ưu tiên hơn đếm
36
Các thiết bị logic lập trình được
lên hay xuống, ta phải nhân U và D cho L’, các phương trình còn
lại cũng làm tương tự, ta có:
=
+
0Q (LD0 + L’Q0) ⊕ (UL’ + DL’)
=
+
1Q (LD1 + L’Q1) ⊕ (UL’Q0 + DL’Q0’)
=
+
2Q (LD2 + L’Q2) ⊕ (UL’Q0Q1 + DL’Q0’Q1’)
=
+
3Q (LD3 + L’Q3) ⊕ (UL’Q0Q1Q2 + DL’Q0’Q1’Q2’)
Khi L = D = 0, các phương trình này rút gọn về trường hợp
chỉ đếm lên, và khi L = U = 0, các phương trình rút gọn về trường
hợp chỉ đếm xuống.
Các phương trình tổng hợp ở trên thích hợp để cài đặt bằng
các XOR PAL.
1.4 CÁC PLD TUẦN TỰ KHÁC
Khi công nghệ IC đã được cải tiến, nhiều loại PLD khác ra
đời. Các PLD mới dựa trên những mở rộng của khái niệm PAL
hoặc dựa trên các dãy cổng.
22V10 là 1 PLD rất linh hoạt mà có thể dùng nó để cài đặt
các mạng tổ hợp và tuần tự (V = versatile = linh hoạt/linh động).
Nó có 12 chân dành riêng cho nhập và 10 chân có thể lập
trình hoặc làm ngõ vào hoặc ngõ ra.
Nó chứa 10D flipflop và cổng OR. Số cổng AND đưa vào mỗi
cổng OR từ 8 đến 16. Mỗi cổng OR lái một “tế bào vĩ môlogic xuất”
(output logic macrocell).
Mỗi macrocell (tế bào vĩ mô) chứa 1D flipflop. Các flipflop có
cùng xung nhịp, một ngõ vào reset chung bất đồng bộ AR
(Asynchronous Reset) và một ngõ vào đặt trước chung đồng bộ SP
(Synchronous Preset).
Hình 1.28 cho thấy chi tiết của 1 macrocell xuất của 22V10.
Các kết nối đến các chân ra có thể điều khiển được bằng cách lập
37
Chương 1
trình macrocell này. Các ngõ vào điều khiển MUX xuất S1 và S0
chọn 1 trong các ngõ vào dữ liệu.
Ví dụ: S1S0 = 10 chọn ngõ vào dữ liệu 2. Khi cầu chì F1 đứt
(S1 = 1), flipflop bị bỏ qua và ngõ ra từ cổng OR. Ngõ ra cổng OR
cũng được hồi tiếp về để có thể dùng như một ngõ vào của dãy
cổng AND.
38
Các thiết bị logic lập trình được
1
C
LK
/l o
R
es
et
8
O
ut
pu
t
M
ac
ro
Lo
gi
c
C
el
l
I/O
0
10
O
ut
pu
t
M
ac
ro
Lo
gi
c
C
el
l
I/O
1
12
O
ut
pu
t
M
ac
ro
Lo
gi
c
C
el
l
I/O
2
14
O
ut
pu
t
M
ac
ro
Lo
gi
c
C
el
l
I/O
3
16
O
ut
pu
t
M
ac
ro
Lo
gi
c
C
el
l
I/O
4
16
O
ut
pu
t
M
ac
ro
Lo
gi
c
C
el
l
I/O
5
14
O
ut
pu
t
M
ac
ro
Lo
gi
c
C
el
l
I/O
6
12
O
ut
pu
t
M
ac
ro
Lo
gi
c
C
el
l
I/O
7
10
O
ut
pu
t
M
ac
ro
Lo
gi
c
C
el
l
I/O
8
8
O
ut
pu
t
M
ac
ro
Lo
gi
c
C
el
l
I/O
9
11
l 1
-l
11
P
re
se
t
P
ro
gr
am
m
ab
le
A
N
D
A
rr
ay
(4
4
13
2)
×
Hình 1.27 Sơ đồ khối của 22V10
39
Chương 1
2
3
MUX
chọn
ngõ ra
1 S1 S0
Kết nối lập
trình được
D Q
Q
AR
SP
CK
0
MUX
1S1
0
I/On
2
3
1 S1 S0
D Q
Q
AR
SP
CK
0
MUX
1S1
0
I/On
a)
b)
MUX
chọn
ngõ ra
Hình 1.28 Macrocell xuất
a) Các cầu chì còn nguyên (S1 = S0 = 0); b) Các cầu chì đứt (S1 = S0 = 1)
Nếu F1 còn nguyên (S1 = 0), thì ngõ ra flipflop được nối vào
chân ngõ ra và nó cũng được hồi tiếp về để có thể dùng nó làm
ngõ vào cổng AND. Khi cầu chì F0 cho đứt (nổ) (S0 = 1), ngõ ra không
bị đảo để nó tác động mức cao. Khi F0 còn nguyên (S0 = 0), ngõ ra
bị đảo nên nó tác động mức thấp. Chân ngõ ra được lái bằng một
bộ đệm đảo ba trạng thái. Khi ngõ ra bộ đệm ở trạng thái tổng
trở cao, cổng OR và flipflop không nối với chân ngõ ra (xuất) và
chân này có thể dùng làm ngõ vào. Các đường đứt nét ở hình
40
Các thiết bị logic lập trình được
1.24a chỉ đường đi qua macrocell xuất khi cả hai cầu chì còn
nguyên, và các đường đứt nét ở hình 1.24b chỉ đường đi khi cả hai
cầu chì đứt. Chú ý là ở trường hợp thứ nhất, ngõ ra Q của flipflop
bị đảo bởi bộ đệm ngõ ra, và trường hợp thứ hai, ngõ ra cổng OR
bị đảo hai lần do đó không có đảo.
Ví dụ: Dùng 22V10 để thiết kế bộ điều khiển đèn giao thông
cho giao lộ của đường A và đường B. Mỗi đường có các cảm biến để
phát hiện sự xuất hiện xe cộ đến gần hoặc dừng ở giao lộ. Sa = 1
nghĩa là xe cộ đang tiến đến đường A, và Sb = 1 nghĩa là xe cộ
đang tiến đến đường B. Đường A là đường chính và sẽ có đèn xanh
cho đến khi có một xe hơi chạy đến B. Rồi đèn thay đổi và B có
đèn xanh. Vừa hết 50 giây, các đèn sẽ thay đổi về như cũ trừ khi
có một xe trên đường B và không có xe ở A, trong trường hợp này
chu kỳ B được mở rộng thêm 10 giây. Khi A xanh, nó giữ xanh tối
thiểu 60 giây, và rồi các đèn thay đổi chỉ khi xe tiến đến B. Hình
1.29 chỉ các nối kết bên ngoài của bộ điều khiển. Có ba ngõ ra
(Ga, Ya, và Ra) lái các đèn xanh, vàng và đỏ ở đường A. Ba đường
khác (Gb, Yb, và Rb) lái các đèn xanh, vàng và đỏ tương ứng ở
đường B.
Clock
PAL22V10
Ga Ya Ra Gb Yb Rb
Ga Sb
Hình 1.29 Sơ đồ khối của bộ điều khiển đèn giao thông
Hình 1.30 chỉ giản đồ trạng thái Moore của bộ điều khiển. Vì
mục đích định thì, hệ tuần tự này được lái bằng xung nhịp có chu
kỳ 10 giây. Như vậy sự thay đổi trạng thái có thể xảy ra hầu như
ở mọi 10 giây. Để đơn giản hóa giản đồ, ta dùng ký hiệu sau:
GaRb trong một trạng thái có nghĩa là Ga = Rb = 1 và tất cả các
41
Chương 1
biến ra khác là 0. Sa’Sb ở 1 cung có nghĩa là Sa = 0 và Sb = 1 sẽ
gây ra chuyển trạng thái theo cung đó khi có xung nhịp. Một cung
không có nhãn có nghĩa là chuyển trạng thái sẽ xảy ra khi có
xung nhịp xảy ra, độc lập với các biến vào. Như vậy đèn A xanh sẽ
sáng trong 6 chu kỳ xung nhịp (60 giây) và đổi sang vàng nếu có
một xe đang đợi ở đường B.
S0
GaRb
S1
GaRb
S2
GaRb
S3
GaRb
S4
GaRb
S5
GaRb
Sb’
S11
RaGb
S10
RaGb
S9
RaGb
S8
RaGb
S7
RaGb
S12
GaYb
S6
YaRb
Sa’Sb
(Sa + Sb’)
Sb
Hình 1.30 Giản đồ trạng thái của bộ điều khiển đèn giao thông.
Bảng 1.12 Bảng trạng thái của bộ điều khiển đèn giao thông
SaSb
00 01 10 11
S0
S1
S2
S3
S4
S5
S6
S7
S8
S9
S10
S11
S12
S1
S2
S3
S4
S5
S5
S7
S8
S9
S10
S11
S12
S0
S1
S2
S3
S4
S5
S6
S7
S8
S9
S10
S11
S12
S0
S1
S2
S3
S4
S5
S5
S7
S8
S9
S10
S11
S12
S0
S1
S2
S3
S4
S5
S6
S7
S8
S9
S10
S11
S12
S0
1
1
1
1
1
1
0
0
0
0
0
0
0
Ga Ya Ra Gb Yb Rb
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0 {Ra, Yb}
{Ra, Gb}
{Ya, Rb}
{Green A, Red B}
42
Các thiết bị logic lập trình được
Bảng 1.12 cho ta thấy bảng trạng thái của bộ điều khiển. Ta
sẽ cài đặt bảng dùng 4D flipflop với các ngõ vào D1, D2, D3, D4 và
các ngõ ra Q1, Q2, Q3, Q4. Dùng phép gán trạng thái nhị phân
trực tiếp, ta suy ra được các phương trình sau:
D1 = Q1Q2’ + Q2Q3Q4
D2 = Q1’Q2’Q3Q4 + SaQ1Q3Q4 + Sb’Q1Q3Q4 + Q1’Q2Q4’ + Q1’Q2Q3’
D3 = Q3Q4’ + SbQ3’Q4 + Sa’Q3’Q4 + Q2’Q3’Q4 + Sa’SbQ1Q4
D4 = Sa’SbQ1Q3 + Q2’Q4’ + Q1’Q4’ + SaSb’Q2Q3’Q4
Ga = Q1’Q3’ + Q1’Q2’ Ya = Q2Q3Q4’ Ra = Q1 + Q2Q3Q4
Gb = Q1Q2’ + Q2Q3Q4 Yb = Q1Q2 Rb = Q1’Q2’ + Q1Q4’ + Q1’Q3’
Vì tất cả các phương trình này có ít hơn 8 số hạng AND, ta
dễ dàng sử dụng 22V10 cho thiết kế này. Nếu một số phương trình
có quá nhiều số hạng mà không khớp với 22V10 thì sẽ cần thử các
phép gán trạng thái khác.
Nếu cài đặt bộ điều khiển dùng các JK flipflop và các cổng, 4
flipflop và 34 cổng sẽ cần cho gán trạng thái nhị phân trực tiếp.
Các flipflop và các cổng này cần khoảng 11 IC loại SSI, so với giải
pháp 22V10 chỉ cần một IC thì nhỏ hơn, tiết kiệm năng lượng hơn
và tin cậy hơn.
1.5 CPLD VÀ FPGA
1.5.1 CPLD (Complex PLD - Thiết bị logic lập-trình-được phức tạp)
Các thiết bị PLA và PAL hữu dụng để cài đặt nhiều mạch số
nhỏ. Mỗi thiết bị có thể được dùng để cài đặt các mạch mà không
phải có thêm chip nào cả. Tuy nhiên các chip này bị giới hạn bởi
kích thước của nó (thường tổng số ngõ vào và ra không quá 32).
Như vậy để cài đặt những mạch cần nhiều ngõ vào và nhiều ngõ ra
43
Chương 1
thì người ta có thể dùng nhiều PLA (hay PAL) hoặc sử dụng loại
chip mạnh hơn được gọi là CPLD có nhiều ngõ vào và nhiều ngõ ra.
Khối giống
PAL
Các đường nối kết
Khối giống
PAL
K
hối
/O
I
K
hối
/O
I
Khối giống
PAL
Khối giống
PAL
K
ho
ái
/OI
K
ho
ái
/OI
Hình 1.31 Cấu trúc của một CPLD
Một CPLD gồm nhiều khối mạch trên một chip với các khối
nối dây bên trong kết nối với các khối mạch. Mỗi khối mạch tương
tự với một PLA hay PAL; ta sẽ gọi các khối này là các khối giống
PAL (PAL - like blocks). Ví dụ của một CPLD được cho ở hình
1.31. Nó gồm có 4 khối giống PAL được nối vào tập các dây kết
nối (interconnection wires). Mỗi khối giống PAL cũng được nối vào
một mạch nhỏ gọi là khối nhập/xuất (I/O block).
Hình 1.32 cho thấy ví dụ về cấu trúc nối dây và các kết nối
với một khối giống PAL trong một CPLD. Khối giống PAL gồm ba
macrocell (các CPLD thật tiêu biểu có khoảng 16 macrocell trong
một khối giống PAL), mỗi macrocell gồm có một cổng OR 4 ngõ
vào (CPLD thật thường cung cấp 5 đến 20 ngõ vào cho cổng OR).
Ngõ ra cổng OR được nối vào cổng logic khác (cổng XOR). Flipflop
44
Các thiết bị logic lập trình được
dùng để lưu trữ giá trị ra được tạo bởi cổng OR. Mỗi bộ đệm ba
trạng thái được nối vào một chân của gói CPLD.
D Q
D Q
D Q
Khối giống PAL
Khối giống PAL
Hình 1.32 Một phần của CPLD trong hình 1.31
Các CPLD thương mại có kích thước từ chỉ hai khối giống
PAL đến 100 khối giống PAL. Một khi CPLD được lập trình (qua
programmer hoặc máy tính thông qua JTAG) thì nó sẽ giữ trạng
thái được lập trình đó ngay cả khi không mất nguồn. Tính chất
này được gọi là lập trình nonvolatile.
Ví dụ, CPLD của altera là MAX7000, 8000; của xilinx là
XC9500...
45
Chương 1
Hình 1.33 cho thấy cấu trúc của một macrocell của Altera
MAX7000, khối PIA là mảng kết nối khả lập trình (Programmable
Interconnect Array).
PIA
Ma trận
chọn số
hạng tích
Set
Xung nhịp mảng
Kết nối khối mảng
logic cục bộ
Xóa chung đến PIA
S
D Q
R
State
Xung nhịp chung
Các ngõ vào từ
những macrocells
khác trong khối
mảng logic
Hình 1.33 Một macrocell của Altera MAX7000
1.5.2 FPGA (Field-Programmable Gate Array - Mảng cổng lập
trình được theo miền)
Để tính toán mức độ tích hợp người ta thường dùng đơn vị
cổng tương đương (nghĩa là cổng NAND hai ngõ vào), khi đó CPLD
có mỗi macrocell biểu diễn khoảng 20 cổng tương đương và một
PAL tiêu biểu với 8 macrocell có thể dùng để thực hiện mạch cần
có 160 cổng. Với CPLD có 1000 macrocell có thể cài đặt các mạch
lên đến khoảng 20.000 cổng tương đương.
Theo các tiêu chuẩn hiện đại thì một mạch logic với 20 000
cổng thì không lớn. Để cài đặt các mạch lớn hơn người ta thường
dùng một loại chip khác có dung lượng logic lớn hơn, đó là FPGA.
Các FPGA khác hoàn toàn với các CPLD vì FPGA không chứa các
mặt phẳng AND và OR, mà FPGA cung cấp các khối logic (logic
block = CLB) để cài đặt các hàm mong muốn. Cấu trúc tổng quát
46
Các thiết bị logic lập trình được
của FPGA được minh họa trong hình 2.22. Nó chứa ba loại tài
nguyên chính: các khối logic, các khối I/O để nối với các chân của
package, và những dây nối và các khóa.
Khối /O I
Khối /O I
K
hối
/O
I
K
ho
ái
/O
I
Hình 1.34 Cấu trúc tổng quát của một FPGA
Các khối logic được sắp xếp theo mảng hai chiều, và các dây
nối được tổ chức thành các kênh dẫn (routing channels) dọc và
ngang giữa các hàng và cột của các khối logic. Những kênh dẫn
chứa các dây dẫn và các khóa lập trình được cho phép nối kết các
khối logic theo nhiều cách.
Các FPGA có thể được dùng để cài đặt các mạch logic có hơn
vài trăm ngàn cổng tương đương. Ví dụ với Altera có FLEX 10K và
xilinx có XC4000.
Mỗi khối logic trong FPGA tiêu biểu có một số nhỏ các ngõ
vào và một ngõ ra. Có nhiều loại khối logic. Khối logic thường
được sử dụng nhiều là bảng tra LUT (lookup table), nó chứa các tế
bào lưu trữ (storage cell) dùng để cài đặt các hàm logic nhỏ. Mỗi tế
bào có khả năng giữ một giá trị logic 0 hay 1. Giá trị lưu trữ để
47
Chương 1
tạo ra giá trị ra của tế bào lưu trữ. Người ta có thể tạo ra các LUT
có nhiều kích cỡ, mà cỡ của nó được định nghĩa bằng số ngõ vào.
Hình 1.35a cho thấy cấu trúc của LUT nhỏ, nó có hai ngõ vào x1 và
x2 và một ngõ ra f. Nó có thể được dùng cài đặt bất cứ một hàm 2
biến nào. Bởi vì một bảng chân trị 2 biến có 4 hàng và LUT này có
4 tế bào lưu trữ. Một cell tương ứng với giá trị ra của mỗi hàng của
bảng chân trị. Hai biến vào x1 và x2 được dùng làm các ngõ vào cho
của ba bộ dồn kênh mà phụ thuộc vào việc định giá trị x1 và x2,
chọn nội dung của một trong 4 cell lưu trữ làm giá trị ra của LUT.
x1
x2
0/1
0/1
0/1
0/1
f
x1 x2 f1
0 0 1
0 0 0
1 1 0
1 1 1
x1
x2
1
0
0
1
f1
a) b) c)
Hình 1.35 LUT hai ngõ vào
a) Mạch LUT hai ngõ vào; b) f1 = x1’x2’ + x1x2; c) Các nội dung cell
x1
x2
x3
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
f
Hình 1.36 LUT ba ngõ vào
Một ví dụ khác về LUT cho ở hình 1.36 là LUT ba ngõ vào.
Thực tế thì các FPGA còn có các mạch thêm kết hợp với ngõ ra của
48
Các thiết bị logic lập trình được
LUT để tăng tính năng mạch, ví dụ như trong hình 1.36 cho thấy
người ta thêm fliflop vào khối logic FPGA, fliflop này dùng để lưu
trữ giá trị ngõ vào D của nó dưới điều khiển của ngõ vào clock.
Với mạch logic được thực hiện bằng FPGA thì mỗi mạch logic
trong mạch này phải đủ nhỏ để vừa khớp trong một khối logic.
Thực tế thì mạch của người sử dụng được tự động chuyển sang
dạng được yêu cầu bằng các công cụ CAD.
Flip-flop
D Q
Clock
LUT
ln1
ln2
ln3
Chọn
Xuất
Hình 1.37 Thêm fliflop vào khối logic FPGA
Khi cài đặt mạch bằng FPGA thì các khối logic được lập
trình để thực hiện các hàm cần thiết và các kênh dẫn được lập
trình để thực hiện kết nối cần thiết giữa các khối logic. Các tế bào
lưu trữ trong FPGA là volatile (bốc hơi), có nghĩa là chúng mất nội
dung lưu trữ của chúng khi mất nguồn điện. Do đó FPGA phải được
lập trình lại mỗi khi cấp nguồn điện. Thường người ta sẽ dùng
một chip bộ nhớ nhỏ để lưu trữ dữ liệu thường xuyên (dạng
nonvolatile như PROM) gắn chung với mạch sử dụng FPGA. Các tế
bào lưu trữ sẽ được nạp tự động từ PROM khi có nguồn điện đưa
vào chip.
Một FPGA nhỏ đã được lập trình để cài đặt các mạch được mô
tả trong hình 2.26. FPGA có hai LUT hai ngõ vào và có 4 dây dẫn
trong mỗi kênh dẫn. Các khóa nối dây lập-trình-được được chỉ bởi
X.
49
Chương 1
Các bảng chân trị được lập trình vào các khối logic trong hàng
phía trên của FPGA tương ứng với các hàm f1 = x1x2 và f2 = x2’x3.
Khối logic bên dưới phía tay phải của hình vẽ được lập trình để
tạo ra f = f1 + f2 = x1x2 + x2’x3.
x3
x1
x2
x1
x2
f2
0
0
0
1 x3
x2
f2
0
1
0
0
f2
f1
f
0
1
1
1
f
Hình 1.38 Một phần của FPGA được lập trình
50
Các thiết bị logic lập trình được
S
D Q Q2
C1 C2 C3C4
CFBBộ chọn
State
E R
State
S
D Q
E R
G
Q2
F
G1
G2
G3
G4
F1
F2
F3
F4
Bảng
tra cứu
Bảng
tra cứu
Bảng
tra cứu
Hình 1.39 Ví dụ khối logic (CLB) của xilinx XC4000
1.5.3 Chọn lựa giữa CPLD và FPGA
Việc chọn lựa CPLD hay FPGA sẽ phụ thuộc vào đặc tính và
yêu cầu của thiết kế. Tóm tắt của đặc tính CPLD và FPGA được cho
trong bảng 1.13.
Bảng 1.13 CPLD và FPGA
CPLD FPGA
Kiến trúc Giống PAL Giống mảng cổng
Mật độ tích hợp
Thấp đến trung bình
(12 x 22V10 hoặc hơn)
Trung bình đến cao
(đến 1 triệu cổng hoặc hơn)
Tốc độ Nhanh, đoán trước được Tùy theo ứng dụng
Kết nối Crossbar Routing
Tiêu tán công suất Cao Trung bình
51
Các file đính kèm theo tài liệu này:
- tailieu.pdf