【正文】
第 19 頁(yè) 課件之家精心整理資料 歡迎你的欣賞 begin if(clkhf39。 q=conv_std_logic_vector( tmp,4); //將整形轉(zhuǎn)化為四位二進(jìn)制數(shù) end counter_arch。event and clk=39。 entity counter10 is //十進(jìn)制計(jì)數(shù)器 counter10 port( clk, enable, clr: in std_logic; //分別為計(jì)數(shù)時(shí)鐘 /使能 /清零信號(hào) cy:out std_logic。 ● clr 為數(shù)字頻率計(jì)系統(tǒng)的清零信號(hào)。fr_lowamp。它來(lái)自低頻計(jì)數(shù)器模塊,當(dāng)?shù)皖l計(jì)數(shù)器完成計(jì)數(shù)后,將 busy 置 0,中央控制模塊接受到此信號(hào)后,使 Center 進(jìn)入脫離等待狀態(tài)。 ● digitalHF[31:0]為高頻段頻率測(cè)頻結(jié)果(用十進(jìn)制 BCD 碼表示)。在第 13 個(gè)時(shí)鐘周期結(jié)果輸出到 display。 這個(gè)模塊主要完成除法運(yùn)算(即求周期的倒數(shù)),然后進(jìn)行再處理后轉(zhuǎn)換為 BCD 碼,結(jié)果輸出到 digital 端。 frhigh, frlow 和 frvlow 代表了當(dāng)前被測(cè)頻率所處的頻率范圍,也代表了小數(shù)點(diǎn)的位置。 圖 ( 2) 低頻計(jì)數(shù) (LowCnt)模塊 低頻計(jì)數(shù) LowCnt(Low frequency Counter)模塊是測(cè)量輸入信號(hào)單個(gè)周期長(zhǎng)度的計(jì)時(shí)電路。高頻計(jì)數(shù)模塊把計(jì)數(shù)的結(jié)果直接送到中央控制模塊用于顯示輸出。整形電路是一個(gè)過(guò)零比較電路,將外部的模擬信號(hào)轉(zhuǎn)換為方波信號(hào)。 (2)測(cè)周期法:是將輸人信號(hào)作為門(mén)控信號(hào),在此門(mén)控信號(hào)下,對(duì)標(biāo)準(zhǔn)時(shí)鐘進(jìn)行計(jì)數(shù),如圖 所示。 ( 3)符合系統(tǒng)芯片 ( SOC, System On A Chip)的發(fā)展要求。這是最顯著也是最重要的一個(gè)特點(diǎn)。 由于 VHDL 語(yǔ)言是一種描述、模擬、綜合、優(yōu)化和 布線的標(biāo)準(zhǔn)硬件描述語(yǔ)言 , 因此它可以使設(shè)計(jì)成果在設(shè)計(jì)人員之間方便地進(jìn)行交流和共享 , 從而減小硬件電路設(shè)計(jì)的工作量 , 縮短開(kāi)發(fā)周期。 VHDL 語(yǔ)言既支持標(biāo)準(zhǔn)定義的數(shù)據(jù)類(lèi)型,也支持用戶定義的數(shù)據(jù)類(lèi)型,這 樣便會(huì)給硬件描述帶來(lái)較大的自由度。歸納起來(lái) ,VHDL 語(yǔ)言主要具有以下優(yōu)點(diǎn): (1) VHDL 語(yǔ)言功能強(qiáng)大 , 設(shè)計(jì)方式多樣 VHDL 語(yǔ)言具有強(qiáng)大的語(yǔ)言結(jié)構(gòu) , 只需采用簡(jiǎn)單明確的 VHDL 語(yǔ)言程序就可以描述十分復(fù)雜的硬件電路。 利用配置技術(shù),可以選取不同的結(jié)構(gòu)體,這樣就可以對(duì)同一設(shè)計(jì)任務(wù)進(jìn)行多種配置的性能實(shí)驗(yàn),從而選取性能最優(yōu)的邏輯實(shí)現(xiàn)。結(jié)構(gòu)體描述一個(gè)設(shè)計(jì)的結(jié)構(gòu)或行為,把一個(gè)設(shè)計(jì)的輸入與輸出之間的邏輯關(guān)系建立起來(lái)。 VHDL 的結(jié)構(gòu)模型 VHDL 的結(jié)構(gòu)模型包括五個(gè)部分:實(shí)體( Entity),結(jié)構(gòu)體 (Architecture),配置(Configuration) ,程序包 (Package),庫(kù) (Library)。 VHDL 主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口,非常適用于可編程邏輯 大學(xué)本科生畢業(yè)設(shè)計(jì) 第 6 頁(yè) 課件之家精心整理資料 歡迎你的欣賞 芯片的應(yīng)用設(shè)計(jì)。 1985 年在美國(guó)國(guó)防部的支持下正式推出了超高速集成電路硬件描述語(yǔ)言( VHDL),它是目前世界上標(biāo)準(zhǔn)化程度最高的一種硬件描述語(yǔ)言。( 2)加快了硬件電路的設(shè)計(jì)周期,降低了硬件電路的設(shè)計(jì)難度。 接下來(lái),在后續(xù)的章節(jié)會(huì)介紹 硬件描述語(yǔ)言 VHDL 語(yǔ)言 的 詳細(xì)情況。利用 EDA 技術(shù)對(duì) FPGA/ CPLD 的開(kāi)發(fā),通常是一種借助于軟件方式的純硬件開(kāi)發(fā),可以通過(guò)這種途徑進(jìn)行專(zhuān)用 ASIC 開(kāi)發(fā),而最終的 ASIC 芯片,可以是 FPGA/ CPLD, 也可以是專(zhuān)制的門(mén)陣列掩膜芯片, FPGA/ CPLD起到了硬件仿真 ASIC 芯片的作用。此階段 EDA 技術(shù)的主要特征是支持高級(jí)語(yǔ)言對(duì)系統(tǒng)進(jìn)行描述,高層次綜合( High Level Synthesis)理論得到了巨大的發(fā)展,可進(jìn)行系統(tǒng)級(jí)的仿真和綜合 [2]。也就是所謂的 EDA 技術(shù)中級(jí)階段。目前數(shù)字系統(tǒng)的設(shè)計(jì)可以直接面向用戶需求,根據(jù)系統(tǒng)的行為和功能要求,自上至下的逐層完成相應(yīng)的描述、綜合、優(yōu)化、仿真與驗(yàn)證,直到生成器件。數(shù)字頻率計(jì) 課件之家精心整理資料 歡迎你的欣賞 課件之家精心整理資料 歡迎你的欣賞 Design of a Digital Cymometer Based on VHDL Abstract In electronics, the frequency is one of the most basic parameters, and with many electrical parameters of the measurement program, measurement consequence of a very close relationship, so the frequency of measurement bees very i mportant. Measuring frequency of means, including electronic counter measuring frequency with high precision, easy to use, fast measurement and easy to realize the advantages of automated measurement process is an important means of frequency measurement. The design bination of frequency measurement method and the measurement cycle the two frequency measurement method can greatly enhance the digital frequency meter band and the measurement accuracy. The modular design ideas, the realization of the frequency counter divided by function into a reference time generator module, high frequency count module, low frequency count module, data processing module, the central control module. Among them, the central control module is part of the whole system of control: highfrequency signal with frequency measurement method, the direct display output in the central controller。課件之家精心整理資料 歡迎你的欣賞 課件之家精心整理資料 歡迎你的欣賞 基于 VHDL語(yǔ)言的數(shù)字頻率計(jì)設(shè)計(jì) 摘 要 在電子技術(shù)中,頻率是最基本的參數(shù)之一,并且與許多電參量的測(cè)量方案、測(cè)量結(jié)果都有十分密切的關(guān)系,因此頻率的測(cè)量就顯得更為重要。硬件描述語(yǔ)言 。推動(dòng)該潮流迅猛發(fā)展的引擎就是日趨進(jìn)步和完善的設(shè)計(jì)技術(shù)。 80 年代初期, EDA 技術(shù)開(kāi)始技術(shù)設(shè)計(jì)過(guò)程的分析,推出了以仿真(邏輯模擬、定時(shí)分析和故障仿真)和自動(dòng)布局與布線為核心的 EDA 產(chǎn)品,這一階段的 EDA 己把三維圖形技術(shù)、窗口技術(shù)、計(jì)算機(jī)操作系統(tǒng)、網(wǎng)絡(luò)數(shù)據(jù)交換、數(shù)據(jù)庫(kù)與進(jìn)程管理等一系列計(jì)算機(jī)學(xué)科的最新成果引入電子設(shè)計(jì),形成了CAE(計(jì)算機(jī)輔助工程)。 EDA 技術(shù)高級(jí)階段采用一種新的設(shè) 計(jì)概念:自頂而下( TopDown)的設(shè)計(jì)程式和并行工程( Concurrent engineering)的設(shè)計(jì)方法,設(shè)計(jì)者的精力主要集中在所要電子產(chǎn)品的準(zhǔn)確定義上, EDA 系統(tǒng)去完成電子產(chǎn)品的系統(tǒng)級(jí)至物理級(jí)的設(shè)計(jì)。各行業(yè)對(duì)自己專(zhuān)用集成電路( ASIC)的設(shè)計(jì)要求日趨迫切,現(xiàn)場(chǎng)可編程器件的廣泛應(yīng)用,為各行業(yè)的電子系統(tǒng)設(shè)計(jì)工程師自行開(kāi)發(fā)本行業(yè)專(zhuān)用的 ASIC 提供了技術(shù)和物質(zhì)條件。 本設(shè)計(jì)通過(guò)用 VHDL 語(yǔ)言實(shí)現(xiàn)數(shù)字頻率計(jì), 用設(shè)計(jì)實(shí)例 說(shuō)明如何采用層次化的設(shè)計(jì)方法來(lái)實(shí)現(xiàn)較大的數(shù)字系統(tǒng),并強(qiáng)化了使用 VHDL 語(yǔ)言 來(lái)實(shí)現(xiàn)數(shù)字系統(tǒng)設(shè)計(jì)的能力 。硬件描述語(yǔ)言具有以下幾個(gè)優(yōu)點(diǎn):( 1)設(shè)計(jì)技術(shù)齊全,方法靈活,支持廣泛。它是在 7080 年代中由美國(guó)國(guó)防部資助的 VHSIC(超高速集成電路)項(xiàng)目開(kāi)發(fā)的產(chǎn)品,誕生于 1982 年。 1996 年 IEEE 1076. 3 成為 VHDL綜合標(biāo)準(zhǔn)。 VHDL 有非常豐富的數(shù)據(jù)類(lèi)型,它的結(jié)構(gòu)模型是層次化的,利用這些豐富的數(shù)據(jù)類(lèi)型和層次化的結(jié)構(gòu)模型,對(duì)復(fù)雜的數(shù)字系統(tǒng)進(jìn)行邏輯設(shè)計(jì)并用計(jì)算機(jī)仿真,逐步完善后進(jìn)行自動(dòng)綜合生成符合要求的、在電路結(jié)構(gòu)上可實(shí)現(xiàn)的數(shù)字邏輯,再下載到可編程邏輯器件中,完成設(shè)計(jì)任務(wù) [4]。 結(jié)構(gòu)體:結(jié)構(gòu)體是 VHDL 設(shè)計(jì)中最重要的部分,可以單獨(dú)編譯并放入庫(kù)中。配置指定用于把例化元件和相應(yīng)的實(shí)體-結(jié)構(gòu)體 ―綁定 ‖起來(lái),配置說(shuō)明為大型設(shè)計(jì)提供配置管理的手段。 利用 VHDL 語(yǔ)言開(kāi)發(fā)的優(yōu)點(diǎn) VHDL 語(yǔ)言能夠成為標(biāo) 準(zhǔn)化的硬件描述語(yǔ)言并獲得廣泛應(yīng)用 , 它自身必然具有很多其他硬件描述語(yǔ)言所不具備的優(yōu)點(diǎn)。 VHDL 語(yǔ)言的強(qiáng)大描述能力還體現(xiàn)在它具有豐富的數(shù)據(jù)類(lèi)型。這些模塊可以預(yù)先設(shè)計(jì)或者使用以前設(shè)計(jì)中的存檔模塊 , 將這些模塊存放在庫(kù)中 , 就可以在以后的設(shè)計(jì)中進(jìn)行復(fù)用。因此用 FPGA 來(lái)實(shí)現(xiàn)數(shù)字頻率計(jì)與以往的數(shù)字頻率計(jì)相比,有如下優(yōu)點(diǎn): ( 1)集成度高。這是以往的數(shù)字頻率計(jì) (由分離元件搭接而成的 )所無(wú)法實(shí)現(xiàn)的。設(shè)輸人信號(hào)頻率為 Fx, 門(mén)控信號(hào)有效電平時(shí)間為 T,在此有效電平時(shí)間內(nèi)的計(jì)數(shù)值為 N,則輸人信號(hào)的頻率為: Fx=N/ T 。 本設(shè)計(jì) 考慮的處理方法是對(duì)輸入信號(hào)經(jīng)預(yù)處理及整形電路后整形為方波信號(hào),預(yù)處理電路用來(lái)完成信號(hào)衰減或放大和濾波 。高頻計(jì)數(shù)模塊和低頻計(jì)數(shù)模塊是整個(gè)測(cè)頻系統(tǒng)核心,它們接受中央控制單元產(chǎn)生的復(fù)位信號(hào),清 除上一次計(jì)數(shù)結(jié)果,以便進(jìn)行下一次計(jì)數(shù)。具體實(shí)現(xiàn)模塊如圖 所示。利用計(jì)數(shù)器的溢出信號(hào)可以判 斷 當(dāng)前被測(cè)頻率在哪個(gè)范圍之內(nèi),從而選擇適當(dāng)?shù)挠?jì)數(shù)值作為輸出 count 的值,并設(shè)置相應(yīng)的標(biāo)志位。 圖 ( 4)數(shù)據(jù)處理 (Divide)模塊 數(shù)據(jù)處理模塊在采用測(cè)頻法的高頻計(jì)數(shù)模塊工作時(shí)對(duì)數(shù)據(jù)不做處理而直接輸出(因?yàn)楦哳l計(jì)數(shù)模塊由 8 個(gè)十進(jìn)制 BCD 碼同步計(jì)數(shù)器級(jí)聯(lián)組成),在采用測(cè)周期法的低頻計(jì)數(shù)模塊工作時(shí)完成求倒數(shù)及 BCD 碼轉(zhuǎn)換的運(yùn)算。低頻計(jì)數(shù)器完成計(jì)數(shù)后,將 busy 置 0,使 中 央控制模塊 脫離等待狀態(tài),進(jìn)入第 12 個(gè)時(shí)鐘周期,產(chǎn)生置位信號(hào) set, 使 數(shù)據(jù)處理模塊 對(duì) 低頻計(jì)數(shù)模塊產(chǎn)生的 計(jì)數(shù)值求倒數(shù) 并轉(zhuǎn)換成 BCD 碼 。它是由基準(zhǔn)時(shí)間產(chǎn)生模塊分頻后產(chǎn)生的。 ● busy 為低頻計(jì)數(shù)模塊工作標(biāo)志信號(hào)。它由 fr_high, fr_low 和 fr_vlow 的值確定( dp=fr_highamp。當(dāng) set=1 時(shí),使數(shù)據(jù)處理模塊對(duì)低頻計(jì)數(shù) 模塊 產(chǎn)生的計(jì)數(shù)值求倒數(shù)并轉(zhuǎn)換為 BCD碼。 use 。 //清零 elsif(enable= ?1‘) then if(clk39。 end process。這三個(gè)信號(hào)可用作測(cè)量低頻計(jì)數(shù)模塊三個(gè)計(jì)數(shù)器的時(shí) 鐘 信號(hào),同時(shí) clk10 還可作為中央控制模塊的內(nèi)部邏輯時(shí)鐘信號(hào)。 end process。 s2=t2(3)。 end if。該信號(hào)為符合 TTL 和 CMOS 電平要求的脈沖信號(hào)。 該計(jì)數(shù)值直接送到中央控 制 模塊的高頻段頻率測(cè)頻結(jié)果 digitalHF[31:0],用于數(shù)碼管的顯示輸出。 c8:counter10 PORT MAP(cy7,enable,clr,cy8, digital (31 downto 28))。在每一個(gè)測(cè)量周期里,第一次出現(xiàn)的被測(cè)信號(hào)使這三個(gè)計(jì)數(shù)器同時(shí)開(kāi)始工作,因?yàn)?3 個(gè)相同 1000 進(jìn)制計(jì)數(shù)器的時(shí)鐘信號(hào)不同,所以在相同時(shí)間內(nèi)計(jì)數(shù)的結(jié)果不同,則計(jì)數(shù)器發(fā)生溢出的時(shí)間也不同。 ● frhigh 為被測(cè)信號(hào)頻率范圍標(biāo)志位(中頻段)。通過(guò)低頻計(jì)數(shù)器三個(gè)不同頻率范圍的標(biāo)志位選擇合適的計(jì)數(shù)值,并把該計(jì)數(shù)值送到除法控制模塊的輸入端口。event and input=39。 c3:counter1k port map (clk10,enable,clr,ov3,q3)。 else q3 when fr_v=39。 數(shù)據(jù)處理模塊的輸入信號(hào)有: ● set 為允許 數(shù)據(jù)處理 模塊工作置位信號(hào)。在 數(shù)據(jù)處理模塊中該值作為除數(shù), 10000 做被除數(shù),送 數(shù)據(jù)處理模塊 做除法,求得的商為周期的倒數(shù), 然后進(jìn)行再 處理轉(zhuǎn)化為 BCD 碼。 //商值變量清零以進(jìn)行后續(xù)運(yùn)算 digital=conv_std_logic_vector(count_out, 12)。因此,工 作 時(shí)需要對(duì)片內(nèi)的 RAM 進(jìn)行編程。因此, FPGA 的使用