DANHMCBNG......................................
DANHMCHÌNHV...................................
LINÓIðU ........................................
CHƯƠNG1TNGQUANVFPGA.........................
1.1.Giithiuchung..............................
1.2.Tngquanvthitblogickhtrình–PLD ...
1.3.Thitblogickhtrìnhñơngin–SimplePLD
1.4.Thitblogickhtrìnhphctp–ComplexPL
1.5.FPGA–FieldProgrammableGateArrays
CHƯƠNG2THITKTPLNH.........................
2.1.Môtchungvtplnh. ......................
2.2.Thitkchitittplnh....................
CHƯƠNG3THITKKINTRÚCVIXLÍ
3.1.Giithiu. ...................................
3.2.ThitkdatapathvàñiukhinchoRICS......
3.4.Xâydngmoduleñiukhin ....................
3.5.Tchcbnh................................
CHƯƠNG4:THITKTESTBENCHVÀPHƯƠNGPHÁPMÔPHN
MODELSIM ...................................................................................................................
4.1.Giithiu ....................................
4.2.Thitkhmôphng. .........................
4.3.Môphngñkimtrathitk.................
CHƯƠNG5:THITKCHITITCHCNĂNGCAVIðIUK
TRÊNMODELSIM......................................
5.1.Giithiuchung..............................
.................................................................................................................... 58
2
5.2.
Thitkvàmôphngchcnăngcacácmodulecơb
5.3
Thitkbmôphnghthngtñng. .............
5.4
trongviñiukhin. ...............................
Môphngviñiukhinthchinmtñonchươngtr
CHƯƠNG6TRINKHAITRÊNKÍTDE2VÀMTNGDNGðƠ
6.1TngquanvKitDE2...........................
6.2TrinkhaivàchythtrênkítDE2. ...........
6.3Mtngdngnhsdngviñiukhin8bít...
KTLUN. ..........................................
TÀILIUTHAMKHO.................................
Phlc1:Cácchươngtrìnhtestbenchdùngñmôp
Phlc2.MãngunVerilogcanhânviñiukhin.
3
DANHMCBNG
Bng11:TómttvcácthitbPLD........................................................................................................................ 8
Bng12AlteraCPLD..................................................................................................................................... 14
Bng13XilinxCPLD..................................................................................................................................... 14
Bng21:Cáclnhhưngbytecaviñiukhin...................................................................................................... 24
Bng22:Cáclnhhưngbítcaviñiukhin......................................................................................................... 25
Bng23:Cáclnhrnhánhcaviñiukhin.......................................................................................................... 26
Bng31:Cácthanhghichcnăngñcbit.......................................................................................................... 47
Bng32:Thanhghitrngtháicaviñiukhin.................................................................................................... 48
Bng51:LivàoñiukhincaALU.................................................................................................................... 61
Bng52:Mãngunchươngtrìnhñưcmôphng............................................................................................. 73
Bng53:Cáctestbenchñưcdùngñmôphngvà
kimtrachcnăngcaviñiu
khin.................................................................................................................................................................. 78
DANHMCHÌNHV
Hình11CutrúcmtthitbPAL.
Hình12CutrúcmtthitbPLA.
Hình13:CutrúcchipGAL16V8.
Hình14:CutrúcchungcamtCPLD.
Hình15CutrúcCPLDXC9500caXilinx
Hình16:CutrúcchungcaFPGA.
Hình17:CutrúcmtCLBtrongFPGAhXC40000E...........................................................
Hình18:CutrúcmtLogicCelltrongSpartanI
Hình19CutrúcIOBtrongSpartanIIE.
Hình110:Liênkttrongmtchuynmch.
Hình111MngliênktgiacácCLB.
Hình112Cácktnitrctipgiacáckhitro
Hình113FPGASpartanIIEcaXilinx.
Hình21:ðnhdngcáclnhhưngbyte
Hình22ðnhdngcáclnhhưngbít
Hình23:ðnhdngcáclnhrnhánh
Hình24:ðnhdngcalnhgoto
..............................................................................................
Hình31:Mtdatapathñơnginvàmôñunñiukhi
Hình32:Tngquanvkintrúccaviñiukhin
Hình33:Môhìnhñiukhindatapath
Hình34:Bnhchươngtrình,PCvàmoduletínhP
datapathñơngin ..........................................................................................................................
Hình35:Tpthanhghi(registerfile)
Hình36:BlogicvàshcALU
................................................................................................
Hình37:Ktniblogicvàshcviregister
Hình38:Datapathñơnginsaukhiñãktnicác
Hình39:Datapathcaviñiukhinsaukhiñãñư
thchinñưckĩthutxlýñưngng.
Hình310:Trngtháicadatapathkhithchinp
Hình311:Trngtháicadatapathkhithchinb
file. .................................................................................................................................................
Hình312:Trngtháicadatapathkhithchinb
Hình313:Datapathsaukhiñãthêmkhiñiukhi
Hình314:Tchcbnhchươngtrìnhcaviñiu
Hình315:TintrìnhthchinlnhGOTO
Hình316:TintrìnhthchinlnhCALL
Hình317:Tchcbnhdliu,baogmcthan
năngchung .....................................................................................................................................
Hình318:Sơñkintrúccavixlý.
Hình41Môitrưngñngmôphngñngnht.
Hình42Môitrưngñngmôphngkhôngñngnht
Hình51:BlôgicvàshcALU
..............................................................................................
Hình52MUXlachnlivàochoS1cabALU.
Hình53:BnhRAMsingleportñưcdùnglàmb
Hình54:Sơñkhicabnhchươngtrình
Hình55:Sơñkhicabchiatns
Hình56:Sơñkhicabnhchươngtrình
Hình57:IPcoreñưcdùngñlàmbnhchương
Hình58:Sơñbêntrongcaregisterfile
Hình59:BnhStack
................................................................................................................
Hình510:KtqumôphngPCvàbnhchương
Hình511:KtqumôphngkhiALU
Hình512:Ktqumôphngregisterfile
Hình61Sơñcácthànhphntrênkítpháttrin
Hình62:Lưuñthuttoánthchinchychtr
6
LINÓIðU
Vixuhưngpháttrinrtnhanhcacácbvix
caocangưidùng,vicpháttrinmtmtbvix
vàñanglàyêucukhnthitñivinhngnhàphá
vixlýcókhnăngtínhtoáncaokhôngcònlàmt
viVitNamnóvn ñòihi phivưtquanhngkhó
nàytácgikhôngcóthamvngthitkmtbvix
yutptrungvàophântíchkintrúcvàthitkm
catácgilànmñưckintrúc,quytrìnhthit
Trêncơsñótácgismrng,citinmtvài
caodnhiusuttínhtoáncavixlý.Ktquc
thpháttrinnhngvixlýmicótcñxlýc
Lunvănsbtñuvivictìmhiuvxuhưngc
lôgiclptrìnhñưchinnay,tìmhiu,thitkt
mtvixlý8bítñơngindatrênkintrúcRISC
trinkhaibngngônngVerilogvàmôphngkimt
mmModelSim. Mcñíchchínhcaphnñunàylàhi
dngmôitrưngpháttrin.Sauñótácgiscit
tínhtoántthơn,nhưápdngkĩthutñưngngp
m rng không gian nh ca b nh chương trình và b
banking.Cuicùngthchintnghpthitktrên
cácchươngtrìnhnh.Phncuicùngtácgistrì
viñiukhin vañưcthitk.Ktqu chothy,
ñưcnhngchcnăngcơbn.
lýcũngnhưyêucungàycàng
lývitcñtínhtoánthtmnhñã
ttrincôngngh.Victhitkcácb
vnñmimtrênthgii,nhưng
khănnhtñnh.Tronglunvăn
lýcókhnăngtínhtoáncaomàch
tvixlýñơngin.Mcñíchchính
k,trinkhaivàkimñnhmtvixlý.
môñun,chcnăngcavixlýñnâng
alunvănslàtinññtácgicó
aohơn.
ũngnhưnhngloithitb
plnh,datapathvàbñiukhincho
vi33lnhtrongtplnh,tinhành
rachcnăngcavixlýbngphn
uvquytrìnhthitkvàxây
indnvixlýñcóthcókhnăng
ipeline,nângñsâucabnhstack,
nh d liu dùng kĩ thut
kítFPGADE2caAlteravàchyth
nhbàyvmtngdngnhsdng
viñiukhincóth thchinñúng
7
Chương1TNGQUANVFPGA
1.1.Giithiuchung
NgàynayvicsdngmthFPGAñanglàmtñtà
gii,sdĩnhưvylàdocáclýdocơbnsau:
Dospháttrinrtnhanhcacôngnghbándn,g
càngr.
VicsdngchipFPGAñpháttrinsnphmsrú
gianthitkcũngnhưthigianñưasnphnrath
phápthitktruynthngnhưASIC.
SdngcôngnghFPGAñverificationmtthitk rt
nhiu thi gian simulation cũng như gim ñưc
n thitk.
Dưiñâytrìnhbàysơlưcvcácthitblogickh
kdatrêncôngnghFPGA,sdĩtácgichtpt
da trên công ngh FPGA là do tác gi s s dng ch
Prototypethitkcatácgi.Phnñutiêncac
PLD:kháinimPLD,quátrìnhpháttrincacácth
thitbPLDvàFPGA,côngnghchtocũngnhưtí
irtñưcquantâmtrênth
iáthànhcachipFPGAngày
tngnñưcrtnhiuthi
trưngsovimtsphương
ASICcũngrútngnñưc
hiu giá thành và công sc
trìnhcũngnhưquytrìnhthit
rungvàogiithiuquytrìnhthitk
ip FPGA ca Altera ñ th
hươngnàysgiithiuvcácthitb
itbPLD,cutrúccamtvàiloi
nhnăngvàngdng.
1.2.Tngquanvthitblogickhtrình–PLD
Field Programmable Device (FPD) – Mt thut ng chung ñ ch bt c loi
mchtíchhpnàoñưcsdngñthcthimtphn cngs,mà ñóconchipcóth
ñưccuhìnhlibingưidùngcuinhmthuñưc mtthitkmi.Ngưidùngcó
thcuhìnhlichothitbngaytinơithitb ñưcsdngmàkhôngcnñemthitb
chonhàsnxutthchinviccuhình.Lptrình chocácthitbtrênbaogmvicñưa
conchipvàomtthitblptrìnhñcbit(npc uhình),nhưngmtskháccóthcu
hìnhngaytrênhthng(ISP–InSystemProgrammin g).MttêngikháccaFPDlà
Programmable Logic Devices (PLD). Sau ñây ta s ñi tìm hiu k hơn v các thit b
PLDscth.
PLD–ProgramableLogicDevice
ñưaragiithiuvàokhonggiathpk70,btn
logicthpcókhnăngtáilptrìnhliphncn
thnghim,tomu,pháttrinngdng,snxut
làthitblogicslptrìnhñưc,PLDñưc
guntýtưngchtoramtmch
g(khtrình),nhmphcvchovic
quymônh.
8
Khácvivixlý,viñiukhinhaycácloiICs
trìnhlptrìnhnhưngtrênmtphâncngcñnh,k
ñtñnsthayñimcphncng.Nóitheocách
ñích,cóthtáicuhìnhliphncngnhiulnt
PLDsñutiênlàcácthitbPAL–ProgrammableAr
trình)hayPLA.Cácthitbnàychsdngcácc
flipflop),chophépthchincácmchlogicth
ðkhcphcnhưcñimnày,cácthanhghi choPLD
miñuramtflipflop,doñócóththchinñư
ðuthpniên1980s,mtmchlogicmiñưcñưavà
trúctbàoñuramigilàMacroCell,chañng
kênh(MUX).ScitinnàyñemlichoPLDskhnă
KintrúcmicaPLDsñưcgilàGAL–genericPA
CácPLA,PAL,GALñưcgichunglàthitblogic
PLDs(SPLD).ðncácthhtipsau,mtvàiGALñ
tphơn,sdngcôngnghbándntiêntinvànhi
giaodinlogicvinhiuchunlogickhácnhau…).
ñivàñưcbittilàthitblogicskhtrình
cómtñtíchhpcao,hiusutcao,giáthànhth
ðngiathpk80,FPGAs(FieldProgrammableGate
thiu.FPGAcónhiuñimkhácbitviCPLDvki
vàvgiáthành.FPGAnhmtinhngthitbmch
Bng11:TómttvcácthitbPLD
9
Trongcácphntiptheotasñitìmhiuv2lo
PLDñơngin(SPLD)vàthitbPLDphctp(CPLD,
ithitbPLDñólàcácthitb
FPGA).
1.3.Thitblogickhtrìnhñngin–SimplePLD
Nhưñãñcptrên,cácthitbPAL,PLAvàGAL
logickhtrìnhñơngin–SimplePLD.Dưiñâys
SPLDs
1.3.1ThitbPAL
PAL – Programmable Array Logic chip ñưc ñưa ra gi
Memorieskhonggiathpk70.CutrúccaPAL:
saulàcáccngORcñnh.Cácñuvàoñưcniñ
cácñimnilptrìnhñưc,ñuracacáccngAN
HìnhdưiñâymôtcutrúccamtPAL(Hình2.1)
Vicutrúcphncngñó,khnăngcaPALlàch
thp,nugi
x = m1 + m2 + ..... + mM vim=f i(a1,a2,...aN) lyvíd:
x = a1
a
ð khc phc nhưc ñim này, cui nhng năm 70, Reg
ñưcñưaragiithiu.RPALscóthêmcácflipflop
chophépRPALsthchinñưcccáchàmlogicth
MtvídñinhìnhchocácthitbPALthôngdng
vào,8ñuranhưngvikiuñóngvPDIP20nênch
chânrachotínhiuvà6chânvào/ra.
1.3.2.ThitbPLA
ðưaragiithiuvàogianhngnăm70bihãngSi
viPALsch,cácthitbPLAscómngktniA
lichoPLAtínhlinhhothơnPALtrongcácthit
gnetics.CutrúcPLAkhác
NDvàORñulptrìnhñưc,ñem
klogics.
Nhưcñim:Sñimninhiudnñntcñchm
MtPLAñinhìnhlàSigneticsPLS161vi12vàovà
8ra.Côngnghchtora
PLAgingvicôngnghchtoPAL.Mcdùngàyna
ycácthitbPLAñãcũ,xong
chúngliñưcxuthintrlignñâynhưlàmt khikintrúctronghCPLDstiêu
thnănglưngthp,hCoolRunner(Xilinx)
2
10
Ktnilp
trìnhñưc
Hình11CutrúcmtthitbPAL.
Hình12CutrúcmtthitbPLA.
11
1.3.3.ThitbGAL
ðưcgiithiubiLatticevàoñunhngnăm1980
ThitbGALrañicónhiucitinquantrngtr
ongcutrúcsovi2loiPLD
trưcñólàPAL,PLAcácñimsau:
Cáctbàoñuraphctphơnñưcñưara(còngi
làMacroCell–
MC).
MiMCcha1FF,mtvàicngvàmtbMUX.
- MiMCñucóthlptrìnhñưc,chophépnhiuch
ñhotñng.
- CótínhiuphnhitñuraMCtrlimnglp
trình.
-
EEPROMñưcsdngthaythchoPROMvàEPROM
HìnhdưitrìnhbàycutrúccaGAL(Hình1.3).
Hình13:CutrúcchipGAL16V8.
12
v 20 chân, 8 vào và 8
GAL16V8 có 16 ñu vào và 8 ñu ra ñưc b trí ñóng
vào/ra.MiñuracómtMC
GAL s dng công ngh CMOS, EEPROM hay Flash và t
250MHz
c ñ có th lên ti
MtsnhàsnxutGAL:Lattice,Atmel,TI…
1.4.Thitblogickhtrìnhphctp–ComplexPL
Srañicacácthitbskhtrìnhphctp–
mngtrongngànhcôngnghipñint.Mtthitk
trămcácloicnglogiccùngviñólàcácvnñ
nñnhcahthng…ttcsñưctíchhptrong
CPLDslàthitbPLDcócutrúcphctphơncác
CPLDchañngnhiuPLDskhác(thưngthucloi
chipñơn.Ngoàira,CPLDcònmtmatrnchuynmc
vàora.ChcnăngcaCPLDbaogm:
MiñuracóktniñncácMacrocells
CóthêmtínhnăngnhưJTAG
Htrchungiaotipvicácmclogickhácnhau:1V8,2V5,3V3,5V
Hình14:CutrúcchungcamtCPLD.
ð làmrõ hơn, ta ñi vào phân tích thêm cu trúc
CP Xilinx.MimtCPLDgmcónPLDmà ñâymiPLDc
nhưkintrúccaGAL16V8,nhưngcó36ñuvàovà1
ñuracaGAL16V8,doñóGAL36V18có18Macrocells
LD h XC9500 ca hãng
hínhlàGAL36V18(ging
8ñura,thayvì16ñuvàovà8
chomiñura). KhiI/O
13
Blocks qun lý các chân vào/ra d liu ca PLD. Kh
i kt ni gia các I/O Blocks và
GAL36V18làmtmatrnchuynmchtcñcao(Fas
Chínhnhcutrúclinhhotvàtcñktnicao
CPLDlàmtgiiphápthaythchocácmchscng
nănghthngvàtăngtcñxlýthôngtin.
tCONNECTIISwitchMatrix).
(Trtruynñtchc5nS),cácthitb
knh,tcñchm,làmtănghiu
Hình15CutrúcCPLDXC9500caXilinx
MtsnhàcungcpcáclinhkinPLDvàCPLD
Xilinx(XC9500,CoolRunner…)
Altera(Max3000.Max7000…)
Lattice
Atmel
Cypress
14
DưiñâylàbnglitkêmtsloiCPLDsdo2hãn
XilinxvàAltera
Bng12AlteraCPLD.
Bng13XilinxCPLD.
gcungcplntrênthgiilà
15
1.5.FPGA–FieldProgrammableGateArrays
1.5.1.GiithiuvFPGA
FPGAñưcñưaragiithiulnñutiêngianhng
làtvitttcaFieldProgrammableGateArrays–
mtthit bFPD mà tañãñcp trên.T “Field”
nghĩavkhnăngtáicuhìnhliphncngchoFP
ngaytinơisdngmàkhôngcnmangtrlicho
mtñimmnhcaFPGAcũngnhưcácthitbPLDkh
RossFreeman,ngưiñngsánglprahãngXilinx,p
1984. FPGA bt ngun t s phát trin ca thit b
(CPLD_ComplexProgrammableDevices)cótgianhn
và FPGA ñu cha mt s lưng ln các thành phn lo
nhau.TrongkhimtñcnglogictrongCPLDchcó
trongFPGAcókhongtvàichcnghìnñnvàitri
FPGAcónhiukhácbitsoviCPLDsvcutrúc,c
htrvàgiáthành,hiusutcao,chophépthch
làmtvi mchchacáclogiccells.Milogiccell
logicvàñưcktnivinhaubimatrnktni
làtphpcácphntrircñưcktnitheom
MtñimkhácbitcnchúýgiaFPGAvàCPLDlàs
cómtcacáchnhúng
tronghuhtcácsnphmFPGA.Skhácbitquan
trnglàcónhiuFPGAhinñih
trñyñhocmtphnkhnăngcuhìnhlitron
ghthng,chophépthitkcóth
ñưcthayñicũngnhưnângcphthnghocchov
iccuhìnhñngtrlinhưlàmt
phnbìnhthưngcahñiuhành.MtvàiFPGAcó
khnăngcuhìnhriêngchophép
mtphncathitbñưclptrìnhlitrongkhi nhngphnkhácvnhotñngbình thưng.
Xu hưng phát trin gn ñây là vic kt hp các kh
i logic, các liên kt trong
FPGAtruynthngvivixlýnhúngvànhngngoi
vicóliênquanñtonênmt“h
thngtrênmtchipkhtrình”hoànthin.Tacóth
tìmthynhngthitkñótrongmt
s thit b
Xilinx VirtexII PRO và Virtex4 có cha mt hoc nhiulõi x lýnhúng
PowerPCtrongphmviktculogiccaFPGA.
AtmelFPSLIC làmtthitbtươngt
cũngcólõivixlýAVRkthpvicutrúclogic
khtrìnhcaAtmel.Ngoàicáclõivi
xlýcngcòncócáclõivixlýmmlàmtthành
phntrongphmvitàinguyênlogic
caFPGA.Nhnglõinàybaogm:
Xilinx MicroBlaze và PicoBlaze ,vixlý
Altera
16
Nios vàNiosII ,vàngun mLatticeMicro32 và LatticeMicro8 ,gingnhưlàlõixlý th3.
NhiuFPGA hin ñi cókh năng ñ lptrình li tr
ong khi ñang hot ñng, và
ñiunàyrtquantrngchoýtưngcavictínht
oáncuhìnhlihochthngcuhình
liñtcuhìnhliphùhpvihotñngspt
i.NhngcôngcFPGAhinnaychưa
hoàntoànhtrñyñchophươngthcnày.Hinn
ayFPGAkhôngcócutrúcñang
btñuxuthin.Vixlýcuhìnhphnmmnhư
StretchS5000 chnhưngtinñn
hlaibngcáchcungcpmtmngcáclõixlývà
FPGAgingnhưlõikhtrìnhtrên
cùngmtchip.Cácthitbkháccungcpcácmng
cacácñitưngkhtrìnhcpcao
nmgiakhilogiccaFPGAvàcácxlýphctp.
1.5.2.KintrúccaFPGA
HìnhdưitrìnhbàycutrúccơbncamtFPGA(H
ình16)
Hình16:CutrúcchungcaFPGA.
KintrúccơbncamtFPGAgmcó:
- Cáckhilogiccóthcuhìnhliñưc–CLB(Conf
iguableLogicBlocks)
- Matrnchuynmch(SwithMatrix)ñktnicácC
LBs–ktnilptrìnhñưc
- Cáckhivàora–IOB(In/OutBlocks)
17
KhiCLB: CutrúcbêntrongcacácCLBsrtkhácbitsov
iPLD.ðutiên,
thayvìsdngcáccnglogicANDvàORnhưtrong
cácSPLD,miCLBhotñngda
trênmtLUT(LookupTable)–Btohàm.Nhimv
caLUTlàxácñnhgiátrcác
ñuradatrêngiátrcacácñuvào.
IN
OUT
0110
0
1011
0
1100
1
Hình17:CutrúcmtCLBtrongFPGAhXC40000E
MiCLBgm4logiccell,Logiccellgm2LUTgin
ngõvào,tínhiuñiukhinvàFFD.TrongmiCLB
thái(BUFT).MiBUFTcóchânñiukhinvàngõvào
gnhau,miLUTgm4
cóhaibñiukhinngõra3trng
ñclp.
18
Hình18:CutrúcmtLogicCelltrongSpartanI
IE
Khivàora–IOB :Tínhiuvàoñiqua1bñm,tínhiuraquab ñm3trngthái,
theocácchun,bnh/giaotipBus.MiIOBgm3 FlipFlopchiachung1tínhiu
ClockvàcáctínhiuCE(ClockEnable),ñiukhin ñclpchotngFlipFlop.
Hình19CutrúcIOBtrongSpartanIIE.
Matrnchuynmch:
Nhưtathytrênhình111,matrnchuynmchbao
gmvôscácdâyni,cáckênhliênktñanchéon
gangdcbêntrongFPGAbaoquanh
19
cácCLB(kênhngangvàkênhdc).CácCLBthôngqua
ñnhtuyncóthktniñnbtkỳmtCLBnàokh
mngchuynmchvàthuttoán
ác.
mt hp chuyn mch.
Ti ñim phân ct ca kênh ngang và kênh dc ñu
nmch,có6côngtckhtrìnhcho
có Trongcutrúcnày,khimtdâyñivàomthpchuy
link.Môhìnhtopologycachuyn
phépnóktniñncácdâycònlitrongcácñon
mchsdngtrongcutrúcnàylàphnghoctrong
phmvicpcơscatopologyhp
chuynmch.Trongtopologyhpchuynmchnày,m vi dây
tdâytrongtracksmtchni
trong track s mt ca các ñon lin k, nh
ng dây trong track 2 ch ni vi
nhngdâytrongtrack2,vàctiptcnhưvy.Hì
nh110dưiñâysmôtnhngliên
kttrongmthpchuynmch:
Hình110:Liênkttrongmtchuynmch.
Hình111MngliênktgiacácCLB.
Cácktnitrctip: TrongFPGA,vicktnigiacácCLBthôngquamn
chuynmch,còncócácktnitrctipkhácñól à:
g
20
-
KtnigiaCLBlink
-
KtnigiacácCLBcáchxanhau
-
KtnigiaCLBñnIOB
Hình112Cácktnitrctipgiacáckhitro
Hình113FPGASpartanIIEcaXilinx.
1.5.3.CáckhichcnăngcaFPGAvàngdngFPGA
CáckhichcnăngcaFPGA:
ngFPGA.
21
- FPGAcóslưngflipflopgpnhiulnsoviCPL
hinñưccáchàmlogicdãyphctp
Ds,chophépFPGAthc
- ChungiaotipJTAGphcvchoviêccuhìnhvàd
-
ebugphncng
Giaotiptươngthíchnhiuchunlogickhácnhau
- BnhSRAM
- Cácbnhântnvàqunlýxungñngh:PLL,DLL,
DCM
-
GiaotipPCI
-
Mtsloikháccòncóbnhân,DSPvàvixlýtíchhpsn…
FPGAsdngcôngnghnhSRAM(viCPLDslàEEPRO
MvàFlash)ñlưu
cuhìnhdoñógimgiáthànhvàtăngkhnăngkt
ni,nhưngcũngvìvymàdliub
mtkhimtñin.FPGAcncómtPROMngoàiñlưu
trcuhình.Khikhiñng,các
cuhìnhtrongROMsñưcnptrlivàoRAMca FPGAvàthcthichcnăngñã ñưclptrình.
ngdngFPGA
Thitkmchlogicshinñitheonhucucang
ưithitk
Tomutrưckhichtovimch
Thitkcácbvixlý,viñiukhin,thitkh
thngnhúng
XlýtínhiusDSP
Xlýnhs,Video
Xlýâmthanh
Truynthông:Ethernet,mãTurbo,mãViterbi,Reed–
Solomon…
CácgiaotipPCI,USB
ðiukhintñng
Cácngdngkhác…
Quachươngnàytañãtìmhiuvcutrúcchcnăng
PLDñơnginlàPAL,PLAvàGAL.Tacũngñãtìmhi
loiPLDcókintrúcphctphơnsoviGAL,làs
GALcùngmimatrnchuynmchvàcáckhivào/ra
CPLDñemlinhiuliíchvàtínhlinhhottrong
PLD,FPGAcónhiukhácbitsoviCPLDsvcutr
tr,giáthànhhiusutcao,chophépmchtíchh
vàhotñngcamtsloi
uvkintrúccaCPLD,mt
tnghpcartnhiucácthitb
.Svưttrivcôngnghca
cácthitklogics.Cũnglàmtloi
úc,côngnghlưutr,tínhnăngh
pcln.
22
Chương2THITKTPLNH
calnhñưchiubimt
ñcóthralnhñưcchophn
nngcamáytính,cóthhiu
cáclnh.
Tplnhcóthñưchiunhưtphpnhngtvng
kintrúc máytínhnhtñnh.Nói mtcáchñơngin
cngmáytínhchúngtacnphinóichuynbngngô
mtcáchnômnarngngônngcamáytínhchínhlà
2.1.Môtchungvtplnh.
Mimtlnhcavixlýdài12bít,ñưcchiathà
ñnhkiulnhvàOPERANDdùngñxácñnhtoánhn
tiênñtravimtngưithitkviñiukhinlà
ca mi lnh bng bao nhiêu, trong mt lnh có bao
lnh.Tronglunvănnàytácgidavàokintrúc
vytplnhcaviñiukhincũngphituântheo
MtkintrúcRICSbìnhthưng, c thtrongtrư
nhphnOPCODE,dùngñxác
gngvilnhñó.Bàitoánñu
thitktplnhnhưthnào,ñdài
nhiêu trưng, có bao nhiêu kiu
RISCñthitkviñiukhin,như
kintrúcRISC.Cthnhưsau:
nghpnày,theonhưdòng
iukhinlà33lnh,như
DEcalnh.
viñiukhin8bítcaMICROCHIP,slnhcaviñ
vytacntithiulà6bítñmãhóatrưngOPCO
-
KintrúcRISCcómtthanhghichungthưngñưcd
khácnhaugilàthanhghilàmvic(Workingregist
cóththanhghinàyhocbtkìmtthanhghinào
cnthêmmtbitnañmãhóatplnh.
-
Viñiukhincó32thanhghitrongregisterfile,
mãhóañachregisterfileñưcdùnglàmtoánhn
-
Tnghplinhngñiutrêntathycnthitkm
lnhcó12bít.
Trongthitknày,ttccáclnhñưcthchin
cycle)nhvàothcthikĩthutpipeline.Chcóm
lnhrnhánh(branchinstruction),nuñiukinc
hin),trongtrưnghpnàyscntihaichukìl
Mtchukìlnhbaogm4chukìxungnhp,tcl
cnquabnchukìxungnhpkhácnhau,sdĩcóñi
lnhthưngñưcchiaralàmbnbưc:Tìmvànpl
lnh(InstructionDecode),thchinlnh(Executio
vynuvibtoxungnhpcóñuralà4MHzñưc
sthchinñưcmtlnhtrong1microgiây.Trong
smt2sñthayñibñmchươngtrìnhvàthc
ùngtrongrtnhiulnh
er)W,toánhngñưcchn
ñótrongregisterfile,doñó
nhưvyscnti5bítnañ
gtrongcáclnh.
ttplnhmàmitcatp
trongmtchukìlnh(instruction
ttrưnghpngoillàkhithchin
alnhñúng(lnhrnhánhñưcthc
nhñhoànthànhlnhrnhánhñó.
à mtlnhmunhoànthin
unàylàvìvikintrúcRISC,mt
nh(Innstructionfetch),giimã
n)vàghiktqu(WriteBack).Bi
làmclockchovixlýthìvixlý
trưnghplnhrnhánh,vixlý
hinlnh.Nhưvycóthnóirng
xungnhp4MHz,viñiukhincóththchinñưc
nhưkhôngsdngkintrúcñưngng.Trongtrưng
mimtlnhchcnmtchukìxungnhpñuvàoñ
lnhrnhánhsñòihi2chukìxungnhpñhoàn
pipeline xung nhp 4MHz vi ñiu khin s thc hi
giây.
2.2.Thitkchitittplnh.
Tplnhcavixlýñưcchiaralàmbakiuñnh
lnh hưng byte (byte – oriented), các lnh hưng b
khin.
Cáclnhhưngbyte
lnhsñưcthchintrênmtbyte(ñuvàovàñ
Lnhhưngbytethưnglànhnglnhñthchinc
toánhngcóñrnglà1byte.ðnhdngcacácl
11
OPCODE: 6 bit ñ xác ñnh lnh tương ng, opcode c
tươngngñưcchranhưtrênhình21.
OPERAND:Toánhngñivicáclnhhưngbytechín
haitoánhngnàynhưsau
o
d:1bítdùng
W(working
xácñnhbi5
o
f:5bítdùng
Cóttc18lnhhưngbytetrongtplnhcav
i dưi21.
ñiukhinñưcchranhưbng
Cáclnhhưngbít :Làcáclnhdùngñthayñicácbíttrongthanh ghiWhoc
thayñicácbíttrongregisterfilef.Cáclnhhư ngbítthưngrthayñưcs dng trong các ng
dng vi ñiu khin do phn ln c ác ng dng ca vi ñiu
khinlànhngngdngñơngin,ñuvàocũngnhư ñurathưngchlàmtbít.
ðnhdngcacáclnhhưngbítnhưsau:
24
STT
1
2
3
4
5
6
Mnemonic
I_ADDWF
I_ANDWF
I_CLRF
I_CLRW
I_COMF
I_DEC
7
I_DECFSZ
8
I_INCF
9
I_INCFSZ
10
11
12
13
14
I_IORWF
I_MOV
I_MOVWF
I_NOP
I_RLF
15
I_RRF
16
17
18
I_SUBWF
I_SWAPF
I_XORWF
Bng21:Cáclnhhưngbytecaviñiukhin
OPCODE:6bítlàtrưngñxácñnhopcodecacác
lnhtươngng.
OPERAND:gmhaitrưng:
o
b:3bítdùngñxácñnh1bítxácñnhtrongmt
bytecnthayñi.
o
f:5bítdùngñxácñnhñachcaregisterfile
hưngbítnàymunthayñigiátrmtbíttrênñó
,chínhlàbytemàlnh
.
Có4lnhhưngbítñưcchranhưtrongbngdưi
ñây.
25
STT Mnemonic
1 I_BCF
2 I_BSF
3 I_BTFSC
4 I_BTFSS
Cáclnhñiukhin:
rnhánh,gichươngtrìnhcon…..Cáclnhñiukhi
trlnhgotonhưñưcmôtdưiñây.
11
OPCODE
f(FILE#)
Hình23:ðnhdngcáclnhrnhánh
11
9
8
OPCODE
0
f(FILE#)
Hình24:ðnhdngcalnhgoto
Cáclnhrnhánhñưcchranhưtrongbng23.