Bo mạch giảng dạy và phát triển DE2 của ALTERA là công cụ lý tưởng để học về mạch logic số, cấu trúc máy tính, và FPGA. Cấu hình FPGA Cylone II Altera, bo mạch DE2 hỗ trợ nhiều công nghệ cũng như đầy đủ chức năng phần cứng phù hợp cho việc sử dụng làm thí nghiệm tại trường đại học, các dự án thiết kế có qui mô lớn, cũng nhu phát triển hệ thống số phức tạp.
Trang 1Trang 1
Kit thí nghiệm Kỹ thuật số
Altera DE1
Trang 2CÁC BƯỚC THÍ NGHIỆM KỸ THUẬT SỐ TRÊN KIT ALTERA DE1
Nhập file thiết kế dùng mã Verilog
Hình 1: Các bước thực hiện
Trang 3Trang 3
Bước 1 Chạy chương trình Quartus II:
Hình 2: Màn hình chính Quartus® II
Trang 4Bước 2 Tạo project mới:
1 Chọn File > New Project Wizard:
Hình 3: File menu
2 Chọn thư mục làm việc, đặt tên cho project rồi nhấn Next:
Hình 4: Tạo 1 project mới
Trang 5Trang 5
• Nhấn Yes
Hình 5: Quartus® II tạo thư mục mới cho project
3 Không cần phải chọn thêm file nào, nhấn NEXT:
Hình 6: Thêm file thiết kế đã có sẵn
4 Chọn chip Cyclone II EP2C20F484C7N, nhấn NEXT
Hình 7: Chọn chip FPGA
Trang 65 Không cần chọn EDA TOOL nào, nhấn Next:
Hình 8: Chọn EDA tools
6 Bảng tóm tắt các thông số cài đặt cho project như hình 9 Nhấn Finish
Hình 9: Tóm tắt các thông số cài đặt cho project
Trang 7Trang 7
Chương trình sẽ quay trở về màn hình chính:
Hình 10: Màn hình Quartus® II cho project mới được tạo
Trang 8Bước 3 Nhập file thiết kế dùng mã Verilog:
3.1 Chọn File > New, chọn Verilog HDL File, rồi nhấn OK
Hình 13: Chọn Verilog HDL file
Trang 9Trang 9
3.2 Tạo file thiết kế mới: chọn File > Save As, chọn Save as type = Verilog HDL File Đặt tên cho file Chọn Add file to current project Nhấn Save
Hình 14: Đặt tên file
3.3 Nhập chương trình dùng mã Verilog vào khung Text Editor
Lưu file: File > Save, hoặc nhấn Ctrl-S.
Hình 15: Màn hình Quartus® II sau khi tạo file
Trang 10Có thể tùy chọn các tính năng của Text Editor bằng cách chọn: Tools > Options > Text Editor
Hình 16: Các tùy chọn cho Text Editor
• Có thể dùng template để nhập chương trình: Edit > Insert Template > Verilog HDL
3.4 Đưa file thiết kế vào project: chọn Assignments > Settings, chọn Files hoặc chọn Project > Add/Remove Files in Project
• Nếu đã dùng Quartus® II Text Editor và đã chọn Add file to current project như trong phần 3.2 thì file thiết kế sẽ được nạp thẳng vào project
Hình 17: Tùy chọn các thông số cho project
Trang 11Trang 11
• Nếu chưa có thì phải nạp như sau:
1 Copy file thiết kế vào thư mục làm việc
2 Nhấn nút để chọn file
Hình 18: Chọn file
3 Chọn file cần thiết rồi nhấn Open Sau đó nhấn Add, OK
Bước 4 Biên dịch chương trình thiết kế:
4.1 Chọn Processing > Start Compilation, hoặc nhấn nút
Chờ biên dịch chương trình cho đến khi báo Successful (hoặc unsuccessful) rồi nhấn OK
Hình 19: Màn hình sau khi biên dịch thành công
Trang 124.2 Khi biên dịch xong chương trình sẽ tự động hiển thị Compilation Report Report này cũng có thể được mở bằng cách chọn Processing > Compilation Report hoặc nhấn nút
Hình 20: Kết quả biên dịch
• Thông báo lỗi:
Hình 25: Thông báo biên dịch có lỗi
Hình 26: Nội dung lỗi
Hình 27: Xác định vị trí lỗi
Trang 13TN KTS-Altera DE1 – Bộ môn Điện Tử - ĐHBK Tp HCM
13
Bước 5 Gán chân của project cho kit Altera DE 1:
5.1 Chọn Assignments > Import Assignments Chọn file “DE1_pin_assignments.csv” – Nhấn OK
Hình 24 Màn hình Import Assignments
5.2 Chọn Assignments > Assignment Editor Chọn Category = Pin
• Double-click vào vệt sáng highlight màu xanh dương ở cột “To” Rồi gán các chân vào, ra tương ứng.
Hình 25 Drop-down menu hiển thị tên các ngõ vào, ra
• Lưu file thiết kế
Hình 27 Hoàn tất việc gán chân
Bước 6 Mô phỏng mạch thiết kế:
1 Chọn File > New - Chọn Vector Waveform File - Nhấn OK
2 Màn hình Waveform Editor như Hình 32
• Lưu vector waveform file (.vwf)
• Chọn thời gian thực hiện mô phỏng từ 0 đến 200 ns bằng cách chọn Edit > End Time rồi nhập 200 ns
• Chọn View > Fit in Window
Trang 14TN KTS-Altera DE1 – Bộ môn Điện Tử - ĐHBK Tp HCM
Hình 33 Màn hình Waveform Editor
3 Chọn Edit > Insert Node or Bus
Hình 34 Hộp thoại Insert Node or Bus
• Nhấn nút Node Finder
Hình 35 Chọn nodes để đưa vào Waveform Editor
• Chọn Filter = Pins: all rồi nhấn nút List
• Chọn nút >> rồi nhấn OK
• Nhấn OK trong cửa sổ hình 34
4 Chọn các giá trị logic của các ngõ vào để thử Lưu vector waveform file
Trang 15TN KTS-Altera DE1 – Bộ môn Điện Tử - ĐHBK Tp HCM
15
Hình 37 Chọn các giá trị logic của các ngõ vào để thử
6.1 Thực hiện mô phỏng: (Functional Simulation)
• Chọn Assignments > Settings – chọn Simulation mode = Functional rồi nhấn OK
Hình 38 Chọn Simulation mode = Functional
• Chọn Processing > Generate Functional Simulation Netlist
• Bắt đầu thực hiện mô phỏng bằng cách chọn Processing > Start Simulation, hoặc nhấn nút
Hình 39 Kết quả mô phỏng
Trang 16TN KTS-Altera DE1 – Bộ môn Điện Tử - ĐHBK Tp HCM
Bước 7 Lập trình cho FPGA trên kit Altera DE1:
• Trên kit DE2 đặt SW19 = RUN (JTAG mode)
• Kết nối USB cáp từ máy tính với USB-Blaster trên kit DE1
• Cấp nguồn cho kit
• Chọn Tools > Programmer Chọn Mode = JTAG Chọn Hardware = USB-Blaster theo như Hình 42
• Chọn Check box Program/Configure
Hình 41 Màn hình programing
Hình 42 Màn hình chọn hardware
• Nhấn nút Start để bắt đầu nạp project vào kit DE1
Bước 8 Thử project vừa thiết kế:
Tiến hành thử project vừa được nạp trên kit DE1
Nếu muốn thay đổi thiết kế trước hết phải tắt màn hình Programmer rồi thực hiện project mới từ bước
2
Trang 17TN KTS-Altera DE1 – Bộ môn Điện Tử - ĐHBK Tp HCM
endmodule Các bước cần thực hiện:
1 Tạo project mới
2 Viết chương trình Verilog cho bài TN
3 Gán chân & biên dịch project
4 Nạp project vào kit TN Thử mạch
Trang 18TN KTS-Altera DE1 – Bộ môn Điện Tử - ĐHBK Tp HCM
1 Tạo project mới
2 Viết chương trình Verilog với:
s = SW9 vànối với LEDR9
X = SW3-0 và nối với LEDR3-0
Y = SW7-4 vànối với LEDR7-4
M = LEDG3-0
3 Gán chân
4 Biên dịch project
5 Nạp project vào kit TN
6 Thử mạch bằng cách thay đổi các công tắc SW rồi theo dõi các đèn LED xanh, đỏ
Trang 19TN KTS-Altera DE1 – Bộ môn Điện Tử - ĐHBK Tp HCM
1 Tạo project mới
2 Viết chương trình Verilog với:
s1 s0 = SW9-8 vànối với LEDR9-8
U-X = SW7-0 và nối với LEDR7-0
M = LEDG1-0
3 Gán chân
4 Biên dịch project
5 Nạp project vào kit TN
6 Thử mạch bằng cách thay đổi các công tắc SW rồi theo dõi các đèn LED xanh, đỏ
Trang 20TN KTS-Altera DE1 – Bộ môn Điện Tử - ĐHBK Tp HCM
1 Tạo project mới
2 Viết chương trình Verilog với:
o Các ngõ vào c1 c0 nối với các công tắc SW1-0
o Các ngõ ra 0 – 6 nối với HEX00, HEX01… HEX06
3 Gán chân
4 Biên dịch project
5 Nạp project vào kit TN
6 Thử mạch bằng cách thay đổi các công tắc SW1−0 rồi quan sát bộ hiển thị 7 đoạn
Trang 21TN KTS-Altera DE1 – Bộ môn Điện Tử - ĐHBK Tp HCM
Thực hiện mạch điện hiển thị “chữ xoay” như hình 7 hoạt động theo bảng 2
Các công tắc SW7−0 dùng để tạo ký tự và SW 9−8 dùng chọn ký tự hiển thị
Hình 7 Mạch có thể chọn & hiển thị 1 trong 4 ký tự
Bảng 2 Hiển thị chữ xoay HELLO
module part5 (SW, HEX0);
input [9:0] SW; // toggle switches
output [0:6] HEX0; // 7-seg displays
wire [1:0] M;
mux 2bit 4to1 M0 (SW[9:8], SW[7:6], SW[5:4], SW[3:2], SW[1:0], M);
char 7seg H0 (M, HEX0);
endmodule
// implements a 2-bit wide 4-to-1 multiplexer
module mux 2bit 4to1 (S, U, V, W, X, M);
input [1:0] S, U, V, W, X;
output [1:0] M;
code not shown
endmodule
// implements a 7-segment decoder for H, E, L and O
module char 7seg (C, Display);
input [1:0] C; // input code
output [0:6] Display; // output 7-seg code
code not shown
Trang 22TN KTS-Altera DE1 – Bộ môn Điện Tử - ĐHBK Tp HCM
Binary value 0000
Decimal 0
digits 0
Numbers & Displays
Đây là bài thí nghiệm thiết kế mạch tổ hợp để thực hiện bộ biến đổi số nhị phân sang số thập phân và mạch cộng hai số BCD
1 Thí nghiệm 2.1:
Dùng các đèn 7 đoạn HEX1 và HEX0 để hiển thị các số thập phân từ 0 đến 9 Giá trị hiển thị thay đổi được bằng các công tắc S W7−4 và S W3−0 tương ứng
• Các bước cần thực hiện:
1 Tạo project mới
2 Viết chương trình Verilog cho bài TN
3 Gán chân & biên dịch project
4 Nạp project vào kit TN Thử mạch bằng cách thay đổi các công tắc và quan sát các đèn hiển thị
2 Thí nghiệm 2.2:
Thực hiện 1 phần của mạch chuyển đổi số nhị phân 4 bit V = v 3 v2 v1 v0 thành số thập phân D = d1 d0 n h ư hình
1, b ả n g 1 Mạch bao gồm mạch so sánh (để kiểm tra V > 9), mạch multiplexer và mạch A (chưa cần thực hiện mạch B và bộ giải mã 7 đoạn) Mạch sẽ có ngõ vào V 4 bit, ngõ ra M 4 bit và ngõ ra z
Bảng 1 Bảng giá trị chuyển đổi nhị phân thập phân
• Các bước cần thực hiện:
1 Tạo project mới Viết chương trình
2 Biên dịch project và thực hiện mô phỏng
3 Viết thêm đoạn chương trình cho mạch B và mạch giải mã 7 đoạn Dùng các công tắc SW3−0 để nhập số nhị phân V và các đèn 7 đoạn HEX1, HEX0 để hiển thị số thập phân d 1 d0
4 Biên dịch lại rồi nạp project vào kit TN
5 Thử mạch: thay đổi giá trị V và quan sát các đèn hiển thị
Trang 23TN KTS-Altera DE1 – Bộ môn Điện Tử - ĐHBK Tp HCM
23
z Comparator
Trang 24TN KTS-Altera DE1 – Bộ môn Điện Tử - ĐHBK Tp HCM
1 Tạo project mới và viết chương trình Verilog cho mạch cộng:
• Nối các ngõ vào A, B và cin với các công tắc tương ứng S W7−4 , SW3−0 và SW8 và với các đèn LED màu đỏ LEDR
• Nối các ngõ ra cout và S với các đèn LED màu xanh LEDG
2 Gán chân, biên dịch và nạp project vào kit TN
3 Thử mạch bằng cách thay đổi các giá trị khác nhau của A, B và c in, quan sát các đèn hiển thị
4 Thí nghiệm 2.4:
Thực hiện mạch cộng 2 số BCD Ngõ vào của mạch là 2 số A, B và ngõ vào cho số nhớ cin Ngõ ra là số BCD tổng S1 S0 và số nhớ cout
• Các bước cần thực hiện:
1 Tạo project mới cho mạch cộng số BCD Phải thực hiện mạch cộng 2 số 4 bit A, B (thí nghiệm 2.3)
và 1 mạch chuyển đổi 5 bit tổng s3s2s1s0co thành 2 số BCD S1 S0 (thí nghiệm 2.2)
2 Viết chương trình Verilog:
• Nối các ngõ vào A, B và cin với các công tắc tương ứng S W7−4 , SW3−0 và SW8 và với các đèn LED màu đỏ LEDR7−0
• Nối các ngõ ra cout và S với các đèn LED màu xanh LEDG4−0
• Dùng các đèn 7 đoạn HEX3, HEX2 để hiển thị giá trị của 2 số A và B và HEX1, HEX0 để hiển thị kết quả S1 S0
3 Gán chân, biên dịch và nạp project vào kit TN
4 Thử mạch bằng cách thay đổi các giá trị khác nhau của A, B và c in, quan sát các đèn hiển thị
5 Thí nghiệm 2.5:
Thiết kế mạch tổ hợp chuyển đổi 1 số nhị phân 6 bit thành số thập phân dưới dạng 2 số BCD Dùng các công tắc
S W5−0 để nhập số nhị phân và các đèn 7 đoạn HEX1 và HEX0 để hiển thị số thập phân
Trang 25TN KTS-Altera DE1 – Bộ môn Điện Tử - ĐHBK Tp HCM
25
Bài thí nghiệm 3
Latches, Flip-flops, Registers
1 Thí nghiệm 3.1:
Hình 1 mô tả mạch RS latch dùng cổng logic
C ó 2 cách dùng Verilog để mô tả mạch này: dùng cổng logic (hình 2a) và dùng công thức logic (hình 2b)
// A gated RS latch module part1 (Clk, R, S, Q);
Trang 26TN KTS-Altera DE1 – Bộ môn Điện Tử - ĐHBK Tp HCM
Có 2 cách thực hìện: dùng 1 LUT 4 ngõ vào (hình 3a) và dùng 4 LUT 2 ngõ vào (hình 3b)
R Clk
1 Tạo project RS latch
2 Viết chương trình Verilog theo hai cách 2a và 2b
3 Biên dịch Dùng tiện ích RTL Viewer để so sánh với sơ đồ mạch hình 1 Dùng tiện ích Technology Viewer để so sánh với sơ đồ mạch hình 3b
4 Tạo Vector Waveform File (.vwf) cho các ngõ vào/ra Tạo dạng sóng cho các ngõ vào R và S rổi dùng tiện ích Quartus II Simulator để quan sát các dạng sóng R_g, S_g, Qa và Qb
Trang 27TN KTS-Altera DE1 – Bộ môn Điện Tử - ĐHBK Tp HCM
1 Tạo project mới với chương trình Verilog dạng 2b cho mạch D latch
2 Biên dịch chương trình Dùng tiện ích Technology Viewer để khảo sát mạch
3 Mô phỏng để kiểm tra hoạt động của mạch
4 Dùng công tắc SW0 cho ngõ vào D, và SW1 cho ngõ vào Clk Nối ngõ ra Q đến LEDR 0
5 Biên dịch chương trình lại và nạp project vào kit TN
6 Thử mạch bằng cách thay đổi các ngõ vào D, Clk và quan sát ngõ ra Q
Trang 28TN KTS-Altera DE1 – Bộ môn Điện Tử - ĐHBK Tp HCM
1 Tạo project mới dùng 2 D flip-flop của thí nghiệm 3.2
2 Dùng công tắc SW 0 cho ngõ vào D, và SW 1 cho ngõ vào Clk Nối ngõ ra Q đến LEDR 0
3 Biên dịch chương trình
4 Dùng tiện ích Technology Viewer để khảo sát mạch Mô phỏng để kiểm tra hoạt động của mạch
5 Thử mạch bằng cách thay đổi các ngõ vào D, Clk và quan sát ngõ ra Q
4 Thí nghiệm 3.4:
Cho mạch điện hình 6 với D latch, D flip- flop kíck cạnh lên và D flip- flop kíck cạnh xuống
Trang 29TN KTS-Altera DE1 – Bộ môn Điện Tử - ĐHBK Tp HCM
(b) Giản dồ thời gian
Hình 6 Sơ đồ mạch và dạng sóng của thí nghiệm 3.4
• Các bước cần thực hiện:
1 Tạo project mới
2 Viết chương trình dựa trên đoạn chương trình gợi ý như hình 7
3 Biên dịch chương trình
4 Dùng tiện ích Technology Viewer để khảo sát mạch
5 Mô phỏng để kiểm tra hoạt động của mạch So sánh hoạt động của các phần tử trong mạch
Trang 30TN KTS-Altera DE1 – Bộ môn Điện Tử - ĐHBK Tp HCM
1 Tạo project mới thực hiện bộ đếm 16 bit dùng 4 mạch đếm như hình 1 Biên dịch chương trình Ghi nhận
số phần tử logic (LEs) đã được dùng? Tần số hoạt động tối đa (Fmax) của mạch đếm là bao nhiêu?
2 Mô phỏng hoạt động của mạch
3 Gán thêm nút nhấn KEY0làm ngõ vào Clock, các công tắc SW1, SW0 làm ngõ vào Enable, Reset và các đèn 7 đoạn HEX3-0 để hiển thị giá trị thập lục phân của ngõ ra mạch đếm
4 Biên dịch lại và nạp project vào kit TN
5 Thử hoạt động của mạch bằng cách thay đổi các công tắc và quan sát các đèn 7 đoạn
6 Thực hiện mạch đếm 4 bit rồi dùng tiện ích RTL Viewer quan sát mạch và so sánh với mạch điện hình 1
2 Thí nghiệm 4.2:
Thực hiện lại thí nghiệm 4.1 dùng mã Verilog sau:
Q <= Q + 1;
Biên dịch chương trình
So sánh số phần tử logic (LEs) đã được dùng, tần số hoạt động tối đa (Fmax) của mạch đếm
Dùng RTL Viewer để khảo sát và nhận xét những khác biệt so với thí nghiệm 4.1
Trang 31Thực hiện mạch đồng hồ đếm giây từ 0 đến 9s hiển thị trên đèn 7 đoạn HEX 0
Phải thực hiện 1 mạch đếm để tạo thời gian 1s từ xung clock 50 MHz có sẵn trên kit TN