Đồ án HCMUTE: Xây dựng hệ thống SoC công suất thấp trên FPGA với ứng dụng trò chơi ping pong

Khám phá đồ án HCMUTE về hệ thống SoC công suất thấp trên FPGA và ứng dụng trong trò chơi ping pong, mang lại giải pháp sáng tạo và hiệu quả.

Người đăng

Ẩn danh

Thể loại

Đồ Án Tốt Nghiệp

2016

62
12
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

TÓM TẮT LUẬN VĂN

1. CHƯƠNG 1: GIỚI THIỆU

1.1. GIỚI THIỆU

1.2. SƠ ĐỒ HỆ THỐNG

1.3. PHẠM VI ÁP DỤNG

2. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.1. TỔNG QUAN VỀ HỆ THỐNG NHÚNG TRÊN FPGA

2.2. Phần cứng kit FPGA Altera DE2-115

2.3. NGÔN NGỮ MÔ TẢ PHẦN CỨNG VERILOG VÀ HỆ THỐNG SOC

2.3.1. Ngôn ngữ mô tả phần cứng Verilog

2.3.2. Hệ thống System on Chip (SoC)

2.4. PHƯƠNG PHÁP GIẢM NĂNG LƯỢNG CLOCK GATING

2.4.1. Tiết kiệm năng lượng trong thiết kế ASIC

2.4.2. Giải pháp tiết kiệm năng lượng clock gating

2.5. GIỚI THIỆU CÁC PHẦN MỀM HỖ TRỢ

2.5.1. Quartus II

2.5.2. Nios II Embedded Design Suite

3. CHƯƠNG 3: XÂY DỰNG HỆ THỐNG

4. CHƯƠNG 4: KẾT QUẢ THỰC HIỆN

4.1. KẾT QUẢ XÂY DỰNG HỆ THỐNG

4.2. KẾT QUẢ KHI DÙNG CLOCK GATING CHO HỆ THỐNG

5. CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

5.1. KẾT LUẬN

5.2. HƯỚNG PHÁT TRIỂN ĐỀ TÀI

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tổng quan về hệ thống SoC công suất thấp trên FPGA

Đề tài tập trung vào thiết kế và triển khai một Hệ thống SoC công suất thấp trên nền tảng FPGA, cụ thể là board Altera DE2-115. Mục tiêu chính là giảm thiểu tiêu thụ năng lượng đồng thời tích hợp các chức năng cần thiết cho ứng dụng trò chơi Ping Pong. Thiết kế SoC bao gồm việc lựa chọn và kết nối các thành phần phần cứng như bộ vi xử lý Nios II, bộ nhớ (SDRAM, SRAM), giao diện điều khiển màn hình LCD, bàn phím PS/2, loa, và thẻ nhớ SD. Việc sử dụng FPGA cho phép linh hoạt trong thiết kế và dễ dàng tích hợp các module khác nhau. Ứng dụng FPGA trong hệ thống này mang lại hiệu quả cao về tốc độ xử lý và khả năng tùy biến. Kiến trúc SoC được tối ưu hóa để giảm tiêu thụ năng lượng, bao gồm kỹ thuật Quản lý năng lượng SoCTối ưu hóa năng lượng FPGA. Giảm tiêu thụ điện năng đạt được nhờ việc ứng dụng kỹ thuật Clock Gating, tắt xung clock cho các thành phần không hoạt động. Hiệu quả năng lượng là yếu tố quan trọng được đánh giá trong quá trình thực hiện.

1.1. Lựa chọn FPGA và công cụ thiết kế

Đề tài sử dụng board FPGA Altera DE2-115, tích hợp chip Cyclone IV EP4CE115F29. Altera cung cấp môi trường phát triển Quartus IINios II Embedded Design Suite hỗ trợ thiết kế, tổng hợp và lập trình. Verilog được chọn làm ngôn ngữ mô tả phần cứng, phù hợp với thiết kế mạch số phức tạp. Quartus II được sử dụng cho quá trình tổng hợp và lập trình FPGA. Nios II EDS cung cấp môi trường phát triển phần mềm nhúng cho bộ vi xử lý Nios II. Xilinx, một nhà sản xuất FPGA khác, có thể được xem xét trong các nghiên cứu tương lai. Việc lựa chọn các công cụ này dựa trên sự phổ biến, khả năng hỗ trợ và hiệu quả trong thiết kế hệ thống nhúng. Môi trường phát triển được lựa chọn đảm bảo cho việc triển khai thành công đề tài.

1.2. Thiết kế phần cứng và phần mềm

Thiết kế phần cứng tập trung vào việc xây dựng Hệ thống nhúng trên FPGA. Sơ đồ hệ thống bao gồm các module giao tiếp với các thiết bị ngoại vi như bàn phím PS/2, màn hình LCD, loa và thẻ nhớ SD. Thiết kế module giao tiếp được thực hiện bằng Verilog. Phát triển phần cứng gồm thiết kế module điều khiển các thiết bị ngoại vi và thiết kế SoC tổng thể. Phần mềm nhúng được phát triển bằng ngôn ngữ C sử dụng Nios II EDS. Phát triển phần mềm bao gồm việc viết chương trình điều khiển trò chơi Ping Pong, xử lý âm thanh và quản lý dữ liệu trên thẻ nhớ SD. Phần mềm nhúng tương tác trực tiếp với phần cứng thông qua các driver được viết riêng. Phát triển phần mềm nhúng đòi hỏi sự hiểu biết sâu sắc về kiến trúc phần cứng và hệ điều hành Nios II.

II. Triển khai ứng dụng trò chơi Ping Pong

Ứng dụng trò chơi Ping Pong được lựa chọn để minh họa khả năng của hệ thống SoC trên FPGA. Phát triển trò chơi nhúng bao gồm việc thiết kế thuật toán điều khiển trò chơi, hiển thị đồ họa trên màn hình LCD và xử lý đầu vào từ bàn phím PS/2. Thuật toán trò chơi được triển khai bằng ngôn ngữ C. Xử lý tín hiệu đầu vào từ bàn phím và xử lý hình ảnh cho màn hình LCD là các khía cạnh quan trọng. Trò chơi điện tử nhúng này cho phép đánh giá hiệu quả của SoC về khả năng xử lý đa nhiệm và thời gian thực. Trò chơi Ping Pong là một ứng dụng đơn giản, nhưng cung cấp một nền tảng tốt để đánh giá hiệu suất của hệ thống. Việc mở rộng ứng dụng này sang các trò chơi phức tạp hơn là khả thi.

2.1. Thiết kế thuật toán và giao diện người dùng

Thuật toán trò chơi Ping Pong được thiết kế để đơn giản nhưng vẫn đảm bảo tính giải trí. Xử lý tín hiệu từ bàn phím PS/2 giúp người chơi điều khiển cần gạt. Giao diện người dùng được hiển thị trên màn hình LCD, bao gồm vị trí quả bóng, cần gạt và điểm số. Phát triển giao diện người dùng đòi hỏi sự hiểu biết về đồ họa và khả năng lập trình đồ họa nhúng. Thiết kế giao diện phải đảm bảo tốc độ phản hồi nhanh và trực quan. Xử lý hình ảnh được tối ưu để giảm tải cho SoC và tiết kiệm năng lượng. Kiểm tra và xác minh chức năng giao diện người dùng là bước quan trọng trước khi triển khai trên FPGA.

2.2. Tối ưu hóa năng lượng cho ứng dụng

Kỹ thuật Clock Gating được áp dụng để giảm thiểu tiêu thụ năng lượng của hệ thống. Các module không hoạt động sẽ được tắt xung clock để tiết kiệm năng lượng. Quản lý năng lượng được tích hợp vào phần mềm nhúng. Tối ưu hóa năng lượng FPGA được thực hiện thông qua việc phân tích và tối ưu hóa mã nguồn. Giám sát năng lượng trong quá trình chạy ứng dụng giúp đánh giá hiệu quả của các kỹ thuật tối ưu hóa. So sánh hiệu quả của hệ thống có và không sử dụng Clock Gating giúp chứng minh tính hiệu quả của kỹ thuật này. Hiệu quả năng lượng là một trong những mục tiêu chính của đề tài.

III. Kết quả và đánh giá

Kết quả thực nghiệm chứng minh khả năng hoạt động của hệ thống SoC công suất thấp trên FPGA. Kiểm tra và xác minh SoC được thực hiện đầy đủ. Mô phỏng FPGA được sử dụng để kiểm tra chức năng của hệ thống trước khi triển khai trên phần cứng. Kết quả thực hiện cho thấy hệ thống hoạt động ổn định và đáp ứng yêu cầu về hiệu suất và tiêu thụ năng lượng. So sánh kết quả với các hệ thống khác cho thấy sự ưu việt của hệ thống này về khả năng tiết kiệm năng lượng. Ứng dụng công nghiệp FPGA trong các hệ thống nhúng công suất thấp ngày càng phổ biến. SoC cho thiết bị di độngSoC cho IoT là những ứng dụng tiềm năng.

3.1. Phân tích kết quả thực nghiệm

Kết quả đo lường cho thấy mức tiêu thụ năng lượng của hệ thống sau khi áp dụng kỹ thuật Clock Gating. Phân tích kết quả cho thấy sự giảm đáng kể về tiêu thụ năng lượng so với hệ thống không sử dụng kỹ thuật này. So sánh kết quả giúp đánh giá hiệu quả của Clock Gating trong việc tiết kiệm năng lượng. Dữ liệu thực nghiệm được trình bày dưới dạng biểu đồ và bảng số liệu. Phân tích dữ liệu cho phép rút ra kết luận về hiệu quả của hệ thống. Kiểm tra và xác minh kết quả giúp đảm bảo tính chính xác của nghiên cứu.

3.2. Ứng dụng và hướng phát triển

Hệ thống SoC công suất thấp trên FPGA có nhiều ứng dụng tiềm năng trong các thiết bị di động, thiết bị IoT và các hệ thống nhúng khác. Ứng dụng công nghiệp FPGA ngày càng mở rộng. SoC cho thiết bị di động đòi hỏi khả năng tiết kiệm năng lượng cao. SoC cho IoT cần khả năng xử lý dữ liệu hiệu quả và tiết kiệm năng lượng. Các hướng phát triển trong tương lai bao gồm việc tích hợp thêm các tính năng mới, cải thiện hiệu suất và giảm tiêu thụ năng lượng hơn nữa. Phát triển phần mềmphát triển phần cứng có thể được tiếp tục để nâng cao khả năng của hệ thống. Nghiên cứu về các kỹ thuật tối ưu hóa năng lượng mới cũng cần được xem xét.

01/02/2025

Trích đoạn nội dung tài liệu

Chương 1 GIỚI THIỆU 1.1 GIỚI THIỆU Ngày nay các hệ thống nhúng sử dụng các con chip, vi điều khiển đã không còn quá xa lạ với con người hiện nay, đặc biệt là các nhà lập trình các hệ thống nhúng. Hiện nay việc thiết kế hệ thống nhúng System-on-Chip [1] trên nền FPGA với nhiều ưu điểm vượt trội như tốc độ xử lý cao, tiêu tốn năng lượng thấp đang nhận được nhiều sự quan tâm nghiên cứu trong nhiều lĩnh vực và ứng dụng. Khác với các hệ thống nhúng thông thường, FPGA đáp ứng các nghiên cứu, ứng dụng một cách nhanh chóng mà không đòi hỏi thêm nhiều các thành phần ngoại vi cao để xử lý các ứng dụng khác nhau. Chính vì vậy, đã có nhiều đề tài nghiên cứu về xây dựng một hệ thống tích hợp trên một chip duy nhất.

Bên cạnh đó, các hệ thống nhúng sử dụng SoC trên FPGA [2] cũng đang được ưa chuộng và phát triển mạnh mẽ trong thời gian gần đây dựa trên sự linh hoạt trong việc thay đổi thiết kế từ người dùng. Từ thực tế trên, đề tài nghiên cứu “Xây dựng hệ thống SoC công suất thấp trên FPGA và ứng dụng trò chơi Ping-Pong” được thực hiện trên board DE2- 115 với sự hỗ trợ của bộ công cụ Quartus và một số thiết bị ngoại vi như màn hình LCD, SD Card, loa, bàn phím PS/2, máy tính cá nhân nhằm nghiên cứu và phát triển một hệ thống nhúng phục vụ giải trí.2 SƠ ĐỒ HỆ THỐNG 1 do an Hình 1. 1: Sơ đồ hệ thống tổng quan đề tài Hệ thống bao gồm 5 thành phần chính: thẻ nhớ SD, loa, bàn phím, màn hình LCD và kit DE2-115. Đầu tiên, hệ thống SoC trên kit FPGA Altera DE2-115(1) sẽ thực hiện thiết lập giao tiếp với các ngoại vi: bàn phím chuẩn PS/2(2), màn hình LCD(3) kết nối thông qua cổng VGA, loa(4) kết nối thông qua cổng line- audio và SD Card(5).

Ứng dụng game Ping-Pong [3, 4] sẽ được hiển thị trên màn hình LCD, ứng dụng này được điều khiển bằng bàn phím chuẩn PS/2. Tùy thuộc vào chương trình trên hệ thống, hệ thống có thể đọc dữ liệu là các file nhạc dưới định dạng file là “.wav” để phát ra loa thông qua line-out Audio.3 PHẠM VI ÁP DỤNG Hệ thống nhúng được phát triển với ứng dụng trò chơi đơn giản được gọi là ping-pong được tương tác với người dùng thông qua màn hình LCD và điều khiển trò chơi bằng bàn phím chuẩn PS2. Ngoài ra hệ thống còn đáp ứng người dùng nghe nhạc với các định dạng file nhạc với địng dạng là .wav được lưu trữ trên thẻ nhớ SD định dạng FAT32 và chế độ nghỉ cho hệ thống khi người dùng lựa chọn chế độ nghỉ như các chế độ ngủ đông trên các máy tính cá nhân hiện nay nhằm tiết kiệm năng lượng cho hệ thống khi không sử dụng. 2 do an Chương 2 CƠ SỞ LÝ THUYẾT 2.1 TỔNG QUAN VỀ HỆ THỐNG NHÚNG TRÊN FPGA Xây dựng hệ thống Nios II Phát triển Phát triển và các IP phần cứng phần mềm Xây dựng Xây dựng Xây dựng các thiết kế Xây dựng các Xây dựng các hàm Các thư viện các thiết hệ thống riêng hoặc ngoại vi driver riêng riêng theo các thư hỗ trợ kế riêng theo Nios theo hệ thống của user viện có sẵn HAL,API Công cụ xây dựng SoC File hệ thống .sopcinfo BSP Editor tạo hệ thống ở Thư viện Lập trình chương mức top_module BSP trình ngôn ngữ C Biên dịch Biên dịch chương trình chương trình Tạo file Tạo file .elf Chương trình Chương trình nạp phần nạp phần cứng mềm Chip FPGA Kiểm tra Hình 2.

1: Lưu đồ phát triển hệ thống nhúng trên FPGA 3 do an 2.1 Giới thiệu FPGA (Field programmable Gate Array) là một loại mạch tích hợp cỡ lớn dùng cấu trúc mảng phần tử logic mà người dùng có thể lập trình được. Vi mạch FPGA được cấu thành từ các bộ phận như: các khối logic cơ bản lập trình được, hệ thống mạch liên kết, các khối vào/ra và một số thành phần khác như RAM, ROM. Thiết kế hay lập trình cho FPGA được thực hiện chủ yếu bằng các ngôn ngữ mô tả phần cứng HDL như VHDL, Verilog, AHDL, các hãng sản xuất FPGA lớn như Xilinx, Altera thường cung cấp các gói phần mềm và thiết bị phụ trợ cho quá trình thiết kế, cũng có một số các hãng thứ ba cung cấp các gói phần mềm kiểu này như Synopsys, Synplify. Một số ứng dụng của FPGA như: Thiết kế hệ thống xử lý tín hiệu số DSP, tiền thiết kế mẫu ASIC, các hệ thống giao tiếp, điều khiển, nhận dạng ảnh.

FPGA có tính linh động cao nên có thể đáp ứng nhiều ứng dụng Quá trình xây dựng một hệ thống nhúng SoC [2] trên FPGA bao gồm bốn quá trình cơ bản là: kế hoạch xây dựng hệ thống, xây dựng phần cứng, xây dựng phần mềm, kiểm tra hệ thống. - Quá trình lên kế hoạch xây dựng hệ thống: quá trình bắt đầu khi có các yêu cầu về xây dựng hệ thống SoC. Người thiết kế phải định hướng, hình dung cơ bản về hệ thống cần xây dựng. - Quá trình xây dựng phần cứng: là một quá trình quan trọng trong việc xây dựng hệ thống.

Quá trình này bao gồm việc lựa chọn các lõi xử lý cho hệ thống cũng như xây dựng các thuật toán giải quyết. Xây dựng hệ thống phần cứng được tương tác với người thiết kế thông qua các ngôn ngữ máy, ví dụ như ngôn ngữ Verilog hay VHDL. Việc xây dựng các lõi phải đảm bảo các yêu cầu đáp ứng cho mục đích ban đầu xây dựng hệ thống, việc tiêu tốn các tài nguyên xây dựng hệ thống không quá lớn và đảm bảo có thể kiểm tra hệ thống sau khi thiết kế bằng cách nạp thiết kế trên chip FPGA. - Quá trình xây dựng phần mềm: quá trình xây dựng phần mềm được dựa theo các hệ thống phát triển trên phần cứng.

Quá trình phát triển phần 4 do an mềm được tương tác với người dùng thông qua các ngôn ngữ lập trình bậc cao như C/C++. Tương tự như phần cứng, phần mềm được kiểm tra dựa trên các phần cứng được xây dựng trước đó. - Quá tình kiểm tra hệ thống: hệ thống sau khi hoàn thiện được kiểm tra về các mặt như tổng tài nguyên hệ thống, tiêu tốn năng lượng và đáp ứng hệ thống với người dùng. Nếu không thể đáp ứng với các tiêu chí người thiết kế phải quay lại các bước thiết kế ban đầu.

Nếu hệ thống đã đáp ứng đầy đủ các tiêu chí, đáp ứng các yêu cầu đặt ra cho hệ thống thì có thể đi đến bước chế tạo chip.2 Phần cứng kit FPGA Altera DE2-115 Kit FPGA Altera DE2-115 là một trong các dòng kit DE của Altera phát triển nhằm hỗ trợ phát triển giáo dục, hiện nay kit được phổ biến hầu hết ở các trường đại học trên thế giới. Hiện nay giá hỗ trợ giáo dục của kit DE2-115 là 309$. 2: Kit FPGA Altera DE2-115 5 do an Các phần cứng trên kit FPGA Altera DE2-115 [5]:  Chip FPGA Altera Cylone IV EP4CE115F29 công nghệ 60-nm với tài nguyên 114,480 LEs.  Chip cấu hình thiết bị EPCS64  1 chip SRAM 2MByte  2 chip DRAM, mỗi chip 32MByte  1 chip nhớ Flash 8Mbyte.

 Khe cắm SD Card hỗ trợ chế độ giao tiếp SPI và SD 4-bit.  1 cổngVGA dùng chip DAC(8 bit, 3 kênh DAC tốc độ cao), Audio CODEC (24 bit).  TV Decoder (NTSC/PAL/SECAM) và cổng TV-in  1x40-pin Expansion Headers, 1 cho card HSMC.  Clock 50Mhz, 27Mhz, 24Mhz.

 Hỗ trợ các chuẩn giao tiếp: cổng PS2, cổng USB Host/Slaver, cổng RS- 232 9 chân, cổng Ethernet RJ45 hỗ trợ tốc độ tới 2Gbit, ngoài ra còn các cổng Audio.  Các ngoại vi như: 18 switch, 4 nút nhấn, 18 led đơn đỏ, 9 led đơn xanh, 8 led 7 đoạn.  Một module LCD 16x2.  Có 1 bộ nhận IR.

 2 cổng SMA dành cho clock ngõ vào hoặc ngõ ra cho người dùng.  Nguồn cung cấp cho Kit 12V DC.2 NGÔN NGỮ MÔ TẢ PHẦN CỨNG VERILOG VÀ HỆ THỐNG SoC HDL được dùng để mô tả mô hình hóa các hệ thống số. Ngôn ngữ verilog hay VHDL là một trong hai loại ngôn ngữ được dùng phổ biến hiện nay trong các hệ thống này, đặc biệt là trong các hệ thống SoC. Trong mục người thực hiện sẽ trình bày về tổng quan về ngôn ngữ verilog và hệ thống System on Chip.1 Ngôn ngữ mô tả phần cứng Verilog Hình 2.

3: Minh họa ứng dụng ngôn ngữ verilog Verilog là ngôn ngữ mô tả phần cứng [6] được sử dụng rộng rãi trong thiết kế các hệ thống số, mạch tích hợp hiện nay, cùng với ngôn ngữ VHDL, cả hai ngôn ngữ đều rất phổ biến. Verilog lần đầu được giới thiệu vào năm 1984 bởi công ty Gateway Design Automatic, đến năm 1995 Verilog được chuẩn hóa bởi tổ chức IEEE. Verilog được sử dụng phổ biến trong công nghiệp, còn VHDL được dùng nhiều trong các nghiên cứu hay lĩnh vực mang tính bảo mật cao như quốc phòng. Một số ưu điểm của ngôn ngữ Verilog: - Nền tảng mạnh: được chuẩn hóa năm 1995 từ tổ chức IEEE, phổ biến trong công nghiệp, ngôn ngữ có cấu trúc gần giống C nên gần gũi và dễ học, mô phỏng và tổng hợp hiệu quả.

- Tính đa năng: ngôn ngữ verilog được ứng dụng trong nhiều môi trường như thiết kế, kiểm tra, mô phỏng. Verilog cũng có thể dùng trên nhiều nền tảng như Window, Linux. Verilog phổ biến ở mức thiết kế ASIC, dễ dàng mô phỏng và tổng hợp. - Tính mở rộng: Verilog có khả năng mở rộng cho phép các thiết bị bên ngoài truy cập xem thông tin chức năng thiết kế.

Chính vì vậy tính bảo mật sẽ thấp hơn so với ngôn ngữ VHDL.2 Hệ thống System on Chip (SoC) Hệ thống System on Chip (SoC) là một hệ thống điện tử được xây dựng chung trên một khối bán dẫn với ý tưởng ban đầu là tích hợp tất cả các thành phần của một hệ thống máy tính lên cùng một chip đơn. Hệ thống SoC này có thể bao gồm các khối chức năng số, tương tự, mixed- signal và các khối RF. Ứng dụng điển hình của hệ thống SoC là các hệ thống nhúng. Một hệ thống SoC bao gồm một loạt các mạch tích hợp cho phép thực hiện các nhiệm vụ khác nhau.

Các mạch tích hợp này thường là:  Bộ vi xử lý (microprocessor)  Bộ nhớ (RAM, ROM)  Khối truyền thông nối thiếp UART  Các cổng song song (parallel port)  Khối điều khiển truy xuất bộ nhớ trực tiếp (DMA controller) … Công nghệ thiết kế và xây dựng các hệ thống SoC có thể kể đến là:  Công nghệ chế tạo ASIC  FPGA Hình 2.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ