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

Nghiên cứu tìm hiểu công nghệ FPGA trong thiết kế mạch điện tử

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.66 MB, 97 trang )

Luận văn thạc sỹ khoa học chuyên ngành ĐTVT

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

NGHIÊN CỨU TÌM HIỂU CÔNG NGHỆ FPGA
TRONG THIẾT KẾ MẠCH ĐIỆN TỬ

LUẬN VĂN THẠC SĨ KHOA HỌC
Chuyên ngành : Điện tử viễn thông

NGƯỜI HƯỚNG DẪN KHOA HỌC :
TS NGUYỄN NAM QUÂN

Hà Nội – Năm 2010

Nguyễn Văn Thi- CH 08-10 Đại học BKHN
1


Lun vn thc s khoa hc chuyờn ngnh TVT

Mục lục
Lời cam đoan ..5
Danh mục các ký hiệu, các chữ viết tắt ..6
Danh mục hình vẽ ..7
Lời mở đầu..9
Chơng 1 : Giới thiệu tổng quan về asic lập trình đợc....11
1.1 Tổng quan về công nghệ thiết kế vi mạch....11
1.2 Gii thiu v công ngh ASIC......11


1.2.1 Full - Custom ASICs.12
1.2.2 Semicustom ASICs13
1.2.3 Các linh kiện logic lập trình đợc.....14
Chơng 2: Tìm hiểu công nghệ fpga của Xilinx 19
2.1 Cấu trúc chung của FPGA hãng Xilinx.19
2.1.1 CLB(Configurable Logic Block)..20
2.1.2 Các nguồn kết nối.20
2.1.3 IOB (Input/Output Blocks)...22
2.2 Các bớc thiết kế với FPGA22
2.3 Các công nghệ lập trình FPGA...24
2.3.1. Công nghệ lập trình dùng RAM tĩnh....24
2.3.2. Công nghệ lập trình dùng cầu chì nghịch(anti-fuse).26
2.3.3 Công nghệ lập trình dùng EPROM và EEPROM..28
2.3.4 Tóm tắt các công nghệ lập trình cho FPGA...29
2.4 Một số loại FPGA trên thị trờng....30
2.5 ứng dụng của FPGA....32
2.6 u nhợc điểm của công nghệ FPGA .33
Chơng 3 Giới thiệu ngôn ngữ mô tả phần cứng vhdl....34
3.1 Giới thiệu về VHDL.....34
3.1.1 ứng dụng của ngôn ngữ VHDL.36
Nguyn Vn Thi- CH 08-10 i hc BKHN
2


Lun vn thc s khoa hc chuyờn ngnh TVT

3.1.2 Quy trinh thiết kế với VHDL.36
3.1.3 Công cụ EDA.37
3.1.4 Chuyển mã VHDL vào mạch.38
3.2 Cấu trúc mã VHDL..40

3.2.1 Các đơn vị VHDL cơ bản...40
3.2.2 Khai báo Library40
3.2.3 Entity ( thực thể).42
3.2.4 ARCHITECTURE ( cấu trúc)42
3.3 Kiểu dữ liệu..43
3.3.1 Các kiểu dữ liệu tiền định nghĩa.44
3.3.2 Kiểu dữ liệu có dấu và không 44
3.3.3 Chuyển đổi dữ liệu.45
3.3.4 Tóm tắt các kiểu dữ liệu.46
3.4 Toán tử và thuộc tính46
3.4.1 Toán tử46
3.4.2 Thuộc tính...48
3.4.3 Thuộc tính đợc định nghĩa bởi ngời dùng. ... 48
3.4.4 GENERIC..49
3.5 Mã song song...49
3.5.1 Song song và tuần tự...49
3.5.2 GENERATE..50
3.5.3 BLOCK..51
3. 6. Mã tuần tự..53
3.6.1 PROCESS..53
3.6.2 Signals và Variables..53
3.6.3 IF...54
3.6.4 WAIT54
3.6.5 CASE.54
Nguyn Vn Thi- CH 08-10 i hc BKHN
3


Lun vn thc s khoa hc chuyờn ngnh TVT


3.6.6 LOOP55
3.7 Signal và Variables...55
3.7.1 CONSTANT..56
3.7.2 SIGNAL.56
3.7.3 VARIABLE...57
3.8 Máy trạng thái..57
3.8.1 Giới thiệu...57
3.8.2 Thiết kế theo kiểu 1 (thiết kế theo mô hình máy moore)..60
3.8.3 Thiết kế kiểu 2...63
Chơng 4 Thiết kế mạch điện tử trên kit Xilinx Spartan 3E...66
4.1 Giới thiệu kit Xilinx Spartan 3E...66
4.1.1 Các thành phần chính của Kit...66
4.1.2 Sơ đồ chân của XC3S500E...67
4.1.3 Bộ tạo dao động trên KIT.68
4.1.4 Các nút chuyển mạch, nút nhấn và led.69
4.1.5 Nguồn cấp.70
4.1.6 Nạp chơng trình cho FPGA...70
4.2 Tổng quan về cấu trúc SPARTAN - 3E...70
4.2.1 Input/Output Blocks (IOBs)...71
4.2.2 Configurable Logic Blocks (CLBs): Khối chức năng logic..71
4.3 Thiết kế một số mạch điện tử ..75
4.3.1 Giới thiệu vi điều khiển PicoBlaze.75
4.3.2 Thiết kế ALU...79
4.3.3 Bộ đếm hai chữ số thập phân từ 00 đến 99 hiển thị LED 7 thanh.81
4.3.4 Bộ cộng có nhớ 8 bit không dấu.83
4.3.5 Bộ điều khiển đèn giao thông (TLC).85
4.3.6 Thiết kế đồng hồ thời gian thực dùng vi điều khiển PicoBlaze..88
Kết luận........96
Tài liệu tham khảo .....97
Nguyn Vn Thi- CH 08-10 i hc BKHN

4


Lun vn thc s khoa hc chuyờn ngnh TVT

LờI CAM ĐOAN

Tôi xin cam đoan rằng những số liệu và kết quả nghiên cứu trong luận văn này là
trung thực và cha hề sử dụng để bảo vệ một học vị nào.
Mọi sự giúp đỡ cho việc hoàn thành luận văn đã đợc cảm ơn và các thông tin
trích dẫn đều đợc chỉ rõ nguồn gốc.

Nguyn Vn Thi- CH 08-10 i hc BKHN
5


Luận văn thạc sỹ khoa học chuyên ngành ĐTVT

Danh môc c¸c ký hiÖu, c¸c ch÷ viÕt t¾t
ASIC

Application-specific Integrated Circuit

ASIC s

Application Specific Integrated Circuits

CAD

Computer-aided Design


CAE

Computer Aided Tool

CLB

Configurable Logic Block

CPU

Central Processing Unit

CMOS

Complementary Metal-Oxide-Semiconductor

CICC

IEEE Custom Intergrated Circuits Conference)

CPLD

Complex Programble Logic Device

CLB

Configurable Logic Blocks

DCMs


Digital clock Managers

EDA

Electronic Design Automation

FPGA

Field Programmable Gate Arrays

IOBs

Input/Output Blocks IOBs

IEEE

IEEE International ASIC conference

LUT

Look-Up Table

LSI

Large-scale integrated

MSI

Medium-scale integrated


SSI

Small-scale integrated

PLA

Programable Logic Array

PLD

Programmable Logic Device

RAM

Random Access Memory

ROM

Read-Only Memory

VHDL

Very high speed Intergrated Circuit Hardware Description Language

VLSI

Very large-scale integrated

VHSIC


Very High Speed Intergrated Circuit
Nguyễn Văn Thi- CH 08-10 Đại học BKHN
6


Lun vn thc s khoa hc chuyờn ngnh TVT

Danh mục hình vẽ
Hình 1.1

Kin trúc mt Full Custom ASICs

Hình 1.2

Kin trúc mt Cell-Based ASIC

Hình 1.3

Kin trúc mt PLA

Hinh 1.4

Cấu trúc một macrocell

Hình 2.1

Cấu trúc tổng quát của FPGA

Hình 2.2


Cấu trúc của một CLB hãng Xilinx

Hình 2.3

Các loại kết nối CLB

Hình 2.4

Cấu trúc một IOB

Hình 2.5

Hệ thống CAD tiêu biểu cho FPGAs

Hình 2.6

Công nghệ lập trình dùng RAM tĩnh

Hình 2.7

Công nghệ lập trình cầu chì nghịch PLICE

Hình 2.8

Công nghệ lập trình cầu chì nghịch ViaLink

Hình 2.9

Công nghệ lập trình EPROM


Hình 2.10

Các loại kiến trúc FPGA

Hình 2.11

Kiến trúc tổng quát FPGA của Xilinx

Hình 3.1

Tóm tắt quy trình thiết kế với VHDL

Hinh 3.2

Sơ đồ tổng quát về bộ cộng đầy đủ

Hình 3.3

Các sơ đồ mạch có thể thực hiện bộ cộng đầy đủ

Hình 3.4

Các thành phần cơ bản của một đoạn mã VHDL

Hình 3.5

Các phần cơ bản của một Library

Hình 3.6


Sơ đồ máy trạng thái

Hình 4.1

Kit Xilinx Spartan-3E

Hình 4.2

Bộ tạo dao động trên Kit

Hình 4.3

Cấu trúc IOBs của SPARTAN - 3E

Hình 4.4

Vị trí CLB trong SPARTAN - 3E

Hình 4.5

Bộ nhân chuyên dụng trong SPARTAN - 3E
Nguyn Vn Thi- CH 08-10 i hc BKHN
7


Lun vn thc s khoa hc chuyờn ngnh TVT

Hình 4.6


Bộ quản lý xung trong SPARTAN - 3E

Hình 4.8

Sơ đồ khối cấu trúc vi điều khiển PicoBlaze

Hình 4.9

Sơ đồ cấu trúc vi điều khiển PicoBlaze

Hình 4.10

Kết quả mô phỏng ALU

Hình 4.12

Kết quả mô phỏng bộ cộng có nhớ 8 bit không dấu

Hình 4.13

Sơ đồ nguyên lý và đồ hình trạng thái của TLC

Hình 4.14

Kết quả mô phỏng TCL ở chế độ hoạt động bình thờng

Hình 4.15

Kết quả mô phỏng TCL ở chế độ kiểm tra


Nguyn Vn Thi- CH 08-10 i hc BKHN
8


Lun vn thc s khoa hc chuyờn ngnh TVT

Lời mở đầu
Cùng với sự phát triển chung của khoa học kỹ thuật, việc tự động hóa thiết kế
các mạch điện tử đóng vai trò quan trọng trong sự thúc đẩy sự phát triển của ngành
công nghiệp sản xuất, chế tạo mạch điện tử. Từ những năm 50 của thế kỷ trớc quá
trình phát triển của kỹ thuật điện tử đã trải qua nhiều giai đoạn: từ bóng đèn điện tử đến
bóng bán dẫn, các vi mạch tích hợp vừa và nhỏ đến những vi mạch có độ tích hợp siêu
lớn. Ví dụ điển hình là các bộ vi xử lý. Việc thiết kế những mạch có độ tích hợp lớn
không thể thực hiện một cách thủ công mà phải có sự trợ giúp của máy tính.
Công nghệ ASIC( Application Specific Integrated Circuit) đòi hỏi nhiều thời
gian và chi phí cho nghiên cứu và thiết kế và chế tạo. Một công nghệ mới ra đời với
mục đích làm giảm thời gian, chi phí thiết kế và thử nghiệm các hệ thống số đó là công
nghệ FPGA( Field Programmable Gate Array). Các sản phẩm FPGA và PLD(Complex
Programmable Logic Devices) đang đợc nhiều công ty trên thế giới sản xuất dẫn đầu
là công ty Xilinx. Sử dụng FPGA hay CPLD thì có thể tối thiểu hóa đợc nhiều công
đoạn thiết kế, lắp ráp vì hầu hết đợc thực hiện trên máy tính. Các ngôn ngữ lập trình sử
dụng trong thiết kế HDL( Hardware Description Languages) nh VHDL, Verilog,
ABEL, Schematiccho phép thiết kế và mô phỏng hoạt động của mạch bằng chơng
trình. Các chơng trình mô phỏng cho phép xác định lỗi thiết kế một cách dễ dàng và
kết quả thực hiện chơng trình là một file bit cấu hình ( bitstream) để nạp vào FPGA và
CPLD để nó hoạt động theo thiết kế.
Hiện nay hệ thống nhúng đang đợc phát triển mạnh mẽ trên thế giới và bớc
đầu đang phát triển tại Việt Nam với những ứng dụng rộng rãi trong công nghiệp và đời
sống. Theo các chuyên gia, ớc tính hết năm 2010, doanh số của thị trờng phần mềm
cho hệ thống nhúng toàn cầu sẽ đạt cột mốc 6 tỷ đô-la Mỹ. Điều dự báo nói trên, cùng

với sự xuất hiện ngày càng nhiều các đối tác lớn trong lĩnh vực này tại Việt Nam, đã
mở ra một hớng đi mới cho thị trờng phần mềm của chúng ta trong tơng lai.

Nguyn Vn Thi- CH 08-10 i hc BKHN
9


Lun vn thc s khoa hc chuyờn ngnh TVT

Việt Nam cần phải đẩy mạnh hơn nữa vấn đề định hớng nghiên cứu và phát
triển cho ngành hệ thống nhúng từ trong trờng đại học, cao đẳng và các trung tâm
nghiên cứu, cũng nh trang bị đợc những kiến thức tổng quát về lĩnh vực này cho
những sinh viên trẻ, đáp ứng đợc nhu cầu ngày càng cao của nhà tuyển dụng.
Để đáp ứng đợc nhu cầu cung cấp nguồn nhân lực có chất lợng cao cho xã
hội, hiện nay các trờng đại học và cao đẳng đã và đang đa vào giảng dạy các môn
học về thiết kế hệ thống số. Học tập môn học này tơng đối khó và trừu tợng cần thiết
phải có những modul thí nghiệm, hệ thống các bài tập thí nghiệm phù hợp đặc biệt là
chơng trình đào tạo. Ngời học phải có kiến thức cơ bản tốt về kỹ thuật số, bổ sung
kiến thức về phần cứng, về hệ thống nhúng, ngôn ngữ sử dụng trong thiết kế.
Dới sự hớng dẫn của thầy giáo - TS Nguyễn Nam Quân, trong khuôn khổ luận
văn này em tìm hiểu và nghiên cứu về công nghệ FPGA của hãng Xilinx. Trong luận
văn của mình em sử dụng kit Xilinx Spartan 3E để thiết kế một số mạch đơn giản: thiết
kế ALU, bộ đếm hiển thị hai chữ số thập phân, điều khiển đèn giao thông. Em cũng đã
tìm hiểu về vi điều khiển PicoBlaze đợc nhúng trong Kit để ứng dụng thiết kế đồng hồ
thời gian thực hiển thị LCD có thể điều chỉnh thay đổi giờ, phút, giây, ngày, tháng,
năm. Trên cơ sở đó có thể phát triển các hệ thống điều khiển theo thời gian thực khác.
Nội dung luận văn bao gồm 4 chơng trong đó:
Chơng 1: Giới thiệu tổng quan về asic lập trình đợc.
Chơng 2: Tìm hiểu công nghệ fpga của Xilinx.
Chơng 3: Tìm hiểu ngôn ngữ mô tả phần cứng vhdl .

Chơng 4: Thiết kế mạch điện tử trên kit Xilinx Spartan 3E
Do thời gian và khả năng có hạn nên luận văn có thể sẽ còn nhiều thiếu sót .Rất
mong đợc sự góp ý và thông cảm của các thầy cô giáo.
Hà Nội ngày 25 tháng 10 năm 2010
Học viên
Nguyễn Văn Thi
Nguyn Vn Thi- CH 08-10 i hc BKHN
10


Lun vn thc s khoa hc chuyờn ngnh TVT

Chơng 1 giới thiệu tổng quan về asic lập trình đợc

1.1 Tổng quan về công nghệ thiết kế vi mạch
Hin nay có 3 xu hng thit k IC cn bn l: thit k IC Analog, Digital v
Mix-signal SoC.
*Thiết kế analog:
Đây là một lĩnh vực rất phức tạp đòi hỏi ngời thiết kế phải có hiểu biết rất sâu
về các mức của linh kiện bán dẫn nh cấu trúc vật lý, các tham số đặc trng, layout
*Thiết kế digital:
Về căn bản thiết kế digital vẫn có thể bắt đầu đi từ mức thấp nhất CMOS nhng
thông thờng ngời thiết kế tập trung vào việc phân tích hệ thống ở mức RTL sau đó sử
dụng các ngôn ngữ bậc cao nh Verilog, VHDL , Stystem C để thiết kế chứ không cần
quan tâm nhiều đến layout.
* Thiết kế Mix-Signal:
Một hệ thống thờng xuyên cần thiết sự tồn tại của cả hai khối analog và
digital. Việc thiết kế theo hớng SoC (System on Chip ) đang đợc phát triển. Các chíp
PsoC(Programable Sytem on Chip) đang đợc a chuộng bởi bởi khả năng cấu hình rất
mềm dẻo so với các họ vi điều khiển MCS51,PIC, AVR,ARM

1.2 Gii thiu v công ngh ASIC
Hiện nay vi mạch điện tử chuyên dụng có nhu cầu thị trờng rất cao, chiếm
khoảng 65% thị trờng IC thế giới và trong những năm tới sẽ chiếm khoảng 85%.
ASIC (Application Specific IC) là vi mạch tích hợp ứng dụng chuyên biệt.
* Full-Custom ASICs (Application specific IC):
Các khối logic (logic cells) đợc thiết kế sẵn (đợc định nghĩa trong th viện
cell), các lớp mặt nạ đợc tạo ra bởi ngời thiết kế. Gồm hai loại: Standard-cell based
và Gate-array-based ASICs.
* Các linh kiện logic lập trình đợc (Programmable logic devices):
Nguyn Vn Thi- CH 08-10 i hc BKHN
11


Lun vn thc s khoa hc chuyờn ngnh TVT

Tất cả các khối logic đợc thiết kế sẵn và không cần phải thiết kế lớp mặt nạ
nào. Gồm hai loại : PLD (Programmable Logic Device) và FPGA (Field Programmable
Gate Array).
1.2.1 Full - Custom ASICs
Đối với mỗi một chíp ASIC ngời thiết kế phải thiết kế toàn bộ các khối logic,
mạch điện và layout. Full-custom ICs là loại đắt nhất để chế tạo và thiết kế, thời gian
chế tạo một IC (không kể thời gian thiết kế) là 8 tuần.
Dùng khi:
Không có các khối logic có sẵn trong th viện
Các khối logic hiện có không đủ nhanh
Các khối logic hiện có có kích thớc lớn
Các khối logic hiện có tiêu thụ công suất lớn
Chíp ASIC cần thiết kế quá đặc biệt dẫn tới nhiều mạch phải đợc thiết
kế một cách tuỳ biến.


Hỡnh 1.1: Kin trỳc mt Full Custom ASICs
Nguyn Vn Thi- CH 08-10 i hc BKHN
12


Lun vn thc s khoa hc chuyờn ngnh TVT

1.2.2 Semicustom ASICs
1.2.2.1 Cell-Based ASIC (CBIC)
Sử dụng các khối logic đợc thiết kế sẵn (AND gates, OR gates, multiplexers,
flip-flops, ...). Vùng khối logic chuẩn bao gồm các hàng khối logic chuẩn. Vùng khối
logic chuẩn có thể kết hợp với các khối khác lớn hơn đợc thiết kế sẵn nh vi điều
khiển, vi xử lý, các khối này đợc gọi là megacell.

Hỡnh 1.2: Kin trỳc mt Cell-Based ASIC
* Đặc điểm
Các khối tuỳ biến có thể đợc nhúng vào chíp ASIC. Ngời thiết kế chỉ
phải định nghĩa vị trí đặt các khối logic chuẩn và kết nối giữa các khối.
Các khối chuẩn có thể đợc đặt bất kỳ chỗ nào trên phiến silicon nên tất
cả các lớp mặt nạ của CBIC có thể đợc tự do thiết kế.
Thời gian chế tạo là 8 tuần.
Do các cell đợc thiết kế độc lập nên giảm rủi ro, giá thành hạ.
1.2.2.2 Gate-array-based (ASICs)
Bao gồm một mảng hai chiều các cổng logic giống nhau(ví dụ các cổng NAND)
đợc xác định sẵn trên phiến silic.

Nguyn Vn Thi- CH 08-10 i hc BKHN
13



Lun vn thc s khoa hc chuyờn ngnh TVT

* Đặc điểm
Các cổng logic đợc nối với nhau bởi các lớp kết nối. Việc kết nối giữa
các cổng logic đợc thực hiện bởi mặt nạ do ngời thiết kế tạo ra.
Thời gian chế tạo từ vài ngày đến 2 tuần.
Giá thành rẻ hơn các loại ASIC khác.
1.2.3 Các linh kiện logic lập trình đợc (Programmable logic devices)
Gồm hai loại : PLD (Programmable Logic Device) và FPGA (Field
Programmable Gate Array).Việc phân biệt giữa hai loại ASIC này cha đợc chuẩn
hoá. Sự khác nhau thực tế chỉ là sự kế thừa của chúng.Các PLD bắt đầu từ từ những
thiết bị nhỏ dùng thay thế một phần họ IC TTL và chúng phát triển tơng tự nh FPGA,
chỉ khác nhau về công nghệ chế tạo.
*Đặc điểm:
Logic cell và mask layer có sẵn (không theo yêu cầu của user).
Interconnect lập trình đợc.
Ma trận cac macrocell bao gồm PAL+FF hoặc Latch.
Thời gian thiết kế hoàn chỉnh khá nhanh ( khoảng vài giờ).
Field-programmable: PROM, EPROM, EEPROM, UVPROM.
Mask-programmable: Mask- programmable ROM (Masked ROM)
Field-programmable: Các kết nối dùng chuyển mạch lập trình đợc( ví dụ cầu chì,
CMOS transistor) nên hoạt động chậm hơn các kết nối cứng nhng có u điểm là rẻ
hơn. khi sản xuất với số lợng ít và thời gian lập trinh nhanh.
Mask-programmable: các kết nối bên trong thực hiện cứng nên khi sản xuất phải lập
trình mất vài tháng song giá thành giảm khi sản xuất số lợng lớn.

1.2.3.1 PLD tổ hợp
PROM
Nguyn Vn Thi- CH 08-10 i hc BKHN
14



Lun vn thc s khoa hc chuyờn ngnh TVT

PROM đợc sử dụng với mục đích là thiết bị nhớ lu trữ cố định các bít nhị
phân. Quá trình lập trình liên quan đến việc đốt cháy các cầu chì. Có thể xem PROM là
các mảng AND cố định và OR lập trình đợc.
PAL
inputs

Fixed
OR array

Programmable Programmable
AND array
Connections

outputs

PAL có mảng các phần tử logic AND lập trình đợc và các mảng phần tử OR cố định.
Các mảng AND đợc lập trình cung cấp các minterms cho các chức năng logic sau đó
chúng đợc tổng hợp lại trong mảng cổng OR.

Hỡnh 1.3: Kin trỳc mt PLA
Nguyn Vn Thi- CH 08-10 i hc BKHN
15


Lun vn thc s khoa hc chuyờn ngnh TVT


PLA

PLA có kết nối có thể lập trình đợc cho cả hai mảng phần tử AND và OR. Đây
là PLD linh hoạt nhất, nó khá giống PROM tuy nhiên nó không cung cấp đầy đủ giả mã
của các biến đầu vào. Bộ giải mã đợc thay thế bằng các mảng các phần tử AND có
thể lập trình đợc để tạo ra các minterm theo yêu cầu. Các minterm sau đó đợc kết nối
có chọn lọc đến phần tử OR để cung cấp tổng cho chức năng logic mong muốn.

1.2.3.2 PLD tuần tự
SPLD
SPLD là linh kiện logic có khả năng lập trình đợc theo kiểu tuần tự. Hầu hết các nhà
sản xuất gọi linh kiện này dới tên gọi EPLD.

Một khối đầu ra EPLD cơ sở thờng bao gồm ba thành phần cơ bản: một mảng
logic, một thanh ghi cấu hình đợc và một bộ đệm I/O cấu hình đợc. Mỗi khối logic
trên gọi là một macrocell.

Nguyn Vn Thi- CH 08-10 i hc BKHN
16


Lun vn thc s khoa hc chuyờn ngnh TVT

Hinh 1.4 Cấu trúc một macrocell
Phía bên trái là PLA, bên phải có một FF và các bộ dồn kênh hình thang. Bộ
dồn kênh MUX ES không thể hiện rõ đờng lựa chọn của chúng khi bits làm việc. Sự
lựa chọn đợc lu trong bộ nhớ và đợc thay đổi bởi sự lập trình bên trong các tế bào
nhớ (netrnal nonvolatile memory cells ).

FF có thể đợc cấu hình nh loại


D,T,transparent latch. Clock có thể xảy ra(occur) theo sờn khác nhau(either edge). Set
có thể chọn từ GND,a product term set signal(PTA),a control term set(CTS),the global
set/reset signal(GSR).
CPLD
Khi sự phức tạp trong thiết kế phần cứng tăng lên việc chuyển sang sử dụng PLD VLSI
là một tất yếu, nó cho phép các hệ thống số chứa hàng ngàn cổng logic đợc thực hiện
trong một IC duy nhất. Các PLD VLSI đã mở rộng kháI niện của PLD lên mức cao hơn
của sự tích hợp nhằm tăng khả năng hoạt động của hệ thống, sử dụng ít không gian bo
mạch, tăng độ tin cậy và giảm đợc chi phí.

Nguyn Vn Thi- CH 08-10 i hc BKHN
17


Lun vn thc s khoa hc chuyờn ngnh TVT

Thiết bị logic phức hợp lập trình đợc CPLD là một sản phẩm của PLD VLSI.
Nghiên cứu một chip CPLD điển hình là XC95108 dòng XC9500 của hãng Xilinx.
XC95108 chứa 6 khối chức năng có thể cấu hình đợc(CFB: Configurable
Function Block) mà mỗi CFB tơng đơng với 18 macrocells với 36 đầu vào và 18 đầu
ra chúng hồi tiếp về một ma trận kết nối tổng thể( global interconnection matritx),
Xilinx gọi là ma trận chuyển mạch kết nối nhanh(Fast Connect Switch Matrix). Mỗi
CFB nhận 36 đầu vào và hồi tiếp về từ 6x18=108 macrocells đa vào ma trận chuyển
mạch. Kết quả là một bản thiết kế có từng chân của CPLD đợc một macrocells điều
khiển thực hiện một hàm logic lớn với rất nhiều đầu vào. CPLD sử dụng bộ nhớ không
mất thông tin(Nonvolative Flash) dựa trên các phần tử nhớ nên có thể lu giữ chơng
trình khi mất nguồn.

Nguyn Vn Thi- CH 08-10 i hc BKHN

18


Lun vn thc s khoa hc chuyờn ngnh TVT

Chơng 2 tìm hiểu công nghệ fpga của xilinx
Đây là công nghệ tiên tiến đã đợc nghiên cứu nhiều và có ứng dụng rộng rãi
trên thế giới. Công nghệ FPGA (Field-Programmable Gate Array) đã xuất hiện nh
một giải pháp cơ bản cho vấn đề tranh thủ thời gian và chi phí ban đầu thấp. Nó cho
phép chế tạo ngay và giá thành sản phẩm thấp, tạo nên sức cạnh tranh lớn trên thị
trờng. FPGA là một thiết bị cấu trúc logic có thể đợc ngời sử dụng lập trình trực tiếp
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.
2.1 Cấu trúc chung của FPGA hãng Xilinx
FPGA đợc công ty Xilinx giới thiệu đầu tiên vào năm 1985. Hiện nay FPGA
đã đợc nhiều công ty phát triển là Xilinx, AcTel, Altera, Plus Logic, AMD
Giống nh MPGA, một FPGA gồm một dãy các phần tử rời rạc có thể đợc kết
nối với nhau theo một cách chung. Và cũng giống nh PLD, các kết nối giữa các phần
tử có thể lập trình đợc.

Hình 2.1 Cấu trúc tổng quát của FPGA

Gồm một dãy 2 chiều các CLB(Configurable Logic Block) có thể đợc kết nối
Nguyn Vn Thi- CH 08-10 i hc BKHN
19


Lun vn thc s khoa hc chuyờn ngnh TVT

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 dây 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 SM (Switching Matrix) dùng để nối các CLB với các đoạn dây hoặc các đoạn
dây với nhau. Mạch logic đợc cài đặt trong FPGA bằng cách ánh xạ logic vào các
logic block riêng lẻ và sau đó nối các logic block cần thiết qua các chuyển mạch.
2.1.1 CLB(Configurable Logic Block)
CLB đợc thiết kế theo nhiều cách khác nhau. Một số khối logic có thể chỉ là
các cổng NAND 2 đầu vào, tuy nhiên cũng có thể nó là một bộ dồn kênh (multiplexer).
Trong một số loại FPGA các khối logic có thể có cấu trúc hoàn toàn giống nh PAL.
Hầu hết các khối logic 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.2 Cấu trúc của một CLB hãng Xilinx
Nguyn Vn Thi- CH 08-10 i hc BKHN
20


Lun vn thc s khoa hc chuyờn ngnh TVT

Một CLB gồm 4 logic logic- cell, Logic cell gồm 2 LUT giống nhau, mỗi LUT
gồm 4 đầu vào, tín hiệu điều khiển và FF-D. Một CLB gồm hai bộ điều khiển đầu ra 3
trạng thái BUFT. Mỗi BUFT có chân điều khiển đầu vào độc lập.
2.1.2 Các nguồn kết nối
Các nguồn tài nguyên 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. Giống nh khối logic, có nhiều cách để thiết kế kiến
trúc routing.
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 SRAM, các cầu chì nghịch (anti-fuse),
EPROM transistor và EEPROM transistor. Giống nh logic block có thể 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 các kết nối hơn nên routing phức
tạp hơn .
Các loại kết nối:

Hình 2.3 Các loại kết nối CLB
Nguyn Vn Thi- CH 08-10 i hc BKHN
21


Lun vn thc s khoa hc chuyờn ngnh TVT

2.1.3 IOB (Input/Output Blocks)
Tín hiệu vào qua 1 bộ đệm, tín hiệu ra qua bộ đệm 3 trạng thái, theo các chuẩn,
bộ nhớ giao tiếp BUS . Mỗi IOB gồm 3 FF chung một tín hiệu clock và các tín hiệu
CE(clock Enable) điều khiển độc lập cho từng FF.

Hình 2.4 Cấu trúc một IOB
2.2 Các bớc thiết kế với FPGA
Ngời thiết kế muốn tạo ra

một FPGAs

phải sử dụng hệ thống CAD

(Computer-Aided-Design). Hình 2.5 thể hiện các bớc trong hệ thống CAD tiêu biểu
để tạo ra một FPGA.
Bớc 1: Điểm bắt đầu cho quá trình thiết kế là mạch logic ban đầu cần thiết kế. Bớc

này đòi hỏi một sơ đồ biểu diễn mạch hay mô tả VHDL hoặc đặc tả các biểu thức
Boolean. Từ các tín hiệu vào ban đầu, mô tả mạch đợc chuyển thành dạng chuẩn nh
là các biểu thức Boolean.
Nguyn Vn Thi- CH 08-10 i hc BKHN
22


Lun vn thc s khoa hc chuyờn ngnh TVT

Bớc 2: Các biểu thức Boolean sau đó đợc xử lý bằng công cụ tối u logic, chúng rút
gọn các biểu thức. Mục đích là biến đổi các biểu thức này để tối u về diện tích hay tốc
độ cuả mạch cuối cùng. Cả 2 yêu cầu về diện tích và tốc độ cùng có thể cùng đặt ra.
Bớc 3: Tiếp theo các biểu thức boolean đã tối u đợc truyền tới mạch logic block
cuả FPGA thông qua chơng trình ánh xạ công nghệ (technology mapping). Bộ ánh xạ
cố gắng tối thiểu số khối đợc dùng, tức là tối u diện tích hoặc có thể đợc tối thiểu số
lợng tầng logic block hoặc giảm đờng dẫn tức là tối u về thời gian trễ.

Hình 2.5 Hệ thống CAD tiêu biểu cho FPGAs
Bớc 4: Khi ánh xạ mạch vào các logic block, cần phải quyết định đặt mỗi khối ở đâu
trong dãy FPGAs. Chơng trình Placement đợc sử dụng để giải quyết vấn đề này. Các
giải thuật placement đặc thù cố gắng tối thiểu tổng số độ dài các dây nối yêu cầu để tạo
ra kết quả.
Bớc 5: Bớc tiếp theo trong hệ thống CAD đợc thực hiện bằng phần mềm routing,
chúng ấn định các đoạn dây FPGA và chọn các chuyển mạch có thể lập trình phù hợp
với các kết nối trong logic block. Phần mềm routing phải thực hiện 100% các kết nối
Nguyn Vn Thi- CH 08-10 i hc BKHN
23


Lun vn thc s khoa hc chuyờn ngnh TVT


yêu cầu nếu không thì mạch không thể thiết kế đợc trong một FPGA. Hơn nữa
cần phải routing sao cho trễ lan truyền tại các kết nối là tối thiểu.
Bớc 6: Sau khi thực hiện thành công các bớc placement và routing, đầu ra
cuả hệ thống CAD đợc nạp vào đơn vị lập trình tạo ra chip FPGA cuối cùng. Toàn bộ
quá trình cài đặt mạch trong FPGA mất khoảng vài phút đến một giờ, phụ thuộc vào
loại FPGA đang dùng.
2.3 Các công nghệ lập trình FPGA
Thuật ngữ "chuyển mạch" để chỉ các phần tử lập trình (programming
element) cho phép các kết nối có thể lập trình đợc giữa các đoạn dây nối. 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à EEFPROM transistor.
Mặc dù các công nghệ lập trình này 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 ở một trong 2 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 logic block
cuả FPGA và một 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ó các tính chất sau:
Chiếm càng ít diện tích của chip càng tốt.
Có kháng trở thấp khi ở trạng thái ON và trở kháng rất 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 chip.
Tùy thuộc vào ứng dụng FPGA, các phần tử lập trình có thể có các đặc tính khác
nhau. Ví dụ các phần tử lập trình không bay hơi hay có thể lập trình lại đợ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 thì rất tốt.
2.3.1. Công nghệ lập trình dùng RAM tĩnh
Công nghệ lập trình dùng SRAM đợc sử dụng trong các FPGA của nhiều
công ty nh: Algotronix, Concurrent Logic, Plessey semiconductors, Xilinx. Trong các
FPGA này các kết nối lập trình đợc làm bằng các transistor truyền (passtransistor), các cổng cho phép truyền (pass-gates), hay các bộ dồn kênh (multiplexer),
Nguyn Vn Thi- CH 08-10 i hc BKHN
24



Lun vn thc s khoa hc chuyờn ngnh TVT

tất cả đều đợc điều khiển bằng các ô nhớ (cell) SRAM. Cách dùng SRAM cell để
điều khiển các CMOS pass-transistor,cổng truyền đầy đủ hay bộ dồn kênh .

Hình 2.6 Công nghệ lập trình dùng RAM tĩnh
Trong trờng hợp pass-transistor và pass-gates ở hình trên, SRAM cell
điều khiển cổng truyền on hay off. Khi off giữa 2 dây nối với pass gate sẽ có một
trở kháng rất cao. Khi on nó sẽ tạo ra một trở kháng thấp kết nối giữa 2 dây nối. Đối
với bộ dồn kênh, SRAM cell điều khiển ngõ nhập nào cuả multiplexer 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.
Trong các FPGA, sử dụng công nghệ lập trình SRAM, các logic-block có thể đợc
kết nối với nhau qua cách kết hợp cả multiplexer và 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 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 số cơ chế lu trữ thờng trực cho
các bit cuả 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 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 transistor cho mỗi RAM cell cũng nh các
Nguyn Vn Thi- CH 08-10 i hc BKHN
25


×