chương 1, nhóm sẽ giới thiệu về tông quang đê tài, lý do chọn dé tài, mục tiêu của dé tài và giới hạn phạm vi nghiên cứu, vạch kê hoạch va mô ta kêt quả mà nhóm mong muôn dat được. Chương 2: Cơ sở lý thuyết Chương 2 nhóm sẽ đi sâu vào cơ sở lý thuyết của đề tài, chủ yếu sẽ tập trung vào luồng xây dựng của hệ thống, mức độ trừu tượng và lý thuyết của 20 khối DPU, cơ chế hoạt động của DPU. Đồng thời nhóm sẽ trình bày những thông tin học thuật dựa vào các nguồn tài liệu nhóm tìm kiếm được trên Internet, tham khảo trên các Website học thuật và của khoa KTMT cũng như góp ý của các thầy cô, anh chị bao gồm: Kiến thức về phần cứng FPGA, SoC, Thuật toán YoloV4, OpenCV, SSH Tunnel, stream hình anh,. Chương 3: Thiết kế hệ thống phan cứng và hiện thực môi trường Smart Camera Run-Time trên board Dựa vào những co sở lý thuyết của chương 2, nhóm đề xuất mô hình thiết kế ở chương 3, đi từ tổng quát đến chỉ tiết hóa từng phan và giải thích nguyên lý hoạt động của hệ thống nhóm xây dựng về mặt Hardware và OS, Firmware.
Chương 4: Thiết kế phần mềm quảng lý luồng, xây dựng mô hình AI và kiêm soát môi trường trên môi trường Run-Time của Smart Camera Ở chương 4, nhóm nêu ra mô hình thiết kế phần mềm sẽ hoạt động trên phần cứng mà nhóm đã xây dựng ở chương 3, nhóm cũng sẽ dựa vào cơ sở lý thuyết ở chương 2, giải thích nguyên lý hoạt động của hệ thống về mặt Software. Chuong 5: Thwe nghiém va danh gia két qua Sau khi xây dựng toàn bộ hệ thống và liên kết chúng với nhau, nhóm tiến hành bước chạy thử, thực nghiệm dé thu được các kết quả từ mô hình và tiền hành đánh giá, so sánh với mục tiêu nhóm đề ra ban đầu cũng như so sánh kết quả với các đề tài trước. Chương 6: Kết luận và hướng phát triển Chương 6 sẽ tổng kết lại khóa luận, tóm tắt toàn bộ những công việc mà nhóm đã thực hiện, đồng thời đưa ra những kết quả và thành tích đã đạt được từ mô hình nhóm đã xây dựng. Nhóm cũng sẽ đề xuất phương án và định hướng phát triển tiếp theo trong tương lai.
Field Programmable Gate Array (FPGA) 2. Dinh nghia Field Programmable Gate Array (FPGA) là một loại thiết bị logic lập trình được sử dụng dé xây dựng các mach logic kỹ thuật số. Đặc điểm chính của FPGA là khả năng lập trình lại chức năng và kết nối của các thành phần logic bên trong nó sau khi đã được sản xuất. FPGA bao gồm một lưới các ô lặp trị logic và các phan tử logic (như công AND, OR, NOT) được kết nối lại theo ý muốn của người lập trình.
FPGA được cấu thành từ các bộ phận: - Cac khối logic có thê tái lập trình (logic block) - Cac thành phan thiết kế có sẵn như ROM, RAM, core vi xử lý, DSP slice,. - Hé thống mach liên kết có thé tai lập trình - Khối các /O FPGA cũng thường được xem như một ASIC (vi mạch bán dẫn), nhưng nếu so sánh với các ASIC nói chung, FPGA không có khả năng vượt qua ASIC về sự tối ưu, về hiệu suất lẫn tài nguyên, ngoài ra FPGA còn thua kém trong việc thực hiện những công việc phức tạp và mang tính đặc thù [9]. Tuy nhiên FPGA vượt trội hơn bởi vì nó có khả năng tái thiết lập, cấu trúc và lập trình lại trong lúc nó đang được sử dụng, công đoạn thiết kế một mạch bằng FPGA đơn giản hơn nhiều so với việc thiết kế ASIC, do vậy chi phí sản suất ít hơn, thời gian đưa sản phẩm vào thực tế nhờ đó mà cũng được rút ngắn lại. Người ta thường xây dựng và lập trình FPGA băng các ngôn ngữ đặc tả phan cứng HDL như AHDL,Verilog, VHDL.
Những tập đoàn sản xuất FPGA lớn như Altera, Xilinx (ARM) sẽ cung cấp một số công cu software va thiết bi hỗ trợ cho quá trình xây dựng một bản thiết kế khi sử dụng sản phẩm của họ. Ngoài ra toàn bộ quy trình thiết kế IC chuẩn với đầu vào là các đoạn 22 code HDL (còn gọi là RTL), người ta sẽ sử dụng các công cụ phần mềm tương tự như Cadence, Synopsys, Synplify,. được cung cấp bởi những công ty thuộc bên thứ ba, chúng không hạn chế khả năng thực hiện các công việc này. Kiến trúc tổng quát Kiến trúc tổng quát của FPGA bao gồm các khối logic có thể lập trình, các kết nối linh hoạt và khả năng tái cấu hình, cung cấp cho người dùng nền tang linh hoạt dé triển khai các hệ thống số tùy chỉnh và hiệu qua cao.
Kiến trúc tổng quát của FPGA bao gồm các thành phần chính sau: Logic Blocks (LBs): Các khối logic là một trong những thành phần chính của FPGA, được sắp xếp thành các mảng trên chip. Mỗi khối logic bao gồm một số lượng công logic, flip-flops và các thành phần logic khác như multiplexers hoặc look-up tables (LUTs). Các LBs này có khả năng tai lập trình phục vụ cho việc xử lý logic đa dạng. Interconnects: Interconnects là các đường kết nói trên chip cho phép các khối logic giao tiếp với nhau.
Chúng cung cấp đường dẫn cho tín hiệu giữa các LBs và các phần khác của FPGA. Interconnects chúng thường linh hoạt do được thiệt kê cho việc kết nôi các khôi logic theo nhiêu cách khác nhau. VO Blocks (IOBs): các thiết bị ngoại vi như cảm biến, bộ nhớ hoặc vi điều khiển được kết nối với FPGA thông qua các khối IOBs. Chúng cung cấp các chan I/O dé giao tiếp với thé giới bên ngoài của FPGA.
Configurable Switch Matrix: cho phép người lập trình kết nối các LBs và IOBs theo cách tùy chỉnh. Switch matrix cung cấp khả năng lập trình lại cau trúc kết nói trên FPGA, cho phép tùy chỉnh linh hoạt của chip dé phù hợp với yêu câu cụ thê của ứng dụng. Configuration Memory: Configuration memory chứa các bitstream hoặc file cấu hình, được dùng để cấu trúc cho các thành phần trong FPGA. Khi 23 FPGA được khởi động, bitstream này sẽ được tải vào chip, cấu hình các LBs, interconnects và IOBs theo cach mà người lập trình đã định nghĩa.
L] Logic block GPIO bank Programmable Programmable logic block interconnect Sau nay, các kiến tric FPGA đã được người ta phát triển nhiều hon thông qua việc bổ sung các thành phần chức năng chuyên dụng có thê tái lập trình như DSP-48, logic ALU, Block RAMs, bộ nhân hoặc họ cũng có thé thêm bộ vi xử lý nhúng vào các thiết bị FPGA này do nhu cầu từ các ứng dụng và những người sử dung. Vì thế nhiều FPGA hiện nay có nhiều biến thé hơn so với các FPGA trước kia. Ưu nhược điểm của FPGA Ưu điểm: Linht hoạt và Đa dụng: các mạch logic có thê được cấu hình theo nhu cầu của ứng dụng mà không cần người dùng thiết kế lại. Điều này làm cho chúng rất linh hoạt và đa dụng.
Hiệu suất cao: FPGA có thê cung cấp hiệu suất tính toán cao, dành cho các ứng dụng có nhu câu xử lý song song cao. 24 Tiết kiệm thời gian và Chi phí: Việc sử dụng FPGA có thê tiết kiệm thời gian và chi phí đáng ké so với việc phát triển một ASIC (Application- Specific Integrated Circuit) tùy chỉnh, đặc biệt là trong các dự án cần thử nghiệm nhanh chóng hoặc nhu cau về số lượng sản phẩm ít. Câp nhật phần mềm dễ dàng: Khi cần thay đổi chức năng của hệ thống, người dùng có thê dễ dàng cập nhật thiết kế trên FPGA thông qua việc tải lại bitstream mới, mà không cần phải thay đổi phan cứng. Nhược điểm: Độ trễ và Tốc độ: So với một số giải pháp phần cứng khác như ASICs, FPGA thường có độ trễ và tốc độ xử lý thấp hơn.
Điều này có thể làm giảm hiệu suất trong các ứng dụng yêu cầu xử lý cực kỳ nhanh. Tiêu thụ năng lượng cao: FPGA thường tiêu thụ năng lượng khá lớn so với một số giải pháp khác, đặc biệt là khi hoạt động ở tần số cao hoặc khi sử dụng toàn bộ tài nguyên cua chip. Độ phức tạp cao: Việc thiết kế và lập trình FPGA có thé đòi hỏi kiến thức chuyên sâu vê phan cứng và phân mém, và đôi khi cân phải vượt qua một thời gian học tập và thử nghiệm đáng kể. Giá thành: Trong một số trường hợp, giá thành của FPGA có thể cao hơn so với việc phát triển một ASIC tùy chỉnh, đặc biệt là khi sản lượng tăng lên và chi phí phát triển ban đầu đã được trả.
Mặc dù có nhược điểm nhất định, FPGA vẫn là một công cụ mạnh mẽ và linh hoạt trong nhiều ứng dụng điện tử, máy tính và trí tuệ nhân tạo. System on Chip (SoC) 2. Dinh nghĩa SoC SoC là viết tắt của "System-on-Chip" (Hệ thống trên một chip). Đây là một kiểu thiết kế vi mạch tích hợp trên một chip duy nhất, kết hợp nhiều thành 25 phần chức năng khác nhau của hệ thống điện tử vào một chip duy nhất.
Các thành phần này có thê bao gồm bộ xử lý trung tâm (CPU), bộ nhớ, các bộ điều khiến, các khối logic tùy chỉnh, các chuẩn giao tiếp như USB, Ethernet, và các thành phần khác như DSP (Digital Signal Processor), GPU (Graphic Processing Unit), và các thành phan phan cứng khác. SoC thường được sử dụng trong máy tính nhúng, thiết bị thông minh, các thiết bị đi động, và các hệ thống nhúng khác. Sự tích hợp trên một chip giúp giảm chi phí sản xuất, kích thước, và tiêu thụ điện năng, đồng thời cũng tạo điều kiện thuận lợi cho việc phát triển và tích hợp các ứng dụng đặc thù và phức tạp trên cùng một nền tảng phần cứng. Kiến trúc tổng quát của SoC kiến trúc tổng quát của một SoC bao gồm sự tích hợp của các thành phần xử lý, bộ nhớ, giao tiếp và điều khiển trên một chip duy nhất, tạo ra một nền tảng phần cứng linh hoạt và hiệu quả cho nhiều ứng dụng điện tử.
Bộ xử lý trung tâm (CPU): Đây là một trong những thành phan không thé thiếu của SoC. CPU thường được tích hợp trên chip và thực hiện vai trò xử lý trung tâm của hệ thông, gồm việc thực hiện lệnh, kiểm soát bộ nhớ và tương tác với các thành phần ngoại vi trên chip. Một SoC có thé có một hoặc nhiều core CPU. Ví dụ như: - Core CPU ARM ding tập lệnh ARM và đến từ công ty ARM.
- RISC-V là các core CPU phát triển dựa trên mã nguồn mở RISC-V. - _ Là sản phẩm của công ty Renesas, SH (SuperH) dùng tập lệnh RISC được triển bởi Hitachi.