Chương 1 TỔNG QUAN VỀ CÔNG NGHỆ FPGA 1.1 Cấu trúc FPGA Trước đây phần lớn các loại linh kiện điện tử logic sau khi được chế tạo là cố định về cấu trúc và chức năng không lập trình được như các IC logic họ 74, còn các loại linh kiện lập trình đơn giản như EPROM, EEPROM, PLD. Để thuận tiện cho việc thiết kế, thử nghiêm, tạo mẫu, phát triển ứng dụng, sản suất ở quy mô nhỏ, người ta đã chế tạo ra các linh kiện logic khả trình PLD (Programmable Logic Device) có nghĩa là linh kiện logic có khả năng cấu hình lại nhiều lần cho các ứng dụng khác nhau mà không cần phải thay đổi mạch. Hình 1: Cấu trúc tổng quát của FPGA. 7 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Linh kiện khả trình gồm hai loại chính là CPLD (Complex Programmable Logic Device) và FPGA (Field Programmable Gate Array).
Trên hình 1 chỉ ra cấu trúc tổng quát của một FPGA. Một FPGA gồm một mảng các ô (cell) logic, các ma trận kết nối, và các chuyển mạch.1 Các logic block [11] Cấu trúc và nội dung của logic block được gọi là kiến trúc của nó. Kiến trúc của logic block có thể được thiết kế theo nhiều cách khác nhau. Một số logic block có thể chỉ đơn giản là các cổng AND hai ngõ nhập.
Các logic block khác có cấu trúc phức tạp hơn như các bộ quét động (multiplexer) hoặc các bảng tìm kiếm (look-up table). Trong một số loại FPGA, các logic block có thể có cấu trúc hoàn toàn giống PAL. Hầu hết các logic block chứa một số loại flip-flop để hỗ trợ cho việc thực hiện các mạch tuần tự. Hình 2: Cấu trúc của Logic Block.
8 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Các phần tử CLB (Configurable Logic block) cơ bản được thể hiện trong hình 2. Mỗi một phần tử CLB bao gồm 2 flip-flop và 2 khối chức năng độc lập 4 đầu vào. Các khối chức năng này có tính mềm dẻo cao bởi vì hầu hết các chức năng lôgic kết hợp cần ít hơn 4 đầu vào. Mười ba đầu vào và bốn đầu ra của CLB cung cấp đường dẫn tới các flip-flop chức năng.
Các CLB tiến hành hầu hết các logic trong một FPGA. Các phần tử CLB chủ yếu được biểu diễn trong hình 2. Hai khối chức năng 4 đầu vào (F và G) tạo ra các chức năng đa dạng. Hầu hết các chức năng logic kết hợp cần 4 đầu vào hoặc ít hơn.
Tuy nhiên, một chức năng thứ ba (H) thì được cung cấp. Khối chức năng H có 3 đầu vào. Hai đầu vào này có thể là đầu ra của F và G, đầu vào thứ ba thì từ phía bên ngoài CLB. Vì vậy CLB có thể thực hiện các chức năng lên tới 9 đầu vào, giống như kiểm tra tính chẵn lẻ của số nguyên hoặc sự so sánh đồng nhất thức được khai triển của hai tập hợp của bốn đầu vào.
Mỗi CLB bao gồm hai flip - flop có thể được sử dụng để lưu trữ các đầu ra khối chức năng. Tuy nhiên, các khối flip - flop và chức năng cũng có thể được sử dụng một các độc lập. DIN có thể được sử dụng như một đầu vào trực tiếp tới một trong hai flip - flop. H1 có thể chạy tới flip - flop thông qua khối chức năng H.
Các đầu ra khối chức năng cũng có thể được tiếp cận từ phía bên ngoài CLB, sử dụng hai đầu ra độc lập của đầu ra flip - flop. Tính chất đa dụng này làm tăng tỷ trọng logic và làm đơn giản hoá định hướng (routing). Mười ba đầu vào và bốn đầu ra CLB cung cấp đường dẫn tới các khối chức năng và các flip-flop. Các đầu vào và đầu ra này nối với các nguồn nối liền với nhau có thể lập trình được ở bên ngoài block.
Bốn đầu vào độc lập được cung cấp tới một trong hai khối chức năng (F1-F4 và G1-G4). Các khối chức năng này, các khối mà đầu ra của nó được gán là F' và G’, có khả năng thực hiện bất kỳ hàm Boole xác định của 4 đầu 9 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com vào một cách tuỳ tiện. Các khối chức năng được thực hiện như các bảng tìm kiếm bộ nhớ. Vì vậy sự trì hoãn phổ biến thì độc lập với chức năng được thực hiện.
Khối chức năng thứ ba, được gán là H', có thể thực hiện bất kỳ hàm Boole nào của ba đầu vào của nó. Hai trong số các đầu vào này có thể lựa chọn là các đầu ra khối chức năng F' và G'. Như một sự lựa chọn, một hoặc cả hai đầu vào này có thể tới từ bên ngoài CLB (H2, H0). Đầu vào thứ ba phải tới từ bên ngoài block (H1).
Các nguồn kết nối [11] Hình 3: Cấu trúc của các kết nối. Cấu trúc và nội dung của các nguồn kết nối trong FPGA được gọi là kiến trúc routing (routing architecture). Kiến trúc routing gồm các đoạn dây nối và các chuyển mạch lập trình được. Các chuyển mạch lập trình được có thể có nhiều cấu tạo khác nhau như: pass-transistor được điều khiển bởi cell RAM, các cầu chì nghịch (anti-fuse), EPROM tranzito và EEPROM tranzito.
Giống như logic block, có nhiều cách khác nhau để thiết kế các kiến trúc routing. 10 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Một số FPGA cung cấp nhiều kết nối đơn giản giữa các logic block, một số khác cung cấp ít kết nối hơn nên routing phức tạp hơn. Tất cả các đường nối bên trong thì bao gồm các đoạn kim loại với các điểm nối có thể lập trình được để thực hiện định hướng (routing) mong muốn. Sự phong phú các nguồn routing khác nhau được cung cấp để đạt được routing tự động có hiệu quả.
Số kênh routing được sắp xếp theo kích cỡ của mảng; nó tăng với kích cỡ mảng. Các đầu vào và đầu ra CLB được phân bố trên tất cả 4 mặt của block, tạo ra sự linh hoạt routing. Có bốn loại liên kết chủ yếu, ba loại được phân biệt bởi độ dài tương đối của các đoạn của chúng: các đường dài đơn, đường dài đôi và đường dài. Thêm vào đó, tám buffer toàn bộ chạy nhanh, mạng lưới độ lệch thấp thường sử dụng cho clock hoặc các tín hiệu điều khiển toàn bộ.3 Khối vào ra [11,12] Các khối vào/ra thường được viết tắt là IOB (input Output Block), cấu hình cung cấp giao diện giữa các chân bên ngoài và các tín hiệu logic bên trong.
Mỗi IOB điều khiển một chân và có thể được xác định cho đầu vào, đầu ra hay các tín hiệu hai chiều. Hình 6 biểu diễn biểu đồ một khối vào ra. Các tín hiệu đầu vào, hai đường, được gọi là I1 và I2, mang các tín hiệu đầu vào tới mảng. Các đầu vào cũng nối với một điện trở đầu vào cái mà có thể lập trình được như một flip – flop lật trạng thái theo sườn xung hay một mạch chốt (latch).
Lựa chọn bằng cách đặt gốc thích hợp từ thư viện biểu tượng. Các đầu vào có thể được cấu hình toàn bộ cho các điểm đi vào TTL (1,2V) hoặc CMOS (2,5V) 11 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hình 4: Cấu trúc khối vào ra. Hai điều chỉnh toàn bộ của điểm bắt đầu đầu vào và mức độ đầu ra là độc lập với nhau. Có một hiện tượng trễ nhỏ khoảng 300mV.
Các tín hiệu clock riêng biệt được cung cấp cho các thanh ghi đầu vào và đầu ra; các clock này có thể đảo ngược, sinh ra. Cũng như với trường hợp các thanh ghi CLB, một tín hiệu set/reset toàn bộ có thể được sử dụng để set hay xoá các thanh ghi đầu vào và đầu ra bất cứ khi nào mạng Reset tồn tại. Các đầu vào được ghi, các tín hiệu I1 và I2 thoát block có thể mang các tín hiệu đầu vào trực tiếp hay ghi lại. Các phần tử lưu trữ đầu vào hay đầu ra trong mỗi IOB có một đầu vào có thể clock chung, cái mà qua cấu hình có thể hoạt hoá một cách riêng lẻ cho flip - flop đầu vào hay đầu ra hoặc cả hai.
Clock này có thể vận hành chính xác như chân EC trên CLB XC4000E. Nó không thể đảo ngược trong IOB. 12 LUAN VAN CHAT LUONG download : add luanvanchat@agmail. Phân loại FPGA [12] Các loại FPGA của nhiều công ty khác nhau có các đặc tính riêng, tuy nhiên chúng có thể được chia làm 4 loại chính: cấu trúc mảng đối xứng (symetrical array), cấu trúc hàng (row-based), cấu trúc PLD phân cấp (hierarchical PLD) và cấu trúc đa cổng (sea-of-gates).
Hình 5: Bốn loại cấu trúc FPGA trên thực tế.3Công nghệ lập trình FPGA [11] 1.1 Công nghệ phản cầu chì antifuse Một amorphous-silicon antifuse có thể được gắn trên cầu nối (via) hoặc trên khoảng cách giữa lớp kim loại như được chỉ ra trên hình 6. Trong một ma trận cổng semi-custom, các lớp trên và lớp dưới của kim loại tạo nên một đường dẫn trực tiếp qua một metal interconnect via. Trong một FPGA dựa trên silic vô định hình, hai lớp kim loại được cách biệt bằng silic vô định hình tạo thành sự cách điện. Một xung khoảng 10V-12V trong một khoảng thời gian cần thiết có thể được dùng bắc qua via, làm cho các lớp trên và dưới của 13 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com kim loại nối với nhau gây nên một đường dẫn (với điện trở khoảng 50 om), như chỉ ra trên hình 6.
Bởi vì kích thước của một amorphous-silicon antifuse là giống như của một đường nối kim loại tiêu chuẩn, các bộ phận lập trình được có thể đặt rất dầy đặc và chỉ bị giới hạn bởi kích thước của metal-line pitch, như hình 7. Sau khi đã được lập trình, một antifuse sẽ không thể bị xoá hoặc tái lập trình. Hình 6: Một phần tử phản cầu chì. Hình 7: Mảng mặt nạ phần tử phản cầu chì.
Để lập trình được một antifuse, một sự khác biệt về thế phải được dùng giữa các thành phần antifuse. Mỗi thành phần antifuse được cách biệt bởi một tranzito và do vậy các thành phần khác nhau không thể bị lập trình một cách tình cờ. Những tranzito này, 14 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com cũng như là các logic có liên quan cho việc đảm bảo vị trí của các antifuse, lập thành bộ mạch có thể lập trình được ở trên. Các sản phẩm Actel FPGA dùng Oxide-Nitride-Oxide (ONO) antifuse.
Hình 8: Phần tử phản cầu chì ONO (ONO antifuse). Những cái này bao gồm 3 lớp trên hinh 8. - Lớp trên: là một lớp dẫn điện làm từ polysilicon nối mạch tới một lớp của tấm kim loại. - Lớp giữa là một tổ hợp ONO và là một lớp cách điện.
- Lớp cuối là môt lớp dẫn điện của negatively doped diffusion.