BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI BỒ QUỐC BẢO NGHIÊN CỨU MODUL GIẢNG DẠY FPGA LUẬN VĂN THẠC SĨ NGÀNH XỬ LÝ THÔNG TIN VÀ TRUYỀN THÔNG Hà Nội, 2005 17061131649831000000 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI BỒ QUỐC BẢO NGHIÊN CỨU MODUL GIẢNG DẠY FPGA LUẬN VĂN THẠC SĨ NGÀNH XỬ LÝ THÔNG TIN VÀ TRUYỀN THÔNG NGƯỜI HƯỚNG DẪN: TS NGUYỄN LINH GIANG Hà Nội, 2005 Bå Quèc B¶o -2- Líp CH XLT XLTT&TT T&TT 2003 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. NguyÔn Linh Giang. NÕu cã g× sai ph¹m, t«i xin hoµn toµn chÞu tr¸ch nhiÖm. Ngêi lµm cam ®oan Bå Quèc B¶o Bå Quèc B¶o -3- Líp CH XLT XLTT&TT T&TT 2003 Môc lôc Lêi cam ®oan.
3 Danh môc c¸c h×nh vÏ. Tæng quan vÒ ASIC lËp tr×nh ®îc. Tæng quan vÒ c¸c c«ng nghÖ. Sù ra ®êi cña c«ng nghÖ AsiC.
C¸c h·ng chÝnh øng dông c«ng nghÖ ASIC. C¸c híng tiÕp cËn thiÕt kÕ ASIC. §Çu vµo thiÕt kÕ ASIC. Tæng hîp logic.
C¸c c«ng cô thiÕt kÕ vµ ph¸t triÓn ASIC. Xilinx vµ s¶n phÈm FPGA. Giíi thiÖu vÒ c«ng ty Xilinx. C¸c dßng s¶n phÈm chÝnh cña Xilinx.
Giíi thiÖu s¶n phÈm Spartan II cña Xillinx. C¸c chØ tiªu kü thuËt chi tiÕt Spartan II. C¸c ng«n ng÷ m« t¶ phÇn cøng HDL. Ng«n ng÷ m« t¶ phÇn cøng ABEL.
Ng«n ng÷ Schematic Editor. ThiÕt kÕ modul gi¶ng d¹y sö dông FPGA XC2S100. Môc ®Ých vµ yªu cÇu thiÕt kÕ. Nh÷ng yªu cÇu vÒ phÇn mÒm vµ phÇn cøng khi thiÕt kÕ m¹ch b¸o chu«ng.
Tr×nh tù thiÕt kÕ víi FPGA. Tr×nh tù thiÕt kÕ c¸c m¹ch chøc n¨ng. M¹ch b¸o chu«ng. 97 Tµi liÖu tham kh¶o.
99 Bå Quèc B¶o -4- Líp CH XLT XLTT&TT T&TT 2003 Danh môc c¸c h×nh vÏ Tªn h×nh H×nh 1.1: Mét phÇn cña thiÕt kÕ ASIC H×nh 1.2: S¬ ®å khèi cña PROM H×nh 1.3: S¬ ®å khèi cña PAL H×nh 1.4: S¬ ®å khèi cña PLA H×nh 1.5: CÊu tróc chung cña mét EPLD H×nh 1.6: CÊu tróc cña mét macrocell H×nh 1.7: Mét CPLD cña Xilinx H×nh 2.1: CÊu tróc FPGA cña Xilinx H×nh 2.2: CÊu tróc chung cña FPGA H×nh 2.3: Mét CLB ®iÓn h×nh cña FPGA dßng Spartan II H×nh 2.4: S¬ ®å khèi chøc n¨ng cña Flip-Flop trong CLB H×nh 2.5: GhÐp nèi c¸c tÝn hÞªu ®iÒu khiÓn.6: S¬ ®å khèi cña IOB H×nh 2.7: S¬ ®å khèi chøc n¨ng IOB.9: S¬ ®å khèi chung cña c¸c kªnh kÕt nèi trong CLB H×nh 2. Ma trËn kÕt nèi trong FPGA.11: Ph©n bè m¹ng tæng thÓ cña Spartan H×nh 2.12: S¬ ®å logic cña RAM cæng ®¬n.13: S¬ ®å logic cña RAM cæng kÐp H×nh 2.14: Chi tiÕt mét logic nhí cña Spartan H×nh 2.15: Bé ®Öm 4 tr¹ng th¸i thùc hiÖn mét bé ph©n kªnh H×nh 2.16: S¬ ®å logic quÐt biªn cña dßng Spartan H×nh 2.17: S¬ ®å m¹ch Master Slave H×nh 3.1: C¸c bíc thiÕt kÕ VHDL Bå Quèc B¶o -5- Líp CH XLT XLTT&TT T&TT 2003 H×nh 3.2: C¸c thùc thÓ VHDL vµ cÊu tróc H×nh 3.3: CÊu tróc file ch¬ng tr×nh VHDL H×nh 3.4: CÊu tróc module cña ABEL H×nh 3.5: S¬ ®å khèi cña m¹ch H×nh 3.5: S¬ ®å khèi cña m¹ch H×nh 3.6: C¸c dÊu chÊm më réng trong ABEL H×nh 3.7: Bé céng 1 bit H×nh 3.7: S¬ ®å bé céng 1 bit H×nh 4.1: S¬ ®å khèi m¹ch b¸o chu«ng H×nh 4.2: H×nh ¶nh thùc tÕ kit XSA-100 Board V1.3: S¬ ®å nguyªn lý cña XSA-100 Board V1.4: Tr×nh tù thiÕt kÕ víi FPGA H×nh 4.5: M¹ch ®a hµi ®îi t¹o dao ®éng ©m tÇn Bå Quèc B¶o -6- Líp CH XLT XLTT&TT T&TT 2003 Lêi nãi ®Çu Cïng víi sù ph¸t triÓn cña khoa häc kü thuËt, viÖc tù ®éng ho¸ thiÕt kÕ c¸c m¹ch ®iÖn tö ®ãng mét vai trß quan träng trong viÖc thóc ®Èy sù ph¸t triÓn kü thuËt tÝnh to¸n. Tõ nh÷ng n¨m 50 cña thÕ kû tríc, qu¸ tr×nh ph¸t triÓn cña kü thuËt ®iÖn tö ®· tr¶i qua nhiÒu giai ®o¹n: tõ nh÷ng bãng ®Ìn ®iÖn tö ®Õn nh÷ng bãng b¸n dÉn, qua nh÷ng m¹ch tÝch hîp nhá råi tíi nh÷ng m¹ch víi ®é tÝch hîp lín vµ siªu lín. Nh÷ng m¹ch tÝch hîp lo¹i nµy cã thÓ chøa hµng triÖu linh kiÖn b¸n dÉn trªn mét m¹ch.
VÝ dô ®iÓn h×nh lµ c¸c bé vi xö lý. ViÖc thiÕt kÕ nh÷ng m¹ch cã ®é tÝch hîp lín vµ siªu lín kh«ng thÓ thùc hiÖn mét c¸ch thñ c«ng, mµ ph¶i cã sù gióp ®ì cña m¸y tÝnh. Víi môc ®Ých kh«ng ngõng ®¸p øng c¸c nhu cÇu cña x· héi, hiÖn nay c¸c m«n häc vÒ thiÕt kÕ hÖ thèng sè ®· vµ ®ang ®îc ®a vµo gi¶ng d¹y t¹i c¸c trêng Cao ®¼ng vµ §¹i häc, viÖc tiÕp cËn m«n häc nµy t¬ng ®èi khã vµ trõu tîng, ®Ó m«n häc trùc quan vµ dÔ tiÕp cËn viÖc thùc hµnh lËp tr×nh sè lµ rÊt cÇn thiÕt. 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) cña c«ng ty Xilinx. Sö dông FPGA hoÆc CPLD th× 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.
Bå Quèc B¶o -7- Líp CH XLT XLTT&TT T&TT 2003 Việc nghiên cứu và thiết kế các modul thí nghiệm FPGA để giúp các em học sinh-sinh viên nói chung và sinh viên trường Cao đẳng Công nghiệp nói riêng được tiếp cận và sử dụng công nghệ mới, đáp ứng nhu cầu của xã hội khi ra trường là một công việc vô cùng cần thiết và cấp bách. Víi sù híng dÉn cña TS NguyÔn Linh Giang, trong khu«n khæ luËn v¨n nµy, t«i m¹nh d¹n t×m hiÓu vµ nghiªn cøu vÒ c«ng nghÖ míi cña c«ng ty Xilinx. Qua nghiªn cøu vµ t×m hiÓu vÒ c¸c thiÕt bÞ cã thÓ lËp tr×nh ®îc cña Xilinx, t«i sö dông chip XC2S100 dßng Spartan II thiÕt kÕ mét sè m¹ch ®¬n gi¶n, trªn c¬ së nh÷ng m¹ch nµy ®Ó thiÕt kÕ mét modul gi¶ng d¹y cho sinh viªn trêng Cao ®¼ng C«ng nghiÖp Hµ néi – m¹ch b¸o chu«ng cho líp häc. Néi dung cña luËn v¨n bao gåm 4 ch¬ng, trong ®ã: Ch¬ng 1: Giíi thiÖu tæng quan vÒ ASIC lËp tr×nh ®îc.
Ch¬ng 2: Giíi thiÖu vÒ h·ng Xilinx vµ s¶n phÈm FPGA. Giíi thiÖu mét sè ng«n ng÷ m« t¶ phÇn cøng HDL. ThiÕt kÕ modul gi¶ng d¹y sö dông FPGA XC2S100-Spartan II Do thêi gian vµ kh¶ n¨ng cã h¹n nªn luËn v¨n nµy sÏ cßn nhiÒu thiÕu sãt. RÊt mong ®îc sù gãp ý vµ th«ng c¶m cña c¸c thÇy gi¸o, c« gi¸o.
Hµ néi, ngµy 20 th¸ng 10 n¨m 2005 Häc viªn Bå Quèc B¶o Bå Quèc B¶o -8- Líp CH XLT XLTT&TT T&TT 2003 Ch¬ng 1 Tæng quan vÒ ASIC lËp tr×nh ®îc 1. tæng quan vÒ c¸c c«ng nghÖ NÒn c«ng nghiÖp b¸n dÉn ®· ph¸t triÓn tõ c¸c IC ®Çu tiªn vµo kho¶ng nh÷ng n¨m ®Çu cña nh÷ng n¨m 1970 vµ ®· trëng thµnh nhanh chãng tõ ®ã. Mét ®iÒu quan träng trong viÖc thiÕt kÕ lµ cÇn ph¶i nghiªn cøu c¸c ph¬ng thøc thùc hiÖn mét c¸ch cÈn thËn tríc. C¸c bíc tiÕp theo cÇn lµm trong suèt qu¸ tr×nh thiÕt kÕ sÏ phô thuéc hoµn toµn vµo ph¬ng thøc thùc hiÖn mµ m×nh lùa chän.
Sù phøc t¹p trong hÖ thèng t¨ng lªn cho kÕt qu¶ m¹ch tÝch hîp ë c¸c møc cao h¬n trong c¸c microchip. Cã c¸c møc tÝch hîp nh sau: - SSI (Small Scale Integration), nã chøa nhiÒu cæng ®éc lËp trªn mét gãi ®¬n, th«ng thêng sè cæng kh«ng vît qu¸ 10 cæng. - MSI (Medium Scale Integration) cã ®é phøc t¹p cao h¬n trong kho¶ng tõ 10 ®Õn 100 cæng trªn mét gãi ®¬n. - LSI (Large Scale Integration) cã kho¶ng tõ 100 ®Õn vµi ngh×n cæng trªn mét gãi ®¬n.
- VLSI (Very Large Scale Integration) chøa tõ vµi ngh×n cæng ®Õn hµng triÖu cæng trªn mét gãi ®¬n. Ngoµi ra, c¸c IC cßn cã thÓ ®îc ph©n chia theo c¸c chøc n¨ng mµ nã thùc hiÖn, c¸c chøc n¨ng phï hîp víi thÞ trêng vµ ¶nh hëng tíi gi¸ thµnh cña thiÕt bÞ: - Th«ng thêng (General): lµ c¸c thiÕt bÞ phôc vô cho c¸c môc ®Ých th«ng thêng. - ASIC (Application Specific IC): sö dông trong c¸c chip hiÖn ®¹i, c¸c bé ®iÒu khiÓn nhóng víi môc ®Ých thiÕt kÕ ®¸p øng nhu cÇu cña ngêi sö dông. Bå Quèc B¶o -9- Líp CH XLT XLTT&TT T&TT 2003 1.
Sù ra ®êi cña c«ng nghÖ AsiC Nh»m c¶i thiÖn tÝnh linh ho¹t cña c¸c IC vµ n©ng cao chÊt lîng ngµnh c«ng nghiÖp s¶n xuÊt IC, IEEE ®· tæ chøc c¸c héi th¶o vÒ c¸c IC “theo ®¬n ®Æt hµng” CICC (Custom Integrated Circuit Conference). Theo ®ã, cã nhiÒu kiÓu IC d¹ng “theo ®¬n ®Æt hµng” kh¸c nhau ®îc ®a ra nh»m gi¶i quyÕt cho nhiÒu môc ®Ých øng dông cô thÓ chuyªn biÖt. Tõ ®©y, xuÊt hiÖn mét thuËt ng÷ míi vµ chÝnh thøc ®îc sö dông ®ã lµ: Application - Specific IC, hay viÕt t¾t lµ ASIC. HiÖn nay, IEEE thêng xuyªn tæ chøc ®Þnh kú c¸c héi th¶o cÊp quèc tÕ vÒ ASIC, nh»m ®iÒu chØnh vµ n©ng cao c¸c u ®iÓm còng nh tÝnh thuËn tiÖn vµ ®a ra c¸c c«ng nghÖ tiªn tiÕn cña c¸c h·ng s¶n xuÊt ASIC kh¸c nhau vµ ph©n lo¹i chóng thµnh nhiÒu chñng lo¹i IC theo ®¬n ®Æt hµng.
MÆc dï ®Ó ®Þnh nghÜa ®îc chÝnh x¸c ASIC lµ rÊt khã, song chóng ta coi nh ®ã lµ mét thuËt ng÷ ®· ®îc c«ng nhËn chÝnh thøc trong ngµnh c«ng nghiÖp IC. §Þnh nghÜa tiÕng Anh cña thuËt ng÷ ASIC theo IEEE 12/1999 nh sau: “ASIC stands for Application Specific Integrated Circuits. An ASIC is custom tailored IC that perfoms a specific task for specific application”- t¹m dÞch lµ “ASIC lµ viÕt t¾t cña tõ Application Specific Integrated Circuits, nghÜa lµ c¸c m¹ch tÝch hîp øng dông chuyªn biÖt” - hoÆc ng¾n gän h¬n lµ “IC chuyªn dông”. Tuy nhiªn, nhiÒu nhµ “ASIC häc” vÉn quen gäi lµ c¸c “IC dïng cho môc ®Ých cña kh¸ch hµng” hoÆc lµ c¸c “IC ®îc thiÕt kÕ ®Æc biÖt theo yªu cÇu cña kh¸ch hµng”.
VÝ dô vÒ c¸c IC kh«ng ph¶i lµ ASIC theo yªu cÇu bao gåm c¸c lo¹i sau: c¸c chip nhí nh ROM, DRAM, vµ SRAM; c¸c bé phËn xö lý, c¸c IC hä TTL vµ t¬ng ®¬ng theo c«ng nghÖ SSI, MSI vµ LSI.