More Related Content Similar to Giao trinh fpga
Similar to Giao trinh fpga (20) Giao trinh fpga1. 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
* 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
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
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
ø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
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
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
* 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
- 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
+/ 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
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
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
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
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
®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
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
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
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
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
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
- 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
- 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
- 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
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
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
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
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
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
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
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
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
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
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
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
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
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