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

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

doc35 trang | Chia sẻ: luyenbuizn | Lượt xem: 1025 | Lượt tải: 0download
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 nh­ng 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 tr­ng 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Õ l­u 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, nh­ng 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, nh­ng 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, nh­ng khi ®­îc lËp tr×nh nã sÏ t¹o ra mét kÕt nèi gi÷a hai líp kim lo¹i 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 ch­a ®­î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 tr­ng 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

Các file đính kèm theo tài liệu này:

  • docChuong1 Tongquan ve FPGA.doc
  • docChuong2 DSP va ung dung cua DSP tren cong nghe FPGA.doc
  • docChuong3 Phuong phap so loc muc tieu di dongcho cac dai Radar.doc
  • docChuong4 Ung dung System Generator cho tao cac bo DSP xu li tin hieu Radar.doc
  • docHinh XtremeDSP.doc
  • docHinhDSP2.doc
  • docKet Luan.doc
  • docMUCLUC.doc
  • docNV_DATN.DOC
  • docPhuluc.doc