Với sự phổ biến ngày càng tăng của vi điều khiển, các kỹ sư đang sử dụng vi điều khiển nhiều hơn FPGA. Các vi điều khiển đã trở nên chiếm ưu thế trên FPGA vì chi phí rẻ của họ, hỗ trợ tốt, dễ tính sẵn có, cộng đồng lớn, tính linh hoạt, lập trình vv Nhưng khác hơn là bộ vi xử lý có một số hạn chế như các hướng dẫn thiết lập, thực hiện tuần tự các chương trình (xử lý tuần tự), thiếu tính linh hoạt và khả năng tái sử dụng, v.v… Tuy nhiên FPGA có thể khắc phục những hạn chế này vì FPGA có khả năng thực thi song song các chương trình và nó linh hoạt & có thể tái sử dụng có nghĩa là nó có thể được lập trình lại nhiều lần cho các tác vụ khác nhau.
FPGA là gì và nó khác gì với Vi điều khiển
Một Field-Programmable Gate Array là một chip silicon mạch tích hợp trong đó có hàng loạt các cổng logic và mảng này có thể được lập trình trong lĩnh vực này có nghĩa là người dùng có thể ghi đè lên các cấu hình hiện tại với cấu hình mới được xác định và có thể tạo ra mạch kỹ thuật số của mình trên sân. FPGA có thể được coi là phương tiện chặn trống. FPGA tự nó không làm gì trong khi tùy thuộc vào các nhà thiết kế để tạo một tệp cấu hình thường được gọi là tệp bit cho FPGA. FPGA sẽ hoạt động giống như mạch kỹ thuật số khi nó được tải bằng tệp bit.
Trong khi đó đối với bộ vi điều khiển, điều này không xảy ra vì bộ vi điều khiển không thể được lập trình hoặc cấu trúc lại trong trường. Người dùng không được phép ghi đè các cấu hình hiện có của nó cũng như không được tạo bất kỳ mạch kỹ thuật số nào trên thực địa. Các bộ vi điều khiển rất dễ lập trình và cộng đồng cũng rộng rãi. Các bộ vi điều khiển là các máy tính mini được chế tạo tùy chỉnh có dạng IC trong khi FPGA chỉ chứa các khối logic có thể được quấn lại bằng điện. Ngoài ra, về mặt vi điều khiển, nó tiêu thụ ít điện năng hơn FPGA. FPGA được biết là tốn kém và nó đòi hỏi nhiều chi phí hơn vi điều khiển khi xây dựng bất kỳ thiết bị nào. FPGA cần nhiều thời gian hơn để thiết lập trong khi các bộ vi điều khiển có sẵn được xây dựng sẵn cho các ứng dụng cụ thể.
Kiến trúc FPGA
FPGA có cấu trúc thông thường gồm các ô logic hoặc mô-đun và các liên kết giữa các liên kết nằm dưới sự kiểm soát hoàn toàn của các nhà phát triển và nhà thiết kế. FPGA được xây dựng chủ yếu với ba khối chính như Khối logic có thể cấu hình (CLB), Khối I / O hoặc Miếng đệm và Ma trận chuyển mạch / Dây kết nối. Mỗi khối sẽ được thảo luận ngắn gọn bên dưới.
- CLB (Khối logic có thể cấu hình): Đây là những ô cơ bản của FPGA. Nó bao gồm một bộ tạo hàm 8 bit, hai bộ tạo hàm 16 bit, hai thanh ghi (flip-flops hoặc chốt) và các điều khiển định tuyến có thể lập trình lại (bộ ghép kênh). Các CLB được áp dụng để triển khai các macro và chức năng được thiết kế khác. Mỗi CLB đều có đầu vào ở mỗi bên, điều này làm cho chúng linh hoạt để lập bản đồ và phân vùng logic.
- I / O Pads or Blocks: Các tấm đệm Đầu vào / Đầu ra được sử dụng cho các thiết bị ngoại vi bên ngoài để truy cập các chức năng của FPGA và sử dụng các tấm đệm I / O nó cũng có thể giao tiếp với FPGA cho các ứng dụng khác nhau bằng các thiết bị ngoại vi khác nhau.
- Ma trận công tắc / Dây kết nối: Ma trận công tắc được sử dụng trong FPGA để kết nối các dây kết nối dài và ngắn với nhau trong sự kết hợp linh hoạt. Nó cũng chứa các bóng bán dẫn để bật / tắt kết nối giữa các đường khác nhau.
Khi cần FPGA
Như đã đề cập ở trên rằng vi điều khiển có một số hạn chế và không thể được sử dụng để thực hiện tác vụ song song vì vi điều khiển và vi xử lý chạy trên thực thi tuần tự các chương trình khiến nó hơi chậm trong một số ứng dụng, trong trường hợp này, FPGA có lợi thế hơn và có thể được sử dụng hiệu quả. Ngoài ra vi điều khiển có thể thực hiện các nhiệm vụ hạn chế vì chúng đi kèm với các hướng dẫn và mạch của chúng. Một lập trình viên phải tuân theo các hạn chế trong khi phát triển mã. Vì vậy, trong kịch bản này, FPGA cũng có lợi thế.
Tuy nhiên, trong trường hợp vi điều khiển, bộ xử lý chuyển từ mã này sang mã khác để đạt được một số mức độ song song. Bạn sẽ thấy viết mã trên vi điều khiển dễ hơn FPGA. Các khả năng xử lý song song của FPGAs phép bạn điều khiển gián đoạn một cách hiệu quả bằng cách sử dụng hữu hạn Nhà nước Máy móc (FSMs).
Trong trường hợp vi điều khiển, bạn phải tính đến thời gian ISR thực hiện để giải quyết sự cố gián đoạn. Bạn có thể rewire FPGA một cách dễ dàng chỉ bằng cách lập trình lại nó. Cấu hình trong FPGA được tải trên các ô logic có thể cấu hình khi bật nguồn.
Bạn không cần thực hiện bất kỳ thay đổi nào trong phần cứng để lập trình lại FPGA. FPGA phù hợp để xử lý tốc độ cao dữ liệu song song và đi kèm với mức độ tùy biến cao. Tuy nhiên, chúng cũng có những hạn chế trong hoạt động nguyên mẫu và sự phức tạp của cấu hình. Vì vậy, FPGA có thể được lựa chọn với những ưu điểm này so với vi điều khiển. Hãy bắt đầu lập trình FPGA và nhấn mạnh