基于FPGA控制的數(shù)字頻率計設(shè)計論文(含程序、仿真圖)_第1頁
基于FPGA控制的數(shù)字頻率計設(shè)計論文(含程序、仿真圖)_第2頁
基于FPGA控制的數(shù)字頻率計設(shè)計論文(含程序、仿真圖)_第3頁
基于FPGA控制的數(shù)字頻率計設(shè)計論文(含程序、仿真圖)_第4頁
基于FPGA控制的數(shù)字頻率計設(shè)計論文(含程序、仿真圖)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

第Ⅰ頁共Ⅰ頁PAGE目錄1引言 11.1課題背景 11.2課題意義 21.3國內(nèi)外現(xiàn)狀及發(fā)展趨勢 21.4系統(tǒng)開發(fā)環(huán)境及技術(shù)分析 31.4.1FPGA開發(fā)簡介 31.4.2VHDL特點及設(shè)計方法 52需求分析 72.1系統(tǒng)基本要求 72.2系統(tǒng)結(jié)構(gòu) 73系統(tǒng)設(shè)計 83.1總體方案比較 83.2程序流程圖 103.3系統(tǒng)模塊設(shè)計 113.3.1整形電路 113.3.2計數(shù)器 123.3.3分頻器 143.3.4鎖存器 163.3.5控制器 183.3.6顯示器 224系統(tǒng)仿真及測試 23結(jié)論 29致謝 30參考文獻 31附錄1 32附錄2 35第36頁共35頁1引言1.1課題背景進入信息時代以來,微電子技術(shù)和計算機技術(shù)飛速發(fā)展,各種電子測量儀器在原理、功能、精度及自動化水平等方面都發(fā)生了巨大的變化,特別是DSP技術(shù)誕生以后,電子測量技術(shù)更是邁進了一個全新的時代[1]。近年來,DSP逐漸成為各種電子器件的基礎(chǔ)器件,逐漸成為21世紀(jì)最具發(fā)展?jié)摿Φ某栃袠I(yè),甚至被譽為信息化數(shù)字化時代革命旗手。在電子技術(shù)領(lǐng)域內(nèi),頻率是一個最基本的參數(shù),頻率與其它許多電參量的測量方案、測量結(jié)果都有十分密切的關(guān)系。如時間,速度等都涉及到或本身可轉(zhuǎn)化為頻率的測量。因此,頻率的測量就顯得更為重要。而且,目前在電子測量中,頻率的測量精確度是最高的.現(xiàn)在市場上有各種多功能,高精度,高頻率的數(shù)字頻率計,但價格不菲。而在實際工程中,不是對所有信號的頻率測量都要求達到非常高的精度。因此,本文提出了一種能滿足一般測量精度要求,但成本低廉的數(shù)字頻率計的設(shè)計方案。在電子工程中、資源勘探、儀器儀表等相關(guān)應(yīng)用中,頻率計是工程技術(shù)人員必不可少的測量工具。數(shù)字頻率計是計算機,通信設(shè)備,音頻視頻等科研生產(chǎn)領(lǐng)域不可缺少的車輛儀器,采用VHDL語言編程設(shè)計實現(xiàn)的數(shù)字頻率計,除被測信號的整形部分,鍵輸入部分和數(shù)碼顯示部分以外其余全在一片F(xiàn)PGA芯片上實現(xiàn),整個設(shè)計過程變得十分透明,快捷和方便,特別是對于各層次電路系統(tǒng)的工作時序的了解顯得尤為準(zhǔn)確而且具有靈活的現(xiàn)場可更改性。在不更改硬件電路的基礎(chǔ)上對系統(tǒng)進行各種改進,還可以進一步提高系統(tǒng)的性能和測量頻率的范圍。該數(shù)字頻率計具有高速、精確、可靠、抗干擾性強,而且具有現(xiàn)場可編程等優(yōu)點。隨著微電子技術(shù)和計算機技術(shù)的飛速發(fā)展,現(xiàn)代電子系統(tǒng)的設(shè)計和應(yīng)用進入一個全新的時代。在電子技術(shù)設(shè)計領(lǐng)域,可編程邏輯器件已得到廣泛普及和應(yīng)用,高性能但結(jié)構(gòu)簡單的電子技術(shù)產(chǎn)品已經(jīng)成為市場主體,通過軟件編程可對可編程邏輯器件的結(jié)構(gòu)和工作方式進行重構(gòu),使得硬件設(shè)計可以和軟件設(shè)計一樣方便快捷,為數(shù)字系統(tǒng)的設(shè)計帶來極大的靈活行。1.2課題意義在電子測量技術(shù)中,頻率是最基本的參數(shù)之一,并且與許多電參量的測量方案、測量結(jié)果都有十分密切的關(guān)系,測量頻率是電子測量技術(shù)中最常見的測量之一。不少物理量的測量,如時間、速度等都涉及或本身可轉(zhuǎn)化為頻率的測量。它與許多電參量和非電量的測量都有著十分密切的關(guān)系。例如,許多傳感器就是將一些非電量轉(zhuǎn)換成頻率來進行測量的,因此頻率的測量就顯得更為重要。數(shù)字頻率計是用數(shù)字來顯示被測信號頻率的儀器,被測信號可以是正弦波、方波或其它周期性變化的信號。而傳統(tǒng)的頻率計測量精度隨著頻率的下降而降低,測量范圍也較窄,因此逐漸被新型的數(shù)字頻率計所代替。數(shù)字頻率計廣泛采用了高速集成電路和大規(guī)模集成電路,使得儀器的體積更小、耗電更少、精度和可靠性更高[1]。目前,市場上有各種多功能、高精度、高頻率的數(shù)字頻率計,但價格不菲。而在實際工程中,并不是對所有信號的頻率測量都要求達到非常高的精度因此,頻率的測量就顯得更為重要。測量頻率的方法有多種,其中電子計數(shù)器測量頻率具有精度高、使用方便、測量迅速,以及便于實現(xiàn)測量過程自動化等優(yōu)點,是頻率測量的重要手段之一。以往的大多數(shù)傳統(tǒng)數(shù)字頻率計一般由分離元件搭接而成,其測量范圍、測量精度和測量速度都受到很大的限制。因此基于FPGA的數(shù)字頻率計頻率計以其測量準(zhǔn)確、精度高、方便、價格便宜等優(yōu)勢將得到廣泛的應(yīng)用。1.3國內(nèi)外現(xiàn)狀及發(fā)展趨勢FPGA是現(xiàn)場可編程門陣列的英文簡稱,全稱為FieldProgrammableGateArray,是20世紀(jì)70年代發(fā)展起來的一種新型立即器件是目前數(shù)字系統(tǒng)設(shè)計的主要硬件基礎(chǔ)[2]。其在結(jié)構(gòu)上由邏輯功能塊排列為陣列,并由可編程的內(nèi)部連線連接這些功能塊,實現(xiàn)一定的邏輯功能。FPGA技術(shù)是一門實踐性很強的學(xué)科,最終目的是讓用戶通過硬件描述語言編程來配置芯片的內(nèi)部連接和元器件參數(shù),以獲得所需的電路功能。使得設(shè)計方法從“電路設(shè)計硬件搭試焊接”的傳統(tǒng)方式轉(zhuǎn)到“功能設(shè)計軟件模擬下載”的電子設(shè)計自動化模式[3]。應(yīng)此,必須選擇正確有效的方法來完成可編程器件的邏輯編程。FPGA是一種新興的高密度大規(guī)??删幊踢壿嬈骷?它具有門陣列的高密度和PLD器件的靈活性和易用性,目前已成為一類主要的可編程器件。FPGA器件作為系統(tǒng)控制的核心,其靈活的現(xiàn)場可更改性,可再配置能力,對系統(tǒng)的各種改進非常方便,在不更改硬件電路的基礎(chǔ)上還可以進一步提高系統(tǒng)的性能??删幊唐骷淖畲筇攸c是可通過軟件編程對其器件的結(jié)構(gòu)和工作方式進行重構(gòu),能隨時進行設(shè)計調(diào)整而滿足產(chǎn)品升級[4]。使得硬件的設(shè)計可以如軟件設(shè)計一樣方便快捷,從而改變了傳統(tǒng)數(shù)字系統(tǒng)及用單片機構(gòu)成的數(shù)字系統(tǒng)的設(shè)計方法、設(shè)計過程及設(shè)計觀念,使電子設(shè)計的技術(shù)操作和系統(tǒng)構(gòu)成在整體上發(fā)生了質(zhì)的飛躍。具有高速、精確、可靠、抗干擾性強.當(dāng)今技術(shù)的發(fā)展日新月異,F(xiàn)PGA的容量和速度成倍的增長,而價格卻逐年下降,這將使得基于FPGA設(shè)計的數(shù)字頻率計優(yōu)勢更加明顯。相信不久的將來,這一技術(shù)必將得到更加廣泛的應(yīng)用[5]。1.4系統(tǒng)開發(fā)環(huán)境及技術(shù)分析本次設(shè)計主要是用FPGA的開發(fā)環(huán)境QuartusⅡ采用VHDL語言編程并對設(shè)計電路進行仿真,以便提前測試這個設(shè)計的可靠性。選用VHDL語言進行設(shè)計,可以不懂硬件結(jié)構(gòu),也不必知道最終設(shè)計的目標(biāo)期間是什么樣子,而是進行獨立設(shè)計。正因為VHDL語言的硬件描述與具體工藝技術(shù)和硬件無關(guān),所以VHDL設(shè)計程序的硬件目標(biāo)器件有廣闊的選擇范圍。1.4.1FPGA開發(fā)簡介現(xiàn)場可編程門陣列(FPGA)器件是八十年代中期出現(xiàn)的產(chǎn)品,它的應(yīng)用大大地方便了IC的設(shè)計,因而隨著數(shù)字技術(shù)日益廣泛的應(yīng)用,以FPGA為代表的ASIC器件得到了迅速的普及和發(fā)展,器件集成度和速度都在高速增長[6]。有了FPGA,我們只需要在計算機上繪出原理圖,再運行相應(yīng)的軟件,就可把所設(shè)計的邏輯電路在FPGA中實現(xiàn)。所有步驟均可自動完成。電子設(shè)計工程師自己設(shè)計專用集成電路成為了一件很容易的事情。FPGA作為專用集成電路(ASIC)概念上的一個新型范疇和門類,以其高度靈活的用戶現(xiàn)場編程方式,現(xiàn)場定義高容量數(shù)字單片系統(tǒng)的能力,能夠重復(fù)定義、反復(fù)改寫的新穎功能,為復(fù)雜數(shù)字系統(tǒng)設(shè)計、研制以及產(chǎn)品開發(fā)提供了有效的技術(shù)手段[7]。電子應(yīng)用設(shè)計工程師應(yīng)用FPGA技術(shù)不僅可避免通常ASIC單片系統(tǒng)設(shè)計周期長,前期投資風(fēng)險大的弱點,而且克服了過去板級通用數(shù)字電路應(yīng)用設(shè)計的落后,繁瑣和不可靠性。基于FPGA的開發(fā)設(shè)計,其工程設(shè)計流程如圖1.1所示:設(shè)計輸入設(shè)計輸入綜合布局布線時序分析功耗分析工程更改管理調(diào)試編程和配置仿真時序逼近圖1.1FPGA工程設(shè)計流程流程中各個模塊具體功用如下:a)設(shè)計輸入:用任何文本編輯器都可以進行,通常VHDL文件保存為vhd文件。HDL的編譯器有很多,ACTIVE公司,MODELSIM公司,SYNPLICITY公司,SYNOPSYS公司,VERIBEST公司等都有自己的編譯器。b)綜合:將源文件調(diào)入邏輯綜合軟件進行綜合。綜合的目的是在于將設(shè)計的源文件由語言轉(zhuǎn)換為實際的電路。但是此時還沒有在芯片中形成真正的電路。這一步的最終目的是生成門電路級的網(wǎng)表(Netlist)。c)布局布線將第2步生成的網(wǎng)表文件調(diào)入PLD廠家提供的軟件中進行布線,即把設(shè)計好的邏輯安放到CPLD/FPGA內(nèi)。這一步的目的是生成用于下載(編程Programming)的編程文件。在這一步,將用到第3步生成的網(wǎng)表,并根據(jù)CPLD/FPGA廠商的器件容量,結(jié)構(gòu)等進行布局、布線。這就好像在設(shè)計PCB時的布局布線一樣。先將各個設(shè)計中的門根據(jù)網(wǎng)表的內(nèi)容和器件的結(jié)構(gòu)放在器件的特定部位[8]。然后,在根據(jù)網(wǎng)表中提供的各門的連接,把各個門的輸入輸出連接起來。最后,生成一個供編程的文件。這一步同時還會加一些時序信息(Timing)到設(shè)計項目中去,以便于做后仿真。d)時序分析、仿真利用在布局布線中獲得的精確參數(shù),用仿真軟件驗證電路的時序。(也叫布局布線仿真或時序仿真)。這一步主要是為了確定你的設(shè)計在經(jīng)過布局布線之后,是不是還滿足你的設(shè)計要求。e)編程和配置如果前幾步都沒有發(fā)生錯誤,并且符合設(shè)計要求,這一步就可以將由適配器等產(chǎn)生的配置或下載文件通過編程器或下載電纜下載到目標(biāo)芯片中。1.4.2VHDL特點及設(shè)計方法VHDL最早誕生于1982年,并在1987年底被IEEE和美國國防部確認(rèn)為標(biāo)準(zhǔn)硬件描述語言。在EDA設(shè)計工具中,用的最廣泛的是VHDL和VERILOG,當(dāng)然還有其它的。比較VHDL和VERILOG,在頂層設(shè)計方面VHDL優(yōu)于VERILOG,在門級電路設(shè)計方面VERILOG優(yōu)于VHDL。隨著復(fù)雜可編程邏輯器件(CPLD)的廣泛應(yīng)用,以EDA工具作為開發(fā)手段,運用VHDL語言,將使整個系統(tǒng)大大簡化,提高整體的性能和可靠性。在對一個設(shè)計實體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其它的設(shè)計就可以直接調(diào)用這個實體。這種將設(shè)計實體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計的基本點。應(yīng)用VHDL進行工程設(shè)計的優(yōu)點是多方面的,具體如下:a)與其它的硬件描述語言相比,VHDL具有更強的行為描述能力,從而決定了它成為系統(tǒng)設(shè)計領(lǐng)域最佳的硬件描述語言。強大的行為描述能力是避開具體的器件結(jié)構(gòu),從邏輯行為上描述和設(shè)計大規(guī)模電子系統(tǒng)的重要保證。就目前流行的EDA工具和VHDL綜合器而言,將基于抽象的行為描述風(fēng)格的VHDL程序綜合成為具體的FPGA和CPLD等目標(biāo)器件的網(wǎng)表文件已不成問題,只是在綜合與優(yōu)化效率上略有差異。b)VHDL最初是作為一種仿真標(biāo)準(zhǔn)格式出現(xiàn)的,因此VHDL既是一種硬件電路描述和設(shè)計語言,也是一種標(biāo)準(zhǔn)的網(wǎng)表格式,還是一種仿真語言。其豐富的仿真語句和庫函數(shù),使得在任何大系統(tǒng)的設(shè)計早期(即尚未完成),就能用于查驗設(shè)計系統(tǒng)的功能可行性,隨時可對設(shè)計進行仿真模擬。即在遠離門級的高層次上進行模擬,使設(shè)計者對整個工程設(shè)計的結(jié)構(gòu)和功能的可行性做出決策。c)VHDL語句的行為描述能力和程序結(jié)構(gòu)決定了它具有支持大規(guī)模設(shè)計的分解和已有設(shè)計的再利用功能,符合市場所需求的,大規(guī)模系統(tǒng)高效、高速的完成必須由多人甚至多個開發(fā)組共同并行工作才能實現(xiàn)的特點。VHDL中設(shè)計實體的概念、程序包的概念、設(shè)計庫的概念為設(shè)計的分解和并行工作提供了有力的支持。d)對于用VHDL完成的一個確定的設(shè)計,可以利用EDA工具進行邏輯綜合和優(yōu)化,并自動地把VHDL描述設(shè)計轉(zhuǎn)變成為門級網(wǎng)表[9]。這種方式突破了門級電路設(shè)計的瓶頸,極大地減少了電路設(shè)計的時間和可能發(fā)生的錯誤,降低了開發(fā)成本。應(yīng)用EDA工具的邏輯優(yōu)化功能,可以自動地把一個綜合后的設(shè)計變成一個更高效、更高速的電路系統(tǒng)。反過來,設(shè)計者還可以容易地從綜合和優(yōu)化后的電路獲得設(shè)計信息,返回去更新修改VHDL設(shè)計描述,使之更為完善。e)VHDL對設(shè)計的描述具有相對獨立性,設(shè)計者可以不懂硬件的結(jié)構(gòu),也不必管最終設(shè)計實現(xiàn)的目標(biāo)器件是什么,而進行獨立的設(shè)計。正因為VHDL硬件描述與具體的工藝技術(shù)和硬件結(jié)構(gòu)無關(guān),VHDL設(shè)計程序的硬件實現(xiàn)目標(biāo)器件有廣闊的選擇范圍,其中包括各系列的CPLD、FPGA及各種門陣列實現(xiàn)目標(biāo)。f)由于VHDL具有類屬描述語句和子程序調(diào)用等功能,對于已完成的設(shè)計,在不改變源程序的條件下,只需要改變端口類屬參量或函數(shù),就能輕易地改變設(shè)計的規(guī)模和結(jié)構(gòu)?;赩HDL的設(shè)計一般采用自頂向下的設(shè)計方法,其主要步驟為:1)設(shè)計說明:用自然語言表達系統(tǒng)項目的功能特點和技術(shù)參數(shù)等。2)建立VHDL行為模型,即將設(shè)計說明已轉(zhuǎn)化為VHDL行為模型。建立模型是為了通過VHDL仿真器對整個系統(tǒng)進行系統(tǒng)行為仿真和性能評估。3)VHDL行為仿真。這一階段可以利用VHDL仿真器對頂層系統(tǒng)的行為模型進行仿真測試,檢查模擬結(jié)果,繼而進行修改和完善。4)VHDL-RTL級建模。即將VHDL的行為模型表達為VHDL行為代碼。5)前端功能仿真。即對VHDL-RTL級模型進行仿真,簡稱功能仿真。6)邏輯綜合。使用邏輯綜合工具將VHDL行為代碼描述轉(zhuǎn)化為結(jié)構(gòu)化的門級電路。7)測試向量生成。8)功能仿真。9)結(jié)構(gòu)綜合。10)門級時序仿真。11)硬件測試。2需求分析2.1系統(tǒng)基本要求本次頻率計設(shè)計要求設(shè)用FPGA實現(xiàn)一個數(shù)字頻率計,具體設(shè)計要求如下:a)測量頻率范圍:10Hz~100KHz 精度:ΔF/F≤±2%;b)1024Hz 測量波形:方波Vp-p=3~5V;c)AlteraCycloneⅡEP2C5T144C8芯片、數(shù)碼管LED發(fā)光二極管;d)VHDL語言編程實現(xiàn)??紤]到測量方便,將數(shù)字頻率計劃分為四檔:10~99Hz、100~999Hz、1000~9999Hz、10000~99999Hz。這樣可以保證每一檔三位有效數(shù)字,而且第三位有效數(shù)字誤差在±2以內(nèi)時即可達到精度要求。其中,三個輸入信號:待測信號、標(biāo)準(zhǔn)時鐘脈沖信號和復(fù)位脈沖信號。頻率計能根據(jù)輸入待測信號頻率自動選擇量程,并在超過最大量程時顯示過量程,當(dāng)復(fù)位脈沖到來時,系統(tǒng)復(fù)位,重新開始計數(shù)顯示頻率。2.2系統(tǒng)結(jié)構(gòu)基于上述要求,可以將系統(tǒng)基本劃分為四個模塊,分別為分頻、計數(shù)、鎖存和控制,并可以確定基本的連接和反饋,如圖2.1所示:分頻器分頻器計數(shù)器鎖存器輸出控制器小數(shù)點待測信號標(biāo)準(zhǔn)時鐘RESET顯示器圖2.1頻率計模塊組成3系統(tǒng)設(shè)計3.1總體方案比較方案1:采用小規(guī)模數(shù)字集成電路制作被測信號經(jīng)過放大整形變換為脈沖信號后加到主控門的輸入端,時基信號經(jīng)控制電路產(chǎn)生閘門信號送至主控門,只有在閘門信號采樣期間內(nèi)輸入信號才通過主控門,若時基信號周期為T,進入計數(shù)器的輸入脈沖數(shù)為N,則被信號的測頻率其頻率F=N/T,其原理方框圖如圖3.1所示:整形放大整形放大閘門計數(shù)器譯碼器顯示邏輯控制待測信號圖3.1方案1測頻原理圖方案2:采用單片機進行測頻控制單片機技術(shù)比較成熟,功能也比較強大,被測信號經(jīng)放大整形后送入測頻電路,由單片機對測頻電路的輸出信號進行處理,得出相應(yīng)的數(shù)據(jù)送至顯示器顯示。原理方框圖如圖3.2所示:信號整形信號整形測頻電路單片機顯示晶振待測信號圖3.2方案2才頻原理圖采用這種方案優(yōu)點是呆以依賴地成熟的單片機技術(shù)、運算功能較強、軟件編程靈活、自由度大、設(shè)計成本也較低,缺點是顯而易見的,在傳統(tǒng)的單片機設(shè)計系統(tǒng)中必須使用許多分立元件組成單片機的外圍電路,整個系統(tǒng)顯得十分復(fù)雜,并且單片機的頻率不能做得很高,使得測量精度大大降低。方案3:采用現(xiàn)場可編程門陣列(FPGA)為控制核心采用現(xiàn)場可編程門陣列(FPGA)為控制核心,利用VHDL語言編程,下載燒制實現(xiàn)。將所有器件集成在一塊芯片上,體積大大減小的同時還提高了穩(wěn)定性,可實現(xiàn)大規(guī)模和超大規(guī)模的集成電路,測頻測量精度高,測量頻率范圍大,而且編程靈活、調(diào)試方便。綜合上述分析,方案三為本設(shè)計測量部分最佳選擇方案。3.2程序流程圖本次頻率計設(shè)計的流程圖如圖3.3所示:數(shù)碼管顯示數(shù)碼管顯示譯碼顯示數(shù)據(jù)鎖存計數(shù)器50MHZ分頻計數(shù)器50MHZ分頻500MHZ分頻計數(shù)器0.1檔1檔10檔開始1S時基10S時基0.1S時基NONOYESYESYES圖3.3程序流程圖分頻電路將50MHz標(biāo)頻信號通過500MHz、50MHz、5MHz分頻產(chǎn)生所需的閘門信號,其原理圖如圖3.4所示:可控分頻晶振500M分頻可控分頻晶振50M分頻5M分頻CLKK圖3.4分頻電路原理圖進行500MHz分頻后。其頻率為:50MHz/500MHz=1/10=0.1Hz周期為10s,所以所顯示的頻率值是實際頻率值的10倍,檔位為*0.1,精度為0.1;進行50MHz分頻后。其頻率為50MHz/50MHz=1/1=1Hz,周期為1s,所以所顯示的頻率值即是實際頻率值。檔位為*1,精度為1。進行5MHz分頻后。其頻率為50MHz/5MHz=10Hz周期變?yōu)?.1s,所以所顯示的頻率值是實際頻率值的1/10倍。檔位為*10,精度為10。3.3系統(tǒng)模塊設(shè)計頻率計設(shè)計總體如圖3.5所示:CLKCLK計數(shù)器CLKK數(shù)據(jù)鎖存譯碼顯示數(shù)碼管顯示放大整形電路500MHZ50MHZ5MHZ分頻晶振輸入信號圖3.5頻率計總體設(shè)計圖3.3.1整形電路FPGA能夠識別的信號只有脈沖信號,要使系統(tǒng)能夠精確測量各種信號的頻率,如:正弦波、三角波、鋸齒波等,必需先將被測信號整形,整形電路是將待測信號整形變成計數(shù)器所要求的脈沖信號[10]。電路形式采用一個整形三極管9018和一個電位器以及四個1K的電阻組成。其整形電路原理圖如圖3.6所示:圖3.6整形電路原理圖3.3.2計數(shù)器由四個十進制計數(shù)器級聯(lián)。四個輸入端口:時鐘脈沖CLK、使能端EN、清零端CLRN、檔位狀態(tài)端STAT[1..0]。五個輸出端口:四個四位十進制BCD碼輸出OUT1[3..0]~OUT4[3..0]、過量程溢出OF[7]。功能表見表3.1:表3.1計數(shù)器功能表CLKENCLRNSTAT[1.0]OUT4-1DFHL0,1,23位加一計數(shù)OF等于第三位進位HL34位加一計數(shù)OF等于第四位進位×LL×計數(shù)保持L×××LL×H×LL設(shè)計生成的計數(shù)器模塊如圖3.7所示:SSignalResetEnCntoverCntlowLockCout1[3.0]Cout2[3.0]Cout3[3.0]Cout4[3.0]圖3.7單個計數(shù)器模塊每個十進制計數(shù)器用VHDL語言編程實現(xiàn)。源程序如下:moduleCounter(reset,signal,en,cntover,cntlow,lock,cout1,cout2,cout3,cout4);inputsignal,en;//en為分頻器輸出的方波信號outputcntover,cntlow,lock,reset;output[3:0]cout1,cout2,cout3,cout4;regcntover,cntlow,lock;reg[3:0]cout1,cout2,cout3,cout4;wirereset;assignreset=(cntover||cntlow||lock);always@(posedgesignal)beginif(reset)begincout1<=0;cout2<=0;cout3<=0;cout4<=0;cntlow<=0;cntover<=0;endelseif(en)beginif((cout1==9)&&(cout2!=9))begincout1<=0;cout2<=cout2+1;cntover<=0;cntlow<=0;endelseif((cout1==9)&&(cout2==9)&&(cout3!=9))begincout1<=0;cout2<=0;cout3<=cout3+1;cntlow<=0;endelseif((cout1==9)&&(cout2==9)&&(cout3==9)&&(cout4!=9))begincout1<=0;cout2<=0;cout3<=0;cout4<=cout4+1;endelseif((cout1==9)&&(cout2==9)&&(cout3==9)&&(cout4==9))begincntover<=1;endelsebegincout1<=cout1+1;cntover<=0;endendelsebegincntover<=0;cntlow<=0;end//end//always@(negedgeen)//beginif(!en)beginif((cout4==0)&&(cout3<=9)&&(cout2<=9)&&(cout1<=9))begincntlow<=1;lock<=0;endelseif(cntover)beginlock<=0;cntlow<=0;endelsebeginlock<=1;cntlow<=0;endif((cout4==0)&&(cout3==0)&&(cout2==0)&&(cout1==0))begincntlow<=0;cntover<=0;lock<=0;endendendendmodule3.3.3分頻器分頻器是本系統(tǒng)最重要的功能部件之一,由它產(chǎn)生閘門電平和控制器、計數(shù)器的控制脈沖。它有四個輸入:標(biāo)準(zhǔn)時鐘脈沖輸入CLK1024、溢出處理觸發(fā)TRIGGER、復(fù)位觸發(fā)RESET和檔位狀態(tài)STAT[1..0]。三個輸出:計數(shù)閘門電平FGATE、控制器工作脈沖FTRIGGER、計數(shù)器控制器清零脈沖FCLR。設(shè)計生成的分頻器模塊如圖3.8所示:ClkClkcount_clkResetSelect[1.0]圖3.8單個分頻器模塊分頻器采用計數(shù)分頻的辦法,即使用一內(nèi)部寄存器,在時鐘脈沖上升沿加一計數(shù),當(dāng)計到一定值時就改變FGATE的狀態(tài),從而達到分頻的目的。由于輸入標(biāo)準(zhǔn)時鐘脈沖為1024Hz,要得到0.1s的FGATE計數(shù)值相當(dāng)小,約為20,誤差很大,故在實際設(shè)計中把第四檔閘門電平時間調(diào)整為0.1s,這樣第三、四檔公用一個閘門電平,同時在計數(shù)和鎖存時要做相應(yīng)的移位,因為測量第四檔頻率時有4位有效數(shù)字。要得到10s、1s、0.1s三個FGATE,分別要計數(shù)到10240、1024和103。從組成圖中也可以看出分頻器由這三種計數(shù)器并聯(lián)組成,通過3個4選1選擇器(一個74LS153和一個4_1MUX),由STAT[1..0]選擇使用的FGATE、FCLR和FTRIGGER[7]。 輸出FGATE送計數(shù)器EN作為計數(shù)器使能閘門電平。FTRIGGER送控制器TRIGGER作為控制器工作脈沖。FCLR送計數(shù)器CLRN作為每次計數(shù)開始前的清零信號,送控制器CLR作為控制器內(nèi)部觸發(fā)信號。FGATE由高變低,即計數(shù)結(jié)束時,F(xiàn)TRIGGER信號才產(chǎn)生,這時控制器開始工作,判斷計數(shù)是否有效,然后發(fā)出一系列指令直到FCLR信號到來,計數(shù)器清零,準(zhǔn)備進入下一次計數(shù)。采用這樣的像CPU時鐘一樣的信號的原因,一方面,處理計數(shù)數(shù)據(jù)只用了很短的時間,兩次測量之間時間很短,加快了頻率計的響應(yīng)速度;另一方面,解決了異步時序邏輯的競爭,使系統(tǒng)工作在異步時序狀態(tài)下,既保持了很高的響應(yīng)速度,又有很高的穩(wěn)定性。為了解決在第一檔向第二檔轉(zhuǎn)換時等待時間過長的問題,分頻器由TRIGGER端口接收一個計數(shù)器的溢出脈沖,當(dāng)計數(shù)器溢出時,在脈沖上升沿將內(nèi)部計數(shù)器置為FGATE結(jié)束高電平的最后一個計數(shù)器值。這樣,由于控制器此時溢出已被置位,馬上就能進入一次換檔處理,保證了換檔的快速。另外,RESET信號上升沿到來時,計數(shù)器被置為零,這樣就可以馬上重新開始計數(shù),實現(xiàn)了復(fù)位的效果。分頻器單元FREQCER_10240的源程序如下:moduleDivFreq(clk,reset,select,count_clk);outputcount_clk;inputclk,reset;input[1:0]select;regcount_clk;reg[23:0]num;//always@(posedgeclk)//beginif(reset)count_clr<=1;//elsecount_clr<=0;//endalways@(posedgeclk)beginif(!reset)case(select)2'b00:beginif(num==499)begin count_clk<=~count_clk;num<=0;endelsenum<=num+1;end2'b01:beginif(num==4999)begin count_clk<=~count_clk;num<=0;endelsenum<=num+1;end2'b11:beginif(num==49999)begin count_clk<=~count_clk;num<=0;endelsenum<=num+1;enddefault:beginif(num==4999)begin count_clk<=~count_clk;num<=0;endelsenum<=num+1;endendcaseelsebeginnum<=0;count_clk<=1;endendendmodule3.3.4鎖存器如果計數(shù)器輸出直接與譯碼器相連接,那么在計數(shù)過程中輸出端則隨輸入脈沖數(shù)的增加而不斷跳變,那么顯示數(shù)碼管則也會不斷閃爍跳變,讓人不能看到穩(wěn)定的輸出,設(shè)鎖存器后,則不再跳變,便可清晰讀出計數(shù)結(jié)果。由control控制模塊產(chǎn)生的latch信號來提供鎖存脈沖。其生成的功能模塊如圖3.9所示:LLockCout1[3.0]Cin[3.0]圖3.9單個鎖存器模塊這模塊實現(xiàn)了對六位計數(shù)結(jié)果和溢出信號over的鎖存功能。程序很簡單,即鎖存信號的上升沿來時送數(shù),其它時候則保持不變。鎖存器有八個輸入:時鐘脈沖CLK,置位端SET,復(fù)位端RESET,4個4bit十進制BCD輸入IN1[3..0]~IN4[3..0],檔位狀態(tài)STAT[1..0]。五個輸出:5個5bit十進制BCD輸出。組成圖見附圖2左上部分。由一橋接器BRIDGE和4個LATCH_4_16、1個LATCH_4_1鎖存器組成[8]。 橋接器BRIDGE主要是為了數(shù)據(jù)對齊。因為3、4兩檔使用同一個分頻器,故測量第四檔時有4位有效數(shù)字,通過橋接器轉(zhuǎn)換后就能保證數(shù)據(jù)有效數(shù)字最高位與鎖存器第五位對齊。輸入輸出對應(yīng)表如表3.2:表3.2輸入輸出功能表STAT=0,1,2STAT=3OUT5=IN3=IN4OUT4=IN2=IN3OUT3=IN1=IN2OUT20=IN1橋接器功能表如表3.3所示:表3.3橋接器功能表CLK(IN)SET(IN)RESET(IN)OUT00=IN01010F×00×0F鎖存器單元LATCH_4_1和LATCH_4_16均為4bit鎖存器,其唯一不同在于置位時,LATCH_4_16鎖存器內(nèi)容置為F,另一個置1。下面將LATCH_4_16的功能表和源程序列出:Lock.vhdl/鎖存模塊moduleLock(lock,cin,cout);inputlock;input[3:0]cin;output[3:0]cout;reg[3:0]cout;always@(posedgelock)beginif(lock)cout=cin;endendmodule3.3.5控制器控制器CONTROLER是整個系統(tǒng)最復(fù)雜也是最關(guān)鍵的部件,附圖1左上部分是控制器組成。它由一個控制器核心模塊CONTROL_CORE和寄存器OFREGISTER組成OFREGISTER由CLK端接受計數(shù)器溢出脈沖在其上升沿置1,當(dāng)控制器核心開始換檔工作時,通過CLR清除OFREGISTER。其功能表如表3.4所示:表3.4輸入輸出功能表輸入輸入輸出CLKCLROF×1×0設(shè)計生成的控制器模塊如圖3.10所示:CClkstd_f_sel[1.0]ClearresetCntoverlight_1kCntlowlight_10klight_100k圖3.10單個控制器模塊CONTROL_CORE模塊是控制器的核心,有六個輸入端口:時序脈沖CLK、清零脈沖CLR、復(fù)位脈沖RESET、溢出檢測輸入OF、計數(shù)器輸出第3、4位IN3[3..0]和IN4[3..0]。輸出端口四個:鎖存器工作脈沖LATCH_CLK、OFREGISTER清零脈沖CLROF、鎖存器狀態(tài)LATCH_STAT[1..0]和當(dāng)前檔位狀態(tài)STAT[1..0]。另外還有寄存器stat_reg[1..0],用在轉(zhuǎn)換檔位時臨時保存檔位。count寄存器,用來標(biāo)志當(dāng)前工作脈沖序號。flag寄存器,用來標(biāo)志當(dāng)前計數(shù)置溢出或不夠。reset_reg寄存器,用來標(biāo)志復(fù)位周期。由上述介紹可知有三種情況能到達狀態(tài):計數(shù)結(jié)束、計數(shù)中溢出和復(fù)位。這個時候就需要檢測。RESET信號在上升沿將reset_reg置為1,并進行復(fù)位操作,即狀態(tài)寄存器分別置值。在時刻第工作脈沖到來時,首先檢測是不是復(fù)位周期,是則跳過,不作任何動作。不是,則檢測OF端口是否為1,為1則有溢出,要進行換檔,flag標(biāo)志置1,并發(fā)出OFREGISTER清零信號CLROF,沒有溢出,則檢測計數(shù)器最高兩位,兩位均為0,則說明檔位不夠,要調(diào)低檔位,flag標(biāo)志置2,如果不均為0,則該計數(shù)值有效,flag置為0;當(dāng)脈沖到來時,檢測是否是復(fù)位周期,是則跳過,不是則繼續(xù)。如果flag=1,有溢出,向上換檔,如果當(dāng)前檔位為3,則保持,并且將鎖存器置位(顯示1FFFF),否則向上調(diào)一擋;如果flag=2,檔位不夠,當(dāng)前檔位為0時,保持,否則向下調(diào)一擋。flag=0,計數(shù)有效,發(fā)出鎖存器時鐘脈沖LATCH_CLK,將當(dāng)前計數(shù)值打入鎖存器。當(dāng)脈沖到來時,清除中間狀態(tài)寄存器。當(dāng)脈沖到來時,在其下降沿將stat_reg的內(nèi)容打入STAT,在下一次高電平到來之前實現(xiàn)檔位轉(zhuǎn)換。具體源程序如下:clk:輸入時鐘;clear:為整個頻率計的異步復(fù)位信號;reset:用來在量程轉(zhuǎn)換開始時復(fù)位計數(shù)器;std_f_sel:用來選擇標(biāo)準(zhǔn)時基;cntover:代表超量程;cntlow:代表欠量程;lock:向鎖存器發(fā)出的鎖存信號。狀態(tài)A,B,C,D,E,F(xiàn)采用一位熱碼編碼*/moduleControl(std_f_sel,reset,clk,clear,cntover,cntlow,light_1k,light_10k,light_100k);output[1:0]std_f_sel;outputreset;outputlight_1k,light_10k,light_100k;inputclk,clear,cntover,cntlow;reg[1:0]std_f_sel;regreset;reg[5:0]present,next;reglight_1k,light_10k,light_100k;parameterstart_fl00k=6'b000001, fl00k_cnt=6'b000010, start_fl0k=6'b000100, fl0k_cnt=6'b001000, start_flk=6'b010000, flk_cnt=6'b100000;always@(posedgeclkorposedgeclear)begin if(clear) present<=start_fl0k; else present<=next;endalways@(presentorcntoverorcntlow)begincase(present)start_fl00k: next<=fl00k_cnt;fl00k_cnt: begin if(cntlow) next<=start_fl0k; else next<=fl00k_cnt; endstart_fl0k: next<=fl0k_cnt;fl0k_cnt: begin if(cntlow) next<=start_flk; elseif(cntover) next<=start_fl00k; else next<=fl0k_cnt; endstart_flk: next<=flk_cnt;flk_cnt: begin if(cntover) next<=start_fl0k; else next<=flk_cnt; enddefault: next<=start_fl0k;endcaseend/*always@(cntoverorcntlow)//符合量程時輸出lock信號beginif((!cntover)&&(!cntlow))lock=1;elselock<=0;end*/always@(present)begincase(present)start_fl00k: begin reset=1;std_f_sel=2'b00;light_1k<=0;light_10k<=0;light_100k<=1;endfl00k_cnt: begin reset=0;std_f_sel=2'b00;light_1k<=0;light_10k<=0;light_100k<=1;endstart_fl0k: begin reset=1;std_f_sel=2'b01;light_1k<=0;light_10k<=1;light_100k<=0;endfl0k_cnt: begin reset=0;std_f_sel=2'b01;light_1k<=0;light_10k<=1;light_100k<=0;endstart_flk: begin reset=1;std_f_sel=2'b11;light_1k<=1;light_10k<=0;light_100k<=0;endflk_cnt: begin reset=0;std_f_sel=2'b11;light_1k<=1;light_10k<=0;light_100k<=0;enddefault: begin reset=1;std_f_sel=2'b01;light_1k<=0;light_10k<=1;light_100k<=0;endendcaseendendmodule3.3.6顯示器最終信號輸出在8位LED數(shù)碼管上顯示,數(shù)碼管顯示如圖3.11所示:圖3.11八位數(shù)碼管頻率計設(shè)計的計數(shù)結(jié)果輸入到3-8譯碼器74LS138,譯碼結(jié)果輸出可依次使能每個LED:要讓每個LED同時工作,顯示數(shù)據(jù),就要掃描每個LED,并在使能每個LED的同時,輸入所需顯示的數(shù)據(jù)對應(yīng)的8位段碼。雖然8個LED是依次顯示,但是受視覺分辨率的影響,看到的現(xiàn)象是8個LED同時顯示。數(shù)碼管程序詳見附錄1。4系統(tǒng)仿真及測試系統(tǒng)程序輸入完成后,需要先對程序進行編譯,可以在QUARTUSⅡ軟件上面的直接編譯按鈕(StartCompilation)進行編譯,編譯結(jié)果無錯誤顯示如圖4.1所示:圖4.1正確編譯結(jié)果編譯后的編譯報告信息顯示了芯片資源的利用率等信息,如圖4.2所示:圖4.2編譯報告信息成功編譯之后,就可以進行系統(tǒng)仿真,具體方法是:建立波形文件File>New,點擊OtherFiles,選擇VectorWavetomFile,如圖4.3所示:圖4.3新建波形文件加入波形:在波形窗口選擇InsertNodeorBus,將會彈出引腳信息窗口,如圖4.4所示:圖4.4引腳信息窗口點擊NodeFinder,添加相應(yīng)管腳,并保存文件。為了方便觀察波形,我們還要設(shè)置格點尺寸和結(jié)束時間,可以在Edit菜單下面的EndTime和GrideSize中分別設(shè)置,我們設(shè)置GrideSize為30ns,EndTime為1us(其中GrideSize不要設(shè)太小,否則可能會出現(xiàn)信號的延遲大于信號的有效時間,而使得仿真結(jié)果感覺好像不正確)。為了方便觀察波形,我們可以全屏顯示或者點擊放大縮小按鈕,左鍵放大,右鍵縮小。把輸入信號定義如下波形(選中那個信號,用鼠標(biāo)拉黑相關(guān)波段,懸著左端工具欄上的1或者0),之后保存文件。點擊仿真按鈕,波形仿真無誤顯示,如圖4.5所示:圖4.5無誤仿真結(jié)果按照上述步驟依次得出模塊仿真結(jié)果:鎖存器仿真圖4.6所示:圖4.6鎖存器仿真圖控制器仿真圖4.7所示:圖4.7控制器仿真圖之后得出整個工程時序仿真圖:設(shè)置EndTime=1us,GrideSize=50ns時的到系統(tǒng)仿真圖4.8所示:圖4.8工程時序仿真圖頂層設(shè)計采用圖形畫界面模塊如圖4.9所示:圖4.9生成系統(tǒng)整體界面仿真結(jié)束之后,進行引腳鎖定,如圖4.10所示,圖4.10引腳鎖存完成引腳鎖存后,下載驗證:a)確認(rèn)工程正常打開;b)打開Assignment菜單的Pins命令,打開引腳鎖定窗口;c)選擇對應(yīng)端口信號名的器件引腳號;d)添加鎖定引腳,全部輸入保存引腳設(shè)置。e)將編譯產(chǎn)生的SOF格式文件配置到FPGA中,進行硬件測試。結(jié)論本設(shè)計是基于FPGA的數(shù)字頻率計設(shè)計,論文中闡述了FPGA開發(fā)的現(xiàn)狀、發(fā)展前景和頻率計的開發(fā)意義,詳細介紹了FPGA的開發(fā)模塊化設(shè)計,并利用QUARTUSⅡ環(huán)境進行編譯、仿真,以便完成頻率計的設(shè)計任務(wù)。本次設(shè)計主要采用FPGA的模塊化設(shè)計思想,利用QUARTUSⅡ環(huán)境進行具體模塊開發(fā),并將設(shè)計好的各模塊進行系統(tǒng)集成,由于VHDL語言設(shè)計功底的局限性,在編程、編譯過程中經(jīng)常出現(xiàn)錯誤,要通過不斷的調(diào)試才能解決。還有就是在完成模塊編程、編譯后進行仿真過程時,一定要注意格點大小的設(shè)GrideSize一般設(shè)置為30ns附近,選擇的數(shù)值不能太小,也不能太大,否則信號的延遲大于信號的有效時間,使得仿真結(jié)果不能正確顯示。在測量信號由高位擋向低位檔轉(zhuǎn)換時測量結(jié)果不太準(zhǔn)確,主要原因是三個分頻器是并行獨立計數(shù)的,因此無法保證換擋時各個分頻狀態(tài)保持同步,應(yīng)該在分頻器級聯(lián)方面做些改進,希望在以后的生活中通過不斷的學(xué)習(xí),繼續(xù)完此次功能,并不斷加深硬件描述語言的編程功底。當(dāng)然,本次設(shè)計仍有許多不足之處,最主要的一點就是對于數(shù)字頻率計的精度設(shè)計方面無法保證,由于自身水平和時間限制等因素,沒能在精度方面完成設(shè)計預(yù)期要求是本次設(shè)計一個較大的遺憾。致謝畢業(yè)設(shè)計就要結(jié)束了,在這段時間里,在馬岱老師的悉心指導(dǎo)和幫助下,順利完成了數(shù)字頻率計的設(shè)計任務(wù)。在整個課程設(shè)計期間馬岱老師對我的設(shè)計一直都很關(guān)心,對我的要求也很嚴(yán)格,在本次畢業(yè)設(shè)計過程中,馬岱老師對我耐心指導(dǎo),給我講解設(shè)計思想,幫我理清思路,給我提出了許多寶貴的意見和建議,使我的課題得以順利完成。在此,對馬岱老師表示衷心的感謝。在畢業(yè)設(shè)計中,感謝淮陰工學(xué)院計算機工程學(xué)院提供的時間機會,同時我還要感謝同學(xué)們,他們?yōu)槲业南到y(tǒng)設(shè)計以及論文都提出了寶貴的意見,通過相互交流,使我看到了設(shè)計的不足,而我唯有通過不斷的努力改進系統(tǒng)的不足,爭取用更優(yōu)秀的設(shè)計來回報他們以及老師們的辛勤工作。僅僅靠我一人很難完成此次設(shè)計的,正因為周圍很多同學(xué)的幫助和照顧,在我感到困惑的時候給我很多安慰和提示,給我很多設(shè)計系統(tǒng)的思路和建議,很感謝大家對我的支持與鼓勵。最后,再次感謝各位老師和同學(xué)對我的設(shè)計提供的幫助和支持。參考文獻1潘松,黃繼業(yè)編著.EDA技術(shù)與VHDL[M].清華大學(xué)出版社.2005年2尹常永編著.EDA技術(shù)與數(shù)字系統(tǒng)設(shè)計[M].西安電子科技大學(xué)出版社.2004年3譚會生,張昌凡編著.EDA技術(shù)及應(yīng)用[M].西安電子科技大學(xué)出版社.2001年4譚會生,編著.EDA技術(shù)綜合應(yīng)用實例與分析[M].西安電子科技大學(xué)出版社.2004年5羅豐,吳順君編著.CPLD技術(shù)及運用[M].西安交通大學(xué)出版社.2003年6齊洪喜,陸穎編著.VHDL電路設(shè)計實用教程[M].清華大學(xué)出版社.2002年7包明,趙明富.EDA技術(shù)與數(shù)字系統(tǒng)設(shè)計[M].北京:北京航空航天大學(xué)出版社,2001.8徐志軍,徐光輝.FPGA的開發(fā)與應(yīng)用[M].北京:電子工業(yè)出版社,2002.9黃任.單片機與CPLD/FPGA綜合應(yīng)用入門[M].北京:北京航空航天大學(xué)出版社.2004年.143-164.10清源計算機工作室編著.Protel99SE仿真與PLD設(shè)計[M].北京:機械工業(yè)出版社,2000年8月附錄1數(shù)碼顯示程序:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;USEIEEE.STD_LOGIC_SIGNED.ALL;ENTITYSCAN_SEG8ISPORT(CLK3,CLK5:INSTD_LOGIC;RST:STD_LOGIC;SEG_DA:OUTSTD_LOGIC_VECTOR(7DOWNTO0);SEG_SEL:OUTSTD_LOGIC_VECTOR(2DOWNTO0));ENDSCAN_SEG8;ARCHITECTUREADOOFSCAN_SEG8ISSIGNALSEG_BUF1,SEG_BUF2,SEG_BUF1,SEG_BUF3,SEG_BUF4,SEG_BUF0:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALSEG_BUF5,SEG_BUF6,SEG_BUF7,SEG_BUF8:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALSEG_CNT:STD_LOGIC_VECTOR(2DOWNTO0);SIGNALSEG_TEMP:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALCLK:STD_LOGIC;BEGINPROCESS(CLK5)BEGINIFCLK5'EVENTANDCLK5='1'THENCLK<=NOTCLK;ENDIF;ENDPROCESS;PROCESS(CLK5,RST)BEGINIFCLK5'EVENTANDCLK5='1'THENIFCLK='1'THENSEG_BUF1<="0001";SEG_BUF2<="0010";SEG_BUF3<="0011";SEG_BUF4<="0100";SEG_BUF5<="0101";SEG_BUF6<="0110";SEG_BUF7<="0111";SEG_BUF8<="1000";ELSESEG_BUF0<=SEG_BUF8;SEG_BUF8<=SEG_BUF7;SEG_BUF7<=SEG_BUF6;SEG_BUF6<=SEG_BUF5;SEG_BUF5<=SEG_BUF4;SEG_BUF4<=SEG_BUF3;SEG_BUF3<=SEG_BUF2;SEG_BUF2<=SEG_BUF1;SEG_BUF1<=SEG_BUF0;ENDIF;ENDIF;PROCESS(CLK3,RST)BEGINIFCLK3'EVENTANDCLK3='1'THENIFRST="1"THENSEG_CNT<="000";ELSESEG_CNT<=SEG_CNT+1ENDIF;ENDIF;ENDPROCESS;SEG_SEL<=SEG_CNTPROCESS(SEG_CNT,SEG_BUF6,SEG_BUF1,SEG_BUF2,SEG_BUF3,SEG_BUF4,SEG_BUF5,SEG_BUF6,SEG_BUF7,SEG_BUF8)BEGINCASESEG_CNTISWHEN0"0"=>SEG_TEMP<=SEG_BUF1;WHEN0"1"=>SEG_TEMP<=SEG_BUF2;WHEN0"2"=>SEG_TEMP<=SEG_BUF3;WHEN0"3"=>SEG_TEMP<=SEG_BUF4;WHEN0"4"=>SEG_TEMP<=SEG_BUF5;WHEN0"5"=>SEG_TEMP<=SEG_BUF6;WHEN0"6"=>SEG_TEMP<=SEG_BUF7;WHEN0"7"=>SEG_TEMP<=SEG_BUF8;WHENOTHERS=>SEG_TEMP<="XXXX";ENDCASE;ENDPROCESS;PROCESS(SEG_TEMP)BEGINCASESEG_CNTISWHEN"0000"=>SEG_TDA<="00111111";WHEN"0001"=>SEG_TDA<="00OOO11O";WHEN"0010"=>SEG_TDA<="01O11O11";WHEN"0011"=>SEG_TDA<="01001111";WHEN"0100"=>SEG_TDA<="01100110";WHEN"0101"=>SEG_TDA<="01101101";WHEN"0110"=>SEG_TDA<="01111101";WHEN"0111"=>SEG_TDA<="00000111";WHEN"1000"=>SEG_TDA<="01111111";WHEN"1001"=>SEG_TDA<="01101111";WHEN"1010"=>SEG_TDA<="01110111";WHEN"1011"=>SEG_TDA<="01111110";WHEN"1100"=>SEG_TDA<="00111001";WHEN"1101"=>SEG_TDA<="01011110";WHEN"1110"=>SEG_TDA<="01111001";WHEN"1111"=>SEG_TDA<="01110001";WHENOTHERS=>NULL;ENDCASE;ENDPROCESS;ENDAD0;附錄2數(shù)字頻率計硬件原理圖如圖所示:基于C8051F單片機直流電動機反饋控制系統(tǒng)的設(shè)計與研究基于單片機的嵌入式Web服務(wù)器的研究MOTOROLA單片機MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對良率的影響研究基于模糊控制的電阻釬焊單片機溫度控制系統(tǒng)的研制基于MCS-51系列單片機的通用控制模塊的研究基于單片機實現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機控制的二級倒立擺系統(tǒng)的研究基于增強型51系列單片機的TCP/IP協(xié)議棧的實現(xiàn)基于單片機的蓄電池自動監(jiān)測系統(tǒng)基于32位嵌入式單片機系統(tǒng)的圖像采集與處理技術(shù)的研究基于單片機的作物營養(yǎng)診斷專家系統(tǒng)的研究基于單片機的交流伺服電機運動控制系統(tǒng)研究與開發(fā)基于單片機的泵管內(nèi)壁硬度測試儀的研制基于單片機的自動找平控制系統(tǒng)研究基于C8051F040單片機的嵌入式系統(tǒng)開發(fā)基于單片機的液壓動力系統(tǒng)狀態(tài)監(jiān)測儀開發(fā)模糊Smith智能控制方法的研究及其單片機實現(xiàn)一種基于單片機的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機的在線間歇式濁度儀的研制基于單片機的噴油泵試驗臺控制器的研制基于單片機的軟起動器的研究和設(shè)計基于單片機控制的高速快走絲電火花線切割機床短循環(huán)走絲方式研究基于單片機的機電產(chǎn)品控制系統(tǒng)開發(fā)基于PIC單片機的智能手機充電器基于單片機的實時內(nèi)核設(shè)計及其應(yīng)用研究基于單片機的遠程抄表系統(tǒng)的設(shè)計與研究基于單片機的煙氣二氧化硫濃度檢測儀的研制基于微型光譜儀的單片機系統(tǒng)單片機系統(tǒng)軟件構(gòu)件開發(fā)的技術(shù)研究基于單片機的液體點滴速度自動檢測儀的研制基于單片機系統(tǒng)的多功能溫度測量儀的研制基于PIC單片機的電能采集終端的設(shè)計和應(yīng)用基于單片機的光纖光柵解調(diào)儀的研制氣壓式線性摩擦焊機單片機控制系統(tǒng)的研制基于單片機的數(shù)字磁通門傳感器基于單片機的旋轉(zhuǎn)變壓器-數(shù)字轉(zhuǎn)換器的研究基于單片機的光纖Bragg光柵解調(diào)系統(tǒng)的研究單片機控制的便攜式多功能乳腺治療儀的研制基于C8051F020單片機的多生理信號檢測儀基于單片機的電機運動控制系統(tǒng)設(shè)計Pico專用單片機核的可測性設(shè)計研究基于MCS-51單片機的熱量計基于雙單片機的智能遙測微型氣象站MCS-51單片機構(gòu)建機器人的實踐研究基于單片機的輪軌力檢測基于單片機的GPS定位儀的研究與實現(xiàn)基于單片機的電液伺服控制系統(tǒng)用于單片機系統(tǒng)的MMC卡文件系統(tǒng)研制基于單片機的時控和計數(shù)系統(tǒng)性能優(yōu)化的研究基于單片機和CPLD的粗光柵位移測量系統(tǒng)研究單片機控制的后備式方波UPS提升高職學(xué)生單片機應(yīng)用能力的探究基于單片機控制的自動低頻減載裝置研究基于單片機控制的水下焊接電源的研究基于單片機的多通道數(shù)據(jù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論