1. Mục tiêu
Bài thí nghiệm này giới thiệu vềphần mềm Quartus II và tổng quan vềcác bước thực hiện trên CAD cho quy
trình thiết kếmạch số. Ví dụvềthiết kếmạch đơn giản minh họa cho từng bước dùng phần mềm Quartus II
và thực hiện trên FPGA của Altera.
2. Kiến thức cần trang bị
- Cơbản vềthiết kếsố,
- Cơbản vềngôn ngữmô tảphần cứng VHDL,
- Nắm rõ cách sửdụng kit DE1.
3. Các kiến thức thu được
- Biết cách tạo một dựán trên phần mềm Quartus II.
- Biết cách tổng hợp mạch logic từmã VHDL dùng trình tổng hợp tích hợp sẵn của Quartus II.
- Biết cách thực hiện mô phỏng cho mạch logic.
- Biết cách gán chân cho FPGA để đưa các tín hiệu vào ra mạch logic nối với các chân trên FPGA.
- Biết cách nạp và cấu hình cho FPGA
9 trang |
Chia sẻ: Mr Hưng | Lượt xem: 899 | Lượt tải: 0
Nội dung tài liệu Điện, điện tử - Bài 3: Giới thiệu về quartus II và quy trình thiết kếtrên fpga, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Khoa Điện tử-Viễn thông, Đại học Bách khoa Hà nội
Người biên soạn: KS. Nguyễn Minh Tiến và TS. Hoàng Mạnh Thắng 1
BÀI 3:
GIỚI THIỆU VỀ QUARTUS II VÀ QUY TRÌNH THIẾT KẾ TRÊN FPGA
1. Mục tiêu
Bài thí nghiệm này giới thiệu về phần mềm Quartus II và tổng quan về các bước thực hiện trên CAD cho quy
trình thiết kế mạch số. Ví dụ về thiết kế mạch đơn giản minh họa cho từng bước dùng phần mềm Quartus II
và thực hiện trên FPGA của Altera.
2. Kiến thức cần trang bị
- Cơ bản về thiết kế số,
- Cơ bản về ngôn ngữ mô tả phần cứng VHDL,
- Nắm rõ cách sử dụng kit DE1.
3. Các kiến thức thu được
- Biết cách tạo một dự án trên phần mềm Quartus II.
- Biết cách tổng hợp mạch logic từ mã VHDL dùng trình tổng hợp tích hợp sẵn của Quartus II.
- Biết cách thực hiện mô phỏng cho mạch logic.
- Biết cách gán chân cho FPGA để đưa các tín hiệu vào ra mạch logic nối với các chân trên FPGA.
- Biết cách nạp và cấu hình cho FPGA
4. Các bước thực hiện một thiết kế
Các bước thể hiện quy trình thiết kế số trên các IC có thể lập trình (FPGA/CPLD) như sau:
Hình 1. Quy trình thiết kế CAD thông dụng
- Nhập thiết kế: Mạch logic mong muốn được mô tả bằng ngôn ngữ mô tả phần cứng như
VHDL/Verilog hoặc bằng sơ đồ mạch.
Khoa Điện tử-Viễn thông, Đại học Bách khoa Hà nội
Người biên soạn: KS. Nguyễn Minh Tiến và TS. Hoàng Mạnh Thắng 2
- Tổng hợp: Công cụ thực hiện chuyển các biểu diễn mạch điện ở trên thành dạng tệp netlist, trong đó
biểu diễn các thành phần logic cần cho mạch cùng các kết nối giữa các thành phần logic.
- Mô phỏng chức năng: Mạch đã tổng hợp được kiểm tra để phân tích tính chính xác về chức năng;
trình mô phỏng không quan tâm đến vấn đề thời gian.
- Fitting: Công cụ CAD Fitter xác định vị trí đặt các thành phần logic đã đưa ra trong tệp netlist vào
trong FPGA, đồng thời xác định các đường đi dây trong FPGA để kết nối các thành phần logic.
- Phân tích thời gian: Trễ đường truyền theo các đường khác nhau trong mạch đã được fit ở trên được
phân tích để xác định khả năng hoạt động mong muốn của mạch.
- Mô phỏng thời gian: Mạch đã được fit được kiểm tra để phân tích cả về chức năng và cả về mặt thời
gian.
- Lập trình và cấu hình: Mạch logic mong muốn được triển khai trên FPGA/CPLD thực tế thông qua
chương trình nạp và cấu hình cho FPGA/CPLD.
Cụ thể các bước thiết kế với Quartus II
Phần 1: Tạo mới một dự án
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 2. 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ử dụng trong bài thí nghiệm. Nhấp chọn Next để chuyển
sang cửa sổ chọn kế tiếp.
Khoa Điện tử-Viễn thông, Đại học Bách khoa Hà nội
Người biên soạn: KS. Nguyễn Minh Tiến và TS. Hoàng Mạnh Thắng 3
Hình 3. Cửa sổ chọn loại chip FPGA dùng cho dự án
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.
Phần 2: 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 x1 hoặc x2 đó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 x1 và x2, 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 4. 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.
Khoa Điện tử-Viễn thông, Đại học Bách khoa Hà nội
Người biên soạn: KS. Nguyễn Minh Tiến và TS. Hoàng Mạnh Thắng 4
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.
Phần 3: 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. 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 5. 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.
library IEEE;
use IEEE.STD_LOGIC_1164.all;
entity light is
port( x1, x2: in std_logic;
f : out std_logic);
end light;
architecture Behavioral of light is
begin
f <= (x1 and not x2) or (not x1 and x2);
end Behavioral;
Khoa Điện tử-Viễn thông, Đại học Bách khoa Hà nội
Người biên soạn: KS. Nguyễn Minh Tiến và TS. Hoàng Mạnh Thắng 5
Phần 4: 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.
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ổ.
Phần 5: 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.
Phần 6: Gán chân
Chúng ta sẽ gán các chuyển mạch gạt SW0 và SW1 làm các đầu vào x1 và x2 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 LEDG0, đượ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 >.
Nhấp chọn x1 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 x1 (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 6. 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 x2 cho chân L21 và đầu ra f cho chân U22.
Khoa Điện tử-Viễn thông, Đại học Bách khoa Hà nội
Người biên soạn: KS. Nguyễn Minh Tiến và TS. Hoàng Mạnh Thắng 6
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.
Phần 7: 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ổ.
Hình 7. 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 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 x1 bằng ‘0’ trong đoạn từ 0 ns đến 100 ns, tiếp đến đặt x1 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 x2 bằng 1 từ 50 ns đến 100 ns và từ 150 ns đến 200 ns.
Bước 6: Thực hiện mô phỏng
Mô phỏng chức năng
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 8, chọn Functional trong mục chọn chế độ mô phỏng, và nhấp OK.
Khoa Điện tử-Viễn thông, Đại học Bách khoa Hà nội
Người biên soạn: KS. Nguyễn Minh Tiến và TS. Hoàng Mạnh Thắng 7
Hình 8. Dạng sóng kiểm tra trước khi mô phỏng
Hình 9. 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.
Khoa Điện tử-Viễn thông, Đại học Bách khoa Hà nội
Người biên soạn: KS. Nguyễn Minh Tiến và TS. Hoàng Mạnh Thắng 8
Hình 10. 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.
Phần 8: 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 11. Giao diện của trình nạp và cấu hình FPGA
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.
Khoa Điện tử-Viễn thông, Đại học Bách khoa Hà nội
Người biên soạn: KS. Nguyễn Minh Tiến và TS. Hoàng Mạnh Thắng 9
1. Các gợi ý mở rộng:
Thiết kế và thực hiện mạch điện trên bằng cách vẽ mạch trực tiếp thay vì viết mã VHDL?
2. Tài liệu tham khảo
- Altera. (06/2009). Quartus II Introduction Using VHDL Design [Online]. Available:
- Altera. (2006). DE1 Development and Education Board User Manual [Online]. Available:
3. Các câu hỏi đánh giá hiểu biết: Tại sao phải phân tích và mô phỏng thời gian cho thiết kế ?
Các file đính kèm theo tài liệu này:
- lab_3_overview_6931.pdf