Tài liệu Tìm hiểu tổng quan về công nghệ FPGA: Chương 1
Tổng quan về công nghệ fpga
Giới thiệu chung về FPGA
Chương này tập trung trình bày về công nghệ FPGA và các mạch phần cứng được xây dựng trên công nghệ FPGA. Đây là công nghệ tiên tiến đã được nghiên cứu rất nhiều và được ứng dụng rộng rãi trên thế giới.
FPGA là viết tắt của (Field-Programmable Gate Array), đây là loại IC trong đó cho phép người thiết kế lập trình thay đổi các thiết kế của mình. FPGA xuất hiện như một giải pháp cơ bản cho vấn đề tranh thủ thời gian để đưa ra thị trường và rủi ro tài chính phải gánh chịu trong quá trình nghiên cứu sản phẩm của công nghệ điện tử. FPGA là loại thiết bị khả trình (PLD) tiên tiến nhất hiện nay của nghành công nghệ chế tạo IC chuyên biệt mà vẫn được gọi là ASIC.
Sự phát triển của các thiết bị khả trình (PLD)
Các thiết bị lập trình được, gọi chung là các thiết bị khả trình, có vai trò rất quan trọng trong thiết kế phần cứng số. Chúng là các chíp đa dụng có thể được cấu hình theo nhiều cách cho nhiều ứng dụng khác nhau.
...
35 trang |
Chia sẻ: hunglv | Lượt xem: 1950 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Tìm hiểu tổng quan về công nghệ FPGA, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Chương 1
Tổng quan về công nghệ fpga
Giới thiệu chung về FPGA
Chương này tập trung trình bày về công nghệ FPGA và các mạch phần cứng được xây dựng trên công nghệ FPGA. Đây là công nghệ tiên tiến đã được nghiên cứu rất nhiều và được ứng dụng rộng rãi trên thế giới.
FPGA là viết tắt của (Field-Programmable Gate Array), đây là loại IC trong đó cho phép người thiết kế lập trình thay đổi các thiết kế của mình. FPGA xuất hiện như một giải pháp cơ bản cho vấn đề tranh thủ thời gian để đưa ra thị trường và rủi ro tài chính phải gánh chịu trong quá trình nghiên cứu sản phẩm của công nghệ điện tử. FPGA là loại thiết bị khả trình (PLD) tiên tiến nhất hiện nay của nghành công nghệ chế tạo IC chuyên biệt mà vẫn được gọi là ASIC.
Sự phát triển của các thiết bị khả trình (PLD)
Các thiết bị lập trình được, gọi chung là các thiết bị khả trình, có vai trò rất quan trọng trong thiết kế phần cứng số. Chúng là các chíp đa dụng có thể được cấu hình theo nhiều cách cho nhiều ứng dụng khác nhau.
+ Loại đầu tiên của thiết bị khả trình được sử dụng rộng rãi là Programmable read-only Memory-PROM. PROM là thiết bị lập trình chỉ được một lần gồm một dãy các ô nhớ chỉ đọc. PROM có thể thực hiện bất kỳ một hàm logic theo bảng sự thật nào đó, bằng cách sử dụng các đường địa chỉ như các ngõ nhập vào và ngõ xuất đựơc xác định nội dung các bít nhớ. Có hai loại PROM cơ bản là Mask-Programmable và Field-Programmable.
- Mask-Programmable là loại thiết bị được lập trình bởi nhà sản xuất. Các chíp này thường sản xuất các chíp lôgíc tốc độ cao vì các kết nối bên trong thiết bị được thực hiện bằng phần cứng ngay từ khi sản xuất.
- Field-Programmable là thiết bị được lập trình bởi người dùng. Các kết nối bên trong của Field-Programmable luôn cần đến một số chuyển mạch lập trình được (cầu chì, transistor truyền…) vì vậy tốc độ truyền chậm hơn của thiết bị nối cứng ( Mask-Programmable). Tuy nhiên nó có nhiều ưu điểm như:
. Các chíp Field-Programmable có thể lập trình trong thời gian ngắn (khoảng vài phút hay vài giờ đồng hồ) còn các chíp Mask-Programmable khi sản xuất phải thực hiện trong thời gian dài (hàng tuần hay hàng tháng).
. Các chíp Field-Programmable rẻ hơn nhiều so với Mask-Programmable khi sản xuất với số lượng nhỏ.
Hai biến thể của PROM là EPROM (Eraseable Programmable Read Only Memory) và EEPROM (Electrically Eraseable Programmable Read Only Memory) chúng đều có chung ưu điểm là có khả năng xoá và lập trình lại nhiều lần.
Tiếp đến là các thiết bị PLD (Programmable Logic Device) chúng thông thường có cấu tạo gồm một dãy các cổng AND được nối với một dãy các cổng OR. Loại cơ bản của PLD là PAL (Programmable Array Logic), PAL gồm một khối các cổng AND lập trình được nối đến các khối cổng OR cố định. Một loại nữa của PLD linh hoạt hơn PAL là PLA (Programmable Logic Array). PLA cũng có cấu trúc giống PAL nhưng các kết nối khả trình. Trong PLA cũng có hai loại là Mask-Programmable và Field-Programmable.
Cả hai loại PLD trên cho phép thực hiện các mạch logic có tốc độ cao tuy nhiên cấu trúc đơn giản của chúng chỉ cho phép thực hiện được các mạch logic cỡ nhỏ.
Loại thiết bị khả trình tổng quát nhất gồm dãy các phần tử rời rạc có thể kết nối với nhau theo mô tả của người sử dụng, được gọi là Mask-Programmable Gate Array (MPGA) chúng có cấu trúc cơ bản nhất là gồm các hàng transistor có thể được kết nối với nhau để thực hiện các mạch logic. Các kết nối do người dùng định nghĩa này có thể trong cả hàng và cả cột. Ưu điểm chính của MPGA so với PLD là nó cung cấp các kiến trúc tổng quát cho phép thực hiện các mạch logic lớn hơn. Vì cấu trúc của chúng có thể mở rộng lớn
hơn cùng với số lượng logic lớn hơn.
FPGA đã kết hợp khả năng lập trình của PLD và kết cấu nối có thể mở rộng của MPGA. Do đó các thiết bị lập trình loại này có mật độ logíc cao hơn. FPGA được công ty Xilinx giới thiệu lần đầu tiên vào năm 1985 và đến nay đã có nhiều công ty phát triển như: Actel, Altera, Plessey, Plus logic, Quick...
1.1.2 Field-Programmable Gate Aray (FPGA)
I/O cell
Logic Block
Tài nguyờn kết nối
Hỡnh 1.1 Mụ hỡnh FPGA
1.1.2.1 Cấu trúc các FPGA
FPGA là mạch tích hợp chứa nhiều (64 đến hơn 10.000) ô 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 bởi một ma trận đường dẫn và các chuyển mạch khả trình. Người thực hiện thiết kế bằng các đặc trưng lôgic đơ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 ô lôgic và kiểu kết nối là kết cấu xây dựng khối cơ bản trong mạch lôgic. 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 hai chiều các khối lôgic (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 gồm các đoạn kết nối (segment) 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 lôgic với các đoạn dây, các khối vào/ra hay các đoạn dây với nhau. Mạch lôgic cài đặt trong FPGA bằng cách ánh xạ lôgic vào các lôgic riêng rẽ và sau đó nối các khối lôgic 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à các đường tín hiệu bên trong. Tài nguyên kết nối khả trình cung cấp các bộ phận truyền dẫn tới kết nối đầu vào và đầu ra của các CLB và các IOB trong mạng riêng.
Vậy cấu trúc FPGA gồm ba phần tử chính: Các khối lôgic cấu hình (CLB), các khối vào/ra (IOB) và các kết nối.
a. Các khối lôgic cấu hình (Configurable logic Block)
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 lôgic có thể thiết kế theo nhiều cách khác nhau, có thể là các cổng AND 2 ngõ nhập, các bộ dồn kênh (Multiplexer) hay các bảng tìm kiếm (Lock-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ự.
b. Các nguồn kết nối (Routes)
Các nguồn kết nối có cấu trúc và nội dung được gọi là kiến trúc đường
(Routing Architecture). Kiến trúc Routing gồm các đoạn đây nối và các chuyển mạch khả trình. Các chuyển mạch khả trình có cấu tạo khác nhau như pass-transistor, được điều khiển bởi các cell SRAM, các phần tử cầu chì nghịch, EPROM transistor và EEROM transitor. Giống như các khối lôgic 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 khối logic, một số khác cung cấp ít kết nối hơn nên routing phức tạp hơn.
1.1.2.2 Phân loại FPGA
FPGA có nhiều loại khác nhau có cấu trúc và đặc tính riêng tuỳ theo từng hãng sản xuất, tuy nhiên chúng có bốn loại chính sau: cấu trúc mảng đối xứng (Symmetrical Array), cấu trúc PLD phân cấp (hierachircal PLD), cấu trúc hàng (Row base) và cấu trúc đa cổng (Sea of Gate) mô tả dưới đây.
Đa cổng
PLD phân cấp
Kết nối
Logic
Block
Logic Block
Kết nối
Cấu trúc hàng
Logic Block
Kết nối
Mảng đối xứng
Kết nối phủ lên
Logic
Block
PLD
Block
Hỡnh 1.2 Bốn loại FPGA trờn thực tế
1.1.3 Các công nghệ lập trình FPGA
Có nhiều cách thực hiện các phần tử lập trình, các công nghệ lập trình hiện đang sử dụng là: RAM tĩnh, cầu chì nghịch (anti-fuse), EPROM transistor và EEROM transistor. Mặc dù công nghệ lập trình khác nhau, tất cả các phần tử lập trình đều có chung tính chất là có thể cấu hình được trong một trong hai trạng thái ON hoặc OFF. Các phần tử lập trình được dùng để thực hiện các kết nối lập trình được giữa các khối lôgic của các FPGA, còn FPGA thông thường có thể hơn 100.000 phần tử lập trình. Vì vậy các phần tử lập trình phải có những tính chất sau:
- Chiếm càng ít diện tích của chíp càng tốt.
- Có trở kháng thấp khi ở trạng thái ON và trở kháng cao khi ở trạng thái OFF.
- Có điện dung ký sinh thấp khi kết nối các đoạn dây.
- Có thể chế tạo một cách tin cậy số lượng lớn phần tử lập trình trên một chíp.
Có thể tuỳ thuộc vào ứng dụng cụ thể và có các số lượng phần tử lập trình có thể có các đặc tính khác. Về mặt chế tạo, các phần tử lập trình nếu có thể chế tạo theo công nghệ CMOS chuẩn là tốt nhất. Dưới đây sẽ trình bày chi tiết các công nghệ lập trình FPGA.
a. Công nghệ lập trình dùng RAM tĩnh
Hỡnh 1.3 Cụng nghệ lập trỡnh RAM tĩnh .
Cổng transitor
Bộ dồn kênh
Transistor truyền
RAM
Cell
Dây nối
Dây nối
Đường gọi ra
Dây nối
MUX
RAM
Cell 2
RAM
Cell 1
Dây nối
Dây nối
RAM
Cell
Công nghệ lập trình dùng RAM tĩnh (SRAM) sử dụng công nghệ CMOS tiêu chuẩn. Các kết nối lập trình được điều khiển bằng các transistor khác trên chíp hoặc bật (On) các transistor truyền dẫn cũng như các cổng transistor để tạo một kết nối hay tắt (Off) để ngắt kết nối.
Trong trường hợp transistor truyền dẫn và cổng transistor như hình trên, phần tử RAM Cell điều khiển cổng truyền bật hoặc tắt. Khi tắt giữa hai dây nối với cổng truyền dẫn sẽ có một trở kháng rất cao. Khi bật nó sẽ tạo một trở kháng thấp kết nối giữa hai dây nối. Đối với bộ dồn kênh, SRAM Cell điều khiển ngõ nhập nào của bộ dồn kênh sẽ được nối với ngõ ra của nó. Cách này thường dùng để kết nối tuỳ chọn từ một hay nhiều ngõ nhập của một khối
logic.
Trong các FPGA sử dụng công nghệ lập trình SRAM, các khối logic có thể được kết hợp với nhau qua cách kết hợp cả bộ dồn kênh (Multiplexer) và cổng truyền dẫn (pass-gate). Vì SRAM là bộ nhớ bay hơi, các FPGA này phải được tái cấu hình mỗi khi cấp nguồn cho chíp. Điều này có nghĩa là hệ thống sử dụng các chíp này phải có một số cơ chế lưu trữ thường trực cho các bit của RAM Cell, chẳng hạn ROM hay đĩa từ. Các bit của RAM Cell có thể được nạp vào FPGA một cách tuần tự hay định địa chỉ như một phần tử của mảng (theo cách thông thường của một RAM).
Các chíp được thực hiện theo công nghệ SRAM có diện tích khá lớn, bởi vì cần ít nhất 5 transistor cho mỗi RAM Cell cũng như các transistor cần thêm cho cổng truyền dẫn hay bộ dồn kênh. Ưu điểm của kỹ thuật này là cho phép FPGA có thể được tái cấu hình ngay trên mạch rất nhanh và nó có thể được chế tạo bằng công nghệ CMOS chuẩn.
b. Các thiết bị lập trình cầu chì nghịch (Anti-fuse)
Công nghệ lập trình anti-fuse được sử dụng trong các FPGA của Actel-Corp, Quick Logic và Cross Point Solution. Tuy anti-fuse được sử dụng trong các loại FPGA này có cấu tạo khác nhau, nhưng chức năng của chúng là như nhau. Một anti-fuse bình thường sẽ ở trạng thái cao, nhưng có thể bị “nóng chảy” thành trạng thái điện trở thấp khi được lập trình ở điện thế cao. Dưới đây sẽ giới thiệu cấu tạo của các anti-fuse của Actell và Quick Logic.
Anti-fuse của Actell được gọi là PLICE. Nó cấu trúc hình chữ nhật gồm 3 lớp: Lớp dưới cùng chứa các silic mang nhiều điện tích dương (n+diffusion), lớp giữa là một lớp điện môi (Oxy-Nitơ-Oxy cách điện), và lớp trên cùng là Poly-Silic.
n+diffusion
Poly-Si
metal 1 wire
anti-fuse
metal 2 wire
b) Cấu trúc
n+diffusion
silicon substrate
dielectric
Oxide
Poly_si
a) Mặt cắt ngang
Hình 1.4 Công nghệ lập trình cầu chì nghịch PLICE
Anti-fuse PLICE được lập trình bằng cách đặt một điện thế cao thích hợp (18V) giữa hai đầu của anti-fuse và dòng điều khiển khoảng 5mA qua thiết bị. Dòng và áp này tạo ra một nhiệt lượng đủ nóng bên trong lớp điện môi làm nó nóng chảy và tạo ra một liên kết dẫn điện giữa các điện cực. Các transistor chịu được các điện thế cao được chế tạo bên trong FPGA để đáp ứng cho dòng và điện áp đủ lớn. Cả hai lớp dưới cùng và trên cùng của cầu chì nghịch được nối với các dây kim loại để khi được lập trình cầu chì nghịch sẽ tạo ra một kết nối có trở kháng thấp (300W đến 500W) giữa hai dây kim loại.
Anti-fuse của Quick-Logic được gọi là ViaLink. Nó tương tự như PLICE cũng có ba lớp kim loại. Tuy nhiên, ViaLink sử dụng kim loại mức 1 cho lớp dưới cùng, một hợp chất vô dịnh hình cho lớp giữa và kim loại mức 2 cho lớp trên cùng. Khi ở trạng thái không được lập trình, anti-fuse có trở kháng hàng gigaôm, nhưng khi được lập trình nó sẽ tạo ra một kết nối giữa hai lớp kim loại trở kháng khoảng 80W. Anti-fuse được chế tạo bằng cách thêm 3 mặt nạ đặc biệt trong quy trình chế tạo CMOS thông thường.
ViaLink anti-fuse được lập trình bằng cách đặt một điện thế 10V giữa các đầu của nó, dòng được cấp đủ, trạng thái của Silic vô định hình sẽ thay đổi và tạo ra một liên kết điện giữa hai lớp kim loại. Diện tích các chíp sử dụng kỹ thuật anti-fuse rất nhỏ so với công nghệ khác. Tuy nhiên, bù lại cần phải có không gian lớn cho các transistor điện thế cao cần để giữ cho dòng và áp cao lúc lập trình. Nhược điểm của anti-fuse là quy trình chế tạo chúng phải thay đổi so với quy trình chế tạo SMOS.
oxide
Silic vụ định hỡnh
metal 2
metal 1
Hình 1.5 Công nghệ lập trình cầu chì nghịch ViaLink
c. Công nghệ lập trình dùng EPROM và EEROM
điện trở nguồn
+5v
EPROM transistor
Bit line
gnd
Word line
Floating Gate
Select Gate
Hình 1.6 Công nghệ lập trình EPROM transistor
Công nghệ được dùng trong các FPGA của Altera Corp, và Plus Logic. Công nghệ này giống như sử dụng trong bộ nhớ EPROM. Không giống CMOS transistor đơn giản, một EPROM transistor gồm hai cổng, một cổng treo (floating-gate) và một cổng chọn (select-gate). Cổng treo được đặt giữa cổng chọn và kênh dẫn của transitor, cổng này được gọi như thế vì nó không có kết nối điện đến bất kỳ mạch nào.
ở trạng thái bình thường không được lập trình, không có điện tích giữa cổng treo (floating-gate) và transitor có thể chuyển sang trạng thái ON một cách bình thường bằng cổng chọn (select-gate). Khi transistor được lập trình bằng một dòng điện lớn chạy giữa nguồn và kênh, một điện tích được giữ lại ở cổng treo. Điện tích này làm transistor chuyển sang trạng thái OFF. Bằng cách này, EPROM transistor có thể có chức năng của một phần tử lập trình được. Một EPROM transistor có thể được tái lập trình bằng cách huỷ bỏ lớp điện tích được giữ lại ở cổng treo (phơi dưới ánh sáng cực tím sẽ kích hoạt các electron chuyển từ cổng vào chất nền của transistor).
EPROM transistor được sử dụng trong FPGA theo cách khác với SRAM và anti-fuse thay vì dùng cho lập trình kết nối hai dây, EPROM transistor được sử dụng để “kéo xuống” các ngõ nhập của logic-block.
Như hình vẽ (1.6), một đường dây gọi là “word line” (theo thuật ngữ bộ nhớ) được nối với cổng chọn của EPROM transistor, khi transistor chưa được lập trình ở trạng thái ON. “Word line” có thể làm cho “bit line” không được nối với ngõ nhập của logic-block vì bị kéo về mức logic không. Nhiều EPROM transistor ứng với nhiều “word line” được nối với cùng một “bit line”, khi một điện kéo lên nguồn nối với “bit line”, mô hình không những cho EPROM transistor thực hiện các kết nối mà còn thực hiện các chức năng logic AND nối dây (wired-AND). Nhược điểm của phương pháp này là các điện trở tiêu tốn năng lượng cố định.
Một ưu điểm của EPROM transistor là chúng có thể tái lập trình mà không cần bộ nhớ bên ngoài. Tuy nhiên, không giống SRAM, EPROM transistor không thể được tái lập trình ngay trên bo mạch.
Phương pháp dùng EEPROM (được sử dụng trong các FPGA của Advanced Micro Device-AMD) tương tự như công nghệ EPROM, ngoại trừ EEPROM transistor tốn gấp đôi diện tích chíp so với EPROM transistor và cần nhiều nguồn điện thế (để tái lập trình) mà các loại khác không cần.
Các công nghệ lập trình FPGA được tóm tắt trong bảng dưới đây:
Bảng 1.1 Các đặc tính của công nghệ lập trình
Công nghệ lập trình
Tính bay hơi
Có thể lập
trình
Diện tích chíp
R(Kohm)
C(pf)
Static RAM Cell
Có
Trong mạch
Lớn
1-2
10-20
PLICE
Anti-fuse
Không
Không
Anti-fuse nhỏ
Số transistor lớn
300-500
3-5
ViaLink
Anti-fuse
Không
Không
Anti-fuse nhỏ
Số transistor lớn
50-80
1-3
EPROM
Không
Ngoài mạch
Nhỏ
2-4
10-20
EEPROM
Không
Trong mạch
2xEPROM
2-4
10-20
1.2 Các ứng dụng của FPGA
FPGA là thế hệ sau của IC khả trình nên chúng có thể ứng dụng trong hầu hét các ứng dụng của hiện đang dùng MPGA, PLD và các mạch tích hợp loại nhỏ (SSI).
Các mạch tích hợp là ứng dụng đặc biệt
FPGA là thiết bị tổng quát nhất để thực hiện các mạch lôgic số. Chúng đặc biệt thích hợp cho các mạch tích hợp chuyên dụng đặc biệt (ASIC) như bộ cộng, bộ điều khiển lôgic Flip-Flop...
b. Thiết kế mạch ngẫu nhiên
Mạch lôgic ngẫu nhiên thường được thực hiện bằng PAL. Nếu tốc độ của mạch không đòi hỏi khắt khe (các PAL nhanh hơn hầu hết các FPGA) thì mạch có thể thực hiện bằng FPGA. Hiện nay một FPGA cần từ 10 đến 20 PAL.
c. Thay thế các chíp SSI cho mạch ngẫu nhiên
Các mạch hiện tại trong các sản phẩm thương mại thường chứa nhiều chíp SSI. Trong nhiều trường hợp có thể thay thế bằng FPGA để giảm diện tích bo mạch.
d. Chế tạo mẫu
FPGA rất lý tưởng cho việc tạo mẫu các sản phẩm. Giá thành thực hiện thấp và thời gian thực hiện thiết kế vật lý ngắn, cung cấp các ưu điểm hơn nhiều so với các phương tiện truyền thống khác để chế tạo mẫu phần cứng. Các mẫu ban đầu có thể thực hiện rất nhanh và những thay đổi sau đó được thực hiện rất nhanh và ít tốn kém.
e. Máy tính dựa trên FPGA
Một loại máy tính dựa trên FPGA có thể tái lập trình ngay trên FPGA. Các máy này có một bo mạch chứa các FPGA với các chân nối với các chíp lân cận giống như thông thường. ý tưởng là là một chương trình phần mềm có thể được “biên dịch” (sử dụng kỹ thuật tổng hợp mức cao, mức lôgic và mức sơ đồ bằng tay) vào ngay phần cứng. Phần cứng này sẽ được thực hiện bằng cách lập trình bo mạch FPGA. Phương pháp này có hai ưu điểm chính: một là không cần quá trình lấy lệnh như các bộ xử lý truyền thống vì phần cứng đã gộp cả lệnh. Kết quả là tốc độ có thể tăng lên hàng trăm lần. Hai là, môi trường tính toán có thể thực hiện song song mức cao, làm tăng tốc thêm nữa.
f. Tái cấu hình thành phần trực tiếp
FPGA cho phép có thể thay đổi theo mong muốn cấu trúc của một máy đang hoạt động. Một ví dụ là các thiết bị máy tính từ xa có thể thay đổi trực tiếp để khắc phục sự cố hay có lỗi thiết kế. Kiểu FPGA thích hợp nhất cho ứng dụng này là những FPGA có các chuyển mạch lập trình được.
1.3 Giới thiệu các loại thiết bị FPGA của hãng XILINX
1.3.1 Các loại thiết bị FPGA trên thị trường
Trong nghành công nghiệp chế tạo IC đang phát triển và phạm vi ngày càng mở rộng, chỉ có một số hãng đi đầu và chiếm được thị trường trong việc cung cấp các sản phẩm FPGA. Trong đó phải kể đến ba hãng lớn là: Xilinx, Actel và Altera.
Bảng 1.2. Tóm tắt kiến trúc một số loại FPGA trên thị trường
Công ty
Kiến trúc tổng quát
Kiểu khối logic
CN lập trình
Xilinx
Symmetrical Array
Look-up Table
Static RAM
Actel
Hierachical-PLD
PLD Block
EPROM
Altera
Row-based
Multiplexers-Based
Anti-fuse
Plessey
Sea-of-gates
NAND-gate
Static RAM
Plus
Hierachical-PLD
PLD Block
EPROM
AMD
Hierachical-PLD
PLD Block
EPROM
QuyckLogic
Symmetrical Array
Multiplexers-Based
Anti-fuse
Algotronix
Sea-of-gates
Multiplexers-Based Gate
Static RAM
1.3.2 Kiến trúc tổng quát FPGA của Xilinx
Kiến trúc tổng quát của Xilinx được mô tả như hình vẽ. FPGA gồm một mảng hai chiều các khối lập trình được gọi là các khối logic CLBs (configurable Logic Block) với các kênh Routing (Routing chanel) ngang giữa các hàng Block và các kênh dọc giữa các cột Block. Các nguồn tài nguyên có thể lập trình được điều khiển bởi các SRAM cell. Xilinx gồm có các họ cơ bản là: XC2000, XC3000, XC4000,...Virtex-II, Spartan, Virtex II Pro, theo thứ tự tăng dần về công nghệ và linh hoạt lớn hơn.
Hỡnh 1.7 Cấu trỳc tổng quỏt FPGA của Xilinx
Logic Block
Lập trình được
Kênh routing dọc
Kênh routimg ngang
I/O Block
Sau đây sẽ trình bày các thành phần cơ bản FPGA họ Virtex-II của Xilinx.
1.3.3 FPGA Virtex-II của Xilinx
Kiến trúc Virtex-II được tối ưu hoá cho các thiết kế mật độ và tốc độ cao. Như biểu diễn trên hình vẽ, Virtex-II gồm các khối vào/ra (IOBs) và các khối logic cấu hình (CLBs).
Các khối vào/ra khả trình cung cấp giao diện giữa các chân của vi mạch với các khối logic bên trong.
Virtex-II sử dụng công nghệ hiện đại nhất FPGA. Mật độ tích hợp từ 40k8M cổng hệ thống, tần số xung nhịp bên trong lên đến 420 MHz trong truyền dữ liệu đạt 840Mb/s. Phân cấp bộ nhớ RAM lựa chọn (Select RAM). Chức năng số học gồm khối nhân 18 bit 18 bit chuyên dụng. Tài nguyên logic mềm dẻo gồm hơn 93 thanh ghi nội bộ, 184 bộ chốt, 93184 bảng tìm kiếm (LUT) hay dãy thanh ghi dịch 16 bit và bus nội bộ 3 trạng thái. Mạch điều khiển đồng bộ xụng nhịp lên đến 12 Module điều khiển đồng bộ xung nhịp số (DCM), bộ đệm phân bố xung nhịp toàn bộ thiết bị. Công nghệ kết nối linh hoạt được tích hợp VHDL và Verilog, có thể tạo lại cấu hình từng phần.
Hình1.8: Kiến trúc chung của Virtex-II
Đặc trưng cấu tạo các thành phần trong họ Virtex-II FPGA được tóm tắt trong bảng sau:
Bảng 1.3 Tóm tắt về thiết bị Virtex-II.
Thiết bị
Cổng hệ thống
CLB
(1CLB=4slices=max128bit)
Số bộ nhân
Khối SelectRAM
DCM
Chân vào ra lớn nhất
Ma trận hàng cột
Slices
Max của RAM phân bố
Khối
18Kbit
Max RAM (Kbit)
XC2V40
40K
88
256
8
4
4
72
4
88
XC2V80
80K
168
512
16
8
8
144
4
120
XC2V250
250K
2416
1.526
48
24
24
132
8
200
XC2V500
500K
3224
3.072
96
32
32
576
8
264
XC2V1000
1M
4032
5.120
160
40
40
720
8
432
XC2V1500
1.5M
4840
7.680
240
48
48
864
8
528
XC2V2000
2M
5648
10.572
336
56
56
1.008
8
624
XC2V3000
3M
6458
14.336
448
96
96
1.728
12
720
XC2V4000
4M
8072
23.040
720
120
120
2.160
12
912
XC2V6000
6M
9688
33.792
1.056
144
144
2.592
12
1.104
XC2V8000
8M
112104
46.592
1.456
168
168
3.024
12
1.108
1.3.3.1 Khối vào/ra (IOBs)
Switch
Matrix
IOB
PAD4
IOB
PAD3
IOB
PAD2
IOB
PAD1
Dilferential Pair
Dilferential Pair
Hỡnh 1.9 Khối vào/ra (IOB) của Virtex-II
Các khối vào/ra của Virtex-II được thực hiện trong những nhóm hai hay bốn trên chu vi bao quanh thiết bị. Mỗi khối vào/ra có thể được sử dụng như là đầu vào hoặc/và đầu ra. Hai khối có thể được sử dụng như một cặp vi sai. Mỗi cặp luôn được kết nối tới ma trận chuyển mạch như được thể hiện trên hình 1.9.
Mỗi khối IOB gồm sáu phần tử nhớ được mô tả trong hình 1.10:
Hình 1.10 Khối IOB của Virtex-II
Mỗi phần tử nhớ được cấu tạo từ Flip-flop DSP lật theo sườn dương hay theo mức. ở đầu vào, đầu ra và đường 3 trạng thái có sử dụng một hay hai thanh ghi DDR.
CLOCK
D11
O1
CLkK1
D2
O2
CLkK1
DDR MUX
FDDR
D111
O1
CLkK1
D2
O2
CLkK1
DDR MUX
FDDR
DCM
Hỡnh 1.11 Thanh ghi DDR
Tốc độ dữ liệu kép (DDR) đạt được do hai thanh ghi trên mỗi nhánh được
CLOCK
D11
O1
CLkK1
D2
O2
CLkK1
DDR MUX
FDDR
D111
O1
CLkK1
D2
O2
CLkK1
DDR MUX
FDDR
DCM
Hỡnh 1.11 Thanh ghi DDR
điểm nhịp bởi sườn lên (hay sườn xuống) của các đồng hồ khác nhau. Hai tín hiệu đồng hồ được phát ra bởi DCM và phải được đảo pha như thể hiện trong hình 1.10. Có hai đầu vào, đầu ra và các tín hiệu 3 trạng thái, mỗi tín hiệu được luân phiên điểm nhịp. Trong một đường truyền xung nhịp thì có độ giữ chậm đồng nhất.
Mỗi nhóm thanh ghi có tín hiệu cho phép xung nhịp (ICE cho thanh ghi đầu vào, OCE cho thanh ghi đầu ra và TCE cho thanh ghi ba trạng thái). Tín hiệu cho phép xung nhịp mặc định có mức tích cực cao. Nếu bên trái không được kết nối, cho phép xung nhịp cho phần tử nhớ mặc định ở mức tích cực. Mỗi khối vào/ra IOB có thể thiết lập hay reset đồng bộ hay không đồng bộ (tín hiệu SR và REV). Tín hiệu SR đưa phần tử nhớ vào trạng thái quy định bởi SRHIGHT hay SRLOW. SRHIGHT đưa phần tử vào logic “1”, SRLOW đưa vào trạng thái “0”. Khi SR được sử dụng, tín hiệu vào thứ hai (REV) đưa phần tử nhớ vào trạng thái ngược lại. Điều kiện RESET ưu tiên hơn điều kiện thiết lập. Trạng thái ban đầu được xác định bởi các thuộc tính riêng INIT0, INIT1.
Mặc định, SRLOW bắt buộc thuộc tính INIT0 và SRHIGHT bắt buộc thuộc tính INIT1. Đối với mỗi phần tử nhớ, các thuộc tính SRHIGHT, SRLOW, INIT0, INIT1 độc lập.
FF
LATCH
D1 Q1
CE
CLK1
SR REW
FF
LATCH
D2 Q2
CE
CLK2
SR REW
FF1
DDR MUX
FF2
INT1
INT0
SRHIGHT
SRLOW
1
CLK2
1
REV
SR
CLK1
CE
OQ or TQ
Hình 1.12 Cấu hình của thanh ghi/chốt trong khối (IOB)
Các tuỳ chọn vào/ra.
Đầu vào:
Đầu vào của khối IOB của Virtex-II là đường truyền tín hiệu vào trực tiếp hoặc thông qua lựa chọn đầu vào Flip-Flop hay chốt, hay thông qua thanh ghi đầu vào DDR. Lựa chọn phần tử giữ chậm trên đầu vào D của phần tử cất giữ để loại bỏ thời gian giữ chậm từ đệm đến đệm (pad-to-pad). Giữ chậm đối xứng bên trong phân bố xung nhịp của thiết bị Virtex-II, và khi được sử dụng thời gian giữ chậm từ đệm tới đệm bằng không.
Đầu ra:
Đường đầu ra gồm bộ đệm ba trạng thái điều khiển đường đưa vào đệm. Đầu ra và/hoặc tín hiệu ba trạng thái có thể được truyền dẫn trực tiếp từ khối logic bên trong hoặc từ Flip-Flop (chốt) đầu ra (hay Flip-Flop (chốt) đệm ba trạng thái) thông qua thanh ghi đầu ra DDR hay thanh ghi ba trạng thái. Mỗi đầu ra được điều khiển bằng chương trình lập trình riêng một phạm vi độ rộng của chuẩn điện áp tín hiệu thấp.
1.3.3.2 Cấu hình khối logic (CLB)
Cấu hình khối logic của Virtex-II được sắp xếp thành một mảng và được
Hỡnh 1.13 Phần tử CLB của Virtex II
TBUF X0Y1
SHIFT
COUT
COUT
CIN
CIN
Switch
Matrix
Slice
X1Y1
Slice
X1Y0
Slice
X0Y1
Slice
X0Y0
TBUF X0Y1
Fast
Connects
To neighbors
sử dụng để xây dựng nên tổ hợp và thiết kế logic đồng bộ. Mỗi phần tử CLB được nối tới các ma trận chuyển mạch để truy cập tới ma trận đường dẫn chung. Một phần tử CLB gồm 4 mảnh (Slices) giống nhau với vị trí phản hồi nhanh trong CLB. Bốn mảnh phân thành hai cột (mỗi cột hai mảnh) với hai dãy cờ logic độc lập.
a. Cấu trúc của Slice
ORCY
MUX Fx
LUT G
SRL 16
RAM 16
LUT F
SRL 16
RAM 16
Register
Register
CY
CY
MUX F5
Arithmetic Logic
Hỡnh 1.14 Cấu trỳc Slice của Virtex II
Mỗi slice gồm hai hàm thực hiện (Function generator) 4 đầu vào, cờ logic, các cổng logic số học, bộ dồn kênh rộng và hai phần tử cất giữ, được mô tả trên hình vẽ:
Mỗi hàm tạo 4 đầu vào là khả trình như là LUT-4 đầu vào, 16 bit bộ nhớ lựa chọn RAM phân bố, thanh ghi dịch 16 bit.
Đầu ra từ hàm thực hiện trong mỗi slice điều khiển cả hai đầu ra và đầu vào D của phần tử nhớ thể hiện trên hình sau.
Hình 1.15 Chi tiết một Slice của Virtex-II
b. Cấu hình Slice
- Bảng dò tìm LUT (Lookup table)
Hàm tạo thực hiện như bảng tìm kiếm (LUT) 4 đầu vào. 4 đầu vào độc lập cung cấp cho một trong hai hàm tạo năng trong một Slice (F và G). Hàm tạo có khả năng thực hiện được bất kỳ một hàm Boolean nào của bốn đầu vào. Tín hiệu từ hàm tạo có thể thoát ra khỏi Slice (đầu ra X hoặc Y), đưa tới đầu vào XOR hoặc đầu vào bộ dồn kênh, đầu vào D của phần tử nhớ hay đưa tới MUX 5, đầu vào cờ logic.
Ngoài khối LUT cơ bản slice có thể kết hợp với các hàm tạo khác để tạo ra một hàm có 5, 6, 7, 8 hay 9 đầu vào, tuỳ theo cách kết hợp với các bộ dồn kênh.
Thanh ghi chốt
Phần tử cất nhớ trong slice của Virtex-II được cấu tạo từ Flip-Flop dạng DSP sườn dương hay chốt mức thay đổi. Đầu vào DSP có thể điều khiển trực tiếp bằng đầu ra X, Y thông qua đầu vào DX hay DY hoặc thông qua các đầu vào phụ của hàm tạo thông qua đầu vào BX, BY. Tín hiệu cho phép đồng bộ hoạt động ở trạng thái cao.
Tài nguyên SelectRAM phân bố
Mỗi hàm tạo có thể thực hiện như là một bộ tài nguyên RAM đồng bộ được gọi là phần tử SelectRAM phân bố. SelectRAM phân bố cấu trúc trong một CLB có dạng như sau.
. Single-port 16 8 bit RAM
. Single-port 32 4 bit RAM
. Single-port 64 2 bit RAM
. Single-port 128 1 bit RAM
. Dual-port 16 4 bit RAM
. Dual-port 32 2 bit RAM
. Dual-port 64 1 bit RAM
Với cấu trúc cổng đơn, bộ nhớ SelectRAM phân bố có một cổng địa chỉ đồng bộ đọc và một cổng địa chỉ đồng bộ ghi. Với cấu trúc cổng đôi, bộ nhớ SelectRAM phân bố có cổng đồng bộ ghi và các cổng đồng bộ đọc. Hàm tạo có các địa chỉ tách biệt A1, A2, A3, A4 và địa chỉ đầu vào ghi (WG1/WF1, WG2/WF2, WG3/WF3, WG4/WF4).
Trong kiểu cổng đơn địa chỉ đọc ghi có bus địa chỉ giống nhau. Trong kiểu cổng đôi, một hàm tạo (cổng R/W) được kết nối với các địa chỉ đọc, ghi riêng biệt. Hàm tạo thứ hai có đầu vào A (đọc) được kết nối tới địa chỉ cổng chỉ đọc thứ hai và đầu vào W (ghi) tách biệt với địa chỉ cổng đọc/ghi.
Thanh ghi dịch
Mỗi hàm tạo có thể được cấu tạo như là thanh ghi dịch 16 bit. Thao tác ghi đồng bộ với CLK và tín hiệu lựa chọn CE, thông qua 4 bit địa chỉ, A(30). Ngoài ra có thể kết hợp với các bộ dồn kênh tạo ra các thanh ghi dịch nhiều bit hơn.
Hình 1.16 Cấu trúc của thanh ghi dịch
( Optional )
SHIFT OUT
Registered
Output
Output
CLK
CE (SR)
D(BY)
A[3:0]
SHIFT IN
SRLC 16
SHIFT - REG
A[4:1] D
MC 15
WS DI
WSG
WE
CK
D O
- Các bộ dồn kênh
Trong Virtex-II, hàm tạo kết hợp với bộ dồn kênh có thể thực hiện được:
. 4:1 multiplexer trên một slice
. 8:1 multiplexer trên hai slice
. 16:1 multiplexer trên một CLB element (4 slices)
. 32:1 multiplexer trên hai CLB elements (8 slices)
Mỗi slice có một bộ dồn kênh MUXF5 và một MUXFX có thể là MUXF6, MUXF7, MUXF8. Mỗi CLB có 2 MUXF6, một MUXF7 và một MUXF8. Cách thực hiện nó thể hiện như hình vẽ.
Slice S0
Slice S1
F5
F8
F
G
F5
F6
F
G
F5
F7
F
G
F5
F6
F
G
Slice S3
Slice S2
CLB
Hỡnh 1.17 Cấu trỳc phõn kờnh
- Tài nguyên khối SelectRAM 18 bit
Thiết bị Virtex-II kết hợp một số lượng lớn khối SelectRAM 18 bit. Nó khác hẳn với cấu trúc RAM phân bố cung cấp số lượng phần tử nhớ lớn và nằm độc lập với khối CLB. Mỗi khối SelectRAM của Virtex-II là dạng cổng đôi 18 Kbit với hai hệ thống xung nhịp độc lập, các cổng điều khiển đồng bộ độc lập. Cấu trúc của SelectRAM có các giá trị thay đổi có thể là dạng cổng đơn hay cổng kép.
. Cấu trúc kiểu cổng đơn: RAM cổng đơn, khối SelectRAM có thể truy cập tới 18 Kb vị trí bộ nhớ hay 2Kb 9 bit hoặc 512 36 bit và có thể là 16K 1 bit, 8K 2 bit hoặc 4K 4 bit. Thuận lợi của các độ rộng 9 bit, 18 bit, 36 bit là khả năng cất giữ các bit chẵn lẻ cho mỗi khối 8 bit. Bit chẵn lẻ có thể
được tạo ra hoặc kiểm tra bên ngoài khi sử dụng khối logic.
Mỗi khối ô SelectRAM là bộ nhớ đồng bộ đầy đủ mô tả trên hình. Độ rộng bus dữ liệuđầu vào và bus dữ liệu đầu ra được xác định.
18 Kbit Block Selec RAM
DI
DIP
ADDR
WI
IN
SSR DO
CIK DOP
Hình 1.18 khối SelectRAM kiểu cổng đơn
. Cấu trúc kiểu cổng đôi: RAM cổng đôi, mỗi cổng của khối SelectRAM có thể truy cập tới 18 Kb bộ nhớ. Các cổng này đồng bộ đầy đủ có tín hiệu điều khiển độc lập cho mỗi cổng. Độ rộng bus dữ liệu của hai cổng này có cấu trúc độc lập.
Khối Selec RAM 18Kbit
DIA
DIPA
ADDRA
WEA
ENA DOA
SSRA DOPA
KLKA
DIB
DIPB
ADDRB
WEB
ENA DOB
SSRB DOPA
KLKB
Khối
SelecRAM
18Kbit
Bộ nhõn 18´ 18
Ma trận chuyển mạch
Ma trận chuyển mạch
Ma trận chuyển mạch
Ma trận chuyển mạch
Hình 1.19 Khối SelecRAM trong kiểu cổng đôi và kết hợp với khối nhân
- Khối nhân 1818 bit
Khối nhân của Virtex-II là khối nhân dấu mã bù hai 18 bit. Trong thiết bị Virtex-II có nhiều khối nhân độc lập hoặc kết hợp với SelectRAM khối 18 Kb.
Mỗi bộ nhớ SelectRAM và khối nhân đưa trực tiếp tới ma trận chuyển mạch.
Cấu trúc khối nhân 1818 bit là khối nhân dấu bù hai. Cả đầu vào A, B đều có độ rộng 18 bit và đầu ra là 36 bit.
1.3.3.3 Tài nguyên kết nối
Tài nguyên kết nối tổng thể và địa phương của Virtex-II để tối ưu về tốc độ và có thể dự đoán được thời gian truyền và sẽ làm cho lõi IP dễ dàng thực hiện. Công nghệ kết nối kinh hoạt của Virtex-II có đầy đủ bộ đệm ma trận đường kết nối khả trình. Tất cả nguồn tài nguyên rất thuận lợi cho xử lý phân cấp. Đặc trưng logic liên kết CLBs, IOBs, RAM khối, bộ nhân, và DCMs, tất cả được kết nối tới ma trận chuyển mạch để truy cập tới tài nguyên kết nối toàn bộ.
Switch
Matrix
CLB
Switch
Matrix
IOB
Switch
Matrix
DCM
Switch
Matrix
Switch
Matrix
Switch
Matrix
Switch
Matrix
18Kb
BRAM
MULT
18´18
Hình 1.20 Tài nguyên kết nối
1.4 Bo mạch phát triển XtremeDSP Development Kit II
XtremeDSP Development Kit II là bo mạch phát triển của Virtex-II và cung cấp một hệ thống thực để phát triển các ứng dụng cụ thể.
XtremeDSP Development Kit II chứa 2 board mạch BenONE và BenADDA bao gồm 3 FPGA Xilinx- Hai FPGA người dùng Virtex-II (User FPGA) và 1 FPGA Spartan-II . Hai kênh chấp hành cao ADCs và DACs cũng là lý tưởng cho các ứng dụng xử lý tín hiệu số hiệu năng cao như xử lý tín hiệu vô tuyến, mạng không dây 3G, truyền hình số mặt đất, xử lý hình ảnh, và cũng nhờ có kênh ADC và DAC mà có thể xây dựng các hệ xử lý tín hiệu số một cách hoàn chỉnh với các dữ liệu vào/ra từ máy tính.
Hình 1.22 Bo mạch XtremeDSP Development Kit II
Bo mạch XtremeDSP Development Kit II gồm có một bo mạch mẹ (motherboard) và một bo mạch con (module) nằm trong một hộp độc lập. Bo mạch mẹ lý hiệu là “BenONE-Kit Motherboard” và module con ký hiệu là “BenADDA DIME-II Module”.
BenONE-Kit Motherboad:
- Chỉ hỗ trợ cho module BenADDA DIME-II
- Giao tiếp PCI hay USB 3.3V/5V
- Các đèn LEDs trạng thái
- Các đầu cắm cấu hình JTAG
- Sử dụng các đầu cắm kết nối trực tiếp để lập trình vào/ra cho FPGA.
BenADDA DIME-II Module:
- Dùng cho Virtex-II FPGA: XC2V3000-4FG676
- 2 kênh ADC độc lập: AD6644 ADC (14-bit với tần số 65 MSPS)
- 2 kênh DAC độc lập: AD9772 DAC (14-bit với tần số trên 160MSPS)
- Hỗ trợ đồng bộ ngoài, bộ dao động trên bo mạch.
- Một dải của ZBT-SRAM (133MHz, 51216 bit)
- Các đèn LED trạng thái.
- Nhiều bộ định thời: trong và ngoài
Ngoài ra còn có các hệ thống để kết nối bo mạch với máy tính, với thiết bị ngoài cũng như các hệ thống nguồn cho nó như:
- Bộ nguồn ngoài có dải đầu vào rộng (90-240V), nhiều đầu ra: 5V@5A; 12V@2A; -12V@800mA.
- Cáp tương thích USB 1.1
- 5 cáp MCX tới BNC để kết nối với ADC/DAC và kết nối với đồng hồ ngoài.
- 2 jack BNC dùng trong cấu hình lặp hồi tiếp.
XtremeDSP Development Kit II chứa 3 Xilinx FPGA gồm 2 FPGA người dùng Virtex-II (User FPGA) và 1 FPGA Spartan-II. Trong đó thiết bị Virtex-II dành cho người dùng để thiết kế, Spartan-II đã được định cấu hình trước với phần mềm hệ thống cho giao tiếp PCI/USB. Phần mềm hệ thống cho giao tiếp PCI/USB và các trình điều khiển mức thấp trừu tượng hoá giao tiếp PCI/USB từ kết quả người sử dụng trong một quá trình thiết kế đơn giản. Giao tiếp FPGA kết nối trực tiếp với người dùng FPGA lớn hơn (XC2V3000) thông qua một bus truyền thông sẵn có.
Thiết bị Virtex-II XC2V3000-4FG676 dự định sử dụng phần chính cho người dùng thiết kế. Virtex-II XC2V80-4CS44 dự định sử dụng thiết bị định cấu hình đồng hồ cho toàn hệ thống thiết kế người dùng.
1.4.1 Kênh ADC
Module BenADDA sử dụng trong XtremeDSP Development Kit-II có 2 kênh đầu vào tương tự, mỗi kênh cung cấp một dữ liệu độc lập và các tín hiệu điều khiển cho FPGA. Hai tập dữ liệu độ rộng 14-bit được dẫn từ 2 kênh ADC (AD6644).
Hình 1.23 Giao tiếp ADC
* Các đặc trưng của các bộ ADC trên board
- Là ADC 14 bit, định dạng phần bù của 2
- Tần số lấy mẫu tín hiệu 65MSPS
- Trở kháng đầu vào tương tự là 50 hoặc thay đổi trong một dải phổ biến
- Có bộ lọc 3 bậc tại đầu vào tương tự (-3dB tại tần số 34.5MHz)
- Đồng bộ các khối ADC với tần số khác nhau được
Hình 1.24 Cấu trúc ADC ngoài (AD6644)
Bo mạch có 5 lỗ cắm kết nối dạng MCX cho phép giao tiếp qua lại. Tất cả các tín hiệu vào/ra tương tự được dẫn theo 4 kết nối MCX trên module. Lỗ kết nối thứ 5 cung cấp một nguồn đầu vào cho xung đồng bộ ngoài.
Hình 1.25 Các lỗ kết nối MCX
1.4.2 Kênh DAC
Module BenADDA sử dụng trong XtremeDSP Development Kit-II có 2 kênh đầu ra tương tự, mỗi kênh cung cấp một dữ liệu độc lập và các tín hiệu điều khiển cho FPGA. Hai tập dữ liệu độ rộng 14-bit được dẫn từ 2 kênh DAC (AD9772A). Thiết bị DAC cho phép trong dải 14 bit và tốc độ chuyển đổi lớn nhất là 160MSPS. Ngoài ra còn bổ sung thêm các tín hiệu điều khiển lối vào giữa DAC và FPGA để cho phép điều khiển hoàn toàn các chức năng DAC.
Hình 1.26 Giao tiếp DAC
* Các đặc trưng kỹ thuật:
- Là thiết bị DAC 14 bit có tần số là 160MSPS
- Các đầu vào LVPECL từ FPGA đồng hồ XC2V80
- Đặc trưng thiết bị phân kênh PLL bên trong
- Trở kháng đầu cuối 50 thông qua giao tiếp MCX như giao tiếp chuẩn
Kiến trúc DAC:
Hình 1.27 Cấu trúc DAC 9772A
1.4.3 Bộ nhớ ZBT SRAM
Bo mạch cung cấp 2 thiết bị ZBT SRAM thiết lập như một dải đơn 512K16. Bộ nhớ này cung cấp khả năng lưu giữ trên bo mạch giao tiếp với bus dữ liệu 16-bit. Đặc điểm chính của bộ nhớ ZBT gồm:
- Chu kỳ xử lý nhanh: 6ns, 7.5ns và 10ns.
- 100% đường dữ liệu được sử dụng.
- Thuận tiện trong giao tiếp với tín hiệu nhỏ.
- Cổng điều khiển R/W đơn.
- Bộ điều khiển đồng bộ và thanh ghi địa chỉ, dữ liệu vào/ra và các tín hiệu điều khiển.
- Các đầu vào/ra dữ liệu chung.
Hình 1.28 Giao tiếp ZBT SRAM
1.4.4 Reset
Sơ đồ cấu hình Reset
Hình 1.29 Sơ đồ cấu hình Reset
Sự reset FPGA Virtex-II được điều khiển từ FPGA giao tiếp thông qua FUSE. Tất cả các tín hiệu reset đều kích hoạt ở mức thấp. Tất cả trong chúng đều thực hiện với thiết kế FPGA.
1.4.5 Cấu trúc BUS
Có một số kênh sử dụng trong XtremeDSP Development Kit-II để giao tiếp với máy chủ cũng như để người dùng định nghĩa. Bo mạch sử dụng một phần chính FPGA đơn, do vậy hầu hết các bus người dùng định nghĩa được mang ra biên ngoài.
Có hai dạng bus: Adjacent In và Adjacent Out. Các bus này được thiết kế để dễ dàng sử dụng kiến trúc đường ống trên đa số các hệ thống DIME-II module, nơi mà kết quả xử lý trên DIME-II module có thể phù hợp với các module tiếp theo trong quá trình xử lý. Mặc dù các bus Adjacent được định nghĩa như “Adjacent In” và “Adjacent Out” nhưng chúng được kết nối tới vào/ra hai chiều trên FPGA.
`
Hình 1.30 Sơ đồ chức năng của Bus
1.4.6 LEDs
XtremeDSP Development Kit II có một số LED cho phép kiểm tra sự hoạt động và trạng thái của bo mạch. Các LED này đều có 3 màu, cho thiết kế người dùng và cho kiểm tra trạng thái hệ thống như các như các giao tiếp cấu hình và giao tiếp nguồn.
1.4.7 Đồng bộ toàn hệ thống
XtremeDSP Development Kit II có một hệ thống điều khiển đồng hồ hệ thống thông minh và linh hoạt. Các đặc điểm đó bao gồm:
- Một nguồn dao động 65 MHz trên module chính để cung cấp một sự đồng bộ hệ thống biến động thấp cho các thiết bị tương tự.
- Một đầu vào đồng bộ ngoài thông qua một đầu kết nối MCX.
- Hai nguồn đồng bộ có thể lập trình bằng phần mềm trên bo mạch để
có thể tạo ra các tần số khác nhau. Điều này cung cấp 2 đồng hồ hệ thống đa dụng cho người dùng thiết kế.
- Một lỗ cắm bộ dao động điểm cố định trên bo mạch. Chú ý rằng không có bộ dao động nào được cung cấp và lỗ cắm này cho phép sử dụng các bộ dao động đặc biệt trong các ứng dụng người dùng.
Module BenADDA có thể sử dụng 3 đồng hồ hệ thống cung cấp từ bo mạch mẹ cho người dùng FPGA (User FPGA). Đó là CLKA, CLKB, và CLKC. Các tín hiệu đồng hồ này được tạo ra trên DIME-II bo mạch mẹ và kết nối vào trong module nơi mà BenADDA được đặt. Những đồng hồ này có thể được điều khiển bởi người sử dụng và được nối tới các cổng đồng hồ toàn cục (Global Clock) để tạo ra một sự linh hoạt nhất cho người dùng FPGA. Tuy nhiên, cần chú ý rằng chức năng của các đồng hồ DIME-II được xác định bởi bo mạch mẹ. Khi module BenADDA phù hợp với bo mạch mẹ BenONE, như trong XtremeDSP Development Kit-II, các đồng hồ DIME-II có sẵn là:
- CLKA: Bộ dao động được lập trình sẵn trên BenONE.
- CLKB: Bộ dao động được lập trình sẵn trên BenONE.
- CLKC: Kết nối tới một khe cắm để cung cấp một bộ dao động tinh thể. Hãy chú ý rằng không có bộ dao động nào được cung cấp và tuỳ chọn này trên bo mạch BenONE cho phép người dùng thử cho bộ tinh thể đặc biệt.
Hình 1.31 Các thành phần đồng hồ trên bo mạch
Hình 1.32 Sơ đồ cấu trúc đồng hồ cho toàn bo mạch
Ngoài ra XtremeDSP Development Kit-II còn có nhiều các đặc trưng phần cứng khác nữa, trong nội dung đồ án chưa đi sâu nghiên cứu hết tất cả các thành phần của nó mà chỉ nêu một số thành phần chính.
Kết luận chương 1
Chương 1 đã tập trung trình bày về công nghệ FPGA và các mạch phần cứng được xây dựng trên công nghệ FPGA. Trình bày các giai đoạn phát triển của thiết bị khả trình, các công nghệ lập trình FPGA và các ứng dụng của nó. Trong chương này cũng đi sâu phân tích cấu tạo các phần tử chính của vi mạch FPGA Virtex-II của Xilinx. Đây là vi mạch sử dụng công cụ hiện đại nhất của FPGA, sử dụng công nghệ SRAM, trong đó cấu hình PLIC được lưu giữ trong bộ nhớ động bên trong, còn việc khởi tạo được thực hiện từ vùng nhớ ngoài. Các FPGA này của Xilinx có cấu trúc linh hoạt cao và dư thừa các Trigger trong tinh thể. Hệ Logic được thực tế hoá theo phương thức bảng LUT (Look Up Table), còn các đường kết nối bên trong được thực hiện theo kiến trúc phân nhánh đường dẫn kim loại được đóng mạch nhờ các Transistor tác động nhanh, mật độ tích hợp từ 40K80M cổng hệ thống, tần số xung nhịp bên trong lên đến 420MHz, trong truyền dữ liệu đạt 840Mb/s. Bộ nhớ RAM lựa chọn (SelecRAM), chức năng số học gồm khối nhân 18 bit 18 bit chuyên dụng, tài nguyên logic mềm dẻo, với công nghệ kết nối linh hoạt. Chương này cũng trình bày các đặc điểm phần cứng, đặc tính kỹ thuật của các thành phần chính trong bo mạch phát triển của Virtex-II là XtremeDSP Development Kit-II. Có thể nói FPGA là loại thiết bị khả trình tiên tiến nhất hiện nay của nghành công nghệ chế tạo IC chuyên biệt mà người ta vẫn gọi là ASIC.
Các file đính kèm theo tài liệu này:
- Chuong1 Tongquan ve FPGA.doc