Bài giảng Điện tử Số - Chương 1: Hệ đếm

 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.

pdf273 trang | Chia sẻ: huongthu9 | Lượt xem: 426 | Lượt tải: 0download
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:

  • pdfbai_giang_dien_tu_so_chuong_1_he_dem.pdf