Chương này tập trung trình bày về công nghệ FPGA và các mạch phần cứng được xây dựng trên công nghệ FPGA. Đây là công nghệ tiên tiến đã được nghiên cứu rất nhiều và được ứng dụng rộng rãi trên thế giới.
FPGA là viết tắt của (Field-Programmable Gate Array), đây là loại IC trong đó cho phép người thiết kế lập trình thay đổi các thiết kế của mình. FPGA xuất hiện như một giải pháp cơ bản cho vấn đề tranh thủ thời gian để đưa ra thị trường và rủi ro tài chính phải gánh chịu trong quá trình nghiên cứu sản phẩm của công nghệ điện tử. FPGA là loại thiết bị khả trình (PLD) tiên tiến nhất hiện nay của nghành công nghệ chế tạo IC chuyên biệt mà vẫn
35 trang |
Chia sẻ: luyenbuizn | Lượt xem: 1146 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Nghiên cứu phát triển các hệ FPGA với ứng dụng trong thiết kế các hệ DSP chuyên dụng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Ch¬ng 1
Tæng quan vÒ c«ng nghÖ fpga
Giíi thiÖu chung vÒ FPGA
Ch¬ng nµy tËp trung tr×nh bµy vÒ c«ng nghÖ FPGA vµ c¸c m¹ch phÇn cøng ®îc x©y dùng trªn c«ng nghÖ FPGA. §©y lµ c«ng nghÖ tiªn tiÕn ®· ®îc nghiªn cøu rÊt nhiÒu vµ ®îc øng dông réng r·i trªn thÕ giíi.
FPGA lµ viÕt t¾t cña (Field-Programmable Gate Array), ®©y lµ lo¹i IC trong ®ã cho phÐp ngêi thiÕt kÕ lËp tr×nh thay ®æi c¸c thiÕt kÕ cña m×nh. FPGA xuÊt hiÖn nh mét gi¶i ph¸p c¬ b¶n cho vÊn ®Ò tranh thñ thêi gian ®Ó ®a ra thÞ trêng vµ rñi ro tµi chÝnh ph¶i g¸nh chÞu trong qu¸ tr×nh nghiªn cøu s¶n phÈm cña c«ng nghÖ ®iÖn tö. FPGA lµ lo¹i thiÕt bÞ kh¶ tr×nh (PLD) tiªn tiÕn nhÊt hiÖn nay cña nghµnh c«ng nghÖ chÕ t¹o IC chuyªn biÖt mµ vÉn ®îc gäi lµ ASIC.
Sù ph¸t triÓn cña c¸c thiÕt bÞ kh¶ tr×nh (PLD)
C¸c thiÕt bÞ lËp tr×nh ®îc, gäi chung lµ c¸c thiÕt bÞ kh¶ tr×nh, cã vai trß rÊt quan träng trong thiÕt kÕ phÇn cøng sè. Chóng lµ c¸c chÝp ®a dông cã thÓ ®îc cÊu h×nh theo nhiÒu c¸ch cho nhiÒu øng dông kh¸c nhau.
+ Lo¹i ®Çu tiªn cña thiÕt bÞ kh¶ tr×nh ®îc sö dông réng r·i lµ Programmable read-only Memory-PROM. PROM lµ thiÕt bÞ lËp tr×nh chØ ®îc mét lÇn gåm mét d·y c¸c « nhí chØ ®äc. PROM cã thÓ thùc hiÖn bÊt kú mét hµm logic theo b¶ng sù thËt nµo ®ã, b»ng c¸ch sö dông c¸c ®êng ®Þa chØ nh c¸c ngâ nhËp vµo vµ ngâ xuÊt ®ù¬c x¸c ®Þnh néi dung c¸c bÝt nhí. Cã hai lo¹i PROM c¬ b¶n lµ Mask-Programmable vµ Field-Programmable.
- Mask-Programmable lµ lo¹i thiÕt bÞ ®îc lËp tr×nh bëi nhµ s¶n xuÊt. C¸c chÝp nµy thêng s¶n xuÊt c¸c chÝp l«gÝc tèc ®é cao v× c¸c kÕt nèi bªn trong thiÕt bÞ ®îc thùc hiÖn b»ng phÇn cøng ngay tõ khi s¶n xuÊt.
- Field-Programmable lµ thiÕt bÞ ®îc lËp tr×nh bëi ngêi dïng. C¸c kÕt nèi bªn trong cña Field-Programmable lu«n cÇn ®Õn mét sè chuyÓn m¹ch lËp tr×nh ®îc (cÇu ch×, transistor truyÒn…) v× vËy tèc ®é truyÒn chËm h¬n cña thiÕt bÞ nèi cøng ( Mask-Programmable). Tuy nhiªn nã cã nhiÒu u ®iÓm nh:
. C¸c chÝp Field-Programmable cã thÓ lËp tr×nh trong thêi gian ng¾n (kho¶ng vµi phót hay vµi giê ®ång hå) cßn c¸c chÝp Mask-Programmable khi s¶n xuÊt ph¶i thùc hiÖn trong thêi gian dµi (hµng tuÇn hay hµng th¸ng).
. C¸c chÝp Field-Programmable rÎ h¬n nhiÒu so víi Mask-Programmable khi s¶n xuÊt víi sè lîng nhá.
Hai biÕn thÓ cña PROM lµ EPROM (Eraseable Programmable Read Only Memory) vµ EEPROM (Electrically Eraseable Programmable Read Only Memory) chóng ®Òu cã chung u ®iÓm lµ cã kh¶ n¨ng xo¸ vµ lËp tr×nh l¹i nhiÒu lÇn.
TiÕp ®Õn lµ c¸c thiÕt bÞ PLD (Programmable Logic Device) chóng th«ng thêng cã cÊu t¹o gåm mét d·y c¸c cæng AND ®îc nèi víi mét d·y c¸c cæng OR. Lo¹i c¬ b¶n cña PLD lµ PAL (Programmable Array Logic), PAL gåm mét khèi c¸c cæng AND lËp tr×nh ®îc nèi ®Õn c¸c khèi cæng OR cè ®Þnh. Mét lo¹i n÷a cña PLD linh ho¹t h¬n PAL lµ PLA (Programmable Logic Array). PLA còng cã cÊu tróc gièng PAL nhng c¸c kÕt nèi kh¶ tr×nh. Trong PLA còng cã hai lo¹i lµ Mask-Programmable vµ Field-Programmable.
C¶ hai lo¹i PLD trªn cho phÐp thùc hiÖn c¸c m¹ch logic cã tèc ®é cao tuy nhiªn cÊu tróc ®¬n gi¶n cña chóng chØ cho phÐp thùc hiÖn ®îc c¸c m¹ch logic cì nhá.
Lo¹i thiÕt bÞ kh¶ tr×nh tæng qu¸t nhÊt gåm d·y c¸c phÇn tö rêi r¹c cã thÓ kÕt nèi víi nhau theo m« t¶ cña ngêi sö dông, ®îc gäi lµ Mask-Programmable Gate Array (MPGA) chóng cã cÊu tróc c¬ b¶n nhÊt lµ gåm c¸c hµng transistor cã thÓ ®îc kÕt nèi víi nhau ®Ó thùc hiÖn c¸c m¹ch logic. C¸c kÕt nèi do ngêi dïng ®Þnh nghÜa nµy cã thÓ trong c¶ hµng vµ c¶ cét. ¦u ®iÓm chÝnh cña MPGA so víi PLD lµ nã cung cÊp c¸c kiÕn tróc tæng qu¸t cho phÐp thùc hiÖn c¸c m¹ch logic lín h¬n. V× cÊu tróc cña chóng cã thÓ më réng lín
h¬n cïng víi sè lîng logic lín h¬n.
FPGA ®· kÕt hîp kh¶ n¨ng lËp tr×nh cña PLD vµ kÕt cÊu nèi cã thÓ më réng cña MPGA. Do ®ã c¸c thiÕt bÞ lËp tr×nh lo¹i nµy cã mËt ®é logÝc cao h¬n. FPGA ®îc c«ng ty Xilinx giíi thiÖu lÇn ®Çu tiªn vµo n¨m 1985 vµ ®Õn nay ®· cã nhiÒu c«ng ty ph¸t triÓn nh: Actel, Altera, Plessey, Plus logic, Quick...
1.1.2 Field-Programmable Gate Aray (FPGA)
I/O cell
Logic Block
Tài nguyên kết nối
Hình 1.1 Mô hình FPGA
1.1.2.1 CÊu tróc c¸c FPGA
FPGA lµ m¹ch tÝch hîp chøa nhiÒu (64 ®Õn h¬n 10.000) « logic (logic cell) gièng nhau cã thÓ xem lµ c¸c thµnh phÇn chuÈn. Mçi « logic gi÷ mét hay mét sè chøc n¨ng ®éc lËp. C¸c « gièng nhau ®îc kÕt nèi bëi mét ma trËn ®êng dÉn vµ c¸c chuyÓn m¹ch kh¶ tr×nh. Ngêi thùc hiÖn thiÕt kÕ b»ng c¸c ®Æc trng l«gic ®¬n cña mçi « vµ lùa chän ®ãng c¸c chuyÓn m¹ch trong ma trËn kÕt nèi. M¶ng cña c¸c « l«gic vµ kiÓu kÕt nèi lµ kÕt cÊu x©y dùng khèi c¬ b¶n trong m¹ch l«gic. C¸c thiÕt kÕ phøc t¹p ®îc t¹o ra b»ng c¸ch kÕt hîp c¸c
khèi c¬ b¶n ®Ó t¹o ra c¸c m¹ch ®îc m« t¶.
M« h×nh tæng qu¸t cña FPGA gåm mét d·y hai chiÒu c¸c khèi l«gic (logic block) cã thÓ ®îc kÕt nèi 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 kÕt 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 dïng ®Ó nèi c¸c khèi l«gic víi c¸c ®o¹n d©y, c¸c khèi vµo/ra hay c¸c ®o¹n d©y víi nhau. M¹ch l«gic cµi ®Æt trong FPGA b»ng c¸ch ¸nh x¹ l«gic vµo c¸c l«gic riªng rÏ vµ sau ®ã nèi c¸c khèi l«gic cÊu h×nh (Configurable logic Block) cÇn thiÕt qua c¸c chuyÓn m¹ch. C¸c khèi CLB cung cÊp c¸c phÇn tö chøc n¨ng víi cÊu tróc sö dông logic. C¸c khèi vµo/ra (I/O Block) cung cÊp giao diÖn gi÷a c¸c gãi ch©n vµ c¸c ®êng tÝn hiÖu bªn trong. Tµi nguyªn kÕt nèi kh¶ tr×nh cung cÊp c¸c bé phËn truyÒn dÉn tíi kÕt nèi ®Çu vµo vµ ®Çu ra cña c¸c CLB vµ c¸c IOB trong m¹ng riªng.
VËy cÊu tróc FPGA gåm ba phÇn tö chÝnh: C¸c khèi l«gic cÊu h×nh (CLB), c¸c khèi vµo/ra (IOB) vµ c¸c kÕt nèi.
a. C¸c khèi l«gic cÊu h×nh (Configurable logic Block)
CÊu tróc vµ néi dung cña logic block ®îc gäi theo kiÕn tróc cña nã. KiÕn tróc cña khèi l«gic cã thÓ thiÕt kÕ theo nhiÒu c¸ch kh¸c nhau, cã thÓ lµ c¸c cæng AND 2 ngâ nhËp, c¸c bé dån kªnh (Multiplexer) hay c¸c b¶ng t×m kiÕm (Lock-up Table). Ngoµi ra cã thÓ chøa c¸c Flip-Flop ®Ó hç trî cho viÖc thùc hiÖn mét c¸ch tuÇn tù.
b. C¸c nguån kÕt nèi (Routes)
C¸c nguån kÕt nèi cã cÊu tróc vµ néi dung ®îc gäi lµ kiÕn tróc ®êng
(Routing Architecture). KiÕn tróc Routing gåm c¸c ®o¹n ®©y nèi vµ c¸c chuyÓn m¹ch kh¶ tr×nh. C¸c chuyÓn m¹ch kh¶ tr×nh cã cÊu t¹o kh¸c nhau nh pass-transistor, ®îc ®iÒu khiÓn bëi c¸c cell SRAM, c¸c phÇn tö cÇu ch× nghÞch, EPROM transistor vµ EEROM transitor. Gièng nh c¸c khèi l«gic cã 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 khèi logic, mét sè kh¸c cung cÊp Ýt kÕt nèi h¬n nªn routing phøc t¹p h¬n.
1.1.2.2 Ph©n lo¹i FPGA
FPGA cã nhiÒu lo¹i kh¸c nhau cã cÊu tróc vµ ®Æc tÝnh riªng tuú theo tõng h·ng s¶n xuÊt, tuy nhiªn chóng cã bèn lo¹i chÝnh sau: cÊu tróc m¶ng ®èi xøng (Symmetrical Array), cÊu tróc PLD ph©n cÊp (hierachircal PLD), cÊu tróc hµng (Row base) vµ cÊu tróc ®a cæng (Sea of Gate) m« t¶ díi ®©y.
§a cæng
PLD ph©n cÊp
KÕt nèi
Logic
Block
Logic Block
KÕt nèi
CÊu tróc hµng
Logic Block
KÕt nèi
M¶ng ®èi xøng
KÕt nèi phñ lªn
Logic
Block
PLD
Block
Hình 1.2 Bèn loại FPGA trên thực tế
1.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 sö dông lµ: RAM tÜnh, cÇu ch× nghÞch (anti-fuse), EPROM transistor vµ EEROM transistor. MÆc dï c«ng nghÖ lËp tr×nh 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 trong mét trong hai 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 khèi l«gic cña c¸c FPGA, cßn 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ã nh÷ng tÝnh chÊt sau:
- ChiÕm cµng Ýt diÖn tÝch cña chÝp cµng tèt.
- Cã trë kh¸ng thÊp khi ë tr¹ng th¸i ON vµ trë kh¸ng 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 chÝp.
Cã thÓ tuú thuéc vµo øng dông cô thÓ vµ cã c¸c sè lîng phÇn tö lËp tr×nh cã thÓ cã c¸c ®Æc tÝnh kh¸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 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.
a. C«ng nghÖ lËp tr×nh dïng RAM tÜnh
Hình 1.3 Công nghệ lập trình RAM tĩnh .
Cæng transitor
Bé dån kªnh
Transistor truyÒn
RAM
Cell
D©y nèi
D©y nèi
§êng gäi ra
D©y nèi
MUX
RAM
Cell 2
RAM
Cell 1
D©y nèi
D©y nèi
RAM
Cell
C«ng nghÖ lËp tr×nh dïng RAM tÜnh (SRAM) sö dông c«ng nghÖ CMOS tiªu chuÈn. C¸c kÕt nèi lËp tr×nh ®îc ®iÒu khiÓn b»ng c¸c transistor kh¸c trªn chÝp hoÆc bËt (On) c¸c transistor truyÒn dÉn còng nh c¸c cæng transistor ®Ó t¹o mét kÕt nèi hay t¾t (Off) ®Ó ng¾t kÕt nèi.
Trong trêng hîp transistor truyÒn dÉn vµ cæng transistor nh h×nh trªn, phÇn tö RAM Cell ®iÒu khiÓn cæng truyÒn 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 trë kh¸ng thÊp kÕt nèi gi÷a hai d©y nèi. §èi víi bé dån kªnh, SRAM Cell ®iÒu khiÓn ngâ nhËp nµo cña bé dån kªnh sÏ ®îc nèi víi ngâ ra cña nã. C¸ch nµy thêng dïng ®Ó kÕt nèi tuú 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 khèi logic cã thÓ ®îc kÕt hîp víi nhau qua c¸ch kÕt hîp c¶ bé dån kªnh (Multiplexer) vµ cæng truyÒn dÉn (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 chÝp. §iÒu nµy cã nghÜa lµ hÖ thèng sö dông c¸c chÝp nµy ph¶i cã mét sè c¬ chÕ lu tr÷ thêng trùc cho c¸c bit cña 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 chÝp ®î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 RAM Cell còng nh c¸c transistor cÇn thªm cho cæng truyÒn dÉn hay bé dån kªnh. ¦u ®iÓm cña kü thuËt nµy lµ cho phÐp FPGA cã thÓ ®îc t¸i cÊu h×nh ngay trªn m¹ch rÊt nhanh vµ nã cã thÓ ®îc chÕ t¹o b»ng c«ng nghÖ CMOS chuÈn.
b. C¸c thiÕt bÞ lËp tr×nh cÇu ch× nghÞch (Anti-fuse)
C«ng nghÖ lËp tr×nh anti-fuse ®îc sö dông trong c¸c FPGA cña Actel-Corp, Quick Logic vµ Cross Point Solution. Tuy anti-fuse ®îc sö dông trong c¸c lo¹i FPGA nµy cã cÊu t¹o kh¸c nhau, nhng chøc n¨ng cña chóng lµ nh nhau. Mét anti-fuse b×nh thêng sÏ ë tr¹ng th¸i cao, nhng cã thÓ bÞ “nãng ch¶y” thµnh tr¹ng th¸i ®iÖn trë thÊp khi ®îc lËp tr×nh ë ®iÖn thÕ cao. Díi ®©y sÏ giíi thiÖu cÊu t¹o cña c¸c anti-fuse cña Actell vµ Quick Logic.
Anti-fuse cña Actell ®îc gäi lµ PLICE. Nã cÊu tróc h×nh ch÷ nhËt gåm 3 líp: Líp díi cïng chøa c¸c silic mang nhiÒu ®iÖn tÝch d¬ng (n+diffusion), líp gi÷a lµ mét líp ®iÖn m«i (Oxy-Nit¬-Oxy c¸ch ®iÖn), vµ líp trªn cïng lµ Poly-Silic.
n+diffusion
Poly-Si
metal 1 wire
anti-fuse
metal 2 wire
b) CÊu tróc
n+diffusion
silicon substrate
dielectric
Oxide
Poly_si
a) MÆt c¾t ngang
H×nh 1.4 C«ng nghÖ lËp tr×nh cÇu ch× nghÞch PLICE
Anti-fuse PLICE ®îc lËp tr×nh b»ng c¸ch ®Æt mét ®iÖn thÕ cao thÝch hîp (18V) gi÷a hai ®Çu cña anti-fuse vµ dßng ®iÒu khiÓn kho¶ng 5mA qua thiÕt bÞ. 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÷a c¸c ®iÖn cùc. C¸c transistor chÞu ®îc c¸c ®iÖn thÕ cao ®îc chÕ t¹o bªn trong FPGA ®Ó ®¸p øng cho dßng vµ ®iÖn ¸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 (300W ®Õn 500W) gi÷a hai d©y kim lo¹i.
Anti-fuse cña Quick-Logic ®îc gäi lµ ViaLink. Nã t¬ng tù nh PLICE còng cã ba líp kim lo¹i. Tuy nhiªn, ViaLink sö dông kim lo¹i møc 1 cho líp díi cïng, mét hîp chÊt v« dÞ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, anti-fuse cã trë kh¸ng hµng giga«m, nhng 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 trë kh¸ng kho¶ng 80W. Anti-fuse ®îc chÕ t¹o b»ng c¸ch thªm 3 mÆt n¹ ®Æc biÖt trong quy tr×nh chÕ t¹o CMOS th«ng thêng.
ViaLink anti-fuse ®î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 ®îc cÊp ®ñ, tr¹ng th¸i cña Silic v« ®Þnh h×nh sÏ thay ®æi vµ t¹o ra mét liªn kÕt ®iÖn gi÷a hai líp kim lo¹i. DiÖn tÝch c¸c chÝp sö dông kü thuËt anti-fuse rÊt nhá so víi 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 ®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 anti-fuse lµ quy tr×nh chÕ t¹o chóng ph¶i thay ®æi so víi quy tr×nh chÕ t¹o SMOS.
oxide
Silic vô định hình
metal 2
metal 1
H×nh 1.5 C«ng nghÖ lËp tr×nh cÇu ch× nghÞch ViaLink
c. C«ng nghÖ lËp tr×nh dïng EPROM vµ EEROM
điện trở nguồn
+5v
EPROM transistor
Bit line
gnd
Word line
Floating Gate
Select Gate
H×nh 1.6 C«ng nghÖ lËp tr×nh EPROM transistor
C«ng nghÖ ®îc dïng trong c¸c FPGA cña Altera Corp, vµ Plus Logic. C«ng nghÖ nµy gièng nh sö dông trong bé nhí EPROM. Kh«ng gièng CMOS transistor ®¬n gi¶n, mét EPROM transistor gåm hai cæng, mét cæng treo (floating-gate) vµ mét cæng chän (select-gate). Cæng treo ®îc ®Æt gi÷a cæng chän vµ kªnh dÉn cña transitor, cæng nµy ®îc gäi nh thÕ v× nã kh«ng cã kÕt nèi ®iÖn ®Õn bÊt kú m¹ch nµo.
ë tr¹ng th¸i b×nh thêng kh«ng ®îc lËp tr×nh, kh«ng cã ®iÖn tÝch gi÷a cæng treo (floating-gate) vµ transitor cã thÓ chuyÓn sang tr¹ng th¸i ON mét c¸ch b×nh thêng b»ng cæng chän (select-gate). Khi transistor ®îc lËp tr×nh b»ng mét dßng ®iÖn lín ch¹y gi÷a nguån vµ kªnh, mét ®iÖn tÝch ®îc gi÷ l¹i ë cæng treo. §iÖn tÝch nµy lµm transistor chuyÓn sang tr¹ng th¸i OFF. B»ng c¸ch nµy, EPROM transistor cã thÓ cã chøc n¨ng cña mét phÇn tö lËp tr×nh ®îc. Mét EPROM transistor cã thÓ ®îc t¸i lËp tr×nh b»ng c¸ch huû bá líp ®iÖn tÝch ®îc gi÷ l¹i ë cæng treo (ph¬i díi ¸nh s¸ng cùc tÝm sÏ kÝch ho¹t c¸c electron chuyÓn tõ cæng vµo chÊt nÒn cña transistor).
EPROM transistor ®îc sö dông trong FPGA theo c¸ch kh¸c víi SRAM vµ anti-fuse thay v× dïng cho lËp tr×nh kÕt nèi hai d©y, EPROM transistor ®îc sö dông ®Ó “kÐo xuèng” c¸c ngâ nhËp cña logic-block.
Nh h×nh vÏ (1.6), mét ®êng d©y gäi lµ “word line” (theo thuËt ng÷ bé nhí) ®îc nèi víi cæng chän cña EPROM transistor, khi transistor cha ®îc lËp tr×nh ë tr¹ng th¸i ON. “Word line” cã thÓ lµm cho “bit line” kh«ng ®îc nèi víi ngâ nhËp cña logic-block v× bÞ kÐo vÒ møc logic kh«ng. NhiÒu EPROM transistor øng víi nhiÒu “word line” ®îc nèi víi cïng mét “bit line”, khi mét ®iÖn kÐo lªn nguån nèi víi “bit line”, m« h×nh kh«ng nh÷ng cho EPROM transistor thùc hiÖn c¸c kÕt nèi mµ cßn thùc hiÖn c¸c chøc n¨ng logic AND nèi d©y (wired-AND). Nhîc ®iÓm cña ph¬ng ph¸p nµy lµ c¸c ®iÖn trë tiªu tèn n¨ng lîng cè ®Þnh.
Mét u ®iÓm cña EPROM transistor lµ chóng cã thÓ t¸i lËp tr×nh mµ kh«ng cÇn bé nhí bªn ngoµi. Tuy nhiªn, kh«ng gièng SRAM, EPROM transistor kh«ng thÓ ®îc t¸i lËp tr×nh ngay trªn bo m¹ch.
Ph¬ng ph¸p dïng EEPROM (®îc sö dông trong c¸c FPGA cña Advanced Micro Device-AMD) t¬ng tù nh c«ng nghÖ EPROM, ngo¹i trõ EEPROM transistor tèn gÊp ®«i diÖn tÝch chÝp so víi EPROM transistor 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.
C¸c c«ng nghÖ lËp tr×nh FPGA ®îc tãm t¾t trong b¶ng díi ®©y:
B¶ng 1.1 C¸c ®Æc tÝnh cña c«ng nghÖ lËp tr×nh
C«ng nghÖ lËp tr×nh
TÝnh bay h¬i
Cã thÓ lËp
tr×nh
DiÖn tÝch chÝp
R(Kohm)
C(pf)
Static RAM Cell
Cã
Trong m¹ch
Lín
1-2
10-20
PLICE
Anti-fuse
Kh«ng
Kh«ng
Anti-fuse nhá
Sè transistor lín
300-500
3-5
ViaLink
Anti-fuse
Kh«ng
Kh«ng
Anti-fuse nhá
Sè transistor lín
50-80
1-3
EPROM
Kh«ng
Ngoµi m¹ch
Nhá
2-4
10-20
EEPROM
Kh«ng
Trong m¹ch
2xEPROM
2-4
10-20
1.2 C¸c øng dông cña FPGA
FPGA lµ thÕ hÖ sau cña IC kh¶ tr×nh nªn chóng cã thÓ øng dông trong hÇu hÐt c¸c øng dông cña hiÖn ®ang dïng MPGA, PLD vµ c¸c m¹ch tÝch hîp lo¹i nhá (SSI).
C¸c m¹ch tÝch hîp lµ øng dông ®Æc biÖt
FPGA lµ thiÕt bÞ tæng qu¸t nhÊt ®Ó thùc hiÖn c¸c m¹ch l«gic sè. Chóng ®Æc biÖt thÝch hîp cho c¸c m¹ch tÝch hîp chuyªn dông ®Æc biÖt (ASIC) nh bé céng, bé ®iÒu khiÓn l«gic Flip-Flop...
b. 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¾t khe (c¸c PAL nhanh h¬n hÇu hÕt c¸c FPGA) th× m¹ch cã thÓ thùc hiÖn b»ng FPGA. HiÖn nay mét FPGA cÇn tõ 10 ®Õn 20 PAL.
c. Thay thÕ c¸c chÝp SSI 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 chÝp SSI. Trong nhiÒu trêng hîp cã thÓ thay thÕ b»ng FPGA ®Ó gi¶m diÖn tÝch bo m¹ch.
d. ChÕ t¹o mÉu
FPGA rÊt lý tëng cho viÖc t¹o mÉu c¸c s¶n phÈm. Gi¸ thµnh thùc hiÖn thÊp vµ thêi gian thùc hiÖn thiÕt kÕ vËt lý ng¾n, cung cÊp c¸c u ®iÓm h¬n nhiÒu so víi c¸c ph¬ng tiÖn truyÒn thèng kh¸c ®Ó chÕ t¹o mÉu phÇn cøng. C¸c mÉu ban ®Çu cã thÓ thùc hiÖn rÊt nhanh vµ nh÷ng thay ®æi sau ®ã ®îc thùc hiÖn rÊt nhanh vµ Ýt tèn kÐm.
e. M¸y tÝnh dùa trªn FPGA
Mét lo¹i m¸y tÝnh dùa trªn FPGA cã thÓ t¸i lËp tr×nh ngay trªn FPGA. C¸c m¸y 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 chÝp l©n cËn gièng nh th«ng thêng. ý tëng lµ lµ mét ch¬ng tr×nh phÇn mÒm cã thÓ ®îc “biªn dÞch” (sö dông kü thuËt tæng hîp møc cao, møc l«gic vµ møc s¬ ®å b»ng tay) vµo ngay phÇn cøng. PhÇn cøng nµy sÏ ®îc thùc hiÖn b»ng c¸ch lËp tr×nh bo m¹ch FPGA. Ph¬ng ph¸p nµy cã hai u ®iÓm chÝnh: mét lµ kh«ng cÇn qu¸ tr×nh lÊy lÖnh nh c¸c bé xö lý truyÒn thèng v× phÇn cøng ®· gép c¶ lÖnh. KÕt qu¶ lµ tèc ®é cã thÓ t¨ng lªn hµng tr¨m lÇn. Hai lµ, m«i trêng tÝnh to¸n cã thÓ thùc hiÖn song song møc cao, lµm t¨ng tèc thªm n÷a.
f. T¸i cÊu h×nh thµnh phÇn trùc tiÕp
FPGA cho phÐp cã thÓ thay ®æi theo mong muèn cÊu tróc cña mét m¸y ®ang ho¹t ®éng. Mét vÝ dô lµ c¸c thiÕt bÞ m¸y tÝnh tõ xa cã thÓ thay ®æi trùc tiÕp ®Ó kh¾c phôc sù cè hay cã lçi thiÕt kÕ. KiÓu FPGA thÝch hîp nhÊt cho øng dông nµy lµ nh÷ng FPGA cã c¸c chuyÓn m¹ch lËp tr×nh ®îc.
1.3 Giíi thiÖu c¸c lo¹i thiÕt bÞ FPGA cña h·ng XILINX
1.3.1 C¸c lo¹i thiÕt bÞ FPGA trªn thÞ trêng
Trong nghµnh c«ng nghiÖp chÕ t¹o IC ®ang ph¸t triÓn vµ ph¹m vi ngµy cµng më réng, chØ cã mét sè h·ng ®i ®Çu vµ chiÕm ®îc thÞ trêng trong viÖc cung cÊp c¸c s¶n phÈm FPGA. Trong ®ã ph¶i kÓ ®Õn ba h·ng lín lµ: Xilinx, Actel vµ Altera.
B¶ng 1.2. Tãm t¾t kiÕn tróc mét sè lo¹i FPGA trªn thÞ trêng
C«ng ty
KiÕn tróc tæng qu¸t
KiÓu khèi logic
CN lËp tr×nh
Xilinx
Symmetrical Array
Look-up Table
Static RAM
Actel
Hierachical-PLD
PLD Block
EPROM
Altera
Row-based
Multiplexers-Based
Anti-fuse
Plessey
Sea-of-gates
NAND-gate
Static RAM
Plus
Hierachical-PLD
PLD Block
EPROM
AMD
Hierachical-PLD
PLD Block
EPROM
QuyckLogic
Symmetrical Array
Multiplexers-Based
Anti-fuse
Algotronix
Sea-of-gates
Multiplexers-Based Gate
Static RAM
1.3.2 KiÕn tróc tæng qu¸t FPGA cña Xilinx
KiÕn tróc tæng qu¸t cña Xilinx ®îc m« t¶ nh h×nh vÏ. FPGA gåm mét m¶ng hai chiÒu c¸c khèi lËp tr×nh ®îc gäi lµ c¸c khèi logic CLBs (configurable Logic Block) víi c¸c kªnh Routing (Routing chanel) ngang gi÷a c¸c hµng Block vµ c¸c kªnh däc gi÷a c¸c cét Block. C¸c nguån tµi nguyªn cã thÓ lËp tr×nh ®îc ®iÒu khiÓn bëi c¸c SRAM cell. Xilinx gåm cã c¸c hä c¬ b¶n lµ: XC2000, XC3000, XC4000,...Virtex-II, Spartan, Virtex II Pro, theo thø tù t¨ng dÇn vÒ c«ng nghÖ vµ linh ho¹t lín h¬n.
Hình 1.7 Cấu trúc tổng quát FPGA của Xilinx
Logic Block
LËp tr×nh ®îc
Kªnh routing däc
Kªnh routimg ngang
I/O Block
Sau ®©y sÏ tr×nh bµy c¸c thµnh phÇn c¬ b¶n FPGA hä Virtex-II cña Xilinx.
1.3.3 FPGA Virtex-II cña Xilinx
KiÕn tróc Virtex-II ®îc tèi u ho¸ cho c¸c thiÕt kÕ mËt ®é vµ tèc ®é cao. Nh biÓu diÔn trªn h×nh vÏ, Virtex-II gåm c¸c khèi vµo/ra (IOBs) vµ c¸c khèi logic cÊu h×nh (CLBs).
C¸c khèi vµo/ra kh¶ tr×nh cung cÊp giao diÖn gi÷a c¸c ch©n cña vi m¹ch víi c¸c khèi logic bªn trong.
Virtex-II sö dông c«ng nghÖ hiÖn ®¹i nhÊt FPGA. MËt ®é tÝch hîp tõ 40k8M cæng hÖ thèng, tÇn sè xung nhÞp bªn trong lªn ®Õn 420 MHz trong truyÒn d÷ liÖu ®¹t 840Mb/s. Ph©n cÊp bé nhí RAM lùa chän (Select RAM). Chøc n¨ng sè häc gåm khèi nh©n 18 bit 18 bit chuyªn dông. Tµi nguyªn logic mÒm dÎo gåm h¬n 93 thanh ghi néi bé, 184 bé chèt, 93184 b¶ng t×m kiÕm (LUT) hay d·y thanh ghi dÞch 16 bit vµ bus néi bé 3 tr¹ng th¸i. M¹ch ®iÒu khiÓn ®ång bé xông nhÞp lªn ®Õn 12 Module ®iÒu khiÓn ®ång bé xung nhÞp sè (DCM), bé ®Öm ph©n bè xung nhÞp toµn bé thiÕt bÞ. C«ng nghÖ kÕt nèi linh ho¹t ®îc tÝch hîp VHDL vµ Verilog, cã thÓ t¹o l¹i cÊu h×nh tõng phÇn.
H×nh1.8: KiÕn tróc chung cña Virtex-II
§Æc trng cÊu t¹o c¸c thµnh phÇn trong hä Virtex-II FPGA ®îc tãm t¾t trong b¶ng sau:
B¶ng 1.3 Tãm t¾t vÒ thiÕt bÞ Virtex-II.
ThiÕt bÞ
Cæng hÖ thèng
CLB
(1CLB=4slices=max128bit)
Sè bé nh©n
Khèi SelectRAM
DCM
Ch©n vµo ra lín nhÊt
Ma trËn hµng cét
Slices
Max cña RAM ph©n bè
Khèi
18Kbit
Max RAM (Kbit)
XC2V40
40K
88
256
8
4
4
72
4
88
XC2V80
80K
168
512
16
8
8
144
4
120
XC2V250
250K
2416
1.526
48
24
24
132
8
200
XC2V500
500K
3224
3.072
96
32
32
576
8
264
XC2V1000
1M
4032
5.120
160
40
40
720
8
432
XC2V1500
1.5M
4840
7.680
240
48
48
864
8
528
XC2V2000
2M
5648
10.572
336
56
56
1.008
8
624
XC2V3000
3M
6458
14.336
448
96
96
1.728
12
720
XC2V4000
4M
8072
23.040
720
120
120
2.160
12
912
XC2V6000
6M
9688
33.792
1.056
144
144
2.592
12
1.104
XC2V8000
8M
112104
46.592
1.456
168
168
3.024
12
1.108
1.3.3.1 Khèi vµo/ra (IOBs)
Switch
Matrix
IOB
PAD4
IOB
PAD3
IOB
PAD2
IOB
PAD1
Dilferential Pair
Dilferential Pair
Hình 1.9 Khèi vµo/ra (IOB) cña Virtex-II
C¸c khèi vµo/ra cña Virtex-II ®îc thùc hiÖn trong nh÷ng nhãm hai hay bèn trªn chu vi bao quanh thiÕt bÞ. Mçi khèi vµo/ra cã thÓ ®îc sö dông nh lµ ®Çu vµo hoÆc/vµ ®Çu ra. Hai khèi cã thÓ ®îc sö dông nh mét cÆp vi sai. Mçi cÆp lu«n ®îc kÕt nèi tíi ma trËn chuyÓn m¹ch nh ®îc thÓ hiÖn trªn h×nh 1.9.
Mçi khèi IOB gåm s¸u phÇn tö nhí ®îc m« t¶ trong h×nh 1.10:
H×nh 1.10 Khèi IOB cña Virtex-II
Mçi phÇn tö nhí ®îc cÊu t¹o tõ Flip-flop DSP lËt theo sên d¬ng hay theo møc. ë ®Çu vµo, ®Çu ra vµ ®êng 3 tr¹ng th¸i cã sö dông mét hay hai thanh ghi DDR.
CLOCK
D11
O1
CLkK1
D2
O2
CLkK1
DDR MUX
FDDR
D111
O1
CLkK1
D2
O2
CLkK1
DDR MUX
FDDR
DCM
Hình 1.11 Thanh ghi DDR
Tèc ®é d÷ liÖu kÐp (DDR) ®¹t ®îc do hai thanh ghi trªn mçi nh¸nh ®îc
CLOCK
D11
O1
CLkK1
D2
O2
CLkK1
DDR MUX
FDDR
D111
O1
CLkK1
D2
O2
CLkK1
DDR MUX
FDDR
DCM
Hình 1.11 Thanh ghi DDR
®iÓm nhÞp bëi sên lªn (hay sên xuèng) cña c¸c ®ång hå kh¸c nhau. Hai tÝn hiÖu ®ång hå ®îc ph¸t ra bëi DCM vµ ph¶i ®îc ®¶o pha nh thÓ hiÖn trong h×nh 1.10. Cã hai ®Çu vµo, ®Çu ra vµ c¸c tÝn hiÖu 3 tr¹ng th¸i, mçi tÝn hiÖu ®îc lu©n phiªn ®iÓm nhÞp. Trong mét ®êng truyÒn xung nhÞp th× cã ®é gi÷ chËm ®ång nhÊt.
Mçi nhãm thanh ghi cã tÝn hiÖu cho phÐp xung nhÞp (ICE cho thanh ghi ®Çu vµo, OCE cho thanh ghi ®Çu ra vµ TCE cho thanh ghi ba tr¹ng th¸i). TÝn hiÖu cho phÐp xung nhÞp mÆc ®Þnh cã møc tÝch cùc cao. NÕu bªn tr¸i kh«ng ®îc kÕt nèi, cho phÐp xung nhÞp cho phÇn tö nhí mÆc ®Þnh ë møc tÝch cùc. Mçi khèi vµo/ra IOB cã thÓ thiÕt lËp hay reset ®ång bé hay kh«ng ®ång bé (tÝn hiÖu SR vµ REV). TÝn hiÖu SR ®a phÇn tö nhí vµo tr¹ng th¸i quy ®Þnh bëi SRHIGHT hay SRLOW. SRHIGHT ®a phÇn tö vµo logic “1”, SRLOW ®a vµo tr¹ng th¸i “0”. Khi SR ®îc sö dông, tÝn hiÖu vµo thø hai (REV) ®a phÇn tö nhí vµo tr¹ng th¸i ngîc l¹i. §iÒu kiÖn RESET u tiªn h¬n ®iÒu kiÖn thiÕt lËp. Tr¹ng th¸i ban ®Çu ®îc x¸c ®Þnh bëi c¸c thuéc tÝnh riªng INIT0, INIT1.
MÆc ®Þnh, SRLOW b¾t buéc thuéc tÝnh INIT0 vµ SRHIGHT b¾t buéc thuéc tÝnh INIT1. §èi víi mçi phÇn tö nhí, c¸c thuéc tÝnh SRHIGHT, SRLOW, INIT0, INIT1 ®éc lËp.
FF
LATCH
D1 Q1
CE
CLK1
SR REW
FF
LATCH
D2 Q2
CE
CLK2
SR REW
FF1
DDR MUX
FF2
INT1
INT0
SRHIGHT
SRLOW
1
CLK2
1
REV
SR
CLK1
CE
OQ or TQ
H×nh 1.12 CÊu h×nh cña thanh ghi/chèt trong khèi (IOB)
C¸c tuú chän vµo/ra.
§Çu vµo:
§Çu vµo cña khèi IOB cña Virtex-II lµ ®êng truyÒn tÝn hiÖu vµo trùc tiÕp hoÆc th«ng qua lùa chän ®Çu vµo Flip-Flop hay chèt, hay th«ng qua thanh ghi ®Çu vµo DDR. Lùa chän phÇn tö gi÷ chËm trªn ®Çu vµo D cña phÇn tö cÊt gi÷ ®Ó lo¹i bá thêi gian gi÷ chËm tõ ®Öm ®Õn ®Öm (pad-to-pad). Gi÷ chËm ®èi xøng bªn trong ph©n bè xung nhÞp cña thiÕt bÞ Virtex-II, vµ khi ®îc sö dông thêi gian gi÷ chËm tõ ®Öm tíi ®Öm b»ng kh«ng.
§Çu ra:
§êng ®Çu ra gåm bé ®Öm ba tr¹ng th¸i ®iÒu khiÓn ®êng ®a vµo ®Öm. §Çu ra vµ/hoÆc tÝn hiÖu ba tr¹ng th¸i cã thÓ ®îc truyÒn dÉn trùc tiÕp tõ khèi logic bªn trong hoÆc tõ Flip-Flop (chèt) ®Çu ra (hay Flip-Flop (chèt) ®Öm ba tr¹ng th¸i) th«ng qua thanh ghi ®Çu ra DDR hay thanh ghi ba tr¹ng th¸i. Mçi ®Çu ra ®îc ®iÒu khiÓn b»ng ch¬ng tr×nh lËp tr×nh riªng mét ph¹m vi ®é réng cña chuÈn ®iÖn ¸p tÝn hiÖu thÊp.
1.3.3.2 CÊu h×nh khèi logic (CLB)
CÊu h×nh khèi logic cña Virtex-II ®îc s¾p xÕp thµnh mét m¶ng vµ ®îc
Hình 1.13 Phần tử CLB của Virtex II
TBUF X0Y1
SHIFT
COUT
COUT
CIN
CIN