Mở đầu Để đi đến việc trình bày ứng dụng FPGA trong thông tin vô tuyến cũng như 3G, cần có cái nhìn tổng quan về FPGA, các ưu việt của nó cũng như khả năng ứng dụng của FPGA. Muốn vậy, chương sẽ được tổ chức trình bày như sau: Tổng quan về FPGA. Các công trình liên quan tới VTsim: JHDL, JBits, JHDLBits và ADB. Những cải tiến JHDLBits và Jbits.
Tổng quan về FPGA FPGAs xuất hiện lần đầu tiên vào giữa những năm 1980 nhằm mục đích thay thế cho các mạch logic đa chip bằng giải pháp tự tái cấu hình đơn. FPGAs đã có những phát triển mạnh, vượt lên trên vai trò thay thế cho vi mạch logic đa chip. Hiện nay, các ứng dụng FPGA bao gồm: Xử lý tín hiệu và hình ảnh, tăng tốc đồ hoạ, nhận dạng/phân tích mục tiêu quân sự, mã hoá, tính toán tái cấu trúc, đồng xử lý bộ nhớ off- chip. FPGAs được ứng dụng trong bốn lĩnh vực thiết kế chính: Tạo nguyên mẫu nhanh, mô phỏng, trước đặc chế, và đặc chế hoàn toàn.1 minh hoạ phạm vi ứng dụng FPGAs chia theo bốn lĩnh vực thiết kế.
Tạo khuôn mẫu nhanh 30% Mô phỏng 37% Trước đặc chế 3% 30% Đặc chế hoàn toàn Hình 1. 1 Bốn lĩnh vực thiết kế chính của FPGA FPGAs là kết quả của việc kết hợp hai công nghệ khác nhau: Thiết bị logic khả trình (PLDs) và vi mạch bán dẫn chuyên dụng (ASICs). Một bộ PLD đơn giản bao gồm một mảng các cổng AND và OR để tạo ra các mạch cơ bản. ASICs là các loại chip do người dùng tạo ra, thường được sử dụng trong các ứng dụng lớn do chi phí kỹ thuật không đệ quy (NREs) cao hơn nhiều so với một chu kỳ FPGAs.
FPGAs có cấu tạo bao gồm hàng ngàn cho tới hàng triệu cổng cùng nhiều tổ hợp, khối logic và công nghệ xử lý khác nhau. Cấu trúc bên trong của FPGA thường được xây dựng theo dạng tile đối xứng, bao LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 4 -------------------------------------------------------------------------------------------------------- gồm một mạng lưới các khối chuyển mạch, logic, kênh dây dẫn, khối vào ra.2 minh hoạ một ma trận gồm các khối chuyển mạch (SB), kênh dây dẫn và khối logic. Khối chuyển mạch trong kết cấu FPGA là bộ phận nối các dây dẫn bên trong với nhau. Khối chuyển mạch cho phép các đoạn dây ngang chuyển sang các đoạn dây dọc và ngược lại.
Khối chuyển mạch cũng cho phép các đoạn dây ngang kết nối với các dây ngang khách cũng như dây dọc kết nối với nhau. Logic Logic Logic Logic Logic SB SB SB SB SB Block Block Block Block Block SB SB SB SB SB Logic SB Logic Logic Logic Logic SB SB SB SB Block Block Block Block Block SB SB SB SB SB Logic Logic Logic Logic Logic SB SB SB SB SB Block Block Block Block Block SB SB SB SB SB Logic Logic Logic Logic Logic SB SB SB SB SB Block Block Block Block Block Hình 1. 2 Kết cấu bên trong FPGA Kích cỡ và thành phần của một khối logic rất khác nhau, tuỳ theo nhà sản xuất và nhu cầu thị trường. Ví dụ, FPGAs hướng đến các giải pháp đem lại hiệu quả về chi phí, thường có các khối logic đơn giản hơn là FPGA dành cho các ứng dụng hiệu năng cao.
Mặc dù thành phần bên trong các khối logic có thể thay đổi theo cấu trúc, nhưng có hai khối cơ bản bên trong khối logic: Phần tử nhớ và bộ tạo hàm. Phần tử nhớ giúp cho các nhà thiết kế lưu trữ tạm thời dữ liệu cho đến khi đạt được điều kiện mong đợi. Bộ tạo hàm có thể đặt cấu hình để tạo hàm bất kỳ cho đến số đầu vào của bộ tạo hàm. Tuỳ thuộc vào cấu trúc, một số bộ tạo hàm có thể hoạt động ở các chế độ khác nhau như bộ nhớ truy cập ngẫu nhiên (RAM), bộ nhớ chỉ đọc (ROM), hoặc một số chế độ phức tạp hơn như thanh ghi thay đổi.
FPGAs được đặt cấu hình thông qua một dòng bits nạp trong thiết bị. Dòng bits là một file tạo ra bởi các nhà sản xuất FPGA, đặt cấu hình cho các khối chuyển mạch, các khối logic và các mạch logic khác bên trong FPGA. FPGAs đã làm thay đổi ranh giới về điện tử kỹ thuật số khi cho phép nhà thiết kế xây dựng từng mảng. Nhiều nhà thiết kế có thể nhanh chóng kiểm tra và xác nhận chức năng của mỗi mảng trong hệ thống để bảo đảm chính xác nhiệm vụ của chúng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 5 -------------------------------------------------------------------------------------------------------- khi kết hợp với phần còn lại của hệ thống.
Trong bối cảnh kỹ thuật thiết lập lại cấu hình ngày càng được quan tâm nhiều hơn, FPGAs được thừa nhận là giải pháp khả thi và kinh tế nhất. Cho dù thiết kế có thể đặt cấu hình là ổn định hay linh hoạt thì với FPGAs, đều có thể thực hiện chu kỳ thiết kế nhanh chóng, linh hoạt, hiệu quả cao [4]. Xilinx FPGAs Xilinx là công ty dẫn đầu trong thị trường FPGA, được thành lập năm 1984, sản phẩm FPGA đầu tiên của họ được thương mại hoá năm 1985. Hiện nay, Xilinx hướng cho họ sản phẩm Virtex-II FPGAs đến cấp thiết kế với mật độ và hiệu năng cao.
Trong đồ án này trình bày về mạch logic khả trình, Virtex-II FPGAs là loại FPGAs tiên tiến, mang đến sự lựa chọn mật độ phong phú nhất trong lĩnh vực này, bao gồm mười một loại thiết bị từ 40 ngàn đến tám triệu cổng hệ thống. Virtex-II FPGA đã dành bộ nhân 18 bit x 18 bit, bộ cộng chuỗi bộ cộng nhớ nhanh và số lượng lên tới 93,184 thanh ghi bên trong. Các thiết bị Virtex-II được phân vào một ma trận tile đối xứng như đã mô tả trong phần trên. Sáu loại tile chính trong Virtex-II là: Khối vào/ra (IOBs), Khối logic cho phép đặt cấu hình (CLBs), bộ nhân phần cứng, SelectRAM khối 18Kbit và Mô-đun clock KTS (DCMs) [8].3 minh hoạ sơ đồ tile của Virtex-II FPGA.
Mỗi họ Virtex FPGA đều có một tập hợp các sản phẩm có thể lập trình lại lớn, bắt đầu với phiên bản Virtex đầu tiên được giới thiệu vào năm 1998. Virtex và Virtex-E đã trở thành sản phẩm đi đầu trong nền công nghiệp lúc đó ngay từ lần đầu giới thiệu. DCM DCM IOB Đồng hồ ghép kênh Logic khả cấu hình Các cổng vào ra khả lập trình CLB Khối lựa chọn RAM Multiplier Hình 1. 3 Sơ đồ tile Virtex-II FPGA 1.1 Virtex-II CLB Thành phần cho phép đặt cấu hình chính trong Virtex-II FPGA là CLB.
CLBs chiếm phần lớn các tile trong thiết bị. Mỗi CLB bao gồm bốn slice và hai bộ đệm ba trạng thái. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 6 -------------------------------------------------------------------------------------------------------- Chuỗi mang Bộ tạo hàm (Function Generator) Phần tử nhớ (Memory Element) Chuỗi chạy Hình 1. 4 Bố trí chức năng của LE Mỗi bộ tạo hàm có thể đặt cấu hình theo bốn cách khác nhau: Bốn bảng dò đầu vào (LUT), thanh ghi chuyển, SelectRAM phân tán 16 bit, hoặc ROM 16 bit.
Trong chế độ LUT bốn đầu vào, bộ tạo hàm có thể thực thi hàm logic tổ hợp bất kỳ lên tới 4 đầu vào. Bộ tạo hàm nhân có thể xếp tầng hoặc sử dụng song song để tạo ra các hàm hoặc kích cỡ đầu vào tuỳ ý. Chế độ thanh ghi chuyển 16 bit có thể sử dụng độc lập với các bộ tạo hàm khác hoặc xếp tầng cùng nhau để tạo thành các thanh ghi chuyển dài hơn [8]. Có hai chế độ hoạt động dành cho bộ tạo hàm, hoạt động như một SelectRAM: SelectRAM đơn cổng và SelectRAM cổng kép.
Một SelectRAM cổng đơn chỉ có một địa chỉ cổng, trong khi SelectRAM cổng kép có một cổng dành cho việc ghi đồng bộ, một cổng dành cho đọc không đồng bộ. Cổng thứ hai chuyên dùng cho việc đọc không đồng bộ. Thiết lập cấu hình cổng kép cho phép đọc và ghi đồng thời trên cùng SelectRAM. Mỗi CLB có thể đặt trong bảy cấu hình SelectRAM khác nhau như trong bảng 1.
Chế độ bộ tạo hàm ROM khá giống với chế độ SelectRAM đơn cổng. Một LUT đơn có thể thực hiện một ROM 16x1 hoặc LUTs bội có thể xếp tầng cùng nhau để tạo thành một ROM có độ dài tuỳ ý [8].1: Kích cỡ và loại SelectRAM Loại SelectRAM Cỡ RAM Đơn cổng 16 x 8 bit Đơn cổng 32 x 4 bit Đơn cổng 64 x 2 bit Đơn cổng 128 x 1 bit Cổng kép 16 x 4 bit Cổng kép 32 x 2 bit Cổng kép 64 x 1 bit Hai phần tử nhớ trong một slice có thể thiết lập làm một flip flop loại D hoạt động theo cạnh hoặc chốt nhạy mức. Với mỗi phần tử nhớ, có sáu chế độ hoạt động khác nhau: LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 7 -------------------------------------------------------------------------------------------------------- Set và reset không đồng bộ (preset và clear/đặt trước và xoá). Reset không đồng bộ (xoá).
Set không đồng bộ (đặt trước). Reset đồng bộ. Set đồng bộ. Không set hoặc reset.2 Virtex-II IOB Khối vào/ra (IOBs) là các tile trong FPGAs, tạo điểm truy cập đến và đi khỏi kết cấu bên trong của FPGA.
IOBs được đặt xung quanh đường bao của kết cấu FPGAs, xem Hình 2.3, IOBs thường được sử dụng để nối các clock bên ngoài, tuyến dữ liệu vào/ra, và là bộ dò test trong các ứng dụng sửa lỗi. Mỗi IOB bên trong Virtex-II FPGA truy cập tới bốn bộ đệm bên ngoài. Hai bộ đệm có thể sử dụng cùng nhau để tạo thành cặp vi phân, độc lập như là bộ đệm một đầu hoặc trở kháng điều khiển kỹ thuật số (DCI). Virtex-II FPGA có một số chuẩn I/O khác nhau: Hai mươi lăm chế độ I/O một đầu, tám chế độ tín hiệu vi phân và hai mươi sáu chế độ DCI [8].
Ở bên trong, một IOB bao gồm sáu phần tử nhớ và một số bộ nhân để đặt cấu hình vào/ra tối đa. Các phần tử nhớ bên trong IOBs có chức năng tương tự như các phần tử nhớ trong CLB. Có ba đường dẫn riêng trong IOB: Một dành cho đầu vào, một cho đầu ra và có khả năng đặt đầu ra hoạt động ở chế độ ba trạng thái. Bên cạnh đó, tổ hợp hai đầu vào hoặc các flip-flop đầu ra cho phép sử dụng các thanh ghi DDR.
IOBs được chia thành bảy vùng, như trong Hình 1. Hình bên trái trong Hình 1.5 thể hiện góc quan sát từ bên trên đối với gói nối dây, hình bên phải là góc nhìn từ bên trên đối với gói flip chip. Có một số quy tắc tổ hợp các chuẩn vào/ra khác nhau trong một vùng IOBs. Chi tiết về chế độ hoạt động và cấu hình IOB có trong phần bảng dữ liệu Virtex- II của Xilinx [8].
5 Bố trí chức năng của LE 1.3 Virtex-II Clock Tiles Virtex-II FPGAs chứa hai tile đệm clock toàn cục riêng biệt: CLKT và CLK.