【正文】
二的思路。 ELSE COUT=39。 ELSE CQI:=(OTHERS=39。039。ENTITY CNT10 IS PORT(CLK,RST,EN:IN STD_LOGIC。同樣能滿足所需功能。由以上理論分析可知,上述兩方案均可實(shí)現(xiàn)要求,并且經(jīng)過(guò)實(shí)現(xiàn)仿真驗(yàn)證,二者都滿足設(shè)計(jì)需要。 clk1=39。architecture div_clk of div_clk is signal clk_counter:integer range 0 to 1。方案一:。子程序是具有某一特定功能的VHDL程序模塊,利用子程序能夠有效地完成重復(fù)性的工作。(5)配置 配置(CONFIGURATION)可利用其從多個(gè)結(jié)構(gòu)體中每次為設(shè)計(jì)實(shí)體指定一個(gè)結(jié)構(gòu)體,通過(guò)比較每次仿真的結(jié)果,選出性能最佳的結(jié)構(gòu)體。(1)實(shí)體 實(shí)體(ENTITY)是VHDL設(shè)計(jì)的必要組成部分,是設(shè)計(jì)實(shí)體的表層設(shè)計(jì)單元。硬件描述語(yǔ)言HDL種類較多,常用的有VHDL、Verilog和ABEL等。通過(guò)編譯器,可以實(shí)現(xiàn)邏輯綜合與試配、定時(shí)驅(qū)動(dòng)的編譯、設(shè)計(jì)規(guī)則的檢查、多器件的劃分、自動(dòng)錯(cuò)誤定位、編程文件的產(chǎn)生等功能。VHDL和Verilog HDL是一種符合IEEE標(biāo)準(zhǔn)的高級(jí)硬件描述語(yǔ)言,特別適合于大型或復(fù)雜的設(shè)計(jì)。File菜單 具有文件管理等功能。 MAX+PLUSⅡ管理器MAX+PLUSⅡ的管理器是用戶啟動(dòng)MAX+PLUSⅡ時(shí)打開(kāi)的第一個(gè)窗口,它對(duì)所有MAX+PLUSⅡ應(yīng)用功能進(jìn)行控制。器件編程 MAX+PLUSⅡ/Programmer是使用Compiler生成的編程文件對(duì)Altera器件進(jìn)行編程的,它可以用來(lái)對(duì)器件編程、校驗(yàn)、試驗(yàn),檢查是否空白以及進(jìn)行功能測(cè)試。在MAX+PLUSⅡ的項(xiàng)目管理器界面中,選擇Options/License Setup菜單命令,打開(kāi)其對(duì)話框。本論文以廣義頻率計(jì)的設(shè)計(jì)思路及過(guò)程進(jìn)行詳細(xì)介紹,對(duì)于狹義頻率計(jì)的設(shè)計(jì)將在附錄給出簡(jiǎn)要說(shuō)明。被測(cè)信號(hào)預(yù)置閘門信號(hào)標(biāo)準(zhǔn)頻率信號(hào) CNT1CLK OUT1CEN CNT2CEN OUT2CLKD Q 圖14 方案二實(shí)現(xiàn)的原理設(shè)在一次實(shí)際閘門時(shí)間t中計(jì)數(shù)器對(duì)被測(cè)信號(hào)的計(jì)數(shù)值為Nx,對(duì)標(biāo)準(zhǔn)信號(hào)的計(jì)數(shù)值為Ns。分為100、1000檔的頻率顯示。在測(cè)量過(guò)程中,有兩個(gè)計(jì)數(shù)器分別對(duì)標(biāo)準(zhǔn)信號(hào)和被測(cè)信號(hào)同時(shí)計(jì)數(shù)。為了保證測(cè)試精度,一般以中間頻率為界限,但是測(cè)量的精度均會(huì)隨頻率變化而變化。此時(shí),設(shè)標(biāo)準(zhǔn)信號(hào)的個(gè)數(shù)為N,頻率為,則有被測(cè)信號(hào)的頻率為: 與在分析直接測(cè)頻誤差時(shí)的方法是相似的,它的相對(duì)誤差是: 由上式可見(jiàn),直接測(cè)周期時(shí)的誤差表達(dá)式與直接測(cè)頻的誤差表達(dá)式形式上是相似的,而且可以看出,當(dāng)被測(cè)信號(hào)的頻率愈低時(shí),所產(chǎn)生的177。經(jīng)分析,直接測(cè)頻法的測(cè)量準(zhǔn)確度與信號(hào)的頻率有關(guān),當(dāng)待測(cè)信號(hào)頻率較高時(shí),測(cè)量準(zhǔn)確度也較高,反之測(cè)量準(zhǔn)確度也較。數(shù)字頻率計(jì)的基本測(cè)量原理:使用一個(gè)頻率穩(wěn)定度高的頻率源作為基準(zhǔn)時(shí)鐘,來(lái)對(duì)比所要測(cè)量的其他信號(hào)的頻率。在測(cè)頻的方法中,以數(shù)字頻率計(jì)測(cè)量頻率的精度高、使用方便、測(cè)量迅速,及便于實(shí)現(xiàn)測(cè)量過(guò)程自動(dòng)化等優(yōu)點(diǎn)作為頻率測(cè)量的重要途徑之一。數(shù)字頻率計(jì)模塊劃分的設(shè)計(jì)具有相對(duì)獨(dú)立性,可對(duì)模塊單獨(dú)進(jìn)行設(shè)計(jì)、調(diào)試和修改,縮短了設(shè)計(jì)周期。它是以可編程邏輯器件為物質(zhì)基礎(chǔ),以計(jì)算機(jī)為工作平臺(tái),以EDA工具軟件為開(kāi)發(fā)環(huán)境,以硬件描述語(yǔ)言(HDL)為電子系統(tǒng)功能描述的主要方式,以電子系統(tǒng)設(shè)計(jì)為應(yīng)用方向的電子產(chǎn)品自動(dòng)化設(shè)計(jì)過(guò)程。【關(guān)鍵詞】 頻率計(jì) 分頻 MAX+PLUSⅡ VHDL 【論文類型】 應(yīng)用型Title: Equal Precision Frequency Meter Design and SimulationMajor:Name: Signature: Supervisor: Signature: ABSTRACT The context mainly introduces the pletion of the equal precision frequency meter design and simulation with the MAX+PLUSⅡ simulation environment and description of the VHDL language. The frequency meter includes five modules in total which are frequency division (fp)、selection (wx)、clock (sz)、count (countt) and decoding display (bcd7). After the detailed description of the designed circuit principle and the overview of MAX+PLUSⅡsoftware, the whole design process es into being. First of all, 8Hz system clock will be converted into reference clock by 16 frequency divided, . providing the count period with 1s high level。經(jīng)過(guò)對(duì)仿真結(jié)果的分析,符合設(shè)計(jì)要求。EDA(Electronic Design Automation)即電子設(shè)計(jì)自動(dòng)化,是現(xiàn)代電子工程領(lǐng)域的一門新技術(shù)。該頻率計(jì)采用VHDL硬件語(yǔ)言編程,以MAX+PLUSⅡ?yàn)殚_(kāi)發(fā)環(huán)境,極大地減少了硬件資源的占。數(shù)字頻率計(jì)也稱為頻率計(jì)數(shù)器,是一種專門對(duì)被測(cè)信號(hào)的頻率進(jìn)行測(cè)量的電子測(cè)量?jī)x器,通過(guò)加一個(gè)傳感器它也可以對(duì)聲波、振動(dòng)頻率等進(jìn)行測(cè)量。在無(wú)線通訊測(cè)試中,頻率計(jì)既可以被用來(lái)對(duì)無(wú)線通訊基站的主時(shí)鐘進(jìn)行校準(zhǔn),也可以被用來(lái)對(duì)無(wú)線電臺(tái)的跳頻信號(hào)和頻率調(diào)制信號(hào)進(jìn)行分析。1個(gè)脈沖誤差。 Fx: Clock:圖12 間接測(cè)頻原理圖Fx:被測(cè)信號(hào) Clock:時(shí)鐘信號(hào)根據(jù)在周期時(shí)間內(nèi)進(jìn)入計(jì)數(shù)器的標(biāo)準(zhǔn)脈沖的個(gè)數(shù),即可得到被測(cè)信號(hào)的頻率。1個(gè)計(jì)數(shù)誤差,對(duì)于較高頻率的測(cè)量精度很低。1個(gè)的誤差,并且達(dá)到了在整個(gè)測(cè)試頻段的等精度測(cè)量。分頻模塊位選模塊計(jì)數(shù)模塊時(shí)鐘模塊顯示模塊FxClock圖13 方案一實(shí)現(xiàn)的原理分頻模塊 (fp):可將輸入信號(hào)的頻率進(jìn)行100、1000不等的分頻輸出;位選模塊 (wx):根據(jù)實(shí)際需要選擇不同分頻所對(duì)應(yīng)的4檔位;時(shí)鐘模塊 (sz):,即高電平為1s的計(jì)數(shù)周期;計(jì)數(shù)模塊 (countt):完成對(duì)被測(cè)信號(hào)頻率的測(cè)量,以4位二進(jìn)制數(shù)碼的形式輸出;顯示模塊(bcd7):將4位bcd碼轉(zhuǎn)化成7位碼用于實(shí)際數(shù)碼顯示管的譯碼輸出;設(shè)計(jì)功能:四位十進(jìn)制數(shù)頻率計(jì),其頻率測(cè)量范圍為1Hz~10MHz。在預(yù)置門時(shí)間和常規(guī)測(cè)頻閘門時(shí)間相同而被測(cè)信號(hào)頻率不同的情況下,等精度測(cè)量法的測(cè)量精度不變。標(biāo)準(zhǔn)頻率可由穩(wěn)定度好、精度高的高頻晶體振蕩器產(chǎn)生,在保證測(cè)量精度不變的前提下,提高標(biāo)準(zhǔn)信號(hào)頻率,可使閘門時(shí)間縮短,即提高測(cè)試速度。 首次運(yùn)行此軟件時(shí),需要進(jìn)行授權(quán)許可設(shè)置。設(shè)計(jì)校驗(yàn) 包括設(shè)計(jì)仿真和定時(shí)分析,其作用是測(cè)試邏輯操作和設(shè)計(jì)的內(nèi)部定時(shí)。以上各步如果出現(xiàn)錯(cuò)誤的現(xiàn)象,則需重新回到設(shè)計(jì)輸入階段,改正錯(cuò)誤或調(diào)整電路重復(fù)上述過(guò)程。MAX+PLUSⅡ菜單 用于啟動(dòng)各種應(yīng)用功能并能在它們之間進(jìn)行切換。(2)文本輸入MAX+PLUSⅡ支持以AHDL、VHDL和Verilog HDL等硬件描述語(yǔ)言形式書(shū)寫(xiě)的文本文件,AHDL是Altera Hardware Description Language的縮寫(xiě),它是一種高級(jí)的硬件描述語(yǔ)言,該語(yǔ)言可以使用布爾方程、算術(shù)運(yùn)算、真值表、條件語(yǔ)句等方式進(jìn)行描述 ,最適合于大型的、復(fù)雜的狀態(tài)機(jī)設(shè)計(jì)。 設(shè)計(jì)處理及檢驗(yàn)(1)設(shè)計(jì)處理MAX+PLUSⅡ?qū)σ粋€(gè)邏輯設(shè)計(jì)處理時(shí),是在Compiler編譯器窗口下進(jìn)行的。通常要求HDL既能描述系統(tǒng)的行為,又能描述系統(tǒng)的結(jié)構(gòu)。這種將實(shí)體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計(jì)的基本點(diǎn),也是一種基于自頂向下的多層次系統(tǒng)設(shè)計(jì)概念的實(shí)現(xiàn)途徑。程序包的內(nèi)容主要由常數(shù)說(shuō)明、VHDL數(shù)據(jù)類型說(shuō)明、元件定義、子程序四種基本結(jié)構(gòu)組成。并行語(yǔ)句包括進(jìn)行語(yǔ)句(PROCESS)、條件信號(hào)賦值語(yǔ)句(WHENELSE)、選擇信賦值語(yǔ)句(WITHSELECTWHEN)、塊語(yǔ)句(BLOCK)、元件例化語(yǔ)句、生成語(yǔ)句(GENERATE)等。如將1Hz經(jīng)二分頻,2Hz經(jīng)四分頻,4Hz經(jīng)八分頻,等依次類推,均可實(shí)現(xiàn)此功能。end div_clk。 else clk_counter=clk_counter+1。 方案二:。在1s的高電平計(jì)數(shù)時(shí)鐘周期下,得到相應(yīng)的被測(cè)信號(hào)頻率的實(shí)際顯示數(shù)值,然后再對(duì)其分別擴(kuò)大相應(yīng)的分頻位數(shù),100、1000。USE 。THEN CQI:=(OTHERS=39。THEN IF CQI1001THEN CQI:=CQI+1。139。通過(guò)以上兩個(gè)方案的比較,在均能實(shí)現(xiàn)相同設(shè)計(jì)要求的情況下,方案一的單一模塊簡(jiǎn)單,但總體連接就稍顯麻煩,方案二雖硬件描述語(yǔ)言相對(duì)復(fù)雜,但其例化后的結(jié)構(gòu)卻簡(jiǎn)潔,使得后續(xù)電路的連接也較易方便。architecture bhv of fp isbeginao=fb1。if(nu=5)then bo=not bo。end if。 g1,g2,g3,g4:out std_logic。039。139。039。g3=39。039。 ——當(dāng)選擇3檔位時(shí),即對(duì)被測(cè)信號(hào)100分頻,使輸出信號(hào)與ci一致elsif(k4=39。g4=39。entity sz isgeneric (v:integer:=8)。)then ——在輸入信號(hào)的上升沿出現(xiàn)時(shí)開(kāi)始計(jì)數(shù) count:=count+1。use 。 signal t_100:std_logic_vector(3 downto 0)。)then if(t_1=1001)then t_1=0000。 t_100=t_100+39。 ——當(dāng)個(gè)位、十位及百位均為9時(shí),且仍有后續(xù)計(jì)數(shù)脈沖的出現(xiàn),則將這三位都做歸0處理,與此同時(shí)向最高位千位進(jìn)一計(jì)數(shù)值 end if。 else t_1=0000。 end process。USE 。use 。signal p0,p1,p2,p3:std_logic_vector(3 downto 0)。end ponent。ponent BCD7 is ——對(duì)BCD7模塊元件的說(shuō)明port (BCD: IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 u8:BCD7 port map(bcd=p3,led=out4)。位選程序與分頻程序公共構(gòu)成頻率計(jì)四個(gè)檔位測(cè)量功能。此部分為計(jì)數(shù)部分輸入時(shí)鐘信號(hào),作為頻率測(cè)量的基準(zhǔn)信號(hào)。如圖所示,在clk1的一個(gè)高電平期間,cp共出現(xiàn)了5次上升沿,估計(jì)數(shù)結(jié)果的個(gè)位Q1為所得數(shù)值5。然后進(jìn)行編譯,仿真。 ——,發(fā)生引用錯(cuò)誤。——根據(jù)對(duì)話框的相應(yīng)提示,完成程序的修改,實(shí)現(xiàn)正確的運(yùn)行結(jié)果。學(xué)會(huì)了并熟練掌握了用MAX+PLUSⅡ進(jìn)行相關(guān)仿真的一般過(guò)程。而目前,對(duì)于頻率測(cè)量方面的研究已相對(duì)成熟,已基本能滿足各種不同的需求。此外,從***老師言傳身教中掌握的對(duì)專業(yè)知識(shí)的學(xué)習(xí)方法上也令我受益終生。在學(xué)校里獲得的這些寶貴的財(cái)富,為我走進(jìn)社會(huì)成為一名優(yōu)秀的青年打下了堅(jiān)實(shí)的基礎(chǔ)。如果在clk高電平期間輸入端出現(xiàn)干擾信號(hào),那么就有可能使觸發(fā)器的狀態(tài)出錯(cuò)。USE 。ARCHITECTURE clrdff_behav OF clrdff IS BEGIN PROCESS(clkx,clr) 進(jìn)程中的敏感信號(hào) BEGIN IF (clr =39。 輸出實(shí)際的閘門信號(hào) END IF。USE 。 對(duì)變量進(jìn)行賦值 PROCESS(clkc,clr) BEGIN IF (clr=39。) THEN 檢測(cè)時(shí)鐘信號(hào)上升沿 IF (en=39。 END IF。 clr: IN STD_LOGIC。) THEN temp_tx = ( others=39。) THEN IF ( temp_tx =1000000000) THEN temp_tx = ( others=39。 END tx_rt1。USE 。 g: