SlideShare una empresa de Scribd logo
1 de 272
Descargar para leer sin conexión
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
* 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
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
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
ø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
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
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
* 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
- 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
+/ 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
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
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
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
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
®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
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
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
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
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
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
- 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
- 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
- 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
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
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
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
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
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
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
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
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
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
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
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
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
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
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga
Giao trinh fpga

Más contenido relacionado

La actualidad más candente

Báo cáo thực tập công nghệ thông tin.
Báo cáo thực tập công nghệ thông tin.Báo cáo thực tập công nghệ thông tin.
Báo cáo thực tập công nghệ thông tin.ssuser499fca
 
HƯỚNG DẪN TẠO MẶT CẮT TRONG BẢN VẼ SOLIDWORKS
HƯỚNG DẪN TẠO MẶT CẮT TRONG BẢN VẼ SOLIDWORKSHƯỚNG DẪN TẠO MẶT CẮT TRONG BẢN VẼ SOLIDWORKS
HƯỚNG DẪN TẠO MẶT CẮT TRONG BẢN VẼ SOLIDWORKSdiendanks
 
Thiết kế đồng hồ số sử dụng bộ công cụ phần mềm thiết kế IC chuyên nghiệp của...
Thiết kế đồng hồ số sử dụng bộ công cụ phần mềm thiết kế IC chuyên nghiệp của...Thiết kế đồng hồ số sử dụng bộ công cụ phần mềm thiết kế IC chuyên nghiệp của...
Thiết kế đồng hồ số sử dụng bộ công cụ phần mềm thiết kế IC chuyên nghiệp của...luanvantrust
 
[123doc] do-an-phan-mem-quan-ly-nhan-su-tien-luong
[123doc]   do-an-phan-mem-quan-ly-nhan-su-tien-luong[123doc]   do-an-phan-mem-quan-ly-nhan-su-tien-luong
[123doc] do-an-phan-mem-quan-ly-nhan-su-tien-luongDuytPhm8
 
Thiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sựThiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sựleemindinh
 
LUẬN VĂN THIẾT KẾ HỆ THỐNG NHÚNG VỚI VI ĐIỀU KHIỂN LÕI MỀM VÀ HỆ ĐIỀU HÀNH TR...
LUẬN VĂN THIẾT KẾ HỆ THỐNG NHÚNG VỚI VI ĐIỀU KHIỂN LÕI MỀM VÀ HỆ ĐIỀU HÀNH TR...LUẬN VĂN THIẾT KẾ HỆ THỐNG NHÚNG VỚI VI ĐIỀU KHIỂN LÕI MỀM VÀ HỆ ĐIỀU HÀNH TR...
LUẬN VĂN THIẾT KẾ HỆ THỐNG NHÚNG VỚI VI ĐIỀU KHIỂN LÕI MỀM VÀ HỆ ĐIỀU HÀNH TR...KhoTi1
 
[Đồ án môn học] - Đề tài: Nghiên cứu xây dựng giải pháp thu thập và quản lý ...
[Đồ án môn học] - Đề tài: Nghiên cứu xây dựng giải pháp thu thập  và quản lý ...[Đồ án môn học] - Đề tài: Nghiên cứu xây dựng giải pháp thu thập  và quản lý ...
[Đồ án môn học] - Đề tài: Nghiên cứu xây dựng giải pháp thu thập và quản lý ...Ý Như Lê
 
Kịch bản demo phát hiện xâm nhập sử dụng snort ids
Kịch bản demo phát hiện xâm nhập sử dụng snort idsKịch bản demo phát hiện xâm nhập sử dụng snort ids
Kịch bản demo phát hiện xâm nhập sử dụng snort idsLinh Hoang
 
Xử lý ảnh PTIT
Xử lý ảnh PTITXử lý ảnh PTIT
Xử lý ảnh PTITTran Tien
 
Slide bai giang_an_toan_va_bao_mat_thong_tin
Slide bai giang_an_toan_va_bao_mat_thong_tinSlide bai giang_an_toan_va_bao_mat_thong_tin
Slide bai giang_an_toan_va_bao_mat_thong_tinLang Codon
 
Mô hình hóa yêu cầu
Mô hình hóa yêu cầuMô hình hóa yêu cầu
Mô hình hóa yêu cầuNguyen Tran
 

La actualidad más candente (20)

Báo cáo thực tập công nghệ thông tin.
Báo cáo thực tập công nghệ thông tin.Báo cáo thực tập công nghệ thông tin.
Báo cáo thực tập công nghệ thông tin.
 
HƯỚNG DẪN TẠO MẶT CẮT TRONG BẢN VẼ SOLIDWORKS
HƯỚNG DẪN TẠO MẶT CẮT TRONG BẢN VẼ SOLIDWORKSHƯỚNG DẪN TẠO MẶT CẮT TRONG BẢN VẼ SOLIDWORKS
HƯỚNG DẪN TẠO MẶT CẮT TRONG BẢN VẼ SOLIDWORKS
 
Thiết kế đồng hồ số sử dụng bộ công cụ phần mềm thiết kế IC chuyên nghiệp của...
Thiết kế đồng hồ số sử dụng bộ công cụ phần mềm thiết kế IC chuyên nghiệp của...Thiết kế đồng hồ số sử dụng bộ công cụ phần mềm thiết kế IC chuyên nghiệp của...
Thiết kế đồng hồ số sử dụng bộ công cụ phần mềm thiết kế IC chuyên nghiệp của...
 
Đề tài: Điều khiển hệ truyền động điện tàu điện đô thị, HOT, 9đ
Đề tài: Điều khiển hệ truyền động điện tàu điện đô thị, HOT, 9đĐề tài: Điều khiển hệ truyền động điện tàu điện đô thị, HOT, 9đ
Đề tài: Điều khiển hệ truyền động điện tàu điện đô thị, HOT, 9đ
 
[123doc] do-an-phan-mem-quan-ly-nhan-su-tien-luong
[123doc]   do-an-phan-mem-quan-ly-nhan-su-tien-luong[123doc]   do-an-phan-mem-quan-ly-nhan-su-tien-luong
[123doc] do-an-phan-mem-quan-ly-nhan-su-tien-luong
 
Thiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sựThiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sự
 
Đề tài: Hệ thống giám sát mạng dựa trên phần mềm nguồn mở, HAY
Đề tài: Hệ thống giám sát mạng dựa trên phần mềm nguồn mở, HAYĐề tài: Hệ thống giám sát mạng dựa trên phần mềm nguồn mở, HAY
Đề tài: Hệ thống giám sát mạng dựa trên phần mềm nguồn mở, HAY
 
LUẬN VĂN THIẾT KẾ HỆ THỐNG NHÚNG VỚI VI ĐIỀU KHIỂN LÕI MỀM VÀ HỆ ĐIỀU HÀNH TR...
LUẬN VĂN THIẾT KẾ HỆ THỐNG NHÚNG VỚI VI ĐIỀU KHIỂN LÕI MỀM VÀ HỆ ĐIỀU HÀNH TR...LUẬN VĂN THIẾT KẾ HỆ THỐNG NHÚNG VỚI VI ĐIỀU KHIỂN LÕI MỀM VÀ HỆ ĐIỀU HÀNH TR...
LUẬN VĂN THIẾT KẾ HỆ THỐNG NHÚNG VỚI VI ĐIỀU KHIỂN LÕI MỀM VÀ HỆ ĐIỀU HÀNH TR...
 
[Đồ án môn học] - Đề tài: Nghiên cứu xây dựng giải pháp thu thập và quản lý ...
[Đồ án môn học] - Đề tài: Nghiên cứu xây dựng giải pháp thu thập  và quản lý ...[Đồ án môn học] - Đề tài: Nghiên cứu xây dựng giải pháp thu thập  và quản lý ...
[Đồ án môn học] - Đề tài: Nghiên cứu xây dựng giải pháp thu thập và quản lý ...
 
Thiết kế hệ thống giám sát và điều khiển thiết bị công nghiệp, HAY
Thiết kế hệ thống giám sát và điều khiển thiết bị công nghiệp, HAYThiết kế hệ thống giám sát và điều khiển thiết bị công nghiệp, HAY
Thiết kế hệ thống giám sát và điều khiển thiết bị công nghiệp, HAY
 
Quản lý nhân sự-lương trên hệ quản trị cơ sở dữ liệu MICROSOFT ACCESS
Quản lý nhân sự-lương trên hệ quản trị cơ sở dữ liệu MICROSOFT ACCESSQuản lý nhân sự-lương trên hệ quản trị cơ sở dữ liệu MICROSOFT ACCESS
Quản lý nhân sự-lương trên hệ quản trị cơ sở dữ liệu MICROSOFT ACCESS
 
Kịch bản demo phát hiện xâm nhập sử dụng snort ids
Kịch bản demo phát hiện xâm nhập sử dụng snort idsKịch bản demo phát hiện xâm nhập sử dụng snort ids
Kịch bản demo phát hiện xâm nhập sử dụng snort ids
 
Xử lý ảnh PTIT
Xử lý ảnh PTITXử lý ảnh PTIT
Xử lý ảnh PTIT
 
Đề tài: Thiết kế hệ thống phân loại sản phẩm ứng dụng PLC, HOT
Đề tài: Thiết kế hệ thống phân loại sản phẩm ứng dụng PLC, HOTĐề tài: Thiết kế hệ thống phân loại sản phẩm ứng dụng PLC, HOT
Đề tài: Thiết kế hệ thống phân loại sản phẩm ứng dụng PLC, HOT
 
luan van thac si tim hieu flutter va ung dung
luan van thac si tim hieu flutter va ung dungluan van thac si tim hieu flutter va ung dung
luan van thac si tim hieu flutter va ung dung
 
Slide bai giang_an_toan_va_bao_mat_thong_tin
Slide bai giang_an_toan_va_bao_mat_thong_tinSlide bai giang_an_toan_va_bao_mat_thong_tin
Slide bai giang_an_toan_va_bao_mat_thong_tin
 
Đề cương xử lý ảnh
Đề cương xử lý ảnhĐề cương xử lý ảnh
Đề cương xử lý ảnh
 
Luận văn: Nhận dạng và phân loại hoa quả trong ảnh màu, HAY
Luận văn: Nhận dạng và phân loại hoa quả trong ảnh màu, HAYLuận văn: Nhận dạng và phân loại hoa quả trong ảnh màu, HAY
Luận văn: Nhận dạng và phân loại hoa quả trong ảnh màu, HAY
 
Cach su dung matlab
Cach su dung matlabCach su dung matlab
Cach su dung matlab
 
Mô hình hóa yêu cầu
Mô hình hóa yêu cầuMô hình hóa yêu cầu
Mô hình hóa yêu cầu
 

Destacado

Tong quan ve_fpga__1226
Tong quan ve_fpga__1226Tong quan ve_fpga__1226
Tong quan ve_fpga__1226KowLoon1
 
Kts cac bt giai san ve vhdl 2011
Kts cac bt giai san ve vhdl 2011Kts cac bt giai san ve vhdl 2011
Kts cac bt giai san ve vhdl 2011Hoàng Elab
 
Đại số boolean và mạch logic
Đại số boolean và mạch logicĐại số boolean và mạch logic
Đại số boolean và mạch logicwww. mientayvn.com
 
Bai giang-vhdl
Bai giang-vhdlBai giang-vhdl
Bai giang-vhdlhoangclick
 
Cong thuc va pp nhan biet
Cong thuc va pp nhan bietCong thuc va pp nhan biet
Cong thuc va pp nhan bietDuong Pham Hai
 
Lập trình C cơ bản cho vi điều khiển
Lập trình C cơ bản cho vi điều khiểnLập trình C cơ bản cho vi điều khiển
Lập trình C cơ bản cho vi điều khiểnMr Giap
 
Giáo trình Lập trình C căn bản - Aptech
Giáo trình Lập trình C căn bản - AptechGiáo trình Lập trình C căn bản - Aptech
Giáo trình Lập trình C căn bản - AptechMasterCode.vn
 

Destacado (12)

Tổng quan về FPGA
Tổng quan về FPGATổng quan về FPGA
Tổng quan về FPGA
 
Co ban ve msp430
Co ban ve msp430Co ban ve msp430
Co ban ve msp430
 
Tong quan ve_fpga__1226
Tong quan ve_fpga__1226Tong quan ve_fpga__1226
Tong quan ve_fpga__1226
 
Msptieuluan
MsptieuluanMsptieuluan
Msptieuluan
 
Bao cao vdk_va_pic
Bao cao vdk_va_picBao cao vdk_va_pic
Bao cao vdk_va_pic
 
Kts cac bt giai san ve vhdl 2011
Kts cac bt giai san ve vhdl 2011Kts cac bt giai san ve vhdl 2011
Kts cac bt giai san ve vhdl 2011
 
Đại số boolean và mạch logic
Đại số boolean và mạch logicĐại số boolean và mạch logic
Đại số boolean và mạch logic
 
Bai giang-vhdl
Bai giang-vhdlBai giang-vhdl
Bai giang-vhdl
 
Cong thuc va pp nhan biet
Cong thuc va pp nhan bietCong thuc va pp nhan biet
Cong thuc va pp nhan biet
 
Lập trình C cơ bản cho vi điều khiển
Lập trình C cơ bản cho vi điều khiểnLập trình C cơ bản cho vi điều khiển
Lập trình C cơ bản cho vi điều khiển
 
Giáo trình Lập trình C căn bản - Aptech
Giáo trình Lập trình C căn bản - AptechGiáo trình Lập trình C căn bản - Aptech
Giáo trình Lập trình C căn bản - Aptech
 
bai tap_kts
bai tap_ktsbai tap_kts
bai tap_kts
 

Similar a Giao trinh fpga

bctntlvn (61).pdf
bctntlvn (61).pdfbctntlvn (61).pdf
bctntlvn (61).pdfLuanvan84
 
Thiet ke va lap trinh web
Thiet ke va lap trinh webThiet ke va lap trinh web
Thiet ke va lap trinh webQaPhy-Duong MTE
 
Thiet ke va lap trinh web
Thiet ke va lap trinh webThiet ke va lap trinh web
Thiet ke va lap trinh webQaPhy-Duong MTE
 
bctntlvn (71).pdf
bctntlvn (71).pdfbctntlvn (71).pdf
bctntlvn (71).pdfLuanvan84
 
Nghiên cứu, thiết kế modul thực hành FPGA.pdf
Nghiên cứu, thiết kế modul thực hành FPGA.pdfNghiên cứu, thiết kế modul thực hành FPGA.pdf
Nghiên cứu, thiết kế modul thực hành FPGA.pdfMan_Ebook
 
Báo Cáo Thực Tập Tốt Nghiệp Thông Tin Vô Tuyến, Chuyển Mạch Và Thông Tin Quan...
Báo Cáo Thực Tập Tốt Nghiệp Thông Tin Vô Tuyến, Chuyển Mạch Và Thông Tin Quan...Báo Cáo Thực Tập Tốt Nghiệp Thông Tin Vô Tuyến, Chuyển Mạch Và Thông Tin Quan...
Báo Cáo Thực Tập Tốt Nghiệp Thông Tin Vô Tuyến, Chuyển Mạch Và Thông Tin Quan...TieuNgocLy
 
Tinh toan suc chiu tai thang dung
Tinh toan suc chiu tai thang dungTinh toan suc chiu tai thang dung
Tinh toan suc chiu tai thang dungmagicxlll
 
01 Các bộ Vi Điều Khiển 8051
01 Các bộ Vi Điều Khiển 805101 Các bộ Vi Điều Khiển 8051
01 Các bộ Vi Điều Khiển 8051Mr Giap
 
Bai 1 tin hoc lop 12_kbdh
Bai 1 tin hoc lop 12_kbdhBai 1 tin hoc lop 12_kbdh
Bai 1 tin hoc lop 12_kbdhSunkute
 
Chương 5 - Giao tiếp kết cuối
Chương 5 - Giao tiếp kết cuốiChương 5 - Giao tiếp kết cuối
Chương 5 - Giao tiếp kết cuốiKien Thuc
 
Giao trinh autocad_2007_full_ok[bookbooming.com]
Giao trinh autocad_2007_full_ok[bookbooming.com]Giao trinh autocad_2007_full_ok[bookbooming.com]
Giao trinh autocad_2007_full_ok[bookbooming.com]bookbooming1
 
Thiết kế và chế tạo mô hình thực hành zen của omron 3442153
Thiết kế và chế tạo mô hình thực hành zen của omron 3442153Thiết kế và chế tạo mô hình thực hành zen của omron 3442153
Thiết kế và chế tạo mô hình thực hành zen của omron 3442153nataliej4
 
11phat trien-chuong-trinh-giao-duc-dai-hoc-theo-huong-tich-hop
11phat trien-chuong-trinh-giao-duc-dai-hoc-theo-huong-tich-hop11phat trien-chuong-trinh-giao-duc-dai-hoc-theo-huong-tich-hop
11phat trien-chuong-trinh-giao-duc-dai-hoc-theo-huong-tich-hopTai Quach
 
Luận văn: Công nghệ GPS động và khả năng ứng dụng trong công tác đo vẽ bản đồ...
Luận văn: Công nghệ GPS động và khả năng ứng dụng trong công tác đo vẽ bản đồ...Luận văn: Công nghệ GPS động và khả năng ứng dụng trong công tác đo vẽ bản đồ...
Luận văn: Công nghệ GPS động và khả năng ứng dụng trong công tác đo vẽ bản đồ...Dịch vụ viết thuê Khóa Luận - ZALO 0932091562
 

Similar a Giao trinh fpga (20)

bctntlvn (61).pdf
bctntlvn (61).pdfbctntlvn (61).pdf
bctntlvn (61).pdf
 
Thiet ke va lap trinh web
Thiet ke va lap trinh webThiet ke va lap trinh web
Thiet ke va lap trinh web
 
Thiet ke va lap trinh web
Thiet ke va lap trinh webThiet ke va lap trinh web
Thiet ke va lap trinh web
 
bctntlvn (71).pdf
bctntlvn (71).pdfbctntlvn (71).pdf
bctntlvn (71).pdf
 
huy
huyhuy
huy
 
Nghiên cứu, thiết kế modul thực hành FPGA.pdf
Nghiên cứu, thiết kế modul thực hành FPGA.pdfNghiên cứu, thiết kế modul thực hành FPGA.pdf
Nghiên cứu, thiết kế modul thực hành FPGA.pdf
 
Báo Cáo Thực Tập Tốt Nghiệp Thông Tin Vô Tuyến, Chuyển Mạch Và Thông Tin Quan...
Báo Cáo Thực Tập Tốt Nghiệp Thông Tin Vô Tuyến, Chuyển Mạch Và Thông Tin Quan...Báo Cáo Thực Tập Tốt Nghiệp Thông Tin Vô Tuyến, Chuyển Mạch Và Thông Tin Quan...
Báo Cáo Thực Tập Tốt Nghiệp Thông Tin Vô Tuyến, Chuyển Mạch Và Thông Tin Quan...
 
Tinh toan suc chiu tai thang dung
Tinh toan suc chiu tai thang dungTinh toan suc chiu tai thang dung
Tinh toan suc chiu tai thang dung
 
01 Các bộ Vi Điều Khiển 8051
01 Các bộ Vi Điều Khiển 805101 Các bộ Vi Điều Khiển 8051
01 Các bộ Vi Điều Khiển 8051
 
Tl plc citect
Tl plc citectTl plc citect
Tl plc citect
 
Bai 1 tin hoc lop 12_kbdh
Bai 1 tin hoc lop 12_kbdhBai 1 tin hoc lop 12_kbdh
Bai 1 tin hoc lop 12_kbdh
 
Luận văn: Tòa nhà lưu trữ thông tin tỉnh Quảng Ninh, HOT
Luận văn: Tòa nhà lưu trữ thông tin tỉnh Quảng Ninh, HOTLuận văn: Tòa nhà lưu trữ thông tin tỉnh Quảng Ninh, HOT
Luận văn: Tòa nhà lưu trữ thông tin tỉnh Quảng Ninh, HOT
 
Ch3 loi15
Ch3 loi15Ch3 loi15
Ch3 loi15
 
Chương 5 - Giao tiếp kết cuối
Chương 5 - Giao tiếp kết cuốiChương 5 - Giao tiếp kết cuối
Chương 5 - Giao tiếp kết cuối
 
Luận văn: Nhà làm việc trường ĐH kinh tế kĩ thuật Hà Nội, HAY
Luận văn: Nhà làm việc trường ĐH kinh tế kĩ thuật Hà Nội, HAYLuận văn: Nhà làm việc trường ĐH kinh tế kĩ thuật Hà Nội, HAY
Luận văn: Nhà làm việc trường ĐH kinh tế kĩ thuật Hà Nội, HAY
 
Giao trinh autocad_2007_full_ok[bookbooming.com]
Giao trinh autocad_2007_full_ok[bookbooming.com]Giao trinh autocad_2007_full_ok[bookbooming.com]
Giao trinh autocad_2007_full_ok[bookbooming.com]
 
Thiết kế và chế tạo mô hình thực hành zen của omron 3442153
Thiết kế và chế tạo mô hình thực hành zen của omron 3442153Thiết kế và chế tạo mô hình thực hành zen của omron 3442153
Thiết kế và chế tạo mô hình thực hành zen của omron 3442153
 
11phat trien-chuong-trinh-giao-duc-dai-hoc-theo-huong-tich-hop
11phat trien-chuong-trinh-giao-duc-dai-hoc-theo-huong-tich-hop11phat trien-chuong-trinh-giao-duc-dai-hoc-theo-huong-tich-hop
11phat trien-chuong-trinh-giao-duc-dai-hoc-theo-huong-tich-hop
 
Datalink
DatalinkDatalink
Datalink
 
Luận văn: Công nghệ GPS động và khả năng ứng dụng trong công tác đo vẽ bản đồ...
Luận văn: Công nghệ GPS động và khả năng ứng dụng trong công tác đo vẽ bản đồ...Luận văn: Công nghệ GPS động và khả năng ứng dụng trong công tác đo vẽ bản đồ...
Luận văn: Công nghệ GPS động và khả năng ứng dụng trong công tác đo vẽ bản đồ...
 

Giao trinh fpga

  • 1. 1 Lêi giíi thiÖu Khai th¸c, nghiªn cøu c¬ b¶n c«ng nghÖ míi lµ b−íc kh«ng thÓ thiÕu trong viÖc c¶i tiÕn, n©ng cao, còng nh− chÕ t¹o míi c¸c trang thiÕt bÞ qu©n sù vµ d©n sù nh»m ®¸p øng viÖc hiÖn ®¹i ho¸ c«ng nghiÖp ho¸ cña ®Êt n−íc. Cïng víi sù ph¸t triÓn v−ît bËc cña nghµnh c«ng nghÖ th«ng tin, c¸c c«ng nghÖ míi vÒ c¸c m¹ch tÝch hîp vi ®iÖn tö, c¸c m¹ch tæ hîp logic lËp tr×nh ®−îc ra ®êi ®· lµm cho c¸c s¶n phÈm qu©n sù còng nh− d©n sù ngµy cµng hoµn thiÖn vµ −u viÖt h¬n. §Ó tiÕn mét b−íc xa h¬n trong viÖc c¶i tiÕn, chÕ t¹o khÝ tµi qu©n sù nh»m ®¸p øng chiÕn tranh ®iÖn tö hiÖn ®¹i víi tèc ®é xö lý cùc kú cao, ®ßi hái ph¶i cã c«ng nghÖ tiªn tiÕn phï hîp víi t×nh h×nh chung cña thÕ giíi. Trªn c¬ së ph¸t triÓn tõ c¸c chÝp PLA, hiÖn nay c«ng nghÖ na n« ®· ®−îc ®−a vµo ®Ó chÕ t¹o c¸c m¹ch tÝch hîp lËp tr×nh ®−îc FPGA vµ CPLD, nã ®· lµm cho m¹ch tÝch hîp logic lªn ®Õn hµng chôc triÖu cæng, tèc ®é ®ång hå lªn ®Õn 500 MHz. øng dông c«ng nghÖ míi vµo trong thiÕt kÕ chÕ t¹o c¸c thiÕt bÞ ®iÖn tö lËp tr×nh PLIC lµ mét b−íc cÇn thiÕt cho t−¬ng lai víi mét n−íc ®ang ph¸t triÓn nh− ViÖt Nam. §Ó ®¸p øng ®−îc tÝnh b¶o mËt trong qu©n sù còng nh− tÝnh ph¶n øng nhanh trong chiÕn tranh hiÖn ®¹i cïng víi nhu cÇu chuyªn dông ho¸, tèi −u ho¸ (thêi gian, kh«ng gian, gi¸ thµnh…), tÝnh chñ ®éng trong c«ng viÖc... ngµy cµng ®ßi hái kh¾t khe. ViÖc ®−a ra c«ng nghÖ míi trong lÜnh vùc chÕ t¹o m¹ch ®iÖn tö ®Ó ®¸p øng nh÷ng yªu cÇu trªn lµ hoµn toµn cÊp thiÕt mang tÝnh thùc tÕ cao.
  • 2. 2 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