Tổng quan về FPGA

Một phần của tài liệu ĐỒ án môn học THIẾT kế MẠCH TÍCH hợp số thiết kế máy phát nhạc MP3, WAV sử dụng KIT phát triển NB2DSK01 và phần mềm hỗ trợ altium designer (Trang 25 - 30)

2.2.1.1 FPGA là gì?

FPGA (Field-Programmable Gate Array) là một loại thiết bị khả trình (PLD) tiên tiến nhất hiện nay của ngành công nghệ chế tạo IC (Integrated Circuit) chuyên biệt mà vẫn được gọi là ASIC. Đây là loại IC cho phép người dùng thiết kế lập trình thay đổi các thiết kế của mình.[2]

Để 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ớ động (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 logic trong IC. Nói một cách khác 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 đọc lần lượt nạp vào vi xử lý. Cũng như vậy 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.

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.

11

2.2.1.2 Kiến trúc của FPGA

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à Spartan, Altera với Stratix, Cyclone, Arria. Bên cạnh đó còn có sản phẩm của Lattice Semiconductor Company, Actel, Achronix, BlueSilicon Tecnology…Tuy được cung cấp bởi nhiều hãng khác nhau nhưng nhìn chung FPGA có cấu trúc tổng thể bao gồm:

-Các khối logic

-Hệ thống liên kết mạch

-Các phần tử tích hợp sẵn

Hình 2.8 Cấu trúc tổng thể của một FPGA

FPGA là mạch tích hợp chứa nhiều (64 đến hơn 10000) ô logic (logic cell) giống nhau có thể xem là các thành phần chuẩn. Mỗi ô logic giữ một hay một số chức năng độc lập. Các ô giống nhau được kết nối với nhau bởi một ma trận đường dẫn và chuyển mạch khả trình. Người thực hiện thiết kế bằng các đặc trưng logic đơn của mỗi

ô và lựa chọn đóng các chuyển mạch trong ma trận kết nối. Mảng của các ô logic và kiểu kết nối là kết cấu xây dựng khối cơ bản trong mạch logic. Các thiết kế phức tạp được tạo ra bằng cách kết hợp các khối cơ bản để tạo ra các mạch được mô tả.

Mô hình tổng quát của FPGA gồm một dãy hay chiều các khối logic (logic block) có thể được kết nối bằng các nguồn kết nối chung. Các nguồn kết nối (segment)

12

có thể có chiều dài khác nhau. Bên trong các kết nối là các chuyển mạch lập trình được dùng để nối các khối logic cấu hình ( configurable logic block) cần thiết qua các chuyển mạch. Các khối CLB cung cấp các phần tử chức năng với cấu trúc sử dụng logic. Các khối vào ra (I/O block) cung cấp giao diện giữa các gói chân và đường tín hiệu bên trong. Tài nguyên khối kết nối khả trình cung cấp các bộ phận truyền dẫn tới đầu vào ra của các CLB và các IOB trong mạch riêng.

Vậy cấu trúc FPGA gồm 3 phần tử chính là:

-Các khối logic cấu hình (logic block)

-Các khối vào/ra (IOB)

-Các kết nối

Ngoài các khối logic tùy theo các loại FPGA khác nhau mà có các phần tử tích hợp thêm khác nhau, ví dụ để thiết kế những ứng dụng SoC, trong dòng Virtex 4,5 của Xilinx có chứa nhân sử lý PowerPC, hay trong Atmel FPSLIC tích hợp nhân ARV…, hay cho những ứng dụng xử lý tín hiệu số DSP trong FPGA được tích hợp các DSP Slide là bộ nhân cộng tốc độ cao, thực hiện hàm A*B+C, ví dụ dòng Virtex của Xilinx chứa từ vài chục đến hàng trăm DSP slices với A, B, C 18-bit.

Các khối logic cấu hình (logic block):

Hình 2.9 Khối Logic Bloc của FPGA

Cấu trúc và nội dung của logic block được gọi theo kiến trúc của nó. Kiến trúc của khối logic có thể thiết kế theo nhiều cách khác nhau, có thể là cổng AND 2 ngõ vào, các bộ dồn kênh (Multiplexer) hay các bảng tìm kiếm (Look-up Table). Ngoài ra có thể chứa các flip-flop để hỗ trợ cho việc thực hiện một cách tuần tự.

Nếu nhìn cấu trúc tổng thể của mảng LUT thì ngoài 4 đầu vào kể trên còn hỗ trợ thêm 2 đầu vào bổ sung từ các khối logic phân bố trước và sau nó nâng tổng số đầu vào của LUT lên 6 chân. Cấu trúc này là nhằm tăng tốc các bộ số học logic.

Các khối vào/ra (IOB)

13

Hình 2.10 Khối vào/ra của XC4000X

FPGA đã hỗ trợ rất nhiều cho các chuẩn ngoại vi. Tương thích với mức điện áp TTL, CMOS, LVTTL…tuỳ theo từng họ FPGA

Các kết nối

Kết nối đa năng Kết nối dài Kết nối trực tiếp

SW

Mạng liên kết trong FPGA được cấu thành từ các đường kết nối theo hai phương ngang và đứng, tùy theo từng loại FPGA mà các đường kết nối được chia thành các nhóm khác nhau, ví dụ trong XC4000 của Xilinx có ba loại kết nối: ngắn, dài và rất dài. Các đường kết nối được nối với nhau thông qua các khối chuyển mạch lập trình được (programmable switch), trong một khối chuyển mạch chứa một số lượng nút chuyển lập trình được đảm bảo cho các dạng liên kết phức tạp khác nhau.

-Dựa trên nguyên tắc chập 2 điểm nằm ở 2 lưới dẫn khác nhau, (Antifuse EEPROM/EPROM).

14

-Kết nối trực tiếp: liên kết các CLB hoặc IOB kề nhau.

-Kết nối dài: bỏ qua các SW.

-Kết nối đa năng gồm các đoạn nằm ngang và các đoạn nằm dọc, nối các SW và IOB.

2.2.1.3 Ứng dụng của FPGA

Do khả năng tái cấu trúc đơn giản và sở hữu một khối tài nguyên logic lớn FPGA có thể được ứng dụng cho nhiều các lớp bài toán xử lý tín hiệu số cỡ lớn mà các công nghệ trước đó không làm được hoặc làm được nhưng với tốc độ và hiệu suất thấp. Các lớp ứng dụng đó là:

-Các ứng dụng chung về xử lý số như lọc tín hiệu, tìm kiếm, phân tích, giải mã, điều chế tín hiệu, trộn tín hiệu…

-Các ứng dụng về mã hóa, giải mã giọng nói, nhận dạng giọng nói, tổng hợp giọng nói. Xử lý tín hiệu âm thanh bao gồm lọc nhiễu , trộn, mã hóa, giải mã, nén, tổng hợp âm thanh…

-Ứng dụng trong xử lý ảnh số, nén và giải nén, các thao tác biến đổi, soạn thảo, nhận dạng ảnh số…

-Ứng dụng trong các hệ thống thông tin như các hệ thống Voice IP, Voice mail. Modem, điện thoại di động, mã hóa và giải mã truyền thông trong mạng LAN, WIFI… trong truyền hình, radio…

-Ứng dụng trong điều khiển các thiết bị điện tử: ổ cứng, máy in, máy công nghiệp , dẫn đường, định vị, robots.

Như vậy ứng dụng của FPGA bao gồm: xử lý tín hiệu số DSP, các hệ thống hàng không, vũ trụ, quốc phòng, tiền thiết kế mẫu ASIC (ASIC prototyping), các hệ thống điều khiển trực quan, phân tích nhận dạng ảnh, nhận dạng tiếng nói, mật mã học, mô hình phần cứng máy tính...

Do tính linh động cao trong quá trình thiết kế cho phép FPGA giải quyết lớp những bài toán phức tạp mà trước kia chỉ thực hiện nhờ phần mềm máy tính, ngoài ra nhờ mật độ cổng logic lớn FPGA được ứng dụng cho những bài toán đòi hỏi khối lượng tính toán lớn và dùng trong các hệ thống làm việc theo thời gian thực.

Thực tế là FPGA rất hay được sử dụng trong các hệ thống SDR (Software Defined Radio) vì khả năng tái cấu hình giúp các chức năng của thiết bị có thể thay đổi nhanh chóng.

15

Một phần của tài liệu ĐỒ án môn học THIẾT kế MẠCH TÍCH hợp số thiết kế máy phát nhạc MP3, WAV sử dụng KIT phát triển NB2DSK01 và phần mềm hỗ trợ altium designer (Trang 25 - 30)