-1- Lêi cam ®oan T«i xin cam ®oan b¶n luËn v¨n nµy lµ kÕt qu¶ nghiªn cøu cña b¶n th©n díi sù híng dÉn cña TS. NÕu cã g× sai ph¹m, t«i xin chÞu hoµn toµn tr¸ch nhiÖm. Ngêi lµm cam ®oan NguyÔn ViÕt TuyÕn NguyÔn ViÕt TuyÕn XLTT – TT 2003 Luan van -2- Môc lôc Trang Lêi cam ®oan. 2 Danh môc c¸c ký hiÖu, c¸c ch÷ viÕt t¾t.
5 Danh môc c¸c h×nh vÏ. 7 Ch¬ng 1:Tæng quan vÒ m¹ch logic lËp tr×nh ®îc. LÞCH Sö PH¸T TRIÓN CñA VI M¹CH Sè LËP TR×NH. CÊu tróc cña thiÕt bÞ logic cã thÓ lËp tr×nh ®îc (Programmable Logic Architecture: PLA).
Nh÷ng u thÕ cña thiÕt kÕ ®îc trî gióp cña m¸y tÝnh vµ logic cã thÓ lËp tr×nh (Computer-Aided Design and Programmable Logic). D·y c¸c cæng logic lËp tr×nh ®îc theo trêng (FPGA: Field Programmable Gate Array). CÊu tróc cña FPGA. M¹ng kÕt nèi tæng thÓ vµ c¸c bé ®Öm.
31 Ch¬ng 2: Ng«n ng÷ m« t¶ phÇn cøng VHDL (Very High Speed Intergrated Circuit Hardware Description Language) .2 C¸c thuËt ng÷ cña VHDL. CÊu tróc cña mét ch¬ng tr×nh VHDL. C¸c ®¬n vÞ thiÕt kÕ trong VHDL. 38 NguyÔn ViÕt TuyÕn XLTT – TT 2003 Luan van -3- 2.
C¸c kiÓu d÷ liÖu trong VHDL. C¸c ®èi tîng d÷ liÖu. To¸n tö vµ biÓu thøc. C¸c lÖnh tuÇn tù trong VHDL.
C¸c lÖnh vßng lÆp. C¸c lÖnh song song trong VHDL. C¸c qu¸ tr×nh Process. C¸c phÐp g¸n tÝn hiÖu song song.
PhÐp g¸n tÝn hiÖu cã ®iÒu kiÖn. PhÐp g¸n theo lùa chän. Gäi ch¬ng tr×nh con song song. Ch¬ng tr×nh con.
58 Ch¬ng 3: ThiÕt kÕ modul Thùc hµnh FPGA sö dông FPGA XC2S100-5PQ144C cña Xilinx. Tr×nh tù thiÕt kÕ víi FPGA. ThiÕt kÕ modul thùc hµnh FPGA. Môc ®Ých vµ yªu cÇu cña modul.
S¬ ®å khèi vµ ®Æc ®iÓm cña c¸c khèi. 62 NguyÔn ViÕt TuyÕn XLTT – TT 2003 Luan van -4- 3. Nh÷ng c«ng cô sö dông khi thiÕt kÕ modul. ThiÕt kÕ c¸c khèi chøc n¨ng cña modul .ThiÕt kÕ mÉu m¹ch gi¶i m· bµn phÝm ch¹y thö trªn modul.
ThiÕt kÕ ch¬ng tr×nh VHDL .Tæng hîp thiÕt kÕ. §Æt ch©n cho FPGA. N¹p FPGA vµ ch¹y thö. 92 Tµi liÖu tham kh¶o.
93 Phô lôc 1: Ch¬ng tr×nh nguån khèi t¹o tÝn hiÖu ®Çu vµo Phô lôc 2: Ch¬ng tr×nh VHDL m« t¶ bé ®Õm NguyÔn ViÕt TuyÕn XLTT – TT 2003 Luan van -5- Danh môc c¸c ký hiÖu, c¸c ch÷ viÕt t¾t Ký hiÖu viÕt t¾t TiÕng Anh B 0 IFL Intergrated Fuse Logic MSI Medium Scale Integrated PCB Printed Circuit Board AMD Advance Micro Devices ASIC Application Specific Integrated Circuit AMAZE Automated Map and Zap Equations CPLD Complex Programmable Logic Devices CPLD Complex Programmable Logic Devices CAD Computer Aided Design CLBs Configurable Logic Blocks ERASIC Erasable Application Specific IC FPGA Field Programmable Gate Array GAL Generic Array Logic GSR Global Initialization Signal HDL Hardware Description Languages IOBs Input/Output Blocks LCA Logic Call Array PAL Programmable Array Logic PLA Programmable Logic Device PML Programmable Macro Logic SPLD Simple Programmable Logic Devices SSI Small Scale Integrated CUPL Universal Compiler for Programmable VHDL Very High Speed Intergrated Circuit d i i NguyÔn ViÕt TuyÕn XLTT – TT 2003 Luan van -6- Danh môc c¸c h×nh vÏ H×nh Tªn h×nh H×nh1.1 M¹ch PLA H×nh1.2 M¹ch PAL H×nh1.3 M¹ch SPLD H×nh1.4 B¶ng LUT 4 ®Çu vµo H×nh1.5 Qui tr×nh thiÕt kÕ x©y dùng mét m¹ch sè.6 CÊu tróc chung cña FPGA H×nh1.7 Mét CLB ®iÓn h×nh cña FPGA dßng Spartan H×nh1.8 Bé t¹o hµm 5 ®Çu vµo H×nh1.9 S¬ ®å khèi chøc n¨ng cña Flip-Flop trong CLB H×nh1.10 GhÐp nèi c¸c tÝn hÞªu ®iÒu khiÓn H×nh1.11 S¬ ®å khèi cña IOB H×nh1.12 S¬ ®å khèi chøc n¨ng IOB.1 CÊu tróc chung cña ch¬ng tr×nh VHDL H×nh 2.2 Quan hÖ gi÷a c¸c ®¬n vÞ thiÕt kÕ H×nh 3.1 Tr×nh tù thiÕt kÕ víi FPGA H×nh 3.2 S¬ ®å khèi cña modul H×nh 3.3 Kit XSA- 100 H×nh 3.4 Giao tiÕp gi÷a FPGA vµ m¸y tÝnh th«ng qua cæng LPT H×nh 3.5 Giao diÖn ch¬ng tr×nh t¹o tÝn hiÖu ®Çu vµo cho m¹ch tæ hîp H×nh 3.6 Giao diÖn ch¬ng tr×nh t¹o tÝn hiÖu cho khèi gi¶i m· bµn phÝm H×nh 3.7 Giao diÖn ch¬ng tr×nh t¹o tÝn hiÖu ®iÒu khiÓn bé ®Õm H×nh 3.8 S¬ ®å nguyªn lý khèi nguån H×nh 3.9 S¬ ®å nguyªn lý cña nodul H×nh 3.10 H×nh ¶nh thËt cña modul H×nh 3.11 S¬ ®å khèi m¹ch gi¶i m· bµn phÝm H×nh 3.12 Tæng hîp logic H×nh 3.13 S¬ ®å nguyªn lý bé chän tÇn sè H×nh 3.14 §Æt ch©n cho FPGA NguyÔn ViÕt TuyÕn XLTT – TT 2003 Luan van -7- Lêi nãi ®Çu Trong nh÷ng n¨m gÇn ®©y c«ng nghÖ ®iÖn tö ®· vµ ®ang ph¸t triÓn nh¶y vät. C¸c lo¹i IC LSI, VLSI víi kh¶ n¨ng tÝch hîp tíi hµng triÖu Transistor ®· ra ®êi víi nhiÒu øng dông kh¸c nhau trong C«ng nghÖ th«ng tin, §iÖn tö viÔn th«ng, Tù ®éng ho¸.kh«ng ngõng ®¸p øng c¸c nhu cÇu cña x· héi. Mét trong nh÷ng c«ng nghÖ míi ®îc ra ®êi, cã thÓ thay thÕ cho c¸c hÖ thèng sè tríc ®©y ®ßi hái rÊt nhiÒu thêi gian vµ chi phÝ cho nghiªn cøu vµ chÕ t¹o, ®ã lµ c«ng nghÖ ASIC (Application Specific Integrated Circuit). DÉn ®Çu trong lÜnh vùc nµy lµ s¶n phÈm FPGA (Field Programmable Gate Array) vµ CPLD (Complex Programmable Logic Devices).
Sö dông FPGA hoÆc CPLD cã thÓ tèi thiÓu hãa ®îc nhiÒu c«ng ®o¹n thiÕt kÕ, l¾p r¸p v× hÇu hÕt ®îc thùc hiÖn trªn m¸y tÝnh. C¸c ng«n ng÷ m« pháng phÇn cøng (HDL: Hardware Description Languages) nh ABEL, VHDL, Verilog, Schematic.cho phÐp thiÕt kÕ vµ m« pháng ho¹t ®éng cña m¹ch b»ng ch¬ng tr×nh. C¸c ch¬ng tr×nh m« pháng cho phÐp x¸c ®Þnh lçi thiÕt kÕ mét c¸ch dÔ dµng vµ kÕt qu¶ thùc hiÖn cña ch¬ng tr×nh lµ mét file bit cÊu h×nh (bitstream) ®Ó n¹p (download) vµo FPGA vµ CPLD ®Ó nã ho¹t ®éng gièng nh mét m¹ch logic. C¸c FPGA vµ CPLD víi kh¶ n¨ng tÝch hîp cao tíi hµng triÖu gate vµ cÊu tróc m¹ch tèi u ho¸ mËt ®é tÝch hîp, hiÖu suÊt cao cho phÐp xö lý nhanh sè liÖu, ®é tin cËy vµ chÊt lîng cao, dÔ sö dông do ®ã ®îc øng dông rÊt ®a d¹ng trong nhiÒu lo¹i thiÕt bÞ ®iÖn tö hiÖn nay.
Trong khu«n khæ luËn v¨n tèt nghiÖp ®îc sù híng dÉn, gióp ®ì cña TiÕn sü §Æng V¨n ChuyÕt, t«i m¹nh d¹n t×m hiÓu vµ nghiªn cøu c«ng nghÖ NguyÔn ViÕt TuyÕn XLTT – TT 2003 Luan van -8- FPGA vµ thiÕt kÕ modul thùc hµnh FPGA ®Ó phôc vô c«ng t¸c gi¶ng d¹y t¹i trêng Cao ®¼ng C«ng nghiÖp Hµ néi Néi dung cña luËn v¨n bao gåm 3 ch¬ng, trong ®ã: Ch¬ng 1: Tæng quan vÒ m¹ch logic lËp tr×nh ®îc vµ c«ng nghÖ FPGA Ch¬ng 2: Ng«n ng÷ m« t¶ phÇn cøng VHDL Ch¬ng 3: ThiÕt kÕ modul thùc hµnh FPGA sö dông FPGA XC2S100 cña Xilinx. Cuèi luËn v¨n lµ 2 phô lôc: Phô lôc 1: Ch¬ng tr×nh nguån bé t¹o tÝn hiÖu ®Çu vµo ®îc viÕt b»ng Visual Basic 6. Phô lôc 2: Ch¬ng tr×nh VHDL m« t¶ bé ®Õm. Do thêi gian vµ kh¶ n¨ng cã h¹n nªn luËn v¨n nµy ch¾c cßn thiÕu sãt, t¸c gi¶ rÊt mong nhËn ®îc nh÷ng ý kiÕn ®ãng gãp cña c¸c thÇy gi¸o, c« gi¸o.
Hµ néi, ngµy 25 th¸ng 10 n¨m 2005 Ngêi viÕt luËn v¨n NguyÔn ViÕt TuyÕn NguyÔn ViÕt TuyÕn XLTT – TT 2003 Luan van -9- Ch¬ng1 Tæng quan vÒ m¹ch logic lËp tr×nh ®îc vµ c«ng nghÖ FPGA 1. LÞCH Sö PH¸T TRIÓN CñA VI M¹CH Sè LËP TR×NH. Tríc thêi kú vi m¹ch sè lËp tr×nh PLD (Programmable Logic Device) ra ®êi, thiÕt kÕ logic sè truyÒn thèng th× bao gåm nhiÒu vi m¹ch TTL(Transistor Transistor Logic) lo¹i MSI (Medium Scale Integrated) vµ SSI (Small Scale Integrated) kÕt hîp l¹i ®Ó t¹o ra c¸c hµm logic mong muèn. Nh÷ng nhµ thiÕt kÕ dùa vµo nh÷ng s¸ch tra cøu c¸c vi m¹ch sè ®Ó t×m hiÓu c¸c th«ng sè kü thuËt, sau ®ã míi quyÕt ®Þnh sö dông c¸c vi m¹ch sè cÇn thiÕt cho yªu cÇu thiÕt kÕ cña hä.
§iÒu bÊt lîi cña viÖc thiÕt kÕ nµy lµ trong mét board sö dông nhiÒu vi m¹ch, do ®ã khi söa ch÷a gÆp nhiÒu khã kh¨n. Vµo n¨m 1975, c«ng ty SIGNETICS ®· giíi thiÖu vi m¹ch sè lËp tr×nh kh«ng cã bé nhí ®Çu tiªn 82S100 (hiÖn nay lµ PLS100) gäi lµ m¶ng logic lËp tr×nh trêng (Field-Programmable Logic Array) vµ Napoleon Cavlan ®îc coi lµ cha ®Î cña m¹ch logic lËp tr×nh, lóc bÊy giê lµ nhµ qu¶n lý nh÷ng øng dông PLA cña Signetics ®· thùc sù hiÓu r»ng sö dông PLA lµ ph¬ng ph¸p tèt h¬n ®Ó thiÕt kÕ vµ thay ®æi hÖ thèng sè. Trong khi ®ã, c«ng ty Harris ®· sím giíi thiÖu PROM, hä tr×nh bµy triÓn väng cña PROM vµ ®· øng dông vµo trong mét sè m¹ch logic. C«ng ty National Semiconductor ®· chÕ t¹o mÆt n¹ lËp tr×nh cho PLA (Programmable Logic Array), cÊu t¹o cña nã gåm mét m¶ng AND lËp tr×nh kÌm víi m¶ng OR lËp tr×nh, cho phÐp thùc hiÖn tæ hîp tæng c¸c tÝch sè cña NguyÔn ViÕt TuyÕn XLTT – TT 2003 Luan van -10- hµm logic tiªu chuÈn.
B»ng c¸ch kÕt hîp c«ng nghÖ PROM sö dông nguyªn t¾c cÇu ch× víi kh¸i niÖm PLA, Cavian ®· thuyÕt phôc ®îc c¸c nhµ qu¶n lý c«ng ty Signetics ®Ó ®a dù ¸n PLAvµo s¶n xuÊt. Vi m¹ch PLA ®Çu tiªn 82S100, lµ thµnh viªn ®Çu tiªn cña hä vi m¹ch IFL (Intergrated Fuse Logic) cã h×nh d¹ng 28 ch©n. CÊu tróc cña PLA gåm mét m¶ng AND lËp tr×nh vµ mét m¶ng OR lËp tr×nh, nã cho phÐp thùc hiÖn tæ hîp logic tæng cña c¸c tÝch sè ®¬n gi¶n. Vµo n¨m 1977 Signetics giíi thiÖu hä vi m¹ch FPGA (Field Programmable Gate Array) 82S103.
Hä FPGA cã cÊu t¹o mét m¶ng AND ë møc ®¬n víi ngâ vµo lËp tr×nh ®îc vµ cùc tÝnh ngâ ra còng vËy cho phÐp thùc hiÖn c¸c hµm logic c¬ b¶n (AND, OR, NAND, NOR, INVERT), cÊu tróc cña hä FPLS cã chøc c¸c FlipFlop ®Ó thùc hiÖn c¸c tr¹ng th¸i cña hµm tuÇn tù. §ång thêi Signetics còng giíi thiÖu AMAZE (Automated Map and Zap Equations) lµ ch¬ng tr×nh biªn dÞch ®Ó hæ trî cho nh÷ng vi m¹ch cña hä. T¬ng tù, nh÷ng c«ng ty chÕ t¹o PLD kh¸c ®· lÇn lîc giíi thiÖu nh÷ng phÇn mÒm hç trî cña hä. Tuy thÕ, kÜ thuËt logic lËp tr×nh tiÕp tôc c¶i tiÕn vµ nh÷ng vi m¹ch ph¸t triÓn ë giai ®o¹n thø hai ®îc giíi thiÖu vµo n¨m 1983.
C«ng ty AMD (Advance Micro Devices) ®· giíi thiÖu PAL22V10 víi nh÷ng ®Æc ®iÓm ®Æc biÖt lµ sù linh ®éng cña nh÷ng cæng PLD ë 10 ngâ vµo. Mçi cæng PLD cã kh¶ n¨ng tæ hîp hoÆc víi thanh ghi ë ngâ ra hoÆc mét ngâ vµo. Cæng ®Öm ngâ ra ba tr¹ng th¸i ®îc ®iÒu khiÓn bëi mét tÝch sè riªng cho phÐp vËn hµnh hai chiÒu. TÊt c¶ thanh ghi ®Òu ®îc reset tù ®éng trong qu¸ tr×nh t¾t hay më vµ mçi thanh ghi cã kh¶ n¨ng “®Æt tríc”, ®ã lµ ®Æc ®iÓm ®Æc biÖt cho viÖc kiÓm tra sau nµy.