Hướng dẫn sử dụng Quartus II để thiết kế
mạch
Vì hôm trước katsu có thấy bài hỏi của 1 thành viên trong diễn đàn về cách sử dụng Quartus II lại tiện lúc
katsu đang học lớp Thiết kế mạch sử dụng Icarus Verilog và Quartus nên katsu viết bài hướng dẫn này. Nếu
có gì sai sót thì các bạn chỉ cho.
Nội dung của bài viết này chỉ đơn giản giới thiệu về các bước tiến hành lần lượt nhằm tạo 1 mạch điện tử với
Quartus sau khi các bạn đã thiết kế được mạch với ngôn ngữ Verilog và hoàn thành kiểm tra phần code rồi.
Thiết bị chính dùng để kiểm tra được sử dụng là DE01 Board.
< ="-" ="text/; =utf-8">< name="ProgId" ="Word.">< name="Generator" ="Microsoft Word 12"><
name="Originator" ="Microsoft Word 12">
Các bước tiến hành:
1. Mở Quartus II bằng cách click đôi vào biểu tượng của Quartus trên màn hình Desktop.
2. Sau khi chạy các file hệ thống, Quartus II sẽ mở ra màn hình khởi động của mình
Chọn Create a New Project để tạo một Project mới hoặc chọn Open Existing Project để chọn mở Project mà
bạn đã thực hiện. Quartus cũng hiển thị ch bạn một số Project mà bạn thực hiện trong thời gian gần đây ở
phần Open Recent Project (thứ tự của các Project được sắp xếp theo lần cuối cùng bạn mở Project).
3. Nếu bạn chọn Create a New Project.
Cửa sổ New Project Wizard sẽ hiện ra, bạn chọn Next.
4. Ở cửa sổ tiếp theo, bạn chỉ đường dẫn tới folder cho Project mới của bạn. Thường thì katsu sẽ tạo một
folder mới trong máy, lấy tên tùy theo mạch muốn thiết kế. Sau đó có một bước quan trọng là copy file code
Verilog(đã biên soạn bằng Notepad++ hoặc bất kỳ một trình editor nào có hỗ trợ ngôn ngữ Verilog) vào
trong folder này.
Trong 2 ô tiếp theo, Quartus yêu cầu bạn đánh vào tên của Project mới, chú ý lấy tên của project trùng với
tên của module mà bạn đã biên soạn trong Verilog.
Ví dụ katsu sử dụng code của bài thiết kế cho Led 7 đoạn để hiển thị các số từ 0-9 sau:
/***********************************************************
* Author: Hoang Minh Vu Class: 06ECE
* Module: led7seg
* Description:
***********************************************************/
module led7seg ( SW, Led_Out);
input [3:0] SW;
output [0:6] Led_Out;
//reg [6:0] Led_Out;
// the function of output
assign Led_Out[0] = (!SW[3])&&(!SW[2])&& (!SW[1]) && (SW[0])
|| (!SW[3])&& SW[2]&&(!SW[1])&&(!
SW[0]);
assign Led_Out[1] = (!SW[3])&& SW[2] && (!SW[1]) && SW[0]
|| (!SW[3]) && SW[2] && SW[1] && (!
SW[0]);
assign Led_Out[2] =(!SW[3]) && (!SW[2]) && SW[1] && (!SW[0]);
assign Led_Out[3] =(!SW[3])&&(!SW[2])&& (!SW[1]) && (SW[0])
|| (!SW[3])&& SW[2]&&(!SW[1])&&(!
SW[0])
|| (!SW[3])&& SW[2] && SW[1] &&
SW[0];
endmodule
module led7seg_tb;
parameter DELAY = 10; // constant value
Vì tên của module thực thi là led7seg nên trong 2 ô dưới của cửa sổ Project Wizard, katsu cũng sẽ đánh vào
là led7seg.
5. Sau khi nhấn Next, Quartus sẽ đòi bạn thêm file code cho Project. Bạn chọn đường dẫn tới file code
Verilog nằm trong folder project mà bạn mới tạo ở trên. Sau đó nhấn Add. Ở ô ngay dưới đó, bạn sẽ thấy file
code của bạn (giống như trong hình là file led7seg.v, loại file là Verilog HDL file).
6. Bước 6 là chọn loại thiết bị mà bạn muốn sử dụng để test. Trong ví dụ này, katsu sẽ sử dụng bộ DE1
Board, là bảng mạch dùng để thí nghiệm tại phòng lab của Chương trình tiên tiến ECE.
Các thông số được chọn như trong hình vẽ. Lưu ý à các thông số này được chọn tùy thuộc vào loại thiết bị
mà bạn dùng để thí nghiệm, trước khi thực hiện bước này cần xem và kiểm tra kĩ các thông số trước khi bạn
nhấn Finish.
7. Sau khi nhấn Finish, bạn đã hoàn thành thiết lập những thông số đầu tiên cho Project của mình.
Sau khi Quartus mở các file cần thiết, tại cửa sổ Project Navigator, các bạn chọn tab Files, và mở file code
(file .v) ra bằng cách click đôi vào file đó.
8. Trong cửa sổ mới hiện ra có chứa toàn bộ phần code của bạn, xóa toàn bộ phần code dành cho các
module Tester hoặc module Testbench(những module này không phải là phần code của mạch mà bạn viết,
chúng chỉ được dùng để thiết lập một số trạng thái và điều kiện để kiểm tra sự hoạt động của mạch. Khi
kiểm tra bằng thiết bị thực sự, bạn không cần tới các module này nữa).
Sau đó, bạn nhấn nút Start Compilation để Quartus bắt đầu biên dịch phần code của bạn.
9. Trong quá trình biên dịch, nếu phát hiện lỗi, Quartus sẽ báo quá trình biên dịch không thành công cùng số
lỗi. Những dòng chữ màu đỏ ở tab Processing bên dưới sẽ thể hiện cho các bạn những lỗi mà bạn mắc phải.
Click đôi vào các dòng đỏ đó sẽ dẫn bạn tới vị trí trong phần code mà bạn có lỗi. Sau khi hoàn tất sửa lỗi
(debugging), Quartus sẽ báo biên dịch thành công. (Trong thực tế, Quartus sẽ báo có bao nhiêu warning
(cảnh báo) trong chương trình của bạn. Nhưng tạm thời bạn chưa cần chú ý tới các cảnh báo này)
10. Sau khi hoàn tất biên dịch, bạn có thể xem được sơ đồ mạch mà bạn đã thiết kế bằng cách chọn
Tools/Netlist Viewers/RTL Viewer. Bạn có thể kiểm tra xem các cổng trong mạch bạn thiết kế có hiển thị ra
trong Quartus đúng theo bạn mong muốn hay không.
Ảnh đã được thu nhỏ .Click vào thanh này để thấy ảnh size nguyên gốc. (648 x 393)
11. Tới đây, chương trình của bạn đã được sẵn sàng để thực hiện tải thiết kế mạch xuống và kiểm tra bằng
thiết bị thực sự.
Chọn Assignments/Assignment Editor.
Trong mục Category, bạn chọn PIN.
Trong mục Edit, bạn dựa trên các chỉ dẫn thông số của thiết bị để nhập số PIN vào tùy thuộc vào tín hiệu
đầu ra hay đầu vào và tùy thuộc vào bạn muốn tín hiệu ra được hiển thị bằng gì.
Với ví dụ về đoạn mã cho Led 7 đoạn, input của katsu sẽ được gán với 4 chân PIN của 4 công tắc (toggle
switch), output sẽ được gán với chân PIN của 1 đèn Led 7 đoạn.
Ảnh đã được thu nhỏ .Click vào thanh này để thấy ảnh size nguyên gốc. (628 x 318)
12. Sau khi hoàn tất gán chân PIN, bạn nhấn Start Compilation một lần nữa để Quartus lấy các thông số
chân PIN. Sau đó nhấn chọn Programer. Trong cửa sổ Programmer mới xuất hiện, nhấn Start để bắt đầu tải
chương trình xuống thiết bị.
Ảnh đã được thu nhỏ .Click vào thanh này để thấy ảnh size nguyên gốc. (655 x 408)
Sau khi tải chương trình xuống, bạn có thể bắt đầu kiểm tra mạch bạn thiết kế ngay trên thiết bị bằng cách
gạt các công tắc, nhấn các nút(tùy vào bạn chọn)
Hy vọng bài viết trên giúp được các bạn trong việc bắt đầu làm quen và sử dụng Quartus trong thiết kế
mạch. Vì chưa có điều kiện sử dụng thiết bị khác để sử dụng với Quartus nên bài viết này chỉ hạn chế ở mức
sử dụng DE1 Board để kiểm tra. Trong thời gian tới nếu có điều kiện, katsu sẽ update bài hướng dẫn này với
các thiết bị khác. Thnx all.