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

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

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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âydngmoduliukhin 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 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 DANHMCBNG Bng11:TómttvcácthitbPLD 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:IPcorư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ưthuttốnthchinchychtr LINĨIðU Vixuhưngpháttrinrtnhanhcacácbvix caocangưidùng,vicpháttrinmtmtbvix vàđanglàucukhnthitđivinhngnhàphá vixlýcókhnăngtínhtố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ínhtố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.Saótácgiscit tínhtốntthơn,nhưápdngkĩthutđưngngp m rng khơng gian nh ca b nh chương trình b banking.Cuicùngthchintnghpthitktrên cácchươngtrìnhnh.Phncuicùngtácgistrì viđiukhin vưcthitk.Ktqu chothy, đưcnhngchcnăngcơbn lýcũngnhưucungàycàng lývitcđtínhtốnthtmnhđã ttrincơngngh.Victhitkcácb vnđmimtrênthgii,nhưng khănnhtđnh.Tronglunvăn lýcókhnăngtínhtố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 Chương1TNGQUANVFPGA 1.1.Giithiuchung NgàynayvicsdngmthFPGanglàmtđtà gii,sdĩnhưvylàdocáclýdocơbnsau: Dospháttrinrtnhanhcacơngnghbándn,g càngr VicsdngchipFPGpháttrinsnphmsrú gianthitkcũngnhưthigianđưasnphnrath phápthitktruynthngnhưASIC SdngcơngnghFPGverificationmtthitk rt nhiu thi gian simulation gim đưc n thitk Dưiđâytrìnhbàysơlưcvcácthitblogickh kdatrêncơngnghFPGA,sdĩtácgichtpt da cơng ngh FPGA tác gi s s dng ch Prototypethitkcatácgi.Phnđutiêncac PLD:kháinimPLD,qtrì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 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àưcsdngđthcthimtphn cngs,mà đóconchipcóth đưccuhìnhlibingưidùngcuinhmthư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 ta s tìm hiu k v 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 Khácvivixlý,viđiukhinhaycácloiICs trìnhlptrìnhnhưngtrênmtphâncngcđnh,k đtđnsthaimcphncng.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,dócóththchinđư ðuthpniên1980s,mtmchlogicmiđưcđưavà trúctbàuramigilàMacroCell,chng kênh(MUX).Scitinnà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ónhiimkhácbitviCPLDvki vàvgiáthành.FPGAnhmtinhngthitbmch Bng11:TómttvcácthitbPLD 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 gi Memorieskhonggiathpk70.CutrúccaPAL: saulàcáccngORcđnh.Cácđuvàư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ưngvikió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 MtPLinhìnhlàSigneticsPLS161vi12vàovà 8ra.Cơngnghchtora PLAgingvicơngnghchtoPAL.Mcdùngàyna ycácthitbPLãcũ,xong chúngliđưcxuthintrlignđâynhưlàmt khikintrúctronghCPLDstiêu thnănglưngthp,hCoolRunner(Xilinx) 10 Ktnilp trìnhđưc Hình11CutrúcmtthitbPAL Hình12CutrúcmtthitbPLA 88 Phlc2.MãngunVerilogcanhânviđiukhin `timescale 1ns / 10ps module mrisc( clk, rst_in, inst_addr, inst_data, portain, portbin, portcin, portaout, portbout, portcout, trisa, trisb, trisc, tcki, wdt_en ); / Basic Core I/O inputclk; input rst_in; // Program memory output [10:0] input // Basic I/O Ports input input input output output output output output output input input / / This should be set to the ROM location where our restart vector is As set here, we have 512 words of program space parameter PC_RST_VECTOR = 11'h000, // Should be: 11'h7FF, STAT_RST_VALUE = 8'h18, 89 parameter parameter 90 //Special Function Register parameter parameter parameter result is not zero // Instruction Register reg reg reg wire reg reg reg reg reg reg [7:0] [11:0] valid; mask; //Out put of special Function Register //16 mode for ALU operation //Maybe not need wire [7:0] wire d [7:0] s reg wire out [2:0] s c reg reg reg reg reg reg p p p p p p wire wire reg // stage dst decode reg i i i w reg reg reg // stage dst decode reg wire reg rf_we; reg reg reg reg wire reg wire reg reg reg reg reg reg wire wire wire reg wire wire wire indf_we_; pc_we_; bit_sel; [7:0] tmr0_cnt_en; wdt_to; wdt_en; tcki; wire [7:0] // Register wire [1:0] wire [4:0] wire [7:0] / Program Counter reg [10:0] inst_addr; reg [10:0] pc; wire [10:0] pc_next; wire [10:0] pc_plus_1; wire [10:0] stack_out; reg [10:0] pc_r, pc_r2; wire [10:0] pc_next1, pc_next2, pc_next3; / W Register reg reg wire reg addressing) wire reg reg [7:0 [7:0 [7:0 [6:0 [6:0 [7:0 [5:0 92 / Tristate Control registers reg [7:0] trisa; reg [7:0] trisb; reg [7:0] trisc; / reg reg reg reg reg reg I/O Port registers [7:0] porta_r; [7:0] portb_r; [7:0] portc_r; [7:0] portaout; [7:0] portbout; [7:0] portcout; / / / / / / PORTA PORTB PORTC PORTA PORTB PORTC input register input register input register output register output register output register /////////////////////////////////////////////////////////////////////// / / External Reset is Synchrounous to clock always @(posedge clk) rst

Ngày đăng: 11/11/2020, 22:13

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan