Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 169 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
169
Dung lượng
4,05 MB
Nội dung
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN – ĐIỆN TỬ BỘ MƠN KỸ THUẬT ĐIỆN TỬ oOo— TÀI LIỆU THÍ NGHIỆM KỸ THUẬT SỐ MỤC LỤC LỜI NÓI ĐẦU LAB 1: CÁC CỔNG LOGIC VÀ IC CHỨC NĂNG CƠ BẢN A PRELAB I HƯỚNG DẪN CƠ BẢN VỀ BREADBOARD II CÂU HỎI CHUẨN BỊ: B HƯỚNG DẪN THÍ NGHIỆM: I MỤC TIÊU II CHUẨN BỊ III HƯỚNG DẪN THÍ NGHIỆM LAB 2: THỰC HIỆN CÁC IC CHỨC NĂNG CƠ BẢN TRÊN FPGA A PRELAB I MỤC TIÊU II CHUẨN BỊ B HƯỚNG DẪN THÍ NGHIỆM: I MỤC TIÊU II CHUẨN BỊ III HƯỚNG DẪN THÍ NGHIỆM LAB 3: THIẾT KẾ HỆ TỔ HỢP A PRELAB B HƯỚNG DẪN THÍ NGHIỆM: I MỤC TIÊU II CHUẨN BỊ III HƯỚNG DẪN THÍ NGHIỆM: LAB 4: 35 THIẾT KẾ HỆ TUẦN TỰ 64 THỰC HIỆN HỆ TỔ HỢP VÀ HỆ TUẦN TỰ CƠ BẢN TRÊN FPGA 79 A PRELAB B HƯỚNG DẪN THÍ NGHIỆM Electronics Department Ho Chi Minh City University of Technology, Vietnam I MỤC TIÊU II CHUẨN BỊ: III HƯỚNG DẪN THÍ NGHIỆM LAB 5: BÀI TỔNG HỢP THỰC HIỆN MẠCH SỐ TRÊN BREADBOARD – GIAO TIẾP VỚI FPGA 105 A PRELAB B HƯỚNG DẪN THÍ NGHIỆM I MỤC TIÊU II CHUẨN BỊ: III HƯỚNG DẪN THÍ NGHIỆM PHỤ LỤC 1: WINDOWS HƯỚNG DẪN CÀI ĐẶT QUARTUS VÀ UBUNTU TRONG 134 A HƯỚNG DẪN CÀI ĐẶT UBUNTU TRONG WINDOWS: I Download cài đặt công cụ: II Cài đặt Ubuntu Windows: III Một số lệnh Linux B HƯỚNG DẪN CÀI ĐẶT QUARTUS 13.0SP1 PHỤ LỤC 2: QUY TRÌNH THIẾT KẾ MẠCH SỐ SỬ DỤNG NGƠN NGỮ SYSTEMVERILOG 139 A QUY TRÌNH THIẾT KẾ B VÍ DỤ THIẾT KẾ HỆ TỔ HỢP I Yêu cầu: II Thiết kế: C VÍ DỤ THIẾT KẾ HỆ TUẦN TỰ I Yêu cầu: II Phân tích: III Thiết kế: Electronics Department Ho Chi Minh City University of Technology, Vietnam LỜI NÓI ĐẦU Tài liệu sử dụng mơn Thí nghiệm Kỹ thuật số, giành cho sinh viên khoa Điện – Điện tử, trường Đại học Bách Khoa TPHCM Các thí nghiệm xây dựng theo hướng: - Sử dụng vi mạch (IC) số để thiết kế, thực mạch tổ hợp mạch breadboard - Sử dụng ngôn ngữ mô tả phần cứng (HDL), thiết kế mạch số FPGA Tài liệu gồm thí nghiệm Lab – Các cổng logic IC chức Lab – Thực IC chức FPGA Lab – Thiết kế mạch tổ hợp - Mạch cộng – Thiết kế mạch Lab – Thực mạch tổ hợp mạch FPGA Lab – Bài thiết kế tổng hợp Để làm tốt thí nghiệm, sinh viên PHẢI thực chuẩn bị thí nghiệm (Prelab) trước buo thí nghiệm Electronics Department Ho Chi Minh City University of Technology, Vietnam Lab 1: Các cổng logic IC chức LAB 1: CÁC CỔNG LOGIC VÀ Họ tên: IC CHỨC NĂNG CƠ BẢN Lớp TN: MSSV: Ngày: A PRELAB I HƯỚNG DẪN CƠ BẢN VỀ BREADBOARD Breadboard sản phẩm thiếu trình học tập điện tử, sử dụng để lắp kiểm tra mạch điện tử Hình 1.1: Hình minh họa breadboard Như bạn thấy, breadboard có nhiều lỗ, lỗ cách khoản tiêu chuẩn để thành phần IC, tụ điện, điện trở, LED… lắp vào khớp hoàn tồn Dưới lỗ dải kim loại tiếp xúc với chân linh kiện jumper (dây nối), giúp chân linh kiện, jumper nối với hình thành mạch điện kín mà không cần đến thao tác hàn dây, đồng thời phần tử mạch điện gỡ ra, chỉnh sửa theo mong muốn cách dễ dàng Các dải kim loại kết nối với nhiều chân, cụ thể sau: Electronics Department Ho Chi Minh City University of Technology, Vietnam Lab 1: Các cổng logic IC chức - Các dải nguồn: hai rìa breadboard có hàng kí hiệu +/- kết nối theo hàng ngang Hai dãi sử dụng để phân phối nguồn cho toàn mạch - Các lưới thành phần: phần breadboard kết nối theo hàng dọc theo hình minh họa sau Hình 1.2: Hình minh họa vị trí dải kim loại breadboard ⮚ Một số lưu ý cắm breadboard Để kết nối linh kiện breadboard, ta sử dụng dây dẫn Trong mơn học Thí nghiệm Kĩ Thuật Số cung cấp cho sinh viên dây cắm breadboard chuyên dụng Trong dây gồm có 14 loại dây có kích thước vừa đủ để kết nối lỗ breadboard với (độ dài lỗ, lỗ, lỗ…) Mỗi loại dây gồm 10 sợi Hình 1.3: Bộ dây dẫn chuyên dụng cắm breadboard Electronics Department Ho Chi Minh City University of Technology, Vietnam Lab 1: Các cổng logic IC chức Sinh viên dùng phải ý thao tác, đảm bảo cho dây không bị méo dạng sau sử dụng Trước cắm dây, cần đảm bảo đầu dây phải thẳng Sử dụng kìm kẹp để cắm dây dễ thao tác Lưu ý: Các dây jumper cung cấp cho thí nghiệm có kích thước hình dạng cố định, thí nghiệm khơng tự ý thay đổi kích thước hình dạng dây Trong trường hợp dây jumper bị méo dạng trình tháo, lắp, cần trả hình dạng gốc dây Có thể để hai dây jumper chéo nhau, hạn chế Hình 1.4: Hình minh họa việc cấm dây (dấu X: không cho phép bẻ dây) Khi cắm điện trở, tụ điện, LED, BJT… cắt ngắn chân linh kiện vừa đủ để cắm breadboard Trong trường hợp không cắt ngắn, cần ý không để chân chạm gây chập mạch Khi làm việc với IC, cần đọc datasheet tương ứng IC, nắm vị trí chân IC datasheet tương ứng với thực tế Quan sát IC, có kí hiệu chân số 1, từ vị trí chân số nhìn IC từ xuống, số thứ tự chân IC đánh số theo chiều ngược chiều kim đồng hồ Kí hiệu chân số IC vết kht hình vịng cung, dấu chấm footprint dạng DIP Electronics Department Ho Chi Minh City University of Technology, Vietnam Lab 1: Các cổng logic IC chức Hình 1.5: Xác định chân IC ⮚ Ví dụ mạch cắm bread board Cho mạch điện LED báo nguồn sau Mạch báo nguồn Triển khai mạch breadboard Hình 1.6: Mạch LED báo nguồn ⮚ Hướng dẫn cắm input output Theo lý thuyết, hệ nhị phân, gọi bit (bit dạng rút gọn binary digit) Nhưng mạch số thực tế, hai bit nói biểu diễn hai mức điện áp khác Có hai cách biểu diễn mức logic dương mức logic âm Mức logic dương: biễu diễn mức điện áp cao mà thường gọi MỨC Electronics Department Ho Chi Minh City University of Technology, Vietnam Lab 1: Các cổng logic IC chức CAO (HIGH), biễu diễn mức điện áp thấp mà gọi MỨC THẤP (LOW) Mức logic âm: ngược lại so với mức logic dương Trong Thí nghiệm Kỹ Thuật Số ta dùng mức logic dương để biểu diễn hệ nhị phân suốt q trình học tập Theo lý thuyết, có mức điện áp biểu diễn MỨC CAO (1) điện áp biểu diễn MỨC THẤP (0) Tuy nhiên thực tế, MỨC CAO hiểu điện áp nằm giữ giá trị cực đại cực tiểu Điều tương tự với MỨC THẤP Lấy chuẩn TTL làm ví dụ, MỨC CAO (1) rơi khoảng điện áp đến 5V tín hiệu ngõ vào (Input) 2.7 đến 5V tín hiệu ngõ (Output), MỨC THẤP (0) rơi khoản điện áp đến 0.8V tín hiệu ngõ vào (Input) đến 0.5V tín hiệu ngõ (Output) Khi mức điện áp ngõ vào nằm giữ MỨC THẤP MỨC CAO (từ 0.8V đến 2.7V) dải điện áp không xác định dẫn đến trạng thái không hợp lệ gọi thả (floating) Trong mơn học Thí nghiệm Kỹ Thuật Số, ta sử dụng mức điện áp 5V cho mức cao (1) 0V cho mức thấp (0) Hình 1.7: Sơ đồ khối mạch số Trong Thí nghiệm Kỹ Thuật Số yêu cầu sinh viên thiết kế mạch có ngõ vào, ngõ ra, mối liên hệ ngõ vào ngõ để thực chức Vì cắm mạch breadboard, sinh viên phải cắm đủ phần: ngõ vào (input, dải tín hiệu đầu vào), mạch thiết kế, ngõ (output, dùng để hiển thị kết cách trực quan) Electronics Department Ho Chi Minh City University of Technology, Vietnam Lab 1: Các cổng logic IC chức Phần mạch input, cần thiết kế cho dễ dàng thay đổi mức Ta sử H dụng công tắc (switch) để làm điều này, switch sử dụng loại dip switch: gồm dãy switch độc lập, hình minh họa loại dip switch 10 positions, gồm 10 switch độc lập với đánh số từ đến 10, công tắc tương ứng nằm phía trên, gạt cơng tắc mức ON hai chân tương ứng cơng tắc nối với Có hai cách thiết kế mạch input: cơng tắt ON ngõ vào mức (hình trái) cơng tắt ON ngõ vào mức (hình giữa) sơ đồ nguyên lý sau Trong điện trở có giá trị 10Kohm Theo kinh nghiệm cá nhân, nên thiết kế mạch input hình bên phải ổn định, dễ thao tác Hình 1.9: Kết nối DIP Switch Về phần mạch output, cần thiết kế để quan sát ngõ ra, thông thường hiển thị output LED đơn, bar LED, LED đoạn (đối với mạch đếm) Một số mạch hiển thị output LED đơn Hình bên trái: ngõ mức LED sáng, ngõ mức LED tắt Hình bên phải: ngược lại Các điện trở hạn dịng sử dụng có giá trị 1Kohm Electronics Department Ho Chi Minh City University of Technology, Vietnam Phụ lục 2: Sample lab -> SIMULATING < $ Khơng có lỗi Lặp lại Bước 2, quan sát waveform: make wave $ make wave -> WAVEFORMS < Hình phụ lục 2.4 Kết mơ sau hồn tất bước Verification Bước 5: Hoàn tất Implementation Set Up Bước 1: Tạo file wrapper.sv File wrapper gọi design_1 giống file top.sv, nhiên ngõ vào ngõ lấy từ file sau: https://www.terasic.com.tw/cgi-bin/page/archive.pl?CategoryNo=53&No=30&PartNo=4 (tải file DE2_UserManual_1.6 DE2 Pin Table) Các ngõ vào data0_i, data1_i, sel_i: sử dụng switches để làm input (bảng 4.1 file trên) Gán data0_i SW2, SW1, SW0; data1_i SW5, SW4, SW3; sel_i SW7 SW6 Vậy input khai báo dòng gán dịng 9, 10, 11 Ngõ result_o có bits: sử dụng LED làm output (bảng 4.3 file trên) Chọn LED màu đỏ LEDR 2, 1, Vậy output khai báo dòng gán dòng 12 quartus/wrapper.sv Electronics Department Ho Chi Minh City University of Technology, Vietnam 154 Phụ lục 2: Sample lab 10 11 12 13 14 15 module wrapper ( // input input logic [7:0] SW, // output output logic [2:0] LEDR ); design_1 dut ( data0_i (SW[2:0] ), data1_i (SW[5:3] ), sel_i (SW[7:6] ), result_o(LEDR[2:0]) ); endmodule : wrapper Bước 2: Tạo project Quartus Mở Quartus Chọn File → New Project Wizard a Dẫn tới directory quartus ex01 Hình phụ lục 2.5 Xác định thư mục chứa project Electronics Department Ho Chi Minh City University of Technology, Vietnam 155 Phụ lục 2: Sample lab b Đặt tên project wrapper Vì project thực tế thư mục ex01, nên cần đặt tên tên file nối pin file wrapper.sv Hình phụ lục 2.6 Đặt tên project c Next để tiếp Chọn … để lấy source code a Trỏ tới directory wrapper.sv quartus, chọn hết tất files → Open → Add b Trỏ tới directory chứa source code src, chọn hết tất files → Open → Add c Chọn cột Type SystemVerilog HDL File d Next để tiếp Đối với DE2 a Device family chọn Cyclone II b Available devices chọn EP2C35F672C6 Electronics Department Ho Chi Minh City University of Technology, Vietnam 156 Phụ lục 2: Sample lab c Finish để hồn tất Hình phụ lục 2.7 Chọn kit DE2 Bước 3: Import pin assignment DE2 Chọn Assignments → Import Assignments Chọn … , trỏ tới quartus chọn de2_pin_assign.qsf → Open → OK Bước 4: Compilation Ctrl+L Processing → Start Compilation Electronics Department Ho Chi Minh City University of Technology, Vietnam 157 Phụ lục 2: Sample lab Hình phụ lục 2.8 Kết biên dịch Kiểm tra cửa sổ thông báo khơng có errors → tiến hành nạp lên KIT Thực KIT Kết nối DE2 dây USB cổng Blaster Hình phụ lục 2.9 Kết nối kit DE2 Electronics Department Ho Chi Minh City University of Technology, Vietnam 158 Phụ lục 2: Sample lab Chọn Tools → Programmers Hình phụ lục 2.10 Cửa sổ Programmer Kiểm tra kết nối với KIT: USB-Blaster X, No Hardware, nhấn Hardware Setup chọn USB-Blaster X → Close Hình phụ lục 2.11 Hardware setup Electronics Department Ho Chi Minh City University of Technology, Vietnam 159 Phụ lục 2: Sample lab Chọn Start để tiến hành nạp Ô Progress hiển thị 100% (successful) tức nạp thành cơng Hình phụ lục 2.12 Nạp kit thành cơng C VÍ DỤ THIẾT KẾ HỆ TUẦN TỰ I Yêu cầu: Thiết kế mạch đếm số lần nhấn nút bấm (nếu nút nhấn giữ tính lần nhấn), hiển thị kết lên LED đoạn II Phân tích: Hệ nhận ngõ vào từ nút nhấn (khi nút nhấn, hệ nhận bit 1, ngược lại, hệ nhận bit 0) hiển thị ngõ LED đoạn (ngõ nhỏ 9) Ngoài ra, hệ cịn có ngõ vào clock reset (chọn reset tích cực thấp) Khi nhấn giữ nút nhấn, hệ nhận tín hiệu chu kỳ Mạch gồm đếm, trạng thái đếm tăng thêm nhận tín hiệu ngõ vào Ngồi ra, hệ cần có mạch chuyển mã BCD sang mã LED đoạn, hiển thị trạng thái đếm lên LED đoạn Khối button FSM (Finite State Machine – máy trạng thái) với trạng thái: IDLE (chờ nhận), PRESS (khi nút nhấn cycle đầu), HOLD (trạng thái nhấn giữ nút) Electronics Department Ho Chi Minh City University of Technology, Vietnam 160 Phụ lục 2: Sample lab Hình phụ lục 2.13 Sơ đồ khối hệ Hình phụ lục 2.14 Máy trạng thái khối button III Thiết kế: Tạo Project Source template từ GitHub để sử dụng, đặt tên ex02 gettemplate ex02 Code Tạo file design có tên button.sv Electronics Department Ho Chi Minh City University of Technology, Vietnam 161 Phụ lục 2: Sample lab src/button.sv module button ( // input input logic clk_i, input logic rst_ni, input logic button_i, // output output logic stable_o 10 ); 11 12 // local declaration 13 typedef enum logic [1:0] { 14 IDLE, 15 PRESS, 16 HOLD 17 } state_e; 18 19 state_e state_d; 20 state_e state_q; 21 22 always_comb begin : proc_next_state 23 case (state_q) 24 IDLE: state_d = button_i ? PRESS : IDLE; 25 PRESS: state_d = button_i ? PRESS : IDLE; 26 HOLD: state_d = button_i ? HOLD : IDLE; 27 default: state_d = IDLE; 28 endcase 29 end 30 31 always_ff @(posedge clk_i) begin : proc_state_register 32 if (!rst_ni) 33 state_q