ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ ---------------o0o--------------- ĐỒ ÁN 1 THIẾT KẾ GIAO TIẾP CAMERA VÀ HIỂN THỊ MÀN HÌNH VGA TRÊN KIT DE10 GVHD: PGS. TS Trương Quang Vinh SVTH: Tiêu Tuấn Đạt MSSV: 2012950 TP. HỒ CHÍ MINH, THÁNG 05 NĂM 2023 Lời cảm ơn GVHD: PGS.TS Trương Quang Vinh LỜI CẢM ƠN Đầu tiên, em xin được gửi lời cám ơn chân thành nhất đến Thầy hướng dẫn Môn học Đồ Án 1, PGS TS.
Trương Quang Vinh. Thầy đã là người định hướng, gợi ý về một đề tài, có tính chất nghiên cứu nhằm nâng cao kiến thức tiếp cận với kỹ thuật hiện đại. Trong thời gian thực hiện đồ án, Thầy đã truyền đạt kiến thức cũng như kinh nghiệm và những lời khuyên quý báu giúp em có thể hiểu rõ hơn và giải quyết vấn đề tốt hơn. Nhờ sự chỉ bảo của Thầy, Em đã hoàn thành môn học đồ án 1 cũng như nắm được cách thức thực hiện một đề tài kỹ thuật liên quan đến hệ thống SoC FPGA và đây sẽ là hành trang quý giá cho thực hiện luận văn cũng như con đường phát triển sau này.
Em cũng xin gửi lời cám ơn đến quý Thầy Cô Giảng viên trường Đại học Bách Khoa – Đại học Quốc gia Thành phố Hồ Chí Minh, cũng như quý Thầy, Cô là Giảng viên khoa Điện – Điện tử đã tận tình truyền đạt cho em nhiều kiến thức quý báu. Bên cạnh đó, em xin gửi lời cám ơn chân thành các thành viên của IC Design Lab đã nhiệt tình hỗ trợ, giúp đỡ trong quá trình thực hiện môn học đồ án 1. Em đã cố gắng trình bày rõ ràng các kiến thức tìm hiểu, nghiên cứu trong môn đồ án 1 này xong không thể tránh khỏi những sai sót và hạn chế. Em rất mong nhận được sự góp ý, chỉ bảo từ quý Thầy, Cô.
Hồ Chí Minh, ngày 25 tháng 05 năm 2023. Sinh viên TIÊU TUẤN ĐẠT i Đồ án 1 GVHD: PGS.TS Trương Quang Vinh MỤC LỤC I. Nhiệm vụ đề tài. Tìm hiểu về dòng KIT SoC FPCA – DE10 Standard.
Tổng quan về FPGA. Tổng quan về SoC. Tổng quan Kit DE10-standard. Tìm hiểu về Qsys và project GHDR từ Intel.
Thành phần Qsys là gì?. Tìm hiểu về giải thuật Haar Cascade. Haar Cascade là gì?. Đặc trưng giải thuật Haar Cascade.
Hoạt động của giải thuật Haar Cascade. THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG. Yêu cầu thiết kế. Phân tích thiết kế.
Thực hiện phần cứng. THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM (NẾU CÓ). Yêu cầu thiết kế. Thiết kế phần mềm.
KẾT QUẢ THỰC HIỆN. Khởi tạo hệ thống SoC. 37 ii Đồ án 1 GVHD: PGS.TS Trương Quang Vinh 1. Khởi tạo môi trường linux trên board.
Thiết lập kết nối máy tính với board. Vận hành hệ thống SoC. Vận hành phần cứng. Vận hành phần mềm.
Đảm bảo đầy đủ các file cần thiết. Thư viện OpenCV. Biên dịch phần mềm. Thực hiện Demo.
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN. Hướng phát triển. TÀI LIỆU THAM KHẢO. 52 iii Đồ án 1 GVHD: PGS.TS Trương Quang Vinh DANH SÁCH HÌNH MINH HỌA Hình 1.
Các thành phần board DE10 Standard. Hình ảnh mặt trước kit DE10. Hình ảnh mặt sau Kit DE10. Sơ đồ khối Kit DE10.
Avalon MM slave. Avalon MM master. Altera DE-series board. Hình ảnh mô tả cấu trúc GHRD cung cấp từ terrasic.
Ba loại bộ lọc theo hình chữ nhật. Nhận diện khuôn mặt bằng ba loại bộ lọc. Quy trình hoạt động giải thuật Haar Cascade. Thành Phần IP sử dụng trong hệ thống Qsys cấu hình thêm VGA vào project GHRD.
Các kết nối của project GHRD trong Qsys. Sau khi generate file. Nội dung script tạo header cho HPS trong Qsys. Quá trình chạy script.
Sau khi generate file header. Nội dung file hps_0. Quá trình biên dịch hệ thống FPGA. Quá trình biên dịch hệ thống FPGA.
32 iv Đồ án 1 GVHD: PGS.TS Trương Quang Vinh Hình 25. Quá trình biên dịch hệ thống FPGA .sof được tạo sau quá trình biên dịc. Lưu đồ phần mềm nhận diện khuôn mặt thực hiện trên vi xử lý ARM. Phần mềm format thẻ nhớ.
Các bước khởi tạo môi trường Linux. Các bước khởi tạo môi trường Linux. Các bước thiết lập kết nối máy tính tới board. Các bước thiết lập kết nối máy tính tới board.
Các bước thiết lập kết nối máy tính tới board. Các bước thiết lập kết nối máy tính tới board. Các bước thiết lập kết nối máy tính tới board. Các bước thiết lập kết nối máy tính tới board.
Các bước thiết lập kết nối máy tính tới board. Các bước thiết lập kết nối máy tính tới board. Vị trí của script tạo file. Nội dung của script tạo file.
Quá trình chạy script tạo file .rbf sau khi được tạo .dtb sau khi tạo. Phân vùng boot trên thẻ nhớ. Kết nối trên board. Các bước nạp phần cứng lên board.
Các bước nạp phần cứng lên board. Các bước nạp phần cứng lên board. Các bước nạp phần cứng lên board. Các bước vận hành phần mềm trong hệ thống SoC.
Nội dung file Makefile .TS Trương Quang Vinh Hình 52. Include thư viện OpenCV. Version của OpenCV. Thư mục chứa thư viện của OpenCV.
Các bước vận hành phần mềm trong hệ thống SoC. Các bước vận hành phần mềm trong hệ thống SoC. Quá trình thực hiện demo. Các bước vận hành phần mềm trong hệ thống SoC.
Kết quả quá trình thực hiện demo. 50 vi Đồ án 1 GVHD: PGS.TS Trương Quang Vinh DANH SÁCH BẢNG SỐ LIỆU Bảng 1. Các tín hiệu có trong Avalon MM slave. Các tín hiệu có trong Avalon MM master.
Tài nguyên hệ thống FPGA tiêu tốn. 32 vii Đồ án 1 GVHD: PGS.TS Trương Quang Vinh DANH MỤC BIẾT TẮT KÍ HIỆU TỪ VIẾT TẮT ALM Adaptive Logic Module ASIC Application-specific integrated circuit CLBs Configurable Logic Blocks EDS Embedded Development Suite FPGA Field Programmable Gate Array FPS Frames per second GHRD Golden Hardware Reference Design HPS Hard Processor System IDE Integrated Development Environment ILC Interrupt Latency Counter IP Intellectual Property PLLs Phase-locked loop SoC System on Chip Sram Static random-access memory VHDL Very High-Speed Integrated Circuit Hardware Description Language viii Đồ án 1 GVHD: PGS.TS Trương Quang Vinh I. Tổng quan Ngày náy công nghệ đang ngày càng phát triển và những công nghệ xử lý ảnh đã và đang trở thành một ứng dụng kỹ thuật hữu dụng và được sử dụng rộng rãi. Ứng dụng xử lý ảnh được thực hiện trên nhiều dòng kit khác nhau và FPGA là một trong các dòng kit đó.
FPGA có độ linh động cao trong quá trình thiết kế cho phép tái cấu. trúc thiết kế giải quyết lớp những bài toán phức tạp mà trước kia chỉ nhờ phần mềm máy tính. FPGA có thể được lập trình để thực hiện các chức năng xử lý ảnh khác nhau như lọc ảnh, phân tích hình ảnh và nhận dạng hình ảnh. FPGA có thể được sử dụng để xử lý ảnh vì chúng có thể được lập trình để thực hiện các chức năng xử lý ảnh khác nhau và có thể được cấu hình để phù hợp với các yêu cầu cụ thể của một ứng dụng xử lý ảnh.
Ngoài ra, nhờ mật độ cổng logic lớn FPGA được ứng dụng nhiều trong các lĩnh vực: xử lý tín hiệu số DSP, các hệ thống hàng không, vũ trụ, quốc phòng, tiền thiết kế mẫu ASIC (ASIC prototyping), các hệ thống điều khiển trực quan, phân tích nhận dạng hình ảnh, mô hình phần cứng máy tính, … Với mục đích hướng tới có thể thực hiện các ứng dụng xử lý ảnh trên nền tảng phần cứng em đã lựa chọn Kit DE10 standard (dòng kit SoC – FPGA của intel) để tìm hiểu. Đặc biệt với dòng kit này cung cấp công cụ Qsys, công cụ hữu ích giúp người dùng có thể xây dựng mô hình hệ thống phần cứng từ các thành phần có sẵn hoặc tạo mới. Và trong đề tài đồ án này em tiến hành nghiên cứu cách sử dụng kit DE10 và tìm hiểu cách xây dưng một hệ thống Qsys dựa mô hình tham chiếu của Intel Golden Hardware Reference Design (GHRD), sau đó dùng hệ thống này thực hiện ứng dụng nhận diện khuôn mặt để kiểm tra hệ thống Qsys đã xây dựng. Nhiệm vụ đề tài Với mục đích hướng đến việc hiển thị hình ảnh từ camera lên màn hình thông qua cổng VGA cần xây dựng hệ thống Qsys phát hiện khuôn mặt trên Kit DE10 thì đề tài đồ án cần thực hiện các nhiệm vụ sau đây: Nội dung 1: Tìm hiểu về dòng Kit Soc FPGA - DE10 standard Nội dung 2: Tìm hiểu về Qsys và project GHDR từ Intel Nội dung 3: Tìm hiểu về giải thuật Haar Cascade sử dụng trong OpenCV 1 Đồ án 1 GVHD: PGS.TS Trương Quang Vinh Nội dung 4: Thực hiện thiết kế phần cứng hệ thống Qsys trên kit DE10 dựa trên nền tảng mô hình tham chiếu của Intel Golden Hardware Reference Design (GHRD) Nội dung 5: Thực hiện thiết kế hiện thực hệ thống SoC, thực hiện demo trên kit phần mềm xử lý nhận diện khuôn mặt dựa trên giải thuật Haar Cascade Nội dung 6: Hiện thực hệ thống SoC, thực hiện demo trên kit 2 Đồ án 1 GVHD: PGS.TS Trương Quang Vinh II.
Tìm hiểu về dòng KIT SoC FPCA – DE10 Standard 1. Tổng quan về FPGA 2. Giới thiệu về FPGA FPGA là viết tắt của Field Programmable Gate Array, có nghĩa là mảng cổng logic có thể lập trình trên mạch. FPGA là một loại vi mạch bán dẫn, trong đó phần lớn chức năng bên trong thiết bị có thể được thay đổi; có thể được thay đổi bởi kỹ sư thiết kế, thay đổi trong quá trình lắp ráp PCB, hoặc thậm chí thay đổi sau khi sản phẩm được triển khai.
Những thay đổi được tạo ra bằng cách thay đổi các tín hiệu điện vào và ra được nhận, các cổng logic và flipflop được thực hiện, và cách kết nối các cổng với nhau. Một FPGA được tạo thành từ một lưới các logic có thể cấu hình, được gọi là module logic thích ứng (ALM), và các khối chuyên biệt, như khối xử lý tín hiệu số (DSP) và khối bộ nhớ truy cập ngẫu nhiên (RAM). Các khối lập trình này được kết hợp thông qua các liên kết định tuyến có thể cấu hình để thực hiện các mạch số hoàn chỉnh. Bộ nhớ tĩnh đầu tiên dựa trên FPGA (thường được gọi là SRAM trên nền FPGA) được đề xuất bởi Wahlstrom vào năm 1967.
Sau đó bản thương mại của FPGA được Xilinx giới thiệu vào năm 1984.