Linux nhúng trên FPGA


10

Tôi có kinh nghiệm rất hạn chế với các GPU (Altera - chỉ sử dụng các công cụ thiết kế trực quan).

Tôi đang lên kế hoạch cho một dự án mới trong đó tôi cần có FPGA và tôi có thể hưởng lợi rất nhiều từ một linux thực sự chạy trên cùng một bo mạch (chủ yếu là cho giao tiếp TCP cũng như một số DSP).

Câu hỏi của tôi là, có một GPU được đề xuất có một linux nhúng được hỗ trợ chuẩn bị cho nó không? không có trình điều khiển ưa thích (chỉ ethernet, wifi có thể là một điểm cộng, ...). Tôi tưởng tượng sẽ có một bộ điều khiển vi mô được tích hợp trong đồ họa (điều này có nghĩa là nó sẽ ăn rất nhiều đồ họa và tôi sẽ cần một bộ đồ họa lớn hơn).

Câu trả lời:


15

Một lõi của bộ xử lý RISC 32 bit có khả năng chạy phiên bản linux không có mmu thực sự không cần phải lớn đến mức đó - tài nguyên thực sự bạn cần là nhiều RAM hơn (10 MB megabyte) so với bất kỳ FPGA nào, vì vậy bạn Có lẽ tôi sẽ muốn SDRAM trên bo mạch và bộ điều khiển cho điều đó trong FPGA.

Điều đó nói rằng, nếu bạn muốn bất cứ thứ gì ngoài một mức hiệu suất tầm thường, bạn có thể muốn một lõi với một số tối ưu hóa (đường ống, v.v.), và điều đó bắt đầu tăng kích thước lên một chút. Thêm một mmu đầy đủ sẽ giúp phân bổ (lại) bộ nhớ hiệu quả hơn và cho phép hành vi sao chép (ghi) trên bản sao thông thường.

Cả hai nhà cung cấp lớn của FPGA đều có lõi xử lý mềm với các cổng linux có sẵn - Microblaze cho Xilinx, Nios II cho Altera. Bạn có thể nên đọc tài liệu của họ để biết các đề xuất nền tảng cụ thể vì tất nhiên đó là mục tiêu di chuyển theo thời gian. Thiết kế lõi của bên thứ ba có thể lớn hơn một chút cho hiệu năng tương tự, nếu nó được viết theo cách dễ mang theo hơn và không được tối ưu hóa cụ thể cho một họ đồ họa cụ thể.

Trong lịch sử đã có những con chip có sẵn kết hợp cả lõi xử lý cứng (thường là powerpc) với một vùng vải có thể cấu hình được. Một tùy chọn khác để xem xét sẽ là một bộ xử lý riêng biệt (có khả năng là ARM) trên cùng một bo mạch với một đồ họa.

Rất nhiều quyết định sẽ phụ thuộc vào mức độ bạn cần kết hợp chặt chẽ giữa bộ xử lý và đồ họa. Nếu bạn có thể giảm sự cố đối với các thanh ghi cấu hình và luồng dữ liệu, thì đó có thể là mô-đun giống như treo một bảng đồ họa với chip USB nhanh ra khỏi cổng máy chủ USB của một bảng linux nhúng như BeagleBoard hoặc RasberryPi. Để tích hợp chặt chẽ hơn, bạn có thể muốn có FPGA trên cùng một bo mạch và ngồi trên bus ngoài của bộ xử lý. Hoặc đối với tốc độ dữ liệu thấp, việc đặt giao diện thanh ghi SPI trong một đồ họa và việc giao diện UART là hoàn toàn có thể thực hiện được mặc dù khó hơn một chút.

Cuối cùng, có một câu hỏi là bạn có thực sự cần một hệ điều hành đầy đủ như linux hay không, nếu một ngăn xếp TCP nhúng có kích cỡ "bộ điều khiển vi mô" sẽ giải quyết vấn đề của bạn trong khi cần ít bộ nhớ hơn.


6

Microblaze của Xilinx chạy Linux tốt, giả sử nó đủ nhanh cho mục đích của bạn - nó sẽ chỉ thực hiện một số MIPS 10 cao trong các thiết bị rẻ hơn, 100-200 MIPS trong các gia đình đắt tiền.

Xilinx có một repo git , hoặc có một vài bản phân phối cụ thể của Xilinx. Tính linh hoạt của đồ họa có thể là một chút đau đớn cũng như lợi ích, vì bản đồ bộ nhớ và ánh xạ IRQ của bạn, hoặc thậm chí những gì các perpiher có sẵn có thể thay đổi trong quá trình phát triển dự án.

Petalinux có các kịch bản để quản lý loại điều này và cập nhật các bit của cấu hình kernel quan trọng dựa trên thiết kế hệ thống mới nhất và lớn nhất của bạn.


4

Dòng Virtex của Xilinx có các phiên bản FPGA với PowerPC lõi cứng. Khá dễ dàng để Linux chạy trên PowerPC, các sinh viên của tôi đã thực hiện nó cho nhiều dự án thiết kế cao cấp. Họ vẫn có nhiều vải cấu hình cho thiết kế phần cứng của bạn để lấp đầy.

Các Virtex2 bảng Pro đánh giá là rất phổ biến trong các dự án nghiên cứu giáo dục và học tập. Vì Xilinx đã bỏ hỗ trợ cho chip phiên bản này trong các công cụ gần đây của họ, bạn có thể chọn một chip khá rẻ. Tôi tin rằng nó đã được hỗ trợ lên tới phiên bản 9.x hoặc hơn. Hừm. Đó là vài năm trước, vì vậy có lẽ tôi là một chút hoài cổ. Dù sao đi nữa, tôi vẫn chuyển những bảng này cho những sinh viên quan tâm để họ làm bất cứ điều gì họ muốn với họ.


1
Nếu tôi không nhầm nhiều, họ được gọi là Virtex xilinx.com/onlinestore/v2pro_boards.htmlm
Ali

1
@Ali - Tôi không nghĩ bạn đã nhầm, và bạn đã có một tài liệu tham khảo khá đáng tin cậy cho khẳng định của mình. Xin vui lòng đề xuất một chỉnh sửa trong các tình huống như thế này!
Kevin Vermeer

3

SmartFusion của Actel tích hợp một GPU với lõi ARM Cortex-M3 cứng IP và động cơ analog tiên tiến trong một thiết bị chip đơn.

uClinux chạy khá tốt trên lõi Cortex-M3 của SmartFusion. Kiểm tra trang web này để biết thêm chi tiết.


2

Tùy thuộc vào khung thời gian của bạn, bạn cũng có thể xem xét dòng Zynq-7000 mới của Xilinx, kết hợp bộ xử lý ARM với Artix-7 hoặc Kintex-7. Xilinx tuyên bố họ sẽ vận chuyển số lượng sản xuất trong nửa cuối năm 2012.

Các nhà cung cấp khác có thể có sản phẩm tương tự. Tôi không biết khi nào hoặc khi nào Xilinx sẽ mang hỗ trợ Zynq đến ISE WebPack miễn phí; ngay bây giờ, họ tuyên bố bạn cần ISE Embedded Edition.


Tại sao bạn thực hiện câu trả lời wiki cộng đồng này? Điều đó có lẽ không cần thiết.
Kevin Vermeer
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.