thỰc hÀnh thiẾt kẾ mẠch sỐ vỚi hdl

20
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH ------oOo----- THỰC HÀNH THIẾT KẾ MẠCH SỐ VỚI HDL TP.HCM, 9-2009 CuuDuongThanCong.com https://fb.com/tailieudientucntt

Upload: others

Post on 25-Jan-2022

0 views

Category:

Documents


0 download

TRANSCRIPT

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC BÁCH KHOA

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH

------oOo-----

THỰC HÀNH

THIẾT KẾ MẠCH SỐ VỚI HDL

TP.HCM, 9-2009

CuuDuongThanCong.com https://fb.com/tailieudientucntt

Giới thiệu

Bộ tài liệu thực hành thiết kết mạch số với HDL được soạn thảo nhằm mục đích hỗ

trợ các bạn sinh viên trong việc tiếp xúc với ngôn ngữ đặc tả phần cứng. Mà cụ thể là hỗ

trợ cho môn học thiết kết mạch số với HDL.

Tài liệu này bao gồm 9 bài, tương ứng với 9 buổi. Nội dung chu yếu hướng đến

việc học tư duy thiết kết phần cứng. Giúp sinh viên luyện tập các kỹ năng lập trình với

Verilog, mô phỏng trên Model Sim hay trực tiếp trên board DE2.

Mặc dù rất cố gắng để nhưng cũng không thể tránh khỏi những sai sót. Vì vậy rất

mong nhận được ý kiến đóng góp từ phía bạn đọc hoặc các bạn sinh viên.

Chân thành cảm ơn!

TP.HCM, ngày 27tháng 9 năm 2009

CuuDuongThanCong.com https://fb.com/tailieudientucntt

Mục lục

Buổi 1. Tổng quan về các phần mềm thiết kế trên FPGA ....................................... 7 I. Giới thiệu Board DE2 của Altera ............................................................................. 7

1. Giới thiệu .......................................................................................................... 7

2. Thành phần ....................................................................................................... 7 3. Một vài ứng dụng của board DE2 .................................................................... 8

II. Cách cài đặt Quartus II 8.0 và Nios II ..................................................................... 9 1. Giới thiệu .......................................................................................................... 9 2. Cài đặt ............................................................................................................. 10

III. Cách nạp chương trình cho Quartus II 8.0: ............................................................ 13 1. Tạo 1 project: .................................................................................................. 13 2. Viết chương trình và biên dịch: ...................................................................... 17

3. Tạo file mô phỏng (simulate) và bắt đầu simulate ......................................... 22

4. Cấu hình chân và nạp lên board...................................................................... 30 Buổi 2. Mạch tổ hợp và mạch tuần tự ...................................................................... 40

I. Giới thiệu ............................................................................................................... 40 1. Giới thiệu ........................................................................................................ 40 2. Hướng dẫn thiết kế FPGA thông qua sơ đồ khối/Schematic .......................... 40

II. Bài tập .................................................................................................................... 46 Buổi 3. Lập trình Verilog với mô hình cấu trúc ..................................................... 48

I. Giới thiệu ModelSim ............................................................................................. 48 1. Giới thiệu ........................................................................................................ 48

2. Cài đặt ............................................................................................................. 48 3. Hướng dẫn ...................................................................................................... 58

II. Bài tập .................................................................................................................... 65 Buổi 4. Mô hình hành vi ............................................................................................ 67

I. Bài tập .................................................................................................................... 67

Buổi 5. Mô hình hành vi (tt)...................................................................................... 71 I. Bài tập .................................................................................................................... 71

Buổi 6. Máy trạng thái .............................................................................................. 75 I. Giới thiệu ............................................................................................................... 75

1. Giới thiệu ........................................................................................................ 75

2. Hướng dẫn ...................................................................................................... 75 II. Bài tập .................................................................................................................... 83

CuuDuongThanCong.com https://fb.com/tailieudientucntt

Mục lục hình

Hình 1.Board DE2 ............................................................................................................. 7

Hình 2. TV Box.................................................................................................................. 8 Hình 3. Chương trình vẽ (paintbrush) ................................................................................ 9 Hình 4. Máy hát Karaoke và máy chơi nhạc từ card SD ................................................... 9 Hình 5. Thông báo chưa cài dirver .................................................................................. 10 Hình 6. Chọn cách thức cài đặt driver ............................................................................. 11

Hình 7. Chọn thư mục tìm kiếm driver ............................................................................ 11 Hình 8. Chọn thư mục chứa dirver .................................................................................. 12 Hình 9. Thông báo lỗi ...................................................................................................... 12

Hình 10. Thông báo cài đặt hoàn tất ................................................................................ 13 Hình 11. Tạo mới một project .......................................................................................... 14 Hình 12. Hộp hội thoại tạo mới project ........................................................................... 15

Hình 13. Hộp thoại lựa chọn chip .................................................................................... 16 Hình 14. Hộp thoại tổng hợp các thông tin của project ................................................... 17

Hình 15. Tạo mới file ....................................................................................................... 18 Hình 16. Lựa chọn loại file cần tạo .................................................................................. 19 Hình 17. Cửa sổ viết code ................................................................................................ 19

Hình 18. Cửa sổ lập trình ................................................................................................. 20 Hình 19. Hộp thoại lưu file .............................................................................................. 20

Hình 20. Lựa chọn lop-level cho file ............................................................................... 21 Hình 21. Biên dịch chương trình ..................................................................................... 21

Hình 22. Thông báo việc biên dịch thành công ............................................................... 22 Hình 23. Tạo mới file testbench ....................................................................................... 23 Hình 24. Chọn tín hiệu sẽ được test ................................................................................. 23

Hình 25. Hộp thoại lựa chọn tín hiệu ............................................................................... 24 Hình 26. Cửa sổ lựa chọn tín hiệu ................................................................................... 24

Hình 27. Xác nhận lại việc lựa chọn tín hiệu ................................................................... 25 Hình 28. Thiết lập giá trị cho các tín hiệu ........................................................................ 25 Hình 29. Cửa sổ Save As ................................................................................................. 26

Hình 30. Lựa chọn chế độ simulate ................................................................................. 26 Hình 31. Cửa sổ thiết lập các thông số của quá trình simulate ........................................ 27

Hình 32. Thực hiện chức năng tổng hợp và phân tích chương trình ............................... 27

Hình 33. Thông báo thành công ....................................................................................... 28

Hình 34. Thiết lập file testbench cho chương trình ......................................................... 28 Hình 35. Lựa chọn đường dẫn lưu trữ file testbench ....................................................... 28 Hình 36. Chỉ định vị trí lưu trữ file testbench .................................................................. 29 Hình 37. Tiến hành quá trình simulation ......................................................................... 29 Hình 38. Thông báo simulate thành công ........................................................................ 30

Hình 39. Kết quả quá trình mô phỏng (simulation) ......................................................... 30 Hình 40. Cửa sổ gán chân ................................................................................................ 31 Hình 41. Các tín hiệu cần gán chân ................................................................................. 31 Hình 42. Danh sách các chân có thể được gán ................................................................ 32 Hình 43. Quá trình gán chân hoàn tất .............................................................................. 32

Hình 44. Lưu lại file cấu hình chân ................................................................................. 33

CuuDuongThanCong.com https://fb.com/tailieudientucntt

Hình 45. Hộp thoại load file cấu hình chân ..................................................................... 33 Hình 46. Cửa sổ lập trình (nạp) ....................................................................................... 34 Hình 47. Cửa sổ Hardware Setup .................................................................................... 35 Hình 48. Cửa sổ lập trình ................................................................................................. 35

Hình 49. Cửa sổ thiết bị ................................................................................................... 36 Hình 50. Cứa sổ Device & Pin Options ........................................................................... 37 Hình 51. Thông báo thay đổi chế độ lập trình ................................................................. 37 Hình 52. Cửa sổ lập trình trong chế độ AS ...................................................................... 38 Hình 53. Lựa chọn file cấu hình ...................................................................................... 38

Hình 54. Quá trình lập trình hoàn tất ............................................................................... 39 Hình 55. Cửa sổ lựa chọn loại file ................................................................................... 41 Hình 56. Cửa sổ làm việc của Quartus ............................................................................ 42

Hình 57. Hộp thoại lựa chọn linh kiện có trong thư viện ................................................ 43 Hình 58. Đặc linh kiện lên cửa sổ làm việc ..................................................................... 44 Hình 59. Cửa sổ gán chân cho tín hiệu xuất nhập ........................................................... 45

Hình 60. Hoàn tất việc vẽ mạch ....................................................................................... 45 Hình 61. Lựa chọn file cấu hình cho project ................................................................... 46

Hình 62. Cửa sổ cài đặt ModelSim .................................................................................. 49 Hình 63. Cửa sổ cài đặt ModelSim .................................................................................. 50 Hình 64. Cửa sổ lựa chọn thư mục cài đặt ....................................................................... 51

Hình 65. Lựa chọn tên thư mục cho chương trình ........................................................... 52 Hình 66. Tổng hợp thông tin cài đặt ................................................................................ 53

Hình 67. Thanh process cài đặt ........................................................................................ 53

Hình 68. Cửa sổ thông báo license của phần mềm .......................................................... 54

Hình 69. Đăng ký thông tin.............................................................................................. 55 Hình 70. Xem thông tin card mạng của máy ................................................................... 56

Hình 71. Cửa sổ thuộc tín của hệ thống ........................................................................... 57 Hình 72. Cửa sổ biến môi trường..................................................................................... 58 Hình 73. Hộp thoại tạo mới một biến môi trường ........................................................... 58

Hình 74. Cửa sổ làm việc của ModelSim ........................................................................ 59 Hình 75. Tạo mới project ................................................................................................. 59

Hình 76. Thông tin của project mới ................................................................................. 60 Hình 77. Thêm các file vào project .................................................................................. 60

Hình 78. Hộp thoại tạo mới file ....................................................................................... 60

Hình 79. Cửa sổ soạn thảo ............................................................................................... 61

Hình 80. Tạo mới file ....................................................................................................... 61 Hình 81. Thêm file vào project ........................................................................................ 62 Hình 82. Code verilog file testbench ............................................................................... 62 Hình 83. Thư viện word ................................................................................................... 63 Hình 84. Thực hiện simulate ............................................................................................ 63

Hình 85. Chọn tín hiệu sẽ được vẽ dạng sóng (giản đồ) .................................................. 64 Hình 86. Cửa sổ lệnh ....................................................................................................... 64 Hình 87. Giản đồ thơi gian của các tín hiệu..................................................................... 65 Hình 88. Kết thúc quá trình simulate ............................................................................... 65 Hình 89. Sơ đồ kết nối mạch ........................................................................................... 66 Hình 90. Kết nối mạch ..................................................................................................... 68

CuuDuongThanCong.com https://fb.com/tailieudientucntt

Hình 91. Bảng thực trị và sơ đồ mạch ............................................................................. 68 Hình 92. Sơ đồ mạch........................................................................................................ 69 Hình 93. Bảng thực trị và sơ đồ kết nối ........................................................................... 69 Hình 94. Sơ đồ kết nối ..................................................................................................... 70

Hình 95. Bảng thực trị ..................................................................................................... 70 Hình 96. Bảng thực trị ..................................................................................................... 71 Hình 97. Sơ đồ kết nối mạch ........................................................................................... 72 Hình 98. Bảng thực trị và sơ đồ kết nối mạch ................................................................. 73 Hình 99. Mạch cộng 4-bit Full-Adder ............................................................................. 73

Hình 100. Tạo file máy trạng thái .................................................................................... 76 Hình 101. Cửa sổ làm việc ............................................................................................... 77 Hình 102. Tạo các trạng thái ............................................................................................ 78

Hình 103. Tạo các đường chuyển trạng thái .................................................................... 78 Hình 104. Thiết lập biểu thức chuyển trạng thái ............................................................. 79 Hình 105. Thiết lập tín hiệu xuất và action của mỗi trạng thái ........................................ 80

Hình 106. Máy trạng thái ................................................................................................. 80 Hình 107. Chuyển máy trạng thái sang định dạng của ngôn ngữ thiết kết phần cứn ...... 81

Hình 108. Code verilog được tạo ra từ máy trạng thái .................................................... 82 Hình 109. Chương trình chính ......................................................................................... 83 Hình 110. Thiết lập top-level ........................................................................................... 83

Hình 111. Lưu đồ trạng thái ............................................................................................. 84

CuuDuongThanCong.com https://fb.com/tailieudientucntt

ĐH. Bách Khoa TP.HCM Khoa KH&KTMT

Thực hành thiết kết mạch số với HDL 7 KTMT

Buổi 1. Tổng quan về các phần mềm thiết kế trên FPGA

Mục tiêu

Nắm được công nghệ FPGA

Làm quen board thực hành DE2

Cài đặt, và làm quen với các phần mềm: Quartus II, Nios II

I. Giới thiệu Board DE2 của Altera

1. Giới thiệu

Board DE2 là board mạch phục vụ cho việc nghiên cứu và phát triển về các

lĩnh vực luận lý số học (digital logic), tổ chức máy tính (computer organization)

và FPGA.

Hình 1.Board DE2

2. Thành phần

Board DE2 cung cấp khá nhiều tính năng hỗ trợ cho việc nghiên cứu và phát

triển, dưới đây là thông tin chi tiết của một board DE2:

FPGA:

- Vi mạch FPGA Altera Cyclone II 2C35.

- Vi mạch Altera Serial Configuration – EPCS16.

CuuDuongThanCong.com https://fb.com/tailieudientucntt

ĐH. Bách Khoa TP.HCM Khoa KH&KTMT

Thực hành thiết kết mạch số với HDL 8 KTMT

Các thiết bị xuất nhập:

- USB Blaster cho lập trình và điểu khiển API của người dung; hỗ trợ cả 2 chế

độ lập trình JTAG và AS.

- Bộ điều khiển Cổng 10/100 Ethernet.

- Cổng VGA-out.

- Bộ giải mã TV và cổng nối TV-in.

- Bộ điều khiển USB Host/Slave với cổng USB kiểu A và kiểu B.

- Cổng nối PS/2 chuột/bàn phím.

- Bộ giải mã/mã hóa âm thanh 24-bit chất lượng đĩa quang với jack cắm line-in,

line-out, và microphone.

- 2 Header mở rộng 40-pin với lớp bảo vệ diode.

- Cổng giao tiếp RS-232 và cổng nối 9-pin.

- Cổng giao tiếp hồng ngoại.

Bộ nhớ:

- SRAM 512-Kbyte.

- SDRAM 8-Mbyte.

- Bộ nhớ cực nhanh 4-Mbyte (1 số mạch là 1-Mbyte).

- Khe SD card.

Switch, các đèn led, LCD, xung clock

- 4 nút nhấn, 18 nút gạt.

- 18 LED đỏ, 9 LED xanh, 8 Led 7 đoạn

- LCD 16x2

- Bộ dao động 50-MHz và 27-MHz cho đồng hồ nguồn.

3. Một vài ứng dụng của board DE2

Ứng dụng làm TV box

Hình 2. TV Box

CuuDuongThanCong.com https://fb.com/tailieudientucntt

ĐH. Bách Khoa TP.HCM Khoa KH&KTMT

Thực hành thiết kết mạch số với HDL 9 KTMT

Chương trình vẽ bằng chuột USB (paintbrush)

Hình 3. Chương trình vẽ (paintbrush)

Máy hát Karaoke và máy chơi nhạc SD

Hình 4. Máy hát Karaoke và máy chơi nhạc từ card SD

II. Cách cài đặt Quartus II 8.0 và Nios II

1. Giới thiệu

Bộ phần mềm thiết kế đi kèm với board DE2 bao gồm 2 dĩa: Quartus 2 và

Nios 2 Integrated Development Environment (IDE)

Quartus II là phần mềm hỗ trợ tất cả mọi quá trình thiết kế một mạch logic,

bao gồm quá trình thiết kế, tổng hợp, placement và routing (sắp xếp và chạy dây),

mô phỏng (simulation), và lập trình lên thiết bị (DE2).

Nios II, môi trường phát triển tích hợp của họ Nios II (IDE), nó là công cụ

phát triển chủ yếu của họ vi xử lý Nios II. Phần mềm sẽ là môi trường cung cấp

khả năng chỉnh sửa, xây dựng, debug và mô tả sơ lược về chương trình. IDE còn

cho phép tạo các chương trình từ đơn nhiệm (single-threaded) đến các chương

CuuDuongThanCong.com https://fb.com/tailieudientucntt

ĐH. Bách Khoa TP.HCM Khoa KH&KTMT

Thực hành thiết kết mạch số với HDL 10 KTMT

trình phức tạp dựa trên một hệ điều hành thời gian thực và các thư viện

middleware.

2. Cài đặt

Cài đặt Quartus II và Nios II

Quá trình cài đặt Quartus II và Nios đơn giản chỉ cần đưa đĩa vào máy và thực

hiện theo hướng dẫn của chương trình cài đặt

Cài đặt phần mềm USB blaster driver

Vì Board DE2 được lập trình bằng cách sử dụng phần mềm USB Blaster

(USB Blaster mechanism). Nên nếu USB Blaster driver chưa được cài đặt thì quá

trình lập trình xuống board DE2 sẽ không thành công.

Sau khi gắn board DE2 vào máy tính thông qua cổng USB, nếu USB Blaster

driver chưa được cài đặt thì hộp thoại sau sẽ xuất hiên, Chọn No, not this time sau

đó nhấn Next

Hình 5. Thông báo chưa cài dirver

Chọn Install from a specific location và chọn Next

CuuDuongThanCong.com https://fb.com/tailieudientucntt

ĐH. Bách Khoa TP.HCM Khoa KH&KTMT

Thực hành thiết kết mạch số với HDL 11 KTMT

Hình 6. Chọn cách thức cài đặt driver

Kết tiếp bạn chọn Search for the best driver in these location và sau đó nhấn

Browse.

Hình 7. Chọn thư mục tìm kiếm driver

CuuDuongThanCong.com https://fb.com/tailieudientucntt

ĐH. Bách Khoa TP.HCM Khoa KH&KTMT

Thực hành thiết kết mạch số với HDL 12 KTMT

Hộp thoại mới sẽ xuất hiện bạn tìm đến vị trí

altera\quartus60\drivers\usb−blaster, sau đó nhấn OK và tiếp tục nhấn Next

Hình 8. Chọn thư mục chứa dirver

Cửa sổ thông báo việc kiểm tra logo window không thành công, tuy nhiên

việc này sẽ không bị ảnh hưởng đến việc kết nối của chương trình sau này. Bạn

tiếp tục nhấn Continue Anyway

Hình 9. Thông báo lỗi

Nhấn Finish để hoàn tất việc cài đặt

CuuDuongThanCong.com https://fb.com/tailieudientucntt

ĐH. Bách Khoa TP.HCM Khoa KH&KTMT

Thực hành thiết kết mạch số với HDL 13 KTMT

Hình 10. Thông báo cài đặt hoàn tất

III. Cách nạp chương trình cho Quartus II 8.0:

1. Tạo 1 project:

Bước 1. Vào Menu > file chọn New Project Wizard

CuuDuongThanCong.com https://fb.com/tailieudientucntt

ĐH. Bách Khoa TP.HCM Khoa KH&KTMT

Thực hành thiết kết mạch số với HDL 14 KTMT

Hình 11. Tạo mới một project

Bước 2. Ta chọn thư mục để chứa project và đặt tên cho project, xem hình

bên dưới

CuuDuongThanCong.com https://fb.com/tailieudientucntt

ĐH. Bách Khoa TP.HCM Khoa KH&KTMT

Thực hành thiết kết mạch số với HDL 15 KTMT

Hình 12. Hộp hội thoại tạo mới project

Bước 3. Sau đó ta chọn hãng sản xuất chip và tên loại chip trên mạch

CuuDuongThanCong.com https://fb.com/tailieudientucntt

ĐH. Bách Khoa TP.HCM Khoa KH&KTMT

Thực hành thiết kết mạch số với HDL 16 KTMT

Hình 13. Hộp thoại lựa chọn chip

Bước 4. Cuối cùng chọn Finish để hoàn tất

CuuDuongThanCong.com https://fb.com/tailieudientucntt

ĐH. Bách Khoa TP.HCM Khoa KH&KTMT

Thực hành thiết kết mạch số với HDL 17 KTMT

Hình 14. Hộp thoại tổng hợp các thông tin của project

2. Viết chương trình và biên dịch:

Bước 1. Vào Menu > file chọn New

CuuDuongThanCong.com https://fb.com/tailieudientucntt

ĐH. Bách Khoa TP.HCM Khoa KH&KTMT

Thực hành thiết kết mạch số với HDL 18 KTMT

Hình 15. Tạo mới file

Bước 2. Sau đó chọn loại file mà chúng ta muốn viết chương trình. Ở đây ta

chọn loai file Verilog HDL

CuuDuongThanCong.com https://fb.com/tailieudientucntt

ĐH. Bách Khoa TP.HCM Khoa KH&KTMT

Thực hành thiết kết mạch số với HDL 19 KTMT

Hình 16. Lựa chọn loại file cần tạo

Bước 3. Dưới đây là một đoạn chương trình demo: tính hàm f = x1 EX-OR

x2

Hình 17. Cửa sổ viết code

Bước 4. Sau khi viết xong thì ta phải lưu tên file trùng với tên module của

chương trình

CuuDuongThanCong.com https://fb.com/tailieudientucntt

ĐH. Bách Khoa TP.HCM Khoa KH&KTMT

Thực hành thiết kết mạch số với HDL 20 KTMT

Hình 18. Cửa sổ lập trình

Hình 19. Hộp thoại lưu file

Chú ý: Chọn Add file to current project

Bước 5. Sau khi lưu file xong phải thiết lập cho file là top-level thì mới

biên dịch được

CuuDuongThanCong.com https://fb.com/tailieudientucntt