Thể loại: Mạch vi điều khiển
Số lượt xem: 21445
Bình luận về bài viết: 0

FPGA là ngôn ngữ đơn giản cho người mới bắt đầu

 

Điện tử kỹ thuật số liên quan đến cái gì? Trước hết, với các yếu tố logic VÀ, HOẶC, KHÔNG. Hơn nữa, các thanh ghi thay đổi, bộ giải mã, bộ ghép kênh, vv, đi vào bộ nhớ. Tuy nhiên, do sự phức tạp của các thiết bị điện tử và xu hướng thu nhỏ lại, việc tạo ra các thiết bị dựa trên các mạch tích hợp (IC) từ các thành phần trên trở nên khó khăn hơn, các IC tùy chỉnh của cấu trúc liên kết và mạch yêu cầu chỉ đáng giá khi thiết bị được sao chép với số lượng lớn, trong các trường hợp khác, nó không hợp lý.

Cách thoát khỏi tình huống này là sự phát triển của các mạch logic tích hợp có thể lập trình (viết tắt là FPGA, viết tắt tiếng nước ngoài là thiết bị logic lập trình, PLD). Nó là gì và nó được sử dụng ở đâu, chúng tôi sẽ nói trong bài viết này.

FPGA là ngôn ngữ đơn giản cho người mới bắt đầu

Sự khác biệt từ vi điều khiển

Với từ "lập trình", hầu hết người mới bắt đầu liên kết với vi điều khiển. Mặc dù thực tế là chúng cũng được lập trình, nhưng FPGA là một thiết bị hoàn toàn khác.

Đối với các nhà phát triển trong vi điều khiển, một bộ giải pháp và phương tiện cố định có sẵn vốn có trong một chip cụ thể, nó sẽ không hoạt động theo bất kỳ cách nào để rút lui khỏi kiến ​​trúc. Bạn được cung cấp một tập hợp các lệnh mà bạn thực hiện các hoạt động tương tác với môi trường, bằng cách đọc dữ liệu từ các đầu vào kỹ thuật số và tương tự và gửi tín hiệu đến các bộ truyền động bằng các đầu ra.

Ngoài ra, bạn có thể thực hiện tính toán, lưu dữ liệu trong các thanh ghi hoặc ROM, cũng như hoạt động với dữ liệu được đưa vào bộ nhớ của vi điều khiển. Về điều này, về bản chất, là mục đích và tính năng làm việc với vi điều khiển.

Lập trình 769; log 769; số nguyên 769; lanh 769; ma (FPGA, thiết bị logic lập trình tiếng Anh, PLD)

Các mạch tích hợp logic lập trình (FPGA) khác nhau ở chỗ khi bạn lập trình một thiết bị, chính bạn tạo ra một kiến ​​trúc từ các yếu tố logic cơ bản. Do đó, bạn có được tốc độ cao và tính linh hoạt của chip. Điều này làm cho nó có thể, mà không thay đổi một chip, để thực hiện một số dự án.

Nói chung, thiết bị FPGA bên trong có thể được chia thành ba nhóm chính:

1. Một mảng các yếu tố logic (macrocell, khối logic).

2. Khối đầu vào / đầu ra (IO).

3. Đường dây liên lạc giữa chúng và thiết bị điều khiển các kết nối này.

Tuy nhiên, cấu trúc như vậy là rất khái quát, chúng tôi sẽ xem xét vấn đề này chi tiết hơn dưới đây.

Bằng cách lập trình, bạn kết nối các phần tử theo cùng một cách như bạn, lắp ráp một thiết bị từ các phần tử riêng lẻ và kết nối đầu vào và đầu ra của chúng với dây dẫn.

Lưu ý:

Sự khác biệt chính giữa các vi điều khiển và vi điều khiển là trong vi điều khiển, bạn không thể thay đổi các kết nối bên trong giữa các phần tử đơn giản nhất, và lập trình và làm việc với chúng dựa trên việc đăng ký các kết nối trong các bản đồ họa.

Việc lựa chọn vi điều khiển dựa trên nhiều tiêu chí, như:

  • Tốc độ và tốc độ đồng hồ;

  • Số lượng ROM và RAM;

  • Số lượng đầu vào và đầu ra.

Các tính năng và thiết bị ngoại vi khác, như hỗ trợ cho các đường truyền và giao thức (I2C, một dây, tín hiệu PWM, v.v.).

Khi chọn một FPGA, tiêu chí chính là số lượng các khối lập trình - chúng phải đủ để thực hiện nhiệm vụ.

Tùy thuộc vào đồ họa cụ thể, số lượng khối có thể thay đổi lớn và chi phí cũng thay đổi.

Bộ vi điều khiển thực hiện tuần tự tất cả các hoạt động được quy định trong chương trình của nó, trong khi các khối FPGA thực hiện nhiệm vụ song song và độc lập với nhau, do đó, so sánh các thiết bị này theo tần số xung nhịp là không thực tế. Nguyên tắc hoạt động của họ là quá khác nhau.

Các loại đồ họa

Loài

Hiện tại có liên quan là hai loại chính của FPGA:


1. CPLD (Thiết bị logic lập trình phức tạp - Mạch tích hợp logic lập trình được, trên thực tế, đây là FPGA theo nghĩa cổ điển của nó). Nó thường có bộ nhớ không bay hơi tích hợp trong đó phần sụn được tải.

Cấu trúc bên trong được xây dựng trên một ma trận gồm các macrocell hoặc các khối logic và số lượng phần tử trong chúng nằm trong phạm vi hàng trăm và hàng nghìn mảnh. Do tính đơn giản tương đối của chúng, chúng rẻ hơn loại logic lập trình tiếp theo. Tất cả điều này dẫn đến thực tế là CPLD được sử dụng chủ yếu trong các mạch có tốc độ cao và số lượng đầu ra lớn là cần thiết, trong khi thực hiện các tác vụ đơn giản.


2. FPGA (Mảng cổng lập trình trường - Mảng cổng lập trình người dùng, tuy nhiên, nó thường được gọi là FPGA) - các thiết bị phức tạp và phát triển hơn so với CPLD, được xây dựng trên các khối logic với chuyển đổi linh hoạt và chứa số lượng phần tử lớn hơn (hàng chục hoặc hàng trăm nghìn mảnh).

Phần sụn thường được lưu trữ trong bộ nhớ ngoài không bay hơi. Ngoài các yếu tố logic đơn giản nhất, các GPU có thể chứa các khối được tạo sẵn để thực hiện bất kỳ hoạt động nào, ví dụ, các khối xử lý tín hiệu DSP. Tất cả điều này cho phép bạn thực hiện bộ xử lý, thiết bị xử lý tín hiệu và các thiết bị phức tạp khác.


Thú vị:

Mặc dù trên thực tế, sự hiện diện của bộ nhớ không bay hơi không tạo ra CPLD logic lập trình được. Đây là một phần sai lệch. Sự khác biệt chính giữa CPLD và FPGA là cấu trúc bên trong.

Sự khác biệt giữa CPLD và FPGA là cấu trúc bên trong

Thiết bị CPLD nội bộ được hiển thị chi tiết hơn trong hình bên dưới.

Thiết bị nội bộ CPLD

Và sơ đồ gần đúng của macrocell của nó trông như thế này:

Bố cục macrocell mẫu CPLD

Macrocell bao gồm bộ ghép kênh có thể lập trình, bộ kích hoạt (một hoặc nhiều) và tạo thành một nhóm tín hiệu FB đầu ra trong một số phiên bản.

Sau đây là một ví dụ khác - sơ đồ khối của công ty chip CPLD MAX II Altera.

Sơ đồ khối Altera MAX II CPLD

Và kế hoạch cấu trúc của các chip của cùng một gia đình.

Sơ đồ khối Altera MAX II CPLD

Lốp trung gian cho macrocell được chỉ định bằng cách sử dụng một nút như nhà phân phối bằng tiếng Anh. Nghe có vẻ như Bộ phân bổ logic, được hiển thị trong sơ đồ bên dưới, nó cũng hiển thị ma trận chuyển mạch (Nhóm định tuyến toàn cầu) và tại macrocell đầu ra (macrocell) có hai phản hồi.

Ma trận phân phối và chuyển mạch

Các đầu ra bên ngoài của vi mạch được kết nối với các đầu ra của macrocell thông qua một khối khác (ma trận) - ORP (Nhóm định tuyến đầu ra), lưu ý rằng thông qua logic INPUT được kết nối với GRP, như minh họa trong hình minh họa bên dưới.

Lưu ý:

Một số CPLD có cái gọi là đầu vào trực tiếp (Đầu vào trực tiếp) - chúng được kết nối với đầu vào của các ô trực tiếp, giúp giảm độ trễ.

Cấu trúc FPGA có dạng:

Cấu trúc đồ họa
  • L - khối cấu hình logic;

  • S (khối thay thế) - một khối thay thế, nó nhận được một số bit nhất định trên mỗi lần di chuyển, chuyển đổi, theo một thuật toán nhất định và xuất ra một số bit khác nhau ở đầu ra. Nói cách khác, bộ giải mã, bộ mã hóa và công tắc.

  • C (khối kết nối) - khối kết nối.

Sơ đồ khối S:

 

Sơ đồ khối S



Lập trình


HDL (Ngôn ngữ mô tả phần cứng) - đây là ngôn ngữ mà các GPU được lập trình. Phổ biến và đa năng là Verilog HDL và VHDL. Các ngôn ngữ khác tồn tại, chẳng hạn như các ngôn ngữ dành riêng cho nhà sản xuất, chẳng hạn như AHDL cho các sản phẩm ALTERA.

Lập trình đồ họa có sẵn cho các nhà phát triển làm việc với các GPU. Đó là, bạn có thể chỉ cần vẽ các mạch logic hoặc kết hợp mã với đồ họa. Phương thức thứ hai được gọi là phương thức phát triển mô-đun, khi các mô-đun cụ thể được quy định và mô-đun hàng đầu, trong đó mọi thứ được kết hợp, được lập trình bằng đồ họa.


Ví dụ về các nhà sản xuất và loạt phổ biến

Tại thời điểm viết bài, nổi tiếng nhất là sản phẩm của hai nhà sản xuất.

  • Altera (thành lập năm 1983);

  • Xilinx (Thành lập năm 1984).

Thay thế

Altera có một loạt logic lập trình chính:

  • MAX, MAX II, MAX IIZ;

  • 7000S;

  • 3000A;

  • MAX V;

  • Lốc xoáy

  • Arria;

  • Stratix

Chúng ta hãy xem xét từng người trong số họ chi tiết hơn. Trong các bảng dưới đây, bạn thấy thông tin chung về các vi mạch của gia đình.

Đặc điểm của loạt chính logic lập trình
Đặc điểm của loạt chính logic lập trình

Altera 3 CPLD CPLD:

  • MAX là một CPLD để sử dụng trong các thiết bị di động, đặc điểm nổi bật là tiêu thụ năng lượng tương đối thấp và tản nhiệt. Tùy thuộc vào độ phức tạp và số năm phát hành, các sửa đổi sau đây được phân biệt:

  • 7000S đã lỗi thời cho đến nay, nó được phát hành vào năm 1995.

  • 3000A - phát hành năm 2002, được sản xuất bằng công nghệ 300nm. Bao gồm một số lượng nhỏ macrocell (32-512)

  • MAX II phát hành năm 2004, được sản xuất bằng công nghệ 100nm, bao gồm số lượng đơn vị lớn hơn (240-2210) hoạt động ở tần số lên đến 304 MHz. Sản phẩm được sản xuất trong trường hợp loại TQFP 0,5 mill có 100 chân trở lên.

  • MAX IIZ - 2007, tính năng chính là giảm mức tiêu thụ điện năng - đây là một điểm tích cực, tuy nhiên, tần số được giảm xuống còn 152 MHz. Những microcircuits này được cung cấp từ 1.8 V.

  • MAX V - năm 2010. Nó được sản xuất theo công nghệ 180nm, nó có thể chứa từ 40 đến 2210 khối và hoạt động ở tần số lên đến 152 MHz hoặc ở 304 MHz - nó phụ thuộc vào số lượng khối.

Altera 3 CPLD

FPGA:

  • Cyclone là một loại chip ngân sách. Có năm thế hệ được đánh dấu bằng số Hy Lạp (từ I đến V, tương ứng). Thế hệ đầu tiên được ra mắt vào năm 2002, được sản xuất bằng công nghệ 180nm và thế hệ thứ năm được phát hành vào năm 2011 và được sản xuất bằng công nghệ 28nm. Điều đáng chú ý là tất cả các thế hệ vẫn còn có liên quan.

  • Arria - cũng đề cập đến các GPU tầm trung.

  • Stratix - Các GPU mạnh mẽ.

Dưới đây là Bảng xoay logic logic lập trình Altera.

Các tính năng của FPGA
Các tính năng của FPGA
Các tính năng của FPGA

Và bảng đầy đủ tại liên kết:https://electro-vi.tomathouse.com/tableitsa.docx

Các nhà sản xuất Xilinx CPLD trình bày trong loạt:

  • XC9500XL của 36-288 macrocell. Chúng hoạt động ở tần số lên tới 178 MHz và các mô hình ở 288 macrocell ở mức 208 MHz. Nó được thực hiện như trong các trường hợp nhỏ với 44 chân (đạo trình) ở khoảng cách 0,8 mm với nhau - các trường hợp như vậy được coi là dễ dàng hàn. Cũng có sẵn với 64 và 100 chân với bước tăng 0,5 mm, cũng như các kiểu trong vỏ bọc kiểu PLCC.

  • Sê-ri CoolRunner-II là một CPLD hiệu quả năng lượng nhưng hiệu quả. Một tính năng được cung cấp bởi điện áp 1,8V, đầu vào và đầu ra được thiết kế để hoạt động trong phạm vi 1,5-3,3V. Chúng bao gồm 32-512 macrocell và được sản xuất bằng công nghệ 180nm. Tùy thuộc vào số lượng ô, chúng hoạt động trong dải tần số 179-323 MHz và các ô càng nhỏ thì tần số chúng có thể hoạt động trong trường hợp này càng nhiều. Chúng được tìm thấy trong các trường hợp khác nhau, bao gồm cả dễ dàng hàn, như trong các vi mạch của loạt được xem xét ở trên.

Công ty Xilinx đã không đi qua và FPGA:

  • Spartan-6 - bao gồm các khối logic 6 đầu vào, số lượng của chúng nằm trong phạm vi 3840-147443. Điều thú vị ở chỗ chúng có thể chứa các bộ điều khiển để trao đổi dữ liệu như DDR2, DDR3, PCI-EXPRESS, Ethernet 1Gbit, serialATA, v.v.

  • Sê-ri Vitrex-7 rất phức tạp, các vi mạch có thể chứa tới 2.000.000 khối logic và 1.200 tiếp điểm.

Dưới đây bạn có thể tìm thấy các bảng tóm tắt với thông số kỹ thuật CPLD và FPGA từ loạt Xilinx 6 và 7, cũng như Zynq-7000.

Các tính năng của Xilinx 6 và 7 Series
Đặc điểm của Virtex-6 FPGA
Đặc điểm của họ đồ họa Spartan-6
Đặc điểm của họ đồ họa Spartan-6
Các tính năng của FPGA
Các tính năng của FPGA

Kết luận

Các GPU và PPVM cũng được sản xuất bởi các công ty khác như Lattice S bán dẫn (năm 2002 đã bắt đầu sản xuất các GPU), Actel và các độc giả nổi tiếng của trang web của chúng tôi. vi điều khiển ATMEL và nhiều người khác. Theo logic lập trình, bạn có thể triển khai một số thiết bị, thực hiện các phép tính song song độc lập với nhau trong một thiết bị, tuy nhiên, đối với các dự án gia đình, việc mua của chúng thường không chính đáng về mặt tài chính, nhưng đồng thời khá hợp lý trên quy mô sản xuất, như một phương án thay thế cho các mạch tích hợp tùy chỉnh.

P.S.Xem video, trong đó bạn sẽ thấy một ví dụ về việc triển khai bảng điều khiển trò chơi Nintendo trên FPGA:

Xem thêm tại electro-vi.tomathouse.com:

  • Ngôn ngữ sơ đồ khối chức năng (FBD) và ứng dụng của nó
  • Các loại mạch tích hợp hiện đại - loại logic, trường hợp
  • Chip logic. Phần 1
  • Vi điều khiển PIC cho người mới bắt đầu
  • Bộ điều khiển logic lập trình cho tự động hóa gia đình

  •