Khi nào thì một FPGA được ưa thích thay vì CPLD và ngược lại?


7

Tôi đang bắt đầu với logic lập trình, và tôi chủ yếu sử dụng sơ đồ. (Này, tôi thích xem sơ đồ thay vì VHDL / ĐỘNG TỪ: P)

Tôi đã sử dụng CPLD Xilinx ban đầu có 128 macrocell và thiết kế có một bus dữ liệu và sử dụng bộ đệm ba trạng thái được sử dụng rộng rãi. Hóa ra nó không phù hợp với CPLD, và bước tiếp theo trên digikey là một Xilinx FPGA (5,80 đô la), vì vậy tôi đã tìm ra tất cả những gì tôi phải làm là thay đổi thiết bị thành FPGA trong ISE. Rõ ràng bộ đệm trạng thái Tri không tồn tại trên một đồ họa có nghĩa là tôi phải thiết kế lại rất nhiều. Ngoài ra, một trong những lý do chính mà tôi muốn sử dụng một FPGA là bởi vì FPGA có thể được lập trình bằng đèn flash SPI thay vì JTAG. (Tôi không có bất kỳ lập trình viên JTAG nào, nhưng tôi có MCU để lập trình flash SPI) Có MachXO2 trên digikey với giá tương tự nhưng với 640 macrocell, mà tôi nghĩ là quá đủ, chưa kể rằng nó có thể được lập trình sử dụng flash SPI và có thể có bộ đệm trạng thái Tri.

Vì vậy, đây là câu hỏi. Khi nào thì CPLD được sử dụng thay vì của FPGA và ngược lại. Trong các ứng dụng, CPLD không có ý nghĩa gì, nhưng một GPU phù hợp hơn?


Nếu bất cứ ai quan tâm đến nền hơn cho câu hỏi, đây là một liên kết đến các dự án tôi đang làm về vấn đề này: dangerousprototypes.com/forum/viewtopic.php?f=56&t=2678
hak8or


2
@ hak8or Bộ đệm ba trạng thái tồn tại trên đồ họa của FPGA. Trên thực tế, tôi chưa bao giờ thấy một cái nào không-- và tôi đã sử dụng Xilinx trong 20 năm!

@David Kessner: Vì tò mò, bạn có nghĩa là bộ đệm I / O ba trạng thái, hoặc khả năng nổi xe buýt trong chip? Mặc dù chắc chắn có những lúc người ta phải sử dụng xe buýt trong một con chip (ví dụ trong một mảng RAM hoặc ROM có kích thước đáng kể), sự tồn tại của xe buýt tạo ra nguy cơ xung đột xe buýt. Làm thế nào một người có thể thiết kế một đồ họa với các xe buýt 3 trạng thái có thể sử dụng mà không có khả năng thiết bị bị phá hủy bởi lập trình sai lầm?
supercat

@supercat Tôi đã nói về Bộ đệm I / O. Nói một cách đơn giản, không sử dụng các bus ba trạng thái nội bộ. Không bao giờ. Một số phần Xilinx ban đầu đã có ba trạng thái nội bộ, nhưng phần mới hơn thì không. Trong một thời gian, trình biên dịch Xilinx sẽ phát hiện việc sử dụng ba trạng thái nội bộ và mô phỏng nó bằng logic, nhưng tôi đã không sử dụng tính năng đó và không biết liệu nó có còn làm điều đó không. Tôi có một phương pháp tuyệt vời để thực hiện các hoạt động nội bộ. Nó liên quan đến một chương trình C ++ mà tôi đã viết để tạo mã VHDL, C ++ và mã lắp ráp. Thỉnh thoảng chúng ta nên trò chuyện về nó.

Câu trả lời:


5

Thông thường nó là một sự đánh đổi hệ thống. Cần bao nhiêu đường ray điện áp, cần bao nhiêu IC rời rạc, bao nhiêu công suất, lượng logic.

CPLD, thông thường, nhỏ hơn (tài nguyên ít lập trình hơn), thường yêu cầu một đường ray điện áp duy nhất, không yêu cầu một Prom bên ngoài. Như đã đề cập, thường được sử dụng cho logic keo, thay cho các cổng rời rạc.

Các GPU thường là lớn hơn nhiều (tài nguyên logic hơn). Yêu cầu nhiều đường ray điện áp, tiêu thụ nhiều điện năng hơn.

Hầu hết các dự án mà mọi người mô tả là thích hợp nhất cho các GPU.


5

CPLD chủ yếu được sử dụng cho logic ngẫu nhiên được sử dụng để thực hiện bằng cách sử dụng các chip TTL và CMOS riêng lẻ. Các GPU có xu hướng được sử dụng cho các hệ thống hoàn chỉnh hoặc các hệ thống phụ phức tạp. Rõ ràng sẽ có một số chồng chéo, và các CPLD Altera thực sự là các GPU nhỏ với bộ nhớ cấu hình trên chip.

I / Os thường có thể được tri-tuyên bố.


1

Một CPLD thông thường sẽ có một số lượng nhỏ các mạch để tính toán các hàm logic - thường là 1-4 cho mỗi chân đầu ra - nhưng mỗi mạch sẽ có thể hoạt động trên một số lượng lớn đầu vào. Một FPGA thường sẽ có số lượng mạch lớn hơn nhiều để tính toán các hàm logic, nhưng mỗi trong số chúng sẽ chỉ có thể hoạt động theo một vài đầu vào.

Từ quan điểm hiệu quả phần cứng, có vẻ như sẽ tốt nhất khi kết hợp các cách tiếp cận, vì sẽ hơi lãng phí khi phải sử dụng một trong số ít mạch logic 36 đầu vào để thực hiện cổng NAND hai đầu vào, nhưng về mặt trái, sẽ rất lãng phí khi sử dụng chín phần tử logic ba đầu vào riêng biệt và tất cả các định tuyến được liên kết với chúng , để thực hiện một cổng AND mười bảy đầu vào. Tuy nhiên, trên thực tế, hầu hết các thiết bị đều có xu hướng mạnh mẽ đối với trại FPGA hoặc CPLD; Tôi nghi ngờ đó là bởi vì trong khi con người có thể có ý thức tốt về cách thực hiện một dự án nhỏ hơn bằng nhiều nguồn tài nguyên khác nhau, thì phần mềm sẽ dễ dàng thực hiện thiết kế hơn nếu một con chip có số lượng lớn tài nguyên tương đương chính xác.

Do đó, tôi sẽ đề xuất rằng một yếu tố chính trong việc quyết định giữa một FPGA và CPLD thường sẽ là mức độ mà một thiết bị cần để tạo ra một số lượng nhỏ các chức năng phức tạp hoặc một số lượng lớn hơn các chức năng đơn giản.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.