Thiết kế giao tiếp camera và hiển thị màn hình vga trên kit de10

61 10 0
Thiết kế giao tiếp camera và hiển thị màn hình vga trên kit de10

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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.

Trang 1

ĐẠ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

Trang 2

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ô

Tp Hồ Chí Minh, ngày 25 tháng 05 năm 2023.

Sinh viên

Trang 3

1.3 Tổng quan Kit DE10-standard 5

2 Tìm hiểu về Qsys và project GHDR từ Intel 17

2.1 Qsys là gì? 17

2.2 Thành phần Qsys là gì? 18

2.3 Project GHRD (Golden Hardware Reference Design) 18

3 Tìm hiểu về giải thuật Haar Cascade 22

3.1 Haar Cascade là gì? 22

3.2 Đặc trưng giải thuật Haar Cascade 22

3.3 Hoạt động của giải thuật Haar Cascade 24

III THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG 24

1 Yêu cầu thiết kế 24

2 Phân tích thiết kế 24

3 Thực hiện phần cứng 26

IV THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM (NẾU CÓ) 34

1 Yêu cầu thiết kế 34

2 Thiết kế phần mềm 34

V KẾT QUẢ THỰC HIỆN 37

1 Khởi tạo hệ thống SoC 37

Trang 4

1.1 Khởi tạo môi trường linux trên board 37

1.2 Thiết lập kết nối máy tính với board 38

Trang 5

DANH SÁCH HÌNH MINH HỌA

Hình 1 Các thành phần board DE10 Standard 6

Hình 2 Hình ảnh mặt trước kit DE10 6

Hình 3 Hình ảnh mặt sau Kit DE10 7

Hình 4 Sơ đồ khối Kit DE10 7

Hình 5 Avalon MM slave 11

Hình 6 Avalon MM master 14

Hình 7 SoC Architecture (Nguồn:Cyclone V Hard Processor System Technical Reference Manual) 16

Hình 8 Altera DE-series board 17

Hình 9 Hình ảnh mô tả cấu trúc GHRD cung cấp từ terrasic 19

Hình 10 Ba loại bộ lọc theo hình chữ nhật 23

Hình 11 Nhận diện khuôn mặt bằng ba loại bộ lọc 23

Hình 12 Quy trình hoạt động giải thuật Haar Cascade 24

Hình 13 Thành Phần IP sử dụng trong hệ thống Qsys cấu hình thêm VGA vào project GHRD 25

Hình 14 Các kết nối của project GHRD trong Qsys 27

Hình 15 Generate file sopcinfo 28

Hình 16 Generate file sopcinfo 28

Hình 17 Generate file sopcinfo 29

Hình 18 Sau khi generate file sopcinfo 29

Hình 19 Nội dung script tạo header cho HPS trong Qsys 29

Hình 20 Quá trình chạy script 30

Hình 21 Sau khi generate file header 30

Hình 22 Nội dung file hps_0.h vừa tạo 31

Hình 23 Quá trình biên dịch hệ thống FPGA 31

Hình 24 Quá trình biên dịch hệ thống FPGA 32

Trang 6

Hình 25 Quá trình biên dịch hệ thống FPGA 32

Hình 26 File sof được tạo sau quá trình biên dịc 33

Hình 27 Lưu đồ phần mềm nhận diện khuôn mặt thực hiện trên vi xử lý ARM 35

Hình 28 Phần mềm format thẻ nhớ 37

Hình 29 Các bước khởi tạo môi trường Linux 38

Hình 30 Các bước khởi tạo môi trường Linux 38

Hình 31 Các bước thiết lập kết nối máy tính tới board 38

Hình 32 Các bước thiết lập kết nối máy tính tới board 39

Hình 33 Các bước thiết lập kết nối máy tính tới board 39

Hình 34 Các bước thiết lập kết nối máy tính tới board 40

Hình 35 Các bước thiết lập kết nối máy tính tới board 40

Hình 36 Các bước thiết lập kết nối máy tính tới board 40

Hình 37 Các bước thiết lập kết nối máy tính tới board 41

Hình 38 Các bước thiết lập kết nối máy tính tới board 41

Hình 39 Vị trí của script tạo file rbf 42

Hình 40 Nội dung của script tạo file rbf 42

Hình 41 Quá trình chạy script tạo file rbf 42

Hình 42 File rbf sau khi được tạo 43

Hình 43 File dtb sau khi tạo 43

Hình 44 Phân vùng boot trên thẻ nhớ 44

Hình 45 Kết nối trên board 44

Hình 46 Các bước nạp phần cứng lên board 44

Hình 47 Các bước nạp phần cứng lên board 45

Hình 48 Các bước nạp phần cứng lên board 45

Hình 49 Các bước nạp phần cứng lên board 46

Hình 50 Các bước vận hành phần mềm trong hệ thống SoC 46

Hình 51 Nội dung file Makefile 47

Trang 7

Hình 52 Include thư viện OpenCV 47

Hình 53 Version của OpenCV 48

Hình 54 Thư mục chứa thư viện của OpenCV 48

Hình 55 Các bước vận hành phần mềm trong hệ thống SoC 48

Hình 56 Các bước vận hành phần mềm trong hệ thống SoC 49

Hình 57 Quá trình thực hiện demo 49

Hình 58 Các bước vận hành phần mềm trong hệ thống SoC 50

Hình 59 Kết quả quá trình thực hiện demo 50

Trang 8

DANH SÁCH BẢNG SỐ LIỆU

Bảng 1 Các tín hiệu có trong Avalon MM slave 11 Bảng 2 Các tín hiệu có trong Avalon MM master 14 Bảng 3 Tài nguyên hệ thống FPGA tiêu tốn 32

Trang 9

DANH MỤC BIẾ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

Sram Static random-access memory

VHDL Very High-Speed Integrated Circuit Hardware Description Language

Trang 10

I GIỚI THIỆU

1 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

2 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

Trang 11

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

Trang 12

II LÝ THUYẾT

1 Tìm hiểu về dòng KIT SoC FPCA – DE10 Standard

1.1 Tổng quan về FPGA

2.1.1 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 Lúc này nó gồm có một mảng của các khối logic có thể tái cấu hình – Configurable Logic Blocks (CLBs) và các đầu vào ra – I/O (input/output) Chip FPGA đầu tiên chứa 64 CLBs và 58 I/Os Ngày nay, FPGA có thể chứa khoảng 330,000 CLBs và khoảng 1100 I/Os Phần lớn các sản phẩm FPGA trên thị trường hiện nay đều dựa trên công nghệ SRAM với 2 hãng sản xuất lớn nhất là Xilinx và Altera Ngoài ra còn có các hãng khác sản xuất FPGA nhưng với mục đích chuyên dụng (Atmel, Actel, Lattice, SiliconBlue, )

Kiến trúc cơ bản của FPGA bao gồm 3 thành phần chính: khối logic có thể tái cấu hình, Configurable Logic Blocks (CLBs) thực hiện các chức năng logic; các kết nối bên trong, Porgrammable Interconnect có thể lập trình để kết nối các đầu vào và đầu ra của các CLB và các khối I/O bên trong; các khối I/O cung cấp giao tiếp giữa các ngoại vi và các được tín hiêu bên trong

2.1.2 Ưu điểm của FPGA

Khối logic có thể tái cấu hình: Đây là một trong những ưu điểm lớn nhất của FPGA, mục đích của việc lập trình khối logic trong FPGA là để cung cấp các tính toán và các phần tử

Trang 13

nhớ cơ bản được sử dụng trong hệ thống số Một phần tử logic cơ bản gồm một mạch tổ hợp có thể lập trình, một Flip-Flop hoặc một chốt (latch) Ngoài khối logic cơ bản đó, nhiều Chip FPGA hiện nay gồm một hỗn hợp các khối khác nhau, một số trong đó chỉ được dùng cho các chức năng cụ thể, chẳng hạn như các khối bộ nhớ chuyên dụng, các bộ nhân (multipliers) hoặc các bộ ghép kênh (multiplexers) Tất nhiên, cấu hình bộ nhớ được sử dụng trên tất cả các khối logic để điều khiển các chức năng cụ thể của mỗi phần tử bên trong khối đó

Kết nối có thể lập trình: Các liên kết trong một FPGA dùng để liên kết các khối logic và I/O lại với nhau để tạo thành một thiết kế Bao gồm các bộ ghép kênh, các transistor và cổng đệm ba trạng thái Nhìn chung, các transistor và bộ ghép kênh được dùng trong một cụm logic để kết nối các phần tử logic lại với nhau, trong khi đó cả ba đều được dùng cho các cấu trúc định tuyến bên trong FPGA Một số FPGA cung cấp nhiều kết nối đơn giản giữa các khối logic, một số khác cung cấp ít kết nối hơn nên định tuyến phức tạp hơn

Khối I/O liên kết: I/O cung cấp giao tiếp giữa các khối logic và kiến trúc định tuyến đến các thành phần bên ngoài Một trong những vấn đề quan trọng nhất trong thiết kế kiến trúc I/O là việc lựa chọn các tiêu chuẩn điện áp cung cấp và điện áp tham chiếu sẽ được hỗ trợ Theo thời gian, các kiến trúc FPGA cơ bản đã được phát triển hơn nữa thông qua việc bổ sung các khối chức năng đặc biệt có thể lập trình, như bộ nhớ trong (Block RAMs), logic số học (ALU), bộ nhân, DSP-48 và thậm chí là bộ vi xử lý nhúng được thêm vào do nhu cầu của các nguồn tài nguyên cho một ứng dụng Kết quả là nhiều FPGA ngày nay có nhiều nguồn tài nguyên hơn so với các FPGA trước đó

Ngôn ngữ mô tả phần cứng (Hardware Description Language): Ngôn ngữ mô tả phần cứng bao gồm VHDL, Verilog, SystemC và Handle-C thường được sử dụng để lập trình FPGA VHDL và Verilog phát triển như là một chuẩn công nghiệp và là hai ngôn ngữ phổ biến nhất hiện nay Ngôn ngữ nào cũng tốt nhưng có một điều chắc chắn là Xilinx ISE và Altera Quartus đều hỗ trợ VHDL và Verilog

2.1.3 Ứng dụng FPGA

Ứng dụng của FPGA bao gồm: 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, nhận dạng tiếng nói, mật mã học, mô hình phần cứng máy tính, …

Trang 14

Do tính linh động cao trong quá trình thiết kế cho phép FPGA 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, ngoài ra nhờ mật độ cổng logic lớn FPGA được ứng dụng cho những bài toán đòi hỏi khối lượng tính toán lớn và dùng trong các hệ thống làm việc theo thời gian thực

1.2 Tổng quan về SoC

System on Chip là hệ thống mạch tích hợp bao gồm tất cả các thành phần cần thiết được tích hợp trên 1 chip duy nhất Các thành phần này có thể bao gồm mạch số (digital), mạch analog và sự pha trộn giữa hai mạch này (mixed-signal)

Ví dụ một SoC dùng để xử lý âm thanh có thể bao gồm các thành phần audio receiver (bộ thu nhận audio), bộ ADC (chuyển đổi từ tín hiệu analog sang tín hiệu digital), bộ vi xử lý, bộ điều khiển vùng nhớ (memory) và các thành phần điều khiển ra vào khác Tất cả được tích hợp vào một SoC duy nhất

System on Chip là một mức phát triển cao hơn của thiết kế ASIC (Application Specific Integrated Circuit) Tuy nhiên, với sự phát triển nhanh chóng của ngành công nghiệp bán dẫn và các ứng dụng đi kèm, hệ thống chip ASIC hay là SoC có thể được hiểu là gần tương đương nhau

Những lợi thế chính của các thiết bị SoC là chi phí thấp hơn, giảm đáng kể kích thước, và giảm điện năng tiêu thụ của hệ thống Hệ thống kỹ thuật số bằng cách sử dụng SoC thiết kế, như là những người được sử dụng trong các sản phẩm cầm tay kỹ thuật số, các hệ thống kỹ thuật số được xây dựng trên một trong một gói có nhiều chip Khi tiến công nghệ, tích hợp của các phần tử khác nhau trong một thiết kế SoC trở nên ngày càng phức tạp Một thiết bị tích hợp SoC vào một chip duy nhất nhiều thành phần của một hệ thống điện tử phức tạp, chẳng hạn như một bộ tiếp nhận không dây SoC các thiết bị sẽ giảm kích thước đi rất nhiều, chi phí và tiêu thụ điện năng của hệ thống Một hệ thống trên chip có thể bao gồm một đơn vị logic cấu hình Các đơn vị logic cấu hình bao gồm một bộ xử lý, interface, và logic lập trình trên cùng một chất nền Một hệ thống-trên-chip được thiết kế tích hợp nhiều thiết kế độc lập VLSI (lõi) để cung cấp đầy đủ chức năng cho một ứng dụng

1.3 Tổng quan Kit DE10-standard

DE10-Standard là board FPGA SoC được phát triển trên dòng chip chi phí thấp của Altera là Cyclone V SoC, gồm hai phần chính: HPS và FPGA Phần bên trái là Hard Processing System (HPS) bao gồm lõi vi xử lý cứng ARM, bộ điều khiển EMAC, bộ điều

Trang 15

khiển SDRAM, … và bên phải là phần FPGA sẽ chứa các thiết kế phần cứng của người dùng Tương tác giữa HPS và FPGA được thực hiện thông qua cầu nối AXI Bridge được cấu hình cho tương tác giữa bus Avalon (FPGA) và bus AXI (HPS), cho phép người dùng truy cập trực tiếp vào các thành phần của HPS (ví dụ như SDRAM) từ phía FPGA

Hình 1 Các thành phần board DE10 Standard

1.3.1 Hình ảnh kit

Hình 2 Hình ảnh mặt trước kit DE10

Trang 16

Hình 3 Hình ảnh mặt sau Kit DE10

Hình 4 Sơ đồ khối Kit DE10

Trang 17

1.3.2 Sơ đồ khối và thành phần kit Thành phần:

FPGA Device

• Cyclone V SoC 5CSXFC6D6F31C6N Device • Dual-core ARM Cortex-A9 (HPS)

• 110K programmable logic elements • 5,761 Kbits embedded memory • 6 fractional PLLs

• 2 hard memory controllers

Configuration and Debug

• Quad serial configuration device – EPCS128 on FPGA • Onboard USB-Blaster II (normal type B USB connector)

• Two port USB 2.0 Host (ULPI interface with USB type A connector) • UART to USB (USB Mini-B connector)

• 10/100/1000 Ethernet • PS/2 mouse/keyboard • IR emitter/receiver • I2C multiplexer

Trang 18

Connectors

• One HSMC (Configurable I/O standards 1.5/1.8/2.5/3.3V) • One 40-pin expansion headers

• One 10-pin ADC input header

• One LTC connector (one Serial Peripheral Interface (SPI) Master, one I2C and one GPIO interface)

Display

• 24-bit VGA DAC

• 128x64 dots LCD Module with Backlight

• Analog input range: 0 ~ 4.096 Switches, Buttons, and Indicators • 5 user Keys (FPGA x4, HPS x1) • 10 user switches (FPGA x10) • 11 user LEDs (FPGA x10, HPS x 1)

Trang 19

• 2 HPS reset buttons (HPS_RESET_n and HPS_WARM_RST_n) • Six 7-segment displays

Bus Avalon, được phát triển bởi Altera, là một kiến trúc bus đơn giản được thiết kế để kết nối vi xử lý FPGA với các ngoại vi khác trong một hệ thống SoPC (System on a programmable Chip) Bus Avalon mô tả giao tiếp giữa master và các thành phần slave, đồng thời chỉ định thời gian mà các thành phần này giao tiếp Các ưu điểm của bus Avalon bao gồm:

- Tính đơn giản – Cung cấp một giao thức dễ hiểu và ngắn gọn

- Tối ưu hóa sử dụng tài nguyên cho logic bus - Bảo tồn các phần tử logic (LEs – Logic Elements) bên trong thiết bị logic khả trình (PLD – Programmable Logic Device)

- Xử lý đồng bộ - tích hợp tốt với logic sử dụng khác mà cùng tồn tại trên cùng một PLD, đồng thời tránh phân tích thời gian phức tạp các vấn đề

Ngoài ra, các giao tiếp trong bus Avalon thường sẽ có chiều dài byte, half-word hoặc

word (8, 16 hoặc 32 bit) giữa thiết bị ngoại vi (master – slave)

1.3.3.2 Avalon Memory Mapped

Giao tiếp Avalon Memory-Mapped (Avalon MM) được sử dụng cho các trao đổi đọc/ghi dữ liệu giữa các thành phần master/slave trong hệ thống ánh xạ bộ nhớ dựa trên địa chỉ Các thành phần này bao gồm bộ vi xử lý, bộ nhớ, UART và bộ định thời; chúng có giao thức master/slave được kết nối với nhau bởi một kết nối hệ thống chung Giao tiếp Avalon MM có thể mô tả nhiều loại thành phần, từ một SRAM hỗ trợ đơn giản, cụ thể là việc trao đổi

Trang 20

đọc/ghi dữ liệu trong chu kỳ cố định sang một giao tiếp pipeline phức tạp hơn, ngoài ra còn có khả năng trao đổi dữ liệu theo kiểu burst

Các tính năng:

• Định nghĩa kết nối điểm với điểm

• Triển khai tự do các tập hợp con khi tín hiệu được yêu cầu • Độ rộng dữ liệu có thể thay đổi: 8, 16, 24, … 1024

• Tạo kết nối tự động

❖ Avalon Memory Mapped Slave

Hình 5 Avalon MM slave

Các loại tín hiệu có trong Avalon MM Slave được trình bày trong bảng sau:

Bảng 1 Các tín hiệu có trong Avalon MM slave

Tín hiệu cơ bản

read

Cho phép tín hiệu đọc, thường sẽ đi kèm với readdata

Trang 21

write_n đi kèm với writedata hoặc

Cho phép các làn byte cụ thể trong quá trình ghi Nó sẽ chỉ định byte nào được ghi bằng cách đưa một

Được xác nhận bởi kết nối hệ thống cho chu kỳ đầu tiên của mỗi lần chuyển bất kể yêu cầu chờ và các tín hiệu khác

Tín hiệu trạng thái chờ

waitrequest

Dùng để tạm ngưng kết nối bên trong hệ thống khi port slave không thể phản hồi tức thì

arbiterlock

Tín hiệu phân xử chắc chắn khi một master giành được quyển phân xử, nó sẽ duy trì kết nối đến slave cho nhiều quá trình trao đổi

Tín hiệu pipeline

readdatavalid

Dùng trong giao thức đọc pipeline với độ trễ có thể thay đổi được Nó

Trang 22

đánh dấu xung cạnh lên khi slave nhận được tín hiệu readdata phù hợp

Tín hiệu burst

Dùng trong giao thức burst Nó đại diện cho số lần trao đổi trong một burst Thường sẽ đi kèm với tín hiệu waitrequest

Được xác nhận ở đầu chu kỳ khi giao thức burst bắt đầu

Tín hiệu flow control

Được sử dụng trong giao thức flow control Cho biết rằng ngoại vi đã sẵn sàng để thực hiện quá trình ghi

Được sử dụng trong giao thức flow control Cho biết rằng ngoại vi đã

Trang 23

❖ Avalon Memory Mapped Slave

Hình 6 Avalon MM master

Ta có thể tăng thông lượng của hệ thống bằng cách bắt đầu đọc với nhiều thiết bị ngoại vi slave vì hệ thống tạo ra kết nối điểm – điểm giữa các cặp master/slave Trong phản hồi các lần đọc, khi một thiết bị ngoại vi slave có dữ liệu hợp lệ, nó sẽ xác nhận read_data_valid và vài kết nối hệ thống cho phép kết nối giữa cặp master/slave

Các loại tín hiệu được trình bay bảng dưới:

Bảng 2 Các tín hiệu có trong Avalon MM master

Tín hiệu cơ bản

Tín hiệu địa chỉ đại diện cho một byte địa chỉ, không phụ thuộc chiều rộng dữ liệu của master Để viết một byte cụ thể trong một word, master phải sử dụng tín hiệu byteenable

read

read_n 1 Out No Đọc tín hiệu yêu cầu từ master

Trang 24

readdata phải có khi có tin hiệu

Tín hiệu ghi từ master Thường sẽ đi cùng với writedata

Dữ liệu được nhận từ hệ thống khi có tín hiệu ghi readdata và writedata phải có cùng chiều rộng

Cho phép các làn byte cụ thể trong quá trình chuyển trên các cổng của chiều rộng lớn hơn 8 bit Mỗi bit trong byteenable tương ứng với một làn byte trong writedata và readdata

waitrequest

Buộc thiết bị chính phải đợi cho đến khi hệ thống kết nối với nhau đã sẵn sàng để tiến hành trao đổi dữ liệu Lúc bắt đầu quá trình trao đổi, master bắt đầu quá trình và đợi cho đến khi yêu cầu chờ được thực hiện Master phải giữ nguyên các tín hiệu điều khiển của nó trong các chu kỳ tiếp theo nếu yêu cầu chờ đợi được xác nhận phân xử

arbiterlock

Khóa phân xử đảm bảo rằng khi master giành được quyền truy cập, nó sẽ duy trì kết nối truy cập vào nhiều slave cho nhiều chuyển giao

Tín hiệu pipeline

readdatavalid

readdatavalid_n 1 In No Chỉ ra dữ liệu hợp lệ được chuyển

Trang 25

Về phần byteenable, khi nhiều hơn một làn byte được xác nhận, tất cả làn đã được xác nhận phải được đặt liền kề nhau Số dòng liền kề phải là lũy thừa của 2 và số byte chỉ định phải được căn chỉnh trên một giới hạn địa chỉ phụ thuộc vào kích thước của dữ liệu

1.3.4 SoC trên kit

Sơ đồ khối ở cấp độ high-level của SoC này được thể hiện trong hình sau:

Hình 7 SoC Architecture (Nguồn:Cyclone V Hard Processor System Technical Reference Manual)

Cấu trúc của SoC trên kit Altera gồm có 2 phần chính: HPS và FPGA HPS sử dụng hệ thống bus AXI trong khi FPGA sử dụng hệ thống bus Avalon, vì thế cần có các cầu nối để giao tiếp giữa hai hệ thống này với nhau

Trang 26

HPS Portion

HPS viết tắt từ Hard Processing System, đây là hệ thống xử lý của SoC Altera Hệ thống xử lý này bao gồm các vi xử lý ARM và các ngoại vi đi kèm Vi xử lý ARM trên SoC của Cyclone 5 là một cặp ARM Cortex-9 Ngoài MPU Subsystem của ARM Cortex-9, HPS còn bao gồm các ngoại vi khác như PLLs, bộ điều khiển Flash Controllers, SDRAM Controllers, bộ nhớ on-chip, v.v

FPGA Portion

FPGA này chính là các thiết kế sẽ được kết nối vào hệ thống Các IP được lập trình sẽ nằm ở phần này và ngoài ra còn có các ngắt và các cổng giao tiếp DIP Switch, JTAG UART, LED và BUTTON

2 Tìm hiểu về Qsys và project GHDR từ Intel

2.1 Qsys là gì?

Công cụ Qsys cho phép người dùng kết hợp một hệ thống với nhau bằng cách sử dụng các thành phần được tạo sẵn hoặc tùy chỉnh Các hệ thống như vậy thường bao gồm một hoặc nhiều bộ xử lý, giao diện bộ nhớ, cổng I / O và phần cứng tùy chỉnh khác Hệ thống do Qsys tạo ra có thể được đưa vào như một phần của mạch lớn hơn và được triển khai trên bảng FPGA, chẳng hạn như Altera DE-series Ví dụ về một hệ thống như vậy được mô tả trong Hình 8, trong đó phần của hệ thống được tạo bởi công cụ Qsys được đánh dấu bằng màu xanh lam

Hình 8 Altera DE-series board

Trang 27

Mỗi thành phần trong hệ thống, được gọi là thành phần Qsys, tuân theo ít nhất một trong các Giao diện Avalon được Qsys hỗ trợ Với giao diện được xác định cho thành phần, Qsys có thể xây dựng một cấu trúc kết nối, được gọi là Avalon Interconnect, cho phép các thành phần trao đổi dữ liệu Công cụ Qsys có thể tạo ra một hệ thống dựa trên tập hợp các thành phần và thông số người dùng đã chọn Hệ thống được tạo chứa mã Verilog hoặc VHDL cho từng thành phần và cấu trúc kết nối, cho phép nó được tổng hợp, đặt và định tuyến cho thiết bị FPGA

2.2 Thành phần Qsys là gì?

Thành phần Qsys là một mạch con phần cứng có sẵn như một thành phần thư viện để sử dụng trong công cụ Qsys Thông thường, nó chứa hai phần: các mô đun phần cứng bên trong và các Giao diện Avalon bên ngoài Các mô-đun bên trong là các mạch thực hiện chức năng mong muốn của thành phần Qsys, trong khi các Giao diện Avalon được thành phần sử dụng để giao tiếp với các mô-đun phần cứng bên ngoài thành phần

Các loại giao diện Avalon:

• Avalon Clock Interface – an interface that drives or receives clocks • Avalon Reset Interface – an interface that provides reset capability

• Avalon Memory-Mapped Interface (Avalon MM) – an address-based read/write interface which is typical of master-slave connections

• Avalon Streaming Interface (Avalon-ST) – an interface that supports unidirectional flow of data

• Avalon Conduit Interface – an interface that accommodates individual signals or groups of signals that do not fit into any of the other Avalon Interface types You can export the conduit signals to make connections external to the Qsys system

2.3 Project GHRD (Golden Hardware Reference Design)

Golden Hardware Reference Design sử dụng các ngoại vi trong vùng FPGA một

cách tối thiểu vì phía HPS đã cung cấp cho ta rất nhiều lựa chọn các ngoại vi như Ethernet, UART, SDRAM, SD/MMC Các giao tiếp HPS-FPGA và FPGA-HPS được cấu hình với độ rộng dữ liệu là 64 bit Thiết kế GHRD này bao gồm các thành phần như sau:

• ARM Cortex™-A9 MPCore HPS

Trang 28

• 02 user push-button inputs • 04 user DIP switch inputs • 04 user I/O for LED outputs • 64KB of on-chip memory • JTAG to Avalon master bridges

• Interrupt capturer for use with System Console • System ID

Thiết kế trên sử dụng cầu nối HPS-FPGA, FPGA-HPS và Lightweight HPS-FPGA, đồng thời, cấu trúc này cho thấy những ngoại vị được hỗ trợ trong mỗi phần FPGA và phần HPS như JTAG, Interrupt, ROM, RAM, DDR, …

Các thành phần IP trong project GHRD:

Hình 9 Hình ảnh mô tả cấu trúc GHRD cung cấp từ terrasic

Trang 29

2.3.1 HPS

HPS viết tắt từ Hard Processing System, đây là hệ thống xử lý của SoC Altera Hệ thống xử lý này bao gồm các vi xử lý ARM và các ngoại vi đi kèm Vi xử lý ARM trên SoC của Cyclone 5 là một cặp ARM Cortex-9 Ngoài MPU Subsystem của ARM Cortex-9, HPS còn bao gồm các ngoại vi khác như PLLs, bộ điều khiển Flash Controllers, SDRAM Controllers, bộ nhớ on-chip, v.v

Chức năng các Bridge trong HPS:

• Lightweight HPS-to-FPGA Bridge:Cho phép master từ HPS truy cập đến slave ánh xạ bộ nhớ các thành phần ở FPGA.Thông thường MPU ở HPS truy cập cầu nối này thực hiện các truy cập vào thanh ghi trạng thái và điều khiển tới các ngoại vi trong FPGA.Lưu ý : không sử dụng cầu này để truy cập vào memory FPGA

• HPS- to -FPGA Bridge: sử dụng để kết nối trực tiếp bộ nhớ của FPGA đến HPS Lưu ý: truy cập thanh ghi trạng thái và điều khiển của FPGA không được sử dụng ở cầu này và sẽ được chuyển đến sử dụng ở Lightweight HPSto-FPGA Bridge

• FPGA- to – HPS Bridge: cho phép master từ FPGA truy cập vào bộ nhớ và ngoại vi bên trong HPS

2.3.2 System ID Peripheral Intel FPGA IP

Lõi ID hệ thống với giao diện Avalon® là một thiết bị chỉ đọc đơn giản cung cấp cho các hệ thống Trình thiết kế nền tảng một mã định danh duy nhất Các hệ thống bộ xử lý sử dụng lõi ID hệ thống để xác minh rằng chương trình thực thi được biên dịch nhằm mục tiêu vào phần cứng thực được định cấu hình trong FPGA đích Nếu ID dự kiến trong tệp thực thi không khớp với lõi ID hệ thống trong FPGA, có thể phần mềm sẽ không thực thi chính xác

Có hai cách cơ bản để sử dụng lõi ID hệ thống:

• Xác minh ID hệ thống trước khi tải phần mềm mới xuống hệ thống Phương pháp này được sử dụng bởi các công cụ phát triển phần mềm, chẳng hạn như môi trường phát triển tích hợp Nios® II (IDE), Nios® II IDE kiểm tra xem lõi ID hệ thống trong phần cứng có khớp với ID hệ thống dự kiến của phần mềm hay không trước khi tải xuống chương trình để chạy hoặc gỡ lỗi

Trang 30

• Kiểm tra ID hệ thống sau khi đặt lại Nếu một chương trình đang chạy trên phần cứng không phải là hệ thống Trình thiết kế nền tảng dự kiến, chương trình có thể không hoạt động hoàn toàn Nếu chương trình không gặp sự cố, nó có thể hoạt động sai theo những cách tinh vi khó gỡ lỗi Để tránh trường hợp này, một chương trình có thể so sánh ID hệ thống dự kiến với lõi ID hệ thống và báo lỗi nếu chúng không khớp

Trong project GHDR: đóng vai trò Kiểm tra, xác minh ID cho hệ thống tránh thực

hiện sai khó gỡ lỗi khi sai ID hệ thống

2.3.3 JTAG to Avalon Master Bridge

Cung cấp kết nối, quyền truy cập giữa hệ thống máy chủ để truy cập các IP được ánh xạ bộ nhớ và các thanh ghi trạng thái và điều khiển IP ngoại vi thông qua giao diện JTAG Trong Project GHDR đóng vai trò các khối:

• HPS only master • Fpga only master

• F2sdram only master

2.3.4 Avalon MM Pipeline Bridge

Thực hiện chèn một đoạn thanh ghi giữa các đoạn phản hồi và các lệnh ánh xạ đến bộ nhớ Avalon IP này thực hiện chức năng pipeline, phân phối dữ liệu các tín hiệu câu lệnh từ bộ xử lý và tín hiệu phản hồi từ các component Ở đây tham số chờ xử lý tối đa là số lần đọc và phản hồi đang chờ xử lý được đưa vào hàng đợi, hàng đợi tối đa là 64

Trong project GHDR: dùng IP này đặt với tên mm – bridge với chức năng làm cầu

nối để HPS truy cập vào gửi tín hiệu điều khiển ánh xạ đến bộ nhớ các thành phần FPGA

2.3.5 JTAG UART Intel FPGA IP

Một UART JTAG hoạt động giống như một UART thông thường: một khối có một số thanh ghi trạng thái và điều khiển để ghi byte vào FIFO truyền, đọc byte từ FIFO nhận và kiểm tra xem những FIFO đầy hoặc trống

Ưu điểm so với UART thông thường:

• Không cần thêm cáp giữa bảng FPGA và PC

Ngày đăng: 10/04/2024, 22:15

Tài liệu cùng người dùng

Tài liệu liên quan