MỞ ĐẦU Năm 1985 hãng Xilinx (Mỹ) giới thiệu trên thị trường một dòng linh kiện mới thuộc chủng loại linh kiện điện tử khả trình (PLD) với tên gọi là FPGA (Field Programmable Gate Array) và ngay lập tức nhận đã được sự hưởng ứng cao từ phía khách hàng. Từ đó đến nay các hãng sản xuất chip FPGA không ngừng cải tiến phát triển các họ sản phẩm mới ngày càng hoàn thiện hơn. Thiết kế mạch điện tử sử dụng FPGA là điều không còn mới mẻ trên thế giới, ở Việt Nam công nghệ FPGA cũng đã được du nhập khoảng 5-7 năm trở lại đây và đã có khá nhiều đề tài khoa học-công nghệ của các Viện nghiên cứu, các Trường đại học thậm chí các đơn vị sản xuất trong lĩnh vực này. Sinh viện của một số trường đại học kỹ thuật cũng đã được học những giáo trình về FPGA.
Sử dụng các chip FPGA trong thiết kế mạch điện tử cho phép chúng ta rút ngắn được đáng kể thời gian và công sức trong việc tạo ra các mạch mẫu thử nghiệm, giảm một cách đáng kể kích thước của các bo mạch điện tử, tiết kiệm được tối đa chi phí làm mạch in, cho phép cập nhật nhanh tới các linh kiện điện tử mới trên thị trường thế giới và đặc biệt rất linh hoạt trong việc thay đổi các phương án thiết kế. Do những đặc điểm trên, công nghệ FPGA thường được sử dụng trong một số lĩnh vực sau: - Thiết kế sản phẩm mẫu - Các hệ thống đa chức năng và cần thay đổi linh hoạt khi sử dụng - Các hệ thống đặc biệt đơn chiếc như trong công nghệ vũ trụ và quốc phòng. 5 TIEU LUAN MOI download : skknchat@gmail.com - Các hệ thống sử lý tín hiệu thời gian thực và các hệ thống nhúng. Các sản phẩm chip FPGA trên thị trường thế giới chủ yếu là của các hãng nổi tiếng của Mỹ như: Xilinx, Actel, Altera.
Hiện nay trên thế giới cũng đã xuất hiện các chíp khả trình bao gồm các phân tử xử lý tín hiệu tương tự FPAA (Field Programmable Analog Array), các chip khả trình xử lý được đồng thời cả tín hiệu số và tương tự (mix-signal), sự kết hợp các công cụ trên còn tạo ra khả năng thiết kế các hệ system-on-chip, thậm chí Lab-on-chip (trong đó có cả các sensor). Do các đặc tính lổi bật của chip FPGA nói trên, trong luận văn này đã sử dụng chip FPGA vào hệ thông thu ảnh vệ tinh khí tượng. Nhằm nâng cao tinh ổn định và nhỏ gon của hệ thu ảnh phân giải cao kỹ thuật số cho vệ tinh khí tượng phục vụ dự báo thòi tiết cũng như phát hiện theo dõi các bién động của khí hậu. 6 TIEU LUAN MOI download : skknchat@gmail.com 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. 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. [11] 7 TIEU LUAN MOI download : skknchat@gmail.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.
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 8 TIEU LUAN MOI download : skknchat@gmail.com 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 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).
9 TIEU LUAN MOI download : skknchat@gmail. 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. 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. 10 TIEU LUAN MOI download : skknchat@gmail.com 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) Hình 4: Cấu trúc khối vào ra. 11 TIEU LUAN MOI download : skknchat@gmail.com 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.