Tải bản đầy đủ (.pdf) (116 trang)

Công nghệ fpga và phương pháp định lại cấu hình từng phần cho fpga của xilinx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.86 MB, 116 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
NGUYỄN VĂN HÀO

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-------------------------------------

LUẬN VĂN THẠC SĨ KHOA HỌC

KỸ THUẬT ĐIỆN TỬ

CƠNG NGHỆ FPGA VÀ PHƯƠNG PHÁP ĐỊNH LẠI
CẤU HÌNH TỪNG PHẦN CHO FPGA CỦA XILINX

NGUYỄN VĂN HÀO

2005 - 2007
Hà Nội
2007

HÀ NỘI 2007


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-------------------------------------

LUẬN VĂN THẠC SĨ KHOA HỌC

CÔNG NGHỆ FPGA VÀ PHƯƠNG PHÁP ĐỊNH LẠI
CẤU HÌNH TỪNG PHẦN CHO FPGA CỦA XILINX
NGÀNH : KỸ THUẬT ĐIỆN TỬ


MÃ SỐ :

NGUYỄN VĂN HÀO

Người hướng dẫn khoa học : TS. PHẠM NGỌC NAM

HÀ NỘI 2007


1

Danh Mục Các Ký Hiệu Và Chữ Viết Tắt
Từ viết tắt Nghĩa tiếng Anh

Nghĩa tiếng Việt

ASIC

Application Specific IC

IC ứng dụng chuyên biệt

ASSP

Application Specific Standard

Sản phẩm tiêu chuẩn ứng dụng

Product


chuyên biệt

BRAM

Block RAM

RAM khối

CLB

Configurable Logic Block

Khối lơgic lập trình được

CLK

Clock

Tín hiệu đồng hồ

CMOS

Complementary MOS

Công nghệ MOS cải tiến

CPLD

Complex Programmable Logic


Thiết bị lôgic lập trình được

Device

phức tạp

CPU

Central Processing Unit

Đơn vị xử lý trung tâm

DCI

Digitally Controlled Impedance Trở kháng được điều khiển số

DCM

Digital Clock Manager

Quản lý đòng hồ số

DDR

Double-Data-Rate

Tốc độ dữ liệu kép

DFS


Digital Frequency Synthesizer

Bộ tổng hợp tần số số

DLL

Delay-Locked Loop

Vịng khóa độ trễ

DRAM

Dynamic Random - Access

Bộ nhớ động truy xuất ngẫu

Memory

nhiên - còn gọi là RAM động

EDIF

Electronic Data Interchange
Format

EEPROM

Electrically erasable

Bộ nhớ chỉ đọc lập trình và xố


programmable read-only-

được bằng điện

memory
EPROM

Electrically Programmable Read- Bộ nhớ chỉ đọc lập trình và xố
Only-Memory

được


2

Từ viết tắt Nghĩa tiếng Anh

Nghĩa tiếng Việt

FPGA

Field-Programmable Gate Array

GAL

Generic Array Logic

HDL


Hardware Description Language Ngôn ngữ mô tả phần cứng

I/O

Input/Output

Vào/ Ra

IC

Integrated Circuit

Mạch tích hợp

IEEE

Institute of Electrical and

Hiệp hội các Kỹ sư Điện và

Electronic Engineers

Điện tử

IOB

Input/Output Block

Khối vào ra


ISE

Integrated Software Environment Mơi trường phần mềm tích hợp

LSI

Large Scale Integrated

Tích hợp mật độ lớn

LUT

Look-Up Table

Bảng dị tìm

MGA

Masked Gate Array

Ma trận cổng đã được mặt nạ

Lơgic ma trận chung

hố
MOS

Metal-Oxide-Silicon

Kim loại-Oxit-Silic


MSI

Medium Scale Integrated

Tích hợp mật độ trung bình

NCD

Native Circuit Description

NGC

Native Generic compiler

NGD

Native Generic Database

OTP

One-Time Programmable

Lập trình một lần

PAL

Programmable Array Logic

Lơgic ma trận lập trình được


PAR

Place And Route

Xếp đặt và định tuyến

PCF

Physical Constraints File

Tập tin ràng buộc vật lý

PLA

Programmable Logic Array

Ma trận logic lập trình được

PLD

Programmable Logic Device

Thiết bị logic lập trình được

PLICE

Programmable Low-Impedance Phần tử trở kháng thấp lập trình
Circuit Element


được


3

Từ viết tắt Nghĩa tiếng Anh

Nghĩa tiếng Việt

PROM

Bộ nhớ chỉ đọc lập trình được

Programmable Read-OnlyMemory

PS

Phase Shifter

Bộ dịch pha

RAM

Random-Access Memory

Bộ nhớ truy xuất ngẫu nhiên

ROM

Read Only Memory


Bộ nhớ chỉ đọc

SRAM

Static Random-Access Memory Bộ nhớ tĩnh truy xuất ngẫu
nhiên - còn gọi là RAM tĩnh

TTL

Transistor-Transistor Logic

Transistor-Transistor Logic

UCF

User Constraints File

Tập tin ràng buộc người dùng

VHDL

VHSIC Hardware Description

Ngôn ngữ mô tả phần cứng của

Language

mạch tích hợp tốc độ rất cao


Very High Speed Integrated

Mạch tích hợp tốc độ rất cao

VHSIC

Circuits
XST

Xilinx Synthesis Technology

Công nghệ tổng hợp của Xilinx

Danh Mục Các Bảng
Bảng.2.1: Tóm lược những thuộc tính của Spartan-3 FPGA........................... 19
Bảng 2.2: Các tín hiệu DFS.............................................................................. 32
Bảng 2.3: Các thuộc tính DFS.......................................................................... 32
Bảng 2.4: Các tín hiệu lôgic trạng thái............................................................. 34
Bảng 2.5: Bus các trạng thái DCM .................................................................. 34
Bảng 3.1. Mức ưu tiên của các toán tử trong VHDL ....................................... 50


4

Danh Mục Các Hình Vẽ, Đồ Thị
Hình 1.1: Các thành phần ứng dụng chuyên biệt ............................................... 3
Hình 1.2: Tiến trình phát triển các lơgic khả trình ............................................ 5
Hình 1.3: Cầu chì nghịch Actel .......................................................................... 7
Hình 1.4: Các giá trị điện trở của cầu chì nghịch với dịng lập trình 5mA ........ 7
Hình 1.5: Cấu tạo cầu chì nghịch kim loại – kim loại với 3 mức kim loại ........ 8

Hình 1.6: Giá trị điện trở cho cầu chì nghịch kim loại ...................................... 8
Hình 1.7: Phần tử cấu hình SRAM .................................................................... 9
Hình 1.8: Thực hiện các kết nối trong FPGA .................................................. 10
Hình 1.9: Transistor EPROM ........................................................................... 11
Hình 1.10: Phần tử lơgic SRAM ...................................................................... 12
Hình 1.11: Phần tử lơgic OTP .......................................................................... 12
Hình 1.12: Lưu đồ thiết kế FPGA của Xilinx .................................................. 14
Hình 2.1: Kiến trúc FPGA Spartan-3 ............................................................... 20
Hình 2.2: Sơ đồ khối I/O .................................................................................. 22
Hình 2.3: Sơ đồ sắp đặt các slice trong CLB ................................................... 23
Hình 2.4: Sơ đồ slice bên trái ........................................................................... 24
Hình 2.5: Các đường dữ liệu RAM khối .......................................................... 27
Hình 2.6: Sơ đồ bộ nhân cơ sở ......................................................................... 28
Hình 2.7: Các khối chức năng DCM và các tín hiệu liên kết .......................... 30
Hình 2.8: Sơ đồ chức năng của DLL ............................................................... 31
Hình 2.9: Mạng tín hiệu đồng hồ ..................................................................... 36
Hình 2.10: Các kiểu kết nối.............................................................................. 39
Hình 3.1: Ví dụ về mơ phỏng kiến trúc phần cứng .......................................... 45
Hình 3.2: Các thư viện thiết kế bằng VHDL ................................................... 47
Hình 4.1: Thiết kế với các mơ đun có thể định lại cấu hình ............................ 64


5

Hình 4.2: Cấu trúc thư mục cho thiết kế .......................................................... 65
Hình 4.3: Bus macro dùng cho các tín hiệu liên mơ đun ................................ 66
Hình 4.4: Trực quan thiết kế trong FPGA Editor ............................................ 71
Hình 4.5: Bus macro ........................................................................................ 73
Hình 4.6: Thực thi mức vật lý của bus macro .................................................. 74
Hình 4.7: Sơ đồ khối chức năng ....................................................................... 77

Hình 4.8: Sơ đồ nguyên lý khối số học ............................................................ 78
Hình 4.9: Kết quả tổng hợp cho mơ đun adder ................................................ 81
Hình 4.10: Các ràng buộc cho thiết kế top ....................................................... 83
Hình 4.11: Trực quan thiết kế top và top1 trong FPGA Editor ....................... 87
Hình 4.12: Thiết kế top .................................................................................... 90
Hình 4.13: Thiết kế top1 .................................................................................. 91
Hình 4.14: Kết quả mơ phỏng thiết kế ............................................................. 92


6

Mở Đầu
Vào khoảng năm 1985, cơng ty có tên gọi là Xilinx đã giới thiệu về
cơng nghệ FPGA, nó được xem như là một giải pháp thay thế cho các loại IC
tùy biến (custom IC). Với công cụ thiết kế được hỗ trợ bởi máy tính (CAD:
computer-aided design), những mạch thiết kế trên FPGA có thể được thực
hiện trong một thời gian tương đối ngắn mà không phải sử dụng bất kỳ một
cơng cụ chế tạo mạch tích hợp nào.
Với một thiết bị FPGA, cho phép thiết kế bất kỳ một mạch chức năng
từ đơn giản đến phức tạp của hệ thống mạch số và có thể thực hiện việc thay
đổi thiết kế dễ dàng. Rõ ràng với lợi ích mang lại từ công nghệ FPGA, tôi
nhận thấy việc ứng dụng và triển khai công nghệ FPGA là phù hợp ở Việt
Nam, trong khi ngành công nghiệp chế tạo IC chưa được phát triển mạnh.
Đề tài của luận văn " Cơng nghệ FPGA và phương pháp định lại cấu
hình từng phần cho FPGA của xilinx ". Với mục đích tìm hiểu về công nghệ
FPGA cũng như các công cụ hỗ trợ, phương pháp thiết kế định lại cấu hình
cho FPGA. Xem đây như là một cơ sở quan trọng để tiếp cận và ứng dụng
công nghệ thiết kế số và điều khiển số đầy tiềm năng và hiệu quả. Nội dung
của luận văn được trình bày trong bốn chương:
 Chương 1: Giới thiệu công nghệ FPGA

 Chương 2: Kiến trúc FPGA spartan-3 của xilinx
 Chương 3: Ngôn ngữ mô tả phần cứng VHDL
 Chương 4: Phương pháp định lại cấu hình từng phần cho FPGA
Do trình độ có hạn cả về chuyên môn cũng như ngoại ngữ, vấn đề mà
luận văn đề cập tới tương đối phức tạp, tài liệu phải tham khảo tương đối
rộng, nhiều chỗ vượt quá trình độ hiểu biết vẫn cịn có phần hạn chế của
người viết, nhất định trong luận văn không thể tránh khỏi có chỗ sơ sài hoặc


7

thiếu chính xác. Tơi rất mong nhận được những đóng góp và chỉ bảo của các
thầy cơ giáo và các bạn để luận văn hồn chỉnh hơn.
Trong suốt q trình nghiên cứu và thực hiện luận văn được sự hướng
dẫn trực tiếp của thầy TS. Phạm Ngọc Nam và sự giúp đỡ quý báu của các
thầy cô trong khoa ĐTVT và Trường ĐHBK Hà Nội.
Qua đây tôi xin chân thành cảm ơn thầy TS. Phạm Ngọc Nam đã tận
tình, chu đáo hướng dẫn tôi thực hiện tốt các nhiệm vụ đề tài đã đưa ra và
hoàn thành đúng kế hoạch. Tơi xin bày tỏ lịng biết ơn đến các thầy cô trong
khoa ĐTVT và trường ĐHBK Hà Nội về những kiến thức đã nhận được trong
thời gian học tại trường.

Hà Nội, Ngày 20 tháng 10 năm 2007


8

Chương 1:

GIỚI THIỆU CƠNG NGHỆ FPGA


Thiết bị lập trình được bao gồm các simple PLD (Programmable Logic
Device), CPLD (Complex Programmable Logic Device), và FPGA (FieldProgrammable Gate Array). Các thiết bị này đều có đặc điểm chung là dựa
trên cơ sở các cơng nghệ lập trình để cho phép việc lập trình và có thể lập
trình lại nhiều lần. Trong chương này sẽ đề cập đến những vấn đề cơ bản của
thiết bị lơgic lập trình được (PLD) và cơng nghệ lập trình FPGA.

1.1. Khái quát chung
Các thành phần ứng dụng chuyên biệt (Hình 1.1) bao gồm các fullcustom ASIC (Application Specific Integrated Circuit), các semi-custom
ASIC, và các IC (Integrated Circuit) lập trình được.

Hình 1.1: Các thành phần ứng dụng chuyên biệt
 Các ASIC hoàn toàn tuỳ biến (full-custom ASIC) bao gồm một số (có
thể là tất cả) cell lơgic đã được tùy biến và tất cả các lớp mặt nạ cũng được
tùy biến. Khi đó việc tùy biến được tất cả các đặc tính của IC cho phép các


9

nhà thiết kế có thể tạo ra các mạch tương tự, tối ưu hoá được các phần tử nhớ,
hoặc tự tạo ra một IC tích hợp khác.
 Các ASIC bán tùy biến (semi-custom ASIC) bao gồm tất cả các cell
lôgic đã được thiết kế trước (không thay đổi được) và một số (có thể là tất cả)
lớp mặt nạ đã được tùy biến. Khi đó việc sử dụng các cell lơgic từ một thư
viện có sẵn sẽ giúp cho cơng việc của các nhà thiết kế được dễ dàng hơn. Có
hai loại ASIC bán tùy biến: loại thứ nhất là ASIC dựa trên cơ sở các cell
chuẩn (standard-cell based ASIC) và loại thứ hai là ASIC dựa trên cơ sở là
các ma trận cổng (gate-array based ASIC).
 Các IC lập trình được - đơi khi cịn được gọi là các ASIC lập trình được
- là loại IC gồm có các cell lơgic đã được thiết kế trước, và ngồi ra khơng có

lớp mặt nạ nào được tùy biến sẵn. Các IC này bao gồm các simple PLD,
CPLD và FPGA.

1.2. Lôgic lập trình được
Những thiết bị lơgic có thể được phân loại theo hai phạm trù là cố định
và lập trình được. Các mạch bên trong một thiết bị lôgic cố định sẽ thực hiện
một hoặc nhiều chức năng, và chúng khơng thể thay đổi được như các ASIC
truyền thống. Nói một cách khác, các thiết bị lơgic lập trình được có thể thay
đổi những phần đã được thiết kế sẵn để thực hiện các chức năng khác nhau.
Các thiết bị lơgic lập trình được PLD dựa trên cơ sở cơng nghệ bộ nhớ
viết lại được để thực hiện việc thay đổi thiết kế, và lập trình cho thiết bị. Tiến
trình phát triển của các PLD được minh họa trong hình 1.2. Phạm vi của
chúng bao gồm từ những thiết bị nhỏ với khả năng thực hiện một một số chức
năng lơgic cho đến các thiết bị FPGA, mà chúng có thể thực hiện toàn bộ lõi
của bộ xử lý cùng với một số thiết bị ngoại vi. Trong những thiết bị lơgic lập
trình được, có hai loại chính đang được quan tâm hiện nay: thiết bị lơgic lập
trình được phức tạp CPLD và thiết bị FPGA.


10

 600 Gates

Programmable
Logic

Simple
PLDs

 600 Gates


High-Capacity
PLDs
Segmented
Continuous
Interconnect

Interconnect

CPLDs

FPGAs

EPROM EEPROM FLASH

SRAM

Antifuse

EPROM EEPROM FLASH

SRAM

Hình 1.2: Tiến trình phát triển của thiết bị lơgic lập trình được
 Các thiết bị lơgic lập trình được bắt đầu từ loại có dung lượng thấp nhất
là các simple PLD ( 600 cổng), chúng được biết như là các thiết bị PLD đơn
giản: PLA (Programmable Logic Array), PAL (Programmable Array Logic),
GAL (Generic Array Logic). Một simple PLD được tạo ra từ các macrocell đã
được kết nối với nhau. Các macrocell điển hình gồm có một vài mạch lơgic tổ
hợp như các cổng AND/OR và một phần tử Flip-Flop. Trong mỗi macrocell

có thể thực hiện một phương trình đại số Boole đơn giản.
 Quá trình phát triển của các nhà sản xuất PLD đã tạo ra thiết bị có dung
lượng cao hơn và được gọi là thiết bị lơgic lập trình được phức tạp (CPLD).
Theo một khía cạnh nhất định, các CPLD được mô tả như một vài simple
PLD cùng với các kết nối lập trình được. Một CPLD cho phép thực hiện
nhiều phương trình lơgic hơn hoặc thiết kế phức tạp hơn các simple PLD.
 Một thiết bị FPGA bao gồm một cấu trúc các cell lôgic và các kết nối.
Các thành phần này được cấu hình dựa trên cơ sở cơng nghệ lập trình RAM
tĩnh (SRAM) hoặc cầu chì nghịch (Antifuse). FPGA được xem là thiết bị có
khả năng ứng dụng rộng và có dung lượng cao nhất hiện nay trong số các thiết
bị lơgic lập trình được. Chúng có thể được sử dụng để thực hiện bất kỳ một
thiết kế phần cứng nào trong hệ thống mạch số.


11

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 được sử dụng là RAM tĩnh (SRAM : Static Random-Access
Memory), cầu chì nghịch (Antifuse), EPROM (Electrically Programmable
Read-Only-Memory) và EEPROM (Electrically Erasable Programmable
Read-Only-Memory). Mặc dù các công nghệ lập trình khác nhau, nhưng tất cả
các phần tử lập trình đều có tính chất chung là có thể cấu hình được một trong
hai trạng thái ON hoặc OFF. Các phần tử lập trình được sử 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 FPGA. Một FPGA thơng
thường có thể có hơn 100.000 phần tử lập trình. Có thể tùy thuộc vào các ứng
dụng cụ thể mà các phần tử lập trình có thể có các đặc tính khác nhau. 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:
 Các thiết bị lập trình cầu chì nghịch.

 Cầu chì ngịch của Actel.
Một cầu chì nghịch có ngun lý ngược lại với cầu chì thơng thường.
Một cầu chì nghịch thường là một mạch hở cho đến khi ta đưa vào một dòng
điện lập trình qua nó (khoảng 5mA) với một điện thế giữa hai đầu cầu chì
thích hợp (18v). 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ữ các điện cực.
Các transistor chịu được điện thế cao được chế tạo bên trong FPGA để đáp
ứng cho dòng và á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 (300 đến 500 ) giữa hai dây kim loại. Hãng
Actel gọi các cầu chì nghịch là các phần tử mạch điện có trở kháng thấp lập
trình được (PLICE : Programmable Low-Inpedance Circuit Element). Cấu tạo
của một cầu chì nghịch Actel được minh họa trong hình 1.3:


12

(a) Mặt cắt ngang.
(b) Cấu trúc các lớp cầu chì nghịch
+ Lớp điện môi ONO (Oxy-Nitơ-Oxy) cách điện, chiều dày nhỏ
hơn 10nm.
+ Lớp dưới mang điện tích dương.
+ Lớp trên là Poly-Silic
(c)Một cầu chì nghịch nhìn từ phía trên xuống giống như một cơng tắc.

Hình 1.3: Cầu chì nghịch Actel

Hình 1.4: Các giá trị điện trở của cầu chì nghịch với dịng lập trình 5mA
Diện tích các chíp sử dụng cơng nghệ cầu chì nghịch rất nhỏ so với các
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 chịu được đ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 cầu chì nghịch là quy trình chế tạo chúng cần phải thay đổi
so với quy trình chế tạo CMOS.
Để thiết kế và lập trình một FPGA sử dụng cơng nghệ cầu chì nghịch
Actel, người thiết kế thực hiện các bước thiết kế đầu vào và mô phỏng trên
máy tính. Khi thiết kế đã được hồn thiện theo đúng ý định, ta sẽ cắm chip


13

vào một socket trên một hộp lập trình chuyên dụng gọi là Activator, mà nó
phát ra điện áp lập trình. Sau đó sử dụng máy tính nạp tập tin cấu hình cho
Activator để thực hiện cấu hình cho các cầu chì nghịch cần thiết trên chip.
Nhược điểm của các chip lập trình sử dụng cơng nghệ cầu chì nghịch là
khơng thể lập trình trực tiếp trên bo mạch in.
 Cầu chì nghịch kim loại - kim loại (Metal-Metal Antifuse)
Cấu tạo của một cầu chì nghịch kim loại - kim loại của QuickLogic
được gọi là ViaLink được minh họa trong hình 1.5:

Hình 1.5: Cấu tạo cầu chì nghịch kim loại - kim loại

Hình 1.6: Giá trị điện trở của cầu chì nghịch kim loại - kim loại
Nó tương tự như PLICE, tuy nhiên cầu chì nghịch ViaLink sử dụng
kim loại mức 1 cho lớp dưới cùng, một hợp kim Silic vô đị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, một cầu chì nghịch có trở kháng cao (cỡ G), 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 có trở kháng khoảng 80. Cầu
chì nghịch được chế tạo bằng cách thêm vào 3 mặt nạ đặc biệt trong quy trình
chế tạo CMOS thơng thường. Cầu chì nghịch Vialink đượ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 điện lập trình khoảng



14

15mA, trạng thái của Silic vơ định hình sẽ thay đổi và tạo ra một liên kết dẫn
điện giữa hai lớp kim loại.
 RAM tĩnh.
Cơng nghệ lập trình SRAM sử dụng cơng nghệ CMOS tiêu chuẩn. Một
phần tử cấu hình SRAM của Xilinx (Hình 1.7) được xây dựng từ hai cổng đảo
ghép ngược nhau. Các phần tử cấu hình SRAM điều khiển cực cổng của các
transistor khác trên chip - hoặc bật các transistor truyền dẫn cũng như các
cổng truyền dẫn để tạo một kết nối hoặc tắt để ngắt kết nối.
Q

Configuration
control

READ or
WRITE

Q

DATA

Hình 1.7: Phần tử cấu hình SRAM
Trong một FPGA sử dụng cơng nghệ lập trình SRAM, các kết nối
được thực hiện bằng các transistor truyền dẫn, các cổng truyền dẫn hoặc các
bộ dồn kênh. Những thành phần này được điều khiển bởi các phần tử SRAM
(Hình 1.8). Trường hợp transistor truyền dẫn và cổng truyền dẫn, các phần tử
SRAM sẽ điều khiển các cực cổng để 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 kết nối có
trở kháng thấp giữa hai dây nối. Đối với bộ dồn kênh, các phần tử SRAM sẽ
điều khiển ngõ nhập nào của bộ dồn kênh sẽ được kết nối với ngõ ra của nó.
Cách này thường dùng để kết nối tùy chọn từ một hay nhiều ngõ nhập của
một khối logic. Các bộ dồn kênh và các cổng truyền dẫn có thể được kết hợp
với nhau để tạo các kết nối giữa các khối lôgic trong FPGA.


15

transistor truyền
dẫn

Cổng truyền dẫn

Bộ dồn kênh
Dây nối

Dây nối

Dây nối Dây nối

Dây nối

SRAM
Cell

MUX

SRAM

Cell

SRAM
Cell

SRAM
Cell
Dây nối

Hình 1.8: Thực hiện các kết nối trong FPGA
Vì SRAM là bộ nhớ bay hơi, các FPGA sử dụng cơng nghệ SRAM
phải được cấu hình lại mỗi khi cấp nguồn cho chip. Điều này có nghĩa là hệ
thống sử dụng các chip này phải có một cơ chế lưu trữ thường trực cho các bit
của các phần tử SRAM, chẳng hạn ROM hay đĩa từ. Các bit của SRAM 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 RAM). Nhược điểm của các chip đượ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 SRAM cũng như các transistor cần thêm cho cổng truyền
dẫn hay bộ dồn kênh. Ngược lại, ưu điểm chính của cơng nghệ này cho phép
FPGA có thể tái cấu hình ngay trên mạch rất nhanh và nó có thể chế tạo bằng
cơng nghệ CMOS chuẩn.
 Cơng nghệ lập trình EPROM và EEPROM (Hình 1.9).
Các thiết bị lập trình EPROM có diện tích nhỏ gồm một hộp lập trình
chun dụng, chúng được lập trình ngồi mạch và có thể tái lập trình khơng
cần bộ nhớ ngồi. Tuy nhiên, các điện tử tiêu tốn năng lượng lớn, chúng có


16

nhiệt độ cao khi xóa. Do đó, thiết bị lập trình phải sử dụng tới các vật liệu

gốm đặc biệt làm tăng chi phí của hệ thống.

Hình 1.9: Transistor EPROM
Với điện áp lập trình VPP ( >12V ) cung cấp tới cực máng của transistor
EPROM, khi đó các điện tử có đủ năng lượng để nhảy vào cổng treo gate1.
Các điện tử ở cổng treo gate1 tăng lên làm tăng điện áp ngưỡng của transistor
EPROM và làm cho nó ngưng dẫn (khóa). Để xóa các transistor EPROM về
trạng thái ban đầu, sử dụng nguồn ánh sáng cực tím để cung cấp đủ năng
lượng cho các điện tử nhảy khỏi cổng treo gate1 cho phép transistor hoạt động
bình thường.
Việc lập trình các transistor EEPROM tương tự như lập trình các
transistor EPROM xóa được bằng tia cực tím, nhưng cơ chế xóa của chúng thì
khác nhau. Trong một transistor EEPROM, một trường điện từ được sử dụng
để chuyển các điện tử khỏi cổng treo của một transistor đã được lập trình.
Điều này giúp việc lập trình nhanh hơn và chip khơng cần phải lấy ra khỏi hệ
thống. Ngược lại, chúng lại tốn diện tích gấp đơi so với các transistor EPROM
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.

1.4. Các kiểu FPGA của Xilinx
Có hai kiểu FPGA cơ bản là lập trình lại được dựa trên cơ sở SRAM và
lập trình một lần. Hai kiểu FPGA này khác nhau trong sự thực hiện của phần
tử lôgic và cơ chế được sử dụng để tạo những kết nối bên trong thiết bị.


17

 FPGA có khả năng lập trình lại dựa trên cơ sở SRAM.
 Các bít SRAM được sử dụng để tạo ra các kết nối.
 Trong phần tử lôgic SRAM (Hình 1.10), thay vì các cổng lơgic truyền
thống thì một LUT (Look Up Table) xác định đầu ra dựa vào những giá trị

của những đầu vào, SRAM định nghĩa các lơgic trong bảng dị tìm LUT.

Hình 1.10: Phần tử lơgic SRAM
 FPGA lập trình một lần (OTP : Once - Time Programmable) .
 Loại cầu chì nghịch được dùng để tạo ra kết nối bền vững trong thiết bị.
 Các phần tử lơgic là các cổng truyền thống (Hình 1.11).

Hình 1.11: Phần tử lơgic OTP

1.5. Ứng dụng của FPGA
FPGA có thể sử dụng trong hầu hết các ứng dụng hiện đang dùng
simple PLD, CPLD và các mạch tích hợp nhỏ. Dưới đây là 6 ứng dụng điển
hình của FPGA :
 Các mạch tích hợp ứng dụng đặc biệt : FPGA là một phương tiện tổng
quát nhất để thực hiện các mạch logic số. Chúng đặc biệt thích hợp cho việc


18

thực hiện các ASIC.
 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ắc khe thì mạch có thể
thực hiện thay thế bằng FPGA.
 Thay thế các chip tích hợp nhỏ 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 chip SSI (Small Scale
Integration). Trong nhiều trường hợp các chip SSI này có thể được thay thế
bằng FPGA và kết quả là giảm diện tích của bo mạch đi đáng kể.
 Chế tạo mẫu : FPGA rất lý tưởng cho các ứng dụng sản phẩm mẫu. Giá
thành thực hiện thấp, thời gian ngắn chính là ưu điểm rất lớn của FPGA.
 Máy tính dựa trên FPGA : Một loại máy tính mới có thể được chế tạo

với các FPGA, có thể tái lập trình ngay trên mạch FPGA. Các máy tính kiểu
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 chip lân cận
giống như thơng thường.
 Tái cấu hình phần cứng trực tuyến : FPGA cho phép có thể thay đổi
theo ý muốn cấu trúc của một máy đang hoạt động. Ứng dụng thích hợp nhất
là những FPGA có chuyển mạch lập trình được.

1.6. Quá trình thiết kế với FPGA
Quá trình thiết kế cho FPGA của Xilinx được thực hiện theo trình tự
các bước được mơ tả trong hình 1.12:
 Thiết kế đầu vào và tổng hợp (Design Entry and Synthesis)
Trong bước này của luồng thiết kế, trước tiên thực hiện việc tạo ra một
thiết kế bằng việc sử dụng dạng sơ đồ hoặc mã HDL (Hardware Decription
Language). Trong trường hợp sử dụng kiểu mã HDL cho thiết kế đầu vào, thì
phải thực hiện quá trình tổng hợp tập tin HDL sang một tập tin theo định dạng
chuẩn EDIF (Electronic Data Interchange Format). Nếu sử dụng công cụ tổng
hợp XST (Xilinx Synthesis Technology), một tập tin netlist theo định dạng


19

NGC (Native Generic Compiler) được tạo ra, mà nó có thể được chuyển đổi
thành một tập tin EDIF. Trong suốt q trình tổng hợp, những thơng tin về
hành vi trong tập tin HDL được dịch sang một netlist câu trúc và thiết kế được
tối ưu cho kiến trúc thiết bị.
Design
Verifycation

Design Entry


Functional
Simulation
Design
Synthesis

Static Timing
Analysis

Design
Implementation

Otimization

FPGAs
- Mapping
- Placement
- Routing

Back
Annotation

Timing
Simulation

Bitstream
Generation

Download to a
Xilinx Device


In-Circuit
Verifycation

Hình 1.12: Lưu đồ thiết kế FPGA của Xilinx
 Thực thi thiết kế (Design Implementation)
Trong bước này sẽ thực hiện chuyển đổi định dạng tập tin thiết kế lôgic
(định dạng EDIF) sang một định dạng tập tin vật lý và những thông tin vật lý
này được chứa trong tập tin định dạng NCD (Native Circuit Description). Sau


20

đó tập tin này được dùng để tạo ra một tập tin luồng bít lập trình cho thiết bị.
Các q trình được thực hiện trong bước này như sau :
 Dịch (translating):
Quá trình này thực hiện tất cả các bước cần thiết để đọc một tập tin
netlist theo định dạng EDIF hoặc NGC và tạo ra một tập tin NGD (Native
Generic Database) mô tả thiết kế lôgic. Một thiết kế lôgic dưới dạng những
phần tử lôgic, như là các cổng AND, OR, các bộ giải mã, các flip-flop, bộ nhớ
RAM. Tập tin NGD được tạo ra từ việc chạy NGDBuild, bao gồm cả sự mô tả
lôgic của thiết kế và mô tả dưới dạng phân cấp được thể hiện trong netlist đầu
vào. Tập tin NGD này sẽ được dùng để ánh xạ vào tài nguyên của thiết bị.
 Ánh xạ (Mapping):
Quá trình này thực hiện ánh xạ một thiết kế lơgic sang một thiết bị
FPGA đích. Đầu vào cho q trình này bao gồm một tập tin định dạng NGD
và các tập tin macro vật lý đã được xếp đặt và định tuyến. Chương trình MAP
thực hiện ánh xạ những lơgic đó vào các thành phần như các phần tử lôgic,
các phần tử I/O và những thành phần khác trong kiến trúc của thiết bị. Đầu ra
cho thiết kế là một tập tin định dạng NCD, nó mơ tả thiết kế vật lý đã được
ánh xạ vào các thành phần trong kiến trúc thiết bị. Tập tin NCD sau đó được

sử dụng cho quá trình xếp đặt và định tuyến.
 Xếp đặt và định tuyến (Placing and Routing):
Sau khi tạo ra một tập tin NCD đã được ánh xạ, có thể bắt đầu thực
hiện việc xếp đặt và định tuyến tập tin này bằng việc sử dụng công cụ xếp đặt
và định tuyến tự động. Chương trình PAR (Place and Route) sử dụng đầu vào
là tập tin NCD để thực hiện xếp đặt và định tuyến cho thiết kế. Và sau đó tạo
ra một tập tin định dạng NCD đã được xếp đặt và định tuyến, nó sẽ được sử
dụng để tạo luồng bít lập trình cho thiết bị. Q trình xếp đặt và định tuyến
được thực hiện như sau :


21

 Xếp đặt (Placing)
Chương trình PAR thực hiện qua nhiều giai đoạn cho việc sắp xếp. Nó
thực hiện ghi vào tập tin NCD sau khi các giai đoạn được hoàn thành. Trong
suốt quá trình này, PAR thực hiện xếp đặt các thành phần vào những vị trí
dựa vào những yếu tố như các ràng buộc được chỉ rõ trong tập tin PCF
(Physical Constraint File), chiều dài của các kết nối, và những tài nguyên định
tuyến có sẵn. Đồng thời việc sắp xếp theo ràng buộc thời gian sẽ được thực
hiện tự động nếu có các ràng buộc thời gian trong tập tin ràng buộc vật lý.
 Định tuyến (Routing)
Giai đoạn tiếp theo sẽ thực hiện việc định tuyến cho thiết kế đã được
xếp đặt. PAR sẽ thực hiện ghi vào tập tin NCD khi thiết kế hoàn toàn được
định tuyến. Tại thời điểm này, thiết kế có thể được phân tích tính tốn thời
gian. Một tập tin NCD mới sẽ được viết khi việc định tuyến được hồn thiện.
Q trình định tuyến thực hiện một quy trình tập trung về một cách giải quyết
để định tuyến thiết kế hoàn toàn và đạt được các ràng buộc thời gian. Việc
định tuyến theo ràng buộc thời gian tự động được thực hiện nếu có các ràng
buộc thời gian trong tập tin ràng buộc vật lý.

 Lập sơ đồ mặt bằng (Floorplanning)
Việc lập sơ đồ mặt bằng là quá trình xác định rõ các ràng buộc xếp đặt
của người dùng. Các công cụ Floorplanner và PACE cung cấp một giao diện
đồ họa cho việc xếp đặt, trong khi FPGA Editor cung cấp giao diện đồ họa
cho cả sự xếp đặt và định tuyến. Cả hai cơng cụ này có thể được dùng trước
hoặc sau q trình PAR để phân tích hoặc ràng buộc cho thiết kế.
 Tạo ra luồng bít (Bitstream Generation)
Sau khi thiết kế đã được định tuyến hồn tồn, chương trình BitGen sử
dụng tập tin NCD đã được định tuyến để tạo ra một tập tin luồng bít cấu hình
cho thiết bị. Tập tin bít nhị phân này bao gồm tất cả các thơng tin cấu hình từ


22

tập tin NCD và các thông tin chuyên biệt về thiết bị từ những tập tin khác liên
quan đến thiết bị đích. Dữ liệu nhị phân trong tập tin này được tải xuống các
phần tử nhớ của thiết bị FPGA để thực hiện việc cấu hình.
 Kiểm tra thiết kế (Design Verification)
Kiểm tra thiết kế là quá trình kiểm tra chức năng và sự thực hiện của
thiết kế. Quá trình kiểm tra thiết kế có thể bắt đầu ngay sau khi thiết kế đầu
vào và được lặp lại trong các bước thực thi thiết kế. Kiểm tra thiết kế có thể
được thực hiện theo những cách như sau :
 Mô phỏng chức năng nhằm mục đích xác định chức năng mạch lôgic
trong thiết kế trước khi thực hiện trên thiết bị. Q trình mơ phỏng chức năng
sẽ khơng tính đến các độ trễ thành phần hoặc kết nối, do đó nó có thể được
thực hiện ngay sau khi thiết kế đầu vào.
 Mô phỏng thời gian là để kiểm tra hoạt động của thiết kế dưới những
điều kiện khác nhau. Quá trình này được thực hiện sau khi thiết kế đã được
xếp đặt và định tuyến. Vì tại thời điểm này, tất cả các độ trễ của thiết kế đã
được xác định, khi đó q trình mơ phỏng thời gian mới cho kết quả đúng.

 Phân tích thời gian tĩnh được thực hiện cho một thiết kế đã được xếp
đặt và định tuyến. Quá trình này sẽ thực hiện kiểm tra thiết kế theo các ràng
buộc thời gian và liệt kê các vi phạm về ràng buộc thời gian. Đồng thời việc
phân tích thời gian tĩnh cũng cho phép xác định các độ trễ đường dẫn trong
thiết kế.
 Kiểm tra trên mạch là quá trình thực hiện sau cùng để kiểm tra thiết kế
thực hiện như thế nào trong ứng dụng cụ thể trên thiết bị FPGA. Sau khi
luồng bít của thiết kế được tạo ra, tiến hành lập trình cho thiết bị FPGA và bắt
đầu kiểm tra việc thực hiện chức năng của thiết kế trên mạch.


23

Kết luận chương 1
Trong nội dung chương này đã trình bày một cách khái quát về các vấn
đề cơ bản của cơng nghệ FPGA, bao gồm tiến trình phát triển của lơgic lập
trình được, các cơng nghệ lập trình FPGA, quá trình thiết kế cơ bản cho
FPGA….Phần này được xem như là cơ sở cho việc thực hiện những chương
sau, chương tiếp theo sẽ trình bày chi tiết kiến trúc một FPGA điển hình của
Xilinx là Spartan-3.


×