BỘ NHỚ BÁN DẪN Bộ nhớ bán dẫn chia làm hai loại chính • Bộ nhớ bảng table memory • Bộ nhớ hàm function memory Với RAM = Random Access Memory ROM = Read Only Memory PLD = Programmable Log
Trang 14.8 BỘ NHỚ BÁN DẪN
Bộ nhớ bán dẫn chia làm hai loại chính
• Bộ nhớ bảng (table memory)
• Bộ nhớ hàm (function memory)
Với
RAM = Random Access Memory ROM = Read Only Memory PLD = Programmable Logic Device PLA = Programmable Logic Array PAL = Programmable Array Logic LCA = Logic Cell Array
• Địa chỉ A được định nghĩa trong dãy 0≤ A ≤ 2N –1
Với độ rộng từ của địa chỉ là N, giá trị của N phụ thuộc vào kích thước của
bộ nhớ Có thể cất dữ liệu ở một địa chỉ trong 2N địa chỉ Độ rộng từ dữ liệu
là m = 1…16 bit
• Dung lượng bộ nhớ K được xác định bởi: K=mxn (bit)
Với m là độ rộng từ dữ liệu, n là số địa chỉ
Tính theo byte (K/8) cho các độ rộng từ dữ liệu là 8 hay 16 bit
Bộ nhớ bán dẫn
Tĩnh
Động MROM PROM
EPROM EPROM
PLD
PLA PAL
PPAL EPPAL EEPPAL
LCA EPLD PEEL
(Pro
elec
erasablelogic
GAL (generic array logic)
Trang 2Ví dụ, Bảng cho ROM có N=3bit địa chỉ, m=2 bit dữ liệu
Địa chỉ Dữ liệu
Giá trị thập phân a2 a1 a0 d1 d0
• Chứa các hàm logic (Boolean) thay vì là các bảng Mỗi biến 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 ở ví dụ trên là
Các thiết bị logic 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ó
để thực hiện các hàm logic khác nhau
Vì hàm logic được biểu diễn dưới dạng tổng các tích hay tích các tổng nên
cấu trúc mạch trong PLD thông thường là một dãy AND và OR đồng dạng
(identical cell) mà có thể lập trình từng cổng được
• Các thiết kế dùng PLD có các ưu điểm sau:
¾ Tăng khả năng tích hợp có thể giảm khối lượng về mạch thiết kế trong
khi vẫn có thể tăng chức năng cho mạch
¾ Công suất thấp CMOS và một số ít hơn các mạch kết hợp sẽ làm giảm
đáng kể công suất nguồn cung cấp
¾ Tăng độ tin cậy Nguồn cung cấp thấp và việc giảm tối đa các mạch liên
kết ở ngoài làm cho việc truyền giữa các khối đáng tin cậy hơn
¾ Giá thành thấp
¾ Dễ sử dụng
¾ Dễ dàng thay đổi Khi cần có sự thay đổi trong thiết kế, không cần phải
thêm thắt các “dây nối”, tất cả là thay đổi bên trong của PLD và có thể
thực hiện các thay đổi đó một cách nhanh chóng
Trang 34.9 ROM - THIẾT KẾ HỆ THỐNG SỐ DÙNG ROM
4.9.1 ROM
ROM là một mạch tổ hợp có n ngõ vào và m ngõ ra Các ngõ vào được gọi là
địa chỉ (address input) và thường được đặt là A0A1…An-1 Các ngõ ra được gọi là
các ngõ ra dữ liệu (data output) và thường đượpc đặt tên là D0D1D2…Dm-1
Hình 1-2 Cấu trúc cơ bản của một ROM 2n x m 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
Ví dụ, bảng chân trị của hàm tổ
hợp 3 ngõ vào 4 ngõ ra và ta có
thể chứa nó trong 1 ROM 23 x 4
(8x 4) Bỏ qua các trì hoãn về thời
gian, các ngõ ra dữ liệu của một
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ỉ
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
• 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 input và
output đọ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 data của ROM với với các nhãn 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ố nhị
phân 4 bit 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 x 8 (256 x 8) với kết nối như hình 1-5
address output (m đường)
Trang 400
03
06
09 0C0F
12
15
18 1B1E
21
24
27 2A2D
00
04
08 0C
10
14
18 1C
20
24
28 2C
30
34
38 3C
00
05 0A0F
14
19 1E
23
28 2D
32
37 3C
41
46 4B
4.9.2 Cấu trúc nội của ROM
Cơ chế sử dụng ROM để lưu trữ thì thay đổi ứng với các công nghệ của 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 sẽ phân biệt giữa 0 và 1
Cấu trúc với giải mã 1 chiều
D3
D4
D5
D 6
Trang 5Sơ đồ ROM 8x 4 với cấu trúc giải mã 1 chiều (dùng 1 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 được gọi là đường bit (bit line) bởi vì nó tương
ứng với một bit ra của ROM
Nhận xét: có diode tương ứng mức 0, không có diode tương ứng mức 1
Các MOS ROM thường dùng transistor thay vì là diode ở mỗi vị trí mà bit sẽ
được lưu trữ
Cấu trúc với giải mã 2 chiều
Nếu xây dựng một ROM 128x1 dùng cấu trúc ở phần trước phải sử dụng một bộ
giải mã 7 sang 128, nghĩa là phải sử dụng đến một lượng lớn 128 các cổng
NAND 7 ngõ vào, nếu thiết kế cho ROM với hàng triệu bits hoặc nhiều hơn sẽ
không có bộ giải mã 20 sang 1048576 Thay vào đó người ta sẽ sử dụng cấu trúc
khác được gọi là giải mã hai chiều (two-dimentional decoding)
D1
B C
G1 G2A G2B
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
A2
D3
HI
D0 HI
D2
0
A1
Trang 6Ví dụ, ROM 128 x 1
3 bit địa chỉ cao A6A5A4 sẽ chọn hàng, mỗi hàng chứa 16 bit bắt đầu tại địa chỉ
A6A5A40000 Khi đặt địa chỉ cho ROM, 16bit ở hàng được chọn đưa vào bộ MUX và
4 bit địa chỉ thấp sẽ chọn bit data mong muốn
Ngoài việc giảm tính phức tạp việc giải mã, giải mã 2 chiều có một thuận lợi khác
là ROM có một kích thước vật lý gần vuông, điều này quan trọng cho việc chế tạo
và đóng gói IC
Với 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ụ, Một bố trí của ROM 32K x 8
512 x 64 array
512 x 64 array
512 x 64 array
512 x 64 array
512 x 64 array
512 x 64 array
512 x 64 array
64 to 1 MUX 64 to 1 MUX 64 to 1 MUX 64 to 1 MUX 64 to 1 MUX 64 to 1 MUX 64 to 1 MUX 64 to 1 MUX
G1 G2A G2B
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
0
Trang 74.9.3 Các kiểu ROM thương mại
Bảng các kiểu ROM thương mại
Kiểu Công nghệ Chu kỳ đọc Chu kỳ ghi Chú thích
Bipolar
NMOS, CMOS NMOS
25 – 500ns
<100ns
<100ns
25-500ns 50-500ns
4 tuần
4 tuần
5 phút
5 phút 10ms/bytes
Ghi 1 lần, công suất thấp Ghi 1 lần, công suất cao, mật độ thấp
Ghi 1 lần công suất cao, không có mặt nạ
Dùng lại được, công suất thấp Giới hạn 10000 lần ghi/vị trí Các ROM thông dụng nhất là các EPROM: 2764, 27128, 27256, và 27512
Chú ý: chân VCC phải nối với +5V
chân VIH phải nối với tín hiệu logic HIGH hợp lệ
chân VPP dùng để đưa vào điện áp lập trình
4.9.4 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 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 nhau Do đó, phần lớn các
chip ROM thương mại có ngõ ra dữ liệu 3 trạng thái và một ngõ vào 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à ứng dụng lưu trữ chương trình sẽ có nhiều
ROM được nối chung 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 Ngoài OE còn cần phải có CS để cho phép ngõ ra 3 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), CS ở mức không tích cực thì không cấp nguồn cho các
decoder nội, các driver và các MUX của ROM Ở chế độ chờ này (standby
mode) 1 ROM tiêu thụ ít hơn 10% công suất so với chế độ hoạt động (active
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 CE OE PGM VPP
O0 O1 O2 O3 O4 O5 O6 O7
27128
10 9 8 7 6 5 4 3 25 24 21 23 2 26 20 22 27 1
11 12 13 15 16 17 18 19
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 CE OE PGM VPP
O0 O1 O2 O3 O4 O5 O6 O7
27256
10 9 8 7 6 5 4 3 25 24 21 23 2 26 27 20 22 1
11 12 13 15 16 17 18 19
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 CE OE VPP
O0 O1 O2 O3 O4 O5 O6 O7
Trang 8Hình sau chỉ các ngõ vào CS và OE được sử dụng như thế nào ở bên trong một
ROM tiêu biểu
4.9.5 Thiết kế hệ tuần tự dùng ROM
Có thể thiết kế dễ dàng một hệ tuần tự dùng ROM kết hợp với các FF
Mô hình tổng quát của hệ tuần tự dùng ROM và 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-FF) và đưa
hồi tiếp về ngõ vào của ROM
row decoder Power on
Storage Array Power on
Power on colum MUX
CK
Qk Dk
CK
Clock
+ 1 Q + 2 Q
+ k Q
D1
Trang 9Như vậy hệ tuần tự với m input, n output và k biến trạng thái có thể được cài
đặt bằng k D-FF và ROM với (m+k) ngõ vào (nghĩa là 2m+k từ word) và (n+k)
output
Thương dùng D FF hơn JK FF vì sử dụng các FF với 2 ngõ vào sẽ cần phải tăng
số ngõ ra ở ROM
Ví dụ, Thiết kế mạch chuyển đổi mã BCD sang mã quá 3, ngõ vào và ra là nối
tiếp với LSB đi trước
input (BCD) X Output (excess – 3) Y
Trước hết thành lập bảng trạng thái, sau đó rút gọn bảng bằng cách so các hàng
giống nhau thì gom lại Khi so các hàng có 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 bất
cứ 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 thấy rằng E ≡ F ≡ G và bảng được
thu gọn thành 7 hàng sau
Thời gian Chuỗi vào
nhận được
Trạng thái hiện tại
Trạng thái
kế
X = 0 X=1
Giá trị ra hiện tại (Z) X=0 X=1
Trang 10Bả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 X=1
Giá trị ra hiện tại (Z) X=0 X=1
trạng thái
Giản đồ trạng thái có dạng hình cây Mỗi đường bắt đầu ở trạng thái reset biểu
diễn một trong 10 chuỗi vào có thể có
Bảng gán trạng thái và bảng chuyển trạng thái
Thời gian Trạng thái hiện tại Q1Q2Q3 Q1
0
1
1 -
1/0 Reset
t2
Trang 11Cài đặt bộ chuyển đổi mã này dùng ROM và các D-FF Vì có 7 trạng thái nên
cần 3 DFF Như vậy cần ROM có 4 input (24 word) và 4 output Dùng gán nhị
phân trực tiếp, xây dựng bảng chuyển trạng thái cho trạng thái kế của các D-FF
như là hàm của trạng thái hiện tại và input
Vì đang sử dụng các D FF, D1 = Q1+, D2=Q2+, D3=Q3+ bảng chân trị cho ROM
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)
(a) Bảng trạng thái (b) bảng chuyển trạng thái
T thái
h.tại
T thái kế X=0 X=1
G.trị ra h.tại ZX=0 X=1
Q1Q2Q3 Q1+Q2+Q3+
X=0 X=1
Z X=0 X=1
Trang 12Cài đặt mạng tuần tự dùng ROM
4.10 PLD tổ hợp (Combinational PLD)
5.3.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 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 nột của ROM
Cấu trúc PLA (PLA nxm với p số hạng tích)
Ví dụ, Tổ chức nội của PLA 4x3 với 6 số hạng tích
+ 3 Q
+ 2 Q
+ 1
Dãy
OR
n input
p đường word (số hạng tích) m đường ra
Dãy OR
Các đường Word
F1
b'c bcabd
a
a'bdab'c'
F3 c
b
F2
Trang 13Với ký hiệu
Bảng PLA cho PLA ở trên
Cĩ hai loại PLA:
• PLA lập trình mặt nạ (Mask programmable): được lập trình lúc chế tạo
(tương tự PROM)
• PLA lập trình trường (field programmable) 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
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
5.3.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, trong đó các 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
Một đoạn PAL
a'a'bd
db
ab'c' bc
bc F3
Trang 14Vì chỉ có dãy AND là lập trình được, do đó PAL kinh tế hơn PLA 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
Phần lớn các nhà sản xuất PAL chỉ ra thiết kế nội của PAL ở ký hiệu của nó
Ví dụ
`số input tiêu tán công suất 1/4w
Số output
Với cấu trúc ra
H = High ngõ ra tác động mức cao
L = Low ngõ ra tác động mức thấp
C = Complement ngõ ra có cả hai đường tác động mức cao và thấp
Tốc độ:
khoảng trắng – tốc độ chuẩn A= tốc độ cao
B=tốc độ rất cao
D=tốc độ cực cao
Tiêu tán công suất
blank = full
Ví dụ, ký hiệu logic truyền thống cho PAL 16L8
chân 10, 20 cho nguồn và đất
Xem thêm sơ đồ logic của PAL 14L4 và PAL 1246 ở các trang 240, 241 trong
Fundamentals of logic design của Roth
PAL16L8
1 2 3 4 5 6 7 8 9 11
19 18 17 16 15 14 13 12
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10
O1 O2 O3 O4 O5 O6 O7 O8
Trang 15Khi thiết kế với PAL phải đơn giản hóa các phương trình logic và cố đưa
chúng khớp vào một (hoặc nhiều) các PAL 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 2 hay nhiều cổng OR, với
một kiểu PAL cho trước, số số hạng AND đưa vào mỗi cổng OR 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ì ta có thể
chọn PAL có nhiều ngõ vào và ít output hơn
Ví dụ, dùng PAL thiết kế mạch đổi một số nhị phân 4 bit sang số HEX và xuất
mã ASCII 7 bit cho số hex
W X Y Z
số hex A6 A5 A4 A3 A2 A1 A0
0
0
1
1
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
Để viết được bảng PAL phải rút gọn các hàm ra và kết quả như sau
một output không dùng Có thể viết lại chương trình cho A2 như sau
PAL
WXYZ
Trang 16A =WX+(XZ+XY)=WX+B2 với B=XZ+XY
rồi 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
PAL như ở hình trên Với cách này ta thể tạo ra 5 hàm với một PAL
Xem thêm các ví dụ trong chương 8 của Digital desgn principle and practices
của John F Wakerly
5.3.3 Thiết kế hệ tuần tự dùng PLA
Có thể cài đặt các hệ tuần tự dùng PLA và các FF theo cách tương tự như dùng
ROM và các FF Tuy nhiên trong trường hợp các PLA, sự gán trạng thái là quan
trọng vì việc sử dụng các 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ụ, cài đặt bảng trạng thái của VD thiết kế dùng ROM nhưng bây giờ dùng 1
PLA 3 DFF
T thái h.tại T thái kế
X=0 X=1
G.trị ra h.tại Z X=0 X=1
0
1
1 - Cấu hình mạch thì giống như dùng ROM ngoại trừ thay thế ROM bằng một PLA
với kích thướng 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ị sau
Trang 17Có thể chứa bảng này trong một PLA 4 input, 13 số hạng tích và 4 output nhưng
thấy rằng nó sẽ không thuận lợi hơn việc dùng ROM đã làm ở phần trước
Nếu sử dụng phép gán trạng thái, phương trình ra và phương trình vào các D-FF
1 2
1 3 2
Z= +Bảng PLA tương ứng với các phương trình này như sau
5.3.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
4.11 PLD tuần tự (sequential PLD = PLA(PAL)+các FF)
Phần lớn các thiết kế số cần các FF, các PLD có chứa các FF như vậy thường
được gọi là PLD có thanh ghi (registered PLD) hay PLD tuần tự
Một đoạn của PAL tuần tự
D-FF được lái từ một cổng OR Ngõ ra FF được đưa hồi tiếp về dãy AND lập
trình được qua một bộ đệm Như vậy các ngõ vào cổng AND có thể được nối
vào A, A ,…,Q hay Q Các phương trình trạng thái kế
A A B B Q Q
A
B
D Q Q
EN
Q clock
Bộ đệm
ra đảo 3 t.thái
Trang 18Q+ =D=ABQ+ABQ
Ngõ ra FF được nối vào bộ đệm đảo 3 trạng thái, cho phép khi EN=1
Đặc tính của một số PAL tuần tự thông dụng Mỗi PAL chứa 1 thanh ghi có từ 4
đến 10 D-FF 6 PAL đầu trong bảng tương tự với 16R4 (có 1 dãy cổng AND với
16 input và 4 D-FF)
Kiểu Số ngõ vào
(trực tiếp+hồi tiếp + các IO)
Số ngõ ra (FF + IO)
Số các cổng AND trên cổng OR 16R4
4+4 6+2 8+0 4+4 6+2 8+0 4+6 8+2 10+0
3/2*
-/2 Ghi chú: * 3 với các ngõ ra tổ hợp, 2 cho các ngõ vào D FF
3 PAL cuối trong bảng chỉ các “XOR PAL” XOR PAL có một cổng XOR lái
mỗi ngõ vào D FF như sau
Trong 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 2 cổng AND, các ngõ ra FF có thể được hồi tiếp về các cổng 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 FF trong XOR PAL là
)PP()PP(D
Q+ = = 1 + 2 ⊕ 3 + 4Với P1 P2 P3 P4 là các số hạng tích
Để minh họa việc sử dụng các XOR PAL, thiết kế một bộ đếm nhị phân 4 bit
(đếm lên, đếm xuống) với 3 ngõ vào điều khiển U(up), D(down) và L (load)
Khi U=1 bộ đếm tăng thêm 1, khi D = 1 bộ đếm giảm 1, và khi L =1, bộ đếm
nạp dữ liệu song song từ các ngõ vào dữ liệu của nó (DI)
Bảng các trạng thái kế của bộ đếm cho U=1 và cho D=1, giả sử rằng U=D=1
không xảy ra
D Q
Q
ENQclock