11 NguyÔn ChÝ Kiªn Ch−¬ng 2: Giíi thiÖu chung vÒ IC kh¶ tr×nh vµ c«ng nghÖ fpga 2.1 Giíi thiÖu vÒ c«ng nghÖ ASIC vµ lÞch sö ph¸t triÓn 2.1.1 Giíi thiÖu vÒ c«ng nghÖ ASIC Công nghệ v
Trang 1NGUYỄN CHÍ KIÊN
THIẾT BỘ VI XỬ LÝ 8 BÍT SỬ DỤNG CÔNG
NGHỆ FPGA
LUẬN VĂN THẠC SĨ KHOA HỌC
NGƯỜI HƯỚNG DẪN : TS NGUYỄN NAM QUÂN
HÀ NỘI – 2010
Trang 21 Nguyễn
Chí Kiên
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à ch−a 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
Trang 3Đại học Bách Khoa Hà Nội đã dìu dắt, chỉ bảo tôi trong những năm vừa qua Đặc
biệt, tôi xin chân thành gửi lời cảm ơn sâu sắc nhất đến thầy giáo TS.Nguyễn Nam
Quân, người đã tận tình hướng dẫn tôi hoàn thành tốt luận văn thạc sĩ Tôi cũng xin
được gửi lời cảm ơn đến các thầy lãnh đạo trường cùng các thầy lãnh đạo Khoa Điện – Điện tử, các thầy cô giáo khoa Điện – Điện tử, trường Cao Đẳng Công Nghiệp Nam Định đã tạo điều kiện thuận lợi nhất cho tôi được học tập và nghiên cứu và hoàn thành khóa học cao học Nhân dịp này, tôi cũng xin cảm ơn đến các bạn cùng lớp cao học điện tử viễn thông 2 khóa 2008 - 2010 đã giúp đỡ tôi trong suốt thời gian qua
Xin chân thành cảm ơn!
Hà nội, ngày tháng năm 2010
Học viên
Nguyễn Chí Kiên
Trang 4Trang phô b×a i
Ch−¬ng 2: Giíi thiÖu chung vÒ IC kh¶ tr×nh vµ c«ng nghÖ FPGA 3
2.2.3.1 C¸c thiÕt bÞ logic lËp tr×nh ®−îc - PLD (Programmable logic
devices)
7
2.2.3.2 Ma trËn cæng lËp tr×nh theo hiÖn tr−êng FPGA (Field
Programmable Gate Array)
8
Trang 52.2.3.3.1 FPGA cña Altera 10
Ch−¬ng 4: ThiÕt kÕ bé vi xö lý 8 bit sö dông fpga 37
Trang 64.4 Chế độ địa chỉ của lệnh 39
4.4.1.3 Giản đồ định thời chu kỳ thực hiện các lệnh rẽ nhánh và lệnh jmp
ở chế độ trực tiếp
42
4.4.1.4 Giản đồ định thời chu kỳ thực hiện lệnh lda, adc, sbc (chế độ trực
tiếp) và lệnh jmp (chế độ gián tiếp)
43
4.4.1.7 Giản đồ định thời chu kỳ thực hiện lệnh lda, and, adc, sbc (chế độ
gián tiếp)
44
Trang 75.1.1 C¸ch sö dông phÇn mÒm MAXPLUS II 81
Trang 83 NguyÔn
ChÝ Kiªn
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
CPU Central Processing Unit
CMOS Complementary Metal-Oxide-Semiconductor
CICC IEEE Custom Intergrated Circuits Conference)
CPLD Complex Programble Logic Device
CLB Configurable Logic Blocks
EDA Electronic Design Automation
FPGA Field Programmable Gate Arrays
IC Integrated circuit
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
PDA Pin-grid array
RAM Random Access Memory
Trang 9VLSI Very large-scale integrated
VHSIC Very High Speed Intergrated Circuit
UART Universal Asynchronous Receiver-transmitter
Trang 105 Nguyễn
Chí Kiên
Danh mục các bảng
TrangBảng 2.2.3.3.2.2 (a) Tổng quan họ Spartan -3 FPGA 17 Bảng 2.2.3.3.2.2 (b) Các đặc tính chính của Spartan-3 19 Bảng 4.3 Tập lệnh của VXL 38
Bảng 4.4 Mã tác vụ của lệnh 40 Baỷng 4.5.2 Các tín hiệu điều khiển ngõ vào và ngõ ra của VXL 57 Bảng 4.5.3.1 Đơn vị luận lý số học 58
Trang 116 Nguyễn
Chí Kiên
Danh mục các hình vẽ, đồ thị
TrangHình 2.1.2 (a) Sơ đồ chân IC 4 Hình 2.1.2 (b) Chip silicon ở dưới nắp 4 Hình 2.2.3.1 (a) Cấu trúc PLA 7 Hình 2.2.3.1 (b) Cấu trúc PAL 7 Hình 2.2.3.2 Cấu trúc chung của FPGA 9 Hình 2.2.3.2.3 Các loại FPGA trong thực tế 10
Hình 2.2.3.3.2.2 Sơ lược các họ thiết bị của Xilinx 14 Hình 2.2.3.3.2.3 (a) Cấu trúc của Spartan - IIE 20 Hình 2.2.3.3.2.3 (b) Sơ đồ khối của Spartan -IIE 21 Hình 2.2.3.3.2.3 (c) Khối Input/Output Spartan -IIE (I/OB) 21 Hình 2.2.3.3.2.3 (d) Các Bank chuẩn vào ra I/O của Spartan -IIE 22 Hình 2.2.3.3.2.3 (e) Cấu trúc Logic Cell hay một Slice đơn
trongSpartan -IIE
24
Hình 2.2.3.3.2.3 (f) Bộ dồn kênh F5 và F6 25 Hình 2.2.3.3.2.3 (g) Vòng giữ chậm DLL
Hình 2.2.3.3.2.3 (h) Các đặc tính đầu ra của DLL
26
26 Hình 3.1.1 Minh hoạ cho phương pháp thiết kế bằng hàm Boolean 28 Hình 3.2.2.1 Khai báo thực thể một cổng NAND 32 Hình 3.2.2.2.2 Mô tả kiến trúc flip-flop RS theo mô hình cấu trúc 34 Hình 3.2.2.4 Minh hoạ một môi trường kiểm tra ảo bằng VHDL 34 Hình 3.3.2 Tóm tắt quy trình thiết kế VHDL 35 Hình 4.2 Mô tả trang và độ dài của VXL 37
Trang 127 Nguyễn
Chí Kiên
Hình 4.4 Định vị địa chỉ trong lệnh địa chỉ trang 41 Hình4.4.1.1 Giản đồ định thời đáp ứng ngắt quãng 42 Hình 4.4.1.2 Giản đồ chu kỳ thực hiện lệnh 1 byte: nop, cla, cma,
cmc, asl, asr
Hình 4.4.1.3 Giản đồ định thời chu kỳ thực hiện các lệnh rẽ nhánh
và lệnh jmp ở chế độ trực tiếp
Hình4.4.1.4 Giản đồ định thời chu kỳ thực hiện lệnh lda, adc, sbc
(chế độ trực tiếp) và lệnh jmp (chế độ gián tiếp)
Trang 138 Nguyễn
Chí Kiên
Hình 4.3.6 (e) Mô tả phần cứng của khối S4 73 Hình 4.3.6 (e) Mô tả phần cứng của khối S5 74 Hình 4.3.6 (g) Mô tả phần cứng của khối S6 77 Hình 4.3.6 (h) Mô tả phần cứng của khối S7 78 Hình 4.3.6 (i) Mô tả phần cứng của khối S8 79 Hình 4.3.6 (j) Mô tả phần cứng của khối S9 80 Hình 4.3.6 (k) mô hình hoạt động của khối điều khiển 80 Hình 5.1.2 Cửa sổ của COMPILER 82 Hình 5.1.3 Màn hình Waveform Editor 83 Hình 5.1.5.1 Tín hiệu ngõ vào và ngõ ra của khối ALU 84 Hình 5.1.5.2 Màn hình mô phỏng phép dịch trái và dịch phải của
khối SHU
86
Hình 5.1.5.3 Mô phỏng khối CONTROL 86 Hình 5.1.5.4 Màn hình mô phỏng lệnh cộng của CPU 88 Hình 5.2.1 Cửa sổ XILINX ISE 89 Hình 5.2.2.(a) Kết quả mô phỏng 1 91 Hình 5.2.2.(b) Kết quả mô phỏng 2 92
Trang 14Từ ngụn ngữ VHDL cỏc nhà thiết kế phần cứng cú thể thiết kế ra những thiết
bị phần cứng như CPU, bộ vi điều khiển… một cỏch nhanh chúng và cũng cú thể thực hiện mụ phỏng và kiểm tra khả năng hoạt động của thiết bị trước khi đưa vào sản xuất, nhờ vậy cú thể giảm bớt thời gian, chi phớ sản xuất Do khả năng và tớnh
hiệu quả của ngụn ngữ VHDL là động cơ chớnh để tụi chọn đề tài “Thiết kế bộ vi
xử lý 8 bit sử dụng cụng nghệ FPGA” làm đề tài cho luận văn tốt nghiệp của
mỡnh
1.2 Mục đích của đề tài
Nghiờn cứu FPGA, ngụn ngữ VHDL cú thể thiết kế ra những thiết bị phần cứng như CPU, bộ vi điều khiển… một cỏch nhanh chúng và cũng cú thể thực hiện
mụ phỏng và kiểm tra khả năng hoạt động của thiết bị trước khi đưa vào sản xuất, nhờ vậy cú thể giảm bớt thời gian, chi phớ sản xuất
1.3 Nhiệm vụ nghiên cứu của đề tài
- Tỡm hiểu FPGA,
- Cỏc khỏi niệm về ngụn ngữ VHDL, cỳ phỏp và ngữ nghĩa của nú
- Nờu nhiệm vụ của bộ VXL, mụ tả tổ chức bộ nhớ của bộ VXL, trỡnh bày tập
Trang 151.4 Đối t−ợng nghiên cứu của đề tài
Nghiờn cứu cấu trỳc của FPGA và ngụn ngữ VHDL để mụ tả bộ VXL 8 bit
Trang 1611 NguyÔn
ChÝ Kiªn
Ch−¬ng 2: Giíi thiÖu chung vÒ IC kh¶ tr×nh
vµ c«ng nghÖ fpga
2.1 Giíi thiÖu vÒ c«ng nghÖ ASIC vµ lÞch sö ph¸t triÓn
2.1.1 Giíi thiÖu vÒ c«ng nghÖ ASIC
Công nghệ vi điện tử ngày nay đang chứng kiến một sự thay đổi to lớn: từ những vi mạch được thiết kế bởi các chuyên gia vi mạch, sản xuất với số lượng lớn; chuyển sang các mạch chuyên dụng được thiết kế bởi các kỹ sư hệ thống tại các cơ
sở ứng dụng, tại đó không nhất thiết phải đầu tư cơ sở vật chất để làm công nghệ bán dẫn và có thể sản xuất với số lượng nhỏ Nhờ công nghệ ASIC (Application-specific Integrated Circuit) nên các mạch tổ hợp lớn trong nhiều trường hợp có thể được “chế tạo” ngay tại các cơ sở ứng dụng Có được sự thay đổi đó là nhờ việc sử dụng các hệ thống tự động thiết kế CAD (Computer-aided Design)
Hiện nay, mạch vi điện tử chuyên dụng đang có nhu cầu thị trường rất cao, chiếm khoảng 42% thị trường IC thế giới, và trong những năm tới sẽ chiếm khoảng 65% ASIC là một vi mạch được thiết kế dành cho một ứng dụng đặc biệt (đối lập với các mạch tích hợp điều khiển các hàm như RAM trong máy tính) ASIC được xây dựng bằng việc kết nối các khối mạch đã được xây dựng theo các phương pháp mới Do các khối mạch sử dụng đã có sẵn nên việc sản xuất một ASIC mới dễ dàng hơn nhiều so với việc thiết kế một vi mạch từ những phác thảo ban đầu
ASIC ngày nay được ứng dụng hầu như khắp mọi nơi, từ các máy móc tự động để điều khiển các chức năng của các phương tiện truyền thông, xe cộ, tàu vũ trụ, các hệ
Trang 1712 NguyÔn
ChÝ Kiªn
thống xử lý, các dây chuyền công nghiệp, và ngay cả trong các thiết bị cầm tay PDA
2.1.2 Qu¸ tr×nh ph¸t triÓn cña m¹ch tÝch hîp (IC)
Hình 2.1.2 (a) cho thấy khuôn dạng một IC bao gồm một mạng lưới chân (viết tắt PGA : pin-grid array) nằm ở mặt trên của IC và cắm vào trong board mạch
in, thường được gọi là gói chíp Hình 2.1.2(b), chip silicon (gọi là silicon die) được gắn vào lỗ hổng dưới nắp được bịt kín
Hình 2.1.2 (a) Sơ đồ chân IC (b) Chip silicon ở dưới nắp Kích thước vật lý của một silicon die thay đổi từ một milimét đến vài milimét, nhưng thông thường kích cỡ của một IC được đo bằng số cổng logic (cổng NAND hai ngõ vào) hay số lượng transistor chứa trong IC Ví dụ, một IC có 100k cổng tương đương với 100.000 cổng NAND hai ngõ vào
Công nghệ bán dẫn đã ra đời vào những năm 1970 và tiếp tục phát triển cho đến nay Họ IC đầu tiên gồm những linh kiện có mật độ tích hợp nhỏ (SSI) chứa từ
1 đến 10 cổng logic như cổng NAND, cổng NOR… hơn nữa chỉ vài chục transistor Tiếp đến là thời kỳ của những mạch tích hợp có mật độ trung bình (MSI) và đã mang theo những chức năng ưu việt hơn so với SSI đó là mật độ tích hợp lớn hơn đồng thời các hàm logic chức năng nhiều hơn Chẳng hạn như, số lượng cổng logic, các bộ giải mã, các thanh ghi, bộ đếm được tăng thêm Vào cuối những năm 1970, công nghệ mạch tích hợp tiếp tục phát triển đến mức các mạch tích hợp mật độ cao (LSI) ra đời Lúc này, các bộ vi xử lí đầu tiên trong các chíp đơn ra đời Với sự ra
Trang 1813 NguyÔn
ChÝ Kiªn
đời của LSI đã tạo nên một bước tiến mới trong công nghệ bán dẫn, đã thu hút được mối quan tâm của các kỹ sư, các hãng cạnh tranh lúc bấy giờ Các hãng như Intel và Motorola bắt đầu sản xuất các chíp vi xử lí đơn và những chíp nhớ đơn RAM và ROM Các chíp hỗ trợ khác cũng bắt đầu xuất hiện như: cổng song song, giao diện nối tiếp (UART) và bộ điều khiển ngắt Vì vậy, nhiều họ chíp LSI mới được sản xuất và sử dụng cho mục đích thiết kế máy vi tính Ngày nay, các mạch tích hợp có mật độ tích hợp rất cao (VLSI) ra đời đưa ra bộ xử lý 64 bit có bộ nhớ cache, bộ xử
lý toán học có dấu chấm động và được tích hợp trên một triệu transistor Khi công nghệ CMOS phát triển, các transistor được sản xuất với diện tích nhỏ hơn, vì thế các transistor được tích hợp ngày càng nhỏ bên trong IC
Trong những năm 1980, với công nghệ VLSI các kỹ sư đã bắt đầu khai thác những ưu điểm thiết kế một IC theo nhu cầu của mình hoặc thiết kế các hệ thống, các ứng dụng đặt biệt một cách tùy tiện hơn so với các IC chuẩn Sau đó, thiết kế hệ thống vi điện tử trở thành chủ đề cần quan tâm Đến cuối những năm 1980, những ngôn ngữ mô tả phần cứng như VHDL và Verilog được ra đời đã đi sâu vào phong cách thiết kế Các bộ mô phỏng tốc độ cao và các máy mô phỏng đã cho phép các mẫu thiết kế có hiệu lực nhanh chóng Bộ kiểm tra và phân tích tự động đã loại bỏ những lỗi do con người gây ra trong quá trình xử lý Cuối cùng, những công cụ tổng hợp đã tự động tiến hành phiên dịch hoạt động của mô hình HDL thành một mô hình cấu trúc logic
Một trong những hội nghị đầu tiên dành cho giai đoạn này nổi lên một cách nhanh chóng của công nghệ IC đó là hiệp hội CICC (IEEE Custom Intergrated Circuits Conference), và hôi nghị này được tổ chức hàng năm nhằm giúp cho sự phát triển của các hãng sản xuất IC tùy biến Các loại IC tùy biến khác nhau bắt đầu được đưa ra có những ứng dụng khác nhau Sự ra đời của các loại IC mới này đã
mở ra một thời kỳ mới đó là những IC ứng dụng chuyên biệt hay ASIC Ngày
nay, đã có hiệp hội ASIC quốc tế IEEE (IEEE International ASIC conference) ASIC là một mạch tích hợp được sản xuất cho một ứng dụng đặc trưng và nhìn chung, chúng có một kích thước tương đối nhỏ
Trang 1914 Nguyễn
Chí Kiên
2.2 Các loại ASIC
Full-Custom ASICs (Application specific IC)
Các khối logic (logic cells) và các lớp mặt nạ không được thiết kế sẵn mà do người thiết kế thiết kế
ắ Semicustom ASICs
Các khối logic ( logic cells) được thiết kế sẵn (được định nghĩa trong thư viện cell)
và các lớp mặt nạ được thiết kế bởi người thiết kế
Có 2 loại Semicustom ASICs: Standard-cell based and Gate-array-based ASICs
ắ Cỏc linh kiện logic khả trỡnh (Programmable logic devices)
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
Có 2 loại linh kiện logic khả trình: PLD (Programmable Logic Device) and FPGA (Field Programmable Gate Array)
2.2.1 Full-Custom ASICs
Đối với mỗi một chip ASIC, người thiết kế phải thiết kế toàn bộ cỏc khối logic, mạch điện, layout
- Full-custom ICs là loại đắt nhất để chế tạo và thiết kế
- Thời gian chế tạo 1 IC (không kể thời gian thiết kế) là 8 tuần
- Dùng khi:
9 Không có các khối logic có sẵn trong thư viện
9 Các khối logic hiện có không đủ nhanh
9 Các khối logic hiện có có kích thước lớn
9 Các khối logic hiện có tiêu thụ công suất lớn
9 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
Trang 20• 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
2.2.3 Các linh kiện logic khả trình (Programmable logic devices)
Có hai loại ASIC lập trình được: Các thiết bị logic lập trình được – PLD (Programmable logic devices) và ma trận cổng lập trình theo hiện trường FPGA
(Field Programmable Gate Array)
2.2.3.1 Các thiết bị logic lập trình được - PLD (Programmable logic devices) PLD có thể được chia thành các loại sau:
Trang 2116 Nguyễn
Chí Kiên
Hình 2.2.3.1 (a) Cấu trúc PLA
- PLA cú mảng cỏc phần tử logic AND và OR lập trỡnh được
Hình 2.2.3.1 (b) Cấu trúc PAL PAL cú mảng cỏc phần tử logic AND lập trỡnh được và mảng cố định cỏc phần tử logic OR
2.2.3.2 Ma trận cổng lập trình theo hiện trường FPGA (Field Programmable Gate Array)
Công nghệ FPGA (FPGA là từ viết tắt của Field Programmable Gate
Arrays) là công nghệ chế tạo mạch tích hợp mật độ cao FPGA là một thiết bị cấu
trúc luận lý có thể lập trình được bởi người sử dụng mà không cần đến một công cụ chế tạo mạch tích hợp
Người thiết kế muốn tạo ra FPGAs tốt phải sử dụng công cụ thiết kế được trợ giúp bởi máy tính gọi là CAD (computer -Aided - Design) Đầu tiên thiết kế mạch luận lý ban đầu đòi hỏi một sơ đồ biểu diễn mạch hay một mô tả VHDL hoặc đặc tả
Trang 2217 Nguyễn
Chí Kiên
các biểu thức luận lý (Boolean)
Từ các ngõ vào ban đầu mô tả mạch được chuyển thành dạng chuẩn như các biểu thức boolean sau đó được xử lý bằng công cụ tối ưu luận lý, chúng rút gọn các biểu thức, sau đó các biểu thức Boolean đã tối ưu được truyền tới các khối luận lý của FPGA thông qua chương trình ánh xạ công nghệ (technology mapping) Bộ ánh xạ thực hiện tối thiểu số khối được dùng, tiếp theo chương trình sắp xếp (Placement) thực hiện đặt mỗi khối vào trong dãy FPGAs Bước cuối cùng trong hệ thống CAD
được thực hiện bằng phần mềm điều khiển luồng (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 khối luận lý
Sau khi thực hiện thành công các bước sắp xếp và tuyến ngõ ra của hệ thống CAD được nạp vào đơn vị lập trình tạo ra chíp FPGA
Cấu trúc chung:
Hỡnh 2.2.3.2 Cấu trỳc chung của FPGA
2.2.3.2.1 Các logic block:
Trang 232.2.3.2.3 Phân loại FPGA:
Các loại FPGA của nhiều công ty khác nhau có các đặc tính riêng, tuy nhiên chúng có thể đ−ợc chia làm 4 loại chính: cấu trúc mảng đối xứng (symetrical array), cấu trúc hàng (row-based), cấu trúc PLD phân cấp (hierarchical PLD) và cấu trúc đa cổng (sea-of-gates)
Hình 2.2.3.2.3 Các loại FPGA trong thực tế
Trang 2419 Nguyễn
Chí Kiên
2.2.3.3 Các loại FPGA trên thị trường
Hiện nay trên thị trường có một số họ FPGA của các hãng như Xilinx, Actel,
Altera v.v trong luận văn này sẽ trình kiến trúc của hãng Altera, Xilinx
2.2.3.3.1 FPGA của Altera
2.2.3.3.1.1 Giới thiệu về công ty Altera
Được thành lập 1983 do Robert Hartmann, Michael Magranet, James Sansbury và Paul Newhagen Altera (ALTR) được lấy tên chính thức năm 1984, cũng chính trong năm này công ty đã giới thiệu những con chip đầu tiên của mình
Altera là công ty đi đầu trong lĩnh vực lập trình cho những mạch logic, với
hệ thống gồm nhiều công ty chip bán dẫn, cùng với những sản phẩm của mình Altera đang dần chiếm lĩnh thị trường chip bán dẫn và vi mạch khả lập trình trên thế giới
Hiện nay Altera được biết đến với FPGA, CPLD và các cấu trúc mạch ASIC cho phép lập trình trên nó Với số lượng khách hàng ngày càng tăng, doanh thu trong 2006 của Altera là 1,29 tỉ USD Trụ sở chính của Altera đặt tại San Jonse, California cùng với đội ngũ khoảng 2 600 nhân viên tại các công ty trên 19 quốc gia
Mới đây nhất Altera giới thiệu kit phát triển với chip Cyclone(R) III FPGA cho phép lập trình các ứng dụng Multimedia, Ethernet, lập trình giao tiếp với các thiết bị ngoại vi như USB, Memory…
Tại Viêt Nam, ngày 4 tháng 6 vừa rồi Altera tuyên bố thành lập một trung tâm công nghệ ở TP Hồ Chí Minh để hỗ trợ mạng lưới phát triển chip trên khắp toàn cầu của công ty và đây cũng chính là mục tiêu để phát triển đội ngũ kỹ sư trên toàn thế giới của Altera
2.2.3.3.1.2 Kiến trúc tổng quát của Altera
Kiến trúc tổng quát của Altera
Trang 2520 Nguyễn
Chí Kiên
Kiến trúc cơ bản của Altera FPGA có cấu trúc nhóm phân cấp của các PLD trong cấu trúc này sử dụng mảng hai chiều và một cấu trúc routing lập trình được
Kiến trúc cơ bản của Altera FPGA dựa trên công nghệ lập trình EPROM nó gồm
một mảng lớn các khối lập trình được gọi là những khối mảng luận lý (logic array Blocks) được kết nối với nhau bởi các nguồn tài nguyên routing gọi là mảng lập
trình nối liền nhau (Programmable Interconnect Array) Có hai thế hệ Altera FPGA
là FPM5000 và FPM7000
Altera FPGA có cấu trúc nhóm phân cấp gồm 2 mức một khối luận lý là
Macrocell mức này gọi là LAB và một block gọi là bộ mở rộng đường dây tích
(expander product terms), số lượng macrocell trong mỗi LAB thay đổi tuỳ theo loại
Altera FPGA, mỗi macrocell gồm 3 cổng AND nối vào cổng OR nối tiếp đến cổng
XOR và một filp-flop, cổng XOR tạo ra output của macrocell Các ngõ nhập của
macrocell xem như các cổng AND một ngõ nhập vì chúng được tạo ra như các cổng
AND nối dây của các tín hiệu
Cấu trúc của Altera LAB
Trang 2621 Nguyễn
Chí Kiên
`
Đường dây tích có thể là một tín hiệu trong PIA hay là từ bộ mở rộng
đườngbdây tích của LAB hoặc ngõ xuất của bất kỳ Macrocell nào, các tín hiệu ở
dạng thực hoặc bù nghĩa là phép đảo có thể lập trình được (programmable inversion)
với mô hình này thì chức năng của LAB giống chức năng của PLD nhưng đường
dây tích ít hơn trên mỗi thanh ghi Altera cho rằng điều này sẽ làm cho LAB hiệu quả hơn bởi vì hầu hết các hàm logic không cần có số đường dây tích lớn như trong
PLD và LAB hỗ trợ mở rộng chức năng bằng bộ mở rộng đường dây tích
2.2.3.3.1.3 Các dòng sản phẩm chính của Altera
Các linh kiện logic có thể lập trình của Tập đoàn Altera (PLDs) nâng cao tính mềm dẻo của các thiết kế và giảm thời gian tiếp cận thị trường cho các công ty về lĩnh vực truyền thông, thiết bị ngoại vi máy tính, và thị trường công nghiệp Công ty của bạn có thể tạo ra các giải pháp SOPC trên một PLD đơn bằng cách sử dụng các linh kiện hiệu suất cao, công cụ phần mềm phát triển, kết hợp trí tuệ với bộ vi xử lý,
bộ nhớ và các thành thành phần logic phức tạp khác Các giải pháp SOPC của Altera
đang góp phần thực hiện cuộc cách mạng hóa toàn bộ nền công nghiệp truyền thông
và Internet
Các linh kiện logic có thể lập trình (PLD) của Tập đoàn Altera mang đến những hệ thống hoạt động hiệu suất cao, với mật độ lớn và các tính nãng cao cấp cho thiết kế của bạn nhờ khả nãng có thể lập trình hệ thống và độ mềm dẻo không gì sánh được nhờ ứng dụng các sản phẩm chuẩn ASICs hoặc ASSPs
Các sản phẩm của Altera bao gồm:
Trang 272.2.3.3.2 FPGA của Xilinx
2.2.3.3.2.1 Giới thiệu về công ty Xilinx
Xilinx là nhà phát triển hàng đầu hiện nay trong lĩnh vực chip khả trình
Được thành lập bởi Ross Freeman, Bernie Vonderschmitt, và Jim Barnett, và có trụ
sở tại thung lũng Silicon Trụ sở chính hiện nay ở San Jose , California Là thành viên của nhóm 100 công ti hàng đầu thế giới hiện nay do tạp chí Fortune bình chọn Xilinx là nhà phát triển FPGA, CPLD được sử dụng rộng rãi trong những ứng dụng truyền thông, tự động hóa, mật mã và các lĩnh vực khác Các sản phẩm phần cứng của Xilin gồm có các dòng CPLD : CoolRunner, các họ FPGA như Spartans, Virtex Xilinx còn cung cấp các phần mềm hỗ trợ lập trình FPGA, CPLD như ISE, EDK, LogicCore, System Generator Các công cụ này hỗ trợ rất nhiều cho quá trình lập trình FPGA, giúp giảm thời gian và công sức thiết kế Các phiên bản phần mềm trên được nâng cấp thường xuyên (Hiện giờ đã có phiên bản 10.1 cho các ứng dụng)
2.2.3.3.2.2 Các dòng sản phẩm chính của Xilinx
Xilinx chia sản phẩm của mình ra rất nhiều họ nhưng tài liệu sẽ tập trung chính vào việc giới thiệu hai loại FPGA và CPLD cơ bản, xem hình vẽ (Hình 3.3.2.2 ) Đó là lọai thiết bị CoolRunner - XPLA3 CPLD, và Spartan 3 FPGA Song do chủ huớng của luận văn chúng ta chỉ đi vào một họ của Xilinx là Spartan-3, còn họ CoolRunner chúng ta không xét đến
Trang 2823 Nguyễn
Chí Kiên
Hỡnh 2.2.3.3.2.2 Sơ lược cỏc họ thiết bị của Xilinx
Họ Platform FPGAs :
Hình 2.7 cho ta thấy đ−ợc tổng quan các họ sản phẩm chính cuả Xilinx ở
đây xin chỉ giới thiệu tổng quan và đ−ra các địa chỉ cần tra cứu về chi tiết kỹ thuật của chúng trên trang Web của hãng Xilinx
Platform FPGA đ−a ra các đặc tính sau :
- Các giao tiếp vào ra hệ thống làm giảm nhẹ bớt các tiêu chuẩn không cần thiết khác
- XtremeDSP™ dựa trên FPGA, giải pháp cho sự thực hiện DSP ch−a từng có
(Nhanh gấp 100 lần bộ xử lý DSP hàng đầu)
- Empower ! Kỹ thuật xử lý dành cho xử lý hệ thống cho phép thực hiện hiện cấu
hình cao và mềm dẻo
Trang 2924 Nguyễn
Chí Kiên
Với dải mật độ từ 40.000 đến 10 triệu cổng hệ thống , Virtex-II đưa ra bộ nhớ
hệ thống được mở rộng và bộ DSP flash thông qua kết cấu nhúng IP (Lõi sở hữu trí tuệ) Họ Xilinx Virtex là họ đầu tiên của FPGA mà nó đưa ra một triệu cổng hệ thống và được giới thiệu vào năm 1998 Dòng sản phẩm Virtex về cơ bản đã được
định nghĩa lại tất cả các đơn vị logic lập trình bởi việc mở rộng các khả năng của FPGA truyền thống để có đặc tính mạnh hơn, nó được dùng cho các thiết kế hệ thống thực thi cao Các thiết bị mới nhất được đưa ra với họ sản phẩm Virtex-E và
được công bố năm 1999 với hơn ba triệu cổng hệ thống
Virtex-EM giới thiệu năm 2000 và là họ FPGA đầu tiên được sản xuất với qui trình mạ đồng đã được cải tiến và thêm vào bộ nhớ trong chip để dùng trong các ứng dụng chuyển mạch mạng
Họ Spartan FPGAs : Họ Spartan FPGA là ý tưởng dùng cho các ứng dụng với số lượng lớn, giá thành thấp, chúng được đưa vào các thiết bị đích nhằm thay thế các chip logic cố định và các sản phẩm chuyên dụng, chẳng hạn như các chip giao tiếp bus Năm thành viên của họ này là Spartan-3(1.2v), Spartan-IIE(1.8 v), Spartan-II (2.5 v) và SpartanXL(3.3v), Spartan(5v) ở đây xin giới thiệu họ sản phẩm Spartan-3
Spartan-3 FPGAs (1.2v, 90nm) : Với họ này, nó không chỉ có giá thành thấp
mà còn đựoc tích hợp với một số tính chất mới về cấu trúc, các tính chất này được kết hợp với các đơn vị logic cho phép lập trình Sự kết hợp giữa giá thành thấp với các tính chất mới đã tạo ra sự thay thế các chip ASIC và các thiết bị chuyên dùng khác Ví dụ một chip Spartan-3 FPGA trong hệ thống đa phương tiện truyền thông trong xe hơi có thể tập hợp được rất nhiều chức năng của hệ thống, bao gồm các lõi
IP nhúng, giao tiếp hệ thống khách hàng, DSP và các đơn vị logic khác Nó bao gồm các thành phần chính sau:
+/ Các khối SRL16 ( thanhghi dịch 16 bit) :
* Mỗi khối Logic định cấu hình được (CLB LUT- Configurable Logic Block LookUp Table) làm việc như một thanh ghi dịch nhanh 16 bit (Mỗi CLB có chứa 2 hoặc 4 LUT và 2 hoặc 4 Flip Flop )
* Nối tầng các LUT ( Bộ tạo chức năng ) để tạo nên thanh ghi dịch dài hơn
Trang 3025 Nguyễn
Chí Kiên
* Sử dụng các thanh ghi đường ống cho các bộ đệm dành cho Video và các kết nối không dây
+/ Bộ nhớ RAM chọn có thể được cấp tới 520Kb
* Mỗi LUT làm việc như bộ RAM/ROM đơn cổng hoặc lưỡng cổng
* Nối tầng các LUT để tạo bộ nhớ lớn hơn
* Các ứng dụng có thể thay đổi kích thước bộ nhớ một cách mềm dẻo, FIFO, và các
bộ đệm
+/ Khối RAM nhúng tới 1.87Mb
* Nhúng tới 104 khối RAM đồng bộ bằng việc nối tầng các khối RAM 18Kb
* Mỗi khối RAM 18Kb coi như một RAM đơn cổng hoặc lưỡng cổng
* Cung cấp các bội số của tỷ số tương quan, chuyển đổi độ rộng dữ liệu, tính chẵn
điển hình là thường xảy ra với các bộ PLL (Phase Lock Loop - các vòng khoá pha)
được tích hợp trong FPGA
Trang 31+/ Kỹ thuât trở kháng điều khiển đ−ợc XCITE
(Xilinx Controlled Impedance Technology)
*Các đầu cuối I/O cần bảo toàn tính nguyên dạng cuả tín hiệu, với hàng trăm đầu I/O và với các kỹ thuật đóng gói cải tiến, các điện trở đầu cuối mở rộng không còn
Trang 32Chế độ thanh ghi dịch ( SRL 16 )
- ý tưởng thanh ghi dịch 16 bit dành cho các ứng dụng tốc độ cao, hoặc dữ liệu có dạng thô
được lưu trữ trong DSP và các ứng dụng mã hoá, xử lý đường ống nhanh
Các khối nhân 18x18
- Dùng cho việc xử lý DSP tốc độ cao; Sự sử dụng các bộ nhân kết hợp với kết cấu khung dữ liệu cho phép thực hiện DSP song song siêu nhanh
Tín hiệu đầu cuối (lên tới 622
Mbps) định dạng theo các chuẩn
LVTTL, LVCMOS, GTL, GTL+,
PCI, HSTL-I, II, III, SSTL- I, II
- Cho phép kết nối các chíp đang dùng với các chip, bộ nhớ khác,
và từ các chip đang dùng tới các chuẩn tín hiệu ở mạch phản hồi, loại bớt sự cần nhiều các IC chuyển đổi
Bộ quản lý đồng hồ số ( DCM )
- Loại trừ sự giữ chậm đồng hồ mức board và on-chip, nhân chia tức thì, có thể giảm được tốc độ
đồng hồ phù hợp ở mức board,
Trang 3328 Nguyễn
Chí Kiên
giảm số bộ đồng hồ trên bo mạch Có thể điều chỉnh pha
đồng hồ đảm bảo độ chính xác cao
Có các tài nguyên được định
tuyến toàn cục
- Sự phân phối các clock và các tín hiệu khác cùng với các hệ số phân chia đầu ra cao trên toàn thiết bị
Bảng 2.2.3.3.2.2 (b) Các đặc tính chính của Spartan-3
2.2.3.3.2.3 Cấu trúc FPGA của hãng Xilinx
Cấu trúc của Spartan-IIE ( 1.8V) FPGA: Họ Spartan-IIE (Lõi 1.8V) của FPGA đưa ra các kỹ thuật FPGA phát triển nhất ngày nay, bao gồm cho phép lập trình với nhiều chuẩn vào ra như LVDS, LVPECL, HSTL, các khối RAM on-chip, các vòng khoá độ giữ chậm cho phép quản lý clock ở mức board và mức chip Hơn nữa họ Spartan-IIE có một ý nghĩa giá trị khác đó là nó loại bỏ sự cần thiết các sản phẩm tiêu chuẩn chuyên dụng ( ASSP ) với các ứng dụng đơn giản, chẳng hạn như vòng khoá pha, FIFO, các bộ chuyển đổi vào ra, điều khiển Bus hệ thống, các thành phần này đã không thể thiếu để hoàn thiện một thiết kế mà nó đã được dùng trước
đây
- Họ Spartan-IIE là đòn bẩy cơ bản cho các tính năng về cấu trúc của Virtex-E để
đưa ra những tính năng nổi trội hơn Cấu trúc CLB (Configurable Logic Block -
Trang 34Hỡnh 2.2.3.3.2.3 (a) Cấu trỳc của Spartan - IIE
- Họ Spartan-IIE FPGA được thực thi với cấu trúc CLB cho phép lập trình linh hoạt, thông dụng, mà các CLB này được bao bởi một vòng các khối I/O lập trình được, các đường nối được kết nối bởi các nguồn tài nguyên định tuyến đa năng Cấu trúc này cũng đưa ra các chức năng được nâng cao chẳng hạn như khối RAM và các khối điều khiển clock
Trang 3530 Nguyễn
Chí Kiên
Hình 2.2.3.3.2.3 (b) Sơ đồ khối của Spartan -IIE
Hình 2.2.3.3.2.3 (c) Khối Input/Output Spartan -IIE (I/OB)
I/O Block
- Các đặc tính I/OB của các đầu vào và đầu ra đ−ợc hỗ trợ tới 19 các chuẩn tín hiệu khác nhau, bao gồm LVDS, BLVDS, LVPECL, LVCMOS, HSTL, SSTL và GTL
Trang 3631 Nguyễn
Chí Kiên
- Các đầu vào ra tốc độ cao này có khả năng hỗ trợ với tất cả các bộ nhớ hiện đại và giao tiếp bus khác Chúng gồm ba thanh ghi chức năng hoặc là các flip - flop loại
D được kích hoạt bằng sườn hoặc là các bộ chốt nhạy mức (Hình 2.10)
- Mỗi một IOB có một đường CLK được đưa tới ba thanh ghi theo một đườngdùng chung và các đường CE cho mỗi thanh ghi hoàn toàn độc lập xem Hình 2.10 Ngoài các đường CLK, CE, mỗi thanh ghi đều có chung một đường SET/RESET Với mỗi thanh ghi bạn có thể đặt tín hiệu Set/Reset này như tín hiệu Set đồng bộ, Reset đồng
bộ, Preset không đồng bộ hoặc một tín hiệu xoá (Clear) không đồng bộ
- Trong một số các chuẩn I/O yêu cầu điện áp Vcco hoặc Vref, các điện áp này chúng được nối tới các chân của thiết bị khi thiết kế, các chân này chúng tạo thành từng nhóm của các khối vào ra và chúng được gọi là Bank
- Chính vì vậy, sự hạn chế về các chuẩn vào của một thiết bị sẽ do các Bank quyết
định Tám Bank vào ra được tách theo mỗi cạnh của FPGA và được chia thành hai Bank chính (Xem hình 3.3.2.3 (d)) Mỗi Bank có nhiều chân điên áp Vcco và tất cả chúng đều được nối tới cùng một đường điện áp Điện áp này được xác định bởi các chuẩn đầu ra người dùng
Hình 2.2.3.3.2.3 (d) Các Bank chuẩn vào ra I/O của Spartan -IIE
- Một số chuẩn đầu vào mong muốn một điện áp ngưỡng nào đó mà nó được cung cấp bởi người dùng chẳng hạn như Vref Trường hợp này, các chân I/O người dùng
được xắp đặt tự động như các đầu vào cho điện áp lấy mẫu Vref Khoảng một trong
6 các chân vào ra của các Bank đóng vai trò này Các chân Vref trong một bank
Trang 3732 Nguyễn
Chí Kiên
được nối bên trong và vì vậy chỉ một điện áp Vref có thể được sử dụng trong mỗi bank Tất cả các chân Vref trong các bank cần phải được nối với nguồn điện áp bên ngoài để chúng hoạt động đúng Để có sự trao đổi nhanh giữa các tín hiệu, các chân tín hiệu đầu vào cần phải được cung cấp trước khi nguồn cấp vào chân Vccint và chân Vcco và phải đảm bảo không có đường dẫn dòng ngược từ các chân I/O quay về
điện áp nguồn cung cấp Vccint và Vcco (Có nghĩa là đảm bảo cho thiết bị có thể hoạt động ở một điện áp và giao tiếp ở một điện áp, hai điện áp này có thể khác nhau )
Configurable Logic Blok và Logic Cell
- Các đơn vị cơ bản của CLB (Khối logíc cho phép định cấu hình) thuộc họ thiết bị Spartan-IIE chính là các Logic Cell mà ta đã biết Mỗi một Logic Cell bao gồm một
bộ tạo chức năng (Hay bộ tạo hàm) gồm 4 đầu vào, phần tử logic nhớ và phần tử lưu trữ (Flip-Flop loại D)
- Đầu ra của bộ tạo chức năng của mỗi Logic Cell điều khiển cả đầu ra CLB hoặc
đầu vào D của Flip-Flop Mỗi một CLB có chứa bốn Logic Cell và được tổ chức thành hai Slice tương tự nhau, một slice đơn có dạng như (Hình 2.12) Thêm vào bốn bộ LC cơ bản, các CLB của Spartan-IIE có chứa phần tử logic mà nó kết hợp với các bộ tạo chức năng để đưa ra các chức năng 5 hoặc 6 đầu vào
Look-Up tables ( LUT )
- Các bộ tạo chức năng của Spartan -IIE thực hiện như LUT có bốn đầu vào Để hoạt
động như một bộ tạo chức năng, mỗi một LUT có thể cung cấp một RAM 16x1bit
đồng bộ ơn nữa hai LUT trong một Slice có thể được kết hợp để tạo một RAM 16x2 bit hoặc 32x1 bit đồng bộ
Storage Element
Trang 3833 Nguyễn
Chí Kiên
Hình 2.2.3.3.2.3 (e) Cấu trúc Logic Cell hay một Slice đơn trong Spartan -IIE
- Các phần tử lưu trữ trong slice của Spartan-IIE có thể được xem như một Flip-Flop loại D kích hoạt bằng sườn, hoặc như một bộ chốt nhạy mức Các đầu vào D có thể
được điều khiển hoặc bởi bộ tạo chức năng trong slice hoặc trực tiếp từ đầu vào các slice (bỏ qua bộ tạo chức năng) Thêm vào các đường Clock (CLK) và Clock Enable
(CE) (xem Hình 3.3.2.3 (e)), mỗi Slice có các tín hiệu set và reset đồng bộ (SR và
BY) Đường SR ép các phần tử lưu trữ về trạng thái khởi tạo, đặc biệt trong trường hợp nhồi cấu hình Đường BY ép phần tử lưu trữ về trạng thái ngược lại Có thể lựa chọn hai đường này để chúng hoạt động không đồng bộ Tất cả các tín hiệu điều khiển có thể đảo ngược một cách hoàn toàn độc lập và chúng được chia sẻ bởi hai Flip-Flop trong một Slice
- Arithmetic Logic Bộ dồn kênh F5IN ở trong mỗi Slice được kết hợp với các
đầu ra bộ tạo chức năng được chỉ ra ở hình dưới đây
Trang 3934 Nguyễn
Chí Kiên
Hình 2.2.3.3.2.3 (f) Bộ dồn kênh F5 và F6
Sự kết hợp này sẽ đưa ra hoặc một bộ tạo hàm mà nó có thể thực thi bất kỳ 5
đầu vào chức năng nào, hoặc một bộ dồn kênh 4:1 hoặc các chức năng được chọn lựa của chín đầu vào Tương tự, bộ dồn kênh F6 kết hợp các đầu ra của bốn bộ tạo chức năng trong CLB bằng việc chọn một trong hai đầu ra của bộ dồn kênh F5 Điều này cho phép thực thi bất kỳ một hàm 6 đầu vào nào, một bộ dồn kênh 8:1, hoặc chức năng được chọn lựa lên đến 19 đầu vào
Block RAM Họ Spartan-IIE FPGA hợp nhất một vài bộ nhớ RAM theo khối
thành khối lớn hơn (gọi là SelectRAM +), có nghĩa là cần phải bổ xung thêm các LUT RAM đã được dùng Kiến trúc bộ nhớ không bền vững này được thực hiện trong các CLB Các khối bộ nhớ RAM Block chúng được tổ chức theo các cột Hầu hết họ Spartan -IIE có chứa hai cột như nhau, mỗi một cột được bố trí dọc theo chiều
đứng Họ XC2S400E có bốn cột RAM khối, mỗi cột này được kéo dài hết chiều cao của chip Mỗi một khối nhớ chính gồm bốn CLB cao và vì vậy mỗi Spartan-IIE có 8 CLB cao sẽ chứa hai khối nhớ trên mỗi cột và tổng cộng có bốn khối
Delay - locked loop (DLL) Được kết hợp với mỗi bộ đệm đầu vào clock toàn
cục và là một vòng khoá độ giữ chậm số DLL mà nó loại trừ được sự lệch giữa bộ
đệm đầu vào clock và các chân đầu vào clock bên trong thiết bị Bộ DLL giám sát oàn bộ clock đầu vào và clock được phân phối, tự động điều chỉnh phần tử giữ chậm clock DLL cung cấp các pha vuông 900 của clock nguồn mà có thể nhân đôi, hoặc