Khái niệm FPGA

Một phần của tài liệu bài giảng môn thiết kế vi mạch lập trình được - nguyễn thế dũng (Trang 30 - 33)

FPGA là công nghệ vi mạch tích hợp khả trình (PLD - Programmable Logic Device) trình mới nhất và tiên tiến nhất hiện nay. Thuật ngữ Field- Programmable chỉ quá trình tái cấu trúc IC có thể được thực hiện bởi người dùng cuối, trong điều kiện thông thường thường, hay nói một cách khác là người kỹ sư lập trình IC có thể dễ dàng hiện thực hóa thiết kế của mình sử dụng FPGA mà không lệ thuộc vào một quy trình sản xuất hay cấu trúc phần cứng phức tạp nào trong nhà máy bán dẫn. Đây chính là một trong những đặc điểm làm FPGA trở thành một công nghệ IC khả trình được nghiên và cứu phát triển nhiều nhất hiện nay.

Để có được khả năng đó, FPGA ra đời hoàn toàn là một công nghệ mới chứ không phải là một dạng mở rộng của các chip khả trình kiểu như PAL,

PLA... Sự khác biệt đó thứ nhất nằm ở cơ chế tái cấu trúc FPGA, toàn bộ cấu hình của FPGA thường được lưu trong một bộ nhớ truy cập ngẫu nhiên (thông thường SRAM), quá trình tái cấu trúc được thực hiện bằng cách đọc thông tin từ RAM để lập trình lại các kết nối và chức năng logic trong IC. Có thể so sánh cơ chế đó làm việc giống như phần mềm máy tính cũng được lưu trữ trong RAM và khi thực thi sẽ được nạp lần lượt vi xử lý, nói cách khác việc lập trình lại cho FPGA cũng dễ dàng như lập trình lại phần mềm trên máy tính.

Như vậy về mặt nguyên tắc thì quá trình khởi động của FPGA không diễn ra tức thì mà cấu hình từ SRAM phải được đọc trước sau đó mới diễn ra quá trình tái cấu trúc theo nội dung thông tin chứa trong SRAM. Dữ liệu chứa trong bộ nhớ RAM phụ thuộc vào nguồn cấp, chính vì vậy để lưu giữ cấu hình cho FPGA thường phải dùng thêm một ROM ngoại vi. Đến những dòng sản phẩm FPGA gần đây thì FPGA được thiết kế để có thể giao tiếp với rất nhiều dạng ROM khác nhau hoặc FPGA thường được thiết kế kèm CPLD để nạp những thành phần cố định, việc tích hợp này làm FPGA nạp cấu hình nhanh hơn nhưng cơ chế nạp và lưu trữ cấu hình vẫn không thay đổi.

Ngoài khả năng đó điểm thứ hai làm FPGA khác biệt với các PLD thế hệ trước là FPGA có khả năng tích hợp logic với mật độ cao với số cổng logic tương đương lên tới hàng trăm nghìn, hàng triệu cổng. Khả năng đó có được nhờ sự đột phá trong kiến trúc của FPGA. Nếu hướng mở rộng của CPLD tích hợp nhiều mảng PAL, PLA lên một chip đơn, trong khi bản thân các mảng này có kích thước lớn và cấu trúc không đơn giản nên số lượng mảng tích hợp nhanh chóng bị hạn chế, dung lượng của CPLD nhiều nhất cũng chỉ đạt được con số trăm nghìn cổng tương đương. Đối với FPGA thì phần tử logic cơ bản không còn là mảng PAL, PLA mà thường là các khối logic lập trình được cho 4-6 bit đầu vào và 1 đầu ra (thường được gọi là LUT). Việc chia nhỏ đơn vị logic cho phép tạo một cấu trúc khả trình linh hoạt hơn và tích hợp được nhiều hơn số lượng cổng logic trên một khối bán dẫn. Bên cạnh đó hiệu quả làm việc và tốc độ làm việc của FPGA cũng vượt trội so với các IC khả trình trước đó. Vì có mật độ tích hợp lớn và tốc độ làm việc cao nên FPGA có thể được ứng dụng cho lớp những bài toán xử lý số phức tạp đòi hỏi hiệu suất làm việc lớn mà các công nghệ trước đó không đáp ứng được.

Thiết kế trên FPGA thường được thực hiện bởi các ngôn ngữ HDL và hầu hết các dòng FPGA hiện tại hỗ trợ thiết kế theo hai ngôn ngữ chính là

thực hóa trên FPGA bằng một quy trình đơn giản. Ngoài HDL, thiết kế trên FPGA còn có thể được thực hiện thông qua hệ nhúng nghĩa là bằng ngôn ngữ phần mềm (thường là C/C++). Một phương pháp nữa thường dùng trong các bài toán xử lý số tín hiệu là sử dụng System Generator một chương trình kết hợp của Matlab với phần mềm thiết kế FPGA của Xilinx.

Hiện nay công nghệ FPGA đang được phát triển rộng rãi bởi nhiều công ty bán dẫn khác nhau. Dẫn đầu là Xilinx với các dòng sản phẩm như Virtex 3, 4, 5, 6 và Spartan3, 6, Altera với Stratix, Cyclone, Arria, Bên cạnh đó còn có sản phẩm của Lattice Semiconductor Company, Actel, Achronix, Blue Silicon Technology…

Khái niệm FPGA board, hay FPGA KIT là khái niệm chỉ một bo mạch in trên đó có gắn chíp FPGA và các phần tử khác như cổng giao tiếp, màn hình, led, nút bấm… và bao giờ cũng có phần giao tiếp với máy tính để nạp cấu hình cho FPGA. Ngoài ra board còn chứa các thiết bị ngoại vi được liên kết với các cổng vào ra của FPGA nhằm mục đích thử nghiệm.

Theo bảng so sánh 1-4 dưới đây trên có thể thấy khả năng tích hợp của FPGA là rất lớn, những FPGA mới nhất hiện nay có khả năng tích hợp lớn tương đương như các chíp chuyên dụng cho máy chủ như Xenon 6-core. Còn bản thân các chip cỡ nhỏ như Pentium hay thậm chí Core duo nếu so sánh về mức độ tích hợp thì chúng có thể được - nạp hoàn toàn vào một FPGA cỡ trung bình. Khả năng này của FPGA mở ra một hướng mới cho ứng dụng FPGA đó là sử dụng FPGA như một phương tiện để kiểm tra thiết kế ASIC (ASIC prototyping with FPGA). Kế thừa của phương pháp này là công nghệ có tên gọi ―Hard-copy là công nghệ cho phép sao chép toàn bộ các thiết kế đã được nạp vào FPGA thành một IC chuyên dụng (ASIC) độc lập. Tính tối ưu của thiết kế này không cao nhưng đơn giản và giảm đáng kể chi phí nếu so sánh với thiết kế ASIC chuẩn.

Tài nguyên logic của FPGA được thể hiện ở bảng so sánh sau: Mật độ tích hợp của một số IC thông dụng:

IC Transitor count Process Manufacture Year

Intel 4004 2 300 10 um Intel 1971

Intel 80286 164 000 1.5 um Intel 1982

Pentium 2 7 500 000 0.35um Intel 1997

Pentium 4 42 000 000 180 nm Intel 2000

Core 2 Duo 291 000 000 65 nm Intel 2006

Six core Xenon 7400 1 900 000 000 45 nm Intel 2008 10-Core Xeon Westmere-EX 2 600 000 000 32 nm Intel 2010 AMD K8 106 000 000 130 nm AMD 2003 Spartan 3E ~40 000 000 90 nm Xilinx 1998 Virtex 4 1 000 000 000 90 nm Xilinx 2004 Virtex 5 1 100 000 000 65 nm Xilinx 2006 Starix IV 2 500 000 000 40 nm Altera 2008 Starix V 3 800 000 000 28 nm Altera 2011 Virtex 6 ~2 600 000 000 65 nm Xilinx 2010 Virtex 7 ~6 800 000 000 28nm Xilinx 2011

Một phần của tài liệu bài giảng môn thiết kế vi mạch lập trình được - nguyễn thế dũng (Trang 30 - 33)