FPGA là gì? Kiến thức về cấu trúc FPGA và lập trình

FPGA (Field-programmable gate array) là một mạch tích hợp bao gồm các khối phần cứng bên trong với các kết nối liên kết có thể lập trình cho người dùng để tùy chỉnh hoạt động cho một ứng dụng cụ thể. Trong bài viết này, mời bạn hãy cùng Uniduc tìm hiểu xem FPGA là gì, nguyên lý hoạt động ra sao và ứng dụng của FPGA.

I. FPGA là gì?

Field-programmable gate array (FPGA) là một mạch tích hợp bao gồm các khối phần cứng bên trong với các kết nối liên kết có thể lập trình cho người dùng để tùy chỉnh hoạt động cho một ứng dụng cụ thể. Các kết nối liên kết có thể dễ dàng được lập trình lại, cho phép FPGA thích ứng với các thay đổi đối với thiết kế hoặc thậm chí hỗ trợ một ứng dụng mới trong suốt thời gian hoạt động của bộ phận.

FPGA có nguồn gốc từ các thiết bị trước đó như bộ nhớ chỉ đọc có thể lập trình (PROM) và thiết bị logic có thể lập trình (PLD). Các thiết bị này có thể được lập trình tại nhà máy hoặc tại hiện trường, nhưng chúng sử dụng công nghệ cầu chì (do đó, cụm từ “đốt một PROM”) và không thể thay đổi sau khi được lập trình. Ngược lại, FPGA lưu trữ thông tin cấu hình của nó trong một phương tiện có thể lập trình lại như RAM tĩnh (SRAM) hoặc bộ nhớ flash. Các nhà sản xuất FPGA bao gồm Intel, Xilinx, Lattice Semiconductor, Microchip Technology và Microsemi.

II. Kiến trúc FPGA.

Kiến trúc FPGA chính xác có sự khác biệt giữa các nhà sản xuất. Ở đây, chúng tôi trình bày một cấu trúc FPGA chung chứa các phần tử sau:

  • Khối logic có thể lập trình: Các khối logic có thể được hình thành từ hàng nghìn bóng bán dẫn đến hàng triệu bóng bán dẫn. Chúng thực hiện các chức năng logic theo yêu cầu của thiết kế và bao gồm các thành phần logic như cặp bóng bán dẫn, bảng tra cứu (LUT), và Logic điều khiển và mang (flip flops và bộ ghép kênh).
  • Khối I / O có thể lập trình: Chúng kết nối các khối logic với các thành phần bên ngoài thông qua các chân giao diện.
  • Tài nguyên kết nối có thể lập trình: Chúng là các kết nối điện có thể lập trình (được đặt sẵn theo chiều dọc và chiều ngang) cung cấp đường dẫn định tuyến cho các khối logic có thể lập trình được. Các đường dẫn định tuyến chứa các đoạn dây có độ dài khác nhau có thể được kết nối với nhau thông qua các công tắc lập trình điện. Mật độ FPGA phụ thuộc vào số lượng phân đoạn được sử dụng cho các đường dẫn định tuyến.

III. Nguyên lý hoạt động của FPGA.

FPGA bao gồm các mô-đun logic được kết nối bằng các kênh định tuyến. Mỗi mô-đun được tạo thành từ một bảng tra cứu có thể lập trình được dùng để kiểm soát các phần tử mà mỗi ô bao gồm và để thực hiện các chức năng logic của các phần tử tạo nên ô. Ngoài bảng tra cứu, mỗi ô chứa các bộ cộng xếp tầng cho phép thực hiện việc bổ sung. Phép trừ cũng có thể được thực hiện bằng cách thay đổi các trạng thái logic của đầu vào. Ngoài ra, còn có các thanh ghi (phần tử logic được sử dụng để thực hiện các chức năng bộ nhớ đơn giản nhất) và bộ ghép kênh (phần tử chuyển mạch).

FPGA cũng có thể bao gồm các bộ nhớ động và tĩnh trên chip, tùy thuộc vào kiểu máy cụ thể của nhà sản xuất. Ngoài ra, trong FPGA, bạn có thể tìm thấy các thành phần sẵn sàng, chẳng hạn như lõi CPU, bộ điều khiển bộ nhớ, bộ điều khiển USB hoặc thẻ mạng. Các thành phần này phổ biến đến mức không cần phải triển khai chúng trong cấu trúc FPGA. Thay vào đó, bạn có thể sử dụng một thành phần đã được sản xuất sẵn.

IV. Các loại FPGA.

Kiến trúc định tuyến ảnh hưởng đến mật độ và hiệu suất của FPGA. Dựa trên sự sắp xếp bên trong của các khối, FPGA có thể được phân loại thành ba loại:

  • Mảng đối xứng: Cách sắp xếp này bao gồm các khối logic được sắp xếp theo hàng và cột của ma trận và kết nối các tài nguyên giữa chúng với nhau. Ma trận đối xứng này được bao quanh bởi các khối I / O kết nối nó với thế giới bên ngoài.
  • Kiến trúc dựa trên hàng: Nó xen kẽ các hàng tài nguyên kết nối có thể lập trình với các hàng khối logic trong khi các khối Đầu vào / Đầu ra nằm ở ngoại vi của các hàng. Một hàng có thể được kết nối với các hàng liền kề thông qua liên kết dọc.
  • PLD phân cấp: Chúng được thiết kế theo cách phân cấp với cấp cao nhất chỉ chứa các khối logic và các kết nối liên kết. Mỗi khối logic chứa một số mô-đun logic. Và mỗi mô-đun logic có các phần tử chức năng tổ hợp cũng như tuần tự.

Dựa trên loại công nghệ lập trình, FPGA có thể được phân thành ba loại:

  • FPGA dựa trên SRAM: Các tế bào RAM tĩnh điều khiển bóng bán dẫn truyền, cổng truyền hoặc bộ ghép kênh. Chúng có thể được lập trình lại khi thiết kế phát triển, nhưng khi tắt nguồn, chương trình sẽ bị mất và chúng cần được cấu hình khi bắt đầu. Do đó, chúng cần một bộ nhớ ngoài để lưu trữ chương trình.
  • FPGA dựa trên chống sử dụng: Chúng sử dụng công nghệ CMOS chống sử dụng và một khi FPGA đã được lập trình, nó không thể được lập trình lại. Họ giữ lại chương trình của họ khi tắt nguồn.
  • FPGA dựa trên Flash: Chúng sử dụng các ô cổng nổi làm công tắc để cải thiện hiệu quả khu vực. Họ không bị mất thông tin khi thiết bị bị sập nguồn. Công nghệ này không cần bộ nhớ ngoài để lưu trữ chương trình, nhưng chúng không thể được lập trình lại trong thời gian vô hạn do tích tụ điện tích trong oxit.

V. Ứng dụng của FPGA.

Nhiều ứng dụng dựa vào việc thực hiện song song các hoạt động giống hệt nhau; khả năng định cấu hình các CLB của FPGA thành hàng trăm hoặc hàng nghìn khối xử lý giống nhau có các ứng dụng trong xử lý hình ảnh, trí tuệ nhân tạo (AI), bộ tăng tốc phần cứng trung tâm dữ liệu, mạng doanh nghiệp và hệ thống hỗ trợ lái xe nâng cao trên ô tô (ADAS).

Nhiều lĩnh vực ứng dụng này đang thay đổi rất nhanh khi các yêu cầu phát triển và các giao thức và tiêu chuẩn mới được áp dụng. FPGA cho phép các nhà sản xuất triển khai các hệ thống có thể được cập nhật khi cần thiết.

Một ví dụ điển hình về việc sử dụng FPGA là tìm kiếm tốc độ cao: Microsoft đang sử dụng FPGA trong các trung tâm dữ liệu của mình để chạy các thuật toán tìm kiếm Bing. FPGA có thể thay đổi để hỗ trợ các thuật toán mới khi chúng được tạo ra. Nếu nhu cầu thay đổi, thiết kế có thể được thay thế để chạy các quy trình mô phỏng hoặc mô hình hóa trong ứng dụng HPC. Tính linh hoạt này rất khó hoặc không thể đạt được với ASIC.

Các mục đích sử dụng khác của FPGA bao gồm hàng không vũ trụ và quốc phòng, điện tử y tế, truyền hình kỹ thuật số, điện tử tiêu dùng, điều khiển động cơ công nghiệp, công cụ khoa học, hệ thống an ninh mạng và truyền thông không dây.

Leave a reply:

Your email address will not be published.

Site Footer