FPGA: tất cả về các chip này và lập trình của chúng

chip fpga

Các FPGA ngày càng trở nên phổ biến hơn trong những lần cuối cùng. Ngay cả đối với các ứng dụng chuyên nghiệp, những con chip này thường được sử dụng, nhưng cũng cho những người tự làm và nhà sản xuất muốn thực hiện một mạch rời bên trong một con chip với tất cả những ưu điểm mà điều này ngụ ý. Không hề rẻ hoặc dễ dàng để tìm một nhà máy gửi bố cục hoặc mẫu của bạn và có một con chip tùy chỉnh được sản xuất cho bạn.

Đúng là một số xưởng đúc cho phép làm bánh xốp hoặc bánh xốp nhiều dự án để tạo ra chip từ các cá nhân hoặc trường đại học để kiểm tra chúng. Những xưởng kiểu này như mình nói rất khó kiếm, thường là ở nước ngoài và giá cũng không hề rẻ. Sau một thời gian, các mẫu chip của bạn sẽ được gửi đến địa chỉ đã thỏa thuận, nhưng họ không chịu trách nhiệm kiểm tra chúng hoặc kiểm tra xem chúng có hoạt động hay không. Tất cả phụ thuộc vào thiết kế của bạn ...

một giải pháp thay thế cho điều đó là mua một FPGA và lập trình bất cứ thứ gì bạn cần để triển khai bên trong chip ...

FPGA là gì?

Các ô có thể lập trình

FPGA là viết tắt của Field Programmable Gate Array. Chúng là các thiết bị hoặc chip kỹ thuật số có khả năng được cấu hình để cho phép thực hiện mọi thứ trên thực tế. Nói cách khác, nó là một con chip trống, nơi bạn có thể "viết." Điều đó có nghĩa là bạn có thể triển khai CPU, bộ nhớ, bộ điều khiển, bất kỳ logic nào, v.v., đạt được hoạt động rất nhanh và với tất cả các lợi thế khi nó được tích hợp vào chip chứ không phải với các phần tử điện tử.

Ross Freeman và Bernard Vonderschmitt, những người đồng sáng lập Xilinx, là những người đã phát minh ra FPGA vào năm 1984. Họ đã làm nó như một bước tiến hóa cho chip CPLD thời bấy giờ. Các chip lập trình CPLD có một số thiếu sót đã giải quyết được các thiết kế FPGA mới và kể từ đó chúng được phát triển cho đến nay.

Thị trường FPGA rất hiệu quả nên các công ty thích Intel, Xilinx, Altera, Quick Logic, Lattice, v.v., họ đã đầu tư rất nhiều để phát triển FPGA tốt hơn và cả môi trường lập trình nhúng hoặc IDE cho họ. Do đó cung cấp các nền tảng rất tốt để tạo điều kiện thuận lợi cho công việc của các nhà phát triển hoặc nhà sản xuất.

Hiện tại, các nhà sản xuất này không chỉ cung cấp chip có thể lập trình mà còn bao gồm nhiều yếu tố phụ trợ để mang lại nhiều khả năng hơn cho các nhà phát triển. Ví dụ, chúng bao gồm các ô nhớ flash, ô nhớ SDRAM, v.v.

Chúng nó được dùng cho cái gì?

IDE để lập trình FPGA

Do đó, FPGA có thể tương tự như ASIC nhưng chúng ta có thể chọn Cái gì sẽ. Ví dụ: chúng ta có thể tạo mã để lập trình nó và biến nó thành CPU, GPU, bộ cộng, bộ điều khiển bộ nhớ hoặc bất kỳ mạch logic nào khác được triển khai trên một con chip.

Khả năng là khá vô tận. Trên thực tế, tôi khuyên bạn nên truy cập trang web opencores.org, một trang web chuyên cung cấp vô số dự án hardware libre. Bạn sẽ tìm thấy các mã bằng VHDL, Verligo, v.v., cho RAM, CPU, GPU, bộ điều khiển, ALU, FPU, bộ giải mã, v.v..

Nó được lập trình như thế nào?

Lập trình viên FPGA

Để lập trình FPGA, chúng ta có thể thực hiện từ hệ điều hành yêu thích của mình, chẳng hạn như GNU / Linux, Windows và MacOS, mặc dù chắc chắn có nhiều môi trường phát triển hơn cho Windows. Nói chung, cùng một công ty thực hiện FPGA cung cấp một IDE rất hoàn chỉnh để làm việc với và nơi để tìm tất cả các công cụ bạn cần trong cùng một bộ phần mềm.

Bạn cũng sẽ cần Chip hoặc bo mạch FPGA và cáp hoặc bộ lập trình cần thiết mà bạn có thể kết nối FPGA với PC của mình để chuyển mã đã viết vào FPGA và do đó nó được lập trình. Đó là điều tương tự như những gì bạn làm với bảng Arduino, ghi chương trình Arduino IDE vào bộ nhớ lập trình của vi điều khiển.

Chỉ trong trường hợp FPGA, những gì chúng ta có là một ma trận hoặc mảng các thành phần cơ bản như ô nhớ, cổng AND, OR, NOT, Flip-flops và các thành phần khác. các phần tử hoặc khối cơ bản của điện tử kỹ thuật số mà chúng ta có thể sử dụng. Với chương trình đã viết, những gì chúng ta sẽ làm là áp đặt cách mà các khối thiết yếu này được nhóm lại với nhau để tạo thành mạch nhỏ mà chúng ta muốn, chẳng hạn như ALU.

Nghĩa là, nếu chúng ta lập trình một bộ cộng trong IDE của mình, thì các khối cần thiết để triển khai bộ cộng này họ sẽ liên kết theo đúng cách bên trong FPGA để chip hoạt động như một bộ cộng. Đơn giản phải không? Nói chung, một số phương pháp được sử dụng cho việc lập trình này ở cấp độ vật lý, chẳng hạn như bộ nhớ hoặc cầu chì để tạo liên kết vĩnh viễn trong trường hợp đó.

Tốc độ mà chúng hoạt động sẽ phụ thuộc vào tần số đồng hồ mà FPGA chúng tôi đã mua hoạt động. Ví dụ, những cái cơ bản nhất thường hoạt động ở 50 Mhz, những cái khác sẽ làm như vậy ở tần số cao hơn nhiều. Trong trường hợp của FPGA 50 Mhz, điều đó có nghĩa là nó sẽ hoạt động với tốc độ 50.000.000 lần mỗi giây. Nếu chúng ta tiếp tục với bộ cộng mà tôi đã đưa ra làm ví dụ, bạn sẽ có thể thực hiện số tiền đó trong một giây ...

Tiếp tục với chủ đề của Lập trìnhKhi chúng tôi biết rằng bạn có thể viết mã giống như chúng tôi làm trong Arduino IDE hoặc để phát triển bất kỳ chương trình nào khác, và thấy nó được thực hiện như thế nào ở cấp độ phần cứng, tôi sẽ nói rằng nó thực sự không phải là lập trình như vậy. Đúng hơn nó là một mô tả phần cứng. Trên thực tế, các ngôn ngữ mô tả phần cứng như VHDL, Verilog, v.v. được sử dụng.

với chương trình đó được mô tả ở mức logic những gì mà mạch nhỏ mà chúng tôi muốn thực hiện. Và sau đó nó chuyển đến FPGA. Mặc dù đúng là một số nền tảng cho phép lập trình bằng các ngôn ngữ lập trình như C để có thể triển khai một CPU trong FPGA và sau đó tạo ra các chương trình để tải vào bộ nhớ và được xử lý bởi bộ xử lý nói trên.

Tích hợp với Arduino

Arduino-FPGA

FPGA thường được sử dụng riêng biệt, nhưng đúng là có rất nhiều công cụ và bộ dụng cụ trên thị trường sẽ giúp cuộc sống của bạn dễ dàng hơn trong việc tích hợp FPGA với nền tảng Arduino. Một ví dụ về bảng để đưa FPGA vào các dự án của bạn với Arduino là MKR Vidor 4000, mặc dù có những bảng khác.

Trình xem MKR 4000 nó là một bảng với ba chip. Một trong số đó là FPGA, cụ thể là Intel Cyclone 10. Ngoài ra còn có các chip khác dành cho kết nối Bluetooth LE hoặc công suất thấp và cả khả năng tương thích với WiFi. Một sự bổ sung tốt để cung cấp cho Arduino của bạn các chức năng kết nối và để có thể triển khai những gì bạn cần trong FPGA.

Với nó, bạn có một phần cứng có thể tùy chỉnh, do chính bạn cấu hình cho mục đích bạn muốn. Điều đó cung cấp khả năng vô tận.


Hãy là người đầu tiên nhận xét

Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.