CHƯƠNG 2 PHÁT TRIỂN NỀN TẢNG PHẦN CỨNG CẤU HÌNH LẠI ĐƯỢC
2.3. Phát triển nền tảng phần cứng cấu hình lại từng phần động
2.3.2. Xây dựng hệ thống (nền tảng phần cứng) cấu hình
Tác giả sử dụng luồng thiết kế như Hình 2.18 để thiết lập một hệ thống cấu hình lại được từng phần động cho NoC trên FPGA.
Buffer, Router, Topo or PE
Dynamic nestlist (.ngc)
ISE
C project SDK
Plan Ahead
Systems and BlackBox
Static netlist (.bmm, .ngc, .ucf)
XPS
ELF file
Bitstream
FPGA
Hình 2.18. Sơ đồ luồng thiết lập hệ thống
Các bộ công cụ của Xilinx được sử dụng trong luồng thiết kế này bao gồm: ISE, XPS (Xilinx Platform Studio), PlanAhead và SDK (Software Development KIT) phiên bản 14.1. Khu vực tĩnh và hộp đen (blackbox) của hệ thống được tạo ra bởi công cụ XPS. XPS thực hiện kết nối các lõi IP và tổng hợp để tạo ra các file nestlist (.ngc file) cũng như các file ràng buộc (.bmm file), đồng thời tạo các driver và datasheet để phục vụ cho việc phát triển phần mềm ở các công đoạn tiếp theo. Công cụ ISE được sử dụng để tổng hợp và tạo ra các mô đun đặt vào khu vực động của FPGA. Cụ thể, các bộ đệm với kích thước khác
nhau hoặc các cấu hình mạng chứa các bộ định tuyến đã được tính toán, tối ưu các thông số theo từng ứng dụng cụ thể (ví dụ: Kích thước bộ đệm, số kênh ảo, loại chuyển mạch, v.v.). Hoặc các lõi PE tương ứng theo ứng dụng sẽ được tổng hợp để chuẩn bị cho việc tạo ra file cấu hình (bitstream file). Các file cấu hình nạp vào FPGA khi hệ thống yêu cầu được tổng hợp bởi công cụ PlanAhead từ các file đã được tạo ra từ công cụ XPS và ISE nói trên. Tiếp theo một phần mềm điều khiển sẽ được phát triển trên công cụ SDK và được biên dịch thành một file có cấu trúc ELF, sau đó được nạp xuống FPGA để phục vụ cho quá trình điều khiển và giám sát cấu hình.
2.3.2.2. Thiết lập hệ thống
Hệ thống cấu hình lại từng phần động được xây dựng gồm hai khu vực chính: Khu vực tĩnh và khu vực cấu hình như được trình bày trong Hình 2.19.
Khu vực động Khu vực tĩnh
Microblaze Processor
Uart
SysACE CompactFlash
HWICAP AXI/PLB BUS Timer
Flash Memory
Host
DDR3 NoC
Phần không cần cấu
hình Phần không
cần cấu hình
Phần cấu hình Phần cấu
hình
Hình 2.19. Sơ đồ khối tổng quát của hệ thống
Khu vực tĩnh được đặt trong vùng tĩnh của FPGA. Nó chịu trách nhiệm điều khiển quá trình hoạt động của toàn hệ thống trong suốt thời gian chạy ứng dụng và điều khiển quá trình cấu hình lại các mô đun của NoC tương ứng với các kịch bản đã được trình bày trong Mục 2.3.1. Các thành phần chính được đặt trong khu vực tĩnh gồm vi xử lý nhúng đóng vai trò xử lý trung tâm và điều khiển các hoạt động cấu hình của hệ thống qua hệ thống Bus AXI (Advanced eXtensible Interface ) hoặc PLB (Processor Local Bus). Khối UART (Universal Asynchronous Receiver/Transmitter) có chức năng giao tiếp với máy tính thông qua cổng truyền thông nối tiếp chuẩn RS-232 để hiển thị các thông báo và kết quả trên máy tính. Khối sysAce_Compact Flash thực hiện giao tiếp với bộ nhớ ngoài CF (Compact Flash), nơi lưu trữ các file cấu hình như kích thước bộ đệm, bộ định tuyến hay các PE được tổng hợp theo các ứng dụng. Bộ định thời (Timer) sử dụng để đo thời gian cấu hình của hệ thống. HWICAP là một lõi cứng được cung cấp bởi Xilinx [98-99]
(XPS_ICAP dùng cho Bus PLB hoặc AXI_ICAP sử dụng cho Bus AXI), nó có vai trò rất
quan trọng trong hệ thống cấu hình lại động đó là nhận các file cấu hình từ bộ nhớ ngoài CF hoặc từ bộ nhớ SDRAM DDR3 để nạp vào khu vực cấu hình động của FPGA. Ngoài ra, khu vực tĩnh còn chức một số mô đun không cần cấu hình lại của NoC.
Khu vực động chứa các mô đun chức năng còn lại của NoC mà có thể thay đổi, sửa lỗi hoặc gỡ bỏ tại thời gian chạy để thích nghi với yêu cầu thay đổi của ứng dụng.
Hoạt động cấu hình lại được thực hiện nhờ vào bộ điều khiển cấu hình và vi xử lý nhúng được đặt trong phần tĩnh. Bộ điều khiển cấu hình kết nối bộ nhớ ngoài CF hoặc bộ nhớ SDRAM DDR3 với ICAP thông qua Bus AXI/PLB. Bộ nhớ ngoài CF được sử dụng để lưu trữ các file cấu hình từng phần đã được tổng hợp trước dựa trên phân tích các đặc tính của ứng dụng. Để thực hiện một quá trình cấu hình, bộ điều khiển sẽ đọc file cấu hình mong muốn từ bộ nhớ ngoài CF hoặc bộ nhớ SDRAM DDR3 để ghi vào ICAP, tiếp theo dữ liệu sẽ được đọc từ ICAP để ghi vào bộ nhớ cấu hình của FPGA.
Hệ thống được xây dựng và tổng hợp trên XPS như Hình 2.20.
Hình 2.20. Thiết lập phần cứng trên công cụ XPS
Sau khi phần cứng của hệ thống được thiết lập, một phần mềm điều khiển bằng ngôn ngữ C được tạo ra trên công cụ SDK dùng để điều khiển, giám sát quá trình cấu hình cũng như đo đạc một vài thông số cấu hình như thời gian hoặc tốc độ.
Trong nghiên cứu này, tác giả sử dụng hai phương pháp cấu hình. Phương pháp thứ nhất, thực hiện cấu hình từ bộ nhớ ngoài CF. Ưu điểm của phương pháp này là tài nguyên mà hệ thống sử dụng nhỏ. Tuy nhiên, tốc độ thực hiện cấu hình chậm vì độ rộng bus dữ liệu của bộ nhớ CF bé (8 bit).
Phương pháp thứ hai, thực hiện cấu hình từ bộ nhớ SDRAM DDR3. Phương pháp này có tốc độ cấu hình cao hơn phương pháp cấu hình từ CF vì bộ nhớ SDRAM DDR3 có tốc độ hoạt động và độ rộng Bus dữ liệu lớn hơn bộ nhớ CF. Tuy nhiên, hệ thống phải sử dụng tài nguyên nhiều hơn.
Tiếp theo, một vài trường hợp nghiên cứu cấu hình sẽ được trình bày.