b. Mô tả mạch tuần tự:
Các khối thanh ghi có thể đƣợc mô tả bằng tiến trình hoạt
động theo clock theo 2 kiểu:
Tiến trình đồng bộ, với danh sách tín hiệu kích thích chỉ có
duy nhất tín hiệu clock, mọi biến đổi của mạch đƣợc đồng bộ
theo sƣờn clock)
Hoặc tiến trình không đồng bộ, với danh sách tín hiệu kích
thích không chỉ có tín hiệu clk mà còn có các tín hiệu không
đồng bộ khác.
273 trang |
Chia sẻ: huongthu9 | Lượt xem: 426 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bài giảng Điện tử Số - Chương 1: Hệ đếm, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
iệu “0”.
Ngƣợc lại những vị trí không có diode thì sẽ cho phép lƣu trữ số liệu “1”. Khi đọc
một từ số liệu thứ i của ROM, bộ giải mã sẽ đặt dây từ đó xuống mức logic thấp,
các dây còn lại ở mức cao. Do vậy chỉ những diode nối với dây này đƣợc phân
cực thuận, do đó nó sẽ dẫn làm cho điện thế lối ra trên các dây bit tƣơng ứng ở
mức logic thấp, các dây bit còn lại sẽ giữ ở mức cao.
R4 R3 R2 R1
Các dây bit (j cột)
+5V
1
0
+V
Các dây
hàng (i hàng)
Hình 7-6. MROM diode đơn giản
Các chip RAM không thích hợp cho các chương trình khởi
động do các thông tin trên đó bị mất khi tắt nguồn. Do vậy
phải dùng đến ROM, trong đó các số liệu cần lưu trữ được
viết một lần theo cách không bay hơi để nhằm giữ được
mãi.
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
188
7.2.5. Bộ nhớ cố định – PROM
PROM cũng gồm có các diode nhƣ ở MROM nhƣng chúng có
mặt đầy đủ tạo các vị trí giao nhau giữa dây từ và dây bit. Mỗi
diode đƣợc nối với một cầu chì.
Bình thƣờng khi chƣa lập trình, các cầu chì còn nguyên vẹn, nội
dung của PROM sẽ toàn là 0. Khi định vị đến một bit bằng cách
đặt một xung điện ở lối ra tƣơng ứng, cầu chì sẽ bị đứt và bit này
sẽ bằng 1. Bằng cách đó ta có thể lập trình toàn bộ các bit trong
PROM.
Nhƣ vậy, việc lập trình đó có thể đƣợc thực hiện bởi ngƣời sử
dụng chỉ một lần duy nhất, không thể sửa đổi đƣợc.
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
189
7.2.5. PROM
Hình 7-11. PROM dùng diode
R4 R3 R2 R1
+5V
Các
dây
từ
(i)
Các dây bit (j)
D3 D2 D1 D0
WE0
WE1
WE2
WE3
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
190
7.2.5.Bộ nhớ bán cố định - EPROM (Erasable PROM)
Hình 7- 7 chỉ ra cấu trúc của một transistor dùng để làm một ô nhớ gọi là
FAMOST (Floating gate avalanche injection MOS transistor).
Trong ô nhớ dùng transistor này, cực cửa đƣợc nối với đƣờng từ, cực máng
đƣợc nối với đƣờng bit và cực nguồn đƣợc nối với nguồn chuẩn đƣợc coi là
nguồn cho mức logic 1. Khác với transistor MOS bình thƣờng, transistor loại
này còn có thêm một cửa gọi là cửa nổi (floating gate); đó là một vùng vật
liệu đƣợc thêm vào vào giữa lớp cách điện cao nhƣ ở hình 7-7. Nếu cửa nổi
không có điện tích thì nó không ảnh hƣởng gì đến cực cửa điều khiển và
transistor hoạt động nhƣ bình thƣờng.
“0” “1”
Xoá
Lập trình
0v 1v
DI
GSv
Lớp ôxit Lớp ôxit
Cửa điều khiển
Cửa nổi
n- Nguồn n- Máng
Đế bán dẫn
loại p
hv hv
Nguồn MángCửa
- - -
- - -
Hình 7-7. Cấu trúc của một EPROM
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
191
7.2.6. Bộ nhớ bán cố định – EEPROM
Cửa sổ thạch anh có giá thành khá đắt và không tiện lợi nên
những năm gần đây xuất hiện các chip PROM có thể xoá số liệu
bằng phƣơng pháp điện. Cấu trúc của ô nhớ giống nhƣ hình 7-8.
Lớp ôxit
n- Nguồn n- Máng
Đế bán dẫn loại p
Lớp ôxit
Nguồn MángCửa
- - -
- - -
Cửa nổi
Cửa điều khiển
-
-- -
Đường hầm ôxít
Lớp ôxit
Hình 7-8. Cấu trúc của một EEPROM
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
192
7.3. RAM
RAM có khả năng cho phép ghi lƣu trữ dữ liệu thông tin
tam thời trong một thời gian, sau đó lại đọc thông tin đó để
tiếp tục xử lý khi cần thiết nên nó có tên là bộ nhớ đọc/viết.
Một đặc tính quan trọng khác của RAM là các dữ liệu trong
RAM chỉ có tính chất tạm thời, dễ bị xóa khi mất nguồn
năng lƣợng cấp
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
193
7.3.1. Cấu trúc khối của RAM
RAM cũng có 4 phần chính nhƣ mô tả trên hình 7-17. Điểm
khác biệt là:
+ Mạch điều khiển của RAM phải có thêm đầu vào R/W điều
khiển hai quá trình cơ bản trong thao tác của RAM: ghi dữ
liệu thông tin vào nó và quá trình xuất (đọc) thông tin đã ghi.
+ Mạch đầu ra có khả năng kiểm soát hai chiều trƣớc khi cho
phép giao tiếp với kênh dữ liệu. Quá trình này tuân theo
nguyên tắc: (đồng bộ với việc điều khiển R/W) khi bộ nhớ
đang đọc thì không đƣợc ghi và ngƣợc lại; trạng thái thứ ba
có thể chờ quyết định.
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
194
7.3.1. Cấu trúc RAM
Cấu trúc 4 khối của một RAM có 8 bit dữ liệu và 8 bit địa
chỉ
Bộ giải mã địa
chỉ
Bộ điều khiển
Địa chỉ được chọn R/W
Mạch vào/ra
Khối nhớ
A9
A0
Kênh
địa chỉ
Kênh
điều
khiển
CE1
R/W
CE2
Bus vào/ra dữ liệu
D7 D0
RAM
RE/WE
Di
CE
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
195
7.3.2. Mạch vào ra
Mảng bộ nhớ
B
u
s
d
ữ
l
iệ
u
D3
D2
D1
D0
RE
WE
G0
G’0
G1
G’1
G2
G’2
G3
G’3
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
196
7.3.3. Mạch điều khiển
+ Khi ở chế độ đọc, xung R/W ở mức logic 1. Đồng thời các tín hiệu cho phép
chọn CE1, CE2 đƣợc kích hoạt ở mức 1 nên lúc này RE = 1, tức là chế độ đọc đƣợc
thiết lập. Khi đó tín hiệu = 0 nên tín hiệu cho phép ghi WE = 0 (cấm ghi).
+ Khi ở chế độ ghi, xung R/W ở mức logic 0, = 1, đồng thời các tín hiệu cho phép
chọn CE1, CE2 đƣợc kích hoạt ở mức 1 nên lúc này WE = 1, tức là nó ở chế độ
ghi. Khi đó tín hiệu R/W = 0 nên tín hiệu cho phép đọc RE = 0 (cấm đọc).
R/W
CE1
CE2
RE (cho phép đọc)
WE (cho phép ghi)
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
197
7.3.4. DRAM
Các ô nhớ đƣợc xắp xếp theo hàng và cột trong một ma trận nhớ. Địa chỉ ô
nhớ đƣợc chia thành hai phần: địa chỉ hàng và cột. Hai địa chỉ này đƣợc đọc
vào bộ đệm một cách lần lƣợt. Xử lý kiểu này đƣợc gọi là hợp kênh, lý do là
để giảm kích thƣớc bộ giải mã, tức là giảm kích thƣớc và giá thành vi mạch.
Quá trình dồn kênh địa chỉ này đƣợc điều khiển bởi các tín hiệu RAS (Row
Access Strobe) và CAS (Column Access Strobe).
Nếu ở mức tích cực thấp thì DRAM nhận đƣợc địa chỉ đặt vào nó và sử
dụng nhƣ địa chỉ hàng.
Nếu ở mức tích cực thấp thì DRAM nhận đƣợc địa chỉ đặt vào nó và sử
dụng nhƣ địa chỉ cột.
Lớp
ôxit
n- Nguồn n- Máng
Đế bán dẫn loại p
Lớp
ôxit
Tra
Điện cực Cửa
Vùng lưu giữ
điện tích
Tụ điện Transistor
WL
BL BL
C
RAS
CAS
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
198
7.3.5. SRAM
Một ô nhớ của SRAM giữ thông tin bởi trạng thái của mạch trigơ. Thuật ngữ
“tĩnh” chỉ ra rằng khi nguồn nuôi chƣa bị cắt thì thông tin của ô nhớ vẫn đƣợc
giữ nguyên. Khác với ô nhớ DRAM, ở đây ô nhớ trigơ cung cấp một tín hiệu số
mạnh hơn nhiều vì đã có các transistor trong các ô nhớ, chúng có khả năng
khuếch đại tín hiệu và do đó có thể cấp trực tiếp cho các đƣờng bit. Trong
DRAM, sự khuếch đại tín hiệu trong các bộ khuếch đại cần nhiều thời gian và
do đó thời gian truy nhập dài hơn. Khi định địa chỉ trong các trigơ ở SRAM,
các transistor bổ sung cho các trigơ, các bộ giải mã địa chỉcũng đƣợc đòi hỏi
nhƣ ở DRAM.
CCV
Tra Tra
TrsTrs
WL
BLBL
Tra
WL
BL BL
C
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
199
7.4. Bộ nhớ FLASH
Cấu trúc của chúng cơ bản nhƣ EEPROM, chỉ có lớp kênh ôxit ở các
ô nhớ mỏng hơn. Bộ nhớ flash có thể hoạt động gần mềm dẻo nhƣ
DRAM và SRAM nhƣng lại không bị mất số liệu khi bị cắt điện.
Phần chính là mạng nhớ bao gồm các ô nhớ FAMOST nhƣ đƣợc mô
tả ở mục trên. Giống nhƣ SRAM, bộ nhớ flash không dồn phân kênh
địa chỉ. Các bộ giải mã hàng và cột chọn một đƣờng từ và một hoặc
nhiều cặp đƣờng bit. Số liệu đọc đƣợc đƣa ra ngoài bộ đệm số liệu
I/O hoặc đƣợc viết vào ô nhớ đã đƣợc định địa chỉ bởi bộ đệm này
qua cổng I/O.
Một chip nhớ flash 1 Mb có thể đƣợc lập trình trong khoảng 2 sec,
nhƣng khác với EEPROM việc xoá đƣợc thực hiện từng chip một.
Thời gian xoá cho toàn bộ bộ nhớ flash khoảng 1 sec. Xử lý đọc, lập
trình và xoá đƣợc điều khiển bởi các lệnh có độ dài 2 byte đƣợc bộ
xử lý viết vào các thanh ghi lệnh của mạch điều khiển flash.
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
200
Điều khiển
Thanh ghi lệnh
Bộ định thời
Chuyển mạch điện thế
xoá
Chuyển mạch điện thế
chương trình
Giải
mã
hàng
Đệm
địa
chỉ
Giải
mã
cột
Ma trận tế bào nhớ
Cửa vào ra
Đệm vào ra dữ liệu
Dữ liệu vào
Địa
chỉ
PPV
WE
CE
OE
Hình 7-9. Sơ đồ bộ nhớ FLASH
7.4. Bộ nhớ FLASH
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
201
7.5. Bộ nhớ CACHE
Giữa CPU và bộ nhớ chính bằng DRAM, ngƣời ta xen vào một bộ
nhớ SRAM nhanh có dung lƣợng nhỏ bằng 1/10 hoặc 1/100 lần bộ
nhớ chính gọi là cache; dƣới sự điều khiển của mạch điều khiển
cache, bộ nhớ này sẽ lƣu trữ tạm thời các số liệu thƣờng đƣợc gọi và
cung cấp nó cho CPU trong thời gian ngắn.
Cache chứa các thông tin mới vừa đƣợc CPU sử dụng gần đây nhất.
Khi CPU đọc số liệu nó sẽ đƣa ra một địa chỉ tới bộ điều khiển
cache. Sau đó một trong hai quá trình sau sẽ xảy ra:
CPU
Bộ điều khiển CACHE
DRAM trong bộ
nhớ chính
SRAM Cache
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
202
7.6. Mở rộng dung lƣợng bộ nhớ
Các vi mạch nhớ bán dẫn chỉ có dung lƣợng xác định. Muốn
có bộ nhớ có dung lƣợng lớn hơn, ta tìm cách ghép nhiều vi
mạch nhớ nhằm một trong ba mục đích sau:
Tăng độ dài nhớ, nhƣng không làm tăng số lƣợng từ nhớ.
Tăng số lƣợng từ nhớ nhƣng không làm tăng độ dài từ nhớ.
Tăng cả số lƣợng và độ dài từ nhớ.
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
203
7.6.1. Mở rộng độ dài từ
Trên một chíp nhớ, có thể
có đƣợc 1 đến một số hữu
hạn lối ra, thƣờng là 4
hoặc 8 bit. Muốn có độ
dài từ lớn hơn, chẳng hạn
từ 4 lên 8 hoặc 16 bit, ta
tiến hành ghép nhiều chíp
nhớ nhƣ chỉ ở hình 7-10
đối với RAM. Đối với
ROM cách làm cũng
tƣơng tự, chỉ khác trong
trƣờng hợp này, có thể
không có lối vào R/W.
D0
Dn-1
RAM
I
BUS địa chỉ
A0
An-1
RAM
II
BUS dữ liệu
BUS dữ liệu
Hình 7-10. Sơ đồ mở rộng độ dài từ.
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
204
7.6.2. Mở rộng dung lƣợng (1)
Muốn mở rộng dung lƣợng, ta cũng ghép nhiều chíp lại với nhau. Nhƣ
đã biết, dung lƣợng có liên quan đến số lối vào địa chỉ (C = 2N x độ dài
từ, với N là số lối vào địa chỉ). Cứ tăng 1 chíp thì cần có thêm một lối vào
địa chỉ.
Khi mở rộng dung lƣợng các lối vào/ra dữ liệu D và R/ đƣợc nối song
song. Một phần dung lƣợng đƣợc trữ vào mỗi chíp. Sự phân chia này
dựa trên cơ sở tổ hợp địa chỉ vào và lối vào điều khiển. Hình 7-11 là một
sơ đồ ví dụ.
A0
A11
A12
A13
Bộ giải
mã vào
2 ra 4
Hình 7-11. Phƣơng pháp mở rộng dung lƣợng.
IC 1
A0
A11 2k
IC 2
A0
A11 2k
IC 3
A0
A11 2k
IC 4
A0
A11 2k
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
205
A0
A11
A12
A13
Bộ giải
mã vào
2 ra 4
Hình 7-11. Phƣơng pháp mở rộng dung lƣợng.
IC 1
A0
A11 2k
IC 2
A0
A11 2k
IC 3
A0
A11 2k
IC 4
A0
A11 2k
A13 A12 _CS IC mở Khoảng địa chỉ
0 0 _CS1 IC I 000016 - 0FFF16
0 1 _CS2 IC II 100016 - 1FFF16
1 0 _CS3 IC III 200016 - 2FFF16
1 1 _CS4 IC IV 300016 - 3FFF16
7.6.2. Mở rộng dung lƣợng (2)
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
Nội dung
206
Chƣơng 1: Hệ đếm
Chƣơng 2: Đại số Boole và các phƣơng pháp biểu diễn hàm
Chƣơng 3: Cổng logic TTL và CMOS
Chƣơng 4: Mạch logic tổ hợp
Chƣơng 5: Mạch logic tuần tự
Chƣơng 6: Mạch phát xung và tạo dạng xung
Chƣơng 7: Bộ nhớ bán dẫn.
• Chƣơng 8: Cấu kiện logic khả trình (PLD)
Chƣơng 9: Ngôn ngữ mô tả phần cứng (VHDL)
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
CHƢƠNG 8.
CẤU KIỆN LOGIC KHẢ TRÌNH
207
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
8.1 GIỚI THIỆU VỀ CÔNG NGHỆ LOGIC SỐ
208
Công nghệ
Logic số
(Digital Logic)
Standard
Logic
Programmable
Logic (PLD)
ASICs Full Custom
VLSI Design
TTL
74xx
CMOS
4xxx
SPLD FPGA CPLD Gate
Arrays
Standard
Cell
M
ic
ro
P
ro
ce
ss
o
r
/R
A
M
Hình 8.1 - Phân loại công nghệ logic số.
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
8.2 CẤU KIỆN LOGIC KHẢ TRÌNH (PLD)
8.2.1 SPLD
209
Đầu vào
Đầu ra
Điểm kết nối
khả trình
Hình 8.3 – Kiến trúc PAL
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
8.2.1 SPLD -PAL
210
X1
X0
X2
0 1 2
X .X .X 0 1X .X
Y0
Y1
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
8.2.1 SPLD-PLA
211
Đầu vào
Điểm kết nối
khả trình
Điểm kết nối
khả trình
Đầu ra
Hình 8.4 – Kiến trúc PLA
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
212
X1
X0
X2
Y1
Y0
Y2
Y3
Cầu chì còn Cầu chì đứt
0 2 1 0 2 1 0 2 1 0
1 2 1 0 2 1 0 2 1 0
Y X .X .X X .X .X X .X .X
Y X .X .X X .X .X X .X .X
8.2.1 SPLD-PLA
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
8.2.2 CPLD (Complex PLD)
213
Hình 8.5 – Kiến trúc chung của CPLD
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
214
8.2.3 FPGA
Logic
Block
Logic
Block
Logic
Block
Logic
Block
Logic
Block
Logic
Block
Logic
Block
Logic
Block
Logic
Block
Logic
Block
Logic
Block
Logic
Block
Logic
Block
Logic
Block
Logic
Block
Logic
Block
IO blocks
Interconnects
Hình 8.6 - Kiến trúc chung của FPGA
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
8.3.1. Phương pháp dùng sơ đồ mô tả
Bước 1: Chọn thƣ viện cấu kiện và công cụ mô tả thiết kế. Sau đó, chọn các
cổng cần cho thiết kế từ thƣ viện, có thể kết hợp tuỳ ý các cổng với nhau. Ở
bƣớc này, phải lựa chọn họ cấu kiện sẽ sử dụng, nhƣng chƣa phải quyết định sử
dụng cấu kiện cụ thể nào trong họ để đáp ứng các yêu cầu về tốc độ và kích
thƣớc.
Bước 2: Thực hiện kết nối các cổng với nhau, sử dụng lƣới hoặc dây nối. Ngƣời
thiết kế có thể điều chỉnh kết nối giữa các cổng tuỳ ý theo mục đích thiết kế.
Bước 3: Gắn thêm và phân bố các bộ đệm đầu vào và đầu ra. Các bộ đệm này
sẽ xác định các chân I/O cho thiết bị.
Bước 4: Bƣớc cuối là tạo ra netlist. Netlist là file mô tả mạch số dƣới dạng text,
đƣợc tạo bởi công cụ thiết kế. Bản mô tả thiết kế giúp các chƣơng trình khác
nắm đƣợc các cổng logic có trong mạch, cách kết nối các cổng đó, và số các
chân I/O. Chuẩn để viết file netlist phổ biến nhất là dạng EDIF (Electronic
Digital Interchange Format).
215
8.3 GIỚI THIỆU PHƢƠNG PHÁP THIẾT LẬP CẤU HÌNH CHO CPLD/FPGA
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
8.3.2. Phƣơng pháp dùng ngôn ngữ mô tả phần cứng (HDL)
Bước 1: Dùng ngôn ngữ mô tả phần cứng (HDL) để mô tả các tính
năng và hoạt động của từng phần trong hệ thống. Đồng thời có thể
dùng ngôn ngữ mô tả phần cứng HDL mô tả kết nối giữa các phần
trong một hệ thống. Đầu ra của quá trình này là một file ở dạng
text.
Bước 2: Dùng công cụ synthesis (tổng hợp) để tạo ra file netlist từ
file ở trên. Công cụ synthesis xác định các cổng đƣợc sử dụng dựa
trên mô hình hoạt động (trong phƣơng pháp thiết kế truyền thống,
ngƣời thiết kế phải thực hiện thao tác này). Vì netlist đặc trƣng cho
họ thiết bị và nhà sản xuất, nên phải sử dụng thƣ viện của nhà sản
xuất tƣơng ứng. Hầu hết các công cụ thiết kế đều cung cấp tên các
nhà sản xuất mảng cổng, FPGA và CPLD.
216
8.3 GIỚI THIỆU PHƢƠNG PHÁP THIẾT LẬP CẤU HÌNH CHO CPLD/FPGA
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
8.4.1 Lưu đồ thiết kế cho CPLD
217
8.4 LƢU ĐỒ THIẾT KẾ CHO CPLD/FPGA
Design Entry
Schematic
ECS
HDL
Verilog/VHDLL
State Machines
StateCad
Design Verification
Functional Simulation
(ISE Simulator, ModelSim)
Design Synthesis
Xilinx Synthesis Tool
(XST)
Download (iMPACTE)
Design Implementation
Translate
Map
Place and
Route
Timing Simulation
Static Timing Analysis (ECS) ModelSim XE
Configuration
Hình 8.7- Lưu đồ thiết kế CPLD
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
8.4.2 Lưu đồ thiết kế cho FPGA
218
8.4 LƢU ĐỒ THIẾT KẾ CHO CPLD/FPGA
Create Bit file
Configuration
Download (iMPACTE)
Hình 8.9 - Lưu đồ thiết kế FPGA
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
Nội dung
219
Chƣơng 1: Hệ đếm
Chƣơng 2: Đại số Boole và các phƣơng pháp biểu diễn hàm
Chƣơng 3: Cổng logic TTL và CMOS
Chƣơng 4: Mạch logic tổ hợp
Chƣơng 5: Mạch logic tuần tự
Chƣơng 6: Mạch phát xung và tạo dạng xung
Chƣơng 7: Bộ nhớ bán dẫn.
Chƣơng 8: Cấu kiện logic khả trình (PLD)
Chƣơng 9: Ngôn ngữ mô tả phần cứng (VHDL)
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
CHƢƠNG 9.
NGÔN NGỮ MÔ TẢ PHẦN CỨNG-
VHDL
220
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
9.1 CẤU TRÚC NGÔN NGỮ CỦA VHDL
Cấu trúc ngôn ngữ cơ bản của VHDL gồm:
Đối tƣợng: Quy định các dạng tín hiệu cố định, tín hiệu, cổng vào - ra, hay tín
hiệu đệm
Các kiểu dữ liệu: Quy định các kiểu dữ liệu có thể đƣợc dùng để gán cho mỗi
đối tƣợng.
Các phép toán: Quy định các phép toán sử dụng cho mỗi loại dữ liệu.
Các đơn vị thiết kế: Các thành phần cơ bản cấu trúc lên một chƣơng trình mã
mô tả dùng VHDL.
Các cấu trúc lệnh tuần tự: Cấu trúc câu lệnh thực hiện theo tiến trình tuần tự,
thƣờng dùng mô tả các cấu trúc mạch tuần tự của mạch số.
Các cấu trúc lệnh song song: Cấu trúc câu lệnh thực hiện song song, thƣờng
dùng mô tả các cấu trúc mạch tổ hợp.
221
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
Trong ngôn ngữ VHDL gồm có 4 đối tƣợng là: tín hiệu - signal,
biến - variable, hằng - constant, tham số chung – generic.
222
9.1.1 Đối tƣợng trong VHDL
Signal tên_tín_hiệu {,tên_tín_hiệu}:kiểu_dữ_liệu
[:=giá_trị_khởi_tạo];
Ví dụ: Signal a,b,c: Bit:=‘1‘; -- Giá trị khởi tạo là ‗1‘;
Signal y, reg: std_logic_vector(3 downto 0):=‖0000‖;
variable tên_biến {,tên_biến}: kiểu_dữ_liệu
[:=giá_trị_khởi_tạo];
Ví dụ: variable x : Bit:=‘1‘;
variable Q: std_logic_vector(3 downto 0);
constant tên_hằng {,tên_hằng}: kiểu_dữ_liệu :=giá_trị_khởi_tạo;
Ví dụ: constant GND : std_logic:=‘0‘;
constant PI: real:=3.1414;
constant datamemory : memory := (('0','0','0','0'),
('0','0','0','1'),
('0','0','1','1'));
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
Tóm lại: Các đối tƣợng trong VHDL có mục đích sử dụng,
phạm vi sử dụng khác nhau, nhƣng chúng có cú pháp khai báo
chung nhƣ sau:
Đối_tƣợng tên_đối_tƣợng : kiểu_dữ_liệu {:=giá_trị_khởi_tạo}
223
9.1.1 Đối tƣợng trong VHDL
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
Vô hƣớng : Bit, boolean, integer, real, physical, character, std_logic và
std_ulogic, enumerated (kiểu liệt kê)...
Kiểu ghép: Mảng, bảng ghi (record). Bit_logic_vector,
std_logic_vector và String đều là những dạng dữ liệu ghép đã đƣợc
định nghĩa sẵn.
Mảng hai chiều (2-D Arrays): các dữ liệu có dạng mảng 2 chiều, đƣợc
tạo nên từ 1 mảng của một mảng 1 chiều ( hay một bản ghi).
Kiểu dữ liệu con (Subtypes): tập dữ liệu con của một dữ liệu đã có sẵn,
đƣợc ngƣời dùng tự định nghĩa dựa trên những dạng có sẵn.
Các kiểu dữ liệu đã đƣợc định nghĩa trong gói dữ liệu chuẩn trong thƣ
viện chuẩn Standard Library của VHDL là: bit, boolean, integer, real,
physical, character, std_logic and std_ulogic, Bit_logic_vector,
std_logic_vector, và String và một số kiểu dữ liệu con.
224
9.1.2 Kiểu dữ liệu trong VHDL
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
Cú pháp chung định nghĩa kiểu dữ liệu trong VHDL nhƣ
sau:
Type Tên_kiểu is giới_hạn_giá_trị_của_kiểu
225
9.1.2 Kiểu dữ liệu trong VHDL
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
9.1.3 Các phép toán trong VHDL
a. Toán tử logic
Toán tử logic gồm có: and, or, nand, nor, xor, not, xnor
đƣợc sử dụng cho các dạng dữ liệu là bit, boolean,
bit_vector, std_logic_vector
b. Toán tử quan hệ
Toán tử quan hệ đƣợc sử dụng cho hầu hết các dạng dữ
liệu, tất cả các toán tử quan hệ đều cho giá trị trả về dƣới
dạng boolean.
Toán tử quan hệ gồm có: =, /=, , >=.
226
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
c. Toán tử số học
Toán tử số học đƣợc sử dụng cho kiểu dữ liệu Integer, Real,
Signed, Unsigned, các dạng dữ liệu vật lý, Std_logic,
Std_logic_vector, Bit, Bit_vector. Cần chú ý rằng không phải
tất cả toán tử số học đều có thể sử dụng cho kiểu dữ liệu
mảng.
Các toán tử số học là: +, -, *, /, abs (trị tuyệt đối), ** (hàm
mũ).
227
9.1.3 Các phép toán trong VHDL
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
d. Toán tử dịch:
Toán tử dịch là toán tử tác động lên toán hạng kiểu Bit_vector để tạo
ra các phép dịch hoặc quay dữ liệu. Cú pháp của toán tử dịch:
Toán_hạng_trái Toán_Tử_dịch Toán hạng phải;
Trong đó: phải là kiểu Bit_vector sẽ đƣợc dịch hoặc
quay dữ liệu, xác định số vị trí đƣợc dịch hoặc
quay và phải có kiểu số nguyên mang giá trị dƣơng hoặc âm, nếu là giá
trị âm sẽ chỉ ra hƣớng ngƣợc lại với giá trị dƣơng . Mỗi phép dịch cho
kết qủa cùng dạng và kích thƣớc với toán hạng ban đầu.
Các toán tử dịch trong VHDL là: sll (dịch trái logic), srl (dịch phải
logic), sla (dịch trái số học), sra (dịch phải số học), rol (quay trái), ror
(quay phải).
228
9.1.3 Các phép toán trong VHDL
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
229
Phép toán Toán tử Kiểu dữ liệu
Phép gán Bất kỳ kiểu dữ liệu nào
Phép toán logic NOT, AND, NAND,
OR, NOR, XOR, XNOR
BIT, BIT_VECTOR,
STD_LOGIC, STD_LOGIC_VECTOR,
STD_ULOGIC, STD_ULOGIC_VECTOR
Phép toán số học +, - ,*,/,** INTEGER, SIGNED, UNSIGNED
(mod, rem, abs)- chỉ
dùng cho mô phỏng
Phép quan hệ =, /=, , = Tất cả các kiểu dữ liệu ở trên
Phép dịch sll, srl, sla, sra,
rol, ror
BIT_VECTOR
Phép gộp &, ( , , , ) BIT, BIT_VECTOR,
STD_LOGIC, STD_LOGIC_VECTOR,
STD_ULOGIC, STD_ULOGIC_VECTOR
Bảng tổng kết các phép toán trong VHDL nhƣ sau:
9.1.3 Các phép toán trong VHDL
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
VDHL sử dụng 6 đơn vị thiết kế gồm 2 loại: đơn vị cơ bản và đơn vị thiết kế thứ cấp:
- Đơn vị thiết kế cơ bản:
Library: Cho phép tạo thƣ viện trong VHDL
Package: Tạo các gói giữ liệu trong Library, nhƣ các khai báo các đối tƣợng, khai báo thủ tục,
hàm...
Entity: (Thực thể) - cho phép khai báo các giao diện của một khối thiết kế số nào đó: nhƣ khai
báo các cổng vào/ra, các tham số của khối mạch...
- Đơn vị thiết kế thứ cấp (Phụ thuộc vào một đơn vị thiết kế cơ bản):
Architecture: Mô tả hoạt động bên trong của một Entity hay đây chính là phần mô tả hoạt
động của khối mạch số.
Package Body: Mô tả chỉ tiết cho các khai báo trong Package nhƣ viết các hàm, các thủ tục ...
Configuration: Đơn vị thiết kế cấu hình cho phép gắn các phiên bản của thực thể vào những
kiến trúc khác nhau. Cấu hình cũng có thể đƣợc sử dụng để thay thế một cách nhanh chóng
các phần tử của thực thể trong các biểu diễn cấu trúc của thiết kế.
230
9.1.4 Các đơn vị thiết kế trong VHDL:
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
a. Entity - (Thực thể) :
231
9.1.4 Các đơn vị thiết kế trong VHDL:
entity Tên_thực_thể is
generic(--Khai báo danh sách các tham số chung
Tên_tham_số : [Kiểu_dữ_liệu]
[:=giá_trị_khởi_tạo];
...
);
port(-- Khai báo danh sách đối tượng các port vào ra
Tên_cổng : [mode] [Kiểu_dữ_liệu]
[:=giá_trị_khởi_tạo];
...
);
end Tên_thực_thể;
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
b. Architecture – (Kiến trúc)
232
9.1.4 Các đơn vị thiết kế trong VHDL:
Architecture Tên_kiến_trúc of Tên_thực_thể
is
-- Thực hiện các khai báo cho kiến trúc
...
Begin
-- Viết các mô tả hoạt động bên trong cho
thực thể
...
End Tên_kiến_trúc;
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
Package ( gói dữ liệu) là đơn vị thiết kế cơ bản dùng để chứa những khai báo cho các đối
tƣợng, khai báo thủ tục procedure, hàm function, kiểu dữ liệu, component có thể dùng
chung cho những thiết kế, cấu trúc, dự án khác nhau
Package Body là đơn vị thiết kế phụ thuộc đƣợc dùng để chứa những mô tả chỉ tiết cho các
khai báo trong đơn vị thiết kế Package nào đó, mô tả chi tiết nội dung của các hàm, các thủ
tục ... Package Body thƣờng đƣợc viết ngay sau Package. Cú pháp chung các đơn vị thiết kế
Package và Package Body
233
9.1.4 Các đơn vị thiết kế trong VHDL:
package My_Pack is
constant. . .
function bv_to_integer (BV: bit_v..
return integer
component . . .
subtype. . .
end package My_pack;
package body My_Pack is
function bv_to_integer (BV: bit_v..
return integer is
variable ...
begin
for index in BV'range
loop
. . . .
end function;
-- Cách sử dụng package trong
file mô tả VHDL.
library IEEE; -- Thư việc
chuẩn
use IEEE.std_logic_1164.all;
. . .
-- Trong phần mềm thiết kế
ISE gói dữ liệu do người sử
dụng tạo ra thường được tổ
chức mặc định trong thư viện
―work‖
use work.My_Pack.all;
entity . . .
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
9.1.5 Cấu trúc chung của một chƣơng trình mô tả VHDL
234
entity
architecture
Input Ports
Signals
process
Variables
Ports Output Ports
Phần cứng công nghệ logic số (CPLD/FPGA)
Hình 9.2. Cấu trúc mô tả phần cứng và các đối tượng trong VHDL
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
235
-- Ví dụ cấu trúc 1 file mô tả cho một hệ thống phần cứng số dùng VHDL
-- Khai báo thư viện,(mặc định cần khai báo thư viện IEEE (thư viện
-- chuẩn đã được xây dựng).
library IEEE;...
-- Khai báo gói dữ liệu (package) trong thư viện cần sử dụng:
use IEEE.STD_LOGIC_1164.ALL;...
-- Khai báo thực thể
Entity Tên_thực_thể is
-- Khai báo các tham số generic nếu cần:
Generic( -- khai báo danh sách các tham số);
Port(-- Khai báo danh sách các cổng vào/ra
);
End Tên_thực_thể;
-- Bắt đầu viết
Architecture Tên_kiến_trúc of Tên_thực_thể is
{Khai báo:kiểu dữ liệu, các component,các đối tượng constant, signal}
Begin
{ Viết các mô tả dùng cấu trúc lệnh song song }
...
Process(-- danh sách tín hiệu kích thích nếu cần)
{Khai báo:kiểu dữ liệu, các đối tượng biến constant, variable }
Begin
{ Viết các mô tả dùng cấu trúc lệnh tuần tự }
End process;
...
{ Viết các mô tả dùng cấu trúc lệnh song song hay process khác }
...
End Tên_kiến_trúc;
9.1.5 Cấu trúc chung của một chƣơng trình mô tả VHDL
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
Các cấu trúc lệnh song song có trong VHDL gồm:
+ Cấu trúc process.
+ Lệnh gán tín hiệu song song.
+ Lệnh gán có điều kiện.
+ Lệnh gán tín hiệu có lựa chọn.
+ Khối.
+ Phép gọi thủ tục, hàm song song.
9.1.6 Các cấu trúc lệnh song song
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
9.1.6 Các cấu trúc lệnh song song
[Nhãn] Process [(Danh sách tín hiệu kích thích)]
[ Khai báo:kiểu dữ liệu, các đối tượng biến constant, variable ]
Begin
{ Viết các mô tả dùng cấu trúc lệnh tuần tự }
End process;
entity Logic_AND is
Port ( A,B : in std_logic;
C : out std_logic);
end Logic_AND;
architecture Behavioral of Logic_AND is
begin
Process(A,B)
begin
C<= A and B;
end Process;
end Behavioral;
A
B
C
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
b. Các phép gán tín hiệu song song
Phép gán tín hiệu song song sử dụng bên trong các Architecture
nhƣng bên ngoài Process. Dạng đơn giản nhất của phép gán tín
hiệu song song có cú pháp nhƣ sau:
[after ];
9.1.6 Các cấu trúc lệnh song song
...
architecture Behavioral of logic1 is
signal I1, I2, I3, I4, AND_out, OR_out: std_logic;
begin
...
AND_out<= I1 and I2 and I3 and I4;
OR_out<= I1 or I2 or I3 or I4;
...
end Behavioral;
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
c. Phép gán tín hiệu có điều kiện
Phép gán tín hiệu có điều kiện là cấu trúc lệch song song
thực hiện phép gán giá trị của các biểu thức cho một tín hiệu
đích tùy theo các điều kiện đặt ra. Cú pháp chung:
[after ] when
else
[after ] when
else
...
[after ];
9.1.6 Các cấu trúc lệnh song song
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
A
B
‗X‘
C
Sel
Z
architecture ...
begin
Z <= A when Sel=―00‖ else
B when Sel=―10‖ else
C when Sel=―11‖ else
‗X‘ ;
end architecture;
architecture ...
begin
process(A,B,C, SEL )
begin
case (SEL) is
when ―00‖ =>Z <= A;
when ―10‖ =>Z <= B;
when ―11‖ =>Z <= C;
when others=>Z<= ‗X‘;
end case;
end process;
end architecture ;
9.1.6 Các cấu trúc lệnh song song
c. Phép gán tín hiệu có điều kiện-ví dụ
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
d. Phép gán tín hiệu theo lựa chọn
With select
[after ]
when ,
[after ]
when
,
...
[after ]
when others;
9.1.6 Các cấu trúc lệnh song song
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
Các cấu trúc lệnh tuần tự cơ bản trong VHDL gồm:
+ Câu lệnh gán cho biến.
+ Câu lệnh gán cho tín hiệu.
+ Câu lệnh if.
+ Câu lệnh case.
+ Câu lệnh rỗng Null.
+ Các lệnh lặp.
9.1.7 Cấu trúc lệnh tuần tự
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
a. Phép gán biến
Cú pháp của phép gán biến nhƣ sau:
biến := biểu_thức
b. Phép gán tín hiệu
Cú pháp của phép gán biến nhƣ sau:
Tí
n_hiệu_đích<= biểu_thức [after giá_trị_thời_gian];
9.1.7 Cấu trúc lệnh tuần tự
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
c. Lệnh if
Lệnh này cho phép các phép toán đƣợc thực hiện trên một
điều kiện nào đó. Có ba dạng cơ bản là:
+ Dạng 1:
if (Điều_kiện) then ;
end if;
+ Dạng 2:
if (Điều_kiện) thenCác_câu_lệnh_tuần_tự>;
else
;
end if;
9.1.7 Cấu trúc lệnh tuần tự
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
+ Dạng 3:
if (Điều_kiện_1) then ;
elsif (Điều_kiện_2) then ;
elsif (Điều_kiện_3) then ;
else
;
end if;
9.1.7 Cấu trúc lệnh tuần tự
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
Ví dụ
process (A, B, C, D, Sel)
begin
If (Sel = ―00‖) then
Z <= A ;
elsif (Sel = ―01‖) then
Z <= B ;
elsif (Sel = ―10‖) then
Z <= C ;
elsif (Sel = ―11‖) then
Z <= D ;
end if;
end process ;
-- Với mô tả trên cấu trúc bên trong của mạch
ghép kênh 4 đầu vào tổng hợp đƣợc thực sự
đƣợc xây dựng từ 3 mạch ghép kênh 2 đầu vào.
Z
D
C
B
A
Sel
D
C
B
A
Z
9.1.7 Cấu trúc lệnh tuần tự
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
d. Lệnh case:
Lệnh case đƣợc sử dụng trong trƣờng hợp có một biểu thức để kiểm soát
nhiều rẽ nhánh trong chƣơng trình VHDL. Các lệnh tƣơng ứng với một
trong các lựa chọn sẽ đƣợc thực hiệu nếu biểu thức kiểm soát có giá trị bằng
giá trị tƣơng ứng của lựa chọn đó. Có hai dạng cơ bản:
Dạng 1:
Case (biểu_thức_kiểm_soát) is
When => ;
When => ;
...
end case;
9.1.7 Cấu trúc lệnh tuần tự
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
Dạng 2:
Case (selector expression) is
When =>
;
When =>
;
...
When others =>
;
end case;
9.1.7 Cấu trúc lệnh tuần tự
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
e. Câu lệnh rỗng Null
Câu lệnh rỗng có cú pháp nhƣ sau: Null;
Trong VDHL khi chƣơng trình mô phỏng gặp câu lệnh Null
nó sẽ bỏ qua lệnh này và thực hiện lệnh tiếp theo sau. Thông
thƣờng lệnh Null dùng để chỉ trƣờng hợp không thực hiện
của lệnh một cách tƣờng minh khi có các điều kiện trả lại giá
trị true. Do đó lệnh Null thƣờng đƣợc dùng trong các câu
lệnh case đối với những giá trị lựa chọn không cần thao tác.
9.1.7 Cấu trúc lệnh tuần tự
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
9.1.7 Cấu trúc lệnh tuần tự
process (A, B, C, D, Sel )
begin
case Sel is
when ―00‖ => Z <= A ;
when ―01‖ => Z <= B ;
when ―10‖ => Z <= C ;
when others => Null;
end case ;
end process ;
Z
C
B
A
Sel
Ví dụ
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
f. Các lệnh lặp
Lệnh lặp loop chứa thân vòng lặp bao gồm dãy các câu lệnh sẽ
đƣợc thực hiện nhiều lần.
Cú pháp của lệnh lặp nhƣ sau:
[:] [] loop
{}|
{next [] [when ];}|
{exit [] [when ];}
end loop [nhãn];
9.1.7 Cấu trúc lệnh tuần tự
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
9.1.7 Cấu trúc lệnh tuần tự
process (A, B, C, D, Sel )
begin
case Sel is
when ―00‖ => Z <= A ;
when ―01‖ => Z <= B ;
when ―10‖ => Z <= C ;
when ―11‖ => Z <= D ;
end case ;
end process ;
Z
D
C
B
A
Sel
Ví dụ
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
a. Hàm – FUNCTION
-- Khai báo
FUNCTION Tên_hàm [(danh_sách_biến)] RETURN kiểu_dữ_liệu;
-- Function Body (Mô tả hàm)
FUNCTION Tên_hàm [(danh_sách_biến)] RETURN kiểu_dữ_liệu IS
-- Khai báo CONSTANT, VARIABLE nếu có
BEGIN
(Viết mô tả hàm dùng cấu trúc Lệnh tuần tự)
END Tên_hàm;
9.1.8 Hàm và thủ tục
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
Ví dụ hàm xác định sƣờn dƣơng của tín hiệu clk nhƣ sau:
------ Function body -------
FUNCTION positive_edge(SIGNAL s: STD_LOGIC)
RETURN BOOLEAN IS
BEGIN
RETURN (s'EVENT AND s='1');
END positive_edge;
9.1.8 Hàm và thủ tục
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
b. Thủ tục – PROCEDURE
Về cơ bản cú pháp, cách gọi, vị trí của thủ tục - PROCEDURE tƣơng tự nhƣ
hàm – FUNCTION, nhƣng thủ tục không đƣợc trả về giá trị.
Cú pháp để khai báo và mô tả thủ tục (phần PROCEDURE BODY) nhƣ sau:
-- Khai báo
PROCEDURE Tên_thủ_tục [(danh_sách_biến)];
-- PROCEDURE Body (Mô tả hàm)
PROCEDURE Tên_hàm [(danh_sách_biến)] IS
-- Khai báo CONSTANT, VARIABLE nếu có
BEGIN
(Viết mô tả thủ tục dùng cấu trúc Lệnh tuần tự)
END Tên_thủ_tục;
9.1.8 Hàm và thủ tục
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
9.2.1 Phƣơng pháp mô tả theo mô hình cấu trúc logic
Trƣớc khi đƣợc sử dụng trong kiến trúc của cả hệ thống, các
thành phần đã đƣợc xây dựng (gọi tắt là các component)
phải đƣợc khai báo một cách tƣờng minh theo cú pháp sau:
Component
Port()
-- Tƣơng tự nhƣ khai báo trong thực thể
End component;
9.2 PHƢƠNG PHÁP MÔ TẢ HỆ THỐNG PHẦN CỨNG SỐ
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
Mô tả triger DFF nhƣ sau:
entity DFF is
port ( D, Clock : in std_logic ;
Reset : in std_logic ;
Q : out std_logic) ;
end entity DFF ;
architecture RTL of DFF is
begin
process (Clock, Reset)
begin
If (Reset = „1‟ ) then Q <= „0‟ ;
elsif (Clock‟event and Clock = „1‟) then
Q <= D ;
end if;
end process ;
Đây là triger D có Reset mức tích cực cao, và không đồng bộ.
9.2.1 Phƣơng pháp mô tả theo mô hình cấu trúc logic
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
Đây là mức độ mô tả trừu tƣợng nhất, chủ yếu là mô tả theo
chức năng của hệ thống số theo yêu cầu đầu vào và đáp ứng
ra sử dụng các cấu trúc lệnh giống nhƣ của ngôn ngữ lập
trình bậc cao nhƣ PROCESS , WAIT, IF, CASE, FOR-
LOOP
Mô tả theo cách này tính ngữ nghĩa tự nhiên và giải thuật
rất cao, nhập thiết kế rất nhanh, nhƣng cấu trúc của phần
cứng thƣờng không rõ.
9.1.2 Phƣơng pháp mô tả theo mô hình hành vi (Behavioral)
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
Hệ thống số đƣợc biểu diễn theo mô hình RTL khi chúng
đƣợc xác định bởi 3 thành phần nhƣ sau:
- Tập các thanh ghi trong hệ thống (Các khối mạch nhớ,
mạch tuần tự).
- Các phép toán đƣợc thực hiện trên dữ liệu đƣợc lƣu trong
các thanh ghi đƣợc xây dựng nhờ các mạch logic tổ hợp.
- Những điều khiển để giám sát chuỗi tuần tự các phép toán
trong hệ thống (thƣờng đƣợc xây dựng trên mô hình máy
trạng thái).
9.2.3 Phƣơng pháp mô tả theo mô hình luồng dữ liệu RTL
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
a. Mô tả mạch logic tổ hợp
Mạch logic tổ hợp có thể mô tả bằng các cấu trúc lệnh song,
tuy nhiên thƣờng dùng các process tổ hợp. Khi sử dụng
process tổ hợp tất cả các tín hiệu vào của mạch tổ hợp phải
đƣợc đƣa vào danh sách tín hiệu kích thích.
9.2.3 Phƣơng pháp mô tả theo mô hình luồng dữ liệu RTL
Z
B
A
D
En
Q
process(A,B)
begin
Z <= A or B ;
end process;
process (D, En)
begin
-- gán mặc định đầu ra
Q <= 0;
if En = ‗1‘ then Q <= D ;
end if ;
end process;
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
b. Mô tả mạch tuần tự:
Các khối thanh ghi có thể đƣợc mô tả bằng tiến trình hoạt
động theo clock theo 2 kiểu:
Tiến trình đồng bộ, với danh sách tín hiệu kích thích chỉ có
duy nhất tín hiệu clock, mọi biến đổi của mạch đƣợc đồng bộ
theo sƣờn clock)
Hoặc tiến trình không đồng bộ, với danh sách tín hiệu kích
thích không chỉ có tín hiệu clk mà còn có các tín hiệu không
đồng bộ khác.
9.2.3 Phƣơng pháp mô tả theo mô hình luồng dữ liệu RTL
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
Ví dụ mô tả hoạt động của Triger D làm việc theo sƣờn dƣơng với các tín hiệu Reset không
đồng bộ nhƣ sau:
process ( Clk, Reset )
begin
if reset = ‗1‘ then
Q <= ‗0‘ ;
elsif (Clk`event and Clk = ‗1‘) then
Q <= D ;
end if ;
end process ;
QD
Clk
Reset
9.2.3 Phƣơng pháp mô tả theo mô hình luồng dữ liệu RTL
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
9.2.4 Phƣơng pháp mô tả theo mô hình đồ hình trạng thái (máy trạng thái - State Machine)
Mô hình Moore: Kết quả đầu ra chỉ phụ thuộc vào trạng thái hiện tại.
Xác định
Trạng thái
tiếp theo
Xác định
Đầu ra
Thanh ghi
trạng thái
hiện tại
Đầu vào
Đầu ra
Clock
Hình 9.6 – Mô hình máy trạng thái Moore.
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
9.2.4 Phƣơng pháp mô tả theo mô hình đồ hình trạng thái (máy trạng thái - State Machine)
- Mô hình Mealy: Đầu ra phụ thuộc vào cả trạng thái hiện tại và tín hiệu vào.
Xác định
Trạng thái
tiếp theo
Xác định
Đầu ra
Thanh ghi
trạng thái
hiện tại
Đầu vào
Đầu ra
Clock
Hình 9.7 – Mô hình máy trạng thái Mealy.
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
Trong thực tế hệ thống số thƣờng đƣợc mô tả bằng việc kết hợp cả mô hình Moore và Mealy
và sử dụng thêm thanh ghi đầu ra:
Xác định
Trạng thái
tiếp theo
Xác định
Đầu ra
Thanh ghi
trạng thái
hiện tại
Đầu vào
Đầu ra
Clock
Thanh
ghi
đầu ra
Thanh
ghi
đầu ra
Moore
Mealy
Moore
Mealy
Hình 9.8 – Mô hình máy trạng thái hỗn hợp Moore và Mealy
9.2.4 Phƣơng pháp mô tả theo mô hình đồ hình trạng thái (máy trạng thái - State Machine)
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
Ví dụ: bộ đếm thập phân thuận nghịch đồng bộ “UpdownCounter” có mô hình vẽ sau:
UpdownCounter
UP
RESET
CLK
Z
Hình 9.10 – Mô hình bộ đếm thuận nghịch
9.2.4 Phƣơng pháp mô tả theo mô hình đồ hình trạng thái (máy trạng thái - State Machine)
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
9.2.4 Phƣơng pháp mô tả theo mô hình đồ hình trạng thái (máy trạng thái - State Machine)
UP='0' UP='0'
UP='0' UP='0'
UP='0'
UP='1' UP='1'
UP='1' UP='0'
UP='1'
UP='1'
UP='0'
UP='1'
UP='0'
UP='1'
UP='1' UP='0'
UP='1'
UP='0'
UP='1'
RESET S0
if UP='0' then
Z='1'
else Z='0'
S1
Z='0'
S2
Z='0'
S3
Z='0'
S4
Z='0'
S5
Z='0'
S6
Z='0'
S7
Z='0'
S8
Z='0'
S9
if UP='0' then
Z='0'
else Z='1'
Hình 9.11 – Đồ hình trạng thái của bộ đếm thập phân thuận nghịch
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
9.2.4 Phƣơng pháp mô tả theo mô hình đồ hình trạng thái (máy trạng thái - State Machine)
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY FSM IS
PORT (CLK,RESET,UP: IN std_logic;
Z : OUT std_logic);
END;
ARCHITECTURE BEHAVIOR OF FSM IS
SIGNAL sreg : std_logic_vector (3 DOWNTO 0);
SIGNAL next_sreg : std_logic_vector (3 DOWNTO 0);
CONSTANT S0 : std_logic_vector (3 DOWNTO 0) :="0000";
CONSTANT S1 : std_logic_vector (3 DOWNTO 0) :="0001";
CONSTANT S2 : std_logic_vector (3 DOWNTO 0) :="0010";
CONSTANT S3 : std_logic_vector (3 DOWNTO 0) :="0011";
CONSTANT S4 : std_logic_vector (3 DOWNTO 0) :="0100";
CONSTANT S5 : std_logic_vector (3 DOWNTO 0) :="0101";
CONSTANT S6 : std_logic_vector (3 DOWNTO 0) :="0110";
CONSTANT S7 : std_logic_vector (3 DOWNTO 0) :="0111";
CONSTANT S8 : std_logic_vector (3 DOWNTO 0) :="1000";
CONSTANT S9 : std_logic_vector (3 DOWNTO 0) :="1001";
SIGNAL next_Z : std_logic;
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
9.2.4 Phƣơng pháp mô tả theo mô hình đồ hình trạng thái (máy trạng thái - State Machine)
BEGIN
Sync: PROCESS (CLK) –- Cập nhật trạng thái mới của bộ đếm
BEGIN
IF CLK='1' AND CLK'event THEN
if RESET='1' then
sreg<= S0;
else
sreg <= next_sreg;
end if;
END IF;
END PROCESS;
Comb: PROCESS (sreg,UP) –- Kiểm tra điều kiện chuyển trạng thái
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
9.2.4 Phƣơng pháp mô tả theo mô hình đồ hình trạng thái (máy trạng thái - State Machine)
BEGIN
CASE sreg IS
WHEN S0 =>
IF ( UP='0' ) THEN next_sreg<=S9;
ELSE next_sreg<=S1;
END IF;
WHEN S1 =>
IF ( UP='0' ) THEN next_sreg<=S0;
ELSE next_sreg<=S2;
END IF;
WHEN S2 =>
IF ( UP='0' ) THEN next_sreg<=S1;
ELSE next_sreg<=S3;
END IF;
WHEN S3 =>
IF ( UP='0' ) THEN next_sreg<=S2;
ELSE next_sreg<=S4;
END IF;
WHEN S4 =>
IF ( UP='0' ) THEN next_sreg<=S3;
ELSE next_sreg<=S5;
END IF;
WHEN S5 =>
IF ( UP='0' ) THEN next_sreg<=S4;
ELSE next_sreg<=S6;
END IF;
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
9.2.4 Phƣơng pháp mô tả theo mô hình đồ hình trạng thái (máy trạng thái - State Machine)
WHEN S6 =>
IF ( UP='0' ) THEN next_sreg<=S5;
ELSE next_sreg<=S7;
END IF;
WHEN S7 =>
IF ( UP='0' ) THEN next_sreg<=S6;
ELSE next_sreg<=S8;
END IF;
WHEN S8 =>
IF ( UP='0' ) THEN next_sreg<=S7;
ELSE next_sreg<=S9;
END IF;
WHEN S9 =>
IF ( UP='0' ) THEN next_sreg<=S8;
ELSE next_sreg<=S0;
END IF;
WHEN OTHERS => next_sreg<=S0;
END CASE;
END PROCESS;
Outputs: PROCESS (sreg,UP) —-Tính kết quả đầu ra
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
BEGIN
IF UP='1' THEN
if sreg=S9 then Z<= '1';
else Z<= '0';
end if;
ELSE
if sreg=S0 then Z<= '1';
else Z<= '0';
end if;
END IF;
END PROCESS;
END BEHAVIOR;
9.2.4 Phƣơng pháp mô tả theo mô hình đồ hình trạng thái (máy trạng thái - State Machine)
Bài giảng Điện tử sốV1.0
www.ptit.edu.vn GIẢNG VIÊN: ThS. TRẦN THÚY HÀ
BỘ MÔN: KỸ THUẬT ĐIỆN TỬ- KHOA KTDT1
BÀI GIẢNG MÔN : ĐIỆN TỬ SỐ
273
Tài liệu tham khảo
Giáo trình Điện tử số - Trần Thúy Hà-Đỗ Mạnh Hà, HVCNBCVT 2009.
Giáo trình Kỹ thuật số - Trần Văn Minh, NXB Bƣu điện 2002.
Cơ sở kỹ thuật điện tử số, Đại học Thanh Hoa, Bắc Kinh, NXB Giáo dục 1996.
Kỹ thuật số, Nguyễn Thúy Vân, NXB Khoa học và kỹ thuật 1994.
Lý thuyết mạch logic và Kỹ thuật số, Nguyễn Xuân Quỳnh, NXB Bƣu điện 1984.
Fundamentals of logic design, fourth edition, Charles H. Roth, Prentice Hall
1991.
Digital engineering design, Richard F.Tinder, Prentice Hall 1991.
Digital design principles and practices, John F.Wakerly, Prentice Hall 1990.
VHDL for Programmable Logic by Kevin Skahill, Addison Wesley, 1996
The Designer's Guide to VHDL by Peter Ashenden, Morgan Kaufmann, 1996.
Analysis and Design of Digital Systems with VHDL by Dewey A., PWS
Publishing, 1993.
Các file đính kèm theo tài liệu này:
- bai_giang_dien_tu_so_chuong_1_he_dem.pdf