- Các loại linh kiện logic khả trình đơn giản: EPROM, EEPROM, Flash ROM, PLD - Để thuận tiện cho việc thử nghiệm, tạo mẫu, phát triển ứng dụng, sản xuất ở quy mô nhỏ, người ta đã chế tạ
Trang 1CÔNG NGHỆ FPGA
I Giới thiệu linh kiện logic khả trình
II Công nghệ lập trình
III Cấu trúc FPGA tổng quát
IV Cấu trúc FPGA hãng Xilinx
V Cấu trúc FPGA hãng Altera
VI Cấu trúc FPGA họ Stratix (Altera)
VII Ngôn ngữ mô tả phần cứng Verilog và VHDL VIII Giới thiệu một số kit FPGA
IX Một số họ FPGA của các hãng
X Kết luận
Trang 2- Trước đây phần lớn các loại linh kiện điện tử là cố định,
không lập trình được.
- Các loại linh kiện logic khả trình đơn giản: EPROM,
EEPROM, Flash ROM, PLD
- Để thuận tiện cho việc thử nghiệm, tạo mẫu, phát triển ứng dụng, sản xuất ở quy mô nhỏ, người ta đã chế tạo ra các linh kiện (thiết bị) logic khả trình (Programmable Logic Devices), tức là các linh kiện số có thể được cấu hình lại nhiều lần cho các ứng dụng logic khác nhau
- Gồm 2 loại chính: CPLD (Complex Programmable Logic
Devices) và FPGA (Field Programmable Gate Array)
- Các hãng sản xuất FPGA/CPLD: ALTERA, XILINX,
ATMEL, QUICKLOGIC, ACTEL,…
Trang 3 FPGA là tập hợp các phần tử rời rạc
được kết nối theo một cách chung.
Trang 4Hình 1: Cấu trúc Antifuse (hãng Actel)
(a) Phần giao nhau (b) Hình vẽ đơn giản (c) Antifuse hoạt động như 1 công tắc
Antifuse: cầu chì nghịch Difussion: khuyếch tán Lập trình bằng dòng điện
1 Cấu trúc Antifuse:
2 Ưu khuyết điểm:
• Kích thước nhỏ
• Quy trình chế tạo khác với công nghệ CMOS
II CÔNG NGHỆ LẬP TRÌNH
Trang 5B NGUYÊN LÝ TẾ BÀO
SRAM:
Hình 2: Cấu trúc tế bào SRAM (hãng Xilinx)
1 Cấu trúc tế bào SRAM
2 Ưu khuyết điểm
• Tái sử dụng và nâng cấp thiết kế dễ dàng Cập nhật và thay đổi
hệ thống bằng tái cấu hình phần cứng trực tiếp Công nghệ
CMOS
• Dữ liệu bị mất khi nguồn cung cấp bị ngắt Kích thước lớn hơn
Trang 6EEPROM
Hình 3: Cấu trúc transistor EPROM (hãng Xilinx)
1 Nguyên lý hoạt động Transistor EPROM
2 Ưu khuyết điểm
9 Tái lập trình không cần bộ nhớ ngoài Diện tích nhỏ
9 Không tái cấu hình trực tiếp trên mạch
Trang 7III CẤU TRÚC FPGA TỔNG QUÁT
Cấu trúc FPGA gồm 3 phần: Logic Blocks (LBs), I/O Blocks
(IOB), Interconnection
Trang 8IV CẤU TRÚC FPGA HÃNG XILINX
Cấu trúc FPGA hãng Xilinx Cấu trúc FPGA Spartan II hãng Xilinx
Trang 9Spartan IIE
• Là một họ linh kiện FPGA của hãng Xilinx
Trang 10• CLB: Một CLB gồm
4-logic-cell, Logic cell gồm
2 LUT giống nhau, mỗi
LUT gồm 4-ngõ-vào, tín
hiệu điều khiển và FF-D
Mỗi CLB gồm hai bộ điều
khiển ngõ ra 3 trạng thái
(BUFT) Mỗi BUFT có
chân điều khiển và ngõ
vào độc lập
Trang 11• Đi dây: Công nghệ SRAM, General Routing Matrix (GRM)
Trang 12• Khối chức năng
RAM Block: gồm nhiều khối RAM, tổ chức thành hai cột, ở hai cạnh đứng của linh kiện
DLL (Delay Lock Loops): điều khiển
xung clock, nhằm loại trừ độ lệch
hoặc trì hoãn một khoảng thời gian
giữa tín hiệu Clock ngõ vào và các
xung Clock ngõ vào bên trong, giảm tối đa sự trì hoãn, tạo sự đồng bộ và tiết kiệm năng lượng Mỗi DLL nối hai mạng Clock toàn cục.
Trang 13• I/O control blocks
V CẤU TRÚC FPGA HÃNG ALTERA
Cấu trúc FPGA hãng Altera gồm:
9 Logic Element / Look up Tables
9 Programmable Interconnect Array
9 I/O Block
Trang 14MAX 7000 (t.t)
• Một LAB bao gồm 16 Macrocells.
• Các LAB được nối với nhau qua đường kết nối chung lập trình được Programmable Interconnect Array (PIA), các đường này sẽ nối các macrocells và chân I/O.
• 36 tín hiệu ngõ vào Macrocells
Cấu trúc
Logic Array
Block
Trang 15MAX 7000 (t.t)
Khối I/O:
• Các chân I/O có thể cấu hình là ngõ vào,
• 1 Macrocell bao gồm 3 khối chức năng: Mảng logic, ma trận
chọn thành phần tích (Product Term Select Matrix) và thanh ghi
lập trình được (Programmable Register)
• Thực hiện chức năng mạch tổ hợp hoặc mạch tuần tự
• Parallel Logic Expanders cho phép nối các macrocell lại với
nhau để tạo thành chức năng logic lớn hơn và Sharable Logic
Expanders mở rộng thành phần tích
Trang 16• FLEX10K bao gồm các EAB (Embedded Array Block) Mỗi EAB gồm có 2048 bit, có thể tạo RAM, FOM, FIFO hoặc các chức năng logic tổng quát Mỗi EAB gồm 100-600 cổng, có thể dùng độc lập hoặc kết hợp lại với nhau Các EAB khi là RAM có thể là 256x8, 512x4, 1024x2, 2048x1.
• Các mảng Logic bao gồm các LAB, mỗi LAB gồm 8 LE và một đường kết nối cục bộ.
• Mỗi LE gồm 1 LUT (Look-up Table) 4 ngõ vào, 1 FlipFlop lập trình được và các đường để dành để ghép nối.
• Các Interconnection theo hàng và cột, nối các LAB với nhau
• Các IOE (I/O Element) chứa các I/O pin Mỗi IOE gồm 1 bộ đệm 2 chiều và 1 FlipFlop có thể là ngõ vào/ra/2 chiều, hoặc thanh ghi vào/ra.
• Ứng dụng của các EAB là tạo bộ nhớ, các bộ vi xử lý, vi điều khiển, lọc số,…
Cấu trúc Flex10K
Trang 17Cấu trúc CPLD họ Flex10K
Trang 18Cấu trúc CPLD họ Flex10K (tt)
Trang 19V CẤU TRÚC FPGA HÃNG ALTERA
Cấu trúc FPGA hãng Altera gồm:
9 Logic Element / Look up Tables
9 Programmable Interconnect Array
9 I/O Block
Cấu trúc CPLD
họ Flex10K
Trang 20- Gồm các LAB, Interconnection, các khối bộ nhớ và các khối DSP
- Cấu trúc 2 chiều : hàng và cột, dùng công nghệ kết nối MultiTrack
- Các chuỗi kết nối hàng và cột kết nối các LABs, khối bộ nhớ, IOE và DSP
- Mảng logic bao gồm các LAB, mỗi LAB gồm 10 LEs (LE là 1 đơn vị logic nhỏ nhằm thực hiện hiệu quả những hàm logic) Các LAB được nhóm trong các hàng và cột xuyên suốt trong linh kiện.
- Các khối bộ nhớ gồm M512 RAM, M4K RAM, M-RAM thực hiện
RAM, ROM, FIFO,…
- Các chân I/O ( IOE) đặt ở cuối hàng và cột của LAB Mỗi IOE gồm 1 bộ đệm 2 chiều, 6 thanh ghi cho các ngõ vào/ra thanh ghi và điều khiển
- Các khối DSP
- Khối PLLs.
Trang 22Cấu trúc LAB họ Stratix (hãng Altera)
Trang 24- Kết nối giữa các LE, bộ nhớ, DSP và chân I/O
- Kết nối hàng gồm:
+ Kết nối trực tiếp giữa các LAB và các khối kế cận
+ Kết nối R4, Kết nối R8, Kết nối hàng R24 xuyên suốt chiều dài linh kiện
- Kết nối cột gồm:
+ Kết nối chuỗi LUT và chuỗi thanh ghi trong LAB
+ Kết nối C4, Kết nối C8, Kết nối cột C16 xuyên suốt chiều dọc linh kiện
- Kết nối hàng kết nối với kết nối cột
Trang 25Cấu trúc IOE họ Stratix (hãng Altera)
Trang 261 Khối bộ nhớ:
+ RAM 2-port đơn giản, RAM 1 port, FIFO, ROM, thanh ghi dịch
Khối bộ nhớ gồm 3 khối RAM: M512, M4K, M-RAM
2 Khối PLLs: (Phase Lock Loop)
+ Cấu trúc phân cấp xung Clock
+ Kết hợp các nguồn tài nguyên xung Clock với tổng hợp tần số
chính xác được cung cấp bởi các PLL nhanh và tiên tiến tạo thành
giải pháp quản lý xung Clock hoàn chỉnh
3 Khối DSP: (Digital Signal Processing)
+ Dùng trong lọc FIR, lọc FIR phức tạp, lọc IIR, FFT, biến đổi
Cosin rời rạc, tương quan
+ Khối DSP gồm các thành phần sau:
o Khối nhân
o Khối cộng/ngõ ra
Trang 28Cấu trúc MAC - DSP họ Stratix (hãng Altera)
Trang 30+ VHDL (Very High Speed Integrated Circuits Hardware Description
Language) là ngôn ngữ mô tả phần cứng được công nhận tiêu chuẩn IEEE từnăm 1987 Nó là ngôn ngữ có đầy đủ sức mạnh cho việc thiết kế và mô tả cáchệ thống số ngày nay Tuy nhiên VHDL rất giống với ngôn ngữ Ada, một
ngôn ngữ không phổ biến Đặc điểm này làm cho VHDL khó học hơn
+ Verilog HDL được chuẩn hóa từ năm 1995 và rất giống ngôn ngữ C Chínhđặc điểm này mà nó được sử dụng khá rộng rãi ngày nay Tại Việt Nam, công
ty Renesas cũng sử dụng ngôn ngữ này trong việc thiết kế
Trang 31VIII GIỚI THIỆU MỘT SỐ KIT FPGA
Kit Stratix EP1S25 (Altera) của
hãng Parallax
+ 144 chân I/O
+ Bộ dao động xung clock 50MHz
+ Nguồn 3.3V cho I/O và 1.5V cho
lõi FPGA
+ Cổng nối tiếp chuẩn 9 chân
+ Các chân nối JTAG
www.parallax.com
Trang 32Kit UP2 của Altera
+ Chip EPM7128S họ Max7000
+ Chip EPF10K70 họ FLEX10K
+ Hỗ trợ 2 led 7 đoạn
+ 16 led
+ JTAG chain, cáp tải
ByteBlaster II
+ Cổng giao tiếp P/S2, VGA
+ Bộ tạo dao động 25.17 MHz
Ngoài ra còn có Kit UP3 (Altera)
www.altera.com
Trang 33Kit Digilab 2E của Digilent
+ Spartan 2E XC2S200E của Xilinx
+ 143 chân I/O người dùng
+ Nguồn điều chỉnh 1,5A (2,5 và
Trang 34Virtex-4 ML401 Development Board
4 Audio Jacks (Line In/Out,
Microphone, Head Phone), RS-232
Serial Port, 3 USB Ports, JTAG,
VGA
www.nuhorizons.com
Trang 35PHẦN MỀM SỬ DỤNG TRONG THIẾT KẾ FPGA
Leonardo Spectrum, ModelSim,…
Trang 37XI MỘT SỐ HỌ FPGA CỦA CÁC HÃNG
•+ Altera : gồm các họ Max3000, Max7000, MAXII, Flex10K, Cyclone, APEX, ACEX, Mercury, Stratix, Stratix GX, Stratix II (có thể tham khảotại www.altera.com)
•
•+ Xilinx : XC3000, XC4000, XC9500, Spartan, Spartan2, Spartan3, QproVirtex, Virtex, VirtexII (có thể tham khảo tại www.xilinx.com)
•+ QuickLogic : Eclipse, EclipsePlus, QuickRam, pASIC1, pASIC2,
pASIC3 (có thể tham khảo tại www.quicklogic.com)
•+ Atmel : AT6000, AT40K (có thể tham khảo tại www.atmel.com)
Trang 38X KẾT LUẬN
1 ỨNG DỤNG
+ Thiết kế mạch logic số hiện đại theo nhu cầu của người thiết kế
+ Tạo mẫu trước khi chế tạo vi mạch
+ Thiết kế các bộ vi xử lý, vi điều khiển
+ Xử lý tín hiệu số
+ Xử lý ảnh số, Video
+ Xử lý âm thanh
+ Trong truyền thông: các chuẩn Ethernet, mã Turbo, mã Viterbi, Reed –Solomon,…
+ Các giao tiếp PCI, USB
+ Điều khiển tự động
+ Và các ứng dụng khác …
Trang 392 QUY TRÌNH THIẾT KẾ FPGA
Ngõ vào thiết kế (Schematics, Verilog, VHDL)
Mô phỏng hành vi
Tổng hợp thiết kế
Thực hiện thiết kế (FPGA Place and Route)
Mô phỏng
Cấu hình FPGA (Tải thiết kế
Trang 40Ngoài ra còn có thể thiết kế trên FPGA, kết hợp phần mềm của hãng sản xuất và phần mềm
Labview
Sơ đồ thiết kế FPGA sử dụng phần mềm
Labview của hãng National Instrumetns
Ưu điểm:
Sử dụng các thư viện sẵn có
Trực quan và dễ sử dụng
Rút ngắn thời gian thiết kế
Đơn giản hóa quy trình thiết kế
Trang 41Thiết kế trên FPGA, kết hợp phần mềm của hãng sản xuất với phần mềm Matlab
Sơ đồ thiết kế FPGA kết hợp phần mềm Quartus
Trang 423 ƯU VÀ KHUYẾT ĐIỂM FPGA
Ưu điểm :
+ Thời gian thực hiện thiết kế nhanh
+ Có thể thay đổi thiết kế dễ dàng
+ Chi phí thấp
Khuyết điểm :
+ Tốc độ chậm
+ Chỉ hiệu quả trong các mạch logic số
+ Không thể thay thế các linh kiện ASIC
Tuy nhiên ngày nay khuyết điểm này đang được khắc phục nhờ sự tiến bộcủa công nghệ Do đó FPGA ngày càng được sử dụng phổ biến và rộng rãi trong mọi lĩnh vực của đời sống
Trang 43EPROM, EEPROMSRAM
Logic cell nằm ngoài, chia chung nguồn tài nguyênKhối Logic
CPLDFPGA
Trang 44integrated circuit used for implementing digital hardware, where the chip can be
configured by the end user to realize different designs Programming of such a device often involves placing the chip into a special programming unit, but some chips can
also be configured “in-system” Another name for FPDs is programmable logic
devices (PLDs); although PLDs encompass the same types of chips as FPDs, we
prefer the term FPD because historically the word PLD has referred to relatively
simple types of devices.
blocks on a single chip Alternative names (that will not be used in this paper)
sometimes adopted for this style of chip are Enhanced PLD (EPLD), Super PAL, Mega PAL, and others.
that allows very high logic capacity Whereas CPLDs feature logic resources with a wide number of inputs (AND planes), FPGAs offer more narrow logic resources
FPGAs also offer a higher ratio of flip-flops to logic resources than do CPLDs.
Trang 45LỜI CẢM ƠN
Xin chân thành cám ơn các bạn đã đến tham
dự lớp học này Rất mong nhận được các ý
kiến đóng góp của các bạn.