FPGA - Field Programmable Gate Array
FPGA
FPGA
là công nghệ mang lại sự thay đổi lớn lao trong kỹ thuật điện tử số hiện đại. Nếu
như các IC tích hợp số trước kia được sản xuất bằng công nghệ phức tạp, sở hữu
bởi số ít các quốc gia có nền tảng khoa học kỹ thuật phát triển, khi thiết kế
các hệ thống số người thiết kế không có được sự tùy biến linh động cũng như những
giải pháp tối ưu mà phải lệ thuộc vào các phần tử có sẵn. HDL và FPGA ra đời đã
cho phép người thiết kế có khả năng tự thiết kế IC chức năng theo mục đích sử dụng
một cách nhanh chóng dễ dàng, đây cũng chính là một trong những cơ sở để môn học
thiết kế vi mạch tích hợp được đưa vào giảng dạy cho đối tượng đại học. Bên cạnh
sự tiếp cận trực tiếp và đơn giản FPGA còn đem lại hiệu quả thiết kế cao và
tính ứng dụng thực tiễn cho những bài toán số được xem rất phức tạp đối với các
công nghệ cũ hơn.
Khái niệm:
FPGA
( Field Programmable Gate Array ) là một mạch tích hợp cỡ lớn dùng cấu trúc mảng
phần tử logic mà người dùng có thể lập trình được. Thuật ngữ FieldProgrammable
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.
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.
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. 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.
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à Verilog và VHDL, tất cả
những thiết kế ở những chương trước đều có thể hiện 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 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.
Sau khi giới thiệu khái niệm cơ bản của FPGA chúng ta sẽ đi vào tìm hiểểu phần kiến trúc, công nghệ cũng như ứng dung ở những bài viết tiếp theo.
Nguồn: https://en.wikipedia.org/wiki/Transistor_count
Tài lieu tham khảo: Thiết kế logic số học - HỌC VIỆN KỸ THUẬT QUÂN SỰ
Post a Comment: