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.