Tải bản đầy đủ (.docx) (110 trang)

Nghiên cứu, thiết kế vi xử lý 8 bit dựa trên công nghệ FPGA

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.81 MB, 110 trang )

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.


×