Thiết kế FPGA có trở lại phong cách không?

Created: Tháng Mười Một 1, 2021
Updated: Tháng Bảy 1, 2024

Phát triển từ cuộc cách mạng ASIC của những năm 1970 là sự ra đời của MCU, MPU và FPGA, nơi mà các bộ điều khiển chủ được xây dựng trên một chip duy nhất chứa các khối logic và nhiều tính năng tích hợp. Vào năm 2021, một số người trong ngành đã tuyên bố rằng FPGA giờ đây là nền tảng được ưa chuộng cho các ứng dụng tiên tiến. Hãy xem mọi người đang nói gì và bạn có thể chọn FPGA trong thiết kế của mình ở đâu.

Tôi không đủ tuổi để nhớ những năm 1970, thời điểm mà ASICs bắt đầu được đưa vào thị trường và cuối cùng hỗ trợ mức độ tích hợp và giảm kích thước hình dạng cao hơn. Di sản của ASICs vẫn tiếp tục đến ngày nay, và các nhà sản xuất phổ biến vẫn cung cấp một loạt các chip thực hiện các chức năng chuyên biệt với kích thước nhỏ gọn. Một số nhiệm vụ mà việc thực hiện trong logic lập trình chung sẽ rất khó khăn đột nhiên trở nên dễ dàng khi những chức năng đó được xây dựng vào một ASIC với logic chuyên biệt hoặc các tính năng dành riêng. Ngay từ đầu thập kỷ này, microcontrollers được giới thiệu bởi Intel, mang lại cho các nhà thiết kế mọi thứ họ cần để xây dựng các hệ thống tích hợp hơn thay vì dựa vào các mạch logic rời rạc.

Sau ASICs và MCUs là sự ra đời của các mảng cổng lập trình trường (FPGA) vào năm 1984, với thành phần đầu tiên được giới thiệu bởi Xilinx. Ngay từ đầu, các nhà thiết kế ASIC đã sử dụng FPGA để mô phỏng logic mà họ dự định thực hiện trong các thiết kế ASIC của mình như một nền tảng thử nghiệm. Theo thời gian, FPGA được triển khai trong nhiều phần cứng sản xuất, hoặc là để bổ sung cho các ASIC thông thường hoặc để thực hiện các chức năng logic chuyên biệt mà không có sẵn trong các bộ xử lý hoặc ASIC khác. Số lượng giao diện có sẵn trên các nền tảng FPGA cũng đã mở rộng đến mức mà một FPGA có thể được sử dụng làm bộ điều khiển chủ cho bất kỳ hệ thống nhúng nào.

Ngày nay, thiết kế FPGA vẫn được ưa chuộng bởi các nhà phát triển nhúng có kinh nghiệm, và tỷ lệ tăng trưởng dự báo trên thị trường FPGA toàn cầu dao động từ 6.4% đến 10% CAGR trong 6-7 năm tới. Chỉ để tham khảo, ước tính cao nhất tương đương với CAGR dự báo là 10.1% trên thị trường MCU toàn cầu. Câu hỏi dành cho nhà thiết kế nhúng là, điều gì đang thúc đẩy sự phổ biến của FPGA so với các nền tảng khác, và FPGA có nên là điểm xuất phát cho một thiết kế mới của bạn không? Chúng ta sẽ xem xét kỹ hơn những câu hỏi này trong khi so sánh một số lựa chọn kiến trúc hệ thống cho một hệ thống nhúng mới.

Những gì Thúc Đẩy Thiết Kế FPGA Mới?

FPGA luôn được ưa chuộng trong một số trường hợp rộng lớn nhờ vào khả năng thích ứng của chúng, như đã được thảo luận trong một bài viết trước đây trên blog này. Một số lĩnh vực cấp cao nơi FPGA truyền thống thành công bao gồm:

  • Triển khai logic chuyên biệt trên nền tảng gọn nhẹ, thường phải được thực hiện bằng logic tuần tự chậm trên MCU

  • Lĩnh vực ứng dụng hoặc sản phẩm nơi thời gian ra thị trường là quan trọng do thời gian phát triển dài cho ASIC

  • Bất kỳ ứng dụng nào yêu cầu ảo hóa hoặc mô phỏng phần cứng

  • Bất kỳ sản phẩm nào có thể yêu cầu lập trình lại nhanh chóng mà không cần kết nối với hệ thống bên ngoài

Nếu bạn không quen với thiết kế và lập trình FPGA, nhưng bạn biết một số ý tưởng cơ bản điều khiển hoạt động của FPGA, thì danh sách trên không nên làm bạn ngạc nhiên. Đây là những lĩnh vực khá rộng lớn để xem xét, nhưng chúng dịch thành các ứng dụng thực tế trong nhiều ngành công nghiệp.

FPGA so với MPU/MCU và ASIC

Bạn sẽ nhận thấy ở trên rằng tôi đã dành nhiều thời gian tham chiếu đến ASIC như là đối thủ chính của FPGA. Thực sự, phạm vi rộng lớn các thành phần cho phép các nhà phát triển nhúng kết hợp MCU, chức năng chuyên biệt với ASIC, và các phụ kiện hoặc giao diện tốc độ thấp. FPGA mang lại nhiều lợi thế trong các lĩnh vực khác nhau, và đáng giá so sánh tất cả các lựa chọn này khi chúng liên quan đến một hệ thống nhúng.

Từ danh sách trên, vai trò của FPGA có thể được làm rõ: bộ điều khiển chủ linh hoạt cho các hệ thống nhúng không phụ thuộc vào ứng dụng và hệ điều hành. Thiết kế FPGA mang lại lợi ích bổ sung về khả năng nâng cấp, miễn là thiết kế bảng mạch và hệ thống có thể thích nghi với những thay đổi này. Một khi chúng ta xem xét một số ứng dụng mới trong ngành công nghiệp, lý do tại sao FPGA ngày càng phổ biến hơn ngày nay sẽ trở nên rõ ràng, với sự phổ biến của chúng chỉ dự kiến sẽ tăng trong tương lai gần.

Người Dùng Chính trong Ngành

Không có một danh mục sản phẩm cụ thể nào truyền thống chịu trách nhiệm cho việc tiêu thụ FPGA. Kể từ khi chúng được giới thiệu lần đầu, những người tiêu dùng chính của FPGA trong ngành bao gồm hệ thống viễn thông, quân sự - hàng không vũ trụ, ô tô, sản phẩm tiêu dùng nhẹ và thậm chí là ngành dầu khí. Thực tế, một số công nghệ ban đầu sẽ trở thành FPGA ban đầu được phát triển dưới Zilog, một công ty con của Exxon mà IP sau này được Xilinx mua lại.

Khi FPGA ngày càng được ưa chuộng, trọng tâm đã chuyển sang các ngành khác yêu cầu logic chuyên biệt được triển khai trực tiếp trên một bộ xử lý đơn, bất chấp số lượng lớn ASIC từ nhiều nhà cung cấp có thể bao gồm cùng một thiết kế. Ví dụ, nhiều sản phẩm thẻ mezzanine và thẻ con trong thị trường quân sự - hàng không vũ trụ sử dụng FPGA như một nền tảng tính toán nhúng linh hoạt cung cấp tốc độ dữ liệu cực nhanh với quyền truy cập vào nhiều phụ kiện và thẻ qua backplane. Viễn thông và mạng vẫn là một lĩnh vực ứng dụng với thiết kế và phát triển FPGA rộng rãi do thời gian ra thị trường nhanh hơn và sự dễ dàng nâng cấp để thích ứng với sự thay đổi trong tiêu chuẩn và triển khai công nghệ.

Thiết Kế và Phát Triển FPGA Ngày Nay

Các lĩnh vực được nêu bật ở trên không hề thấy sự giảm sử dụng FPGA. Viễn thông là một lĩnh vực đáng chú ý; ví dụ, Huawei là một trong những người tiêu dùng FPGA lớn nhất thế giới, và họ thậm chí còn tiếp thị một nền tảng “đám mây FPGA”, cung cấp dịch vụ điện toán đám mây tăng tốc. Thậm chí còn có một kho lưu trữ GitHub của Huawei Cloud để giúp người dùng bắt đầu với phát triển ứng dụng. Việc sử dụng FPGA trong cơ sở hạ tầng của họ cũng đã góp phần vào khả năng triển khai dịch vụ 5G trước các công ty viễn thông khác. Ngày nay, những lợi ích được nhận diện ở trên đang thúc đẩy thiết kế và phát triển FPGA vào hai lĩnh vực: robot và AI. Mặc dù hai lĩnh vực này có mối liên kết sâu sắc, AI có lẽ là động lực lớn hơn nhiều cho việc thiết kế và phát triển FPGA mới.

AI đang Thúc Đẩy Thiết Kế và Sử Dụng FPGA

Các nhà lãnh đạo trong lĩnh vực FPGA dự đoán rằng việc triển khai AI trong nhiều hệ thống phần cứng sẽ thúc đẩy những thay đổi lớn trong việc sử dụng silicon trên những thành phần này. Điều này không có nghĩa là bạn không thể sử dụng một MCU trong robot hoặc AI nhẹ; sự phổ biến của các mô-đun tăng tốc AI kết nối qua USB hoặc cầu PCIe minh họa cho một nỗ lực nhằm đáp ứng nhu cầu của các nhà phát triển MCU/MPU cho các hệ thống nhúng thông minh. Tuy nhiên, FPGA là một nền tảng linh hoạt hơn nhiều nơi mà các phép tính suy luận có thể được thực hiện rất nhanh bằng cách song song hóa tính toán; vải FPGA có thể được tùy chỉnh để phù hợp với thuật toán, trong khi logic tuần tự trong GPU/MCU/MPU không thể.

Một thành phần mới hơn đang được sử dụng trong các hệ thống nhúng tính toán cao, bao gồm các hệ thống triển khai suy luận AI trên bo mạch, là dòng SoC Zynq-7000 All Programmable từ Xilinx. Thành phần này hoạt động lên đến 866 MHz với một bộ xử lý ứng dụng dựa trên lõi ARM Cortex-A9. Các giao diện bổ sung như Ethernet gigabit, DDR, Flash, PCIe, và số lượng GPIO cao làm cho thành phần này dễ dàng tích hợp vào các hệ thống tính toán biên. Các giao diện tốc độ thấp như I2C và SPI cũng cho phép Zynq hoạt động với ASICs thu thập dữ liệu từ cảm biến analog hoặc các giao diện tiêu chuẩn khác (CANBus, RS-485, v.v.).

Xilinx là một trong những nhà lãnh đạo trong lĩnh vực AI trên FPGA, và họ cung cấp nhiều tài nguyên cho nhà phát triển. Một phát triển thú vị với bộ xử lý Zynq là việc triển khai Python trên Zynq, hoặc PYNQ như Xilinx gọi nó. Các nhà cung cấp FPGA khác đang xây dựng dòng sản phẩm của mình để cạnh tranh với Zynq, vì vậy các nhà phát triển AI nhúng sẽ có nhiều lựa chọn cho tính toán AI trên thiết bị sử dụng thiết kế FPGA.

Thách Thức Trong Việc Sử Dụng FPGA

FPGA là nền tảng tuyệt vời cho nhà phát triển có kinh nghiệm đang làm việc trong các lĩnh vực ứng dụng tiên tiến hơn. Khi cảnh quan tiêu chuẩn, giải pháp ASIC, và khả năng của MCU/MPU đang thiếu hoặc thay đổi nhanh chóng, FPGA có lẽ là một lựa chọn tốt hơn cho một hệ thống mới. Mặc dù FPGA đã cho phép thành công trong một loạt các lĩnh vực, chúng mang theo một bộ thách thức riêng về phần cứng và phát triển:

  • Quản lý nhiệt: Giống như các dòng MCU/MPU, FPGA cũng có thể tạo ra lượng nhiệt đáng kể, tùy thuộc vào kích thước của linh kiện. Đây không phải là thách thức mới, mặc dù nó được làm phức tạp hơn bởi các yêu cầu thiết kế trong các hệ thống nhỏ gọn, tính toán cao như tính toán biên, hoặc trong thiết bị 5G công suất cao. Một số khách hàng của tôi đã xem xét các chiến lược tản nhiệt bằng cách sử dụng tản nhiệt độc đáo hoặc liên kết với vỏ hệ thống.

  • Đặt vị trí và định tuyến: Trong các ứng dụng tính toán cao, vẫn còn thách thức với các nhiệm vụ đặt vị trí và định tuyến, nơi phần mềm của nhà cung cấp độc quyền được ánh xạ lên vải FPGA. Điều này mất thời gian vì phần mềm biên dịch phải sử dụng một thuật toán để tìm ra một ánh xạ hỗ trợ tất cả các chức năng logic trong các ứng dụng. Các lĩnh vực ứng dụng gặp thách thức này là tính toán hiệu năng cao và trung tâm dữ liệu. Điều này cũng có thể gây ra vấn đề trong AI khi FPGA được sử dụng cho các nhiệm vụ cấp hệ thống bổ sung cho suy luận/đào tạo.

  • Nguyên liệu phát triển: Cộng đồng phát triển FPGA không lớn bằng cộng đồng ASIC + MCU, hoặc cộng đồng phần mềm mã nguồn mở nói chung. MCU dễ dàng hơn cho các nhà phát triển ít kinh nghiệm bắt đầu sử dụng nhờ vào các nền tảng phổ biến như Arduino và ESP32. Tuy nhiên, các nhà cung cấp FPGA đã trở nên tốt hơn nhiều trong việc cung cấp nguồn lực cho các nhà phát triển để họ có thể nhanh chóng triển khai giải pháp trên FPGA. Số lượng dự án FPGA mới trên GitHub cũng giữ kịp với các dự án MCU, như được hiển thị trong bảng dưới đây.

FPGA sẽ trông như thế nào trong tương lai?

FPGA hiện tại dành khoảng 50% hoặc hơn diện tích silicon cho IOs vì các sản phẩm dựa trên FPGA cũ yêu cầu giao tiếp với một loạt các thiết bị ngoại vi qua nhiều giao diện. Khi sự chú trọng dịch chuyển nhiều hơn sang các ứng dụng tính toán cao như AI, đừng ngạc nhiên khi nhiều diện tích silicon hơn được dành cho các khối tính toán AI, có thể với các kết nối liên tục phát triển và di chuyển dữ liệu linh hoạt tại thời gian chạy. Tích hợp đa dạng cũng sẽ được tích hợp vào SoC FPGA, nơi các khối AI, GPU/TPU, bộ nhớ băng thông cao và đầu vào RF được kết hợp vào một gói nhỏ gọn.

Mặc dù FPGA có thể có các tính năng ASIC được triển khai và lập trình lại trong vải FPGA khi cần, chúng vẫn là bổ sung tuyệt vời cho các hệ thống dựa trên ASIC. Một kiến trúc thiết kế có ý nghĩa là đặt tất cả các tính năng có thể yêu cầu nâng cấp vào FPGA, trong khi sử dụng sự chuẩn hóa của ASIC để giao tiếp với các thiết bị ngoại vi đơn giản như cảm biến và bus dữ liệu. Điều này chắc chắn giảm thời gian thiết kế FPGA khi các nhà phát triển có thể tập trung vào việc hoàn thiện các tính năng tính toán cao cần thiết trong sản phẩm cuối cùng. Nếu bạn muốn sử dụng kiến trúc này trong các hệ thống nhúng thông minh, bạn sẽ cần một số thành phần khác:

Khi bạn cần tìm linh kiện cho thiết kế FPGA tiếp theo của mình, hãy sử dụng các tính năng tìm kiếm và lọc nâng cao trên Octopart. Khi bạn sử dụng công cụ tìm kiếm điện tử của Octopart, bạn sẽ có quyền truy cập vào dữ liệu giá của nhà phân phối được cập nhật, hàng tồn kho linh kiện, và thông số kỹ thuật của linh kiện, và tất cả đều dễ dàng truy cập trong giao diện thân thiện với người dùng. Hãy xem trang mạch tích hợp của chúng tôi để tìm linh kiện bạn cần.

Hãy cập nhật với các bài viết mới nhất của chúng tôi bằng cách đăng ký nhận bản tin của chúng tôi.

 

 

 

 

 

Related Resources

Back to Home
Thank you, you are now subscribed to updates.