Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Giao trinh fpga

476 views

Published on

  • Be the first to comment

  • Be the first to like this

Giao trinh fpga

  1. 1. 1 Lêi giíi thiÖu Khai th¸c, nghiªn cøu c¬ b¶n c«ng nghÖ míi lµ b−íc kh«ng thÓ thiÕu trong viÖc c¶i tiÕn, n©ng cao, còng nh− chÕ t¹o míi c¸c trang thiÕt bÞ qu©n sù vµ d©n sù nh»m ®¸p øng viÖc hiÖn ®¹i ho¸ c«ng nghiÖp ho¸ cña ®Êt n−íc. Cïng víi sù ph¸t triÓn v−ît bËc cña nghµnh c«ng nghÖ th«ng tin, c¸c c«ng nghÖ míi vÒ c¸c m¹ch tÝch hîp vi ®iÖn tö, c¸c m¹ch tæ hîp logic lËp tr×nh ®−îc ra ®êi ®· lµm cho c¸c s¶n phÈm qu©n sù còng nh− d©n sù ngµy cµng hoµn thiÖn vµ −u viÖt h¬n. §Ó tiÕn mét b−íc xa h¬n trong viÖc c¶i tiÕn, chÕ t¹o khÝ tµi qu©n sù nh»m ®¸p øng chiÕn tranh ®iÖn tö hiÖn ®¹i víi tèc ®é xö lý cùc kú cao, ®ßi hái ph¶i cã c«ng nghÖ tiªn tiÕn phï hîp víi t×nh h×nh chung cña thÕ giíi. Trªn c¬ së ph¸t triÓn tõ c¸c chÝp PLA, hiÖn nay c«ng nghÖ na n« ®· ®−îc ®−a vµo ®Ó chÕ t¹o c¸c m¹ch tÝch hîp lËp tr×nh ®−îc FPGA vµ CPLD, nã ®· lµm cho m¹ch tÝch hîp logic lªn ®Õn hµng chôc triÖu cæng, tèc ®é ®ång hå lªn ®Õn 500 MHz. øng dông c«ng nghÖ míi vµo trong thiÕt kÕ chÕ t¹o c¸c thiÕt bÞ ®iÖn tö lËp tr×nh PLIC lµ mét b−íc cÇn thiÕt cho t−¬ng lai víi mét n−íc ®ang ph¸t triÓn nh− ViÖt Nam. §Ó ®¸p øng ®−îc tÝnh b¶o mËt trong qu©n sù còng nh− tÝnh ph¶n øng nhanh trong chiÕn tranh hiÖn ®¹i cïng víi nhu cÇu chuyªn dông ho¸, tèi −u ho¸ (thêi gian, kh«ng gian, gi¸ thµnh…), tÝnh chñ ®éng trong c«ng viÖc... ngµy cµng ®ßi hái kh¾t khe. ViÖc ®−a ra c«ng nghÖ míi trong lÜnh vùc chÕ t¹o m¹ch ®iÖn tö ®Ó ®¸p øng nh÷ng yªu cÇu trªn lµ hoµn toµn cÊp thiÕt mang tÝnh thùc tÕ cao.
  2. 2. 2 C«ng nghÖ FPGA (Field Programmable Gate Array) vµ CPLD (Complex Programmable Logic Device) ®· ®−îc c¸c h·ng lín tËp trung nghiªn cøu vµ chÕ t¹o, ®iÓn h×nh lµ Xilinx vµ Altera. §Ó lµm chñ c«ng nghÖ míi vµ tæ chøc thiÕt kÕ s¶n xuÊt c«ng nghÖ FPGA cña Xilinx cho phÐp chóng ta tù thiÕt kÕ nh÷ng vi m¹ch riªng, nh÷ng bé xö lý sè riªng dµnh cho øng dông cña chóng ta. §Æc biÖt trong lÜnh vùc xö lý tÝn hiÖu sè, c¸c m¹ch tÝch hîp dïng ®Ó nhËn d¹ng ©m thanh, h×nh ¶nh, c¶m biÕn ... víi tÝnh mÒm dÎo cao vµ gi¸ thµnh thÊp. MÆc dï c«ng nghÖ FPGA ®· xuÊt hiÖn tõ n¨m 1985, xong ®èi víi n−íc ta th× nã vÉn cßn rÊt míi. Do vËy t×m hiÓu, lµm chñ vÒ c«ng nghÖ FPGA lµ viÖc lµm hoµn toµn cÇn thiÕt. Nã kh«ng chØ cã ý nghÜa ®èi víi c¸c lÜnh vùc §iÖn tö - ViÔn th«ng, c«ng nghÖ th«ng tin... mµ nã cã ý nghÜa ®Æc biÖt quan träng trong lÜnh vùc an ninh quèc phßng. XuÊt ph¸t tõ thùc tÕ ®ßi hái cÊp b¸ch ®ã, bé m«n Tù ®éng vµ Kü thuËt tÝnh – Khoa Kü thuËt ®iÒu khiÓn – Häc ViÖn Kü thuËt qu©n sù ®· cho xuÊt b¶n cuèn s¸ch “ThiÕt kÕ thiÕt bÞ ®iÖn tö lËp tr×nh sö dông c«ng nghÖ FPGA vµ CPLD”, tµi liÖu nµy n»m trong lo¹t c¸c tµi liÖu ®· ®−îc bé m«n Ên hµnh, bao gåm CÊu tróc m¸y tÝnh, Cêu tróc vµ lËp tr×nh cho c¸c hÖ xö lý tÝn hiÖu sè, cÊu tróc vµ lËp tr×nh hÖ vi ®iÒu khiÓn. Tµi liÖu giíi thiÖu ph−¬ng ph¸p thiÕt kÕ CPLD, FPGA còng nh− ng«n ng÷ lËp tr×nh, tõ ®ã ®i s©u nghiªn cøu c¸c gi¶i ph¸p cã liªn quan còng nh− c¸c c«ng cô hç trî thiÕt kÕ, sau ®ã ¸p dông ®Ó thiÕt
  3. 3. 3 kÕ, tÝch hîp vµo lo¹i CPLD vµ FPGA cô thÓ . Tµi liÖu ®−îc chia thµnh 4 ch−¬ng: - Ch−¬ng 1: Giíi thiÖu tæng quan tæ chøc phÇn cøng cña ASIC. Giíi thiÖu tæng quan tæ chøc c¸c hä thiÕt bÞ còng nh− cÊu tróc cña chóng (tµi liÖu giíi thiÖu cÊu tróc ASIC cña h·ng Xilinx). - Ch−¬ng 2: Gi¶i ph¸p vµ tæ chøc phÇn mÒm ®¶m b¶o. Giíi thiÖu c¸c phÇn mÒm hç trî thiÕt kÕ, ng«n ng÷ lËp tr×nh. - Ch−¬ng 3: Ng«n ng÷ lËp tr×nh VHDL - Ch−¬ng 4: ThiÕt kÕ øng dông c¬ b¶n. Ch−¬ng nµy ®−îc thùc hiÖn víi viÖc tÝch hîp c¸c m¹ch ®iÖn tö trªn c¬ së sö dông ng«n ng÷ VHDL, ®Ó thiÕt kÕ bé ®iÒu khiÓn ®éng c¬ b−íc trªn hai hä thiÕt bÞ CPLD vµ FPGA. Cuèn s¸ch ®−îc dïng lµm gi¸o tr×nh gi¶ng d¹y bËc ®¹i häc vµ sau ®¹i häc chuyªn ngµnh ®iÖn, ®iÖn tö hoÆc lµm tµi liÖu tham kh¶o cho c¸c nghiªn cøu sinh vµ cho nh÷ng ai quan t©m ®Õn cÊu tróc vµ lËp tr×nh ASIC. Cuèn s¸ch ®−îc biªn so¹n bëi PGS. TS. NguyÔn T¨ng C−êng vµ TS. Phan Quèc Th¾ng, ThS. Ph¹m TuÊn H¶i, KS Lª Träng NghÜa, do PGS. TS. NguyÔn T¨ng C−êng chñ biªn. Nh©n dÞp nµy, tËp thÓ t¸c gi¶ xin bµy tá lêi c¸m ¬n ch©n thµnh nhÊt ®Õn nh÷ng ng−êi ®· cã nhiÒu ®ãng gãp trong qu¸ tr×nh hoµn thµnh tµi liÖu, ®Õn c¸c anh chÞ em Bé m«n Tù ®éng vµ Kü thuËt tÝnh thuéc Khoa Kü thuËt §iÒu khiÓn, Häc viÖn Kü thuËt Qu©n sù, ®Æc biÖt ph¶i kÓ ®Õn sù hç trî hiÖu qu¶ cña TS. §ç §×nh NghÜa. Do kinh nghiÖm vµ thêi gian h¹n chÕ, tµi liÖu nµy ch¾c ch¾n kh«ng thÓ tr¸nh khái nh÷ng thiÕu sãt. RÊt mong nhËn ®−îc c¸c ý kiÕn ®ãng gãp vµ x©y dùng cña b¹n ®äc gÇn xa. ý kiÕn ®ãng gãp xin
  4. 4. 4 göi vÒ ®Þa chØ: Bé m«n Tù ®éng vµ Kü thuËt tÝnh, Khoa Kü thuËt §iÒu khiÓn, Häc viÖn Kü thuËt Qu©n sù, 100 Hoµng Quèc ViÖt, Hµ néi; §iÖn tho¹i (04)7542281, email: tcuong@hn.vnn.vn. Hµ Néi, Ngµy 1 th¸ng 10 n¨m 2005 TËp thÓ t¸c gi¶
  5. 5. 5 Ch−¬ng 1 : Giíi thiÖu tæng quan tæ chøc phÇn cøng cña FPGA vμ CPLD 1.1 Giíi thiÖu c«ng nghÖ vµ gi¶i ph¸p cña Xilinx Vµo cuèi nh÷ng n¨m 70, c¸c b¶ng m¹ch ®−îc thiÕt kÕ s½n cïng víi c¸c thiÕt bÞ chuÈn logic ®−îc −a chuéng vµ thÞnh hµnh . Sau ®ã mét sè c©u hái ®−îc ®−a ra r»ng " §iÒu g× sÏ x¶y ra nÕu chóng ta ®−a cho nh÷ng ng−êi thiÕt kÕ kh¶ n¨ng thùc hiÖn kÕt nèi gi÷a c¸c thiÕt bÞ chuÈn logic kh¸c nhau trong mét thiÕt bÞ lín h¬n ? ". §iÒu nµy cho phÐp nh÷ng ng−êi thiÕt kÕ tÝch hîp ®−îc nhiÒu thiÕt bÞ chuÈn logic h¬n vµo trong mét thiÕt bÞ. §Ó cã ®−îc sù linh ho¹t trong thiÕt kÕ, Ron Cline ng−êi cña h·ng SigneticsTM ®· ®−a ra ý t−ëng bao gåm hai s¬ ®å cho phÐp ng−êi thiÕt kÕ cã thÓ lËp tr×nh ®−îc. Hai s¬ ®å nµy cung cÊp bÊt kú tæ hîp logic nµo cña c¸c cæng "AND" vµ "OR" mµ chóng cã thÓ ®−îc dïng chung víi mét sè giíi h¹n cæng "AND " th«ng qua c¸c cæng "OR". CÊu tróc nµy ®· trë nªn rÊt mÒm dÎo, nh−ng t¹i thêi ®iÓm ®ã líp ®Öm h×nh häc 10 µm ®· t¹o ra sù gi÷ chËm gi÷a ®Çu vµo vµ ®Çu ra rÊt lín, chÝnh ®iÒu nµy ®· lµm
  6. 6. 6 cho thiÕt bÞ ho¹t ®éng t−¬ng ®èi chËm. Vµ cÊu tróc nµy ®−îc gäi lµ cÊu tróc cña PLA (Programmable Logic Array). H×nh 1.1. CÊu tróc cña PLA (Programmable Logic Array) H·ng MMI (Sau ®ã bÞ mua bëi h·ng AMD TM ) ®· hîp t¸c víi h·ng SigneticsTM vµ lµ n¬i cung cÊp nguån tµi liÖu thø hai cho hÖ thèng m¶ng logic lËp tr×nh PLA (Programmable Logic Array). Nh−ng sau khi s¶n xuÊt, cÊu tróc nµy ®· bÞ thay ®æi vµ trë thµnh cÊu tróc logic m¶ng lËp tr×nh ®−îc PAL (Programmable Array Logic), bëi viÖc cè ®Þnh mét m¶ng vµ chØ cho phÐp lËp tr×nh trªn mét m¶ng cßn l¹i. CÊu tróc PAL míi nµy rÊt kh¸c víi cÊu tróc cña PLA ë chç lµ mét m¶ng lËp tr×nh ®−îc bÞ g¾n cè ®Þnh - m¶ng c¸c cæng OR . Tuy nhiªn, cÊu tróc PAL (Programmable Array Logic) nµy còng cã lîi lµ thêi gian gi÷ chËm ®−êng truyÒn tõ ®Çu vµo ®Õn ®Çu ra ng¾n h¬n vµ phÇn mÒm Ýt phøc t¹p h¬n. Tuy nhiªn chóng kh«ng mÒm dÎo b»ng cÊu tróc PLA (Programmable Logic Array) . C¸c cÊu tróc kh¸c còng ®−îc ®−a ra, ch¼ng h¹n nh− PLD (Programmable Logic Device) - thiÕt bÞ logic lËp tr×nh ®−îc. Lo¹i thiÕt bÞ nµy th−êng ®−îc gäi lµ thiÕt bÞ logic lËp tr×nh ®−îc ®¬n gi¶n SPLD ( Simple
  7. 7. 7 Programmable Logic Device) vµ tªn nµy ®−îc gäi chung cho tÊt c¶ c¸c thiÕt bÞ logic lËp tr×nh ®−îc nh− : PALs, CPLDs, FPGAs. CÊu tróc cña PAL (Programmable Array Logic) . H×nh 1.2. CÊu tróc cña PAL (Programmable Array Logic) CÊu tróc nµy cã c¸c m¾t l−íi cña c¸c ®−êng nèi theo chiÒu ngang vµ chiÒu ®øng. T¹i mçi ®iÓm giao nhau, chóng ®−îc nèi víi nhau b»ng mét cÇu tr×. Víi sù trî gióp cña c¸c c«ng cô phÇn mÒm, ng−êi thiÕt kÕ cã thÓ lùa chän mèi nèi, mèi nµo kh«ng ®−îc nèi th× cÇu tr× t¹i ®iÓm ®ã sÏ bÞ huû ®i (BÞ nung nãng vµ thæi ®øt). §iÒu nµy ®−îc thùc hiÖn bëi mét bé n¹p ch−¬ng tr×nh. Theo h×nh 1.2 c¸c ch©n ®Çu vµo ®−îc nèi vµo c¸c ®−êng theo chiÒu ®øng, c¸c ®−êng n»m ngang ®−îc nèi víi c¸c cæng AND - OR, lÇn l−ît c¸c ®−êng nµy ®−îc nèi víi c¸c Flip-Flop chuyªn dông (Ch¼ng h¹n nh− Flip-Flop lo¹i D, T, RS). C¸c PLDs (Programmable Logic Device) trong mét IC ®ãng gãi ®¬n cã sè cæng nhiÒu h¬n 50 lÇn c¸c thiÕt bÞ logic chuyªn biÖt. §iÒu nµy nã ®· thÓ hiÖn mét sù tiÕn bé râ rÖt, ®Êy lµ ch−a ®Ò cËp ®Õn mét sè thiÕt bÞ cÇn ph¶i ®−îc gi¶n l−îc ho¸ ®Ó cã ®é tin cËy cao h¬n c¸c thiÕt bÞ chuÈn logic . C«ng nghÖ PLD ®· ph¸t triÓn tõ nh÷ng ngµy cßn rÊt sím, ch¼ng
  8. 8. 8 h¹n nh− c«ng ty Xilinx, hä ®· ®−a ra s¶n phÈm CMOS víi nguån tiªu thô siªu thÊp dùa trªn c«ng nghÖ bé nhí flash. C¸c PLD flash cho phÐp kh¶ n¨ng lËp tr×nh vµ xo¸ b»ng ®iÖn cho thiÕt bÞ nhiÒu lÇn ®· trë nªn thÝch hîp h¬n so víi c¸c chÝp thÕ hÖ cò, c¸c lo¹i chip mµ víi thêi gian xo¸ ch−¬ng tr×nh h¬n 20 phót b»ng tia cùc tÝm . 1.1.1. Complex Programmable Logic Devices (CPLDs) T¹m dÞch lµ c¸c thiÕt bÞ logic cho phÐp lËp tr×nh phøc hîp, hä thiÕt bÞ nµy lµ kÕt qu¶ cña viÖc t¨ng mËt ®é cña hä SPLDs (Programmable Logic Device) lªn nhiÒu lÇn. Kh¸i niÖm nµy ®−îc hiÓu nh− sau : t¨ng mét sè khèi PLD hoÆc c¸c macrocell (xin ®−îc ®Ó nguyªn nghÜa vµ gi¶i thÝch ë phÇn cÊu tróc cña CPLD) ë trong mét thiÕt bÞ ®¬n cïng víi c¸c ®−êng nèi liÒn ®a n¨ng gi÷a chóng. C¸c ®−êng nèi cña c¸c ®¬n vÞ logic ®¬n cã thÓ ®−îc thùc thi ë trong mét khèi ®¬n ( a single block ). NhiÒu logic phøc t¹p yªu cÇu cÇn nhiÒu khèi vµ sö dông c¸c ®−êng nèi ®a n¨ng gi÷a chóng ®Ó t¹o nªn c¸c kÕt nèi phøc t¹p h¬n. H×nh 1.3. CÊu tróc cña CPLD
  9. 9. 9 C¸c CPLDs rÊt thÝch hîp trong viÖc diÔn t¶ c¸c cæng logic phøc t¹p víi tèc ®é lµm viÖc lín h¬n 200 Mhz ( t−¬ng ®−¬ng 5 ns ). Khu«n mÉu thêi gian cho CPLD rÊt dÔ tÝnh to¸n, bëi thÕ tr−íc khi b¾t ®Çu thiÕt kÕ b¹n cã thÓ tÝnh to¸n c¸c tèc ®é tõ ®Çu vµo ®Õn ®Çu ra cña m×nh dùa trªn khu«n mÉu nµy. CPLDs ®−a ra c¸ch ®¬n gi¶n nhÊt ®Ó thùc hiÖn mét thiÕt kÕ, mét thiÕt kÕ cã thÓ ®−îc m« t¶ bëi c¸c s¬ ®å nguyªn lý hoÆc nhËp vµo mét HDL ( Hardware Description Language - Ng«n ng÷ m« t¶ phÇn cøng). §¬n gi¶n khi sö dông c¸c c«ng cô ph¸t triÓn ®Ó tèi −u ho¸, n¹p vµ m« pháng thiÕt kÕ. C¸c c«ng cô thiÕt kÕ sÏ t¹o ra mét file mµ file nµy (chÝnh lµ mét file ch−¬ng tr×nh) ®−îc dïng ®Ó ®−a thªm c¸c chuÈn logic vµo trong mét chip CPLD cïng víi chøc n¨ng mong muèn. ChÝnh v× vËy nã cung cÊp mét chuÈn phÇn cøng mµ cho phÐp c¸c qu¸ tr×nh xö lý, gì rèi cã thÓ thùc hiÖn ngay tõ khi b¾t ®Çu c«ng viÖc thiÕt kÕ. Gi¶ sö nÕu b¹n cÇn cã mét mét sù thay ®æi vÒ thiÕt kÕ, b¹n cã thÓ ®−a sù thay ®æi thiÕt kÕ ®ã vµo trong c«ng cô ph¸t triÓn CPLD vµ thùc thi trªn nã, sau ®ã b¹n cã thÓ kiÓm tra ®−îc tøc th× ngay sau ®ã b»ng mét phÇn mÒm m« pháng. CPLD cã møc tÝch hîp rÊt cao (cã nghÜa lµ mét sè l−îng lín c¸c cæng trªn mét diÖn tÝch) vµ ®−îc ®ãng gãi trong mét khu«n d¹ng rÊt nhá. §iÒu nµy ®· ®−a ra mét gi¶i ph¸p tuyÖt vêi cho nh÷ng ng−êi thiÕt kÕ cÇn s¶n phÈm cña m×nh ®−îc ®ãng gãi nhá gän víi diÖn tÝch bo m¹ch bÞ giíi h¹n vÒ kh«ng gian. Hä Xilinx CoolRunner CPLDs lu«n cã mÆt trong c¸c ®ãng gãi cïng víi c¸c chip ®êi míi. Ch¼ng h¹n nh− chip CP56 CPLD cã kho¶ng c¸ch c¸c ch©n lµ 0,5 mm vµ víi kÝch th−íc bao nhá kh«ng ®¸ng kÓ
  10. 10. 10 6x6mm vµ ®iÒu nµy cho phÐp ®−a ra mét s¶n phÈm nhá gän cïng víi møc ®é tiªu thô nguån thÊp . 1.1.2. Field Programmable Gate Arrays ( FPGAs) M¶ng cæng cho phÐp lËp tr×nh ®−îc. N¨m 1985, c«ng ty Xilinx ®· ®−a ra mét ý t−ëng míi : §ã lµ sù kÕt hîp gi÷a nh÷ng ®iÒu khiÓn ng−êi dïng, thêi gian ®−a s¶n phÈm PLD (Programmable Logic Device) ra thÞ tr−êng cïng víi mËt ®é tÝch hîp, gi¸ cña c¸c ma trËn cæng. §iÒu nµy ®· cho ra ®êi thiÕt bÞ FPGA vµ cho ®Õn nay Xilinx vÉn lµ nhµ ph©n phèi sè 1 trªn toµn thÕ giíi vÒ hä thiÕt bÞ nµy. Mét FPGA cã cÊu tróc cña c¸c Logic Cell hoÆc c¸c Module vµ c¸c ®−êng nèi (Xem h×nh 1.4), c¸c ®−êng nèi nµy n»m d−íi sù ®iÒu khiÓn cña ng−êi thiÕt kÕ. Cã nghÜa lµ b¹n cã thÓ thiÕt kÕ, lËp tr×nh vµ thay ®æi m¹ch cña b¹n bÊt cø khi nµo b¹n muèn . Víi hä FPGA ngµy nay kh¶ n¨ng tÝch hîp cña nã ®· v−ît qua giíi h¹n 10 triÖu cæng ( Hä Xilinx VirtexTM - II vµ VirtexTM - 4 FPGA hiÖn ®ang gi÷ kû lôc).Víi sù giíi thiÖu cña hä s¶n phÈm Spartan FPGA hiÖn nay, Xilinx cã thÓ c¹nh tranh vÒ ma trËn cæng ë mäi khÝa c¹nh nh− gi¸ c¶, sè l−îng cæng, sè l−îng vµo ra còng nh− hiÖu qu¶ vÒ gi¸ thµnh. Gi¶ sö lÊy Spartan - IIE FPGA víi sè l−îng 300.000 cæng lµm chuÈn cña gi¸ thµnh, nã cã thÓ cho phÐp thay thÕ c¸c s¶n phÈm øng dông theo chuÈn chuyªn dông. Cã hai lo¹i FPGA c¬ b¶n : Lo¹i SRAM (Static Random Access Memory) cã thÓ lËp tr×nh l¹i nhiÒu lÇn vµ lo¹i OTP (One - Time Programmable) lËp tr×nh mét lÇn.
  11. 11. 11 H×nh 1.4. CÊu tróc cña FPGA Hai lo¹i nµy kh¸c nhau ë chç thùc hiÖn cña c¸c logic cell vµ kü thuËt t¹o sù kÕt nèi gi÷a chóng trong thiÕt bÞ. Lo¹i hay ®−îc dïng h¬n c¶ lµ lo¹i SRAM, v× nã cã thÓ lËp tr×nh ®−îc nhiÒu lÇn. Thùc tÕ th× SRAM FPGA ®−îc n¹p cÊu h×nh l¹i mçi khi bËt nguån, bëi v× FPGA lo¹i nµy thùc chÊt lµ mét chÝp nhí theo ý muèn. Cã mét c©u hái ®Æt ra lµ " T¹i sao l¹i cÇn mét chip PROM nèi tiÕp hoÆc bé nhí hÖ thèng? " cïng víi mçi SRAM FPGA . Xem cÊu tróc cña hai lo¹i víi h×nh vÏ 1.5 vµ 1.6:
  12. 12. 12 H×nh 1.5. CÊu tróc SRAM FPGA ( SRAM Logic Cell) - Lo¹i SRAM cã thÓ lËp tr×nh l¹i : + SRAM x¸c ®Þnh c¸c ®−êng kÕt nèi. + SRAM x¸c ®Þnh ®¬n vÞ logic trong b¶ng LUT ( Look Up Table ) ( Mçi mét LUT lµ mét bé t¹o chøc n¨ng hay bé t¹o hµm víi N ®Çu vµo vµ mét ®Çu ra, cã thÓ thùc hiÖn bÊt cø chøc n¨ng logic nµo víi N ®Çu vµo cña nã. N th−êng n»m gi÷a 2 vµ 6, th«ng th−êng c¸c LUT cã 4 ®Çu vµo ). H×nh 1.6 . CÊu tróc cña OTP FPGA (OTP Logic Cell) - Lo¹i OTP cho phÐp lËp tr×nh mét lÇn : + C¸c ®−êng nèi kh«ng ®−îc phÐp nèi nh− d¹ng cÇu ch× ( Nèi cè ®Þnh ). + Logic lµ c¸c cæng truyÒn thèng . Trong SRAM Logic Cell, thay v× c¸c cæng th«ng th−êng, mét LUT ( bé t¹o hµm ) sÏ x¸c ®Þnh c¸c ®Çu ra dùa vµo gi¸ trÞ cu¶ c¸c ®Çu vµo. Nh− h×nh 1.5 ta thÊy s¸u tæ hîp kh¸c nhau cña bèn bÝt vµo
  13. 13. 13 x¸c ®Þnh c¸c gi¸ trÞ cña ®Çu ra, c¸c bit nµy còng ®−îc dïng ®Ó thùc thi c¸c kÕt nèi. Trong OTP FPGAs sö dông kÕt nèi gi÷a c¸c ®−êng theo d¹ng nèi ng−îc ( Cã nghÜa ng−îc víi cÇu tr×, sù kÕt nèi ®−îc t¹o ra vµ kh«ng bÞ nãng ch¶y trong suèt thêi gian n¹p ch−¬ng tr×nh), nh»m t¹o ra c¸c kÕt nèi cè ®Þnh trong chip. H¬n n÷a, OTP FPGA kh«ng cÇn SPROM nµo kh¸c, ®iÒu ®ã cã nghÜa lµ n¹p cÊu h×nh vµo th¼ng FPGA. Tuy nhiªn mçi lÇn thay ®æi mét thiÕt kÕ b¹n ph¶i vøt bá ®i mét chip. Lo¹i OTP Logic Cell cã cÊu tróc t−¬ng tù nh− hä PLD (Programmable Logic Device), bao gåm c¸c cæng vµ flip - flop chuyªn dông nh− Flip-Flop lo¹i D , T , hay RS . 1.2. Giíi thiÖu c¸c hä thiÕt bÞ 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×nh2.1). §ã lµ läai thiÕt bÞ CoolRunner - XPLA3 CPLD, vµ Spartan 3 FPGA.
  14. 14. 14 H×nh1.7. S¬ l−îc c¸c hä thiÕt bÞ cña Xilinx 1.2.1. Hä Platform FPGAs H×nh 1.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µ ®−a 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. Hä Virtex FPGAs : S¶n phÈm Virtex-II lµ hiÖn th©n ®Çu tiªn cña Platform FPGA. Nã ®· t¹o ra mét ®iÓm dÊu míi trong sù thùc thi, céng thªm hµng lo¹t c¸c tÝnh n¨ng míi cña thiÕt bÞ mµ tõ tr−íc ch−a cã. §©y lµ thêi kú mµ Xilinx më réng tÇm chiÕn l−îc cña m×nh b»ng viÖc kÕt hîp víi c¸c h·ng IBM, Wind River, Conexant,
  15. 15. 15 RocketChipsTM , The MathWorks, vµ c¸c nhµ ®øng ®Çu c«ng nghÖ kh¸c trªn thÕ giíi. 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. - XtremeDSPTM 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 ®ßi hái sù thùc hiÖn cao vµ mÒm dÎo. 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,
  16. 16. 16 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). ë tµi liÖu nµ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 . * 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.
  17. 17. 17 * 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 lÎ. * Cung cÊp cho c¸c øng dông gåm: bé ®Öm d÷ liÖu, FIFO, vµ c¸c bé ®Öm kh¸c. +/ Giao tiÕp bé nhí * Cho phÐp giao tiÕp ®iÖn víi c¸c chuÈn nh− HSTL, SSTL, cho phÐp thùc hiÖn kÕt nèi víi bé nhí th«ng th−êng. +/ C¸c bé nh©n * Cho phÐp c¸c phÐp tÝnh to¸n häc vµ sè häc ®¬n gi¶n còng nh− c¸c chøc n¨ng n©ng cao cña DSP. * Cung cÊp 104 bé nh©n 18x18 víi c¸c phÐp nh©n18 bit dÊu hoÆc 17 bit kh«ng dÊu, cho phÐp nèi tÇng ®Ó t¨ng ®é réng sè bit. * C¸c bé nh©n hÖ sè h»ng : Bé nhí on - Chip vµ c¸c Logic Cell lµm viÖc chÆt chÏ víi nhau ®Ó x©y dùng c¸c bé nh©n víi c¸c to¸n h¹ng lµ h»ng sè. * Bé nh©n Logic cell : Thùc hiÖn thuËt to¸n th«ng th−êng ch¼ng h¹n
  18. 18. 18 nh− Baugh Wooly, Booth, c©y Wallance ... * C¸c bé DCM (Digital Clock Manager - Bé qu¶n lý ®ång hå sè) thùc hiÖn viÖc qu¶n lý ®ång hå sè phøc t¹p mµ kh«ng bÞ ¶nh h−ëng cña c¸c t¸c nh©n kÝch thÝch mang tÝnh hÖ thèng nh−, nhiÖt ®é, sù biÕn thiªn ®iÖn ¸p, vµ c¸c vÊn ®Ò kh¸c mµ vÝ dô ®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. * Bé t¹o tÇn sè mÒm dÎo tõ 25 MHz ®Õn 325 MHz. * §iÒu khiÓn dÞch pha c¸c gãc 1/4. *T¹o c¸c chu kú chÝnh x¸c 50/50. * Bï nhiÖt. +/ 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 bÞ biÕn ®æi. * C¸c ®Çu cuèi I/O bÞ lo¹i trõ sù thay ®æi theo qu¸ tr×nh nh− nhiÖt ®é, dao ®éng cña ®iÖn ¸p . B¶ng 1.1. Tæng quan hä Spartan-3 FPGA
  19. 19. 19 C¸c ®Æc tÝnh vµ c«ng dông cña chóng ®−îc nªu trong b¶ng 1.2 : B¶ng 1.2. C¸c ®Æc tÝnh chÝnh cña Spartan-3 C¸c ®Æc tÝnh cña Spartan -3 C«ng dông KÕt cÊu vµ ®Þnh tuyÕn FPGA lªn tíi 5.000.000 cæng hÖ thèng. - Cho phÐp thùc hiÖn c¸c khèi chøc n¨ng møc hÖ thèng, kÕt nèi on - chip cao, ®−a vµo c¸c cÊu h×nh hÖ thèng cao . Khèi RAM - cã c¸c Block 18K - Cho phÐp thùc hiÖn c¸c bé ®Öm lín, c¸c FIFO, c¸c bé ®Öm kÕt nèi. ChÕ ®é 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
  20. 20. 20 ø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 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, 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
  21. 21. 21 thiÕt bÞ. §iÒu khiÓn ®Çu ra cho phÐp lËp tr×nh . - N©ng cao tÝnh toµn vÑn cña thiÕt bÞ 1.2.2. Hä Xilinx CPLDs HiÖn nay Xilinx ®−a ra c¸c s¶n phÈm CPLD ë hai lo¹i thiÕt bÞ : XC9500 vµ CoolRunner. §Ó chän CPLD phï hîp, b¹n cÇn xem qua c¸c ®Æc tÝnh cu¶ nã ®Ó nhËn d¹ng hä s¶n phÈm mµ nã phï hîp víi øng dông cña b¹n. - Víi hä XC9500 : lµ hä c¸c thiÕt bÞ cho phÐp lËp tr×nh phøc t¹p víi sù thùc thi cao, c¸c ®Æc tÝnh míi, linh ho¹t. Hä thiÕt bÞ nµy ®−a ra tèc ®é dÉn ®Çu trong nÒn c«ng nghiÖp, nã cung cÊp sù linh ho¹t trong cÊu tróc kho¸ ch©n víi ng−êi dïng. Hä s¶n phÈm nµy ®−îc dïng cho c¸c thiÕt kÕ cÇn tèc ®é cao, gi¸ thµnh thÊp. - Hä CoolRunner : Hä thiÕt bÞ tiªu thô nguån cùc kú thÊp, t¹o ra sù dÉn ®Çu trong thÞ tr−êng c¸c thiÕt bÞ x¸ch tay. Ho¹t ®éng trong chÕ ®é chê ë møc Micro ampe, tiªu thô nguån nhá nhÊt khi lµm viÖc, v× vËy nã phï hîp víi c¸c øng dông mµ cÇn quan t©m nguån,
  22. 22. 22 ch¼ng h¹n nh− nguån ¾c qui, c¸c øng dông x¸ch tay. §Ó quyÕt ®Þnh chän läai thiÕt bÞ nµo phï hîp víi tiªu chuÈn thiÕt kÕ, cÇn ph¶i xem thªm c¸c th«ng tin chi tiÕt vÒ lo¹i thiÕt bÞ mµ b¹n cÇn, ch¼ng h¹n nh− : MËt ®é cæng, sè thanh ghi, sè ch©n vµo ra, tèc ®é yªu cÇu, ®ãng gãi ch©n, tiªu thô nguån, chøc n¨ng møc hÖ thèng... Hä XC9500 ISP ( Hä nµy cho phÐp lËp tr×nh møc hÖ thèng ) Hä XC9500 víi sù thùc thi cao, gi¸ thµnh thÊp lµ môc tiªu cho c¸c øng dông cã nhu cÇu ph¸t triÓn, n©ng cÊp thiÕt kÕ. Hä XC9500 cã d¶i mËt ®é tõ 36 ®Õn 288 Macrocell (Xin gi¶i thÝch ë phÇn cÊu tróc CPLD vµ FPGA môc 1.3 ch−¬ng I), lµm viÖc ë ®iÖn ¸p 2.5 Volt (XC9500 XV), 3.3 Volt (XC9500 XL), 5 Volt (XC9500 ). C¸c thiÕt bÞ nµy cho phÐp lËp tr×nh ë møc hÖ thèng ISP, ®iÒu nµy cho phÐp sö dông l¹i c¸c thiÕt kÕ trong suèt thêi gian thö mÉu, gì rèi hÖ thèng, n©ng cÊp, test tr−íc khi xuÊt x−ëng. Dùa vµo c¸c kü thuËt xö lý tiªn tiÕn, hä XC9500 ®−a ra sù b¶o hµnh nhanh (ChØ cÇn file ch−¬ng tr×nh ®−îc ®ãng gãi vµ n¹p l¹i), cho phÐp kho¸ ch©n ng−êi dïng, giao tiÕp ®−îc víi chuÈn JTAG. TÊt c¶ c¸c hä XC9500 cã ®Æc tÝnh tin cËy tuyÖt vêi víi 10.000 lÇn n¹p xo¸ vµ l−u tr÷ d÷ liÖu trong vßng 20 n¨m. - Hä XC9500 5 V : Lµ mét trong sè 6 thiÕt bÞ d¶i tõ 36 ®Õn 288 Macrocell víi c¸c kiÓu ®ãng gãi ch©n ®a d¹ng. C¸c ch©n vµo ra cho phÐp giao tiÕp trùc tiÕp víi hÖ thèng 3V vµ 5 V (VccIO - ch©n giao tiÕp ng−êi dïng), víi c¸c phiªn b¶n míi nã trë nªn rÊt dÔ sö dông víi c¸c ®ãng gãi theo kiÓu CSP (Chip Scale Package), BGA (Ball Grid Array) vµ cho phÐp truy cËp ®Õn 192 tÝn hiÖu.
  23. 23. 23 * CÊu tróc kho¸ ch©n linh ho¹t : Cïng víi phÇn mÒm fitter ®· ®−a ra kh¶ n¨ng ®Þnh tuyÕn lín nhÊt, mÒm dÎo trong thùc thi. Víi cÊu tróc cã giÇu ®Æc tÝnh, cho phÐp ®−a ra nhiÒu tÝch sè nh©n riªng biÖt, cã ba bé ®ång hå toµn côc, cã nhiÒu tÝch sè nh©n trªn ®Çu ra h¬n c¸c lo¹i CPLD kh¸c. C¸c tÝnh n¨ng vÒ cÊu tróc cña lo¹i nµy rÊt thÝch nghi víi viÖc söa ®æi thiÕt kÕ trong qu¸ tr×nh thiÕt kÕ. * Trî gióp gì rèi vµ ph¸t triÓn giao tiÕp víi JTAG IEEE 1149.1: Giao tiÕp JTAG cña hä XC9500 th«ng minh h¬n bÊt cø hä CPLD nµo cã mÆt trªn thÞ tr−êng. Nã cã c¸c ®Æc tÝnh chuÈn hç trî kü thuËt hái vßng, lÊy mÉu, kiÓm tra më réng. H¬n n÷a nã gåm cã c¸c chØ dÉn quÐt biªn mµ c¸c lo¹i CPLD kh¸c kh«ng cã, nã bao gåm INTEST (dïng cho kiÓm tra chøc n¨ng cña thiÕt bÞ ), HIGHZ ( dïng cho kü thuËt hái vßng ). Hä XC9500 5V nµy ®−a ra nhiÒu chuÈn c«ng nghiÖp ph¸t triÓn ë thÕ hÖ thø ba, c¸c c«ng cô gì rèi nh− Corelis , JTAG, Assert Intertech. C¸c c«ng cô nµy cho phÐp b¹n ph¸t triÓn c¸c vÐc t¬ test vïng biªn ®Ó ph©n tÝch sù ¶nh h−ëng lÉn nhau, test, gì rèi lçi hÖ thèng. B¶ng 1.3. Tæng quan hä XC9500 5V
  24. 24. 24 - Hä XC9500XL 3.3 V: Hä XC9500 XL ®−îc óng dông trong c¸c hÖ thèng mòi nhän cÇn sù ph¸t triÓn tiÕp theo vµ kh¶ n¨ng n©ng cÊp thiÕt kÕ. Hä nµy ®−a ra sù thùc thi ch−a tõng cã víi ®é tin cËy lËp tr×nh cao nhÊt, gi¸ thµnh thÊp nhÊt. Hä XC9500 XL bæ sung mËt ®é cao h¬n Xilinx FPGA ®Ó ®−a ra gi¶i ph¸p logic tæng thÓ trong m«i tr−êng ph¸t triÓn tÝch hîp . C¸c ®Æc tÝnh chÝnh cña hä nµy nh− sau : * §iÓm m¹nh chÝnh : +/ Gi¸ thµnh thÊp nhÊt trªn mçi Macrocell. +/ CÊu tróc kho¸ ch©n tiªn tiÕn nhÊt hiÖn cã . +/ Kh¶ n¨ng lËp tr×nh cao nhÊt, gi¶m sù rñi ro hÖ thèng +/ Bæ sung cho hä Xilinx 3.3 V FPGA. * Sù thùc thi : +/ Tèc ®é truyÒn tÝn hiÖu gi÷a ch©n tíi ch©n 5ns . +/ TÇn sè hÖ thèng 222 MHz . * TÝnh n¨ng cÊu tróc m¹nh:
  25. 25. 25 +/ Cã c¸c khèi chøc n¨ng lªn tíi 54 ®Çu vµo . +/ Cã tíi 90 tÝch sè nh©n trªn mçi Macrocell. +/ Cho phÐp ®Þnh tuyÕn nhanh th«ng qua ma trËn chuyÓn m¹ch CONNECTTM II. +/ Cã ba bé ®ång hå toµn côc vµ cho phÐp chuyÓn ®æi vÞ trÝ gi÷a chóng. +/ Cã ®−êng OE (Output Enable) trªn mçi ®Çu ra riªng biÖt, cho phÐp chuyÓn ®æi vÞ trÝ . * §é tin cËy cao nhÊt +/ Kh¶ n¨ng chÞu ®−îc 10.000 chu kú n¹p xo¸ +/ L−u d÷ liÖu ®−îc 20 n¨m +/ Cho phÐp bá qua chÕ ®é lçi më kho¸ ISP . B¶ng 1.4. C¸c hä XC9500 XV vµ XC9500 XL:
  26. 26. 26 Hä CoolRunner Low - Power CPLD: Cã hai thµnh viªn chÝnh trong hä CoolRunner lµ CoolRunner XPLA3(3.3v) vµ CoolRunner II (1.8V). ë tµi liÖu nµy giíi thiÖu CoolRunner XPLA (3.3 v). Hä CoolRunner CPLD lµ sù kÕt hîp cña sù tiªu thô nguån thÊp vµ tèc ®é cao, mËt ®é cao, sè ®−êng vµo ra cao trong mét chip ®¬n. Hä CoolRunner 3.3v cã mËt ®é tõ 32 ®Õn 512 Macrocell. CoolRunner CPLD cã nÐt ®Æc biÖt cña kü thuËt nguån kh«ng, cho phÐp thiÕt bÞ kh«ng tiªu thô nguån ë chÕ ®é Standby. §Æc tÝnh nµy rÊt phï hîp víi c¸c thiÕt bÞ ®iÖn tö x¸ch tay, nh− Laptop PCs, ®iÖn tho¹i di ®éng, c¸c thiÕt bÞ c¸ nh©n sè ... Hä CPLD nµy sö dông nguån ®éng Ýt h¬n nhiÒu khi ho¹t ®éng so víi CPLD truyÒn thèng. Mét ®iÒu quan träng h¬n c¶ lµ chóng dïng cho øng dông cÇn sù thùc thi víi tèc ®é cao, nhËy c¶m vÒ nhiÖt, ch¼ng h¹n nh− chuyÓn m¹ch cña tæng ®µi, hÖ thèng m« pháng ....
  27. 27. 27 Mçi thµnh viªn cña hä CoolRunner XPLA3 cã chøa kü thuËt thiÕt kÕ nguån kh«ng mµ nã lµ sù kÕt hîp nguån n¨ng l−îng thÊp vµ tèc ®é cao. Víi kü thuËt thiÕt kÕ nµy hä CoolRunner XPLA3 ®−a ra tèc ®é truyÒn tõ ch©n tíi ch©n lµ 5ns. Khi ®−îc cÊp nguån víi dßng nhá h¬n 100 µA (ë chÕ ®é standby) kh«ng cÇn bit "Powerdown" v× bit nµy cã thÓ ¶nh h−ëng xÊu ®Õn sù thùc hiÖn cña thiÕt bÞ. B»ng viÖc thay thÕ c¸c ph−¬ng ph¸p khuyÕch ®¹i truyÒn thèng, ph−¬ng ph¸p c¸c tÝch sè nh©n víi mét lo¹t sù nèi tÇng cña c¸c cæng CMOS thuÇn tuý. Nguån ®éng còng ®−îc thay thÕ b»ng nguån thÊp h¬n bÊt kú lo¹i CPLD nµo kh¸c. Hä CoolRunner hoµn toµn lµ lo¹i PLD CMOS, v× vËy chóng sö dông kü thuËt xö lý CMOS vµ kü thuËt thiÕt kÕ nguån kh«ng CMOS . B¶ng 1.5. C¸c ®Æc tÝnh cña hä CoolRunner: §Æc tÝnh C«ng dông CÊu tróc hoµn toµn CMOS cïng víi kü thuËt thiÕt kÕ nguån kh«ng FZP - Dßng tiªu thô tæng vµ dßng ë chÕ ®é STANBY thÊp nhÊt trong sè hä CPLD, v× vËy tuæi thä cña ¾c qui sÏ cao h¬n, ®é tin cËy t¨ng, to¶ nhiÖt Ýt h¬n. Cã thÓ chän thiÕt bÞ cã chøa 32 ®Õn 512 Macrocell. - Phï hîp víi nhiÒu thiÕt kÕ vµ c¸c øng dông, cã thÓ chuyÓn mËt ®é lªn hoÆc xuèng tuú thuéc vµo ph¸t triÓn thiÕt kÕ lªn hay rót bít.
  28. 28. 28 ChuÈn vµo ra thay ®æi ( Cã thÓ dao déng tõ 3.3 ®Õn 5V). - §¬n gi¶n trong thiÕt kÕ, cã nhiÒu møc ®iÖn ¸p vµ dÔ chuyÓn ®æi møc. HÖ thèng Bus vµo ra thuËn tiÖn. - Cã ®iÖn trë treo ë ®Çu cuèi . Sù chän lùa clock ®a n¨ng. - MÒm dÎo trong thiÕt kÕ . Cã c¸c thanh ghi ®Çu vµo t¸c ®éng nhanh - Giao tiÕp trùc tiÕp víi bus tèc ®é cao ®−îc. VFM (Variable Function Mux) bé chän kªnh chøc n¨ng cho phÐp thay ®æi. - Qu¸ tr×nh tèi −u ho¸ m¹nh h¬n vµ dÔ ®iÒu chØnh thiÕt kÕ, chi phÝ thÊp h¬n khi dïng vµo c¸c øng dông nhá. §ãng gãi nhá gän víi c¸c kho¶ng c¸ch ch©n lµ 0,8 mm vµ 0,5 mm. - C¸c ch©n nhá nhÊt, tiÕt kiÖm kho¶ng m¹ch in, phï hîp víi c¸c thiÕt bÞ cÇm tay. D¶i nhiÖt ®é chuÈn theo c«ng nghiÖp vµ th−¬ng m¹i . - Cã thÓ sö dông trong c¸c øng dông ë c¸c lÜnh vùc kh¸c nhau, nh− y häc... B¶ng 1.6. Tæng quan hä CoolRunner :
  29. 29. 29 Gi¶i thÝch ký hiÖu CoolRunner CPLD: 1.2.3. Hä Xilinx øng dông trong hµng kh«ng vµ vò trô Xilinx lµ nhµ cung cÊp hµng ®Çu c¸c hä PLD víi ®é tin cËy cao cho thÞ tr−êng hµng kh«ng vò trô vµ qu©n sù . C¸c thiÕt bÞ nµy, chóng ®−îc sö dông réng r·i trong c¸c øng dông nh− chiÕn tranh
  30. 30. 30 ®iÖn tö, tªn löa dÉn ®−êng, tªn löa hµnh tr×nh, Radar, truyÒn th«ng siªu ©m, xö lý tÝn hiÖu, khoa häc ®iÖn tö hµng kh«ng vµ vÖ tinh. Hä QproTM víi c¸c s¶n phÈm QML gèm, plastic ®−a ra c¸c gi¶i ph¸p lËp tr×nh logic n©ng cao cho c¸c thiÕt kÕ thÕ hÖ tiÕp theo. Hä QproTM còng cã c¸c s¶n phÈm chän, chÞu nhiÖt ®Ó sö dông trong vÖ tinh vµ c¸c øng dông kh«ng gian kh¸c. Ch¼ng h¹n nh− hä XQ4000E/EX thuéc hä FPGA, QPro - XC1700D - PROM , XQ17V6 - PROM, XQ18V04 - Flash PROM ®−îc sö dông trong lÜnh vùc qu©n sù . §Þa chØ tham kh¶o : ( http://www.dscc.dla.mis/v/va/smd/smdsrch.html ). 1.3. CÊu tróc cña FPGA vµ CPLD Xilinx Víi mçi hä kh¸c nhau cÊu tróc cu¶ chóng kh¸c nhau, tuy nhiªn chóng vÉn cã nh÷ng ®iÓm chung, ë tµi liÖu nµy xin giíi thiÖu mét hä cô thÓ. Víi hä cña FPGA t¸c gi¶ xin giíi thiÖu cÊu tróc cña Spartan- IIE FPGA, víi hä CPLD xin gíi thiÖu hä CoolRunner XPLA3. 1.3.1. 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
  31. 31. 31 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 - Khèi logic cho phÐp ®Þnh cÊu h×nh) cã chøa RAM ®−îc ph©n phèi ®Ó thùc hiÖn c¸c chøc n¨ng logic c¬ b¶n. - Bèn DLL ( Delay Locked Loop ) vßng kho¸ ®é gi÷ chËm ®−îc sö dông cho bé qu¶n lý ®ång hå vµ cã thÓ thùc hiÖn clock ®èi xøng lÖch vµ c¸c phÐp nh©n clock, chia clock. Clock ®èi xøng lÖch cã thÓ ®−îc thùc hiÖn bªn ngoµi (Møc board) hoÆc ë bªn trong chip ( Møc c¬ b¶n ). - C¸c khèi Block RAM gåm 4Kb cho mçi khèi cã thÓ ®−îc s¾p xÕp ®é réng tõ 1 ®Õn 16 bit. - §Æc tÝnh Select I/O cho phÐp giao tiÕp víi nhiÒu chuÈn kh¸c nhau ®Ó thùc thi trong c¸c vïng kÕt nèi víi c¸c chip cã chuÈn IO kh¸c nhau, kÕt nèi chip víi bé nhí, kÕt nèi chip víi c¸c giao tiÕp Èn.
  32. 32. 32 H×nh 1.8. 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.
  33. 33. 33 H×nh 1.9. S¬ ®å khèi cña Spartan -IIE H×nh 1.10. 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,
  34. 34. 34 LVCMOS, HSTL, SSTL vµ GTL . - 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 1.10. - Mçi mét IOB cã mét ®−êng CLK ®−îc ®−a tíi ba thanh ghi theo mét ®−êng dïng chung vµ c¸c ®−êng CE cho mçi thanh ghi hoµn toµn ®éc lËp xem H×nh 1.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 (h×nh 1.11). 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.
  35. 35. 35 H×nh 1.11. 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 ®−î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:
  36. 36. 36 - 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 ( LC - Xem h×nh 1.5 vµ h×nh 1.6 môc 1.1 ch−¬ng I ). 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 1.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é. - H¬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:
  37. 37. 37 H×nh 1.12 .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) (h×nh 1.12), 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ö
  38. 38. 38 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 1.13. H×nh 1.13. 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í
  39. 39. 39 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 toµ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. H¬n n÷a ®é gi÷ chËm ®−îc hiÓu lµ s−ên cña clock ®−a tíi Flip-Flop bªn trong, víi ®é chÝnh x¸c trong mét chu kú ®ång hå sau khi chóng ®−îc ®−a ®Õn ®Çu vµo. Chu tr×nh kÝn nµy lo¹i trõ ¶nh h−ëng ®é gi÷ chËm do ph©n phèi clock b»ng viÖc ®¶m b¶o c¸c s−ên cña clock ®−a ®Õn c¸c flip-flop bªn trong ®ång bé víi c¸c s−ên clock ®Õn t¹i c¸c ch©n vµo. §Ó lo¹i trõ sù gi÷ chËm do ph©n chia clock, DLL ®−a ra tÝn hiÖu ®iÒu khiÓn hiÖu chØnh c¸c kho¶ng clock kh¸c nhau. DLL cung cÊp c¸c pha vu«ng 900 cña clock nguån mµ cã thÓ nh©n ®«i, hoÆc chia bëi c¸c hÖ sè 1.5 , 2, 2.5 , 3, 4 , 5 , 8 hoÆc 16 ( Xem h×nh d−íi ).
  40. 40. 40 H×nh 1.14. Vßng gi÷ chËm DLL H×nh 1.15. C¸c ®Æc tÝnh ®Çu ra cña DLL 1.3.2. CÊu tróc cña CoolRunner -XPLA3 CPLD CÊu tróc cña XPLA3 mang nÐt ®Æc tr−ng cña mét thanh ghi ë ®Çu vµo, nhiÒu thµnh phÇn clock, lËp tr×nh qua JTAG, c¸c ®−êng vµo ra dao ®éng 5V vµ bao gåm mét cÊu tróc PLA (Programmable Logic Array) ®Çy ®ñ. Víi sù ph©n phèi logic linh ho¹t cïng víi c¸c ®Æc
  41. 41. 41 tÝnh më réng nµy ®· ®−a ra tèc ®é cao gÊp ®«i, kÕt qu¶ lµ nã t¹o ra kh¶ n¨ng thay ®æi thiÕt kÕ mµ kh«ng cÇn thay ®æi c¸c ch©n ®Çu ra. CÊu tróc cña nã bao gåm mét tËp hîp 48 tÝch sè nh©n mµ cã thÓ ph©n phèi tíi bÊt kú Macrocell nµo trong khèi logic. Sù kÕt hîp nµy cho phÐp c¸c phÐp tÝnh logic ®−îc ph©n phèi hiÖu qu¶ trªn toµn khèi logic vµ hç trî nhiÒu tÝch sè nh©n cÇn thiÕt trªn mçi Macrocell. CÊu tróc tæng qu¸t cña mét CPLD ®−îc ®−a ra h×nh 1.16,1.17. H×nh 1.16. CÊu tróc tæng qu¸t møc cao cña XPLA3 - CPLD H×nh 1.17 CÊu tróc khèi cña CoolRunner XPLA3 CPLD
  42. 42. 42 H×nh 1.18. CÊu tróc chøc n¨ng cña CoolRunner XPLA3 H×nh 1.16 chØ ra s¬ ®å khèi ë møc cao cña mét thiÕt bÞ 128 macrocell thùc hiÖn cÊu tróc XPLA3. CÊu tróc XPLA3 bao gåm c¸c khèi chøc n¨ng (Function Block) hay khèi logic ®−îc nèi liÒn víi nhau th«ng qua ma trËn nèi nguån kh«ng (ZIA). Thùc chÊt ZIA lµ mét chuyÓn m¹ch ®iÓm ®−îc ®Þnh tuyÕn. Mçi khèi chøc n¨ng cã 36 ®Çu vµo tõ khèi ZIA vµ 16 Macrocell (MC). Víi hä XPLA3 duy nhÊt chØ lµ sù ph©n chia logic n»m bªn trong mçi khèi chøc n¨ng vµ kü thuËt thiÕt kÕ ®−îc sö dông ®Ó thùc hiÖn c¸c khèi chøc n¨ng nµy. Theo h×nh 1.18 ta thÊy mçi khèi chøc n¨ng cã chøa mét ma trËn PLA, mµ nã t¹o ra c¸c ®−êng ®iÒu khiÓn, ®−êng clock vµ c¸c logic cell dïng cho viÖc sö dông c¸c clock kh«ng ®ång bé, reset, preset vµ Output Enable (Cho phÐp ®Çu ra). Mét PLA rÊt kh¸c mét PAL (Programmable Array Logic), v× vËy mµ PLA cã mét ma trËn
  43. 43. 43 c¸c cæng AND cho phÐp lËp tr×nh hoµn toµn th«ng qua lËp tr×nh c¸c cæng OR . Mét ma trËn PAL bÞ cè ®Þnh bëi ma trËn c¸c cæng OR ( xem h×nh 1.1 vµ 1.2 Môc 1.1), ma trËn PLA nhËn c¸c ®Çu vµo cña nã trùc tiÕp tõ ZIA. Cã 36 cÆp ®Çu vµo vµ c¸c ®Çu vµo bæ xung tõ ZIA, c¸c ®Çu vµo nµy ®−îc cung cÊp tíi 48 tÝch sè nh©n trong ma trËn. Bèn t¸m ®−êng tÝch sè nh©n nµy, th× trong ®ã cã 8 ®−êng ®iÒu khiÓn côc bé (LCT [0:7]) ®−îc phÐp sö dông nh− c¸c tÝn hiÖu ®iÒu khiÓn tíi mçi Macrocell (MC) dïng khi sö dông c¸c clock kh«ng ®ång bé, reset, preset vµ cho phÐp ®Çu ra (OE) Output Enable. NÕu kh«ng dïng 8 ®−êng ®iÒu khiÓn nµy th× chóng ®−îc nhËp víi 40 tÝch sè nh©n cßn l¹i ®Ó t¹o nguån logic. Trong mçi khèi chøc n¨ng cã 8 ®−êng ph¶n håi NAND ®−îc dïng ®Ó tæng hîp vµ t¨ng mËt ®é logic, hç trî c¸c hµm logic lín h¬n. §Æc tÝnh nµy cã thÓ ®−îc phÐp hoÆc kh«ng cã thÓ do phÇn mÒm ng−êi sö dông qui ®Þnh. Cïng víi c¸c tÝch sè nh©n, ®−êng ®iÒu khiÓn vµ c¸c ®−êng ph¶n håi kh«ng ®−îc sö dông ®Õn, c¸c ®−êng nµy chóng l¹i cã thÓ gép l¹i vµ ®−îc dïng nh− mét nguån tµi nguyªn logic. NÕu cã lín h¬n mét phÐp tÝnh logic nh©n, hÖ sè ®¬n t¹i mçi MC th× 47 tÝch sè nh©n n÷a sÏ ®−îc gép l¹i tr−íc ®Ó t¹o ra VFM ( Variable Function Multiplexer - Bé chän kªnh chøc n¨ng biÕn ®æi ). Bé VFM t¨ng sù tèi −u ho¸ logic b»ng viÖc thùc hiÖn mét vµi chøc n¨ng logic ®Çu vµo tr−íc khi ®i vµo Macrocell xem h×nh 1.19.
  44. 44. 44 H×nh 1.19 CÊu tróc cña mét MacroCell H×nh 1.20. Bé dån kªnh chøc n¨ng VFM CÊu tróc MacroCell: H×nh 1.20 chØ ra cÊu tróc cña MacroCell (MC) ®−îc sö dông trong CoolRunner XPLA3, bÊt cø mét MC nµo ®Òu cã thÓ reset hoÆc
  45. 45. 45 preset khi bËt nguån. Mçi thanh ghi cña MC cã thÓ ®−îc xem nh− mét flip-flop kiÓu D, T hoÆc kiÓu chèt hoÆc bá qua nÕu MC ®−îc coi lµ mét hµm logic tæ hîp. Mçi flip - flop nµy cã thÓ nhËn ®−êng Clk tõ bÊt kú mét trong 8 nguån clock hoÆc phÇn bæ xung cña chóng (h×nh 1.20). Cã hai ®−êng Clk ®ång bé toµn côc mµ chóng ®−îc lÊy tõ 4 ch©n clk bªn ngoµi. T¹i ®©y cã mét ®−êng CLK chung vµ c¸c tÝn hiÖu ®Çu vµo CT [4:7] (Local Control Terms). Cã hai ®−êng ph¶n håi tíi khèi ZIA th«ng qua bé Mux, mét bé Mux sÏ chän hoÆc ®Çu ra cña VFM hoÆc tõ ®Çu ra cña thanh ghi, mét bé Mux cßn l¹i sÏ chän hoÆc lµ tõ ®Çu ra cña thanh ghi hoÆc tõ ®−êng dÉn I/O cña MC. Khi c¸c ch©n I/O ®−îc sö dông nh− mét ®Çu ra, bé ®Öm ®Çu ra ®−îc phÐp chän vµ ®−êng ph¶n håi MC cã thÓ ®−îc sö dông lµm ®−êng bæ xung logic trong MC. Khi ch©n I/O ®−îc sö dông lµm ®Çu vµo th× c¸c ch©n ®Çu ra sÏ lµ ba tr¹ng th¸i vµ tÝn hiÖu ®Çu vµo sÏ ®−îc ®−a ®Õn ZIA th«ng qua ®−êng ph¶n håi I/O. C¸c phÐp Logic bï mµ ®−îc thùc hiÖn trong MC cã thÓ ®−a ®Õn ZIA th«ng qua ®−êng ph¶n håi cña MC. NÕu mét ch©n cña MC ®−îc ®Æt nh− mét ®Çu vµo, th× t¹i ®ã cã mét ®−êng dÉn trùc tiÕp tíi thanh ghi ®Ó t¹o thêi gian thiÕt lËp ®Çu vµo nhanh. NÕu MC ®−îc x¾p ®Æt lµ mét bé chèt th× ®Çu vµo clock cña thanh ghi sÏ t¹o chøc n¨ng cho phÐp chèt vµ chèt ch¾c ch¾n nhÊt khi tÝn hiÖu nµy lµ cao. §−êng Clock ®−îc nèi cøng sÏ kh«ng ®−îc sö dông khi mµ MC ®−îc thùc hiÖn nh− mét bé chèt . I/O Cell :
  46. 46. 46 H×nh 1.21. CÊu tróc I/O Cell §−êng OE cña bé chän kªnh cã t¸m kh¶ n¨ng x¶y ra ( Xem b¶ng gi¶i m· ®−îc chØ ra trong h×nh trªn ). Khi c¸c I/O cell ®−îc ®Æt nh− mét ®Çu vµo (hoÆc ®Çu ra ba tr¹ng th¸i), ®−êng OE nµy kÐo ®Çu vµo lªn cao (th«ng qua mét bé treo ë møc yÕu) nÕu ®Çu vµo bÞ th¶ næi vµ v−ît ng−ìng. §iÒu nµy nh»m t¹o ra sù b¶o vÖ ®Çu vµo v−ît khái vïng mµ vïng nµy chÝnh lµ nguyªn nh©n g©y ra viÖc tiªu thô nguån lín. Chøc n¨ng nh− cña bé treo ë møc yÕu cã thÓ thùc hiÖn b»ng phÇn mÒm, ch¼ng h¹n nh− nã sÏ lu«n lu«n ®−îc bËt khi I/O cell ®−îc xem nh− mét ®Çu vµo. §iÒu nµy sÏ lµm bé treo tù ®éng bËt khi mét ch©n kh«ng ®−îc sö dông trong thiÕt kÕ. C¸c I/O cell lµ 5v (hoÆc 3.3 V) khi mµ thiÕt bÞ ®−îc cÊp nguån . Mçi ®Çu ra cã mét bé ®iÒu khiÓn tèc ®é ®éc lËp ( Nhanh hoÆc chËm - cho phÐp ®Æt trong phÇn mÒm), ®iÒu nµy sÏ gióp lµm gi¶m sù ph¸t ra nhiÔu ®iÖn tõ tr−êng. L−u ý r»ng mét I/O cña MC khi ®· sö dông mét phÐp logÝc ®−îc thùc hiÖn bªn trong nã th× nã kh«ng cã ch©n I/O ®−îc sö dông
  47. 47. 47 cho ®Çu vµo mµ nã coi ch©n ®ã kh«ng ®−îc sö dông vµ c¸c ®iÖn trë treo sÏ ®−îc nèi. Cã thÓ nãi r»ng, tÊt c¶ c¸c ch©n cña XPLA3 kh«ng ®−îc sö dông th× kh«ng ®−îc nèi. C¸c ch©n ®Çu vµo mµ ®−îc sö dông cho mét môc ®Ých riªng nµo ®ã (CLKx/INx) th× kh«ng cã ®iÖn trë treo, v× vËy c¸c ch©n ®Çu vµo nµy cÇn cã ®Çu cuèi ë phÝa ngoµi . Nh− tÊt c¶ hä CMOS kh«ng cho phÐp c¸c ch©n ®Çu vµo th¶ næi . Timing Model : " Khu«n mÉu x¸c ®Þnh thêi gian ", cÊu tróc nµy cho phÐp khu«n mÉu thêi gian tiÒn ®Þnh trong thiÕt kÕ vµ thiÕt kÕ l¹i . H×nh 1.22. C¸c khu«n mÉu thêi gian trong CoolRunner XPLA3 Cã ba khu«n mÉu thêi gian chÝnh lµ TPD, TSU, TCO. Trong c¸c cÊu tróc kh¸c ta cã thÓ ®−a thiÕt kÕ vµo trong CPLD nh−ng kh«ng ®¶m b¶o ®−îc yªu cÇu vÒ thêi gian cña hÖ thèng cã ®¹t ®−îc hay kh«ng vµ cã tho¶ m·n hay kh«ng cho ®Õn khi thiÕt kÕ ®ã ®−îc dÞch vµ n¹p vµo trong thiÕt bÞ . ChÝnh v× vËy khu«n mÉu x¸c ®Þnh thêi gian cña c¸c cÊu tróc kh¸c rÊt phøc t¹p vµ rÊt nhiÒu thø cÇn quan t©m, ch¼ng h¹n nh− sù phô thuéc cña thêi gian vµo sè bé më réng song song
  48. 48. 48 m−în, sè bé më réng chia sÎ, sù thay ®æi sè kªnh ®Þnh tuyÕn X , Y... Trong XPLA3 cã thÓ biÕt tr−íc thiÕt kÕ cã phï hîp víi yªu cÇu thêi gian cña hÖ thèng hay kh«ng v× nã cã khu«n mÉu x¾p xÕp thêi gian chuÈn. 1.4. Quy tr×nh thiÕt kÕ c¬ b¶n * C¸c b−íc thiÕt kÕ: Víi tÝnh n¨ng cña c¸c s¶n phÈm ®−a ra cu¶ Xilinx, phÇn mÒm ISE (Integrated software Environment) ®· lµm cho viÖc thiÕt kÕ dÔ dµng h¬n víi logic lËp tr×nh ®−îc. C¸c thiÕt kÕ cã thÓ ®−îc m« t¶ mét c¸ch dÔ dµng vµ nhanh chãng b»ng viÖc sö dông ng«n ng÷ m« t¶ ALBEL, VHDL, VerilogTM , hoÆc víi mét ®ãng gãi tõ c¸c s¬ ®å nguyªn lý. ViÖc lÊy thiÕt kÕ tõ s¬ ®å nguyªn lý chÝnh lµ ph−¬ng ph¸p truyÒn thèng mµ nh÷ng ng−êi thiÕt kÕ sö dông ®Ó Ên ®Þnh m¶ng c¸c cæng vµ c¸c thiÕt bÞ logic lËp tr×nh ®−îc. Nã lµ c«ng cô ®å ho¹ vµ cho phÐp Ên ®Þnh chÝnh x¸c c¸c cæng ®−îc yªu cÇu vµ c¸ch nèi chóng nh− thÕ nµo. D−íi ®©y lµ bèn b−íc c¬ b¶n cña mét thiÕt kÕ sö dông tõ s¬ ®å nguyªn lý : 1. Sau khi lùa chän c«ng cô ®Ó t¹o s¬ ®å nguyªn lý vµ th− viÖn c¸c thiÕt bÞ, b¾t ®Çu x©y dùng m¹ch b»ng viÖc t¶i c¸c cæng mong muèn tõ th− viÖn ®· ®−îc chän. Cã thÓ sö dông bÊt kú mét tæ hîp cæng cÇn thiÕt nµo. Lóc nµy cÇn ph¶i chän mét th− viÖn hä c¸c thiÕt bÞ ph©n phèi râ rµng, nh−ng cã thÓ kh«ng cÇn ph¶i biÕt thiÕt bÞ nµo trong hä ®ã. VÒ c¬ b¶n, chØ sö dông víi sù quan t©m vÒ ®ãng gãi vµ
  49. 49. 49 tèc ®é cña chóng lµ ®ñ. 2. Nèi c¸c cæng l¹i víi nhau b»ng viÖc sö dông c¸c m¹ng vµ d©y nèi. Hoµn tÊt viÖc ®iÒu khiÓn nèi c¸c cæng theo bÊt cø cÊu h×nh nµo mµ cÇn cho øng dông . 3. §−a thªm vµ ®Æt tªn cho c¸c bé ®Öm ®Çu vµo vµ ®Çu ra , c¸c nh·n nµy sÏ chØ râ c¸c ch©n trong ®ãng gãi vµo ra cña thiÕt bÞ . 4. T¹o danh s¸ch c¸c m¹ng c¸c ®−êng nèi cña m¹ch. H×nh 1.23 d−íi ®©y m« t¶ luång thiÕt kÕ víi c¸c PLDs . H×nh 1.23. C¸c b−íc thiÕt kÕ mét PLD theo s¬ ®å nguyªn lý Mét danh s¸ch m¹ng kÕt nèi ( Netlist ) lµ mét file d¹ng text m« t¶ kÕt nèi cña mét m¹ch. Nã ®−îc t¹o ra bëi c¸c c«ng cô thiÕt kÕ, ch¼ng h¹n nh− ch−¬ng tr×nh lÊy s¬ ®å nguyªn lý ECS. Netslist lµ mét file c« ®äng, ng¾n gän ®Ó c¸c ch−¬ng tr×nh kh¸c cã thÓ hiÓu ®−îc cæng nµo ®−îc nèi trong m¹ch vµ chóng ®−îc nèi víi nhau nh− thÕ nµo, c¸c tªn cña ch©n vµo ra lµ g×. Trong mét vÝ dô d−íi ®©y,
  50. 50. 50 Netlist ph¶n ¸nh mét có ph¸p thùc tÕ cña mét m¹ch theo d¹ng s¬ ®å. §ã lµ mét ®−êng nèi cho mçi linh kiÖn vµ mét ®−êng cho mét trong c¸c m¹ng d©y nèi. L−u ý r»ng ch−¬ng tr×nh m¸y tÝnh sÏ g¸n c¸c tªn cho mçi linh kiÖn ( G1 ®Õn G4 ) vµ c¸c ®−êng nèi N1 ®Õn N8, h×nh 1.24 . Khi thùc thi thiÕt kÕ nµy, nã sÏ ®ãng gãi c¸c ch©n ®Çu vµo lµ A, B, C, D vµ c¸c ch©n ®Çu ra lµ Q, R, S. EDIF ( Electronic Data Interchange Format-§Þnh d¹ng trao ®æi d÷ liÖu ®iÖn tö ) theo chuÈn c«ng nghiÖp cho viÖc Ên ®Þnh c¸c thiÕt kÕ logic ë d¹ng text vµ mét d¹ng kh¸c n÷a lµ XNF ( Xilinx Netlist Format - §Þnh d¹ng Netlist cña Xilinx). Gi¶ sö b¹n cã trong tay mét Netlist, nh− vËy b¹n ®· cã tÊt c¶ nh÷ng g× b¹n cÇn ®Ó x¸c ®Þnh c¸i mµ m¹ch cña b¹n ®Þnh thiÕt kÕ. H×nh 1.24. Netlist cña mét thiÕt kÕ VÝ dô trªn ®©y lµ mét vÝ dô ®¬n gi¶n vµ râ rµng. Nh− chóng ta ®· thÊy, thö m« t¶ mét thiÕt kÕ thùc tÕ víi 10.000 cæng. Mét trang s¬ ®å nguyªn lý cã chøa kho¶ng 200 cæng, v× vËy nã sÏ cÇn 50 trang
  51. 51. 51 s¬ ®å ®Ó t¹o ra mét thiÕt kÕ 10.000 cæng. Mçi mét trang cÇn thùc hiÖn theo tÊt c¶ c¸c b−íc kÓ trªn. §iÒu nµy sÏ tiªu tèn rÊt nhiÒu thêi gian, ®Æc biÖt nÕu muèn t¹o mét thiÕt kÕ cã 20.000 hoÆc 50.000 vµ cã thÓ c¸c thiÕt kÕ lín h¬n n÷a. B¹n thö h×nh dung sÏ tiªu tèn bao nhiªu thêi gian nÕu b¹n t¹o mét th− viÖn ph©n phèi linh kiÖn vµ nÕu cÇn söa ®æi chóng. Cã mét c¸ch tèt h¬n ®Ó thùc hiÖn ®iÒu nµy vµ nã ®−îc gäi lµ thiÕt kÕ ë møc cao (HLD-High Level Design), ho¹t ®éng (Behavioral) cña thiÕt kÕ, hoÆc lµ ng«n ng÷ m« t¶ phÇn cøng (HDL).ý t−ëng dïng ng«n ng÷ bËc cao ®Ó m« t¶ m¹ch ë d¹ng file v¨n b¶n nµy hay h¬n viÖc m« t¶ c¸c cæng ë d¹ng ®å ho¹ rÊt nhiÒu. ThuËt ng÷ ho¹t ®éng (Behavioral) ë ®©y ®−îc dïng bëi v× ë trong ng«n ng÷ bËc cao chóng ta cã thÓ m« t¶ hµm hoÆc ph¶n øng cña m¹ch b»ng lêi h¬n lµ ®−a ra h×nh vÏ cña c¸c cæng t−¬ng øng mµ nã cÇn ®−îc t¹o trong øng dông. Cã hai ng«n ng÷ chÝnh trong ng«n ng÷ HDL ®ã lµ : VHDL vµ Verilog. XÐt mét vÝ dô kh¸c, h·y thiÕt kÕ mét bé nh©n 16x16 víi m« t¶ b»ng file HDL vµ ch−¬ng tr×nh t¹o tõ s¬ ®å nguyªn lý ECS. Víi mét bé nh©n, th«ng th−êng lµ mét sù x¾p ®Æt rÊt phøc t¹p cña c¸c bé céng, c¸c thanh ghi vµ mét sè c¸c cæng. VÝ dô cña chóng ta cÇn hai ®Çu vµo 16 bit ( §Çu vµo A vµ B ) vµ mét ®Çu ra bé nh©n 32 bit ( Y= AxB ) nh− vËy tæng céng cã 64 ®−êng vµo ra vµ t−¬ng ®−¬ng víi kho¶ng gÇn 6000 cæng.Trong viÖc thùc hiÖn b»ng s¬ ®å nguyªn lý, sè cæng yªu cÇu cÇn ph¶i ®−îc t¶i vµo, ®Æt trong trang thiÕt kÕ m¹ch vµ cÇn ph¶i ®−îc nèi víi nhau, céng thªm c¸c bé ®Öm vµo ra. C«ng viÖc nµy chiÕm mÊt kho¶ng ba ngµy. Khi
  52. 52. 52 thùc hiÖn b»ng HDL, mÊt kho¶ng 8 dßng text vµ cã thÓ hoµn thµnh trong ba phót. File Netlist ®−îc t¹o ra vµ nã cã chøa tÊt c¶ c¸c th«ng tin cÇn thiÕt cña mét bé nh©n 16x16. H×nh 1.25. C¸c th«ng sè cña mét thiÕt kÕ bé nh©n * KiÓm tra thiÕt kÕ : C¸c thiÕt kÕ logic lËp tr×nh, ®−îc kiÓm tra b»ng viÖc sö dông mét bé m« pháng mµ thùc chÊt nã lµ mét ch−¬ng tr×nh phÇn mÒm, ch−¬ng tr×nh nµy x¸c nhËn tÊt c¶ c¸c chøc n¨ng hoÆc thêi gian ho¹t ®éng cu¶ mét m¹ch. C¸c ®Þnh d¹ng c«ng nghiÖp tiªu chuÈn ®−îc sö dông ®Ó ®¶m b¶o mét ®iÒu r»ng c¸c thiÕt kÕ cã thÓ ®−îc t¸i sö dông. NÕu nh− cã sù thay ®æi th− viÖn cña nhµ ph©n phèi th× thiÕt kÕ ®ã chØ cÇn biªn dÞch l¹i qu¸ tr×nh tæng hîp nÕu lµ cÇn thiÕt. Lâi IP (Lâi së h÷u trÝ tuÖ ) th−êng cho phÐp ë khu«n d¹ng HDL, chóng rÊt dÔ thay ®æi vµ sö dông víi nhµ ph©n phèi thiÕt bÞ kh¸c nhau. Sau khi hoµn tÊt c¸c chi tiÕt cña mét thiÕt kÕ, ®iÒu cÇn ph¶i biÕt lµ liÖu m¹ch thùc tÕ cã ho¹t ®éng ®óng nh− môc ®Ých cña thiÕt kÕ kh«ng. ChÝnh c©u hái nµy ®· tr¶ lêi cho môc ®Ých cña viÖc
  53. 53. 53 kiÓm tra thiÕt kÕ. Bé m« pháng sÏ m« pháng thiÕt kÕ, v× vËy cÇn ph¶i cung cÊp ®Çy ®ñ th«ng tin cña thiÕt kÕ (Th«ng qua file Netlist sau khi sö dông ch−¬ng tr×nh ECS hoÆc th«ng qua qu¸ tr×nh tæng hîp b»ng phÇn mÒm ) vµ c¸c mÉu ®Çu vµo cô thÓ, hoÆc th«ng qua c¸c vÐc t¬ kiÓm tra. Bé m« pháng sÏ lÊy th«ng tin tõ ®ã ®Ó x¸c ®Þnh c¸c ®Çu ra cña m¹ch. Xem h×nh sau: H×nh 1.26. Qu¸ tr×nh thiÕt kÕ mét PLD M« t¶ tãm t¾t:
  54. 54. 54 - M« pháng chøc n¨ng : T¹i giai ®o¹n nµy, sù pháng chøc n¨ng chØ kiÓm tra nh÷ng tæ hîp ®óng cña kh«ng vµ mét mµ m¹ch nguyªn lý ®−a ra. Ng−êi thiÕt kÕ sÏ ®−a ra chØ dÉn sù m« pháng vÒ thêi gian ngay sau ®ã theo c¸c b−íc trong luång thiÕt kÕ nµy. NÕu nh− cã chøc n¨ng nµo kh«ng ®óng, cÇn ph¶i quay l¹i s¬ ®å nguyªn lý hoÆc file HDL (Xem h×nh 1.26) vµ söa ®æi l¹i, t¹o l¹i file Netlist vµ sau ®ã cho ch¹y l¹i bé m« pháng. Nh÷ng ng−êi thiÕt kÕ th−êng mÊt kho¶ng 50% thêi gian vµo viÖc söa ®æi ®Ó ®i qua b−íc nµy cho ®Õn khi thiÕt kÕ ®¹t theo yªu cÇu mong muèn . ViÖc sö dông file HDL cã rÊt nhiÒu thuËn lîi khi kiÓm tra thiÕt kÕ : Ng−êi thiÕt kÕ cã thÓ m« pháng trùc tiÕp tõ file nguån HDL, ®iÒu nµy cho phÐp bá qua thêi gian tiªu tèn trong qu¸ tr×nh tæng hîp mµ thêi gian nµy th−êng ®−îc yªu cÇu mçi khi thay ®æi thiÕt kÕ. Mét thiÕt kÕ khi ®· lµm viÖc ®óng, ch¹y c«ng cô tæng hîp ®Ó t¹o ra file Netlist cho c¸c b−íc tiÕp theo trong qu¸ tr×nh thiÕt kÕ . - Thùc thi trªn thiÕt bÞ : Mét file Netlist cu¶ thiÕt kÕ m« t¶ hoµn toµn ®Çy ®ñ mét thiÕt kÕ mµ thiÕt kÕ nµy sö dông th− viÖn c¸c cæng cña nhµ ph©n phèi cña mét hä thiÕt bÞ nµo ®ã vµ Ýt nhÊt nã còng ®· ®i qua b−íc kiÓm tra. §· ®Õn lóc ®−a file nµy vµo trong mét chip vµ ®iÒu nµy ®−îc xem nh− sù thùc hiÖn trªn thiÕt bÞ. Biªn dÞch bao sÏ gåm nhiÒu ch−¬ng tr×nh sÏ ®−îc sñ dông, c¸c ch−¬ng tr×nh nµy nhËp file Netlist cña thiÕt kÕ ®· ®−îc dÞch vµ dïng nã ®Ó bè trÝ, x¾p xÕp c¸c cæng logic. C¸c ch−¬ng tr×nh nµy sÏ kh¸c nhau víi c¸c nhµ ph©n phèi th− viÖn kh¸c nhau. C¸c ch−¬ng tr×nh tham gia vµo qu¸ tr×nh biªn dÞch bao gåm:
  55. 55. 55 Ch−¬ng tr×nh tèi −u ho¸, dÞch c¸c phÇn tö cña thiÕt bÞ vËt lý, kiÓm tra c¸c qui luËt thiÕt kÕ víi thiÕt bÞ cô thÓ nµo (xem nã cã v−ît qua sè bé ®Öm Clock cho phÐp ë trong thiÕt bÞ nµy kh«ng ?... ). Trong suèt giai ®o¹n thiÕt kÕ, ng−êi thiÕt kÕ sÏ ®−îc hái ®Ó chän thiÕt bÞ ®Ých, ®ãng gãi, cÊp ®é vµ c¸c chän lùa kh¸c ®èi víi thiÕt bÞ ®−îc Ên ®Þnh . Th«ng th−êng qu¸ tr×nh biªn dÞch kÕt thóc víi mét b¸o c¸o kÕt qu¶ bao hµm toµn bé c¸c ch−¬ng tr×nh ®· ®−îc thùc hiÖn. Thªm vµo c¸c c¶nh b¸o lçi, ë d¹ng b¶n kª cña thiÕt bÞ vµ viÖc sö sông c¸c ®−êng vµo ra. ChÝnh ®iÒu nµy gióp ng−êi thiÕt kÕ lùa chän ®−îc thiÕt bÞ ®Ých tèt nhÊt. - L¾p ®Æt trªn thiÕt bÞ: §èi víi hä CPLD th× b−íc nµy ®−îc gäi lµ l¾p ®Æt, cã nghÜa lµ ®−a thiÕt kÕ vµo trong thiÕt bÞ ®Ých (§iÒu chØnh cho phï hîp víi nguån tµi nguyªn cña thiÕt bÞ ®Ých). Trong h×nh vÏ 1.26 ë trªn, cã mét phÇn cña thiÕt kÕ ®−îc gäi lµ l¾p ®Æt vµo trong CPLD. C¸c CPLD cã cÊu tróc cè ®Þnh , v× thÕ nªn phÇn mÒm cÇn lÊy c¸c cæng vµ c¸c ®−êng nèi phï hîp víi m¹ch thiÕt kÕ. C«ng viÖc nµy th−êng ®−îc phÇn mÒm xö lý rÊt nhanh b»ng phÇn mÒm. Mét vÊn ®Ò kh¸c n÷a cã kh¶ n¨ng x¶y ra lµ viÖc g¸n vÞ trÝ cña c¸c ch©n vµo ra (Th−êng ®−îc gäi lµ sù kho¸ ch©n I/O) cã thÓ ®· bÞ thùc hiÖn tr−íc. Th−êng th× ®iÒu nµy hay x¶y ra khi dïng l¹i mét thiÕt kÕ mµ thiÕt kÕ nµy ®−îc thõa h−ëng, hoÆc thiÕt kÕ nµy ®· ®−îc n¹p vµo board m¹ch in cña thiÕt kÕ nµo ®ã. C¸c cÊu tróc mµ nã cung cÊp viÖc kho¸ c¸c ch©n vµo ra (ch¼ng h¹n nh− XC 9500, CoolRunner CPLDs ) cã sù thuËn tiÖn rÊt lín . Chóng cho phÐp gi÷ l¹i c¸c ch©n vµo ra gèc, bÊt kÓ thiÕt kÕ thay ®æi
  56. 56. 56 hay cã sù tËn dông nµo ®ã, hoÆc cã sù thùc hiÖn theo yªu cÇu nµo ®ã. Sù kho¸ ch©n rÊt quan träng khi sö dông ISP (In system Programmable Device - Cho phÐp lËp tr×nh trong hÖ thèng), nÕu m¹ch in ®· vÏ vµ nèi víi c¸c ch©n vµo ra, sau ®ã thiÕt kÕ bÞ thay ®æi vµ n¹p l¹i ch−¬ng tr×nh, b¹n h·y yªn t©m lµ c¸c ch©n nµy vÉn ®−îc gi÷ nguyªn . - S¾p ®Æt vµ ®Þnh tuyÕn : Víi hä FPGA, ch−¬ng tr×nh x¾p ®Æt vµ ®Þnh tuyÕn ®−îc ch¹y sau khi biªn dÞch. X¾p ®Æt chÝnh lµ qu¸ tr×nh chän lùa c¸c module cô thÓ hoÆc c¸c khèi logic ë trong FPGA n¬i mµ c¸c cæng cña thiÕt kÕ sÏ n»m trong ®ã. §Þnh tuyÕn nã mang ®óng ý nghÜa cña nã, chÝnh lµ viÖc nèi vËt lý c¸c ®−êng nèi gi÷a c¸c khèi logic. HÇu hÕt c¸c nhµ ph©n phèi cung cÊp c«ng cô tù ®éng s¾p ®Æt vµ ®Þnh tuyÕn, v× thÕ b¹n kh«ng ph¶i lo l¾ng vÒ c¸c chi tiÕt khã hiÓu phøc t¹p cña cÊu tróc thiÕt bÞ. Mét sè nhµ ph©n phèi ®−a ra c«ng cô cho phÐp b¹n s¾p ®Æt vµ ®Þnh tuyÕn b»ng tay nh÷ng phÇn then chèt nhÊt cña thiÕt kÕ, ®Ó cã thÓ thu ®−îc sù thùc hiÖn tèt h¬n c«ng cô tù ®éng. Bé t¹o s¬ ®å mÆt b»ng bè trÝ c¸c phÇn tö logic lµ mét kiÓu cña c«ng cô sö dông b»ng tay. Ch−¬ng tr×nh s¾p ®Æt vµ ®Þnh tuyÕn cÇn nhiÒu thêi gian nhÊt ®Ó hoµn thiÖn thµnh c«ng mét thiÕt kÕ, bëi v× nã lµ c«ng viÖc rÊt phøc t¹p ®Ó x¸c ®Þnh n¬i ®Æt nh÷ng thiÕt kÕ lín vµ ®¶m b¶o r»ng chóng ®−îc nèi víi nhau chÝnh x¸c vµ ®¸p øng ®−îc sù thùc hiÖn nh− mong muèn.
  57. 57. 57 Tuy nhiªn c¸c ch−¬ng tr×nh nµy chØ cã thÓ lµm viÖc tèt nÕu cÊu tróc cña thiÕt bÞ ®Ých cã sù ®Þnh tuyÕn phï hîp víi thiÕt kÕ. B¹n kh«ng thÓ söa m· ch−¬ng tr×nh ®Ó bï mét cÊu tróc ®−îc h×nh thµnh sai lÖch, ®Æc biÖt nÕu cÊu tróc cña thiÕt bÞ kh«ng ®ñ ®Ó ®Þnh tuyÕn c¸c ®−êng nèi. NÕu nh− gÆp ph¶i vÊn ®Ò nµy, th× gi¶i ph¸p chung nhÊt lµ chän mét thiÕt bÞ ®Ých lín h¬n. Mét bé ph©n tÝch thêi gian tÜnh th«ng th−êng lµ mét phÇn cña phÇn mÒm thùc thi cña nhµ ph©n phèi. Nã cung cÊp th«ng tin vÒ thêi gian cña c¸c ®−êng dÉn trong thiÕt kÕ, th«ng tin nµy rÊt chÝnh x¸c vµ cã thÓ hiÓn thÞ theo nhiÒu c¸ch kh¸c nhau. Ch¼ng h¹n nh− hiÓn thÞ tÊt c¶ c¸c ®−êng nèi vµ xÕp lo¹i chóng tõ ®é gi÷ chËm dµi nhÊt ®Õn ®é gi÷ chËm ng¾n nhÊt. H¬n n÷a khi nµy b¹n cã thÓ sö dông th«ng tin x¾p ®Æt ®· ®−îc chi tiÕt ho¸ sau khi ®Þnh d¹ng vµ quay trë vÒ bé m« pháng ®· ®−îc chän víi c¸c th«ng tin chi tiÕt vÒ thêi gian. Qóa tr×nh nµy ®−îc gäi lµ chó thÝch ng−îc (hay th«ng tin ph¶n håi), nã cã sù thuËn lîi trong viÖc cung cÊp chÝnh x¸c thêi gian cña sù thùc hiÖn c¸c sè kh«ng vµ c¸c sè mét trong thiÕt kÕ cu¶ b¹n. Trong c¶ hai tr−êng hîp, thêi gian ph¶n ¸nh sù gi÷ chËm cña c¸c khèi logic còng nh− c¸c ®−êng nèi. B−íc thùc hiÖn cuèi cuèi cïng lµ t¶i hay n¹p cÊu h×nh xuèng thiÕt bÞ. - T¶i hay n¹p ch−¬ng tr×nh: T¶i ch−¬ng tr×nh nh×n chung ®−îc xem nh− lµ t¶i th«ng tin xuèng thiÕt bÞ dÔ biÕn ®æi nh− SRAM FPGA . §óng víi tªn gäi cña
  58. 58. 58 nã, b¹n t¶i th«ng tin cÊu h×nh thiÕt bÞ vµo trong bé nhí cña thiÕt bÞ. Luång c¸c bit mµ nã ®−îc truyÒn ®i cã chøa tÊt c¶ c¸c th«ng tin ®Þnh nghÜa logic vµ c¸c ®−êng nèi cu¶ thiÕt kÕ, th«ng tin nµy sÏ lµ kh¸c nhau ®èi víi thiÕt kÕ kh¸c nhau. Xem h×nh 1.27. H×nh 1.27. Gi¶i thÝch ph©n biÖt n¹p ch−¬ng tr×nh vµ t¶i cÊu h×nh Do v× c¸c thiÕt bÞ SRAM mÊt ®i cÊu h×nh khi mÊt nguån, v× thÕ luång c¸c bit cÇn ph¶i cÊt ë ®©u ®ã ®Ó gi¶i quyÕt vÊn ®Ò nµy. Mét n¬i th−êng ®−îc dïng ®Ó cÊt th«ng tin cÊu h×nh thiÕt bÞ, ®ã lµ PROM nèi tiÕp. §©y lµ thµnh phÇn kÕt hîp víi phÇn cøng mµ nã nèi tõ m¸y tÝnh tíi bo m¹ch mµ bo m¹ch nµy cã chøa thiÕt bÞ ®Ých. N¹p ch−¬ng tr×nh ®−îc dïng cho ®Ó lËp ch−¬ng tr×nh cho tÊt c¶ c¸c thiÕt bÞ logic cã thÓ lËp tr×nh ®−îc kh«ng bÞ thay ®æi, ch¼ng h¹n nh− PROM nèi tiÕp. ViÖc n¹p ch−¬ng tr×nh thùc hiÖn chøc n¨ng gièng nh− t¶i ch−¬ng tr×nh, riªng c¸c th«ng tin vÒ cÊu h×nh vÉn cßn sau khi mÊt ®iÖn. Víi c¸c thiÕt bÞ mµ cã kiÓu kÕt nèi ng−îc víi mét cÇu tr× (kÕt
  59. 59. 59 nèi mét lÇn), th× viÖc n¹p ch−¬ng tr×nh chØ cã thÓ thùc hiÖn ®−îc mét lÇn trªn thiÕt bÞ hay cã thÓ gäi theo thuËt ng÷ kh¸c : "Cho phÐp lËp tr×nh mét lÇn ". ViÖc n¹p ch−¬ng tr×nh ®èi víi c¸c CPLD cña Xilinx cã thÓ thùc hiÖn trªn hÖ thèng th«ng qua c¸p JTAG hoÆc cïng víi bé n¹p ch−¬ng tr×nh truyÒn thèng. QuÐt biªn JTAG ®−îc hiÓu th«ng th−êng nh− mét chuÈn IEEE/ANSI 1149.1-1190, nã lµ mét d·y c¸c qui luËt thiÕt kÕ mµ c¸c qui luËt nµy dÔ kiÓm tra, dÔ n¹p ch−¬ng tr×nh cho thiÕt bÞ vµ gì rèi trªn chip, trªn bo m¹ch ë møc hÖ thèng. N¹p ch−¬ng tr×nh trªn hÖ thèng cã rÊt nhiÒu thuËn lîi, v× vËy thiÕt bÞ cã thÓ ®−îc hµn trùc tiÕp trªn bo m¹ch in, vµ nÕu cã thay ®æi thiÕt kÕ th× thiÕt bÞ kh«ng cÇn ph¶i th¸o khái m¹ch mµ vÉn lËp tr×nh l¹i trªn hÖ thèng mét c¸ch ®¬n gi¶n . Ch−¬ng II Gi¶i ph¸p vμ tæ chøc phÇn mÒm ®¶m b¶o 2.1. Giíi thiÖu s¬ l−îc ThiÕt kÕ logic lËp tr×nh ®−îc ®· ®−a ra kû nguyªn mµ trong ®ã mËt ®é cña thiÕt bÞ ë ®¬n vÞ hµng triÖu cæng, sù thùc hiÖn cña hÖ thèng ë tèc ®é hµng tr¨m MHz. Xilinx ®· ®−a ra c¸c c«ng cô thiÕt kÕ ®iÖn tö hoµn toµn ®Çy ®ñ mµ nã cho phÐp thùc hiÖn c¸c thiÕt kÕ trong hä PLD cña Xilinx. C¸c gi¶i ph¸p ph¸t triÓn kÕt hîp víi c¸c kü thuËt m¹nh t¹o ra mét sù linh ho¹t, mÒm dÎo, giao tiÕp ®å ho¹ dÔ sö dông gióp b¹n cã ®−îc
  60. 60. 60 c¸c thiÕt kÕ tèt nhÊt cã thÓ trong mét dù ¸n lín - mµ kh«ng cÇn quan t©m ®Õn kinh nghiÖm cña b¹n. C«ng cô phÇn mÒm thiÕt kÕ ISE (Integrated Sofware Enviroment- M«i tr−êng phÇn mÒm tÝch hîp) lµ c«ng cô thiÕt kÕ tæng thÓ, bao hµm c¸c c«ng cô phÇn mÒm thiÕt kÕ chuyªn dông kh¸c nhau vµ ®©y còng lµ c«ng cô ®−îc sö dông nhiÒu nhÊt trong thiÕt kÕ c¸c PLD (Programmable Logic Device) cña Xilinx. 2.2. C¸c c«ng cô thiÕt kÕ PhÇn mÒm ISE c¶i thiÖn ®¸ng kÓ thêi gian ®−a mét s¶n phÈm ra thÞ tr−êng bëi viÖc t¨ng tèc qu¸ tr×nh nhËp thiÕt kÕ. C¸c b−íc thùc hiÖn mét thiÕt kÕ ®−îc cung cÊp trong phÇn mÒm ISE, ngoµi ra chóng cßn ®−îc hç trî thªm bëi c¸c phÇn mÒm bæ sung kh¸c. §Ó tiÖn cho viÖc n¾m b¾t vµ ph©n lo¹i c¸c lo¹i phÇn mÒm chóng ta sÏ ®i m« t¶ phÇn nµy theo thø tù thùc hiÖn cña mét thiÕt kÕ . 2.2.1 NhËp thiÕt kÕ C¸c c«ng cô hç trî c¸c ph−¬ng ph¸p phæ biÕn nhÊt ngµy nay ®Ó viÖc t¹o ra mét thiÕt kÕ bao gåm : NhËp thiÕt kÕ b»ng s¬ ®å, b»ng ng«n ng÷ HDL, b»ng viÖc tÝch hîp c¸c lâi IP, hç trî m¹nh mÏ viÖc t¸i sö dông c¸c lâi IP. Sù ®a d¹ng cña viÖc nhËp mét thiÕt kÕ ®· ®−a ra mét m«i tr−êng thiÕt kÕ dÔ sö dông nhÊt vµ cho phÐp víi tÊt c¶ c¸c thiÕt kÕ logic. Nã bao gåm c¸c c«ng cô thiÕt kÕ sau: Schematic Editor, HDL Editor, State Diagram Editor, Core Generator ™ System, PACE (Pinout and Area Constraint Editor), Architecture Wizard (DCM-Digital Clock Management, MGT- Multi_Gigabit
  61. 61. 61 Transceiver), Xilinx System Generator for DSP. 2.2.2. Tæng hîp thiÕt kÕ . ISE c¶i tiÕn bé m¸y tæng hîp HDL ®Ó ®−a ra kÕt qu¶ tèi −u ho¸ cho viÖc tæng hîp trªn c¸c PLD, ®©y lµ mét trong c¸c b−íc c¬ b¶n nhÊt trong ph−¬ng ph¸p thiÕt kÕ. Nã lÊy c¸c ®Þnh nghÜa cña thiÕt kÕ trªn HDL vµ t¹o ra sù m« t¶ vËt lý hoÆc logic cho thiÕt bÞ silicon ®Ých. Bé m¸y tæng hîp tiªn tiÕn ®−a ra mét kÕt qu¶ tèi −u ho¸ cao víi mét thêi gian ®iÒu chØnh vµ thêi gian dÞch nhanh. §Ó phï hîp víi yªu cÇu nµy, bé m¸y tæng hîp cÇn ph¶i ®−îc tÝch hîp chÆt chÏ víi c«ng cô thùc hiÖn vËt lý, h¬n n÷a sù bá qua viÖc th¨m dß gi÷a th«ng tin thiÕt kÕ vËt lý vµ m· thiÕt kÕ HDL ®· c¶i thiÖn ®−îc thêi gian biÕn ®æi thiÕt kÕ. PhÇn mÒm ISE ®−a ra mét sù tÝch hîp g¾n liÒn víi c¸c bé m¸y tæng hîp chñ ®¹o nh− : Mentor Graphics Leonardo Spectrum, Exempla, Synopsys vµ Synplicity Synplify/Pro, ABEL, XST ( Xilinx Synthesis Technology ) . 2.2.3. Thùc thi vµ n¹p cÊu h×nh ViÖc thùc hiÖn thiÕt kÕ logic lËp tr×nh ®−îc lµ g¸n c¸c chøc n¨ng logic ®−îc t¹o trong suèt qu¸ tr×nh nhËp thiÕt kÕ vµ tæng hîp chóng vµo trong tµi nguyªn vËt lý cô thÓ. ThuËt ng÷ " X¾p ®Æt vµ ®Þnh tuyÕn " ®−îc sö dông ®Ó m« t¶ qu¸ tr×nh thùc hiÖn cho FPGA, cßn " L¾p ®Æt " ®−îc sö dông cho CPLD. Thùc thi chÝnh lµ n¹p cÊu h×nh cho thiÕt bÞ, mµ sù thùc thi nµy chÝnh lµ t¹o vµ t¶i mét luång c¸c bit ®−îc t¹o ra tõ th«ng tin x¾p ®Æt vµ ®Þnh tuyÕn vµo trong c¸c
  62. 62. 62 thiÕt bÞ ®Ých PLD. §Ó thùc hiÖn phÇn nµy cã c¸c c«ng cô hç trî sau: FloorPlanner, Constraints Editor, Timing Driven Place & Route, Modular Design, Timing Improvent Wizard . 2.2.4. TÝch hîp møc Board. PhÇn mÒm ISE ®−a ra sù hç trî m¹nh mÏ ®Ó gióp ng−êi thiÕt kÕ ®¶m b¶o thiÕt kÕ logic lËp tr×nh lµm viÖc trong mét hÖ thèng. Xilinx dù b¸o tr−íc ®−îc c¸c kÕt qu¶ chÝnh, ch¼ng h¹n nh− viÖc x¾p ®Æt mét board m¹ch phøc t¹p, tÝch hîp c¸c tÝn hiÖu, giao tiÕp Bus tèc ®é cao, ®é réng d¶i th«ng vµo ra, c¸c nhiÔu ®iÖn tõ cho ng−êi thiÕt kÕ møc hÖ thèng. §Ó cã thÓ dÔ dµng thùc hiÖn c¸c b−íc nµy Xilinx ®· cung cÊp c¸c kü thuËt chñ ®¹o cho FPGA: - XCITE ( Trë kh¸ng ®iÒu khiÓn ®−îc sè ). - DCM Bé qu¶n lý ®ång hå sè cho thêi gian cña hÖ thèng . - EMI Bé qu¶n lý nhiÔu ®iÖn tõ tr−êng . - Th«ng tin ®ãng gãi cho sù tÝch hîp ë møc Board . - KiÓm tra ë møc Board ISE. Nã bao gåm c¸c phÇn mÒm sau: - IBIS Models. - STAMP Models. - LMG Models. - ChipScope™ ILA 2.2.5. C¸c kü thuËt kiÓm tra PhÇn mÒm ISE ®−a ra viÖc kiÓm tra mµ nã hç trî trong tÊt c¶ c¸c giai ®o¹n cña thiÕt kÕ, tõ khi vµo thiÕt kÕ cho ®Õn khi tÝch hîp
  63. 63. 63 chóng trªn board. * KiÓm tra tÜnh : C«ng cô kiÓm tra tÜnh cho phÐp ng−êi thiÕt kÕ kiÓm tra thiÕt kÕ ngoµi yªu cÇu. ViÖc kiÓm tra cã thÓ thùc hiÖn ë mäi khÝa c¹nh hoÆc kiÓm tra theo sù chän lùa, cho phÐp t×m lçi trong qu¸ tr×nh thùc thi. C«ng cô kiÓm tra tÜnh còng ®−a ra c¸c kh¶ n¨ng gì rèi vµ ph©n tÝch m¹nh mÏ. C¸c c«ng cô kiÓm tra tÜnh : - Constraint Editor - Delay Calculator - Trace - Timing Analyzer - Prime Time - XPower - Formality - Conformal™ LEC - DRC - Chip Viewer * KiÓm tra ®éng : Bao gåm c¸c c«ng cô sau - HDL Bencher™ - ModelSim XE - State Bench - HDL Simulation Libraries * KiÓm tra møc Board : ViÖc sö dông c«ng cô kiÓm tra t¹i møc board nh»m ®Ó ®¶m b¶o r»ng thiÕt kÕ thùc hiÖn ®óng theo dù ®Þnh vµ chóng ®−îc tÝch hîp
  64. 64. 64 víi phÇn cßn l¹i cña hÖ thèng. C¸c c«ng cô nµy bao gåm : - IBIS Models - Tau - BLAST - Stamp Models - Impact 2.2.6 C«ng cô phÇn mÒm nhóng cho Virtex-II Pro FPGAs C¸c tuú chän víi thiÕt kÕ n©ng cao cña phÇn mÒm ISE chÝnh lµ nh»m t¹o ra c¸c thiÕt kÕ víi mËt ®é cao, dÔ dµng ®−îc g¾n kÕt c¸c phÇn tö logic nhá nhÊt. ThuËt ng÷ " C«ng cô phÇn mÒm nhóng " th«ng th−êng ®−îc øng dông cho c¸c c«ng cô ®−îc yªu cÇu dïng ®Ó t¹o, so¹n th¶o, dÞch, t¶i vµ gì rèi c¸c m· ng«n ng÷ bËc cao nh− C, C++ , ®−îc dïng ®Ó thùc hiÖn trong mét bé m¸y xö lý nµo ®ã. Cã thÓ lÊy môc ®Ých cho c¸c modul thiÕt kÕ víi Virtex-II Pro Platform FPGA, cã thÓ hoÆc lµ mét chip phÇn cøng silicon hoÆc lµ c¸c øng dông phÇn mÒm, b¹n cã thÓ ch¹y bé xö lý mét lâi cøng PowerPC ®−îc nhóng trong ®ã. Khi nãi ®Õn sù ph¸t triÓn phÇn mÒm nhóng, Xilinx ®−a ra sù hç trî ë rÊt nhiÒu møc. Xilinx hç trî c¸c bé vi xö lý nhóng trong Virtex-II Pro Platform FPGA víi c¸c phiªn b¶n cña Xilinx, c¸c c«ng cô nµy ®−îc dïng lµm mÉu cho c¸c øng dông thùc hiÖn cao vµ gi¸ thµnh thÊp. Víi c¸c kü s− phÇn cøng, hä muèn ph¸t triÓn c¸c modul thiÕt kÕ vµo trong phÇn mÒm vµ ch¹y trong lâi PowerPC, th× Virtex-II Pro lµ
  65. 65. 65 mét gi¶i ph¸p rÊt ®¬n gi¶n vµ chi phÝ thÊp cña Xilinx. Víi c¸c kü s− phÇn mÒm, hä muèn cã m«i tr−êng víi c¸c ®Æc tÝnh phong phó ®Ó cã thÓ ph¸t triÓn c¸c øng dông phøc t¹p h¬n, Xilinx cung cÊp kh¶ n¨ng truy cËp c¸c c«ng cô tèt nhÊt dïng cho môc ®Ých chuyªn dông ho¸ tõ c¸c nhµ dÉn ®Çu c«ng nghiÖp nhóng. B¹n cã thÓ ®−a c¸c thiÕt kÕ mµ b¹n ®−îc thõa h−ëng (TËn dông l¹i) mét c¸ch dÔ dµng vµo trong Virtex-II Pro Platform FPGA. 2.3. Lâi së h÷u trÝ tuÖ cña Xilinx ( IP_Core ) C¸c Website cña Xilinx cã mét c¬ së d÷ liÖu tæng hîp cña tÊt c¶ c¸c lâi logic (LogicCore) mµ c¸c lâi nµy ®· ®−îc kiÓm tra vµ ch¹y thö . B¹n cã thÓ tham kh¶o t¹i trang Web cña trung t©m IP ( Intellectual Property ) www.Xilinx.com/ipcenter. C«ng cô CORE Generator tõ Xilinx ®−a ra c¸c lâi logic ®−îc tèi −u ho¸ cao, t−¬ng thÝch víi c¸c ph−¬ng ph¸p thiÕt kÕ tiªu chuÈn cho Xilinx FPGA. C«ng cô nµy rÊt dÔ sö dông ®Ó t¹o ra c¸c lâi linh ho¹t, thùc hiÖn cao víi mét møc ®é cho phÐp ®Þnh tr−íc. 2.4. Giíi thiÖu vμ lËp tr×nh øng dông trªn phÇn mÒm WebPack ISE 6.2 2.4.1. Tæng quan ISE vµ c¸c c«ng cô tæng hîp PhÇn mÒm thiÕt kÕ ISE cã kh¶ n¨ng ®−a thiÕt kÕ vµo trong c¸c PLD (Programmable Logic Device) ®−îc chän lùa còng nh− c¸c b−íc thùc hiÖn thiÕt kÕ −a dïng. Nh×n chung c¸c b−íc tiÕn hµnh thiÕt kÕ cho FPGA vµ CPLD lµ gièng nhau, ng−êi thiÕt kÕ cã thÓ nhËp vµo mét thiÕt kÕ d−íi d¹ng mét s¬ ®å hoÆc d¹ng HDL (VHDL,
  66. 66. 66 Verilog, hoÆc ABEL). Mét thiÕt kÕ cã thÓ bao gåm c¶ d−íi d¹ng s¬ ®å vµ HDL. PhÇn mÒm ISE ®−îc kÕt hîp víi bé m« pháng MXE ®−a ra kh¶ n¨ng m« pháng vµ kiÓm tra chøc n¨ng cña VHDL. Bé m« pháng MXE ®−a ra mét biÓu ®å kiÓm tra, nã cho phÐp ng−êi dïng ®−a ra c¸c mÉu thö ®Ó test c¸c chøc n¨ng trong qu¸ tr×nh tæng hîp (®−îc gäi lµ TestBencher). Qu¸ tr×nh tæng hîp mét thiÕt kÕ ®−îc thùc hiÖn theo luång c¸c b−íc nh− h×nh 2.1 d−íi ®©y. H×nh 2.1. Luång thiÕt kÕ c¬ b¶n cña CPLD vµ FPGA BiÓu ®å trªn chØ ra sù gièng nhau vµ kh¸c nhau cña c¸c b−íc thùc hiÖn thiÕt kÕ mét FPGA vµ mét CPLD. Khi mét thiÕt kÕ hoµn thµnh, kÕt qu¶ cã thÓ ®−îc m« pháng vµ t¶i xuèng thiÕt bÞ. §Ó cã
  67. 67. 67 mét c¸ch nh×n tæng quan vµ thùc hiÖn tiÕp cËn c¸c b−íc thiÕt kÕ mét c¸ch nhanh nhÊt, trong môc nµy chØ ®−a ra mét kh¸i qu¸t s¬ l−îc c¬ b¶n nhÊt vµ c¸c môc tiÕp theo xin ®−îc tr×nh bµy mét vÝ dô cô thÓ vµ c¸c b−íc tiÕn hµnh thiÕt kÕ trªn FPGA vµ CPLD. Víi FPGA : Qu¸ tr×nh thùc hiÖn bao gåm bèn b−íc c¬ b¶n sau: 1. Translate - DÞch thiÕt kÕ vµ cho ch¹y kiÓm tra theo qui luËt thiÕt kÕ . 2. Map - TÝnh to¸n vµ cÊp ph¸t tµi nguyªn trong thiÕt bÞ ®Ých. 3. Place and Route - X¾p ®Æt c¸c khèi logic, ®Þnh cÊu h×nh phï hîp víi c¸c vÞ trÝ logic vµ sö dông c¸c tµi nguyªn ®Þnh tuyÕn . 4. Generate Programming File - t¹o ra dßng c¸c bit ch−¬ng tr×nh (T¹o file.Bit). Víi CPLD: Qu¸ tr×nh thùc hiÖn bao gåm ba b−íc c¬ b¶n sau : 1. Translate - DÞch thiÕt kÕ vµ cho ch¹y kiÓm tra theo qui luËt thiÕt kÕ 2. Fit - CÊp ph¸t tµi nguyªn vµ kÕt nèi . 3. Generate Programming File : T¹o file JED cho ch−¬ng tr×nh . C¸c c«ng cô phÇn mÒm tæng hîp thiÕt kÕ cña ISE : * ViÖc nhËp thiÕt kÕ cã vµi c¸ch kh¸c nhau vµ c«ng cô ®Ó tæng hîp thiÕt kÕ chÝnh lµ tæng hîp m· nguån ®−îc viÕt d−íi d¹ng VHDL, Verilog, ABEL sang d¹ng file netlist. C¸c thiÕt kÕ d−íi d¹ng s¬ ®å ®−îc chuyÓn ®æi sang m· nguån VHDL hoÆc Verilog mµ c¸c m· nguån nµy ®−îc tæng hîp b»ng XST theo d¹ng th«ng th−êng. * StateCAD lµ mét c«ng cô phÇn mÒm cho phÐp nhËp thiÕt kÕ d−íi d¹ng ®å ho¹ theo nhãm c¸c tr¹ng th¸i, nhãm c¸c tr¹ng th¸i nµy
  68. 68. 68 sÏ ®−îc dÞch ra HDL vµ ®−îc ®Ýnh vµo trong phÇn mÒm ISE. * Bé m« pháng MXE cã thÓ ®−îc sö dông cho viÖc m« pháng c¶ vÒ thêi gian vµ chøc n¨ng . * HDL Bencher : T¹o ra c¸c biÓu ®å kiÓm tra cho phÐp m« pháng thiÕt kÕ ë d¹ng test. * Implemention : C«ng cô thùc thi nµy cã mét vµi b−íc vµ sÏ ®−îc giíi thiÖu kü h¬n trong c¸c phÇn sau th«ng qua vÝ dô cô thÓ . * iMPACT Programmer : Modul nµy cho phÐp n¹p ch−¬ng tr×nh vµo thiÕt bÞ ®Ých ( Lóc nµy c¸p JTAG cÇn ph¶i ®−îc nèi víi cæng song song cña m¸y tÝnh. ) * CHIP VIEWER : C«ng cô nµy ®−îc sö dông ®Ó kiÓm tra thiÕt kÕ sau khi ®· thùc thi cÊu h×nh, chØ ra viÖc kÕt nèi gi÷a c¸c ch©n cña thiÕt bÞ . * Xpower : Cho phÐp tÝnh to¸n kh¶ n¨ng tiªu thô nguån cña thiÕt kÕ khi ch¹y trong thiÕt bÞ ®Ých . 2.4.2 . ThiÕt kÕ vµ thùc hiÖn thiÕt kÕ trªn CPLD vµ FPGA §Ó tiÕp cËn nhanh h¬n c¸c c«ng cô phÇn mÒm tæng hîp thiÕt kÕ, ë ®©y chóng ta sÏ tiÕn hµnh thiÕt kÕ trªn mét vÝ dô cô thÓ. Trong môc nµy xin giíi thiÖu mét vÝ dô chÝnh : "ThiÕt kÕ bé ®iÒu khiÓn ®Ìn tÝn hiÖu giao th«ng thùc hiÖn trªn CoolRunner-II CPLD vµ Spartan-3 FPGA" 2.4.2.1 ThiÕt kÕ trªn VHDL vµ StateCAD 1. NhËp thiÕt kÕ: Chän Start-> Program-> Xilinx ISE 6-> Project Navigator. Chän New Project trong menu File, ®Æt project lµ
  69. 69. 69 Traffic vµ ®Æt trong th− môc Traffic. H×nh 2.2. Cöa sæ nhËp tªn Project NhÊn nót Next cöa sæ sau sÏ xuÊt hiÖn, chän thiÕt bÞ vµ c¸c property nh− h×nh d−íi . ë ®©y ta chän CoolRunner II CPLD - xc2c256. H×nh 2.3 Cöa sæ nhËp New Project NhÊp next vµ chän New Source nh− cöa sæ sau. Chän VHDL
  70. 70. 70 modul vµ ®Æt tªn file lµ Counter . H×nh 2.4. Cöa sæ chän m· so¹n th¶o ch−¬ng tr×nh NhÊp chuét vµo nót Next vµ ®Æt c¸c cæng vµo ra nh− sau: - clock : in - reset : in - count : inout [3 down to 0] -- Bé ®Õm 4 bit. Sau ®ã nhÊp nót Next , Next , Finish .
  71. 71. 71 H×nh 2.5. Cöa sæ nhËp ®Çu vµo ra Cöa sæ Project Navigator sÏ hiÖn ra nh− sau: H×nh 2.6. Cöa sæ so¹n th¶o m· ch−¬ng tr×nh NhÊp ®óp chuét vµo Counter.vhd trong cña sæ Sources in Project b¹n sÏ ®−îc ch−¬ng tr×nh t¹o ra mét khung gåm c¸c tõ kho¸ trong cöa sæ Editor. B¹n cã thÓ sö dông c¸c mÉu ch−¬ng tr×nh cã s½n trong th− viÖn cña Xilinx. MÉu nµy ®−îc gäi lµ " Language Template". MÉu nµy lµ c«ng cô h÷u dông, nã trî gióp cho b¹n trong khi viÕt code ch−¬ng tr×nh. Nã bao gåm c¸c modul chøc n¨ng th«ng dông nh− bé ®Õm , bé chän kªnh, bé gi¶i m·, thanh ghi dÞch ... §Ó më c¸c modul mÉu b¹n kÝch chuét vµo menu Edit chän Language Template, cöa sæ sau xuÊt hiÖn.
  72. 72. 72 H×nh 2.7. Cöa sæ lÊy c¸c mÉu modul chuÈn Chän VHDL vµ kÝch chuét vµo dÊu céng cña dßng Synthesis Template, chän modul counter, kÐo vµ th¶ chóng vµo gi÷a Begin vµ End cña khung ch−¬ng tr×nh, sau ®ã tho¸t Language Template. Vµo Edit chän Replate vµ thay clk b»ng clock . Xo¸ phÇn sau ®©y vµ chØ ®Ó l¹i ®o¹n code nh− h×nh 3.8. if CE='1' then if LOAD='1' then COUNT <= DIN; else if DIR='1' then COUNT <= COUNT + 1; else COUNT <= COUNT - 1; end if;
  73. 73. 73 end if; end if; H×nh 2.8. Cöa sæ m· ch−¬ng tr×nh bé Counter Nh− vËy trong ch−¬ng tr×nh sÏ gåm hai ®−êng vµo lµ clock vµ reset, mét bus ®Çu ra count ra 4 bit (3 downto 0). Chøc n¨ng cña bé ®Õm nµy lµ ®Õm tiÕn khi cã mçi xung Clock ®Çu vµo d−¬ng. TÝn hiÖu reset kh«ng ®ång bé vµ nã ®−îc xem xÐt tr−íc khi xung clock ho¹t ®éng. NhÊn nót save ®Ó ghi l¹i Project. 2. M« pháng chøc n¨ng cña bé ®Õm: Tõ Project Menu chän New Source, chän Test Bench Waveform vµ ®Æt tªn cho file nµy lµ counter_tb nh− h×nh d−íi.
  74. 74. 74 H×nh 2.9 Cöa sæ chän m· nguån so¹n th¶o NhÊp nót Next, cöa sæ khëi t¹o timer hiÖn ra vµ chän nh− cöa sæ d−íi ®©y, nhÊn ok, biÓu ®å kÝch thÝch hiÖn ra ®Ó chuÈn bÞ cho m« pháng chøc n¨ng cña bé ®Õm. H×nh 2.10. Cöa sæ khëi t¹o Clock
  75. 75. 75 H×nh 2.11. Cöa sæ khëi t¹o kÝch thÝch ®Çu vµo ra cho TestBench ThiÕt lËp c¸c kÝch thÝch vµo ra nh− sau: - §Æt ®−êng Reset ë chu kú thø nhÊt lªn 1 - §Æt ®−êng Reset ë chu kú thø hai xuèng 0 - KÝch chuét vµo « mÇu vµng cña COUNT[3:0] t¹i chu kú thø nhÊt vµ kÝch vµo nót Pattern cöa sæ Pattern Wizard hiÖn ra nh− sau :
  76. 76. 76 H×nh 2.12. Cöa sæ thiÕt lËp bé ®Õm NhÊn nót OK , lóc nµy biÓu ®å sãng kÝch thÝch sÏ hiÖn ra : H×nh 2.13. Cöa sæ khëi t¹o kÝch thÝch vµo ra cho TestBench KÝch vµo Save ®Ó ghi l¹i biÓu ®å sãng. NÕu muèn thay ®æi b¹n cã thÓ kÝch ®óp chuét vµo file counter_tb.tbw khi ®ã biÓu ®å sãng sÏ hiÖn ra cho b¹n söa ®æi. B©y giê b¹n cho ch¹y thö biÓu ®å sãng
  77. 77. 77 cña bé ®Õm . Chän file counter_tb.tbw trong cña sæ Sources in Project cña m«i tr−êng ISE, kÝch chuét ph¶i vµo Simulate Behavioral VHDL Model chän Properties, trong tr−êng Simulation Run Time gâ "-all" bÊm OK. Trong cöa sæ Processes for Source kÝch ®óp chuét vµo dßng Simulate Behavioral VHDL Model, d¹ng sãng cña bé ®Õm sÏ ®−îc hiÖn ra nh− sau: H×nh 2.14. BiÓu ®å sãng ®Çu ra cña bé ®Õm KÝch vµo nót Save ®Ó ghi l¹i d¹ng sãng d−íi d¹ng file ".do" kÝch vµo nót Close ®Ó tho¸t ch−¬ng tr×nh. 3. Bé so¹n th¶o m¸y tr¹ng th¸i ( StateCAD ) Víi thiÕt kÕ bé ®iÒu khiÓn ®Ìn tÝn hiÖu giao th«ng, bé ®Õm ®ãng vai trß nh− mét timer ®Ó x¸c ®Þnh thêi gian chuyÓn tr¹ng th¸i . M¸y tr¹ng th¸i bao gåm bèn tr¹ng th¸i nh− sau: - Tr¹ng th¸i mét : §Ìn ®á s¸ng (Red Light)
  78. 78. 78 - Tr¹ng th¸i hai : §Ìn ®á vµ ®Ìn vµng s¸ng ( Red and Amber light ) - Tr¹ng th¸i ba : §Ìn xanh s¸ng ( Green Light ) - Tr¹ng th¸i thø t− : §Ìn vµng s¸ng ( Amber Light ) §Ó gäi bé so¹n th¶o nhãm tr¹ng th¸i, chän New Source tõ Project Menu. Chän Modul State Diagram vµ ®Æt tªn file lµ stat_mac.dia, kÝch nót Next sau ®ã nhÊn finish. Cöa sæ New Source hiÖn ra nh− sau: H×nh 2.15. Cöa sæ chän m· nguån so¹n th¶o M«i tr−êng so¹n th¶o nhãm tr¹ng th¸i hiÖn ra nh− h×nh vÏ:
  79. 79. 79 H×nh 2.16. Cöa sæ so¹n th¶o m¸y tr¹ng th¸i KÝch chuét vµo biÓu t−îng d−íi cã nh·n Draw State Machines, sau ®ã cöa sæ State Machine Wizard hiÖn ra nh− h×nh 3.17. H×nh 2.17. Cöa sæ t¹o nhãm c¸c tr¹ng th¸i m¸y
  80. 80. 80 Chän sè tr¹ng th¸i lµ 4, nhÊp nót Next sau ®ã chän chÕ ®é reset lµ synchronous, nhÊp nót Next ®Ó vµo cöa sæ chuyÓn tr¹ng th¸i, ë ®©y trong hép chuyÓn tr¹ng th¸i ta gâ TIMER . H×nh 2.18. Cöa sæ thiÕt lËp c¸c kÝch thÝch chuyÓn tr¹ng th¸i KÝch chuét vµo nót Finish vµ vÏ c¸c nhãm tr¹ng th¸i trong trang so¹n th¶o. Khi nhÊn nót finish mét khung vu«ng xuÊt hiÖn cïng víi mòi tªn cña con chuét vµ b¹n chØ viÖc vÏ mét khung trªn nÒn so¹n th¶o. Lóc nµy bèn tr¹ng th¸i xuÊt hiÖn vµ b©y giê ta ®i so¹n c¸c tr¹ng th¸i . KÝch ®óp chuét vµo « Reset State 0 mÇu vµng vµ thay ®æi tªn cña tr¹ng th¸i nµy thµnh "RED", sau ®ã nhÊn vµo nót "output Wizard".
  81. 81. 81 H×nh 2.19 Cöa sæ so¹n th¶o tr¹ng th¸i ®¬n ThiÕt kÕ sÏ bao gåm ba ®Çu ra ®−îc ®Æt tªn lµ RD, AMB, GRN. Trong tr−êng DOUT cña hép tho¹i d−íi ®©y ta gâ vµo RD ®Ó khai b¸o ®Çu ra, ®Æt ®Çu ra nµy víi h»ng lµ "1" vµ chän lµ ®Çu ra cña thanh ghi . KÝch chuét vµo nót OK ®Ó quay vÒ hép tho¹i Edit State, lµm t−¬ng tù víi ba tr¹ng th¸i cßn l¹i . - §æi tªn State1 thµnh "REDAMB" vµ sö dông "Output Wizard" thiÕt lËp RD =1 vµ mét ®Çu ra míi víi tªn lµ AMB =1 vµ ®Çu ra lµ mét thanh ghi. - §æi tªn State 2 thµnh "GREEN" vµ sö dông "Output Wizard" ®Ó thiÕt lËp mét ®Çu ra míi víi tªn lµ GRN =1 vµ ®Çu ra còng chän lµ thanh ghi. - §æi tªn State 3 thµnh "AMBER" vµ sö dông "Output Wizard" ®Ó thiÕt lËp mét ®Çu ra AMBER =1, ®Çu ra còng chän lµ thanh ghi.. Khi nµy nhãm tr¹ng th¸i ph¶i cã nh− h×nh 3.20:
  82. 82. 82 TIMER TIMER TIMER TIMER RESET GREEN GRN = '1'; REDAMB RD = '1'; AMB = '1'; RED RD = '1'; AMBER AMB = '1'; H×nh 2.20. C¸c nhãm tr¹ng th¸i trong bé so¹n th¶o StateMachine KÝch ®óp chuét vµo ®−êng chuyÓn tr¹ng th¸i gi÷a tr¹ng th¸i "RED" vµ "REDAMB", lóc nµy b¹n ph¶i thiÕt lËp bé Timer hiÖn ra nh− cöa sæ h×nh 3.21, sau ®ã nhÊn OK . Lµm t−¬ng tù nh− trªn víi ba ®−êng cßn l¹i: - §−êng gi÷a REDAMB vµ GREEN , TIMER = "0100" - §−êng gi÷a GREEN vµ AMBER , TIMER = "0011" - §−êng gi÷a AMBER vµ RED , TIMER = "0000"
  83. 83. 83 H×nh 2.21. T¹o ®iÒu kiÖn kÝch thÝch ®Çu ra Cuèi cïng b¹n ph¶i khai b¸o mét vector Timer bëi viÖc kÝch vµo nót ë bªn tr¸i cña cöa sæ s¹n th¶o nhãm tr¹ng th¸i cã biÓu t−îng .KÐo vµ th¶ vµo cöa sæ so¹n th¶o, kÝch ®óp vµo chóng vµ ®æi tªn vector thµnh TIMER nh− cöa sæ sau. H×nh 2.22. Cöa sæ t¹o vÐc t¬ chuyÓn tr¹ng th¸i KÝch nót OK , khi nµy cöa sæ so¹n th¶o cña b¹n ph¶i cã h×nh 3.23.
  84. 84. 84 TIMER="0011" TIMER="0100" TIMER="1111" TIMER="0000" RESET TIMER[3:0] GREEN GRN = '1'; REDAMB RD = '1'; AMB = '1'; RED RD = '1'; AMBER AMB = '1'; H×nh 2.23. C¸c nhãm tr¹ng th¸i sau khi so¹n th¶o xong KÝch chuét vµo nót Generate HDL cã biÓu t−îng . Hép tho¹i th«ng b¸o kÕt qu¶ sÏ xuÊt hiÖn, chó ý dßng ch÷ "Compiled Perfectly" ®ãng hép tho¹i nµy, ghi vµ ®ãng ch−¬ng tr×nh so¹n th¶o nhãm tr¹ng th¸i l¹i. Nhãm c¸c tr¹ng th¸i nµy b©y giê ®· ®−îc ®Ýnh vµo ch−¬ng tr×nh ISE cña chóng ta. Quay l¹i ISE ta thÊy ch−¬ng tr×nh ®Ìn giao th«ng bao gåm hai modul chÝnh lµ Counter.vhd vµ Stat_mac.vhd .
  85. 85. 85 4. ThiÕt kÕ VHDL møc cao: Nh− vËy trong ch−¬ng tr×nh cña chóng ta gåm hai modul chÝnh, b©y giê chóng ta ph¶i thÓ hiÖn hai modul nµy trong mét líp trªn cïng mµ cã chøa hai modul nµy, hay cßn ®−îc gäi lµ thÓ hiÖn chóng trong líp chÝnh-líp Top. Tõ Project Menu chän New Source vµ ®Æt tªn cho chóng lµ top.vhd Trong cöa sæ Source chän file counter.vhd, trong cöa sæ Process nhÊp ®óp chuét vµo dßng View VHDL Instantiation Template trong phÇn Design Entry Utilities. Copy phÇn sau vµ d¸n vµo phÇn khai b¸o component vµ phÇn Instantiation cña file top.vhd. COMPONENT counter PORT ( clock : IN std_logic; reset : IN std_logic; count : INOUT std_logic_vector(3 downto 0)); END COMPONENT; Inst_counter: counter PORT MAP (clock => ,
  86. 86. 86 reset => , count => ); TiÕp tôc, thùc hiÖn t−¬ng tù trong cöa sæ Sources in Project chän file stat_mac.vhd, trong cöa sæ Source nh¸y ®óp vµo View VHDL Instantiation Template. Copy phÇn khai b¸o Component vµ phÇn Instantiation d¸n vµo file top.vhd. Khai b¸o mét Signal timer : std_logic_vector (3 downto 0) ë d−íi khai b¸o cÊu tróc . Sau khi thùc hiÖn c¸c b−íc ta sÏ cã ch−¬ng tr×nh cña líp top nh− sau. library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity top is Port ( clock : in std_logic; reset : in std_logic; red_light : out std_logic; amber_light : out std_logic; green_light : out std_logic); end top; architecture Behavioral of top is signal timer : std_logic_vector (3 downto 0); COMPONENT counter PORT ( clock : IN std_logic; reset : IN std_logic;
  87. 87. 87 count : INOUT std_logic_vector(3 downto 0)); END COMPONENT; COMPONENT stat_mac PORT (TIMER : IN std_logic_vector(3 downto 0); CLK : IN std_logic; RESET : IN std_logic; AMB : OUT std_logic; GRN : OUT std_logic; RD : OUT std_logic); END COMPONENT; begin Inst_counter: counter PORT MAP ( clock => clock, reset => reset, count => timer); Inst_stat_mac: stat_mac PORT MAP ( TIMER => timer, CLK => clock, RESET => reset, AMB => amber_light, GRN => green_light, RD => red_light); end Behavioral; Sau khi cã ®−îc ch−¬ng tr×nh nh− trªn b¹n nhÊp nót Save, lóc
  88. 88. 88 nµy trong cöa sæ Sources in Project sÏ tù ®éng x¾p xÕp theo thø tù. Líp top.vhd lµ líp trªn cïng cã chøa hai modul con. H×nh 2.24. Cöa sæ Source cña Project Traffic B©y giê ta cã thÓ ®i m« pháng toµn bé thiÕt kÕ, chän file top.vhd vµ trong menu Project chän New Source, ®Æt file m« pháng lµ top_tb.tbw. Lóc nµy cÇn ph¶i cho c¸c kÝch thÝch ®Çu vµo cña thiÕt kÕ. Víi ®−êng tÝn hiÖu vµo Reset, trong chu kú mét ®Æt lµ High, tõ chu kú thø hai lµ low . KÐo ®−êng säc ®øng mµu xanh ®Õn chu kú thø 64, hoÆc bÊm chuét ph¶i vµo ®−êng säc xanh ®ã vµ chän Set End of Testbench. Ghi l¹i file testbench nµy víi tªn file lµ top_tb.tbw, ®ãng cöa sæ so¹n th¶o biÓu ®å kiÓm tra l¹i. Trong cöa sæ Sources in Project chän file top_tb.tbw. Trong cöa sæ Processes for Source nh¸y ®óp vµo dßng Simulate Behavioral VHDL Model lóc nµy ta thu ®−îc gi¶n ®å sãng cña thiÕt kÕ nh− h×nh 3.25.
  89. 89. 89 H×nh 2.25. D¹ng sãng ®Çu ra cña Project Traffic §Õn ®©y chóng ta cã thÓ b−íc sang phÇn thùc thi trªn thiÕt bÞ , xong ë ®©y xin giíi thiÖu mét ph−¬ng ph¸p kh¸c ®Ó cã thÓ thùc hiÖn ®−îc thiÕt kÕ nµy. 3.2.2 ThiÕt kÕ trªn S¬ ®å ( Schematic Design ) §«i khi ®Ó cho dÔ h×nh dung ®−îc thiÕt kÕ, ng−êi ta dïng ph−¬ng ph¸p thiÕt kÕ trªn s¬ ®å. ë ®©y chóng ta x©y dùng thiÕt kÕ theo s¬ ®å ë møc top, kÕt nèi c¸c khèi trong chóng vµ sö dông c«ng cô ECS Schematic. Gi¶ sö ta ®· x©y dùng ®−îc hai modul lµ counter.vhd vµ stat_mac.vhd nh− h×nh 3.26. Trong m«i tr−êng ISE chän menu Project, chän New Source vµ ®Æt tªn cho thiÕt kÕ líp ®Ønh lµ Top_SCH.
  90. 90. 90 H×nh 2.26. T¹o Project Traffic bëi Schematic NhÊp nót NEXT , lóc nµy bé so¹n th¶o ECS xuÊt hiÖn nh− sau: H×nh 2.27. Cöa sæ so¹n th¶o ECS Quay trë l¹i víi m«i tr−êng ISE Project Navigator trong cöa sæ Source chän file counter.vhd, trong cöa sæ Process, kÝch ®óp vµo dßng Creat Schematic Symbol. Thùc hiÖn t−¬ng tù víi file stat_mac.vhd, quay trë l¹i víi m«i tr−êng ECS ta sÏ thÊy hai biÓu t−îng counter vµ stat_mac trong th− viÖn symbol.
  91. 91. 91 Trong cöa sæ th− viÖn nh¸y ®óp vµo counter vµ ®Æt trá chuét vµo trong m«i tr−êng so¹n th¶o, lµm t−¬ng tù víi stat_mac ta sÏ thÊy hai symbol thÓ hiÖn trong file top_sch nh− sau. Chän c«ng cô Add Wire b»ng viÖc kÝch vµo biÓu t−îng , sau ®ã nèi hai ®−êng clock vµ reset cña hai khèi l¹i, ®−êng count nèi víi ®−êng timer. Sau ®ã chän Add Net Name cã biÓu t−îng ch÷ abc , lóc nµy « nhËp Net xuÊt hiÖn, ta gâ clock sau ®ã Ên Enter, ®Æt vµo net clock, lµm t−¬ng tù víi c¸c net cßn l¹i . H×nh 2.28. Project Traffic trong ECS TiÕp theo ph¶i ®i ®Æt c¸c ®iÓm dÊu vµo ra. Tõ menu thanh c«ng

×