DDS 直接數(shù)字頻率合成器實驗報告(DOC)
直接數(shù)字頻率合成器(DDS)實驗報告課程名稱電類綜合實驗實驗名稱直接數(shù)字頻率合成器設計實驗日期2015.6.12013.6.4學生專業(yè)測試計量技術及儀器學生學號114101002268學生姓名陳靜實驗室名稱基礎實驗樓237教師姓名花漢兵成績5摘要直接數(shù)字頻率合成器(DirectDigitalFrequencySynthesizer簡稱DDFS或DDS)是一種基于全數(shù)字技術,從相位概念出發(fā)直接合成所需波形的一種頻率合成技術。本篇報告主要介紹設計完成直接數(shù)字頻率合成器DDS的過程。其輸出頻率及相位均可控制,且能輸出正弦波、余弦波、方波、鋸齒波等五種波形,經過轉換后在示波器上顯示。經控制能夠實現(xiàn)保持、清零功能。除此之外,還能同時顯示出頻率控制字、相位控制字和輸出頻率的值。實驗要求分析整個電路的工作原理,并分別說明了各子模塊的設計原理,依據各模塊之間的邏輯關系,將各電路整合到一塊,形成一個總體電路。本實驗在QuartusII環(huán)境下進行設計,并下載到SmartSOPC實驗系統(tǒng)中進行硬件測試。最終對實驗結果進行分析并總結出在實驗過程中出現(xiàn)的問題以及提出解決方案。關鍵詞:QuartusII直接數(shù)字頻率合成器波形頻率相位調節(jié)AbstractTheDirectDigitalFrequencySynthesizerisatechnologybasedonfullydigitaltechnique,afrequencycombinationtechniquesynthesesarequiredwaveformfromconceptofphase.ThisreportintroducesthedesigntothecompletionoftheprocessofdirectdigitalfrequencysynthesizerDDS.Theoutputfrequencyandphasecanbecontrolled,andcanoutputsine,cosine,trianglewave,squarewave,sawtoothwave,whicharedisplayedontheoscilloscopeafterconversation.Canbeachievedbythecontroltomaintainclearfunction.Furthercansimultaneouslydisplaythevalueofthefrequency,thephasecontrolwordandtheoutputfrequency.TheexperimentaldesignintheQuartusIIenvironment,thelasthardwaretestdownloadtoSmartSOPCexperimentalsystem.Thefinalresultswillbeanalyzed,thematterwillbeputforwardandthesettlingplancanbegivenatlast.Keywords:QuartusIIDirectDigitalFrequencySynthesizerwaveformFrequencyandphaseadjustment目錄一、設計內容4二、設計原理42.1 DDS概念42.2 DDS的組成及工作原理4三、設計要求63.1基本要求63.2提高要求6四、設計內容64.1分頻電路64.2頻率預置與調節(jié)電路104.3累加器124.4波形存儲器(ROM)134.5測頻電路194.6譯碼顯示電路214.7消顫電路224.8總電路23五、電路調試仿真與程序下載24六、示波器波形圖25七、實驗中遇到的問題及解決方法25八、電路改進26九、實驗感想28十、參考文獻28一、設計內容設計一個頻率及相位均可控制的具有正弦和余弦輸出的直接數(shù)字頻率合成器(DirectDigitalFrequencySynthesizer簡稱DDFS或DDS)。二、設計原理2.1 DDS概念直接數(shù)字頻率合成器(DirectDigitalFrequencySynthesizer簡稱DDFS或DDS)是一種基于全數(shù)字技術,從相位概念出發(fā)直接合成所需波形的一種頻率合成技術。2.2 DDS的組成及工作原理DDS的基本組成結構如下圖2-1所示,其主要由頻率預置與調節(jié)電路、累加器、波性存儲器(如正弦波數(shù)據表等)、D/A轉換器及低通濾波器等幾部分組成。fc圖2-1DDS整體電路工作原理圖其中相位累加器由N位加法器和N位寄存器構成。每來一個時鐘clock,加法器就將頻率控制字f與累加寄存器輸出的累加相位數(shù)據相加,相加的結果又反饋送至累加寄control存器的數(shù)據輸入端,以使加法器在下一個時鐘脈沖的作用下繼續(xù)與頻率控制字相加。這樣,相位累加器在時鐘作用下,不斷對頻率控制字進行線性相位累加。由此可以看出,相位累加器在每一個時鐘脈沖輸入時,把頻率控制字累加一次,相位累加器輸出的數(shù)據就是合成信號的相位,相位累加器的溢出頻率就是DDS輸出的信號頻率。用相位累加器輸出的數(shù)據作為波形存儲器的相位取樣地址,這樣就可把存儲在波形存儲器內的波形抽樣值(二進制編碼)經查找表查出,完成相位到幅值轉換。波形存儲器的輸出送到D/A轉換器,由D/A轉換器將數(shù)字信號轉換成模擬信號輸出,DDS信號波流程示意圖如圖2-2所示。圖2-2DDS工作流程示意圖由于相位累加器為N位,相當于把正弦信號在相位上的精度定為N位,所以分辨率1為一。若系統(tǒng)時鐘頻率為f,頻率控制字f為1,則輸出頻率為2Nccontrolout2N這個頻率相當于“基頻”若f為K,則輸出頻率為:controloutc2N當系統(tǒng)輸入時鐘頻率f不變時,輸出信號的頻率由頻率控制字K所決定。由上式可c得:2NfK=fc其中,K為頻率字,注意K要取整,有時會有誤差。選取ROM的地址時,可以間隔選項,相位寄存器輸出的位數(shù)D般取10-16位,這種截取方法稱為截斷式用法,以減少ROM的容量。D太大會導致ROM容量的成倍上升,而輸出精度受D/A位數(shù)的限制未有很大改善。圖2-3組裝模塊后的整體工作原理圖直接數(shù)字頻率合成器(DDS)實驗報告三、設計要求3.1基本要求(1) 用QuartusII軟件和SmartSOPC實驗箱實現(xiàn)DDS的設計;(2) DDS中的波形存儲器模塊用Altera公司的Cyclone系列FPGA芯片中的ROM實現(xiàn),ROM結構配置成4096X10類型;(3) 具體參數(shù)要求:頻率控制字K取4位;基準頻率fc=lMHz,由實驗板上的系統(tǒng)時鐘分頻得到;(4) 系統(tǒng)具有清零和使能的功能;(5) 利用實驗箱上的D/A轉換器件將ROM輸出的數(shù)字信號轉換為模擬信號,能夠通過示波器觀察到正弦波形;(6) 通過開關(實驗箱上的Ki)輸入DDS的頻率和相位控制字,并能用示波器觀察加以驗證。3.2提高要求(1) 通過按鍵(實驗箱上的Si)輸入DDS的頻率和相位控制字,以擴大頻率控制和相位控制的范圍;(注意:按鍵后有消顫電路)(2) 能夠同時輸出正余弦兩路正交信號;(3) 在數(shù)碼管上顯示生成的波形頻率;(4) 充分考慮ROM結構及正弦函數(shù)的特點,進行合理的配置,提高計算精度;(5) 設計能輸出多種波形(三角波、鋸齒波、方波等)的多功能波形發(fā)生器;(6) 基于DDS的AM調制器的設計;(7) 自己添加其他功能。四、設計內容4.1分頻電路硬件電路的內部時鐘為48MHz,使用前必須將它分配至我們需要的0.5Hz、1Hz、2Hz、1KHz和1MHz。分頻電路由多個計數(shù)器組合而成,主要是由2分頻/3分頻/10分頻這三種基本分頻電路以不同形式組合構成。各子分頻的輸出最好取計數(shù)器輸出的最高位,這樣分出的頻率脈沖占空比較大。下圖為總分頻電路流程圖:圖4T總分頻電路流程圖4.1.1二分頻電路二分頻電路由一個D觸發(fā)器及一個非門實現(xiàn),通過將D觸發(fā)器的Q和Q相連,在Q端即得到一連串的二分頻信號,實驗電路圖及封裝圖如下:圖4-2二分頻電路圖drv2div2(i圖4-3二分頻電路封裝圖其仿真波形為:圖4-4二分頻電路的仿真波形4.1.2三分頻電路三分頻電路通過74160用置數(shù)法實現(xiàn),其輸出端QQQQ按照0000t0001t0010DCBA的方式循環(huán)計數(shù)就可以對其輸入的脈沖進行三分頻,輸出信號由0引出。其電路圖及封B裝圖如下圖所示:hslLDNABCL40QBDQCENTQDENPRCOCLRNCLKCOUNTER-護:.:<:>:.:<:>:.:>:.:>:.:>:.:>:.:>:<.-:>:3ivd2-CIVd圖4-5三分頻電路圖圖4-6三分頻電路封裝圖其仿真波形為:IT:iiTieV:ilueat15.93ns畛0div3iA1a1div3oA03ps15.925nsJ40.0ns80.0ns120.0ns160.0ns200.0ns240.0ns280.0ns320.0nsr圖4-7三分頻電路的仿真波形4.1.3八分頻電路八分頻電路實際上就是三個二分頻電路相串聯(lián)而成,其電路圖及封裝圖如下圖所示:30圖4-8八分頻電路圖divSinst圖4-9八分頻電路封裝圖15.93ns0div8iA1妙111¥00A1其仿真波形為:ps80.0ns160.0ns240.0ns320.0ils400.0ns480.0ils560.0ns640.0ns720.0ils800.0ns880.0ils960.0njiiiiiiiiiiii15.925ns1i1I11J圖4-10八分頻電路的仿真波形4.1.4十分頻電路十分頻點路由一片74163和一個與非門得到,在1100時置數(shù)0011,計數(shù)器循環(huán)方式如下所示:0000T0001T0010T0011T0100T0101T0110T0111TJ1100J1011J1010J1001J1000圖4-11十分頻電路計數(shù)循環(huán)圖取最高位Q4為計數(shù)器的輸出端內部結構及其封裝圖如下圖所示:.芒打尹芒打芒0尹芒打/芒打尹住.div10idivlQidivlOoi纟Ifinst£羞圖4-12十分頻電路圖圖4-13十分頻電路封裝圖其仿真波形為:Jps80.0ns160.0ns240.0he320.0ns400.0ns480.0he560.0ns640.0ns720.0he800.0ns880.0ns960.0fiiiiiiiiiiiiN:aroe0ps3ps.0iA0.匚1口A0iiiiiii1iiiiiiiitiiiiiiiitiiiii1iiiiiiIIIIII1111111iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii圖4-14十分頻電路的仿真波形從波形仿真圖可以看出,10個脈沖信號為一個周期,且高低電平之比為1:1,符合要求。4.1.5千分頻電路1000分配電路實際上是三個10分頻電路相串聯(lián)得到的。其波形圖及封裝圖如下圖:圖4-151000分頻電路圖divKlOOidiv1QQOdirtst圖4-161000分頻電路封裝圖其仿真波形為:101djqrlOOOi圖4-171000分頻電路的仿真波形4.1.6總分頻電路總分頻電路圖及封裝圖如圖所示:圖4-18總分頻電路圖圖4-19總分頻電路封裝圖4.2頻率預置與調節(jié)電路頻率預置與調節(jié)電路的主要作用是實現(xiàn)頻率控制量的輸入,不變量K為相位增量,Kf也叫頻率控制字。DDS的輸出頻率表達式為f=-厶,當K=1時,DDS輸出最低頻率out2N(也即頻率分辨率)為f,而DDS的最高輸出頻率由Nyquist采樣定理決定,即f,也就是說K的最大值為2N-1。設計頻率調節(jié)模塊時,采用74160設計模32計數(shù)器來產生頻率控制字,1Hz信號輸入讓其變化,目的是為了使輸出頻率的調節(jié)范圍更大一些。該模塊為了節(jié)省開關以后續(xù)可控制波形選擇輸出,設有清零保持端,由開關控制,以便計數(shù)到需要值時保持或清零。輸出為8位BCD碼,高四位是十位,低四位是個位。此時要在計數(shù)器后接一個碼轉換電路,將BCD碼轉換為二進制碼,再輸入累加器進行累加。同樣的可以設計出相位調節(jié)模塊。需要注意的是,這里的加法器是12位的,因此要將頻率控制字作為12位地址的低7位輸出,高5位賦值為0,這樣可以使頻率調節(jié)的精度更高。而相位控制字要作為12位地址的高7位輸出,低5位賦值為0,這樣可以使相位調節(jié)幅度變大。最好讓相位增量和相位控制字通過寄存器,時鐘為1MHz的系統(tǒng)時鐘,使得電路同步工作。模32電路圖、BCD碼至二進制碼的轉換電路圖以及頻率相位同步圖如下所示:圖4-20模32計數(shù)器電路圖W二I、洱T-.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.'.v.v.-.v.v.v.v.v.v.v.v.v.-.v.v.vJ.vTivTI'.v.v.-.v-.毆s跑、J-f-|>L.ABC¥4DY5EYEGNY7¥874184;GD:泊BCD-BINARYibint.iY1ABy.CY4DYSEY&GNY7YSr:2:.x74184mt-BCD-BINARY訂聽!盒圖4-21BCD碼至二進制碼的轉換電路圖1D1Q2D2Q2D3Q4D4Q5D5Q6DSQCLRNCLK74174REGISTER1D1Q2D2Q3D3Q4D4Q5DSQ6D&QCLRNCLK74174instiREGISTER君二Q二bine.O>(110:Imlu:|、比匹=圖4-22頻率相位同步圖其封裝圖如圖所示:圖4-23頻率相位封裝圖圖4-24累加器流程圖4.3累加器相位累加器由12位加法器與12位寄存器級聯(lián)構成,如下圖所示。fc每來一個時鐘脈沖,加法器就將頻率控制字K與累加寄存器輸出的累加相位數(shù)據相加,相加的結果又反饋送至累加寄存器的數(shù)據輸入端,寄存器將加法器的上一個時鐘作用后所產生的相位數(shù)據反饋至加法器的輸入端,以使加法器在下一個時鐘脈沖的作用下繼續(xù)與頻率控制字相加。這樣,相位累加器在時鐘作用下,不斷對頻率控制字進行線性相位累加。當相位累加器累加滿量時就會產生一次溢出,完成一個周期性的動作。累加器電路圖及封裝圖如下圖所示:豈074174IDIQ2D2Q3D3Q4D4Q5D5Q6D6QCLRNCLK7s4*4心hnet3”REGISTER,y61s6lyijvs7.¥P-XA三二y3.V'-s9'/K-A=::-:J<-.1mhz.-.74174ID1Q2D2Q3D3Q4D4Q5D5Q6D6QCLRNCLK.:-+:-*;-<i1f.曲訕圖4-25累加器電路圖leijiaqi1mhzinst圖4-26累加器電路封裝圖4.4波形存儲器(ROM)波形存儲器的原理圖如圖所示:圖4-27波形存儲器的原理圖波形存儲器的相位取樣地址來自于相位累加器輸出的數(shù)據這樣就可把存儲在波形存儲器內的波形抽樣值(二進制編碼)經查找表查出,完成相位到幅值轉換。同時,波形存儲器中還可存放不同類種波形的地址,例如正弦波、余弦波、方波、矩形波、鋸齒波、三角波等。為了能讓電路輸出五種波形,使用五塊不同的波形存儲器分別存放這五種波形一個周期內的數(shù)據??紤]到硬件包括兩塊相同的DAC板,正弦波的輸出值直接在DACO板上,其余四種波的輸出值經過一個四選一數(shù)據選擇器,由兩個開關控制選擇波形輸出到DAC1板。LPM_ROM的設定則由mif文件產生五個ROM的數(shù)據值。在元器庫種選取LPM_ROM,設置ROM信息,數(shù)據寬度為lObits,數(shù)據個數(shù)為4096,設置ROM為寄存器輸出,指定ROM的初始化數(shù)據來源,選擇由MATLAB軟件生成的mif文件,然后點擊“finish”即可生成ROM單元。MegaWizardPlug-InManagerpage2cSelectedMegafunctions:|LPMROMWhichtypeofoutputfiledoyouwanttocreate?CAHDLGVHDLCVerilogHDLWhatnamedoyouwantfortheoutputfile?Browse.|D:70quartuswindowsquartusddssinromNote:TocompileaprojectsuccessfullyintheQuartusIIsoftware,yourdesignfilesmustbeintheprojectdirectory,intheglobaluserlibrariesspecifiedintheOptionsdialogbox(Toolsmenu),orauserlibraryspecifiedintheUserLibrariespageoftheSettingsdialogbox(Assignmentsmenu).Yourcurrentuserlibrarydirectoriesare:廠Don'taskmeforanoutputfilenameortheoutputfileformatagain.Infuture,nameoutputfilesautomaticallyandusethecurrentoutputfileformat.(Note:YoucanturntheBlockEditor'sautonamingandautoformatselectiononandoffwiththeOptionscommandintheToolsmenu.)CancelI”Next|圖4-28設置LPM_ROM方法4.4.1各波形對應mif文件的生成%存儲單元數(shù);%數(shù)據寬度為10位;(1) 正弦波depth=4096;widths=10;N=0:1:4096;s=sin(pi*N/2048);fidc=fopen('sin.mif','wt');%計算0pi/2的Sin值;%以"wt"的形式打開八n為換行%寫入dds.mif%fprintf(fidc,'depth=%d;n',depth);fprintf(fidc,'width=%d;n',widths);fprintf(fidc,'address_radix=dec;n');fprintf(fidc,'data_radix=dec;n');fprintf(fidc,'ContentBeginn');for(x=1:depth)fprintf(fidc,'%d:%d;n',x-1,round(2047*sin(pi*(x-1)/2048)+2048);endfprintf(fidc,'end;');fclose(fidc);k=1:1:depth;plot(k,(2047*sin(pi*(k-1)/2048)+2048);%畫圖圖4-29matlab生成正弦波圖形(2) 余弦波depth=4096;widths=10;N=0:1:4096;%存儲單元數(shù);%數(shù)據寬度為10位;s=cos(pi*N/2048);%計算0pi/2的cos值;fidc=fopen('cos.mif','wt');%以"wt"的形式打開,n為換行%寫入dds.mif%fprintf(fidc,'depth=%d;n',depth);fprintf(fidc,'width=%d;n',widths);fprintf(fidc,'address_radix=dec;n');fprintf(fidc,'data_radix=dec;n');fprintf(fidc,'ContentBeginn');for(x=1:depth)fprintf(fidc,'%d:%d;n',x-1,round(2047*cos(pi*(x-1)/2048)+2048);endfprintf(fidc,'end;');fclose(fidc);k=1:1:depth;plot(k,round(2047*cos(pi*(k1)/2048)+2048)%畫圖圖4-30matlab生成余弦波圖形(3) 方波depth=4096;widths=10;forn=1:2048s(n)=4095;s(n+2048)=1;end%存儲單元數(shù);%數(shù)據寬度為10位;fidc=fopen('fb.mif','wt');%以"wt"的形式打開,n為換行%寫入dds.mif%fprintf(fidc,'depth=%d;n',depth);fprintf(fidc,'width=%d;n',widths);fprintf(fidc,'address_radix=dec;n');fprintf(fidc,'data_radix=dec;n');fprintf(fidc,'ContentBeginn');forx=1:1:depthfprintf(fidc,'%d:%d;n',x-1,s(x);endfprintf(fidc,'end;');fclose(fidc);k=1:1:depth;plot(k,round(s)%畫圖5K-1SQ02KflJDW35404K-4拓口圖4-31matlab生成方波圖形(4)鋸齒波depth=4096;%存儲單元數(shù);widths=10;%數(shù)據寬度為10位;forn=1:2048s(n)=n;s(n+2048)=n;endfid=fopen('jcb.mif','wt');%以"wt"的形式打開,n為換行%寫入dds.mif%fprintf(fid,'depth=%d;n',depth);fprintf(fid,'width=%d;n',widths);fprintf(fid,'address_radix=dec;n');fprintf(fid,'data_radix=dec;n');fprintf(fid,'ContentBeginn');for(x=1:depth)fprintf(fid,'%d:%d;n',x-1,s(x);endfprintf(fidc,'end;');fclose(fidc);k=1:1:depth;plot(k,round(s)圖4-32matlab生成鋸齒波圖形(5)三角波depth=4096;%存儲單兀數(shù);widths=10;%數(shù)據寬度為10位;forn=1:2048s(n)=2*(n-1);s(n+2048)=2*(2048-n);endfidc=fopen('sjb.mif','wt');%以"可七"的形式打開,n為換行%寫入dds.mif%fprintf(fidc,'depth=%d;n',depth);fprintf(fidc,'width=%d;n',widths);fprintf(fidc,'address_radix=dec;n');fprintf(fidc,'data_radix=dec;n');fprintf(fidc,'ContentBeginn');for(x=1:depth)fprintf(fidc,'%d:%d;n',x-1,s(x);endfprintf(fidc,'end;');fclose(fidc);k=1:1:depth;plot(k,round(s)圖4-33matlab生成三角波圖形4.4.2五種波形存儲器的封裝圖及選擇電路圖lpm_muxOsinromaddress11.Oclockc&.0LsiriS/Cd日怕:M9.01d日怕2x0.01d日怕(M9.01irt5t5inst3圖4-34五種波形存儲器的封裝圖及選擇電路圖4.5測頻電路4.5.1測頻電路原理數(shù)碼管的右邊四位用來輸出頻率控制字與相位控制字,左邊四位用來顯示相應的波形頻率,需設計測頻電路來測量頻率。測頻就是計算1秒鐘內脈沖的個數(shù)??梢岳糜嫈?shù)器和鎖存器實現(xiàn)這一功能。通過觀察可知,每當輸出一個周期的波形時,波形數(shù)據輸出的最高位也變化一周期,因此可以用它q9來表征輸出波形的頻率。測頻電路原理圖如下圖所示:圖4-35測頻電路原理圖使用模10000的計數(shù)器來統(tǒng)計輸出波形的頻率,時鐘即為測頻脈沖。將0.5Hz脈沖送入鎖存器的時鐘端,0.5Hz反相延時后的脈沖送入計數(shù)器的清零端。這樣就使計數(shù)器在2s的脈沖周期內,1s內清零,1s內計數(shù)。由于鎖存器的脈沖和計數(shù)器的脈沖是反相的,且有一定的延時,所以當鎖存器有效脈沖來到時,計數(shù)器是計數(shù)的末狀態(tài),鎖存器就鎖存前1S內計數(shù)器的計數(shù)信號。這樣就完成了1s內的脈沖計數(shù),再將鎖存器的輸出送入譯碼顯示電路,就可以在數(shù)碼管上顯示波形頻率了。4.5.2測頻電路及封裝圖74160*LDNABQACQBDQCENTQDENPRCOCLRNCLKCOUNTER.IsehiihzXklk二X741731D2D3D4DG1NG2NMNNNCLRCLK1D2Db23D4DG1NG2N3Q4QCLRCLK1CL2QMNNNa1T:半T:bOJ.ijns.t5REGISTERsemihz74160LDNABQACQBDQCENTQDENPRCOCLRNCLKCOUNTER74173聊1D2D3D4DG1NG2忖1Q2QMNNNinstSREGISTER74160剛:b.1Jb2lb3|.XLDNABQACQBDQCENTQDENPRCOCLRNCLKCOUNTER叩圖咽,宀kFLFLrrLF.semihzCLR74173CLK1D2D期;cl.'IQ2Q4QTWWinstTREGISTER74160LDNABQACQBDQCEMTQDENPRCOCLRNCLKCOUNTERr?-L0LLrFL.semihz.3D4DG1NG2NCLRMNNN74173CLK諭>期IQ204QinstSREGISTERihz觸f“.K=emihz二ra3.0ifb3.0ifdl3.O何1記2rdO|圖4-36測頻電路圖elks&mihz呵3.匚.seraihc.cepindianluinst4圖4-37測頻電路封裝圖4.6譯碼顯示電路4.6.1譯碼顯示電路原理DIGO圖4-38譯碼顯示電路原理圖DIG1DIG2DIG3DIG4DIGS顯示電路主要由數(shù)據選擇器74151、譯碼器74138、計數(shù)器、顯示譯碼器7447和數(shù)碼顯示管組成,計數(shù)器74161設計為模8的循環(huán)計數(shù)器,其輸出既作為四片74151的控制端,又作為3-8譯碼器74138的控制端。當計數(shù)器計數(shù)到某一個數(shù)值時,四片74151同時選取對應位的輸入組成計時器某一位的BCD編碼,接入顯示譯碼器7447,與此同時根據計數(shù)器的數(shù)值,74138譯碼器也通過數(shù)碼管的使能端選擇對應位有效,從而在實驗箱上顯示數(shù)據。掃描的頻率為1KHz,因為人眼的視覺停留,會感覺七個數(shù)碼管同時顯示。4.6.2譯碼顯示電路圖74161741617416174151O0wpipfpWABCDOD1D2D3D4D5D6D7YWNMULTIPLEXER74160fWIDOOhz.T-£.i*汽二!xphi!XpM111Xfblj;='X二;::.ABCDOD1D2D3D4D5D6D7GNYWNF-.£.Xil2fh2Wfb2.gnd.ABCDOD1D2D3D4D5D6D7GNYWNinst2MULTIPLEXERb-Xil3:込血3:W:lb3:Id3渦ABCDOD1D2D3D4D5D6D7GNYWNph30:型3.0圖MULTIPLEXERfd3.OI6XHZ','czz>3£-LDNABQACQBDQCENTQDENPRCOCLRNCLK:iiet.10countcr3.b74138YONAY1NBY2NICY3NG1Y4NG2ANY5NG2BNY6NY7NI1113:5DECODER遞;:T::_t$:2:::注:-3::-:777::TTT::-訊y27447AOABOBCOCDODLTNOERBINOFBINOGRBOMTBCDTO7SEG::圖4-39譯碼顯示電路圖digp.-O.圖4-40譯碼顯示電路封裝圖4.7消顫電路消顫開關由D觸發(fā)器構成,利用D觸發(fā)器鎖存開關的動作信號,并且屏蔽抖動。消顫電路如下所示:圖4-41消顫電路圖ko5.Dl.X.Ikhz.:Xki5.<qX圖4-42消顫電路封裝圖4.8總電路總電路如下圖4-41所示::ko3.1mhzkcpPP-.Okpph3.Qktkefothersout9.0fh3.O1hzfl3.OImfizsineout9.(k1.Opinlvxiangweiirtst3!aslqS-OjLfti3.O!*PtS-'lp二%:j廠嘉匸呢"紅汗也j證訂蔽匿圖4-43總電路圖五、電路調試仿真與程序下載每部分模塊設計好后均需對其仿真。波形仿真正確無誤后,就可以下載到芯片上,進行硬件實施。在下載之前,必須先對每個管腳進行分配。選擇“Assignments-Pins"中的“PinPlanner"對話框,每個管腳都配置完成后,點擊“Save"保存配置并關閉窗口。把未使用的管腳設置為高阻抗狀態(tài),之后下載,在硬件上觀察波形和數(shù)據,驗證程序是否正確。管腳分配如下:NodeName/DirectionLocationI/OBankVrefGroupI/OStandardReserved|Group1»48mhzInputPINA107B7N02.5V(default)2dalmodeOutputPINF68B8N02.5V(default)3da2modeOutputPINH61BlN02.5V(default)4adadkOutputPINA28B8N02.5V(default)5adigOOutputPINH156B6N02.5V(default)dig7.O6diglOutputPINE147B7N02.5V(default)dig7.O7dig2OutputPINA187B7N02.5V(default)dig7.O30digHOutputPIND167B7N02.5V(default)dig7.O9adig4OutputPINL145B5N02.5V(default)dig7.O100dig5OutputPINL165B5N02.5V(default)dig7.O11adig6OutputPINH166B6N02.5V(default)dig7.0|12dig7OutputPINJ136B6N02.5V(default)dig7.0|13»ki0InputPINV93B3N02.5V(default)ld5.014kilInputPINU104B4N02.5V(default)ld5.015PIdaInputPINB98B8N02.5V(default)ki5.O16»kiHInputPINB107B7N02.5V(default)ki5.0|17Aki4InputPINR185B5N02.5V(default)ki5.018Aki5InputPINR175B5N02.5V(default)ki5.019jp0OutputPINP12B2N02.5V(default)P9-020plOutputPINM12B2N02.5V(default)p9.O21jpHOutputPINL12B2N02.5V(default)p9.O22jPHOutputPINK12B2N02.5V(default)PB-.O23jPMOutputPINH11BlN02.5V(default)p9.O24jp5OutputPING11BlN02.5V(default)p9.O25jp同OutputPINE11BlN02.5V(default)p9.O26p7OutputPINC11BlN02.5V(default)p9.O圖5-1管腳分配圖六、示波器波形圖示波器波形圖如下圖所示:圖6-1示波器波形圖(部分)七、實驗中遇到的問題及解決方法本科三年級的時候我們專業(yè)學過可編程邏輯器件這門課,當時對這門課很感興趣,初次接觸QuartusII軟件,發(fā)現(xiàn)這個軟件和MAXPlusII軟件有很多相似之處。在做實驗之前,我用周末的時間自學了QuartusII軟件。實驗過程中,在將程序下載到實驗箱之前我對每個部分都做了波形仿真,仿真的結果也是正確的,但出乎意料的是程序下載到實驗箱以后結果卻是錯的,不過倒是可以通過實驗結果找出可能出現(xiàn)錯誤的地方,這是讓我覺得收獲很大的經驗。數(shù)碼管是可以顯示數(shù)字的,說明錯誤不在顯示模塊,最終發(fā)現(xiàn)主要問題是測頻電路的問題。影響測頻電路輸出的主要有三方面因素:一方面是輸入0.5Hz的頻率,一方面是測頻電路內部電路設計合理性問題,最后是輸入時鐘信號。0.5Hz與分頻電路設計合理性有關,最好采用同步分頻電路。輸入時鐘信號可有多種選擇途徑,一種是選擇累加器的溢出信號,一種是選擇q9作為輸入信號。處于穩(wěn)定性考慮,選擇q9作為輸入信號最佳。八、電路改進考慮到正弦波、余弦波、方波、鋸齒波和三角波在一個周期內的波形都具有很強的對稱性,可以在ROM中只存儲1/4周期的波形,剩下3/4周期的波形可以利用對稱性,通過前1/4周期的波形計算得到。各取正弦波、余弦波、方波、鋸齒波、三角波的前1/4周期數(shù)據,整合到一個深度為4096、位數(shù)為10的ROM中。這樣輸出不同波形時所查找的ROM相同,大大節(jié)省了ROM的空間。因為查找1/4周期波形的數(shù)據只需要低10位地址即可,高2位地址可以通過置數(shù)來選擇要查找的波形,如表8-1所示。再對取反操作后的ROM輸出值進行一個選擇的組合,通過LPM_ROM這個模塊來實現(xiàn),最后輸出完整的正弦波形。表8-1最咼兩位與輸出關系a11a10地址、數(shù)值操作rom輸出00地址、數(shù)值均不取反sin1101地址取反,數(shù)值不變sin2210地址不表,輸出取反sin3311地址、數(shù)值均取反sin44取反電路是由9個非門構成的,其電路圖及封裝圖如下:i|>菲.二圖8-1取反電路圖LPM_ROM1空間里存放著的是四分之一周期的數(shù)據地址及其對應著的數(shù)值,sinll9.O代表著的是第一個1/4周期的波形數(shù)值;sin229.O代表著的是第二個1/4周期的波形數(shù)值,其先進行了地址取反;sin339.O代表著的是第三個1/4周期的波形數(shù)值,其進行了數(shù)值取反的操作;sin449.O代表著的是第四個1/4周期的波形數(shù)值,其不僅地址取反而且數(shù)值也取反了。將四個1/4周期的修改后的sin波形作為LPM_ROM的輸入,ksine1.O作為選擇并輸出,最終輸出的sin9.O為四段組合后的正弦波形。!ipmornV?:inst!address9.Oclockq9lpmi_muxOqufandianlu:q9.()1:!;X.Ji9-0o9.0Ipmom1Iaddress9.O小jBr229.ej>cluckc-01x-xx-xsine449.O.:sire22j.O;.:data3用9.Hdat自2x【9.Hdata.1x【9.(Hdata(M9.(Hinst!iirtst12:irtstS圖8-2四片ROM存儲電路九、實驗感想本科三年級的時候我們專業(yè)學過可編程邏輯器件這門課,當時對這門課很感興趣,初次接觸QuartusII軟件,發(fā)現(xiàn)這個軟件和MAXPlusII軟件有很多相似之處。在第一節(jié)課上,花漢兵老師花了很多時間給我們講解了QuartusII軟件的使用,還布置了本周實驗的內容及要求,在一個星期的操作、檢查和修改中,我漸漸熟悉了對QuartusI軟件的使用方法,也逐漸掌握了直接數(shù)字頻率合成器設計的原理和思路。這次實驗是我第一次獨立完成可編程邏輯器件的使用,個人覺得實驗中用原理圖來實現(xiàn)整個方案而不是用VHDL語言,可以更容易理解可編程邏輯器件的工作原理。雖然大部分開發(fā)設計工作都是使用VHDL語言,但是原理圖設計的學習卻是不可缺少的一部分。相比TI公司的MSP430系列,雖然可以很容易地用它來實現(xiàn)所需要的功能,但是卻不知道其內部是如何工作的。這次實驗不僅僅是自己對本科所學數(shù)電知識的一次回顧,更是將所學的知識運用到實際當中去的一次實踐。在開始設計分頻器的初期,我就復習了例如D觸發(fā)器、74160等元器件的功能和作用,回顧了二分頻電路和三分頻電路;在計數(shù)器設計部分,自己又回顧了同步計數(shù)和異步計數(shù)的差異,學會用已學器件設計不同模的計數(shù)器。這次實驗讓我對QuartusI軟件的使用更加熟練,讓我鞏固了數(shù)電的相關知識,更重要的是通過這一個多星期的學習、實驗,我在一次次失敗中總結了教訓,學會了分析和解決問題,培養(yǎng)了分析和動手能力,讓我在以后遇到其他問題時也能通過自己的努力找到答案。希望以后能有更多這種動手實驗的機會,能真正將知識與實踐相結合,在實踐中不斷培養(yǎng)自己的能力。十、參考文獻1 蔣立平,姜萍,譚雪琴,花漢兵數(shù)字邏輯電路與系統(tǒng)設計北京電子工業(yè)出版社2008.2 EDA設計實驗指導書南京理工大學電子技術中心2008.3 蔣立平數(shù)字電路南京理工大學出版社.4 周立功EDA實驗與實踐北京:北京航空航天大學