Tải bản đầy đủ (.doc) (131 trang)

BÀI GIẢNG THIẾT KẾ SỐ DÙNG NGÔN NGỮ MÔ TẢ PHẦN CỨNG docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.36 MB, 131 trang )

BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC KINH TẾ - KỸ THUẬT CÔNG NGHIỆP
KHOA ĐIỆN - ĐIỆN TỬ - BỘ MÔN ĐIỆN TỬ
BÀI GIẢNG
THIẾT KẾ SỐ DÙNG NGÔN NGỮ
MÔ TẢ PHẦN CỨNG
Đối tượng: HSSV trình độ Đại học, Cao đẳng, TCCN
Ngành đào tạo: Dùng chung cho Khối ngành Công nghệ
Lưu hành nội bộ
1
BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC KINH TẾ- KỸ THUẬT CÔNG NGHIỆP
KHOA ĐIỆN - ĐIỆN TỬ
***
ĐỀ CƯƠNG CHI TIẾT HỌC PHẦN
THIẾT KẾ SỐ DÙNG NGÔN NGỮ
MÔ TẢ PHẦN CỨNG
(Theo phương thức đào tạo theo học chế tín chỉ)
Số tín chỉ : 02
Ngành đào tạo : CÔNG NGHỆ ĐIỆN TỬ VIỄN THÔNG
Trình độ đào tạo : ĐẠI HỌC
- Năm 2012 -
2
BỘ CÔNG THƯƠNG CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
Trường Đại học Kinh tế - Kỹ thuật
Công nghiệp
Độc lập- Tự do- Hạnh phúc
CHƯƠNG TRÌNH TRÌNH ĐỘ ĐẠI HỌC
NGÀNH ĐÀO TẠO: CÔNG NGHỆ ĐIỆN TỬ VIỄN THÔNG

ĐỀ CƯƠNG CHI TIẾT HỌC PHẦN


1. Tên học phần: Thiết kế số dùng ngôn ngữ mô tả phần cứng Mã số:
2. Số tín chỉ : 02
3. Tính chất học phần: Bắt buộc.
4. Học phần thay thế, tương đương: Không.
5. Phân bổ thời gian giảng dạy trong học kỳ: 2(26, 8, 3)/ 12 (12 tuần thực học)
- Số tiết thực lên lớp: 34 tiết.
 Lý thuyết: 26 tiết chuẩn.
 Thảo luận: 8 tiết
- Số giờ sinh viên tự học: 4 giờ/tuần x 12 tuần = 48 giờ.
6. Đánh giá: Theo quy chế và quy định của Nhà trường.
7. Điều kiện học:
- Học phần tiên quyết: Không.
- Học phần học trước:
- Học phần song hành: Không
- Ghi chú khác:
8. Mục tiêu của học phần:
Trang bị cho sinh viên những công cụ chính (các phần mềm chuyên dụng) phục
vụ cho thiết kế, tự động thiết kế các vi mạch chuyên dụng và các hệ điều hành, chương
trình dịch tương ứng.
9. Mô tả vắn tắt nội dung học phần:
Trang bị cho người học những kiến thức mới về tối thiểu hoá hàm logic, các
phương pháp biểu diễn và thiết kế mạch dãy. Và cuối cùng là phương pháp thiết kế
dùng vi mạch (ROM, PLA, GAL, MUX ).
10. Nhiệm vụ của Sinh viên:
- Dự lớp đầy đủ, đúng giờ
- Thực hiện tốt các bài tập theo yêu cầu của giáo viên
3
- Phải đọc và nghiên cứu trước giáo trình, tài liệu tham khảo, chuẩn bị các ý kiến
đề xuất khi nghe giảng.
11. Tài liệu học tập:

Bài giảng "Thiết kế vi mạch VLSI và ASIC”- Trường ĐH KT-KT CN
12.Tài liệu tham khảo:
[1] Một số Ebook VHDL
[2] Thiết kế VLSI và ASIC, NXB Giáo dục, 2000.
[3] Tống Văn On, Nguyên lý mạch tích hợp ASIC lập trình được, Tập 1, 2, NXB
TK.
[4] Thiết kế mạch logic – Nguyễn Thuý Vân
13. Tiêu chuẩn đánh giá Sinh viên:
- Theo quyết định số 43/2007/QĐ-BGD&ĐT ngày 15 tháng 08 năm 2007 của Bộ
trưởng Bộ Giáo dục và Đào tạo.
- Theo quyết định số 25/2006/QĐ-BGD&ĐT ngày 26 tháng 06 năm 2006 của Bộ
trưởng Bộ Giáo dục và Đào tạo.
- Theo quyết định số 29/QĐ-ĐHKTKTCN ngày 09 tháng 10 năm 2007 của Hiệu
trưởng Trường Đại học Kinh tế - Kỹ thuật Công nghiệp.
- Hình thức thi kết thúc học phần: Thi viết
14. Cán bộ tham gia giảng dạy
Là giáo viên cơ hữu, giáo viên kiêm nhiệm, giáo viên thỉnh giảng do Khoa, Bộ
môn quản lý, phân công giảng dạy khi có đủ các điều kiện, tiêu chuẩn, được Hiệu
trưởng duyệt.
14.1. Giảng lý thuyết
Giảng viên có học vị từ Thạc sỹ trở lên, có kinh nghiệm trong giảng dạy hoặc
hướng dẫn thảo luận, được Bộ môn phân công.
14.2. Hướng dẫn làm bài tập, bài tập lớn, thảo luận, thực hành môn học, thí
nghiệm, tiểu luận.
Là giảng viên, giáo viên có học vị từ Cử nhân trở lên, có kinh nghiệm trong giảng
dạy hoặc hướng dẫn thảo luận, được Bộ môn phân công.
15. Nội dung chi tiết học phần (2 tiết/tuần)
Tuần
thứ
Nội dung

Tài liệu
học tập,
tham khảo
Hình thức
học
1
Chương 1: Các loại mã sử dụng thiết kế mạch bằng
VHDL
1.1. Giới thiệu công nghệ thiết kế mạch bằng
VHDL
1.1.1. Ứng dụng của công nghệ thiết kế mạch bằng
VHDL
1.1.2. Quy trình thiết kế mạch bằng VHDL
1.1.3. Công cụ EDA
1,2,3 Giảng
4
1.1.4. Chuyển mã VHDL vào mạch
1.2. Cấu trúc mã thiết kế mạch bằng VHDL
1.2.1. Các đơn vị VHDL cơ bản
1.2.2. Khai báo Library
1.2.3. Entity ( thực thể)
1.2.4. ARCHITECTURE ( cấu trúc)
1.2.5. Các ví dụ
2
Chương 2: Cơ sở lý thuyết
2.1. Các cơ sở vi điện tử và giới thiệu công nghệ
MOS
2.1.1. Giới thiệu công nghệ IC
2.1.2. Quan hệ giữa MOS và công nghệ VLSI
2.1.3. Các chế độ làm việc của MOS transitor

2.1.4. Chế tạo nMOS và CMOS
2.2. Các thuộc tính điện cơ bản của mạch MOS
và BiMOS
2.2.1. Quan hệ giữa dòng điện và điện áp
2.2.2. Điện áp ngưỡng của MOS transitor
2.2.3. Độ hỗ dẫn
2.2.4. nMOS đảo
2.2.5. CMOS đảo
2.2.6. Thuộc tính của transitor npn lưỡng cực
1,2,3 Giảng
3 Chương 3: Quy trình thiết kế hê thống VLSI
3.1. Công nghệ chế tạo CMOS và các qui tắc
thiết kế
3.1.1. Giới thiệu
3.1.2. Các bước chế tạo
3.1.3. Các qui tắc thiết kế
3.2. Bố trí hệ thống
3.2.1. Giới thiệu
3.2.2. Qui tắc bố trí CMOS và CMOS đảo
3.2.3. Bố trí các cổng NAND và NOR của
CMOS
3.2.4. Thiết kế các cổng logic phối hợp của
CMOS
3.3. Các thông số ảnh hưởng hiệu suất của hệ
thống
3.3.1. Điện dung MOSFET
3.3.2. Điện dung bề mặt
1,2,3 Giảng
5
3.3.3. Điện dung ký sinh

3.3.4. Điện trở các mối nối
3.3.5. Trễ
4 Bài tập chương 1,2 1,2,3 Thảo luận
5
3.4. Thu nhỏ mạch MOS
3.4.1. Mô hình thu nhỏ và hệ số thu nhỏ
3.4.2. Hệ số thu nhỏ cho các thông số của hệ
thống
3.4.3. Giới hạn của việc thu nhỏ
3.4.4. Kiểm tra hệ thống
3.4.5. Giới thiệu
3.4.6. Qui tắc thập phân
3.4.7. Các lỗi thường gặp của CMOS
3.4.8. Kiểm tra mạch logic phối hợp
3.4.9. Công nghệ thiết kế quét
1,2,3 Giảng
6
Chương 4: Công nghệ FPGA
4.1. Tổng quan về FPGA
4.1.1. Quá trình hình thành FPGA
4.1.2. Giới thiệu về FPGA
4.1.3. Khả năng ứng dụng của FPGA
4.1.4. Một số hình ảnh về Board FPGA
4.2. Cơ sở lý thuyết về các mạch lập trình được
4.2.1. Phân loại cấu trúc
4.2.2. Các thành phần cấu trúc
4.2.3. Khối logic lập trình được
4.2.4. Khối I/O
4.2.5. Cell nhớ cấu hình
4.2.6. Kết nối và điểm kết nối

4.3. Tổng quan về cấu trúc FPGA
4.4. Các công nghệ chế tạo FPGA
4.5. Lựa chọn FPGA phù hợp với thiết kế
4.6. Quá trình lập trình FPGA
1,2,3 Giảng
7 Chương 5: Công nghệ thiết kế ASIC
5.1. Tổng quan về ASIC
5.1.1. Sự phát triển công nghệ bán dẫn
5.1.2. Sự ra đời của công nghệ ASIC
5.2. Phân loại ASIC
1,2,3 Giảng
6
5.3. Một số dòng sản phẩm tiêu biểu hiện nay
5.3.1. Các sản phẩm của Xilinx
5.3.2. Các sản phẩm của Actel
5.3.3. Các sản phẩm của Altera
5.4. Qui trình thiết kế ASIC tổng quát
5.4.1. Đầu vào thiết kế ASIC
5.4.2. Đầu vào thiết kế logic mức thấp
5.4.3. Tổng hợp logic
5.4.4. Mô phỏng
5.4.5. Thử nghiệm ASIC
8 Bài tập chương 3,4 1,2,3 Thảo luận
9
5.4.6. Phân chia hệ thống
5.4.7. Lên sơ đồ mặt bằng bố trí các khối
(floorplanning) và sắp đặt bố trí các phần
tử logic trên từng khối (placement)
5.4.8. Định tuyến các đường kết nối
(routing)

5.5. Một số mô hình thiết kế ASIC trên thế giới
5.5.1. Qui trình thiết kế của IBM
5.5.2. Qui trình thiết kế của hãng K-micro
1,2,3 Giảng
10
Chương 6: Quy trình thiết kế ASIP
6.1. Tổng quan về ASIP
6.1.1. Hệ nhúng - Embedded system
6.1.2. ASIC, ASIP và hệ nhúng
6.1.3. Sự nổi trội của ASIP
6.2. Các mức thiết kế một hệ thống số
6.3. Các phương pháp thiết kế ASIP
6.3.1. Phương pháp sử dụng lại các lõi CPU
off-the-shelf
6.3.2. Phương pháp thiết kế lõi CPU dùng
riêng
6.3.3. Chi tiết phương pháp sử dụng lại các
lõi CPU off-the-shelf
1,2,3 Giảng
11 6.4. Đồng thiết kế phần cứng/phần mềm
6.4.1. Đặc tả các hành vi của hệ thống
6.4.2. Đánh giá phân tích về hệ thống
6.4.3. Phân chia hệ thống
1,2,3 Giảng
7
6.4.4. Tinh lọc các đặc tả
6.4.5. Tổng hợp phần cứng, biên dịch phần
mềm.
6.4.6. Đồng tổng hợp và Mô phỏng
6.5. Các bài toán tối ưu trong quá trình thiết kế

ASIP
6.5.1. Tối ưu hoá kích thước CPU và
memory trong các thiết kế hệ thống nhúng
6.5.2. Đánh giá độ rộng của tập các thanh
ghi trong thiết kế ASIP
6.6. Một vài công cụ trong hỗ trợ thiết kế ASIP
6.6.1. Bộ tổng hợp processor và sinh trình
biên dịch Satsuki
6.6.2. Trình biên dịch encc
6.6.3. SystemC
6.7. CASLE
1,2,3 Giảng
13 Bài tập, thảo luận chương 5, 6 1,2,3 Thảo luận
16. Bài tập lớn
17. Phần thí nghiệm
Đề cương chi tiết này đã được thông qua bộ môn làm cơ sở giảng dạy cho các
lớp hệ đại học của các ngành và chuyên ngành nêu trên.
Khoa Tổ bộ môn
…………, ngày … tháng … năm 2007
Người biên soạn
8
MỤC LỤC
- Năm 2012 2
1.1. Giới thiệu công nghệ thiết kế mạch bằng VHDL 13
1.1.1. Ứng dụng của công nghệ thiết kế mạch bằng VHDL 13
1.1.2. Quy trình thiết kế mạch bằng VHDL 13
Bước 2: Nhấp nút Start bên trái cửa sổ để nạp tệp cấu hình này xuống FPGA.
Sau khi nạp thành công xuống FPGA, hãy kiểm tra mạch điện này thực hiện trên
FPGA có chạy đúng theo chức nămg mong muốn hay không bằng cách dùng các
chuyển mạch SW0 và SW1 để nhập đầu vào rồi quan sát đầu ra hiển thị trên

LEDG0 11
1.1.3. Công cụ EDA 11
1.1.4. Chuyển mã VHDL vào mạch 12
1.2. Cấu trúc mã thiết kế mạch bằng VHDL 14
1.2.1. Các đơn vị VHDL cơ bản 14
1.2.2. Khai báo Library 14
1.2.3. Entity ( thực thể) 16
1.2.4. ARCHITECTURE ( cấu trúc) 16
1.2.5. Các ví dụ 20
Chương 2 25
2.1. Các kiểu dữ liệu thường dùng 25
2.1.1. Các kiểu dữ liệu tiền định nghĩa 25
2.1.2. Các kiểu dữ liệu người dùng định nghĩa 28
2.1.3. Các kiểu con (Subtypes) 29
2.1.4. Mảng (Arrays) 30
2.1.5. Mảng cổng ( Port Array) 32
2.1.6. Kiểu bản ghi (Records) 34
2.1.7. Kiểu dữ liệu có dấu và không dấu ( Signed and Unsigned) 34
2.1.8. Chuyển đổi dữ liệu 35
2.1.10. Signal và Variable 37
a. CONSTANT 37
b. SIGNAL 38
c. VARIABLE 39
2.1.11. Các ví dụ 40
* Ví dụ 1: Sự phân chia đối với các kiểu dữ liệu 40
2.2. Các toán tử và thuộc tính 46
2.2.1. Toán tử 46
a-Toán tử gán 46
2.2.2. Thuộc tính 47
c-Thuộc tính được định nghĩa bởi người dùng 48

d-Chồng toán tử 49
e-GENERIC 49
2.2.3. Các Ví dụ 50
NỘI DUNG BÀI GIẢNG LÝ THUYẾT 55
9
3.1. Các câu lệnh thực hiện song song 55
3.1.1. Mạch tổ hợp và mạch dãy 55
3.1.2. Mã song song và mã tuần tự 55
3.1.3. Sử dụng các toán tử 56
3.1.4. Mệnh đề WHEN 57
3.1.5. GENERATE 64
3.1.6. BLOCK 66
3.2. Câu lệnh tuần tự 68
3.2.1. PROCESS 68
3.2.2. Signals và Variables 70
3.2.3. Câu lệnh IF 70
3.2.4. Câu lệnh WAIT 72
3.2.5. Câu lệnh CASE 75
3.2.6. Câu lệnh LOOP 79
3.2.7. Bad Clocking 84
THIẾT KẾ MẠCH LOGIC TỔ HỢP 89
4.1. Mạch mã hoá - mạch giải mã 89
4.1.1.Thiết kế mạch mã hoá 89
4.1.2. Thiết kế mạch giải mã 92
4.2. Mạch đa hợp - mạch giải đa hợp 96
4.2.1. Thiết kế mạch đa hợp 96
4.2.2. Thiết kế mạch giải đa hợp 97
2. Chuẩn bị lý thuyết chương tiếp thep 98
Chương 5 99
5.1. Thiết kế các loại Flip-Flop 99

5.1.1. Thiết kế Flip-Flop loại JK 99
5.1.2. Thiết kế flip-flop D có Enable 101
5.2. Thiết kế thanh ghi 102
5.2.1. Thanh ghi dịch 4 bit 103
5.2.2. Thanh ghi dịch 8 bit 105
5.1.3. Thiết kế mạch điều khiển 8 LED sáng dần - tắt dần 106
5.3. Thiết kế mạch đếm 108
5.3.1. Thiết kế mạch đếm vòng 8 bit 108
5.3.2. Thiết kế mạch đếm nhị phân 111
5.3.3. Thiết kế mạch đếm BCD và giải mã hiển thị LED thanh 112
2. Ôn tập tổng kết môn học 117
10

11
LỜI NÓI ĐẦU
VHDL là ngôn ngữ mô tả phần cứng cho các mạch tích hợp tốc độ rất
cao. VHDL được phát triển để giải quyết các khó khăn trong việc phát triển,
thay đổi và lập tài liệu cho các hệ thống số. VHDL là một ngôn ngữ độc lập
không gắn với bất kỳ một phương pháp thiết kế, một bộ mô tả hay công nghệ
phần cứng nào. Người thiết kế có thể tự do lựa chọn công nghệ, phương pháp
thiết kế trong khi chỉ sử dụng một ngôn ngữ duy nhất. VHDL có một số ưu điểm
hơn so các ngôn ngữ mô phỏng phần cứng khác hẳn là:
- Khả năng được hỗ trợ bởi nhiều công nghệ và nhiều phương pháp thiết
kế: VHDL cho phép thiết kế bằng nhiều phương pháp ví dụ phương pháp thiết
kế từ trên xuống, hay từ dưới lên dựa vào các thư viện sẵn có. VHDL cũng hỗ
trợ cho nhiều loại công cụ xây dựng mạch như sử dụng công nghệ đồng bộ hay
không đồng bộ, sử dụng ma trận lập trình được hay sử dụng mảng ngẫu nhiên.
- Tính độc lập với công nghệ: VHDL hoàn toàn độc lập với công nghệ chế
tạo phần cứng. Một mô tả hệ thống dùng VHDL thiết kế ở mức cổng có thể
được chuyển thành các bản tổng hợp mạch khác nhau tuỳ thuộc công nghệ chế

tạo phần cứng mới ra đời nó được áp dụng ngay cho các hệ thống đã thiết kế.
- Khả năng mô tả mở rộng: VHDL cho phép mô tả hoạt động của phần
cứng từ mức hệ thống số cho đến mức cổng. VHDL có khả năng mô tả hoạt
động của hệ thống trên nhiều mức nhưng chỉ sử dụng một cú pháp chặt chẽ
thống nhất cho mọi mức. Như thế ta có thể mô phỏng một bản thiết kế bao gồm
cả các hệ con được mô tả chi tiết.
- Khả năng trao đổi kết quả: Vì VHDL là một tiêu chuẩn được chấp nhận,
nên Một mô hình VHDL có thể chạy trên mọi bộ mô tả đáp ứng được tiêu chuẩn
VHDL. Các kết quả mô tả hệ thống có thể được trao đổi giữa các nhà thiết kế sử
dụng công cụ thiết kế khác nhau nhưng cùng tuân theo tiêu chuẩn VHDL. Cũng
như một nhóm thiết kế có thể trao đổi mô tả mức cao của các hệ thống con trong
một hệ thống lớn (trong đó các hệ con đó được thiết kế độc lập).
- Khả năng hỗ trợ thiết kế mức lớn và khả năng sử dụng lại các thiết kế:
VHDL được phát triển như một ngôn ngữ lập trình bậc cao, vì vậy nó có thể
được sử dụng để thiết kế một hệ thống lớn với sự tham gia của một nhóm nhiều
người. Bên trong ngôn ngữ VHDL có nhiều tính năng hỗ trợ việc quản lý, thử
nghiệm và chia sẻ thiết kế. Và nó cũng cho phép dùng lại các phần đã có sẵn.
Nhóm biên soạn
Ninh Văn Thọ
Nhóm sửa chữa
Đào Hưng
12
Chương 1
CÁC LOẠI MÃ SỬ DỤNG THIẾT KẾ MẠCH BẰNG VHDL
MỤC TIÊU CỦA CHƯƠNG
- Hiểu rõ về quy trình thiết kế mạch bằng VHDL cho phép xuất, tạo và kết nối
các file nguồn để tạo ra các file chương trình. Khả năng lập trình và nhận diện
linh kiện.
- Hiểu rõ phần mềm Quartus II sử dụng bộ tích hợp NativeLink
@

với các công
cụ thiết kế cung cấp việc truyền thông tin liền mạch giữa Quartus với các công
cụ thiết kế phần cứng EDA khác. Quartus II cũng có thể đọc các file mạch
(netlist) EDIF chuẩn, VHDL và Verilog HDL cũng như tạo ra các file netlist
này.
- Quartus II có môi trường thiết kế đồ họa giúp nhà thiết kế dễ dàng viết mã,
biên dịch, soát lỗi, mô phỏng
NỘI DUNG BÀI GIẢNG LÝ THUYẾT
1.1. Giới thiệu công nghệ thiết kế mạch bằng VHDL
1.1.1. Ứng dụng của công nghệ thiết kế mạch bằng VHDL
Hiện nay 2 ứng dụng chính và trực tiếp của VHDL là các ứng dụng trong
các thiết bị logic có thể lập trình được (Programmable Logic Devices – PLD)
(bao gồm các thiết bị logic phức tạp có thể lập trình được và các FPGA - Field
Programmable Gate Arrays) và ứng dụng trong ASIC(Application Specific
Integrated Circuits).
Khi chúng ta lập trình cho các thiết bị thì chúng ta chỉ cần viết mã VHDL
một lần, sau đó ta có thể áp dụng cho các thiết bị khác nhau (như Altera, Xilinx,
Atmel,…) hoặc có thể để chế tạo một con chip ASIC. Hiện nay, có nhiều thương
mại phức tạp (như các vi điều khiển) được thiết kế theo dựa trên ngôn ngữ
VHDL.
1.1.2. Quy trình thiết kế mạch bằng VHDL
Đây là phần mềm đóng gói tích hợp đầy đủ phục vụ cho thiết kế logic với
các linh kiện logic khả trình PLD của Altera, gồm các dòng APEX, Cyclone,
FLEX, MAX, Stratix Quartus cung cấp các khả năng thiết kế logic sau:
 Môi trường thiết kế gồm các bản vẽ, sơ đồ khối, công cụ soạn thảo các
ngôn ngữ: AHDL, VHDL, và Verilog HDL.
 Thiết kế LogicLock.
 Là công cụ mạnh để tổng hợp logic.
 Khả năng mô phỏng chức năng và thời gian.
 Phân tích thời gian.

13
 Phân tích logic nhúng với công cụ phân tích SignalTap
@
II.
 Cho phép xuất, tạo và kết nối các file nguồn để tạo ra các file chương
trình.
 Tự động định vị lỗi.
 Khả năng lập trình và nhận diện linh kiện.
 Phần mềm Quartus II sử dụng bộ tích hợp NativeLink
@
với các công cụ
thiết kế cung cấp việc truyền thông tin liền mạch giữa Quartus với các
công cụ thiết kế phần cứng EDA khác.
 Quartus II cũng có thể đọc các file mạch (netlist) EDIF chuẩn, VHDL và
Verilog HDL cũng như tạo ra các file netlist này.
 Quartus II có môi trường thiết kế đồ họa giúp nhà thiết kế dễ dàng viết
mã, biên dịch, soát lỗi, mô phỏng
Với Quartus có thể kết hợp nhiều kiểu file trong 1 dự án thiết kế phân cấp. Có
thể dùng bộ công cụ tạo sơ đồ khối (Quartus Block Editor) để tạo ra sơ đồ khối
mô tả thiết kế ở mức cao, sau đó dùng các sơ đồ khối khác, các bản vẽ như:
AHDL Text Design Files (.tdf), EDIF Input Files (.edf), VHDL Design Files
(.vhd), and Verilog HDL Design Files (.v) để tạo ra thành phần thiết kế mức
thấp.
Quartus II cho phép làm việc với nhiều file ở cùng thời điểm, soạn thảo file thiết
kế trong khi vẫn có thể biên dịch hay chạy mô phỏng các dự án khác. Công cụ
biên dịch Quartus II nằm ở trung tâm hệ thống, cung cấp quy trình thiết kế mạnh
cho phép tùy biến để đạt được thiết kế tối ưu trong dự án. Công cụ định vị lỗi tự
động và các bản tin cảnh báo khiến việc phát hiện và sửa lỗi trở nên đơn giản
hơn.
Sau khi cài Quartus II, giao diện như hình vẽ:

14
Hình 1.1. Giao diện Quartus II.
Mạnh điện trong Quartus có thể được thiết kế theo các cách sau:
a. Sơ đồ khối (Block Diagram).
Trong cách mô tả này, mạch điện tạo nên từ các cổng logic rời rạc, hay các hàm
gồm nhiều cổng logic tích hợp (megafunctions). Để vẽ mạch theo cách này,
nhấn New, chọn tab Device Design Files, chọn Block Diagram/ Schematic
File, hiện:
Hình vẽ
Hình vẽ. Giao diện Block Editor
15
Các công
cụ vẽ mạch
Cửa sổ vẽ
Nhấn chọn Symbol Tool để hiện các cổng logic hay các hàm Megafuntions
Hình vẽ. Các cổng logic, các hàm.
Hình 4.2. Cửa sổ chọn đường dẫn và tên dự án
Khi đã chọn xong các cổng logic hay hàm thì dùng các công cụ nối dây để vẽ
mạch hoàn chỉnh.
b. Tạo một Project
Bước

1

: Chọn mục File > New Project Wizard để mở cửa sổ tạo mới dự án
giống như Hình 2. Chú ý là dự án cần có tên giống với tên của thực thể thiết
kế, nó cho thấy thực thể là mức đỉnh. Chọn tên light làm tên cho dự án và
thực thể mức đỉnh, nhấp chọn Next.
Hình 4.3. Cửa sổ chọn đường dẫn và tên dự án
Bước 2


: Trong cửa sổ Family & Device Settings, chúng ta sẽ chọn loại chip,
là chip FPGA Cyclone EP2C20F484C7N có trên kit DE1 mà chúng ta sử
16
Các
cổng
logic
hay
hàm
Vùng
hiển thị
cổng
logic hay
hàm
dụng trong bài thí nghiệm. Nhấp chọn Next để chuyển sang cửa sổ chọn kế
tiếp.
Bước 3

: Trong của sổ kế tiếp, chúng ta có thể chọn lựa bất kỳ công cụ của
hãng thứ ba nào cần dùng. Công cụ CAD thông dụng dùng cho phần mềm
thiết kế mạch điện tử là EDA tools. Vì chúng ta không cần thay đổi gì trong
việc lựa chọn công cụ, nhấp chọn Next.
Bước 4

: Quan sát bảng tổng kết các thiết lập vừa thực hiện. Nhấp chọn Finish
để quay trở về màn hình chính của phần mềm Quartus II
17
Hình 1.4. Cửa sổ chọn loại chip FPGA dùng cho dự án
c. Nhập thiết kế dùng mã VHDL
Trong bài thí nghiệm này, chúng ta sẽ tạo một mạch điều khiển đèn hai chiều

như trong Hình 4. Mạch có thể dùng để điều khiển một đèn LED khi một
trong hai chuyển mạch x
1
hoặc x
2
đóng, tương ứng với mức logic “1”. Chú
ý rằng chỉ cần dùng hàm XOR cho hai đầu vào x
1
và x
2
, tuy nhiên chúng ta
sẽ xây dựng lại bằng các cổng logic rời rạc.
Hình 1.5. Mạch logic điều khiển đèn và bảng chân lý của
m

ch
Bước

1: Chọn mục File > New, trong cửa sổ New, chọn VHDL File, và nhấp
chọn OK. Sau khi nhấp chọn OK thì cửa sổ soạn thảo sẽ hiện ra. Nhập vào
mã VHDL như dưới đây vào trong cửa sổ soạn thảo văn bản.
library
IEEE;
use
IEEE.STD_LOGIC_1164.all;
entity light
is
port( x1, x2: in
std_logic;
5

f : out
std_logic);
end
light;
architecture Behavioral of light is begin
f <= (x1 and not x2) or (not x1 and
x2);
end
Behavioral;
Bước

2: Chọn mục File > Save As để mở cửa sổ Save As. Trong phần Save
as type chọn VHDL File. Trong phần File name nhập light. Nhấp chọn Save
để đưa tệp này vào trong thư mục của dự án.
d. Thêm các tệp thiết kế vào một dự án
Bước 1: Chọn mục Assignments > Settings > Files, điều này dẫn đến cửa sổ như
trong Hình 4.4. Một cách khác là chọn Project > Add/Remove Files trong Project.
Nếu bạn dùng trình soạn thảo để tạo tệp và chọn vào hộp có nhãn Add file to
current project, thì tệp light.vhd đã có trong dự án, ngược lại tệp này cần thêm vào
dự án.
Hình 1.6. Cửa sổ các cài đặt có thể dùng để nhập tệp thiết kế vào dự án
Bước 2: Nhấp chọn nút … bên cạnh phần File name để có cửa sổ chọn tệp
cần thêm vào. Nhấp chọn tệp light.vhd và nhấp chọn Open. Tệp đã chọn sẽ
hiện tên trên phần File name. Nhấp chọn Add và OK để đưa tệp này vào dự
án.
e. Biên dịch mã VHDL
Bước 1

: Nhấp chọn mục Processing > Start Complication. Biên dịch thành
công (hay không thành công) sẽ được thông báo trên hộp thoại bung ra sau

khi quá trình biên dịch kết thúc. Xác nhận bằng cách nhấp nút OK.
6
Bước 2: Khi biên dịch hoàn thành, một báo cáo biên dịch được đưa ra. Cửa
sổ này cũng có thể mở ra bất kỳ lúc nào bằng cách nhấp chọn Processing >
Complication Report. Trong báo cáo này bao gồm một số danh mục ở bên
trái cửa sổ, nhấp vào các danh mục này để thấy thông tin chi tiết của danh
mục này hiện lên ở bên phải cửa sổ.
e. Sửa các lỗi
Bước 1

: Mở tệp light.vhd, dòng có câu lệnh gán biểu thức logic cho f, ta bỏ
dấu chấm phẩy ở cuối dòng lệnh, lưu thay đổi với tệp light.vhd rồi biên dịch
lại dự án. Lúc này phần mềm sẽ thông báo là biên dịch không thành công và
báo cáo tổng hợp đưa ra kết quả biên dịch dự án bị hỏng.
Bước

2

: Chọn mục Analysis & Synthesis > Messages để hiển thị thông báo
lỗi. Nhấp đôi vào thông báo lỗi đầu tiên, dòng lệnh lỗi sẽ được đánh dấu trên
trình soạn thảo văn bản, sửa lại cho đúng rồi biên dịch lại dự án.
f. Gán chân
Chúng ta sẽ gán các chuyển mạch gạt SW
0
và SW
1
làm các đầu vào x
1
và x
2

cho mạch điện. Các chuyển mạch này nối với các chân L22 và L21 của
FPGA. Và chúng ta sẽ gán đầu ra f tới LEDG
0
, được kết nối với chân U22
của FPGA.
Bước

1

: Nhấp chọn Assignments > Assignment Editor. Trong Category chọn
Pin. Nhấp đôi vào <<new>>. Nhấp chọn x
1
từ danh sách trải xuống làm
chân đầu tiên được gán. Tiếp đến nhấp đôi vào hộp bên phải hộp dành cho
x
1
(cột Location). Chọn chân PIN_L22 từ danh mục hoặc có thể gõ trực tiếp
L22 vào hộp Location.
Hình 1.7. Cửa sổ Assignment Editor dùng để gán chân
Bước 2: Tương tự như trên, thực hiện gán chân cho đầu vào x
2
cho chân L21
và đầu ra f cho chân U22.
7
Bước

3:

Sau khi hoàn thành việc gán chân, nhấp chọn File > Save. Đóng
cửa sổ Assignment Editor, nhấp chọn Yes và biên dịch lại mạch.

g. Mô phỏng mạch thiết kế
Bước

1

: Mở cửa sổ Waveform Editor bằng cách nhấp File > New, trong cửa
sổ chọn dạng tệp, chọn Vector Waveform File và nhấp OK.Cửa sổ Waveform
Editor sẽ hiện ra trên giao diện chính. Lưu tệp này với tên Light.vwf.
Bước

2: Nhấp chọn Edit > End Time và nhập vào 200 ns trong hộp thoại
bung ra, điều này cho phép thời gian mô phỏng từ 0 dến 200 ns. Nhấp chọn
View > Fit in Window để nhìn thấy toàn bộ phần mô phỏng từ 0 đến 200 ns.
Bước 3

: Nhấp chọn Edit > Insert > Insert Node or Bus để mở cửa sổ nhập
các đầu vào ra. Nhấp nút Node Finder để mở cửa sổ như trong hình 7, đặt
phần Filter là Pins: all. Nhấp chọn nút List để tìm các đầu vào và ra trên phần
bên trái cửa sổ.
Bước 4

: Nhấp chọn các đầu vào ra bên cửa sổ bên trái rồi nhấp nút > để đưa
đầu tín hiệu đó vào dạng sóng kiểm tra. Khi đã có đủ các đầu vào và ra, nhấp
chọn OK để quay trở lại cửa sổ Waveform Editor.
Bước 5

: Đặt x
1
bằng ‘0’ trong đoạn từ 0 ns đến 100 ns, tiếp đến đặt x
1

bằng
‘1’ trong đoạn từ 100 ns đến 200 ns bằng cách đặt chuột ở vị trí bắt đầu đoạn
này và nhấp kéo đến hết để đánh dấu vùng đặt giá trị, và chọn giá trị ‘1’ trên
thanh công cụ. Tương tự như vậy đặt x
2
bằng 1 từ 50 ns đến 100 ns và từ 150
ns đến 200 ns.
Hình 1.8. Cửa sổ chọn các tín hiệu vào ra đưa vào dạng sóng mô phỏng
Bước 6: Thực hiện mô phỏng
Mô phỏng chức năng
8
Nhấp chọn Assignments > Settings. Bên trái của cửa sổ Settings nhấp chọn
Simulator Settings để có cửa sổ như trong Hình 4.7, chọn Functional trong
mục chọn chế độ mô phỏng, và nhấp OK.
Hình 1.9. Dạng sóng kiểm tra trước khi mô phỏng
Hình 1.10. Chọn chế độ mô phỏng chức năng cho trình mô phỏng
- Nhấp chọn Processing > Generate Functional Simulation Netlist. Sau đó
nhấp chọn Processing > Start Simulation để thực hiện mô phỏng. Kiểm
tra dạng song đầu ra f có đúng theo chức năng của mạch hay không.
9
Hình 1.11. Dạng sóng mô phỏng chức năng
Mô phỏng thời gian
- Nhấp chọn Assignments > Settings. Bên trái của cửa sổ Settings nhấp
chọn Simulator Settings để có cửa sổ như trong Hình 9, chọn Timing trong
mục chọn chế độ mô phỏng, và nhấp OK.
- Sau đó thực hiện mô phỏng theo cách vừa thực hiện như trên, quan sát
dạng sóng đầu ra f và nhận xét sự khác biệt so với dạng sóng này khi thực hiện
mô phỏng chức năng.
h. Nạp và cấu hình FPGA
Bước


1: Gạt chuyển mạch RUN/PROG sang vị trí RUN. Nhấp chọn Tools >
Programmer để có cửa sổ như trong Hình 11. Đánh dấu vào tùy chọn
Program/Configue để cho phép nạp tệp cấu hình light.sof.
Hình 1.12. Giao diện của trình nạp và cấu hình
FPGA
10
Bước 2: Nhấp nút Start bên trái cửa sổ để nạp tệp cấu hình này xuống FPGA.
Sau khi nạp thành công xuống FPGA, hãy kiểm tra mạch điện này thực hiện
trên FPGA có chạy đúng theo chức nămg mong muốn hay không bằng cách
dùng các chuyển mạch SW
0
và SW
1
để nhập đầu vào rồi quan sát đầu ra
hiển thị trên LEDG
0
.
Một trong số lớn các ứng dụng của VHDL là chế tạo các mạch hoặc hệ
thống trong thiết bị có thể lập trình được (PLD hoặc FPGA) hoặc trong ASIC.
Việc chế tao ra vi mạch sẽ được chia thành 3 giai đoạn như sau:
- Giai đoạn 1: Bắt đầu thiết kế bằng viết mã VHDL. Mã VHDL này sẽ
được lưu vào file có đuôi là .vhd và có tên cùng với tên thực thể. Mã VHDL sẽ
được mô tả ở tầng chuyển đổi thanh ghi.
- Giai đoạn 2: Giai đoạn chế tạo gồm có 2 bước:
+ Biên dịch: Chuyển mã VHDL vào một netlist ở tầng cổng.
+ Tối ưu: Thực hiện trên netlist ở tầng cổng về tốc độ và phạm vi.
Trong giai đoạn này, thiết kế có thể được mô phỏng để kiểm tra phát hiện
những lỗi xảy ra trong quá trình chế tạo.
- Giai đoạn 3: Là giai đoạn ghép nối đóng gói phần mềm. Ở giai đoạn này

sẽ tạo ra sự sắp xếp vật lý cho chip PLD/FPGA hoặc tạo ra mặt nạ cho ASIC.
1.1.3. Công cụ EDA
Các công cụ phục vụ cho quá trình thiết kế vi mạch sẽ là:
- Công cụ Active – HDL: Tạo mã VHDL và mô phỏng
11
- Công cụ EDA (Electronic Design Automation): là công cụ tự động thiết
kế mạch điện tử. Công cụ này được dùng để phục vụ cho việc chế tạo, thực thi
và mô phỏng mạch sử dụng VHDL.
- Công cụ cho đóng gói: Các công cụ này sẽ cho phép tổng hợp mã VHDL
vào các chip CPLD/FPGA của Altera hoặc hệ ISE của Xilinx, for Xilinx’s
CPLD/FPGA chips).
1.1.4. Chuyển mã VHDL vào mạch
Một bộ cộng đầy đủ được mô tả trong hình dưới đây:

Trong đó, a , b là các bit vào cho bộ cộng, cin là bit nhớ. Đầu ra s là bit tổng,
cout là bit nhớ ra. Hoạt động của mạch được chỉ ra dưới dạng bảng chân lý:
Bit s và cout được tính như sau: và
Từ công thức tính s và cout ta viết đoạn mã VHDL như dưới đây:
12

×