2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩48頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  課 題: 基于FPGA的等精度頻率計(jì)的設(shè)計(jì)</p><p>  姓 名: 王海波</p><p>  學(xué) 號(hào): 10242630105</p><p>  院 系:電子信息與控制工程</p><p>  班 級(jí):電子信息(專)</p><p><b>  指

2、導(dǎo)教師: 杜德</b></p><p>  提交日期:2013年5月13號(hào)</p><p><b>  摘 要</b></p><p>  摘要:根據(jù)等精度測(cè)量的原則,提出了一種基于FPGA的等進(jìn)度數(shù)字頻率計(jì)設(shè)計(jì)方案。介紹了等精度的多周期同步測(cè)頻原理,并對(duì)其測(cè)量精度和特點(diǎn)同傳統(tǒng)測(cè)量方法進(jìn)行了對(duì)比分析,證明了多周期同步測(cè)頻方法的優(yōu)勢(shì)

3、。</p><p>  基于周立功公司生產(chǎn)的EasyFPGA030開發(fā)板,在Libero8.5集成開發(fā)軟件環(huán)境下,采用硬件編程語(yǔ)言VerilogHDL編寫計(jì)數(shù)器模塊,除法器模塊,并且用Synplify進(jìn)行綜合,ModelSim進(jìn)行仿真并且給出它們的仿真結(jié)果,Designer進(jìn)行布局布線,利用FlashPro和并口線下載到開發(fā)板上。</p><p>  利用AT89C51單片機(jī)與共陽(yáng)極LED

4、數(shù)碼管對(duì)測(cè)量結(jié)果進(jìn)行動(dòng)態(tài)顯示。利用74LS244三態(tài)緩沖器和三極管對(duì)電流進(jìn)行放大,使得LED數(shù)碼管更亮。利用74LS14集成施密特觸發(fā)器的反相器進(jìn)行信號(hào)的整形。</p><p>  經(jīng)過仿真下載驗(yàn)證,能夠?qū)崿F(xiàn)等精度測(cè)頻功能,頻率測(cè)量范圍1Hz~1MHz,證明該設(shè)計(jì)方案切實(shí)可。</p><p>  關(guān)鍵詞:等精度;頻率測(cè)量;FPGA;VerilogHDL;Libero。</p>

5、<p><b> ?、?lt;/b></p><p><b>  Abstract</b></p><p>  Abstract: According to the principle of measurement etc precision, proposed based on FPGA digital frequency of desi

6、gn project progress. Introduces the principle of frequency measurement with etc precision and synchronous, and comparative analysis the measurement precision and features with the traditional measuring method. With more

7、than proved step frequency method with etc precision and synchronous has periodic advantage.</p><p>  Based on the ZhouLiGong company production EasyFPGA030 development board, in Libero8.5 integrated softwar

8、e development environment, using hardware VerilogHDL programming language to write counter module, divide module. With Synplify synthetically, with ModelSim simulation giving simulation results, Designer layout wiring. U

9、sing FlashPro download the design to development board.</p><p>  Use MUC and LED digital tube to show the measurement results. Use 74LS244 tristate buffers and transistor to amplify current that LED digital

10、tube brighter. Use 74LS14 Schmitt toggle integration to plastic signal.</p><p>  Through simulation and download to the development board, can achieve the function of frequency measurement etc precision, Fre

11、quency measurement range from 1Hz to 1MHz. Proof of this scheme is feasible,</p><p>  Keywords: equal precision, frequency measurement, FPGA, Libero, HDL</p><p><b>  Ⅱ</b></p>

12、<p><b>  目 錄</b></p><p><b>  摘 要I</b></p><p>  AbstractII</p><p><b>  第1章 緒論1</b></p><p>  1.1 課題背景1</p><p>

13、;  1.2 課題來源、目的和意義2</p><p>  1.3 本文結(jié)構(gòu)3</p><p>  第2章 主要研究?jī)?nèi)容4</p><p><b>  2.1 引言4</b></p><p>  2.2 數(shù)字頻率計(jì)主要技術(shù)指標(biāo)[4]4</p><p>  2.3 常用直接測(cè)頻的方法5&l

14、t;/p><p>  2.4 等精度頻率測(cè)量算法5</p><p>  2.5 等精度測(cè)量誤差分析6</p><p>  2.6 總體設(shè)計(jì)7</p><p>  2.7 本章小結(jié)7</p><p>  第3章 FPGA設(shè)計(jì)9</p><p><b>  3.1 引言9</

15、b></p><p>  3.2 計(jì)數(shù)器模塊11</p><p>  3.2.1 分頻模塊12</p><p>  3.2.2 預(yù)置閘門模塊13</p><p>  3.2.3 實(shí)際閘門模塊13</p><p>  3.2.4 計(jì)數(shù)Nx模塊14</p><p>  3.2.5 計(jì)

16、數(shù)Ns模塊14</p><p>  3.2.6 通信控制模塊15</p><p>  3.2.7 計(jì)數(shù)器各模塊連接詳圖15</p><p>  3.3 除法器模塊16</p><p>  3.3.1 除法控制器17</p><p>  3.3.2 除法運(yùn)算器19</p><p>  

17、3.3.3 通信信號(hào)轉(zhuǎn)換模塊21</p><p>  3.3.4 除法器各模塊連接詳圖21</p><p>  3.4 本章小結(jié)22</p><p>  第4章 顯示及信號(hào)整形設(shè)計(jì)24</p><p><b>  4.1 引言24</b></p><p>  4.2 單片機(jī)顯示模塊25

18、</p><p>  4.2.1 單片機(jī)顯示軟件件設(shè)計(jì)28</p><p>  4.2.2 單片機(jī)顯示硬件設(shè)計(jì)29</p><p>  4.3 信號(hào)整形模塊30</p><p>  4.4 本章小結(jié)31</p><p>  第5章 總體設(shè)計(jì)驗(yàn)證32</p><p><b> 

19、 結(jié) 論34</b></p><p><b>  致 謝36</b></p><p><b>  參考文獻(xiàn)37</b></p><p><b>  緒論</b></p><p><b>  課題背景</b></p>&l

20、t;p>  EDA(Electronic Design Automation——電子設(shè)計(jì)自動(dòng)化)代表了當(dāng)今電子設(shè)計(jì)技術(shù)的最新發(fā)展方向,通過VHDL(Very High Speed Integrated Circuit Hardware Description Language)硬件描述語(yǔ)言的設(shè)計(jì),用FPGA(Field-Programmable Gate Array——現(xiàn)場(chǎng)可編程門陣列)來實(shí)現(xiàn)小型電子設(shè)備的設(shè)計(jì),是開發(fā)儀器儀表的主

21、流。據(jù)統(tǒng)計(jì),目前發(fā)達(dá)國(guó)家在電子產(chǎn)品開發(fā)中EDA工具的利用率已達(dá)50%,而大部分的FPGA已采用HDL(Hardware Description Language——硬件描述語(yǔ)言)設(shè)計(jì)。由于VHDL已成為IEEE標(biāo)準(zhǔn),目前的EDA工具可以使ASIC系統(tǒng)的行為、功能、算法用VHDL描述直接生成FPGA器件,使設(shè)計(jì)者將精力集中于設(shè)計(jì)構(gòu)思,提高了設(shè)計(jì)效率,同時(shí)也利于設(shè)計(jì)的分解、交流和重用。</p><p>  目前最主要

22、的方法是基于單片機(jī)和FPGA或CPLD利用EDA技術(shù)設(shè)計(jì)實(shí)現(xiàn)等精度頻率測(cè)量,這使設(shè)計(jì)過程大大簡(jiǎn)化,縮短了開發(fā)周期,減小了電路系統(tǒng)的體積,同時(shí)也有利于保證頻率計(jì)較高的精度和較好的可靠性。而實(shí)現(xiàn)等精度的算法主要是,在計(jì)數(shù)法和測(cè)周期法基礎(chǔ)上發(fā)展起來的新型等精度頻率測(cè)量算法,主要原理是預(yù)置閘門信號(hào)頻率時(shí)隨著被測(cè)信號(hào)頻率的改變而改變,從而實(shí)現(xiàn)了等進(jìn)度的測(cè)量。</p><p>  目前,市場(chǎng)上的頻率計(jì)廠家可分為三類:中國(guó)大陸

23、廠家、中國(guó)臺(tái)灣廠家、歐美廠家。其中,歐美頻率計(jì)廠家所占有的市場(chǎng)份額最大。歐美頻率計(jì)廠家主要有:Pendulum Instruments和Agilent科技。</p><p>  Pendulum Instruments公司是一家瑞典公司,總部位于瑞典首都斯德哥爾摩。Pendulum公司源于Philips公司的時(shí)間、頻率部門,在時(shí)間頻率測(cè)量領(lǐng)域具有40多年的研發(fā)生產(chǎn)經(jīng)歷。Pendulum Instruments公司

24、常規(guī)頻率計(jì)型號(hào)主要有:CNT-91、CNT-90、CNT-81、CNT-85。同時(shí),Pendulum Instruments公司還推出銣鐘時(shí)基頻率計(jì)CNT-91R、CNT-85R。以及微波頻率計(jì)CNT-90XL(頻率測(cè)量范圍高達(dá)60G)。</p><p>  Agilent科技公司是一家美國(guó)公司,總部位于美國(guó)的加利福尼亞。Agilent科技公司成立于1939年,在電子測(cè)量領(lǐng)域也有著70多年的研發(fā)</p>

25、;<p><b>  1</b></p><p>  生產(chǎn)經(jīng)歷。Agilent科技公司的常規(guī)頻率計(jì)信號(hào)主要有:53181A、53131A、53132A。同時(shí),Agilent科技公司還推出微波頻率計(jì):53150A,53151A,53152A(頻率測(cè)量范圍最高可達(dá)46G)。</p><p>  課題來源、目的和意義</p><p> 

26、 隨著科學(xué)技術(shù)的發(fā)展,高精度集成電路的應(yīng)用,生產(chǎn)力得到了大幅度的發(fā)展,以大規(guī)模集成電路為主的各種設(shè)備成了當(dāng)今社會(huì)最常用的設(shè)備。頻率計(jì)在電子工程,資源勘探發(fā)揮著巨大作用,有條不紊地工作著,高效率地支配著系統(tǒng)的運(yùn)行,是工程技術(shù)人員必不可少的測(cè)量工具。頻率計(jì)最重要的功能是根據(jù)基準(zhǔn)時(shí)鐘信號(hào)實(shí)現(xiàn)對(duì)被測(cè)信號(hào)的頻率進(jìn)行檢測(cè)。由此而延伸的頻率測(cè)量是電子測(cè)量領(lǐng)域里的一項(xiàng)重要內(nèi)容[1]。</p><p>  在傳統(tǒng)的電子測(cè)量?jī)x器中,

27、示波器在進(jìn)行頻率測(cè)量時(shí)測(cè)量精度較低,誤差較大。頻譜儀可以準(zhǔn)確的測(cè)量頻率并顯示被測(cè)信號(hào)的頻譜,但測(cè)量速度較慢,無法實(shí)時(shí)快速的跟蹤捕捉到被測(cè)信號(hào)頻率的變化。正是由于頻率計(jì)能夠快速準(zhǔn)確的捕捉到被測(cè)信號(hào)頻率的變化,因此,頻率計(jì)擁有非常廣泛的應(yīng)用范圍。 </p><p>  在傳統(tǒng)的生產(chǎn)制造企業(yè)中,頻率計(jì)被廣泛的應(yīng)用在產(chǎn)線的生產(chǎn)測(cè)試中。頻率計(jì)能夠快速的捕捉到晶體振蕩器輸出頻率的變化,用戶通過使用頻率計(jì)能夠迅速的發(fā)現(xiàn)有故障的

28、晶振產(chǎn)品,確保產(chǎn)品質(zhì)量。</p><p>  在計(jì)量實(shí)驗(yàn)室中,頻率計(jì)被用來對(duì)各種電子測(cè)量設(shè)備的本地振蕩器進(jìn)行校準(zhǔn)。</p><p>  在無線通訊測(cè)試中,頻率計(jì)既可以被用來對(duì)無線通訊基站的主時(shí)鐘進(jìn)行校準(zhǔn),還可以被用來對(duì)無線電臺(tái)的跳頻信號(hào)和頻率調(diào)制信號(hào)進(jìn)行分析。</p><p>  頻率計(jì)又稱為頻率計(jì)數(shù)器,是一種專門對(duì)被測(cè)信號(hào)頻率進(jìn)行測(cè)量的電子測(cè)量?jī)x器。</p&

29、gt;<p>  其最基本的工作原理為:當(dāng)被測(cè)信號(hào)在特定時(shí)間段內(nèi)的周期個(gè)數(shù)為時(shí),則被測(cè)信號(hào)的頻率。 </p><p>  頻率計(jì)主要由四個(gè)部分構(gòu)成:時(shí)基電路、輸入電路、計(jì)數(shù)顯示電路以及控制電路。在一個(gè)測(cè)量周期過程中,被測(cè)周期信號(hào)在輸入電路中經(jīng)過放大、整形、微分操作之后形成特定周期的窄脈沖,送到主門的一個(gè)輸入端。主門的另外一個(gè)輸入端為時(shí)基電路產(chǎn)生電路產(chǎn)生的閘門脈沖。在閘門脈沖開啟主門的期間,特定周期的

30、窄脈沖才能通過主門,從而進(jìn)入計(jì)數(shù)器進(jìn)行計(jì)數(shù),計(jì)數(shù)器的顯示電路則用來顯示被測(cè)信號(hào)的頻率值,內(nèi)部控制電路則用來完成各種測(cè)量功能之間的切換并實(shí)現(xiàn)測(cè)量設(shè)置[2]。</p><p>  在工程測(cè)量中不少物理量的測(cè)量,如時(shí)間測(cè)量,速度測(cè)量,速度控制等,都涉及到頻率測(cè)量。頻率信號(hào)抗干擾性強(qiáng),易于傳輸,可以獲得較高的測(cè)量精度,所以測(cè)量頻率的方法的研究越來越受的重視。</p><p>  隨著科技發(fā)展,人們

31、對(duì)頻率測(cè)量的進(jìn)度要求越來越高,在此基礎(chǔ)上的等精度頻率計(jì)具有相當(dāng)重要的意義。而常用的的直接測(cè)頻方法在實(shí)用中有較大的局限性,</p><p><b>  2</b></p><p>  其測(cè)量精度隨著被測(cè)信號(hào)的頻率改變,測(cè)量的精度也改變,而且對(duì)被測(cè)信號(hào)的計(jì)數(shù)要產(chǎn)生個(gè)數(shù)字誤差,而等精度頻率計(jì)不但具有較高的測(cè)頻精度,不隨所測(cè)信號(hào)的變化而變化,在整個(gè)測(cè)頻區(qū)域能保持恒定的測(cè)頻精度

32、[3]。</p><p><b>  本文結(jié)構(gòu)</b></p><p><b>  本文主要內(nèi)容如下:</b></p><p>  第2章中,介紹等精度頻率測(cè)量的理論基礎(chǔ)和設(shè)計(jì)方案。</p><p>  第3章中,F(xiàn)PGA設(shè)計(jì)。EasyFPGA030開發(fā)板,Libero8.5集成開發(fā)環(huán)境介紹,頻率計(jì)

33、總體,計(jì)數(shù)器模塊,除法器模塊設(shè)計(jì)過程,并且給出它們的仿真結(jié)果。</p><p>  第4章中,顯示及信號(hào)的整形設(shè)計(jì)。介紹了AT89C51單片機(jī),LED數(shù)碼管,74LS244等相關(guān)硬件介紹。并且給出了動(dòng)態(tài)顯示的軟硬件設(shè)計(jì)方案和信號(hào)整形設(shè)計(jì)方案。</p><p>  第5章中,總體設(shè)計(jì)驗(yàn)證。通過把設(shè)計(jì)下載到開發(fā)板上,并實(shí)際用于頻率測(cè)量,從而發(fā)現(xiàn)設(shè)計(jì)的不足和錯(cuò)誤之處并加以改正。</p>

34、;<p><b>  3</b></p><p><b>  主要研究?jī)?nèi)容</b></p><p><b>  引言</b></p><p>  本章主要介紹數(shù)字頻率計(jì)的相關(guān)計(jì)數(shù)指標(biāo),傳統(tǒng)的頻率測(cè)量方法和等精度測(cè)量方法,并且對(duì)等精度測(cè)量方法進(jìn)行誤差分析,從而與傳統(tǒng)頻率測(cè)量方法對(duì)比,得到等

35、精度測(cè)量方法的優(yōu)勢(shì)所在。并且從總體上介紹了設(shè)計(jì)方案的流程。</p><p>  數(shù)字頻率計(jì)主要技術(shù)指標(biāo)[4]</p><p><b> ?。?)頻率準(zhǔn)確度</b></p><p>  一般用相對(duì)誤差來表示,即</p><p><b>  (2-1)</b></p><p> 

36、 式中,為量化誤差(即個(gè)字誤差),是數(shù)字儀器所特有的誤差,當(dāng)閘門時(shí)間選定后,越低,量化誤差越大:為閘門時(shí)間相對(duì)誤差,主要有時(shí)基電路標(biāo)準(zhǔn)頻率的準(zhǔn)確度決定,。</p><p><b>  (2)頻率測(cè)量范圍</b></p><p>  在輸入電壓符合規(guī)定要求值時(shí),能夠正常進(jìn)行測(cè)量的頻率區(qū)間稱為頻率測(cè)量范圍,頻率測(cè)量范圍主要有放大整形電路的頻率響應(yīng)決定的。</p>

37、;<p><b> ?。?)數(shù)字顯示位數(shù)</b></p><p>  頻率計(jì)的數(shù)字顯示位數(shù)決定了頻率計(jì)的分辨率。位數(shù)越多,分辨率越高。</p><p><b>  (4)測(cè)量時(shí)間</b></p><p>  頻率計(jì)完成一次測(cè)量所需要的時(shí)間,包括準(zhǔn)備、計(jì)數(shù)、運(yùn)算、鎖存和復(fù)位時(shí)間。</p><

38、p><b>  4</b></p><p><b>  常用直接測(cè)頻的方法</b></p><p> ?。?)計(jì)數(shù)法:這是指在一定的時(shí)間間隔內(nèi),對(duì)輸人的周期信號(hào)脈沖計(jì)數(shù)為:,則信號(hào)的頻率為。這種方法適合于高頻測(cè)量,信號(hào)的頻率越高,則相對(duì)誤差越小。</p><p> ?。?)測(cè)周法:這種方法是計(jì)量在被測(cè)信號(hào)一個(gè)周期內(nèi)頻

39、率為的標(biāo)準(zhǔn)信號(hào)的脈沖數(shù)來測(cè)量頻率,。被測(cè)信號(hào)的周期越長(zhǎng)(頻率越低),則測(cè)得的標(biāo)準(zhǔn)信號(hào)的脈沖數(shù)越大,則相對(duì)誤差越小。</p><p>  但這兩種方法分別適合高頻和低頻,在整個(gè)測(cè)量域內(nèi)測(cè)量精度不同,因此要求等精度的話,要求在此基礎(chǔ)上進(jìn)行改進(jìn)[5]。</p><p><b>  等精度頻率測(cè)量算法</b></p><p>  傳統(tǒng)的測(cè)頻方法有直接測(cè)

40、頻法和測(cè)周法,在一定的閘門時(shí)間內(nèi)計(jì)數(shù),門控信號(hào)和被測(cè)信號(hào)不同步,計(jì)數(shù)值會(huì)產(chǎn)生一個(gè)脈沖的誤差。等精度測(cè)頻法采用門控信號(hào)和被測(cè)信號(hào)同步,消除對(duì)被測(cè)信號(hào)計(jì)數(shù)產(chǎn)生的一個(gè)脈沖的誤差。等精度頻率測(cè)量方法消除了量化誤差,可以在整個(gè)測(cè)試頻段內(nèi)保持高精度不變,其精度不會(huì)因被測(cè)信號(hào)頻率的高低而發(fā)生變化。利用FPGA強(qiáng)大的邏輯處理功能使被測(cè)信號(hào)和標(biāo)準(zhǔn)信號(hào)在閘門時(shí)間內(nèi)同步測(cè)量,為了提高精度,將電子計(jì)數(shù)功能轉(zhuǎn)為測(cè)周期,采用多周期同步測(cè)量技術(shù),實(shí)現(xiàn)等精度測(cè)量。&l

41、t;/p><p>  在測(cè)量過程中分別對(duì)被測(cè)信號(hào)和標(biāo)準(zhǔn)信號(hào)同時(shí)計(jì)數(shù)。測(cè)量的具體方法是:首先給個(gè)閘門開啟信號(hào)(預(yù)置閘門信號(hào)),此時(shí)計(jì)數(shù)器并不開始計(jì)數(shù),而是等被測(cè)信號(hào)的上升沿到來時(shí)計(jì)數(shù)器才開始計(jì)數(shù),然后預(yù)置閘門信號(hào)關(guān)閉信號(hào)(下降沿),計(jì)數(shù)器并不立即停止計(jì)數(shù),而是等到被測(cè)信號(hào)上升沿來到時(shí)才停止計(jì)數(shù),完成一次測(cè)量過程,過程如圖2-1所示。</p><p><b>  5</b>&

42、lt;/p><p>  預(yù)置閘門信號(hào)和實(shí)際閘門信號(hào)不相等,但兩者差值不會(huì)相差被測(cè)信號(hào)的一個(gè)周期。但從圖2-1中可得實(shí)際閘門控制信號(hào)與被測(cè)信號(hào)同步,因此消除了的脈沖誤差,并且此測(cè)頻方法不僅對(duì)被測(cè)信號(hào)進(jìn)行計(jì)數(shù),而且去標(biāo)準(zhǔn)信號(hào)也計(jì)數(shù),所以稱為多周期同步測(cè)頻法[6]。</p><p><b>  等精度測(cè)量誤差分析</b></p><p>  計(jì)數(shù)器對(duì)標(biāo)準(zhǔn)

43、信號(hào)的計(jì)數(shù)是,被測(cè)信號(hào)的計(jì)數(shù)是,標(biāo)準(zhǔn)信號(hào)的頻率為,被測(cè)信號(hào)的頻率</p><p><b>  (2-2)</b></p><p>  由式(2-2)可知,若忽略標(biāo)頻的誤差,則等精度測(cè)頻可能產(chǎn)生的相對(duì)誤差為</p><p><b> ?。?-3)</b></p><p>  其中為被測(cè)信號(hào)頻率的準(zhǔn)確值

44、。</p><p>  在測(cè)量中,由于計(jì)數(shù)的起停時(shí)間都是由該信號(hào)的上升測(cè)觸發(fā)的,無字誤差。而對(duì)的計(jì)數(shù)最多相差一個(gè)數(shù)的誤差,即,其測(cè)量頻率為</p><p><b>  圖2-1 測(cè)量原理</b></p><p><b>  6</b></p><p><b>  (2-4)</b&g

45、t;</p><p>  將式(2-2)和(2-4)代入式(2-3),并整理得</p><p><b>  (2-5)</b></p><p>  從公式(2-5)可以看出等精度算法產(chǎn)生的誤差和被測(cè)信號(hào)的頻率無關(guān),僅與閘門時(shí)間和標(biāo)準(zhǔn)信號(hào)頻率有關(guān),從而實(shí)現(xiàn)整個(gè)頻率段的等精度測(cè)量[7]。</p><p><b> 

46、 總體設(shè)計(jì)</b></p><p>  首先對(duì)EasyFPGA030提供的48MHz的晶振頻率進(jìn)行分頻,利用分頻所得的頻率通過計(jì)數(shù)的方法產(chǎn)生一個(gè)預(yù)置閘門信號(hào),再利用預(yù)置閘門信號(hào)和被測(cè)信號(hào)產(chǎn)出一個(gè)實(shí)際閘門信號(hào),預(yù)置閘門信號(hào)和實(shí)際閘門信號(hào)分別控制對(duì)被測(cè)信號(hào)和標(biāo)準(zhǔn)信號(hào)計(jì)數(shù)。利用VerilogHDL語(yǔ)言編寫一個(gè)除法器程序,用FPGA做除法運(yùn)算,所得結(jié)果送單片機(jī)進(jìn)行數(shù)據(jù)轉(zhuǎn)換并用LED現(xiàn)實(shí),設(shè)計(jì)主體流程圖如圖2-

47、2所示。</p><p><b>  7</b></p><p>  圖2-2 設(shè)計(jì)總體框圖</p><p><b>  本章小結(jié)</b></p><p>  通過以上分析,可以得到多周期同步測(cè)頻法,不僅避免了傳統(tǒng)測(cè)頻方法在計(jì)數(shù)過程中產(chǎn)生的±1的誤差,而且實(shí)現(xiàn)了在整個(gè)測(cè)量頻域內(nèi)的等精度。由

48、于多周期同步測(cè)頻方法具有如是優(yōu)點(diǎn),所以確定為最終的測(cè)頻的算法。通過設(shè)計(jì)主體流程圖可以清晰地知道此多周期同步測(cè)頻法在FPGA上實(shí)現(xiàn)的過程。</p><p><b>  8</b></p><p><b>  FPGA設(shè)計(jì)</b></p><p><b>  引言</b></p><p

49、>  本章主要介紹FPGA部分的主體設(shè)計(jì)和相關(guān)程序。FPGA部分分為計(jì)數(shù)部分和除法器部分。計(jì)數(shù)器是對(duì)被測(cè)信號(hào)和標(biāo)準(zhǔn)信號(hào)進(jìn)行計(jì)數(shù),計(jì)數(shù)完成之后發(fā)出信號(hào)通知除法器模塊進(jìn)行讀取計(jì)數(shù)值,并且除法器把兩個(gè)計(jì)數(shù)值進(jìn)行除法運(yùn)算。</p><p>  EasyFPGA030主芯片采用Actel的A3P030,封裝為VG100。板上的外設(shè)包括四個(gè)按鍵、四個(gè)LED、48MHz的晶振等,同時(shí)板上提供了FPGA下載所需要的下載器,

50、直接與PC機(jī)并口相連,并通過上位機(jī)軟件Libero即可下載。將可用的I/O全部引出,對(duì)于板上沒有的外設(shè)可通過這些I/O進(jìn)行擴(kuò)展,鍛煉使用者的設(shè)計(jì)創(chuàng)新能力,并將下載口引出可以通過USB的FlashPro3來下載,或通過引出的下載口去下載其他器件。EasyFPGA030開發(fā)板如圖3-1所示[8]。</p><p>  圖3-1 EasyFPGA030開發(fā)板</p><p><b> 

51、 功能特點(diǎn):</b></p><p> ?。?)I/O口全部引出,方便進(jìn)行二次開發(fā)。支持最大81個(gè)用戶I/O,熱插拔和冷備份。</p><p> ?。?)可以通過芯片內(nèi)部的FlashROM進(jìn)行數(shù)據(jù)存儲(chǔ),提供1kbit的片內(nèi)可編程非易失性FlashROM信息存儲(chǔ);</p><p> ?。?)板上集成了高性能的并口下載器,通過連接并口電纜即可下載;</

52、p><p> ?。?)基于非易失性Flash技術(shù),單芯片解決方案,上電即行;</p><p><b>  9</b></p><p> ?。?)高度的安全性,保護(hù)知識(shí)產(chǎn)權(quán),高度的可靠性,固件錯(cuò)誤免疫;</p><p> ?。?)靈活高效的全局時(shí)鐘網(wǎng)絡(luò),提高設(shè)計(jì)性能,開發(fā)板上提供48MHz的晶振頻率;</p>&

53、lt;p> ?。?)在封裝上,A3P030有132-QFN和100-VQFP兩種,此工程用的是開發(fā)板是100-VQFP封裝型號(hào);</p><p>  LiberoIDE是Actel FPGA的集成開發(fā)環(huán)境,提供完整的FPGA設(shè)計(jì)工具,支持原理圖,HDL輸入,并以用戶GUI的方式顯示FPGA的設(shè)計(jì)過程。LiberoIDE不僅帶有Actel自身的高性能的布局布線工具,還集合了業(yè)界極具影響力的仿真、綜合等工具。簡(jiǎn)

54、化設(shè)計(jì)過程,方便用戶使用,能夠使設(shè)計(jì)得到最佳優(yōu)化,大大提高系統(tǒng)的性能。集成軟件如下</p><p>  ModelSim:業(yè)界優(yōu)秀的HDL語(yǔ)言仿真器,提供友好的調(diào)試環(huán)境,支持VHDL和Verilog混合仿真,采用直接優(yōu)化的編譯技術(shù),Tcl/TK技術(shù)和單一內(nèi)核仿真技術(shù),編譯速度快,編譯的代碼與平臺(tái)無關(guān),便于保護(hù)IP核,是FPGA/ASIC設(shè)計(jì)的RTL級(jí)核門級(jí)電路仿真的首選工具。</p><p&g

55、t;  Synplify:Synplicity公司提供的專門針對(duì)FPGA/CPLD的邏輯綜合工具,采用先進(jìn)的Timing Driven(時(shí)序驅(qū)動(dòng))核B.E.S.T(行為級(jí)綜合提取技術(shù))算法引擎,使用簡(jiǎn)便、性能優(yōu)良、軟件更新和技術(shù)創(chuàng)新速度快、,綜合面積較小、綜合速度快。</p><p>  Designer:Actel公司提供的針對(duì)FPGA的高效布局布線工具,用戶界面簡(jiǎn)單明了,可以在短時(shí)間內(nèi)完成布局布線,并生成反標(biāo)

56、注文件和最終的編程下載文件,可以用圖形的方式管理約束管腳、瀏覽布局布線的結(jié)果,提供時(shí)序約束和功耗分析的功能。</p><p>  ViewDraw:圖形化設(shè)計(jì)輸入工具,使用麻煩 ,不易操作管理,容易出錯(cuò),不推薦使用。</p><p>  SmartDesign:在Libero8.0以上版本中集成,圖形化輸入方式,方便連接和直觀的校驗(yàn)設(shè)計(jì)的正確性,可以創(chuàng)建和管理設(shè)計(jì)的內(nèi)部功能模塊,可以直接導(dǎo)

57、入IP cores和HDL文件生成的模塊,功能較ViewDraw更強(qiáng)大,操作性更好。</p><p>  WaveFormer:專用波形激勵(lì)生成工具,手動(dòng)繪圖方式生成用戶所需要的波形激勵(lì)文件,免去編寫HDL激勵(lì)文件的繁瑣,不能描述復(fù)雜的測(cè)試激勵(lì)向量,非常適合初學(xué)者的使用。</p><p><b>  10</b></p><p>  Flash

58、Pro:Actel公司提供的編程下載軟件,通過JTAG接口對(duì)器件進(jìn)行操作,可執(zhí)行的操作包括:下載文件、設(shè)置/擦除密碼、校驗(yàn)、讀取配置信息等,支持菊花鏈JTAG編程,支持Pdb/Stp文件下載。</p><p>  CoreConsole:用于配置處理器軟核、總線和外圍設(shè)備,準(zhǔn)許設(shè)計(jì)者用圖形化的方式快速搭建系統(tǒng)級(jí)的平臺(tái),如8051、ARM7、CortexM1平臺(tái),用戶任意添加處理器的外設(shè)。</p>&

59、lt;p>  SoftConsole:免費(fèi)的處理器軟件開發(fā)環(huán)境,帶有C、C++編譯器,支持Actel的CoreMP7、CortexM1的軟件程序的編譯和調(diào)試功能,使用USB的下載器FlashPro3作為調(diào)試的硬件工具,為用戶的開發(fā)和調(diào)試節(jié)省成本。</p><p>  Libero8.5集成開發(fā)軟件設(shè)計(jì)流程如圖3-2所示。</p><p>  圖3-2 Libero設(shè)計(jì)流程圖</

60、p><p><b>  計(jì)數(shù)器模塊</b></p><p>  計(jì)數(shù)器模塊主要是利用FPGA提供的始終脈沖,產(chǎn)生一個(gè)控制閘門信號(hào),利用控制閘門信號(hào)與被測(cè)信號(hào)共同產(chǎn)生一個(gè)實(shí)際閘門信號(hào),在利用這個(gè)實(shí)際閘門信號(hào)控制分別對(duì)被測(cè)信號(hào)和標(biāo)準(zhǔn)信號(hào)計(jì)數(shù),計(jì)數(shù)器總體設(shè)計(jì)如圖3-3所示。</p><p><b>  圖3-3 計(jì)數(shù)器</b><

61、;/p><p><b>  11</b></p><p>  rest:復(fù)位信號(hào)。負(fù)脈沖有效;</p><p>  start:開始信號(hào),高電平有效。當(dāng)置高時(shí),計(jì)數(shù)器開始計(jì)數(shù);</p><p>  clkx:被測(cè)頻率信號(hào);</p><p>  clk:時(shí)鐘信號(hào),由EasyFPGA030開發(fā)板提供的4

62、8MHz的時(shí)鐘控制信號(hào);</p><p>  ctl:量程控制選擇,低電平為1Hz-1KHz,高電平為1KHz-1MHz;</p><p>  ok:通信控制信號(hào),在計(jì)數(shù)器完成計(jì)數(shù)后置高電平,通知除法器取數(shù),并進(jìn)行除法運(yùn)算;</p><p>  Ns,Nx:分別是對(duì)標(biāo)準(zhǔn)信號(hào)和被測(cè)信號(hào)計(jì)數(shù),位寬帶為11為。</p><p>  計(jì)數(shù)器模塊仿真結(jié)

63、果如圖3-4所示。clkx被測(cè)信號(hào)設(shè)置的是1MHz,標(biāo)準(zhǔn)信號(hào)clks由48MHz分頻得到的是1KHz,計(jì)數(shù)器計(jì)得Nx=2000,Ns=2。計(jì)數(shù)完成時(shí)ok信號(hào)被置高電平。結(jié)果正確。</p><p>  圖3-4 計(jì)數(shù)器模塊仿真圖</p><p><b>  分頻模塊</b></p><p>  分頻模塊主要是對(duì)FGPA產(chǎn)生的48MHz的時(shí)鐘晶振頻

64、率進(jìn)行分頻,獲得所需的控制信號(hào)頻率和標(biāo)準(zhǔn)信號(hào)頻率,其模塊設(shè)計(jì)如圖3-5所示。</p><p><b>  圖3-5 分頻模塊</b></p><p>  rest:復(fù)位控制信號(hào),負(fù)脈沖有效;</p><p>  clk:時(shí)鐘信號(hào),由EasyFPGA030開發(fā)板提供的48MHz的時(shí)鐘控制信號(hào);</p><p><b&

65、gt;  12</b></p><p>  ctl:分頻控制信號(hào),控制分頻的的大小。低電平時(shí)分頻為1Hz,高電平時(shí)分頻為1KHz;</p><p>  clk_s:為分得頻率的輸出端口;</p><p><b>  預(yù)置閘門模塊</b></p><p>  預(yù)置閘門模塊是用分頻模塊分得的頻率作為控制時(shí)鐘信號(hào),

66、利用計(jì)數(shù)的方法產(chǎn)生一個(gè)預(yù)置閘門控制信號(hào),其模塊設(shè)計(jì)如圖3-6所示。</p><p>  圖3-7 預(yù)置閘門信號(hào)生成模塊</p><p>  rest:復(fù)位信號(hào),負(fù)脈沖有效;</p><p>  clk:時(shí)鐘信號(hào)。與分頻模塊端口的clk_s相連,對(duì)clk_s信號(hào)進(jìn)行計(jì)數(shù),產(chǎn)生一個(gè)一定寬度的預(yù)置閘門信號(hào);</p><p>  start:開始信號(hào)

67、,高電平有效,置高時(shí),開始產(chǎn)生預(yù)置閘門脈沖信號(hào);</p><p>  clkp:產(chǎn)生閘門信號(hào)的輸出端;</p><p><b>  實(shí)際閘門模塊</b></p><p>  實(shí)際閘門模塊是利用預(yù)置閘門模塊產(chǎn)生的預(yù)置閘門信號(hào)與從外部輸入的被測(cè)信號(hào)共同控制產(chǎn)生一個(gè)實(shí)際閘門控制信號(hào),這個(gè)控制信號(hào)與被測(cè)信號(hào)時(shí)完全同步的,其模塊設(shè)計(jì)如圖3-8所示。<

68、;/p><p>  圖3-8 實(shí)際閘門信號(hào)生成模塊</p><p>  rest:復(fù)位信號(hào),負(fù)脈沖有效;</p><p>  clkp:預(yù)置閘門信號(hào)輸入端,與預(yù)置閘門信號(hào)模塊的clkp端口相連;</p><p>  clkx:被測(cè)信號(hào)輸入端;</p><p><b>  13</b></p>

69、;<p>  clkr:實(shí)際閘門信號(hào)輸出端,利用預(yù)置閘門信號(hào)與被測(cè)信號(hào)產(chǎn)生一個(gè)</p><p><b>  實(shí)際閘門信號(hào);</b></p><p><b>  計(jì)數(shù)Nx模塊</b></p><p>  計(jì)數(shù)Nx模塊是利用實(shí)際閘門模塊產(chǎn)生的實(shí)際閘門控制信號(hào)來控制對(duì)被測(cè)量信號(hào)Nx進(jìn)行計(jì)數(shù),其模塊設(shè)計(jì)如圖3-9所示

70、。</p><p>  圖3-9 被測(cè)信號(hào)計(jì)數(shù)器</p><p>  rest:復(fù)位信號(hào),負(fù)脈沖有效;</p><p>  clkx:被測(cè)信號(hào)輸入端;</p><p>  clkp:預(yù)置閘門信號(hào)輸入端,與預(yù)置閘門信號(hào)模塊的clkp端口相連;</p><p>  Nx:計(jì)數(shù)器輸出端,在預(yù)置閘門信號(hào)的高電平寬度內(nèi),對(duì)被測(cè)信

71、號(hào)的上升沿計(jì)數(shù),輸出一個(gè)11位2進(jìn)制數(shù);</p><p><b>  計(jì)數(shù)Ns模塊</b></p><p>  計(jì)數(shù)Ns模塊是利用實(shí)際閘門模塊產(chǎn)生的實(shí)際閘門控制信號(hào)來控制對(duì)標(biāo)準(zhǔn)信號(hào)Ns進(jìn)行計(jì)數(shù),其模塊設(shè)計(jì)如圖3-10所示。</p><p>  圖3-10 標(biāo)準(zhǔn)信號(hào)計(jì)數(shù)器</p><p>  rest:復(fù)位信號(hào),負(fù)脈沖有效

72、;</p><p>  clks:標(biāo)準(zhǔn)信號(hào)輸入端。與分頻模塊的輸出端clk_s相連,因此標(biāo)準(zhǔn)信號(hào)的頻率分別是1Hz和1KHz,也就是兩個(gè)量程范圍,測(cè)量的量程范圍是1Hz-1KHz,1KHz-1MHz;</p><p><b>  14</b></p><p>  clkr:實(shí)際閘門信號(hào)。</p><p>  Nx:計(jì)數(shù)器

73、輸出端,在實(shí)際閘門信號(hào)的高電平寬度內(nèi),對(duì)標(biāo)準(zhǔn)信號(hào)的上升沿計(jì)數(shù),輸出一個(gè)11位2進(jìn)制數(shù);</p><p><b>  通信控制模塊</b></p><p>  通信控制模塊是在計(jì)數(shù)器對(duì)被測(cè)信號(hào)和標(biāo)準(zhǔn)信號(hào)計(jì)數(shù)完之后產(chǎn)生一個(gè)高電平的ok信號(hào),這個(gè)信號(hào)通知后面的除法器模塊計(jì)數(shù)完成,可以取測(cè)量數(shù)據(jù)進(jìn)行運(yùn)算處理了,其模塊設(shè)計(jì)如圖3-11所示。</p><p&g

74、t;  圖3-11 通信控制模塊</p><p>  rest:復(fù)位信號(hào),負(fù)脈沖有效;</p><p>  clkr:實(shí)際閘門信號(hào)輸入端。以clkr的下降沿作為計(jì)數(shù)完成時(shí)刻;</p><p>  start:開始信號(hào),高電平有效,與預(yù)置閘門模塊的start是同一信號(hào);</p><p>  ok:控制信號(hào)輸出端口,在計(jì)數(shù)器完成計(jì)數(shù)是ok產(chǎn)生一個(gè)

75、高電平,通知后面的除法器模塊開始對(duì)計(jì)數(shù)器模塊所計(jì)得的數(shù)取值;</p><p>  計(jì)數(shù)器各模塊連接詳圖</p><p>  把計(jì)數(shù)器內(nèi)部各個(gè)模塊:分頻模塊,預(yù)置閘門模塊,實(shí)際閘門模塊,計(jì)數(shù)器Nx模塊,計(jì)數(shù)器Ns模塊,通信控制模塊之間的端口用圖形化設(shè)計(jì)的方式連接起來,連接時(shí)注意輸出端口必須與輸入端口連接,否側(cè)將會(huì)出錯(cuò),把外部輸入端口設(shè)置成頂層端口,其連線如圖3-12所示。</p>

76、<p><b>  15</b></p><p>  圖3-12 計(jì)數(shù)器內(nèi)部模塊連接細(xì)圖</p><p><b>  除法器模塊 </b></p><p>  除法器是把計(jì)數(shù)被測(cè)信號(hào)所計(jì)得的Nx作為被除數(shù)和標(biāo)準(zhǔn)信號(hào)所計(jì)得的Ns作為除數(shù)相除,除得一個(gè)商和余數(shù),其模塊設(shè)計(jì)如圖3-13所示。</p>

77、<p><b>  圖3-13 除法器</b></p><p>  rest:復(fù)位信號(hào),負(fù)脈沖有效;</p><p>  clk:時(shí)鐘控制信號(hào),輸入的是開發(fā)板上的48MHz的時(shí)鐘頻率;</p><p>  start:開始信號(hào),高電平有效。與計(jì)數(shù)器模塊的ok信號(hào)端相連,當(dāng)start被置高時(shí),除法器開始計(jì)數(shù);</p>&l

78、t;p>  A,B:分別為被除數(shù)和除數(shù),分別與計(jì)數(shù)器的Nx和Ns相連;</p><p>  err:除法出錯(cuò)信號(hào)端,當(dāng)被除數(shù)為零時(shí),err為高電平;</p><p>  ready:通信信號(hào)端,用于與單片機(jī)通信。當(dāng)做完除法時(shí),ready給出一個(gè)負(fù)脈沖信號(hào);</p><p>  D,R:分別為除法器除得的商和余數(shù);</p><p><

79、;b>  16</b></p><p>  除法器仿真結(jié)果如圖3-15所示。被除數(shù)A=00100000000=256,B=10000=16,求得D=10000=16,R=0,ready有個(gè)負(fù)脈沖的跳變(因?yàn)榉抡骘@示區(qū)域太小,后面的上升沿沒有顯示出來)。</p><p>  圖3-15 除法器模塊仿真結(jié)果</p><p><b>  除法控

80、制器</b></p><p>  除法控制器是接受控制信號(hào)通知后面的除法運(yùn)算模塊進(jìn)行取數(shù)并控制除法運(yùn)算模塊進(jìn)行運(yùn)算,當(dāng)除數(shù)為零時(shí)產(chǎn)生一個(gè)err信號(hào),表示運(yùn)算出錯(cuò),其模塊設(shè)計(jì)如圖3-14所示。</p><p>  圖3-14 除法控制器</p><p>  rest:復(fù)位信號(hào),負(fù)脈沖有效;</p><p>  clk:時(shí)鐘控制信號(hào),

81、輸入的是開發(fā)板上48MHz的時(shí)鐘頻率;</p><p>  start:開始信號(hào),高電平有效。與計(jì)數(shù)器模塊的ok信號(hào)端相連;</p><p>  load:運(yùn)算器開始數(shù)據(jù)裝載控制信號(hào);</p><p>  run:運(yùn)算器開始運(yùn)算控制信號(hào);</p><p>  err:數(shù)據(jù)出錯(cuò)信號(hào)端,但被除數(shù)為零時(shí),err被置高;</p><

82、;p>  除法器狀態(tài)機(jī)源程序[9]: </p><p>  module div_ctl(clk, rest, start, invalid, load, run, err);</p><p>  parameter STATE_INIT = 3'b001;</p><p>  parameter STATE_RUN = 3'b010;<

83、/p><p>  parameter STATE_FINISH = 3'b100;</p><p><b>  17</b></p><p>  input clk, rest, start, invalid;</p><p>  output load, run, err;</p><p>

84、  reg [2:0] current_state, next_state;</p><p>  reg [3:0] count;</p><p>  reg load, run, err;</p><p>  always@(current_state or invalid or count )</p><p><b>  beg

85、in</b></p><p>  case(current_state)</p><p>  STATE_INIT:</p><p><b>  begin</b></p><p><b>  err<=0;</b></p><p><b>  c

86、ount<=0;</b></p><p><b>  load<=1;</b></p><p><b>  run<=0;</b></p><p>  if(start==0)</p><p>  next_state<=STATE_INIT;</p>

87、<p><b>  else</b></p><p>  next_state<=STATE_RUN;</p><p><b>  end</b></p><p>  STATE_RUN:</p><p><b>  begin</b></p>

88、<p><b>  load<=0;</b></p><p><b>  run<=1;</b></p><p>  count<=count+1'b1;</p><p>  if(invalid)//1</p><p><b>  begin<

89、/b></p><p><b>  err<=1;</b></p><p>  next_state<=STATE_FINISH;</p><p><b>  end</b></p><p>  else if(count==3000)</p><p>  

90、next_state<=STATE_FINISH;</p><p><b>  end</b></p><p>  STATE_FINISH:</p><p><b>  18</b></p><p><b>  begin</b></p><p>

91、;<b>  load<=0;</b></p><p><b>  run<=0;</b></p><p><b>  end </b></p><p>  default: next_state <=3'b000;</p><p><b>

92、  endcase</b></p><p><b>  end</b></p><p>  always@(posedge clk or negedge rest)</p><p><b>  begin</b></p><p>  if(!rest) current_state<

93、=STATE_INIT;</p><p>  else current_state<=next_state;</p><p><b>  end</b></p><p><b>  endmodule</b></p><p>  除法器狀態(tài)機(jī)分為三個(gè)狀態(tài):一、STATE_INIT為初

94、始化狀態(tài);</p><p>  二、STATE_RUN開始運(yùn)算狀態(tài);三、STATE_FINISH運(yùn)算完成狀態(tài);</p><p><b>  除法運(yùn)算器</b></p><p>  當(dāng)除法運(yùn)算器接到除法控制器發(fā)出裝載信號(hào),除法運(yùn)算器便開始取數(shù),當(dāng)接到運(yùn)算信號(hào),除法運(yùn)算器便開始運(yùn)算,運(yùn)算完成后發(fā)出一個(gè)ok信通知單片機(jī)運(yùn)算完成可以開始顯示,其設(shè)計(jì)模塊

95、如圖3-16所示。</p><p>  圖3-16 除法器數(shù)據(jù)通路</p><p>  rest:復(fù)位信號(hào),負(fù)脈沖有效;</p><p>  clk:時(shí)鐘控制信號(hào),輸入的是開發(fā)板上48MHz的時(shí)鐘頻率;</p><p>  load:開始數(shù)據(jù)裝載信號(hào)輸入端;</p><p>  run:開始數(shù)據(jù)運(yùn)算輸入端;</p

96、><p><b>  19</b></p><p>  A,B:分別為被除數(shù)和除數(shù);</p><p>  invalid:當(dāng)被除數(shù)為零時(shí),此端口輸出高電平。與狀態(tài)機(jī)的invalid端口連接;</p><p>  ok:當(dāng)完成運(yùn)算時(shí),此端口輸出高電平;</p><p>  D,R:分別為求得的商和余數(shù);

97、</p><p>  除法器數(shù)據(jù)通路源程序[10]:</p><p>  module div_datapath(clk, rest, A, B, load, run, invalid, D, R,ok);</p><p>  parameter n=11;</p><p>  input clk, rest;</p><

98、p>  input [n-1:0] A, B;</p><p>  input load, run;</p><p>  output invalid,ok;</p><p>  output [n-1:0] D, R;</p><p><b>  reg ok;</b></p><p> 

99、 reg [n-1:0] BO, D, R;</p><p>  wire invalid;</p><p>  wire [n-1:0] minus, carry;</p><p>  assign invalid=(BO==0);</p><p>  assign {carry, minus}={1'b1, R}-{1'b

100、0, BO};</p><p>  always@(posedge clk or negedge rest)</p><p><b>  begin</b></p><p><b>  if(!rest)</b></p><p><b>  begin</b></p>

101、;<p><b>  D<=0;</b></p><p><b>  R<=0;</b></p><p><b>  ok<=0;</b></p><p><b>  end</b></p><p>  else if(lo

102、ad)</p><p><b>  begin</b></p><p><b>  D<=0;</b></p><p><b>  R<=A;</b></p><p><b>  BO<=B;</b></p><p&g

103、t;<b>  end</b></p><p><b>  20</b></p><p>  else if(run&&carry)</p><p><b>  begin</b></p><p><b>  R<=minus;</b>

104、;</p><p>  D<=D+1'b1;</p><p><b>  end</b></p><p>  else ok<=1;</p><p><b>  end</b></p><p><b>  endmodule</b>&

105、lt;/p><p>  此除法器利用的是最簡(jiǎn)單的除法算法,是利用減法來做除法。被除數(shù)減去除數(shù)得到數(shù)R,在把數(shù)R與除數(shù)比較,若R大于除數(shù),則把數(shù)D做加一運(yùn)算,再繼續(xù)用數(shù)R減去除數(shù),這樣一直運(yùn)算下去,直到數(shù)R小于除數(shù),所得的D便是商,R則是余數(shù)。</p><p><b>  通信信號(hào)轉(zhuǎn)換模塊</b></p><p>  通信信號(hào)轉(zhuǎn)換模塊主要是除法運(yùn)算器

106、產(chǎn)生的ok電平控制信號(hào)轉(zhuǎn)換為一個(gè)負(fù)脈沖的控制信號(hào),因?yàn)閱纹瑱C(jī)的外部中斷控制可以是低電平中斷,也可以是負(fù)脈沖中斷,但低電平中斷必須在外部加強(qiáng)制關(guān)中斷的電路,因此負(fù)脈沖控制在電路設(shè)計(jì)上更簡(jiǎn)便,其模塊設(shè)計(jì)如圖3-17所示。</p><p>  圖3-17 通信信號(hào)轉(zhuǎn)換模塊</p><p>  除法器各模塊連接詳圖</p><p>  把除法控制器模塊,除法運(yùn)算器模塊,控制

107、信號(hào)轉(zhuǎn)換模塊之間的端口通過圖形化設(shè)計(jì)的方式進(jìn)行連線,其連線如圖3-18所示。</p><p><b>  21</b></p><p>  圖3-18 除法器內(nèi)部模塊連接細(xì)圖</p><p><b>  本章小結(jié) </b></p><p>  本章主要介紹了FPGA的軟件,硬件結(jié)構(gòu),頻率計(jì)設(shè)計(jì)過程和

108、各個(gè)模塊的詳細(xì)設(shè)計(jì)方法。在把各個(gè)模塊仿真通過后,并下載到開發(fā)板上,利用開發(fā)板所帶的LED燈進(jìn)行了初步的測(cè)試,得到正確的結(jié)果,證明這個(gè)設(shè)計(jì)合理。計(jì)數(shù)器模塊與除法器模塊相連接如圖3-19所示。</p><p>  圖3-19 整體設(shè)計(jì)連線</p><p>  FPGA部分整體設(shè)計(jì)仿真結(jié)果如圖3-19所示。從仿真波形上可以清楚地看到,被測(cè)信號(hào)在激勵(lì)文件中設(shè)置為fx=100KHz,ctl置高對(duì)48

109、MHz頻率分頻得到標(biāo)準(zhǔn)頻率clks=1KHz,結(jié)果為商D=00001100100(二進(jìn)制)=100(十進(jìn)制),余數(shù)R=0。ready信號(hào)有個(gè)負(fù)脈沖的跳變。結(jié)果完全正確。</p><p><b>  22</b></p><p>  圖3-19 整體仿真</p><p><b>  23</b></p><

110、;p><b>  顯示及信號(hào)整形設(shè)計(jì)</b></p><p><b>  引言</b></p><p>  本章主要介紹單片機(jī)與FPGA進(jìn)行通信,并且利用單片機(jī)對(duì)FPGA所測(cè)得頻率結(jié)果進(jìn)行顯示,并且介紹關(guān)于信號(hào)整形,以實(shí)現(xiàn)任意波形的頻率測(cè)量。</p><p>  所用的器件,Ateml公司的51單片機(jī),74LS244

111、,74LS14,4位共陽(yáng)極數(shù)碼管,電阻,電容,導(dǎo)線若干,12MHz晶振一個(gè)。</p><p>  AT89C51:P1.0-P1.7,P3.0,P3.1,P3.2作為外部數(shù)據(jù)輸入端口,P3.3作為外部中斷輸入端口。P0組端口作為L(zhǎng)ED的段選位,P2.7,P2.6,P2.5,P2.4作為L(zhǎng)ED的位選信號(hào)。</p><p>  74LS244:利用其緩沖功能對(duì)單片機(jī)輸出的段選信號(hào)電流進(jìn)行放大,

112、使數(shù)碼管顯示更亮。</p><p>  三極管:對(duì)單片機(jī)輸出的位選信號(hào)電流進(jìn)行放大。</p><p>  74LS14:利用其集成的施密特除法器進(jìn)行波的整形。</p><p>  最終所焊接的電路板如圖4-1所示:</p><p>  圖4-1 顯示與整形部分電路板</p><p><b>  24</

113、b></p><p><b>  單片機(jī)顯示模塊</b></p><p>  相關(guān)硬件介紹[11]:</p><p>  (1)AT89C51是一種帶2K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容

114、。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器, 為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案,其外形及引腳排列如圖4-2所示。</p><p><b>  圖4-2 功能管腳</b></p><p>  主要特性:與MCS-51兼容;4K字節(jié)可編程閃爍存儲(chǔ)器;壽命:1000寫/擦循環(huán);數(shù)據(jù)保留時(shí)間10年;全靜

115、態(tài)工作:0Hz-24MHz;三級(jí)程序存儲(chǔ)器鎖定;128×8位內(nèi)部RAM;32可編程I/O線;兩個(gè)16位定時(shí)器/計(jì)數(shù)器;5個(gè)中斷源;可編程串行通道;低功耗的閑置和掉電模式;片內(nèi)振蕩器和時(shí)鐘電路</p><p><b>  管腳說明:</b></p><p><b>  VCC:供電電壓。</b></p><p>&

116、lt;b>  GND:接地。</b></p><p>  P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。</p><p>  P1口

117、:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。</p><p>  P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接</p><p><b>  25<

118、;/b></p><p>  收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLAS

119、H編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。</p><p>  P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。</p><p>  P3口也可作為AT89C51的一些特殊功能口,口管腳備選功能:P3.0 RXD(串行輸

120、入口);P3.1 TXD(串行輸出口);P3.2 /INT0(外部中斷0);P3.3 /INT1(外部中斷1);P3.4 T0(記時(shí)器0外部輸入);P3.5 T1(記時(shí)器1外部輸入);P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫選通);P3.7 /RD(外部數(shù)據(jù)存儲(chǔ)器讀選通);P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。</p><p>  RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。

121、</p><p>  ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí),ALE只有在執(zhí)行MOVX,

122、MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。</p><p>  PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。</p><p>  EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),

溫馨提示

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

評(píng)論

0/150

提交評(píng)論