Tuesday, January 2, 2018


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: