欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      數(shù)字鎖相環(huán)的FPGA設(shè)計(jì)與實(shí)現(xiàn)-課設(shè)

      時(shí)間:2019-05-12 01:09:29下載本文作者:會(huì)員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《數(shù)字鎖相環(huán)的FPGA設(shè)計(jì)與實(shí)現(xiàn)-課設(shè)》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《數(shù)字鎖相環(huán)的FPGA設(shè)計(jì)與實(shí)現(xiàn)-課設(shè)》。

      第一篇:數(shù)字鎖相環(huán)的FPGA設(shè)計(jì)與實(shí)現(xiàn)-課設(shè)

      1.設(shè)計(jì)要求

      利用MAX PLUSII軟件工具,設(shè)計(jì)一個(gè)全數(shù)字鎖相環(huán)路,通過它從19.2k的信號(hào)中提取同步信號(hào)。本地源時(shí)鐘為11.0592MHz。

      要求實(shí)現(xiàn)的功能:

      a當(dāng)遠(yuǎn)端信號(hào)(方波)的占空比分別為1:

      1、1:

      3、1:5和1:7時(shí),從其中提取同步信號(hào)。b先將遠(yuǎn)端信號(hào)(方波)轉(zhuǎn)變成偽隨機(jī)序列,然后從中提取同步信號(hào)。完成仿真過程,給出測試結(jié)果,要求得到同步帶寬、捕捉帶寬和最大同步時(shí)間。

      2.設(shè)計(jì)原理

      2.1數(shù)字鎖相環(huán)基本原理

      一個(gè)典型的鎖相環(huán)(PLL)系統(tǒng),是由鑒相器(PD),壓控蕩器(VCO)和低通濾波器(LPF)三個(gè)基本電路組成,如圖1所示。

      圖1 PLL模塊圖

      傳統(tǒng)的鎖相環(huán)是模擬電路,它利用環(huán)路中誤差信號(hào)去連續(xù)地調(diào)整位同步信號(hào)的相位。全數(shù)字鎖相環(huán)路完全用數(shù)字電路構(gòu)成,采用高穩(wěn)定度的振蕩器(信號(hào)鐘),從鑒相器所獲得的與同步誤差成比例的誤差信號(hào)不是直接用于調(diào)整振蕩器,而是通過一個(gè)控制器在信號(hào)鐘輸出的脈沖序列中附加或扣除一個(gè)或幾個(gè)脈沖,這樣同樣可以調(diào)整加到鑒相器上的位同步脈沖序列的相位,達(dá)到同步的目的。

      全數(shù)字鎖相環(huán)(ADPLL)由數(shù)字鑒相器(DP)、數(shù)字濾波器(DF)與數(shù)字壓控振蕩器(DCO)三個(gè)數(shù)字電路部件組成,如圖2所示。

      圖2 ADPLL模塊圖

      2.2數(shù)字鎖相環(huán)原理框圖

      本設(shè)計(jì)中的數(shù)字鎖相環(huán)由信號(hào)鐘、控制器、分頻器、相位比較器組成。其原理框圖如圖3所示。

      圖3 數(shù)字鎖相環(huán)原理框圖

      信號(hào)鐘包括一個(gè)高穩(wěn)定度的晶體振蕩器和整形電路。若接收碼元的速率為F=1/T,那么振蕩器頻率設(shè)定在nF,經(jīng)整形電路之后,輸出周期性脈沖序列,其周期T0=1/(nF)=T/n。本設(shè)計(jì)中時(shí)鐘為11.0592MHz。

      控制器包括圖中的扣除門(常開)、附加門(常閉)和“或門”,它根據(jù)相位比較器輸出的控制脈沖(“超前脈沖”或“滯后脈沖”)對信號(hào)鐘輸出的序列實(shí)施扣除(或添加)脈沖。分頻器是一個(gè)計(jì)數(shù)器,每當(dāng)控制器輸出n個(gè)脈沖時(shí),它就輸出一個(gè)脈沖??刂破髋c分頻器的共同作用的結(jié)果就調(diào)整了加至相位比較器的位同步信號(hào)的相位。這種相位前、后移的調(diào)整量取決于信號(hào)鐘的周期,每次的時(shí)間階躍量為T0,相應(yīng)的相位最小調(diào)整量為Δ=2πT0/T=2π/n。

      相位比較器將接收脈沖序列與位同步信號(hào)進(jìn)行相位比較,以判別位同步信號(hào)究竟是超前還是滯后,若超前就輸出超前脈沖,若滯后就輸出滯后脈沖。

      3.數(shù)字鎖相環(huán)的硬件實(shí)現(xiàn)

      根據(jù)圖3(數(shù)字鎖相環(huán)原理框圖),利用MAX PLUSII中的硬件仿真功能,實(shí)現(xiàn)數(shù)字鎖相環(huán)。下面將給出信號(hào)鐘、分頻器和相位比較器的硬件實(shí)現(xiàn)圖。

      信號(hào)鐘包含一個(gè)晶振和整形電路,晶振產(chǎn)生的方波信號(hào)經(jīng)過整形電路后變成脈沖信號(hào)。為了和控制器相配合,需要兩路脈沖信號(hào)。整形電路由D觸發(fā)器和邏輯與、或、非門組成。D觸發(fā)器起到延時(shí)的作用,然后通過邏輯或門和與門產(chǎn)生脈沖波。電路如圖4所示。

      圖4 整形電路(rc)

      分頻器是一個(gè)計(jì)數(shù)器,由3片74LS161來實(shí)現(xiàn)。電路如圖5所示。

      圖5 分頻器(fd)

      相位比較器主要由微分脈沖電路和邏輯與、非門組成。微分脈沖形成電路由D觸發(fā)器和邏輯異或、與門組成。D觸發(fā)器起延時(shí)的作用。微分脈沖形成電路如圖6所示。

      圖6 微分脈沖形成電路(dp)

      數(shù)字鎖相環(huán)的硬件實(shí)現(xiàn)電路如圖7所示。圖中藍(lán)色字樣所在框圖由上至下分別為微分脈沖形成電路(dp)、整形電路(rc)和分頻器(fd),具體結(jié)構(gòu)如圖

      6、圖4和圖5所示。

      圖7 數(shù)字鎖相環(huán)電路

      由于在MAX PLUSII中沒有占空比為1:

      3、1:5和1:7的方形波,所以要利用可用的元器件來生成滿足要求的信號(hào)。可以通過把方波分別通過模

      4、模6和模8計(jì)數(shù)器來達(dá)到這一目的。在本設(shè)計(jì)中,利用74LS161來實(shí)現(xiàn)這些計(jì)數(shù)器。模

      4、模

      6、模8計(jì)數(shù)器分別如圖

      8、圖

      9、圖10所示。

      圖8 模4計(jì)數(shù)器(1_3)

      圖9 模6計(jì)數(shù)器(1_5)

      圖10 模8計(jì)數(shù)器(1_7)

      方波通過這些計(jì)數(shù)器后就能形成占空比滿足要求的信號(hào),然后再將信號(hào)送入圖7所示的數(shù)字鎖相環(huán)電路中,便可以提取出同步信號(hào)。

      在本設(shè)計(jì)中,將方波轉(zhuǎn)變成偽隨機(jī)序列用到74LS194和邏輯異或門、與非門。7位偽隨機(jī)序列發(fā)生器電路如圖11所示。將產(chǎn)生的偽隨機(jī)序列送入圖7所示的數(shù)字鎖相環(huán)電路中,便可以提取出同步信號(hào)。

      圖11 7位偽隨機(jī)序列發(fā)生器

      4.仿真過程

      4.1接收信號(hào)的占空比為1:1

      條件設(shè)置為:End Time = 10ms,Grid Size = 45.2ns 位同步信號(hào)超前于接收脈沖序列的情況如圖12所示,藍(lán)色線條處放大后如圖13所示。經(jīng)過一段時(shí)間后鎖相成功,達(dá)到同步狀態(tài),如圖14所示。

      圖12 位同步信號(hào)超前于接收脈沖序列

      圖13 超前脈沖作用于扣除門

      圖14同步狀態(tài)

      位同步信號(hào)滯后于接收脈沖序列的情況如圖15所示,藍(lán)色線條處放大后如圖16所示。經(jīng)過一段時(shí)間后鎖相成功,達(dá)到同步狀態(tài),如圖17所示。

      圖15 位同步信號(hào)滯后于接收脈沖序列

      圖16 滯后脈沖作用于附加門

      圖17 同步狀態(tài)

      通過多次試驗(yàn),可得測試結(jié)果如下: 同步建立時(shí)間:14.824ms 同步帶寬:40hz 4.2接收信號(hào)的占空比為1:3

      條件設(shè)置為:End Time = 10ms,Grid Size = 45.2ns 位同步信號(hào)超前于接收脈沖序列的情況如圖18所示,藍(lán)色線條處放大后如圖19所示。經(jīng)過一段時(shí)間后鎖相成功,達(dá)到同步狀態(tài),如圖20所示。同步建立時(shí)間:6.906ms

      圖18 位同步信號(hào)超前于接收脈沖序列

      圖19 超前脈沖作用于扣除門

      圖20 同步狀態(tài)

      位同步信號(hào)滯后于接收脈沖序列的情況如圖21所示,藍(lán)色線條處放大后如圖22所示。經(jīng)過一段時(shí)間后鎖相成功,達(dá)到同步狀態(tài),如圖23所示。

      圖21 位同步信號(hào)滯后于接收脈沖序列

      圖22 滯后脈沖作用于附加門

      圖23 同步狀態(tài)

      通過多次試驗(yàn),可得測試結(jié)果如下: 同步建立時(shí)間:14.905ms 同步帶寬:24hz 4.3接收信號(hào)的占空比為1:5

      條件設(shè)置為:End Time = 10ms,Grid Size = 45.2ns 位同步信號(hào)超前于接收脈沖序列的情況如圖24所示,藍(lán)色線條處放大后如圖25所示。經(jīng)過一段時(shí)間后鎖相成功,達(dá)到同步狀態(tài),如圖26所示。

      圖24 位同步信號(hào)超前于接收脈沖序列

      圖25 超前脈沖作用于扣除門

      圖26 同步狀態(tài)

      位同步信號(hào)滯后于接收脈沖序列的情況如圖27所示,藍(lán)色線條處放大后如圖28所示。經(jīng)過一段時(shí)間后鎖相成功,達(dá)到同步狀態(tài),如圖29所示。

      圖27 位同步信號(hào)滯后于接收脈沖序列

      圖28 滯后脈沖作用于附加門

      圖29 同步狀態(tài)

      通過多次試驗(yàn),可得測試結(jié)果如下: 同步建立時(shí)間:14.706ms 同步帶寬:16hz 4.4接收信號(hào)的占空比為1:7

      條件設(shè)置為:End Time = 20ms,Grid Size = 45.2ns 位同步信號(hào)超前于接收脈沖序列的情況如圖30所示,藍(lán)色線條處放大后如圖31所示。經(jīng)過一段時(shí)間后鎖相成功,達(dá)到同步狀態(tài),如圖32所示。

      圖30 位同步信號(hào)超前于接收脈沖序列

      圖31 超前脈沖作用于扣除門

      圖32 同步狀態(tài)

      位同步信號(hào)滯后于接收脈沖序列的情況如圖33所示,藍(lán)色線條處放大后如圖34所示。經(jīng)過一段時(shí)間后鎖相成功,達(dá)到同步狀態(tài),如圖35所示。

      圖33 位同步信號(hào)滯后于接收脈沖序列

      圖34 滯后脈沖作用于附加門

      圖35 同步狀態(tài)

      通過多次試驗(yàn),可得測試結(jié)果如下: 同步建立時(shí)間:14.865ms 同步帶寬:18hz 4.5遠(yuǎn)端信號(hào)(方波)轉(zhuǎn)變成偽隨機(jī)序列

      條件設(shè)置為:End Time = 20ms,Grid Size = 45.2ns 位同步信號(hào)超前于接收脈沖序列的情況如圖36所示,藍(lán)色線條處放大后如圖37所示。經(jīng)過一段時(shí)間后鎖相成功,達(dá)到同步狀態(tài),如圖38所示。

      圖36 位同步信號(hào)超前于接收脈沖序列

      圖37 超前脈沖作用于扣除門

      圖38 同步狀態(tài)

      位同步信號(hào)滯后于接收脈沖序列的情況如圖39所示,藍(lán)色線條處放大后如圖40所示。經(jīng)過一段時(shí)間后鎖相成功,達(dá)到同步狀態(tài),如圖41所示。

      圖39 位同步信號(hào)滯后于接收脈沖序列

      圖40 滯后脈沖作用于附加門

      圖41 同步狀態(tài)

      通過多次試驗(yàn),可得測試結(jié)果如下: 同步建立時(shí)間:52.476ms 同步帶寬:8hz 5.心得體會(huì)

      在做這個(gè)課程設(shè)計(jì)之前,我沒有接觸過MAX PLUSII這個(gè)軟件,對數(shù)字鎖相器亦沒有太多的認(rèn)識(shí),所以剛開始感覺很難。在查閱了很多相關(guān)資料之后,對軟件的操作和數(shù)字鎖相器的理解已經(jīng)比較深入,越到后邊就感覺越得心應(yīng)手。自己竟然在短短幾天之內(nèi),掌握了這些東西,并且完整地將課程設(shè)計(jì)完成。在這過程中也學(xué)到了很多東西。一方面,在完成該課程設(shè)計(jì)的過程中,對數(shù)字鎖相環(huán)技術(shù)有了深刻的理解,也學(xué)會(huì)了如何去利用仿真工具去驗(yàn)證一個(gè)設(shè)計(jì)的正確性和可行性。這對之后的畢業(yè)設(shè)計(jì)都有莫大的幫助。另一方面,自己又一次領(lǐng)悟到與人合作交流的重要性,期間遇到的許多問題都是在不斷地討論和請教中解決的,如果沒有集體的智慧,可能到現(xiàn)在也無法完成該設(shè)計(jì)??偠灾?,學(xué)期末的課程設(shè)計(jì)教會(huì)了我很多東西,也為本學(xué)期畫上了一個(gè)完滿的句號(hào)。感謝老師的指導(dǎo)。

      第二篇:基于FPGA的數(shù)字電子時(shí)鐘設(shè)計(jì)與實(shí)現(xiàn)(范文模版)

      《數(shù)字電子技術(shù)》課程設(shè)計(jì)

      設(shè)計(jì)題目:基于FPGA的數(shù)字電子時(shí)鐘設(shè)計(jì)與實(shí)現(xiàn)

      系 部: 電子與信息工程系 專業(yè)班級(jí): 電子信息工程08秋(1)班 小組成員: 胡修遠(yuǎn) 學(xué) 號(hào): 08031145 指導(dǎo)教師 : 陶亞雄 周麗婕

      完成日期: 2012年 1 月

      目錄

      一、所用設(shè)備與器材................................................1 1.1儀器設(shè)備...................................................1 二.系統(tǒng)方案......................................................1 2.1 設(shè)計(jì)思想..................................................1 2.1.1課題背景........................................1 2.1.2 Quartus II軟件.................................3 2.2工作原理及系統(tǒng)框圖.........................................8 三.軟件方案......................................................9 3.1 程序流程圖................................................9 3.1.1 24進(jìn)制........................................9 3.1.2 10進(jìn)制流程圖.................................10 3.1.3 6進(jìn)制........................................11 3.1.4 60進(jìn)制.......................................11 3.1.5 from0to9......................................12 3.1.6 分頻模塊.......................................12 3.1.7 總流程圖.......................................13 3.2 程序清單.................................................14 3.2.1頭文件complete_clock程序......................14 3.2.2 counter24程序.................................15 3.2.3 counter60程序.................................15 3.2.4 from0to9程序..................................16 3.2.5 counter6程序..................................17 3.2.6 counter10程序.................................17 3.2.7 分頻程序.......................................17 3.2.8 校時(shí)模塊程序...................................18 四.調(diào)試及結(jié)果...................................................18

      4.1 模塊仿真.................................................18 4.1.1 counter10模塊仿真.............................18 4.1.2 counter24模塊仿真.............................19 4.1.3 counter60模塊仿真.............................19 4.1.4 分頻模塊仿真...................................19 4.1.5 top_clock計(jì)時(shí)模塊仿真.........................19 4.2 程序下載.................................................20 4.3分析運(yùn)行結(jié)果..............................................21 4.3.1 設(shè)計(jì)總結(jié).......................................21 4.3.2 心得體會(huì).......................................21 4.3.3 致謝...........................................22

      2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計(jì)

      一、所用設(shè)備與器材

      1.1儀器設(shè)備

      使用儀器設(shè)備有FPGA DE2-70開發(fā)板、PC機(jī)、信號(hào)發(fā)生器。

      圖1 FPGA DE2-70開發(fā)板圖

      二.系統(tǒng)方案

      2.1 設(shè)計(jì)思想

      利用數(shù)字電子技術(shù)、EDA設(shè)計(jì)方法、FPGA等技術(shù),設(shè)計(jì)、仿真并實(shí)現(xiàn)一個(gè)基于FPGA的數(shù)字電子時(shí)鐘基本功能,其基本組成框圖如圖1所示,振蕩器采用ALTERA的DE2-70實(shí)驗(yàn)板的50MHz輸出,分頻器將50MHz的方波進(jìn)行分頻進(jìn)而得到1Hz的標(biāo)準(zhǔn)秒脈沖,時(shí)、分、秒計(jì)時(shí)模塊分別由二十四進(jìn)制時(shí)計(jì)數(shù)器、六十進(jìn)制分計(jì)數(shù)器和六十進(jìn)制秒計(jì)數(shù)器完成,校時(shí)模塊完成時(shí)和分的校正。擴(kuò)展功能設(shè)計(jì)為倒計(jì)時(shí)功能,從59分55秒至59分59秒,每秒亮一盞燈報(bào)時(shí)。

      2.1.1課題背景

      20世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展,在其推動(dòng)下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會(huì)的各個(gè)領(lǐng)域,有力的推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程度的提高,同時(shí)也使現(xiàn)代電子產(chǎn)品性能更進(jìn)一步,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。

      20世紀(jì)80年代末,出現(xiàn)了FPGA(Field Progrommable Gate Array),CAE和CAD技術(shù)的應(yīng)用更為廣泛,它們在PCB設(shè)計(jì)的原理圖輸入,自動(dòng)布局布線及PCB分析,以及邏輯設(shè)計(jì),邏輯仿真布爾綜合和化簡等方面擔(dān)任了重要的角色,2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計(jì)

      為電子設(shè)計(jì)自動(dòng)化必須解決的電路建模,標(biāo)準(zhǔn)文檔及仿真測試奠定了基礎(chǔ)。硬件描述語言是EDA技術(shù)的重要組成部分,VHDL是作為電子設(shè)計(jì)主流硬件的描述語言。本論文就是應(yīng)用VHDL語言來實(shí)現(xiàn)秒表的電路設(shè)計(jì)。VHDL語言是標(biāo)準(zhǔn)硬件描述語言,它的特點(diǎn)就是能形式化抽樣表示電路結(jié)構(gòu)及行為,支持邏輯設(shè)計(jì)中層次領(lǐng)域的描述,借用了高級(jí)語言的精巧結(jié)構(gòu)簡化電路描述,具有電路模擬與驗(yàn)證及保證設(shè)計(jì)的正確性,支持電路由高層向底層的綜合變換,便于文檔管理,易于理解和設(shè)計(jì)重用。

      EDA技術(shù)是在電子CAD技術(shù)基礎(chǔ)上發(fā)展起來的計(jì)算機(jī)軟件系統(tǒng),是指以計(jì)算機(jī)為工作平臺(tái),融合了應(yīng)用電子技術(shù)、計(jì)算機(jī)技術(shù)、信息處理及智能化技術(shù)的最新成果,進(jìn)行電子產(chǎn)品的自動(dòng)設(shè)計(jì)。

      利用EDA工具,電子設(shè)計(jì)師可以從概念、算法、協(xié)議等開始設(shè)計(jì)電子系統(tǒng),大量工作可以通過計(jì)算機(jī)完成,并可以將電子產(chǎn)品從電路設(shè)計(jì)、性能分析到設(shè)計(jì)出IC版圖或PCB版圖的整個(gè)過程在計(jì)算機(jī)上自動(dòng)處理完成。

      現(xiàn)在對EDA的概念或范疇用得很寬。包括在機(jī)械、電子、通信、航空航天、化工、礦產(chǎn)、生物、醫(yī)學(xué)、軍事等各個(gè)領(lǐng)域,都有EDA的應(yīng)用。目前EDA 技術(shù)已在各大公司、企事業(yè)單位和科研教學(xué)部門廣泛使用。例如在飛機(jī)制造過程中,從設(shè)計(jì)、性能測試及特性分析直到飛行模擬,都可能涉及到EDA技術(shù)。本文所指的EDA技術(shù),主要針對電子電路設(shè)計(jì)、PCB設(shè)計(jì)和IC設(shè)計(jì)。EDA 設(shè)計(jì)可分為系統(tǒng)級(jí)、電路級(jí)和物理實(shí)現(xiàn)級(jí)。

      用VHDL語言開發(fā)的流程:(1)文本編輯:用任何文本編輯器都可以進(jìn)行,也可以用專用的HDL編輯環(huán)境。通常VHDL文件保存為.vhd文件。

      (2)功能仿真:將文件調(diào)入HDL仿真軟件進(jìn)行功能仿真,檢查邏輯功能是否正確(也叫前仿真,對簡單的設(shè)計(jì)可以跳過這一步,只在布線完成以后,進(jìn)行時(shí)序仿真)。

      (3)邏輯綜合:將源文件調(diào)入邏輯綜合軟件進(jìn)行綜合,即把語言綜合成最簡的布爾表達(dá)式和信號(hào)的連接關(guān)系。邏輯綜合軟件會(huì)生成.edf(edif)的EDA工業(yè)標(biāo)準(zhǔn)文件。

      (4)布局布線:將.edf文件調(diào)入PLD廠家提供的軟件中進(jìn)行布線,即把設(shè)計(jì)好的邏輯安放到PLD/FPGA內(nèi)。2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計(jì)

      3(5)編程下載:確認(rèn)仿真無誤后,將文件下載到芯片中。

      本設(shè)計(jì)為一個(gè)多功能的數(shù)字鐘,具有時(shí)、分、秒計(jì)數(shù)顯示功能,以24小時(shí)的循環(huán)計(jì)數(shù):具有校對功能。本設(shè)計(jì)采用EDA技術(shù),以硬件描述語言VHDL為系統(tǒng)邏輯描述手段設(shè)計(jì)文件,在Quartus ?工具軟件下,采用自頂向下的設(shè)計(jì)方式,由各個(gè)基本模塊共同構(gòu)建了一個(gè)基本FPGA的數(shù)字鐘。

      系統(tǒng)主芯片采用EP2C70F896C6,有時(shí)鐘模塊、控制模塊、計(jì)時(shí)模塊、數(shù)據(jù)譯碼模塊、顯示以及報(bào)時(shí)模塊組成。經(jīng)編譯和仿真所設(shè)計(jì)的程序,在可編程邏輯器件上下載驗(yàn)證,本系統(tǒng)能夠完成時(shí)、分、秒的分別顯示,由按鍵輸入進(jìn)行數(shù)字鐘的校時(shí)、清零、啟停功能。

      隨著電子技術(shù)的發(fā)展,數(shù)字電路朝著速度快、容量大、體積小、重量輕的方向發(fā)展。人們對時(shí)間計(jì)量的精度要求越來越高,鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便。數(shù)字鐘是一種用數(shù)字電路技術(shù)實(shí)現(xiàn)時(shí)、分、秒計(jì)時(shí)的裝置,與機(jī)械式時(shí)鐘相比具有更高的準(zhǔn)確性和直觀性,且無機(jī)械裝置,具有更更長的使用壽命,因此得到了廣泛的使用。

      本次設(shè)計(jì)以數(shù)字電子為主,實(shí)現(xiàn)對時(shí)、分、秒數(shù)字顯示的計(jì)時(shí)裝置,周期為24小時(shí),顯示滿刻度為23時(shí)59分59秒,并具有校時(shí)功能和報(bào)時(shí)功能的數(shù)字電子鐘。課程設(shè)計(jì)所采用的開發(fā)平臺(tái):Quartus II是可編程片上系統(tǒng)的綜合性設(shè)計(jì)環(huán)境,它支持CPLD和FPGA器件的開發(fā)。FPGA(Field Programmable Gate Array)現(xiàn)場可編程門陣列,內(nèi)部主要由許多可編程邏輯模塊組成,靠縱橫交錯(cuò)的分布式可編程互連線連接起來,可構(gòu)成極其復(fù)雜的邏輯電路。本次課程設(shè)計(jì)所采用的FPGA芯片 Cyclone II系列的EP2C70F896C6。

      2.1.2 Quartus II軟件

      Quartus II 是Altera公司的綜合性PLD開發(fā)軟件,支持原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多種設(shè)計(jì)輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整PLD設(shè)計(jì)程。Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl腳本完成設(shè)計(jì)流程外,提供了完善的用戶圖形界面設(shè)計(jì)方式。具有運(yùn)行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點(diǎn)。

      Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模塊庫,使用戶可以充分利用成熟的模塊,簡化了設(shè)計(jì)的復(fù)雜性、加快了 2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計(jì)

      設(shè)計(jì)速度。對第三方EDA工具的良好支持也使用戶可以在設(shè)計(jì)流程的各個(gè)階段使用熟悉的第三方EDA工具。

      Quartus II使用基本流程如下: 1.打開Quartus II軟件,創(chuàng)建工程

      a.點(diǎn)擊工具欄File,利用創(chuàng)建工程向?qū)В∟ew Project Wizard)創(chuàng)建新工程。

      圖2 新建工程圖

      b.工程目錄為c:altera71sp1quartus(路徑中不能包含中文,不能建立在桌面上),工程名稱以及頂層設(shè)計(jì)實(shí)體為counter10(以英文字母開頭)。

      圖3 創(chuàng)建路徑圖

      c.選擇與開發(fā)板上芯片型號(hào)對應(yīng)的器件。硬件選cycloneⅡ EP2C70F896C6。

      圖4 芯片選擇圖

      d.進(jìn)入第三方EDA工具選擇窗口,在此可以選擇使用第三方的EDA工具,如一些布局布線、綜合、仿真軟件。

      e.確認(rèn)無誤后,單擊Finsh完成工程創(chuàng)建。2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計(jì)

      f.工程創(chuàng)建成功后,在【Project Navigator】(資源管理窗口)顯示當(dāng)前工程的層次、文件和設(shè)計(jì)單元。

      g.執(zhí)行File—New—Design Files—verilog HDL File,建立原理圖文件。

      圖5 原理圖文件建立圖

      h.完成后點(diǎn)擊File----save as,保存到c:altera71sp1quartus目錄下。i.使用文本編輯器輸入源碼,完成原理圖編譯。

      j.編譯工程,執(zhí)行Processing—start—start Analysis&Elaboration進(jìn)行編譯,分析檢查輸入文件是否有錯(cuò)誤。2.創(chuàng)建仿真波形文件

      a.點(diǎn)擊New—Vector Waveform File—save as

      圖6 新建仿真波形文件圖

      b.在Name框圖中右擊鼠標(biāo),Insert—Insert Node or Bus—Node Finder—在Filter中選擇Pinns:all,點(diǎn)擊list,點(diǎn)擊“》”將左側(cè)列表中的內(nèi)容移動(dòng)到右側(cè)列表中。2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計(jì)

      圖7 插入管腳圖

      c.在CP上右擊選擇value,選擇時(shí)鐘脈沖信號(hào)clock(周期可自行設(shè)置)。EN和nCR都選擇高電平(Forcing High)。

      圖8 輸入信號(hào)賦值

      d.選擇Assignments—Settings設(shè)置—simulater settings—模式mode選擇功能型Functional e.選擇Processing—generate functional simulation netlist生成功能網(wǎng)表

      圖9 生成功能網(wǎng)表圖

      f.點(diǎn)擊波形仿真的快捷鍵,進(jìn)行波形的仿真。

      g.分別給EN和nCR不同的電平信號(hào),觀察分析波形的變化。2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計(jì)

      圖10 EN=1 nCR=1

      圖11 EN=0 nCR=1

      圖12 EN=1 nCR=0 2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計(jì)

      圖13 EN=0 nCR=0

      圖14 EN脈沖 nCR=1

      2.2工作原理及系統(tǒng)框圖

      利用數(shù)字電子技術(shù)、EDA設(shè)計(jì)方法、FPGA等技術(shù),設(shè)計(jì)、仿真并實(shí)現(xiàn)一個(gè)基于FPGA的數(shù)字電子時(shí)鐘基本功能,其基本組成框圖如圖1所示,振蕩器采用ALTERA的DE2-70實(shí)驗(yàn)板的50MHz輸出,分頻器將50MHz的方波進(jìn)行分頻進(jìn)而得到1Hz的標(biāo)準(zhǔn)秒脈沖,時(shí)、分、秒計(jì)時(shí)模塊分別由二十四進(jìn)制時(shí)計(jì)數(shù)器、六十進(jìn)制分計(jì)數(shù)器和六十進(jìn)制秒計(jì)數(shù)器完成,校時(shí)模塊完成時(shí)和分的校正。電子時(shí)鐘擴(kuò)展功能為倒計(jì)時(shí)流水燈。數(shù)字電子鐘的電路組成框圖片如下圖: 2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計(jì)

      多功能數(shù)字鐘頂層模塊振蕩器校時(shí)電路倒計(jì)時(shí)模塊分頻器CP 1Hz時(shí)計(jì)數(shù)器(24進(jìn)制)分計(jì)數(shù)器(60進(jìn)制)秒計(jì)數(shù)器(60進(jìn)制)時(shí)譯碼顯示6計(jì)數(shù)器10計(jì)數(shù)器分譯碼顯示6計(jì)數(shù)器10計(jì)數(shù)器分譯碼顯示 圖15 系統(tǒng)框圖

      1.數(shù)字鐘電路系統(tǒng)由主體電路和擴(kuò)展電路兩大部分所組成。

      2.數(shù)字電子時(shí)鐘電路具有時(shí)、分、秒計(jì)時(shí),秒計(jì)數(shù)器計(jì)滿60后向分計(jì)數(shù)器進(jìn)位,分計(jì)數(shù)器計(jì)滿60后向小時(shí)計(jì)數(shù)器進(jìn)位,小時(shí)計(jì)數(shù)器按照“24進(jìn)制”規(guī)律計(jì)數(shù)。

      3.準(zhǔn)確計(jì)時(shí),以數(shù)字形式顯示時(shí)、分、秒的時(shí)間,計(jì)數(shù)器的輸出經(jīng)譯碼器送顯示器。

      4.具有分、時(shí)校正功能,校正輸入脈沖頻率為1Hz 5.復(fù)位功能,時(shí)、分、秒計(jì)時(shí)清零。

      6.擴(kuò)展功能為:具有仿廣播電臺(tái)整點(diǎn)報(bào)時(shí)的功能,即每逢59分51秒、52秒、53秒、54秒、55秒及57秒,LED綠燈依此點(diǎn)亮,59分59秒時(shí),LED紅燈亮,形成倒計(jì)時(shí)流水燈報(bào)時(shí)。

      三.軟件方案

      3.1 程序流程圖

      3.1.1 24進(jìn)制

      小時(shí)采用24進(jìn)制計(jì)時(shí),當(dāng)CP↑,EN和nCR為高電平時(shí)計(jì)數(shù),計(jì)數(shù)范圍為[0,23],使能信號(hào)EN等于0時(shí),計(jì)時(shí)器保持。當(dāng)高位大于2或高位等于2且低位大于3時(shí),計(jì)時(shí)器清零,否則繼續(xù)計(jì)時(shí)。流程圖見下圖。2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計(jì)

      開始CP↑or nCR↓YnCR=0 ?YNNEN=0 ?YNNQH>2 or Q>23Y清零保持清零Q=Q+1 圖16 24進(jìn)制程序流程圖

      3.1.2 10進(jìn)制流程圖

      當(dāng)CP↑,EN和nCR為高電平時(shí)計(jì)數(shù),計(jì)數(shù)范圍為[0,9],使能信號(hào)EN等于0時(shí),計(jì)時(shí)器保持。當(dāng)計(jì)時(shí)到9的時(shí)候,計(jì)時(shí)器清零,否則繼續(xù)計(jì)時(shí)。流程圖見下圖。

      開始CP↑or nCR↓YnCR=0 ?YNNNEN=0 ?YQ=9 ?Y清零保持清零NQ=Q+1

      圖17 10進(jìn)制流程圖 2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計(jì)

      3.1.3 6進(jìn)制

      當(dāng)CP↑,EN和nCR為高電平時(shí)計(jì)數(shù),計(jì)數(shù)范圍為[0,5],使能信號(hào)EN等于0時(shí),計(jì)時(shí)器保持。當(dāng)計(jì)時(shí)到5的時(shí)候,計(jì)時(shí)器清零,否則繼續(xù)計(jì)時(shí)。流程圖見下圖。

      開始CP↑or nCR↓YnCR=0 ?YNNNNEN=0 ?YQ=5 ?Y清零保持清零Q=Q+1 圖18 6進(jìn)制流程圖

      3.1.4 60進(jìn)制

      分、秒采用60進(jìn)制計(jì)時(shí),當(dāng)CP↑,EN和nCR為高電平時(shí)計(jì)數(shù),計(jì)數(shù)范圍為[0,59],使能信號(hào)EN等于0時(shí),計(jì)時(shí)器保持。當(dāng)個(gè)位等于9時(shí)向十位進(jìn)位;當(dāng)個(gè)位等于9十位等于5,計(jì)時(shí)器清零,否則繼續(xù)計(jì)時(shí)。流程圖見下圖。

      開始CP↑or nCR↓NnCR=0?NEN=0?Y個(gè)位Q1=9?NYQ2=Q2+1Q2=5?YQ1=9?NNN清零保持Q1=Q1+1Y清零Q1=Q1+1 圖19 60進(jìn)制流程圖 2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計(jì)

      3.1.5 from0to9

      數(shù)碼管有7段組成,分共陽極和共陰極,本次設(shè)計(jì)采用共陽極數(shù)碼管。當(dāng)輸入為低電平時(shí),數(shù)碼管顯示;當(dāng)輸入為高電平時(shí),數(shù)碼管不顯示。用這樣的方法輸入不同的高低信號(hào)控制數(shù)碼管的顯示。

      HEX=7'b0000001HEX=1001111HEX=b0010010HEX=7'b0000110HEX=7'b1001100開始Case DNHEX=7'b0100000HEX=7'b1111111HEX=7'b0001111HEX=7'b0000000HEX=7'b0000100顯示7顯示8顯示9顯示6YHEX=7'b0100100顯示5顯示0顯示1顯示2顯示3顯示4 圖20 from0to9流程圖

      3.1.6 分頻模塊

      開始50MHz方波10^2分頻500KHz方波10^2分頻5KHz方波10^2分頻50Hz方波10^2分頻0.5Hz方波

      圖21 分頻模塊流程圖 2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計(jì)

      3.1.7 總流程圖

      開始開始NCPCP↑↑or nCRor nCR↓↓Y分頻模塊YYNYAdjHrkey=1?AdjHrkey=1?NNN時(shí)低位時(shí)低位=9?=9?NYYAdjMinKey=1?AdjMinKey=1?YY低位清零高位進(jìn)位低位清零高位進(jìn)位N高位高位>2or>2or時(shí)時(shí)>23>23YNN分低位分低位=9=9??NN清零清零YY秒低位秒低位=9=9??NNNY低位清零高位進(jìn)位低位清零高位進(jìn)位YY低位計(jì)數(shù)低位計(jì)數(shù)低位計(jì)數(shù)低位計(jì)數(shù)YNY秒高位秒高位=5=5??低位清零高位進(jìn)位低位清零高位進(jìn)位低位計(jì)數(shù)低位計(jì)數(shù)NYY高位高位=5=5??NN秒高位清零,分低位進(jìn)位秒高位清零,分低位進(jìn)位高位計(jì)數(shù)高位計(jì)數(shù)清零清零Y高位計(jì)數(shù)高位計(jì)數(shù)N低位計(jì)數(shù)低位計(jì)數(shù)Y低位清零高位進(jìn)位低位清零高位進(jìn)位N分低位分低位=9=9??NN分高位分高位=5=5??YY高位計(jì)數(shù)高位計(jì)數(shù)Y分清零,時(shí)低位位進(jìn)位分清零,時(shí)低位位進(jìn)位低位清零高位進(jìn)位低位清零高位進(jìn)位Y時(shí)低位時(shí)低位=9=9??NNNNYY高位高位>2or>2or時(shí)時(shí)>23>23清零清零低位計(jì)數(shù)低位計(jì)數(shù)

      圖22 總流程圖 2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計(jì)

      3.2 程序清單

      3.2.1頭文件complete_clock程序

      module complete_clock(HEX0,HEX1,HEX2,HEX3,HEX4,HEX5,_50MHzIn,_1Hz,_50Hz, _5KHz,_500KHz,AdjMinkey,AdjHrkey,nCR,Alarm,LED0,LED10,LED3,LED4,LED5,LED6,LED7,LED8,LED9);

      output [7:0] HEX0,HEX1,HEX2,HEX3,HEX4,HEX5;output Alarm,_1Hz,_50Hz,_5KHz,_500KHz;output LED0;output LED10;output LED3;output LED4;output LED5;output LED6;output LED7;output LED8;output LED9;wire [7:0] HEX0,HEX1,HEX2,HEX3,HEX4,HEX5;input nCR,_50MHzIn;wire _1Hz,_50Hz,_5KHz,_500KHz;wire LED0;wire LED10;wire LED3;wire LED4;wire LED5;wire LED6;wire LED7;wire LED8;wire LED9;input AdjMinkey,AdjHrkey;wire [7:0] Second,Minute,Hour;Divided_Frequency C1(_5KHz,_500KHz,nCR,_50MHzIn);//調(diào)用分頻模塊,輸入50MHz的頻率,經(jīng)兩次分頻后變?yōu)?KHz Divided_Frequency U0(_1Hz,_50Hz,nCR,_5KHz);//調(diào)用分頻模塊,輸入5KHz的頻率,經(jīng)

      兩次分頻后變?yōu)?Hz top_clock U1(Hour,Minute,Second,_1Hz,nCR,AdjMinkey,AdjHrkey);//調(diào)用校時(shí)模塊,對時(shí)、分模塊進(jìn)行校時(shí) baoshi U2(Alarm_Ring,Minute,Second,_50Hz,_5KHz);assign Alarm=Alarm_Ring;assign LED0=({Minute,Second}==16'h5951);//定義LED0為59分51秒時(shí)燈亮 assign LED10=({Minute,Second}==16'h5952);//定義LED10為59分52秒時(shí)燈亮 assign LED3=({Minute,Second}==16'h5953);//定義LED3為59分53秒時(shí)燈亮 assign LED4=({Minute,Second}==16'h5954);//定義LED4為59分54秒時(shí)燈亮 assign LED5=({Minute,Second}==16'h5955);//定義LED5為59分55秒時(shí)燈亮 assign LED6=({Minute,Second}==16'h5956);//定義LED6為59分56秒時(shí)燈亮 2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計(jì)

      assign LED7=({Minute,Second}==16'h5957);//定義LED7為59分57秒時(shí)燈亮 assign LED8=({Minute,Second}==16'h5958);//定義LED8為59分58秒時(shí)燈亮 assign LED9=({Minute,Second}==16'h5959);//定義LED9為59分59秒時(shí)燈亮 from0to9 U10(HEX0,Second[3:0]);//個(gè)位秒調(diào)用譯碼 from0to9 U9(HEX1,Second[7:4]);//十位秒調(diào)用譯碼 from0to9 U3(HEX2,Minute[3:0]);//個(gè)位分調(diào)用譯碼 from0to9 U4(HEX3,Minute[7:4]);//個(gè)位分調(diào)用譯碼 from0to9 U5(HEX4,Hour[3:0]);//個(gè)位時(shí)調(diào)用譯碼 from0to9 U6(HEX5,Hour[7:4]);//十位時(shí)調(diào)用譯碼 endmodule 3.2.2 counter24程序

      module counter24(CntH,CntL,nCR,EN,CP);input CP,nCR,EN;output [3:0] CntH,CntL;reg [3:0] CntH,CntL;always @(posedge CP or negedge nCR)begin if(~nCR){CntH,CntL}<=8'h00;//當(dāng)nCR=0時(shí),計(jì)時(shí)器清零

      else if(~EN){CntH,CntL}<={CntH,CntL};//當(dāng)EN=0時(shí),停止計(jì)時(shí),保持 else if((CntH>2)||(CntH>9)||((CntH==2)&&(CntL>=3))){CntH,CntL}<=8'h00;else if((CntH==2)&&(CntL<3))begin CntH<=CntH;CntL<=CntL+1'b1;end else if(CntL==9)begin CntH<=CntH+1'b1;CntL<=4'b0000;end else begin CntH<=CntH;CntL<=CntL+1'b1;end end Endmodule 3.2.3 counter60程序

      module counter60(Q1,Q2,Q3,Q4,Q5,Q6,Cnt,Cnt1,Cnt24,nCR,EN,CP,LED,LED1,LED2);input CP,nCR,EN;output [7:0] Cnt;output [7:0] Cnt1;output [7:0] Cnt24;output [6:0] Q1;output [6:0] Q2;output [6:0] Q3;output [6:0] Q4;output [6:0] Q5;output [6:0] Q6;output LED;output LED1;output LED2;wire [7:0] Cnt;2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計(jì)

      wire [7:0] Cnt1;wire [7:0] Cnt24;wire [6:0] Q1;wire [6:0] Q2;wire [6:0] Q3;wire [6:0] Q4;wire [6:0] Q5;wire [6:0] Q6;wire LED;wire LED1;wire LED2;wire ENP;wire ENP1;wire ENP2;wire ENP3;counter10 UC0(Cnt[3:0],nCR,EN,CP);counter6 UC1(Cnt[7:4],nCR,ENP,CP);counter10 UC2(Cnt1[3:0],nCR,ENP1,CP);counter6 UC3(Cnt1[7:4],nCR,ENP2,CP);counter24 UC4(Cnt24[7:4],Cnt24[3:0],nCR,ENP3,CP);assign ENP=(Cnt[3:0]==4'h9);assign ENP1=(Cnt==8'h59);assign ENP2=((Cnt1[3:0]==4'h9)&&(Cnt==8'h59));assign ENP3=((Cnt1==8'h59)&&(Cnt==8'h59));assign LED=~CP;assign LED1=~CP;assign LED2=~CP;from0to9 UC5(Q1,Cnt[3:0]);from0to9 UC6(Q2,Cnt[7:4]);from0to9 UC7(Q3,Cnt1[3:0]);from0to9 UC8(Q4,Cnt1[7:4]);from0to9 UC9(Q5,Cnt24[3:0]);from0to9 UC10(Q6,Cnt24[7:4]);Endmodule 3.2.4 from0to9程序

      module from0to9(HEX,D);output [6:0] HEX;input [3:0] D;reg [6:0] HEX;always @(D)begin case(D)4'd0:{HEX[0],HEX[1],HEX[2],HEX[3],HEX[4],HEX[5],HEX[6]}=7'b0000001;4'd1:{HEX[0],HEX[1],HEX[2],HEX[3],HEX[4],HEX[5],HEX[6]}=7'b1001111;4'd2:{HEX[0],HEX[1],HEX[2],HEX[3],HEX[4],HEX[5],HEX[6]}=7'b0010010;2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計(jì)

      4'd3:{HEX[0],HEX[1],HEX[2],HEX[3],HEX[4],HEX[5],HEX[6]}=7'b0000110;4'd4:{HEX[0],HEX[1],HEX[2],HEX[3],HEX[4],HEX[5],HEX[6]}=7'b1001100;4'd5:{HEX[0],HEX[1],HEX[2],HEX[3],HEX[4],HEX[5],HEX[6]}=7'b0100100;4'd6:{HEX[0],HEX[1],HEX[2],HEX[3],HEX[4],HEX[5],HEX[6]}=7'b0100000;4'd7:{HEX[0],HEX[1],HEX[2],HEX[3],HEX[4],HEX[5],HEX[6]}=7'b0001111;4'd8:{HEX[0],HEX[1],HEX[2],HEX[3],HEX[4],HEX[5],HEX[6]}=7'b0000000;4'd9:{HEX[0],HEX[1],HEX[2],HEX[3],HEX[4],HEX[5],HEX[6]}=7'b0000100;default:{HEX[0],HEX[1],HEX[2],HEX[3],HEX[4],HEX[5],HEX[6]}=7'b1111111;endcase end endmodule 3.2.5 counter6程序

      module counter6(Q,nCR,EN,CP);input CP,nCR,EN;output [3:0] Q;reg [3:0] Q;always @(posedge CP or negedge nCR)begin if(~nCR)Q<=4'b0000;//當(dāng)nCR=0時(shí),計(jì)時(shí)器清零 else if(~EN)Q<=Q;//當(dāng)EN=0時(shí),停止計(jì)時(shí),保持 else if(Q==4'b0101)Q<=4'b0000;else Q<=Q+1'b1;//計(jì)時(shí)器正常計(jì)時(shí) end Endmodule 3.2.6 counter10程序

      module counter10(Q,nCR,EN,CP);input CP,nCR,EN;output [3:0] Q;reg [3:0] Q;always @(posedge CP or negedge nCR)begin if(~nCR)Q<=4'b0000;//當(dāng)nCR=0時(shí),計(jì)時(shí)器清零 else if(~EN)Q<=Q;//當(dāng)EN=0時(shí),停止計(jì)時(shí),保持 else if(Q==4'b1001)Q<=4'b0000;else Q<=Q+1'b1;//計(jì)時(shí)器正常計(jì)時(shí) end Endmodule 3.2.7 分頻程序

      module Divided_Frequency(_1HzOut,nCR,_5kHzIN);input _5kHzIN,nCR;output _1HzOut;supply1 Vdd;//定義 Vdd 是高電平

      wire [15:0] Q;//計(jì)時(shí)器的輸出信號(hào)(中間變量)wire EN1,EN2,EN3;// 計(jì)時(shí)器的使能信號(hào)(中間變量)counter10 DU0(Q[3:0],nCR,Vdd,_5kHzIN);//調(diào)用十進(jìn)制 2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計(jì)

      counter10 DU1(Q[7:4],nCR,EN1,_5kHzIN);counter10 DU2(Q[11:8],nCR,EN2,_5kHzIN);counter10 DU3(Q[15:12],nCR,EN3,_5kHzIN);assign EN1=(Q[3:0]==4'h9);assign EN2=(Q[7:4]==4'h9)&(Q[3:0]==4'h9);assign EN3=(Q[11:8]==4'h9)&(Q[7:4]==4'h9)&(Q[3:0]==4'h9);assign _1HzOut=Q[15];//assign _500HzOut=Q[0];endmodule 3.2.8 校時(shí)模塊程序

      module top_clock(Second,Minute,Hour,_1Hz,nCR,AdjMinKey,AdjHrkey);input _1Hz,nCR,AdjMinKey,AdjHrkey;output [7:0] Second,Minute,Hour;wire [7:0] Hour,Minute,Second;supply1 Vdd;wire MinCP,HrCP;counter60 UT1(Second,nCR,Vdd,_1Hz);//調(diào)用counter60,對秒計(jì)時(shí) counter60 UT2(Minute,nCR,Vdd,~MinCP);// 調(diào)用counter60,對分校時(shí)

      counter24 UT3(Hour[7:4],Hour[3:0],nCR,Vdd,~HrCP);//調(diào)用counter24,對時(shí)校時(shí) assign MinCP=AdjMinKey ? _1Hz:(Second==8'h59);//當(dāng)MinCP=AdjMinKey時(shí),執(zhí)行校時(shí),當(dāng)MinCP≠AdjMinKey時(shí),秒計(jì)時(shí)至59 時(shí)向分進(jìn)位 assign HrCP=AdjHrkey?_1Hz:({Minute,Second}==16'h5959);//當(dāng)HrCP=AdjHrkey時(shí),執(zhí)

      行校時(shí),當(dāng)HrCP≠AdjHrkey時(shí),分

      秒計(jì)時(shí)至59分59秒時(shí)向時(shí)進(jìn)位 Endmodule 四.調(diào)試及結(jié)果

      4.1 模塊仿真

      4.1.1 counter10模塊仿真

      CP為時(shí)鐘脈沖;當(dāng)CP↑,EN和nCR為高電平時(shí)Q計(jì)數(shù);Q的計(jì)數(shù)范圍為[0,9]

      圖counter10仿真波形圖 2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計(jì)

      4.1.2 counter24模塊仿真

      CP為時(shí)鐘脈沖;當(dāng)CP↑,EN和nCR為高電平時(shí)Q計(jì)數(shù);Q的計(jì)數(shù)范圍為[0,23]

      圖24 counter24仿真波形圖

      4.1.3 counter60模塊仿真

      CP為時(shí)鐘脈沖;當(dāng)CP↑,EN和nCR為高電平時(shí)Q計(jì)數(shù);Q的計(jì)數(shù)范圍為[0,59]

      圖25 counter60仿真波形圖

      4.1.4 分頻模塊仿真

      分頻器是將輸入的基本時(shí)鐘信號(hào)分頻為其他模塊需要的5kHZ 和1HZ 的信號(hào).其中CLK 輸入為5kHZ , CLK2 輸出1HZ 信號(hào),分頻實(shí)際也是用了計(jì)數(shù)器的原理。

      圖26 分頻模塊仿真波形圖

      4.1.5 top_clock計(jì)時(shí)模塊仿真 2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計(jì)

      當(dāng)秒計(jì)時(shí)到59時(shí),向分進(jìn)一位,當(dāng)秒計(jì)時(shí)到59且分計(jì)時(shí)到59時(shí)向時(shí)進(jìn)一位。當(dāng)時(shí)分秒計(jì)時(shí)到23’59’59時(shí),計(jì)時(shí)器清零。

      圖27 top_clock計(jì)時(shí)模塊仿真波形圖

      4.2 程序下載

      圖28 時(shí)測試校時(shí),時(shí)至23 圖29 時(shí)測試校時(shí),時(shí)進(jìn)位至00

      圖30 分測試校時(shí)分至59

      圖31 分測試校時(shí),分進(jìn)位至00 圖32 59分52秒,LEDG1亮 圖33 59分55秒,LEDG4亮 2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計(jì)

      圖34 59分57秒,LEDG6亮

      圖35 59分59秒,LEDR0亮

      4.3分析運(yùn)行結(jié)果

      4.3.1 設(shè)計(jì)總結(jié)

      本次大型作業(yè)我們所研究的課題是基于FPGA的數(shù)字電子時(shí)鐘的設(shè)計(jì)與實(shí)現(xiàn)。時(shí)鐘設(shè)計(jì)的方法是通過計(jì)時(shí)模塊、分頻模塊、校時(shí)模塊、譯碼顯示模塊和倒計(jì)時(shí)報(bào)時(shí)模塊來構(gòu)成該電子時(shí)鐘。計(jì)時(shí)模塊為時(shí)分秒計(jì)時(shí),采用24進(jìn)制計(jì)時(shí)。因此該模塊中調(diào)用了24進(jìn)制和60進(jìn)制兩個(gè)程序,其中60進(jìn)制采用的是調(diào)用6進(jìn)制和10進(jìn)制的方法來實(shí)現(xiàn)。

      分頻模塊輸入一頻率為50MHz的信號(hào),經(jīng)過四次10^2分頻,將信號(hào)逐次分為500KHz、5KHz、50Hz直至0.5Hz。計(jì)時(shí)模塊就由分頻器分頻出來的標(biāo)準(zhǔn)秒脈沖進(jìn)行計(jì)時(shí),時(shí)、分、秒計(jì)時(shí)模塊分別由二十四進(jìn)制時(shí)計(jì)數(shù)器、六十進(jìn)制分計(jì)數(shù)器和六十進(jìn)制秒計(jì)數(shù)器完成,校時(shí)模塊完成時(shí)和分的校正。我們還進(jìn)行了擴(kuò)展功能設(shè)計(jì)——倒計(jì)時(shí)流水燈功能,從59分55秒至59分59秒,每秒亮一盞燈報(bào)時(shí),55秒至58秒,依此亮綠燈,59秒亮紅燈。

      通過這兩周的課程設(shè)計(jì),我們熟悉了基于FPGA的數(shù)字電子時(shí)鐘的設(shè)計(jì)與實(shí)現(xiàn)的整個(gè)流程,文本編輯,功能仿真,邏輯綜合,布局布線,編程下載,每一步剛開始或多或少有些問題,但在我們不斷努力學(xué)習(xí)補(bǔ)充修改后,最終圓滿完成數(shù)字電子時(shí)鐘的時(shí)、分、秒的計(jì)時(shí)和校時(shí)功能,復(fù)位功能,還設(shè)計(jì)實(shí)現(xiàn)了倒計(jì)時(shí)流水燈擴(kuò)展功能。

      4.3.2 心得體會(huì)

      為期兩周的大型作業(yè),我們組順利完成了基于FPGA的數(shù)字電子時(shí)鐘設(shè)計(jì)與實(shí)現(xiàn)的課程設(shè)計(jì)。從剛開始對Verilog語言非常陌生,到最后接近熟練地掌握Verilog語言的程度,期間花費(fèi)不少時(shí)間和精力,同時(shí)也收獲了很多,學(xué)會(huì)了 2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計(jì)

      使用Verilog語言編程仿真電路實(shí)驗(yàn),掌握了可編程邏輯器件的應(yīng)用開發(fā)技術(shù),熟悉了一種EDA軟件使用,掌握了Verilog設(shè)計(jì)方法,即分模塊分層次的設(shè)計(jì)方法。

      在設(shè)計(jì)的過程中,因?yàn)閯倓偨佑|這種編程語言,我們也遇到了很多問題。但是我們沒有放棄過,不斷檢查糾正錯(cuò)誤。Verilog源程序的編寫很容易出現(xiàn)錯(cuò)誤,這就需要耐心的調(diào)試。因?yàn)楹芏嗲闆r下,一長串的錯(cuò)誤往往是由一個(gè)不經(jīng)意的小錯(cuò)誤引起的。有時(shí)程序一直出錯(cuò)找不到原因的時(shí)候,我們也會(huì)去虛心向別的組的同學(xué)請教,或者和他們一起討論問題,從中得到一些啟發(fā)。

      由于設(shè)備和時(shí)間的限制,我們還有一部分?jǐn)U展內(nèi)容沒能夠完成,即數(shù)字鐘的整點(diǎn)蜂鳴報(bào)時(shí)功能。但本次設(shè)計(jì)實(shí)驗(yàn)已使我們對Verilog語言產(chǎn)生了濃厚的興趣,在以后的學(xué)習(xí)生活中會(huì)主動(dòng)去了解更多有關(guān)這方面的知識(shí)及其在實(shí)踐中的應(yīng)用。

      這次大型作業(yè),不僅讓我們又掌握了一些新的知識(shí),也提高了我們的動(dòng)手能力和科學(xué)嚴(yán)謹(jǐn)?shù)木?。其次也培養(yǎng)了我們自學(xué)的能力,遇到不明白的地方可以通過思考、查資料、與同學(xué)交流多種方式解決問題。這些對于我們以后的學(xué)習(xí)和工作都有極大的幫助。

      4.3.3 致謝

      最后,我們要感謝系里提供這一次的機(jī)會(huì)讓我們學(xué)到更多知識(shí),并且提供了這么好的學(xué)習(xí)條件,設(shè)備、學(xué)習(xí)環(huán)境、師資等方面都非常好。同時(shí)也要感謝周麗婕老師和陶亞雄老師兩周以來耐心的指導(dǎo),在我們遇到問題的時(shí)候,是她們悉心的指導(dǎo)幫助和不厭其煩的講解下我們才得以順利的完成這次的設(shè)計(jì),我們再次表示由衷的感謝!

      第三篇:基于FPGA的CDMA數(shù)字基帶系統(tǒng)設(shè)計(jì)

      摘 要

      隨著現(xiàn)代通信技術(shù)的發(fā)展,特別是移動(dòng)通信技術(shù)的高速發(fā)展,CDMA技術(shù)越來越被人們所關(guān)注。而基于FPGA的CDMA數(shù)字基帶系統(tǒng)正是一種新興的具有很大可行性的技術(shù)。本文給出了CDMA數(shù)字基帶收發(fā)系統(tǒng)的設(shè)計(jì)方案,并以Xilinx ISE 8.1為硬件開發(fā)平臺(tái),利用FPGA實(shí)現(xiàn)了4路信息信號(hào)的擴(kuò)頻、編碼調(diào)制和解擴(kuò)、解調(diào)、驗(yàn)證了初始方案的可行性。運(yùn)用VHDL語言,實(shí)現(xiàn)對CDMA通訊系統(tǒng)的上行鏈路數(shù)字部分進(jìn)行設(shè)計(jì),對有關(guān)模塊的編譯,編譯通過后的結(jié)果,以及使用Xilinx系列芯片通過仿真得到波形,證明了整個(gè)系統(tǒng)原理和設(shè)計(jì)提出的正確性。關(guān)鍵詞:CDMA;數(shù)字基帶;FPGA;Xilinx

      目錄

      1.課程設(shè)計(jì)目的...............................................................................................................1 2.軟、硬件環(huán)境介紹.....................................................................................................1 4.CDMA基帶傳輸系統(tǒng)簡介..........................................................................................2 5.CDMA基帶系統(tǒng)設(shè)計(jì)....................................................................................................2

      5.1 系統(tǒng)設(shè)計(jì)平臺(tái)...............................................................................................................2 5.2 CDMA系統(tǒng)設(shè)計(jì)原理......................................................................................................2

      6.系統(tǒng)總體設(shè)計(jì)...........................................3

      6.1 CDMA的整體設(shè)計(jì)框圖..................................................................................................3 6.2 利用VHDL語言編程實(shí)現(xiàn)的分頻電路模塊.................................................................4

      7.本系統(tǒng)完成的功能.......................................4

      7.1 Walsh碼發(fā)生器............................................................................................................4 7.1.1 生成Walsh碼調(diào)制(地址編碼)的模塊圖...........................................................5 7.2 PN碼、信息碼發(fā)生器..................................................................................................5 7.2.1 生成PN擴(kuò)頻的模塊圖.............................................................................................5 7.3 調(diào)制與解調(diào)...................................................................................................................6

      8.程序代碼..............................................7

      8.1 分頻器模塊...................................................................................................................7 8.2 PSK模塊........................................................................................................................7 8.3串并轉(zhuǎn)換模塊................................................................................................................8

      9.仿真調(diào)試與結(jié)果.........................................9 10.設(shè)計(jì)心得體會(huì).........................................11 11.參考文獻(xiàn).............................................12

      1.課程設(shè)計(jì)目的

      《應(yīng)用電子技術(shù)綜合實(shí)訓(xùn)》是電子信息工程專業(yè)技術(shù)教育的重要實(shí)踐教學(xué)環(huán) 節(jié),對學(xué)生掌握基本理論、運(yùn)用基本知識(shí)、訓(xùn)練基本技能和達(dá)到技術(shù)教育培養(yǎng)目標(biāo)的要求有著十分重要的意義和作用。通過對具體應(yīng)用電子電路的設(shè)計(jì)和開發(fā)過程的練習(xí),加深學(xué)生對基礎(chǔ)理論的理解,掌握設(shè)計(jì)電路、開發(fā)電路和實(shí)現(xiàn)電路的能力,能熟練應(yīng)用開發(fā)軟件。培養(yǎng)學(xué)生獨(dú)立思考、解決實(shí)際工程問題的能力,為專業(yè)理論知識(shí)的學(xué)習(xí)和專業(yè)技能訓(xùn)練打好堅(jiān)實(shí)的基礎(chǔ)。

      2.軟、硬件環(huán)境介紹

      1.軟件環(huán)境:Windows XP操作系統(tǒng)、Xilinx ISE8.1 EDA集成開發(fā)環(huán)境; 2.硬件環(huán)境:個(gè)人計(jì)算機(jī)一臺(tái)

      3.Xilinx ISE8.1 EDA集成開發(fā)環(huán)境介紹:

      ISE的全稱為Integrated Software Environment,即“集成軟件環(huán)境”,是Xilinx公司的硬件設(shè)計(jì)工具。相對容易使用的、首屈一指的PLD設(shè)計(jì)環(huán)境。ISE將先進(jìn)的技術(shù)與靈活性、易使用性的圖形界面結(jié)合在一起,能在最短的時(shí)間,以最少的努力,達(dá)到最佳的硬件設(shè)計(jì)。

      Xilinx公司的ISE開發(fā)設(shè)計(jì)軟件的工程設(shè)計(jì)流程,具體分為五個(gè)步驟:即輸入(Design Entry)、綜合(Synthesis)、實(shí)現(xiàn)(Implementation)、驗(yàn)證(Verification)、下載(Download)。4.Xilinx公司介紹:

      Xilinx(賽靈思)是全球領(lǐng)先的可編程邏輯完整解決方案的供應(yīng)商。Xilinx研發(fā)、制造并銷售范圍廣泛的高級(jí)集成電路、軟件設(shè)計(jì)工具以及作為預(yù)定義系統(tǒng)級(jí)功能的IP(Intellectual Property)核。客戶使用Xilinx及其合作伙伴的自動(dòng)化軟件工具和IP核對器件進(jìn)行編程,從而完成特定的邏輯操作。Xilinx公司成立于 1984年,Xilinx首創(chuàng)了現(xiàn)場可編程邏輯陣列(FPGA)這一創(chuàng)新性的技術(shù),并于1985年首次推出商業(yè)化產(chǎn)品。眼下Xilinx滿足了全世界對 FPGA產(chǎn)品一半以上的需求。Xilinx產(chǎn)品線還包括復(fù)雜可編程邏輯器件(CPLD)。在某些控制應(yīng)用方面CPLD通常比FPGA速度快,但其提供的邏輯資源較少。Xilinx可編程邏輯解決方案縮短了電子設(shè)備制造商開發(fā)產(chǎn)品的時(shí)間并加快了產(chǎn)品面市的速度,從而減小 了制造商的風(fēng)險(xiǎn)。與采用傳統(tǒng)方法如固定邏輯門陣列相比,利用Xilinx可編程器件,客戶可以更快地設(shè)計(jì)和驗(yàn)證他們的電路。而且,由于Xilinx器件是只需要進(jìn)行編程的標(biāo)準(zhǔn)部件,客戶不需要象采用固定邏輯芯片時(shí)那樣等待樣品或者付出巨額成本。Xilinx產(chǎn)品已經(jīng)被廣泛應(yīng)用于從無線電話基站到DVD播放機(jī)的數(shù)字電子應(yīng)用技術(shù)中。

      4.CDMA基帶傳輸系統(tǒng)簡介

      CDMA(Code Division Multiple Access)是在數(shù)字通信技術(shù)的分支擴(kuò)頻通信的基礎(chǔ)上發(fā)展起來的一項(xiàng)技術(shù)。它主要用于利用相互正交(或者盡可能正交)的不同編碼分配給不同用戶調(diào)制信號(hào),實(shí)現(xiàn)多用戶同時(shí)使用同一頻率接入系統(tǒng)和網(wǎng)絡(luò)的通信。本文針對 CDMA 碼分多址技術(shù)設(shè)計(jì)1個(gè)4路用戶傳輸系統(tǒng) , 省去了載波調(diào)制部分 , 把 CDMA擴(kuò)頻系統(tǒng)中傳輸?shù)男盘?hào)簡化為數(shù)字基帶信號(hào) , 并做出一個(gè)與之相應(yīng)的擴(kuò)頻編碼調(diào)制收發(fā)系統(tǒng),系統(tǒng)采用Walsh 函數(shù)正交碼作為地址碼調(diào)制原數(shù)據(jù)信號(hào) , 選用m序列作為擴(kuò)頻的偽隨機(jī)碼。

      5.CDMA基帶系統(tǒng)設(shè)計(jì)

      5.1 系統(tǒng)設(shè)計(jì)平臺(tái)

      開發(fā)工具軟件采用Xilinx公 司 的 EDA 工 具Xilinx ISE。利用 ISE中提供的編程語言設(shè)計(jì)方法和圖形設(shè)計(jì)方法實(shí)現(xiàn)系統(tǒng)各部分的功能。

      5.2 CDMA系統(tǒng)設(shè)計(jì)原理

      CDMA技術(shù)基于擴(kuò)頻通信的基本原理,將要傳送的具有一定信號(hào)帶寬的信息數(shù)據(jù),用一個(gè)帶寬遠(yuǎn)大于信號(hào)帶寬的高速偽隨機(jī)編碼信號(hào)去調(diào)制它,使原信息數(shù)據(jù)信號(hào)的帶寬被大大擴(kuò)頻,再經(jīng)載波調(diào)制后發(fā)射出去。接收端則使用完全相同的偽隨機(jī)碼,與接收的帶寬信號(hào)做相關(guān)處

      理,把寬帶信號(hào)變換成信息數(shù)據(jù)的窄帶信號(hào)(解擴(kuò))實(shí)現(xiàn)數(shù)據(jù)通信。這種擴(kuò)頻通信的明顯特點(diǎn)是采用編碼調(diào)制、頻譜擴(kuò)頻和相關(guān)處理技術(shù)。使用擴(kuò)頻編碼調(diào) 制易于保密也可供多用戶使用。另外,對信息數(shù)據(jù)的頻譜擴(kuò)展,使功率譜密度明顯降低,既不容易被別人發(fā)現(xiàn)又不容易干擾別人。CDMA通信多址干擾的大小決定于擴(kuò)頻編碼間的互相關(guān)值,如果該值非常小乃至可以忽略,那么接收調(diào)解輸出結(jié)果就只有原數(shù)據(jù)信號(hào)和噪聲。所以CDMA可在同一載波頻率上同時(shí)傳送多個(gè)用戶的信息、數(shù)據(jù)、實(shí)現(xiàn)多址通信。編碼之間的互相關(guān)值越小,多址通信用戶就越多。

      6.系統(tǒng)總體設(shè)計(jì)

      6.1 CDMA的整體設(shè)計(jì)框圖

      整體框圖如圖 1 所示。

      說明:圖 1 中“→”表示信號(hào)是1路, “→”表示信號(hào)是 4路。觸發(fā)時(shí)鐘 : 該收發(fā)系統(tǒng)受同步時(shí)鐘控制,在全局時(shí)鐘的基礎(chǔ)上進(jìn)行分頻,詳見表1。

      表 1 觸發(fā)時(shí)鐘分頻

      圖1 CDMA基帶收發(fā)系統(tǒng)概念框圖 6.2 利用VHDL語言編程實(shí)現(xiàn)的分頻電路模塊

      圖2.實(shí)現(xiàn)的多分頻模塊圖

      7.本系統(tǒng)完成的功能

      本收發(fā)系統(tǒng)主要由調(diào)制器和解調(diào)器兩部分組成。它們完成的功能如下:(a)調(diào)制器:內(nèi)嵌于編碼器中的信息信號(hào)發(fā)生器產(chǎn)生的 4 路輸入信號(hào),經(jīng) Walsh 調(diào)制、PN 擴(kuò)頻、基帶求和與并串變換成為 1 路信號(hào),完成調(diào)制。

      (b)解調(diào)器:接收端將收到的 1 路信號(hào)首先進(jìn)行串并變換,在取得同步的基礎(chǔ)上進(jìn)行 PN 解擴(kuò)和 Walsh 解調(diào),恢復(fù)出 4 路輸入信息。

      7.1 Walsh碼發(fā)生器

      Walsh函數(shù)是一種非正弦的完備正交函數(shù)集。由于它采用的是數(shù)字系統(tǒng),比較適合于用來表達(dá)和處理數(shù)字信號(hào)??紤]到是數(shù)字基帶系統(tǒng) , 本系統(tǒng)采用的 Walsh 碼組應(yīng)為:

      W1={1,1,1,1};W2={1,0,1,0};W3={1,1,0,0};W4={1,0,0,1}。

      該發(fā)生器利用 ISE 編程實(shí)現(xiàn)較簡單,在 Walsh碼時(shí)鐘(全局時(shí)鐘的 24 分頻)的控制下,每出現(xiàn)一次時(shí)鐘跳變事件,輸出端以4為周期依次輸出1111,1010,1100和1001的碼序列。

      沃爾什(Walsh)碼是正交碼,經(jīng)常被用作碼分多址系統(tǒng)的地址碼,Walsh碼產(chǎn)生模塊作為擴(kuò)頻傳輸?shù)牡刂反a,并且具有檢測使用中的兩路Walsh碼是否正交 的功能。本設(shè)計(jì)中使用Walsh,存儲(chǔ)在發(fā)射端數(shù)據(jù)寄存器中,擴(kuò)頻過程中根據(jù) Walsh碼的地址控制信號(hào)。抽取兩路 Walsh 碼分別對兩路消息碼進(jìn)行擴(kuò)頻。接收端截獲串行的數(shù)字信息流后,從接收端的數(shù)據(jù)寄存器中取出 Walsh 碼對接收信號(hào)進(jìn)行解擴(kuò)。Walsh 碼電路的設(shè)計(jì)思路運(yùn)用了譯碼的原理來實(shí)現(xiàn)。

      7.1.1 生成Walsh碼調(diào)制(地址編碼)的模塊圖

      Walsh 碼調(diào)制所生成的模塊圖為圖3所示。

      圖3 Walsh碼調(diào)制模塊圖

      Walsh 碼調(diào)制的仿真圖為圖 4所示。

      圖4 Walsh碼調(diào)制仿真結(jié)果圖

      7.2 PN碼、信息碼發(fā)生器

      利用7個(gè)D觸發(fā)器相互級(jí)聯(lián)實(shí)現(xiàn)周期為 127 的 PN 序列。具體構(gòu)成依據(jù) m 序列特征多項(xiàng)式 , 由 ISE提供圖形設(shè)計(jì)方法實(shí)現(xiàn)。PN 碼時(shí)鐘為全局時(shí)鐘的 3 分頻。信息碼的產(chǎn)生則只需在信息碼時(shí)鐘的控制下 , 從同樣的級(jí)聯(lián)中引出 4 路信號(hào)作為信息碼 , 信息碼時(shí)鐘為全局時(shí)鐘的 96 分頻。

      7.2.1 生成PN擴(kuò)頻的模塊圖

      由 PN 擴(kuò)頻所生成的模塊圖為圖5所示。

      圖5 PN 擴(kuò)頻所生成的模塊圖

      7.3 調(diào)制與解調(diào)

      在數(shù)字基帶系統(tǒng)中,Walsh 碼調(diào)制可以簡單地用同或門來實(shí)現(xiàn),而PN擴(kuò)頻則可通過簡單的異或門實(shí)現(xiàn)。在實(shí)現(xiàn) Walsh 碼解調(diào)與解擴(kuò)時(shí) ,PN 解擴(kuò)只需在接收端加 1 異或門。下面著重介紹一下 Wlash 碼解調(diào)的方法———相關(guān)檢測。

      相關(guān)檢測原理舉例解釋(見表 2)。

      表2相關(guān)原理檢測舉例解釋

      Walsh調(diào)制碼即原信息碼與Walsh 碼同或 , 所得 4 路碼統(tǒng)計(jì)所得 1 的個(gè)數(shù)并轉(zhuǎn)化成相應(yīng) 3 比特并行碼 , 例如表中 Walsh編碼的第 1 列轉(zhuǎn)化為010,第2列為100。在接收端則根據(jù)傳遞來的接收信息逐路進(jìn)行相關(guān)檢測。相關(guān)檢測 規(guī)則列于表 3 中。

      表3 相關(guān)檢測規(guī)則 8.程序代碼

      8.1 分頻器模塊

      module clk_div(clk_in,rst_n,clk_out);parameter cnt_top=10;clk_in/clk_out=cnt_top; parameter width=4;parameter duty=50;input clk_in;input rst_n;output clk_out;reg clk_out;reg [width-1:0]cnt;always@(posedge clk_in or negedge rst_n)begin if(!rst_n)cnt<=0;else if(cnt==(cnt_top-1))cnt<=0;else cnt<=cnt+1'b1;end always@(posedge clk_in or negedge rst_n)begin if(!rst_n)clk_out<=0;else if(cnt<(cnt_top*duty)/100)clk_out<=1;else clk_out<=0;end endmodule 8.2 PSK模塊

      module pskmod(clk,rst,seq,in,out);input clk,rst,seq;input [7:0] in;output [7:0] out;reg [7:0] out;always @(posedge clk or negedge rst)begin if(!rst)out=0;else begin if(seq)out=in;else out=~in;end end endmodule 8.3串并轉(zhuǎn)換模塊

      module ser2par2(clk,rst,in,out,flag);//serial to parallel input clk,rst;input in;output flag;output [3:0]out;reg [3:0]out;reg [1:0]cnt;reg flag;always @(posedge clk or negedge rst)begin if(!rst)begin out=0;end else begin case(cnt)2'b00:out[0]=in;2'b01:out[1]=in;2'b10:out[2]=in;2'b11:out[3]=in;default:out[0]=in;endcase end end always @(posedge clk or negedge rst)begin if(!rst)flag=0;else begin cnt=cnt+1;if(cnt==2'b11)flag=1;else flag=0;end end endmodule 9.仿真調(diào)試與結(jié)果

      點(diǎn)擊processes框下的modelsim simulator中Simulation Behavioral Model,調(diào)用Modelsim對模塊進(jìn)行仿真。(注,同一時(shí)刻僅能有一個(gè)modelsim打開)。雙擊后調(diào)用modelsim,在彈出的modelsim界面中,已有部分仿真結(jié)果,如圖6所示。

      圖6 軟件仿真界面

      在transcript框中輸入“restart”,在彈出的對話框中選ok。各端口信號(hào) 清空,如圖7所示。

      圖7 清空端口信號(hào) 在transcript框中輸入命令,run 10us。仿真運(yùn)行10us。查看仿真功能。驗(yàn)證程序設(shè)計(jì)正確性。由于數(shù)字信號(hào)不易查看輸出信號(hào)的變化,因而可在輸出波形窗口對應(yīng)信號(hào)上單擊右鍵,選擇format->analog(automatic), 得到模擬信號(hào)波形進(jìn)行觀察,如圖8所示。

      圖8 波形仿真結(jié)果

      10.設(shè)計(jì)心得體會(huì)

      通過這次課程設(shè)計(jì),我深刻的體會(huì)到企業(yè)局域網(wǎng)建設(shè)是一項(xiàng)涉及面廣、技術(shù)復(fù)雜、周期比較長的系統(tǒng)工程。它既是建設(shè)一個(gè)集計(jì)算機(jī)網(wǎng)絡(luò)與各類信息的搜集、傳遞、處理、加工為一體的信息樞紐中心,又是一項(xiàng)為企業(yè)的生產(chǎn)、經(jīng)營、產(chǎn)品開發(fā)及領(lǐng)導(dǎo)決策服務(wù)的綜合工程。設(shè)計(jì)一個(gè)好的局域網(wǎng)需要有清晰的思維和整體布局的能力,總體說來還是一個(gè)比較難的工作。

      在這次課程設(shè)計(jì)過程中,通過查找相關(guān)書籍和相關(guān)資料,也使得自己增長了不少知識(shí)。從這次課設(shè)我充分認(rèn)識(shí)到自己相關(guān)網(wǎng)絡(luò)知識(shí)的缺乏,雖然也用了很長時(shí)間但設(shè)計(jì)方案還是缺乏一定的可行性。在這次課程設(shè)計(jì)過程中我也認(rèn)真閱讀了相關(guān)書籍,對局域網(wǎng)有了一定的了解,所以說這次課設(shè)我還是收獲不小。11.參考文獻(xiàn)

      [1]李棟.多進(jìn)制擴(kuò)頻系統(tǒng)的關(guān)鍵技術(shù)的研究[D].西安:西安電子科技大學(xué)出版社,2001.[2]胡兵.自適應(yīng)陣在碼分多址(CDMA)中的應(yīng)用[D].西安 :西北工業(yè)大學(xué),2001.[3] 李暢怡.基于擴(kuò)展頻譜和CDMA的數(shù)字視頻移動(dòng)通信研究[D].長沙 :湖南大學(xué),2001.[4] 常娥.突發(fā)性擴(kuò)頻信號(hào)的同步技術(shù)研究[D].大連 :大連理工大學(xué),2003.[6] R.C.Dixon, Spread Spectrum Systems[M].New York: John Wiley & Sons, 1976.[5] 鄔民鶯.IS-95 CDMA 前向鏈路的研究與仿真[D].大連 :大連海事大學(xué)出版社 , 2003.

      第四篇:用FPGA設(shè)計(jì)MP3個(gè)人數(shù)字播放機(jī)

      引 言

      MPEG(活動(dòng)影像專業(yè)人員組織)是為數(shù)字音頻確定單一編碼和解碼(壓縮/解壓縮)方法于1988年建立的。1992年,國際標(biāo)準(zhǔn)組織(ISO)和國際電工委員會(huì)(IEC)為音頻和視頻編碼建立了MPEG1(ISO/IEC11172)標(biāo)準(zhǔn)。這使得業(yè)內(nèi)在處理新數(shù)字世紀(jì)出現(xiàn)的各種類型音頻/視頻媒體

      時(shí)統(tǒng)一在單一格式上。

      隨著以數(shù)字形式存儲(chǔ)和播放音樂的MPEG Audio Layer3(MP3)格式的發(fā)展,個(gè)人數(shù)字播放機(jī)市場開始出現(xiàn)巨大的發(fā)展機(jī)會(huì)。非壓縮的音頻磁軌的MP3數(shù)字文件只有原來磁軌大小的1/10。能保持74分鐘數(shù)字音頻錄音時(shí)間的650Mbytes讀寫CD可以保持740分鐘MP3壓縮音頻數(shù)據(jù)。數(shù)字播放機(jī)的一般解決方案是采用軟件形式(如基于Windows或其他OS基礎(chǔ)上的“Internet Audio Player”)或硬件形式(如“Portable MP3 Player”)。如Diamond Multimedia公司的Rio PMP300和Rio PMP500 MP3數(shù)字播放機(jī)分別采用Actel公司的A40MX04和A40MX09 FPGA實(shí)現(xiàn)其特殊應(yīng)用功能。FPGA能滿足整個(gè)系統(tǒng)的價(jià)格、功耗和性能要求。A40MX04提供547個(gè)邏輯模塊,它們可配置做為組合邏輯或273個(gè)觸發(fā)器和實(shí)現(xiàn)接口邏輯的69個(gè)I/O。A40MX04和A40MX09很容易滿足48MHz速度要求。它們靈活的結(jié)構(gòu)使系統(tǒng)設(shè)計(jì)人員能在每種MP3播放機(jī)

      中最佳地實(shí)現(xiàn)各種功能。

      MP3數(shù)字播放機(jī)系統(tǒng)要求

      MP3播放機(jī)有兩個(gè)基本工作模式:下載模式和播放模式。在下載模式中,在PC上運(yùn)行的軟件允許用戶下載MP3文件到播入機(jī)中的閃存卡。一旦把所有文件下載完,播放機(jī)與PC斷開,并通過耳機(jī)收聽下載的音樂。MP3播放機(jī)有不同的播放選擇控制,如播放、快進(jìn)、快倒、停止/暫停、音量控制、隨機(jī)播放和重復(fù)播放功能。

      MP3播放機(jī)包含可輸入到PC的軟件。軟件提供用戶接口以便通過PC并行端口選擇、定序和下載不同音樂的MP3文件到播放機(jī)。圖1示出系統(tǒng)級(jí)框圖。

      通過并行端口下載音樂到播放機(jī),其速率大約為每1MB編碼音樂10秒。MP3播放機(jī)的小尺寸對所有元件的物理尺寸有嚴(yán)格限制。另外,MP3播放機(jī)是便攜、電池供電裝置,需要工作在大約180mW低功率下。這兩個(gè)因素對功能設(shè)計(jì)的元件選擇有很大的影響。

      用FPGA實(shí)現(xiàn)MP3系統(tǒng)

      圖2示出Rio PMP500系統(tǒng)框圖,其中A42MX09 FPGA做為接口FPGA,它包含CPU接口、帶ECC(Error Correcting Code)支持的閃存和靈巧存儲(chǔ)器接口、時(shí)鐘產(chǎn)生邏輯、功能控制邏輯和

      鍵功能檢測邏輯單元。

      A42MX09中的CPU I/F單元提供與系統(tǒng)CPU(NECD78P064GC微控制器,帶集成LCD控制器)的通信通路。CPU運(yùn)行在2.5MHz,控制整個(gè)系統(tǒng)的工作。對于任何所需要的操作,CPU喚醒系統(tǒng)并設(shè)置整個(gè)系統(tǒng)。CPU存取系統(tǒng)存儲(chǔ)器和管理整個(gè)閃存的配置、編程和存取。CPU有一個(gè)到MP3處理器的接口。MP3從閃存讀的數(shù)據(jù)由CPU寫到MP3處理器。MP3處理器譯碼MP3數(shù)據(jù)并把數(shù)據(jù)送到DAC,以便模擬輸出到耳機(jī)。

      A42MX09中的靈巧存儲(chǔ)器接口單元是連接靈巧存儲(chǔ)器卡的接口。靈巧存儲(chǔ)器卡是一個(gè)外部閃存,用來增加整個(gè)系統(tǒng)存儲(chǔ)器以便在播放機(jī)中存儲(chǔ)更多的歌曲。到靈巧存儲(chǔ)器卡的信號(hào)接口非

      常類似于閃存接口。

      閃存接口單元用于控制閃存,閃存保存通過并行端口下載的MP3文件。另外,ECC用Hamming碼函數(shù)實(shí)現(xiàn)。Hamming碼是一種FEC(Forward Error Correction)工具,當(dāng)所用數(shù)據(jù)通過噪聲媒體時(shí)FEC能校正錯(cuò)誤。原始數(shù)據(jù)具有額外的校驗(yàn)位附加在每個(gè)字組以生成一個(gè)碼字。這些額外位用“Block Parity”機(jī)理計(jì)算。采用模2運(yùn)算用數(shù)據(jù)位來生成矩陣G得到Hamming碼字。這需要乘法功能,而用A42MX09中的邏輯模塊的組合功能很容易實(shí)現(xiàn)乘法功能。

      A42MX09中的時(shí)鐘產(chǎn)生器從48MHz輸入時(shí)鐘產(chǎn)生驅(qū)動(dòng)器件內(nèi)部不同邏輯單元所需的不同時(shí)鐘。時(shí)鐘產(chǎn)生邏輯單元由觸發(fā)器和組合邏輯構(gòu)成分頻器。A42MX09中的鍵盤檢測單元用于改變播放機(jī)的設(shè)置。鍵盤接口單元一般由檢測鍵盤陣列中連接點(diǎn)(根據(jù)按鍵)的邏輯單元構(gòu)成并把按鍵轉(zhuǎn)變?yōu)榕c該鍵相關(guān)的功能。根據(jù)按鍵檢測執(zhí)行適當(dāng)?shù)墓δ?。陣列由寄存器、鎖存器和組合邏輯

      實(shí)現(xiàn)。

      Rio MP3播放機(jī)的功率由MAX1M1705器件控制,而1705由FPGA功耗控制單元控制。MP3播放機(jī)一般由單節(jié)1.5V電池供電。電池最少應(yīng)能維持12小時(shí)聽所有下載的音樂。功率控制是Rio MP3播放機(jī)的一個(gè)顯著的特點(diǎn)。功率控制器件有兩種功率工作模式:PFM(脈沖頻率調(diào)制)和

      PWM(脈寬調(diào)制)模式。

      PFM模式是低靜態(tài)電流待機(jī)模式,此模式提供120mA總輸出電流并降低靜態(tài)功耗到500uW。PWM模式是高功耗模式,能提供高達(dá)450mA輸出電流。當(dāng)MP3播放機(jī)處于停機(jī)狀態(tài)時(shí),CPU編程寫FPGA的一個(gè)寄存器,從而產(chǎn)生MODE信號(hào)置MAX1M器件進(jìn)入PFM低功率模式。在PFM模式Rio MP3播放機(jī)功耗只有2mW~3mW。當(dāng)MP3播放機(jī)工作時(shí),MODE信號(hào)改變MAX1M器件到PWM模式。Rio MP3播放機(jī)工作狀態(tài)時(shí)的總功率大約在180mW左右。

      下一代MP3系統(tǒng) 下一代MP3系統(tǒng)將改變現(xiàn)在的系統(tǒng),能提供更快的下載、更多的用于播放的音樂文件和更多的用戶從接口/鍵面板選擇。更快的下載可通過采用高速并行端口模式(見IEEE1284)或USB端口實(shí)現(xiàn)。采用高密度閃存連同本地SDRAM基歌曲高速緩沖存儲(chǔ)器可提供更多音樂文件播放并可提供另外的選擇,如快速播放、快進(jìn)、慢播放、編程播放等。其他選擇可包括紅外收發(fā)器,可使用戶從播放機(jī)到播放機(jī)來回發(fā)射數(shù)據(jù)或執(zhí)行某些遠(yuǎn)程控制操作。整個(gè)系統(tǒng)可用一個(gè)FPGA實(shí)現(xiàn),不需要CPU。在FPGA中的音頻DAC控制器邏輯單元可提供I2C接口來控制音頻DAC,音頻DAC通過I2C接口取串行音頻數(shù)據(jù)并變換為模擬音頻提供給耳機(jī)。

      其他新的壓縮方法正在涌現(xiàn),其中ATRAC3(Adaptive Transform Acoustic Coding—自適應(yīng)變換聲頻編碼)標(biāo)準(zhǔn)可壓縮CD音樂數(shù)據(jù)10:1而又能保持CD音質(zhì)。ATRAC3特點(diǎn)是:

      1、通過頻帶分裂濾波器和MDCT(Modified Discrete Cosine Transforms—改進(jìn)式離散余弦變換)

      對信號(hào)分析獲得的。

      2、位率壓縮。利用ATRAC3技術(shù),能實(shí)現(xiàn)音樂信號(hào)的高效率壓縮。

      結(jié)語

      利用FPGA實(shí)現(xiàn)MP3數(shù)字播放機(jī)的主要接口FPGA功能,可有效地滿足系統(tǒng)的性能、功率、價(jià)

      格和尺寸要求。

      第五篇:基于FPGA的直流電機(jī)PWM調(diào)速系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

      FPGA課程設(shè)計(jì)

      題目:基于FPGA的直流電機(jī)PWM調(diào)速系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 班級(jí):微電子學(xué)1202班 姓名:杜英 學(xué)號(hào):1206080201 日期:2016年3月24日

      基于FPGA的直流電機(jī)PWM調(diào)速系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

      1設(shè)計(jì)任務(wù)與要求

      1.1設(shè)計(jì)任務(wù)

      完成基于FPGA的直流電機(jī)PWM調(diào)速系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn),實(shí)現(xiàn)對直流電機(jī)的閉環(huán)調(diào)速,速度值采用LCD或數(shù)碼管顯示。

      1.2設(shè)計(jì)要求

      1.2.1了解PWM控制方法及應(yīng)用;掌握PWM直流電機(jī)調(diào)速控制原理;掌握直流電機(jī)調(diào)速及驅(qū)動(dòng)控制原理;完成基于FPGA的直流電機(jī)PWM調(diào)速系統(tǒng)設(shè)計(jì)。采用PWM(脈沖寬度調(diào)制)技術(shù),速度值采用LCD或數(shù)碼管顯示。

      1.2.2通過課程設(shè)計(jì)的實(shí)踐,進(jìn)一步了解和掌握硬件描述語言(VHDL或Verilog)和TOP-DOWN的設(shè)計(jì)流程,提高對實(shí)際項(xiàng)目的分析和設(shè)計(jì)能力,體會(huì)FPGA項(xiàng)目開發(fā)的過程,熟悉實(shí)驗(yàn)報(bào)告的編寫規(guī)范。

      2設(shè)計(jì)原理分析

      2.1直流電機(jī)結(jié)構(gòu)如下圖1.1所示

      圖2.1 直流電機(jī)的構(gòu)造

      將直流電源通過電刷接通線組線圈,使線組線圈導(dǎo)體(電樞導(dǎo)體)有電流通過,在電磁的作用下,線組線圈將會(huì)產(chǎn)生磁場,同時(shí)產(chǎn)生的磁場與主磁極的磁場產(chǎn)生電磁力,這個(gè)電磁力作用于轉(zhuǎn)子,使轉(zhuǎn)子以一定的速度開始旋轉(zhuǎn),電機(jī)就開始工作。

      在電機(jī)的外部電路加入開關(guān)型的霍爾元件,同時(shí)在電子轉(zhuǎn)子的轉(zhuǎn)盤上加入一個(gè)使霍爾元件產(chǎn)生輸出的帶有磁場的磁鋼片。當(dāng)直流電機(jī)旋轉(zhuǎn)時(shí)轉(zhuǎn)盤與磁鋼片一起旋轉(zhuǎn),當(dāng)磁鋼片轉(zhuǎn)到霍爾元件上方時(shí),可以使霍爾元件的輸出端高電平變?yōu)榈碗娖?。?dāng)磁鋼片離開霍爾元件上方后,霍爾元件輸出端又恢復(fù)高電平。如此,點(diǎn)擊每旋轉(zhuǎn)一周,會(huì)使霍爾元件的輸出端產(chǎn)生一個(gè)低脈沖,可以通過檢測單位時(shí)間內(nèi)霍爾元件輸出端低脈沖的個(gè)數(shù)推算出直流電機(jī)的轉(zhuǎn)速。

      本次設(shè)計(jì)中,調(diào)節(jié)PWM占空比進(jìn)而控制直流電機(jī)轉(zhuǎn)速,在本次設(shè)計(jì)中,為了保護(hù)霍爾元件,故設(shè)定程序每6秒刷新一次數(shù)據(jù),所以在數(shù)碼管顯示的數(shù)據(jù)乘以10就是在該占空比時(shí)的直流電機(jī)每分鐘轉(zhuǎn)速。在這次的實(shí)驗(yàn)中數(shù)碼管采用的8位共陰極數(shù)碼管,通過鎖存器輸入數(shù)據(jù)使得數(shù)碼管的8個(gè)段碼數(shù)字顯示,再通過選擇輸出數(shù)據(jù)對所需數(shù)碼管進(jìn)行選擇。

      2.2電路原理圖

      圖2.2 電路原理圖 3 設(shè)計(jì)方案

      上述原理圖中包含PWM模塊、測速模塊、計(jì)數(shù)模塊、電機(jī)模塊、濾波模塊。電機(jī)的外部電路加入開關(guān)型的霍爾元件,同時(shí)在電子轉(zhuǎn)子的轉(zhuǎn)盤上加入一個(gè)使霍爾元件產(chǎn)生輸出的帶有磁場的磁鋼片。當(dāng)直流電機(jī)旋轉(zhuǎn)時(shí)轉(zhuǎn)盤與磁鋼片一起旋轉(zhuǎn),當(dāng)磁鋼片轉(zhuǎn)到霍爾元件上方時(shí),可以使霍爾元件的輸出端高電平變?yōu)榈碗娖健.?dāng)磁鋼片離開霍爾元件上方后,霍爾元件輸出端又恢復(fù)高電平。如此,點(diǎn)擊每旋轉(zhuǎn)一周,會(huì)使霍爾元件的輸出端產(chǎn)生一個(gè)低脈沖,可以通過檢測單位時(shí)間內(nèi)霍爾元件輸出端低脈沖的個(gè)數(shù)推算出直流電機(jī)的轉(zhuǎn)速。本次設(shè)計(jì)為六秒記一次數(shù),乘十就是每分鐘轉(zhuǎn)速值。再通過驅(qū)動(dòng)模塊顯示數(shù)碼管數(shù)據(jù)。

      4設(shè)計(jì)步驟

      (1)首先確定整體設(shè)計(jì)方案,確定設(shè)計(jì)需要使用的軟件;(2)設(shè)計(jì)電路模塊,編寫各模塊程序代碼并進(jìn)行仿真編譯;(3)完成整體電路圖設(shè)計(jì)后,使用QuartusⅡ軟件對整體電路進(jìn)行仿真調(diào)試;

      (4)連接硬件,使用示波器觀察產(chǎn)生的波形,對不足之處進(jìn)行改進(jìn)調(diào)試。

      5調(diào)試結(jié)果說明

      連接好試驗(yàn)箱,把硬件與實(shí)驗(yàn)箱接通,將程序下載到實(shí)驗(yàn)箱中。進(jìn)行實(shí)驗(yàn),示波器觀察PWM脈沖波形(占空比),看實(shí)驗(yàn)結(jié)果與預(yù)期效果是否相同,若相同,則實(shí)驗(yàn)無誤。其波形如下: 占空比為50%時(shí)

      占空比為90%時(shí)

      將程序下載到實(shí)驗(yàn)箱中后,其實(shí)際操作過程如下: K12為使能鍵,使K12=‘1’;輸入時(shí)鐘信號(hào)為1MHZ;(1)K4=1時(shí),示波器和LED的顯示如下:

      示波器顯示的是霍爾元件單位時(shí)間內(nèi)計(jì)數(shù)的個(gè)數(shù)為31.011 顯示器是每六秒電機(jī)轉(zhuǎn)的圈數(shù)為186轉(zhuǎn)

      結(jié)論:31.011*6=186.066于186近似,所以結(jié)論符合要求。(2)K4=1,k3=1時(shí),示波器和LED的顯示如下:

      結(jié)論:68.6338*6=411.8028于412近似,所以結(jié)論符合要求。(3)K4=1,k3=1,K2=1時(shí),示波器和LED的顯示如下:

      結(jié)論:85.516*6=513.096于513近似,所以結(jié)論符合要求。(4)K4=1,k3=1,K2=1,K1=1時(shí),示波器和LED的顯示如下:

      結(jié)論:90.0339*6=540.2034于541近似,所以結(jié)論符合要求。通過以上的比較,發(fā)現(xiàn)示波器中的結(jié)果與數(shù)碼管上數(shù)據(jù)大概一致,即實(shí)驗(yàn)結(jié)果基本達(dá)到要求。

      6心得體會(huì)

      本次課程設(shè)計(jì),用FPGA控制直流電機(jī),完成直流電機(jī)PWM調(diào)速系統(tǒng)設(shè)計(jì),實(shí)現(xiàn)對直流電機(jī)的閉環(huán)調(diào)速,速度值采用LCD或數(shù)碼管顯示。是一次很好的學(xué)習(xí)和實(shí)踐的機(jī)會(huì)。通過課程設(shè)計(jì),我明白了電機(jī)工作的原理,以及用FPGA控制電機(jī)的原理。最重要的是,對如何設(shè)計(jì)一個(gè)系統(tǒng)有了更進(jìn)一步的了解,積累了很多經(jīng)驗(yàn)。

      從下載測試的結(jié)果來看,設(shè)計(jì)的要求基本上都實(shí)現(xiàn)了。但是仍存在不少問題。每個(gè)模塊生成基本電路后,把各個(gè)模塊的進(jìn)行連接,仿真結(jié)果是正確的。但是當(dāng)連接到試驗(yàn)箱后,電機(jī)正常轉(zhuǎn)動(dòng),LED卻無法顯示。檢查電路和程序還有電路圖,并發(fā)現(xiàn)什么問題。無意中發(fā)現(xiàn)LED偶爾會(huì)出現(xiàn)數(shù)字,但也只是閃一下。最后才發(fā)現(xiàn)是因?yàn)殡姍C(jī)轉(zhuǎn)動(dòng)太快了,LED無法及時(shí)顯示或者是一直在閃,人眼無法識(shí)別。在程序中加入了濾波模塊,才解決了問題。

      在設(shè)計(jì)的過程中,開始照著EDA課本上的原理設(shè)計(jì),后來才發(fā)現(xiàn)所設(shè)計(jì)的電路有很多地方都滿足不了設(shè)計(jì)要求,使設(shè)計(jì)一度遭遇了很大困難。通過與同學(xué)討論請教,逐步改進(jìn)了設(shè)計(jì),終于使設(shè)計(jì)的電路和設(shè)計(jì)要求相吻合。在這中間,通過不斷提出問題,解決問題,我對這次設(shè)計(jì)的原理有了更深的了解,也給我分析問題,解決問題提供了很多好的方法,好的思路。同時(shí),我也發(fā)現(xiàn)了自己存在的很多不足。發(fā)現(xiàn)自己在設(shè)計(jì)一個(gè)系統(tǒng)的時(shí)候不能夠統(tǒng)籌兼顧,不能夠從總體上把握設(shè)計(jì)的思路,也不能看清問題的核心與關(guān)鍵所在。這些都需要在下面不斷學(xué)習(xí)實(shí)踐,理論畢竟只是理論,要多參加實(shí)踐,這樣才能提高自己的能力,積累經(jīng)驗(yàn)。

      附錄一

      PWM模塊程序 Library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity PWM is port(clock:in std_logic;

      duty_cycle:in std_logic_vector(3 downto 0);

      pwm_en:in std_logic;

      pwm_out:out std_logic);end entity;architecture art of PWM is

      signal pwm_out_io:std_logic;

      signal count:std_logic_vector(3 downto 0);begin

      pwm_out<=pwm_out_io;

      process(clock)

      begin

      if rising_edge(clock)then

      if pwm_en='1' then

      count<=count+1;

      end if;

      end if;

      end process;

      process(clock)

      begin

      if rising_edge(clock)then

      if pwm_en='1' and count

      pwm_out_io<='1';

      else

      pwm_out_io<='0';

      end if;

      end if;

      end process;end;

      測速模塊程序 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity cesu is port(clk : in

      std_logic;

      --時(shí)鐘輸入1Mhz

      ena : out

      std_logic;

      --允許計(jì)數(shù)

      clr : out

      std_logic;

      --計(jì)數(shù)器清零信號(hào)產(chǎn)生

      load : out

      std_logic);--鎖存、顯示輸出允許高有效 end cesu;architecture behav of cesu is

      signal clkk :std_logic;

      --1HZ時(shí)鐘信號(hào)

      signal count :integer range 0 to 7;--6秒計(jì)數(shù)

      signal clr1 :std_logic;

      --清零信號(hào)

      signal ena1 :std_logic;

      --允許計(jì)數(shù)信號(hào)

      signal load1 :std_logic;

      --允許計(jì)數(shù)信號(hào)

      --signal cq1,cq2,cq3,cq4 : INTEGER RANGE 0 TO 15;--計(jì)數(shù)數(shù)據(jù) begin

      process(clk)

      variable c:std_logic;

      variable cnt:integer range 0 to 500000;

      begin

      if clk'event and clk='1' then

      cnt:=cnt+1;

      if cnt=500000 then

      cnt:=0;c:=not c;

      end if;

      end if;

      clkk<=c;

      end process;

      process(clkk)

      --6秒計(jì)數(shù)

      begin

      if clkk'event and clkk='1' then

      count<=count+1;

      if count<6 then

      ena1<='1';load1<='0';clr1<='0';

      elsif count=6

      then

      ena1<='0';load1<='1';clr1<='0';

      elsif

      count=7 then

      ena1<='0';load1<='1';clr1<='1';

      end if;

      end if;

      ena<=ena1;

      load<=load1;

      clr<=clr1;

      end process;end behav;

      計(jì)數(shù)模塊程序 library ieee;use ieee.std_logic_1164.all;

      entity cnt10 is

      port(clk:in std_logic;

      --計(jì)數(shù)時(shí)鐘信號(hào)

      clr:in std_logic;

      --清零信號(hào)

      ena:in std_logic;

      --計(jì)數(shù)使能信號(hào)

      cq :out integer range 0 to 15;--4位計(jì)數(shù)結(jié)果輸出

      carry_out:out std_logic);

      --計(jì)數(shù)進(jìn)位

      end cnt10;architecture behav of cnt10 is signal cq1:integer range 0 to 15;begin process(clk,ena)begin

      if

      clr= '1' then cq1<= 0;

      ----計(jì)數(shù)器異步清零

      elsif clk'event and clk= '1' then

      if ena= '1' then

      if cq1=10 then cq1<=1;

      else cq1<=cq1+1;

      end if;

      ----等于9,則計(jì)數(shù)器清零

      end if;

      end if;end process;process(cq1)

      begin

      if cq1=10 then carry_out<= '1';

      ----進(jìn)位輸出

      else carry_out<= '0';

      end if;end process;

      cq<=cq1;end behav;

      驅(qū)動(dòng)模塊程序 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity qudong_8 is port(clk:in std_logic;

      --動(dòng)態(tài)顯示刷新速度時(shí)鐘

      QQ1,QQ2,QQ3:in std_logic_vector(3 downto 0);--32位BCD碼輸入,最0~3低位,28~31最高位

      qudong1:out std_logic_vector(7 downto 0);--驅(qū)動(dòng)信號(hào)輸出,0~7分別為abcdefgp contrl:buffer std_logic_vector(2 downto 0));--數(shù)碼管位選輸出,000最低位數(shù)碼管有效,111最高位數(shù)碼管有效 end qudong_8;architecture behavior of qudong_8 is signal disp:std_logic_vector(3 downto 0);signal temp:std_logic_vector(2 downto 0);begin process(clk)begin

      if clk'event and clk='1' then

      temp<=temp+1;

      end if;

      contrl<=temp;end process;

      process(contrl)

      --位選信號(hào)產(chǎn)生進(jìn)程

      begin

      case contrl is

      --when“000”=>disp<=QQ7;

      --when“001”=>disp<=QQ6;

      --when“010”=>disp<=QQ5;

      --when“011”=>disp<=QQ4;

      when“100”=>disp<=QQ3;

      when“101”=>disp<=QQ2;

      when“110”=>disp<=QQ1;

      --when“111”=>disp<=“0000”;

      when others=>disp<=“0000”;

      end case;end process;process(disp)

      --譯碼進(jìn)程

      begin

      case disp is

      when“0000”=>qudong1<=“00111111”;

      when“0001”=>qudong1<=“00000110”;

      when“0010”=>qudong1<=“01011011”;

      when“0011”=>qudong1<=“01001111”;

      when“0100”=>qudong1<=“01100110”;

      when“0101”=>qudong1<=“01101101”;

      when“0110”=>qudong1<=“01111101”;

      when“0111”=>qudong1<=“00000111”;

      when“1000”=>qudong1<=“01111111”;

      when“1001”=>qudong1<=“01101111”;

      when others=>qudong1<=“00000110”;

      end case;end process;end behavior;

      消抖模塊程序 library ieee;use ieee.std_logic_1164.all;

      entity xiaodou is port(clk,input: in std_logic;output: out std_logic);end xiaodou;

      architecture behav of xiaodou is signal cp:std_logic;signal count:integer range 0 to 3;begin process(clk)begin if(clk'event and clk='1')then--檢測上升沿 if(input='1')then--如果有輸入信號(hào)

      if(count=3)then count<=count;--當(dāng)計(jì)數(shù)達(dá)到3時(shí),保持計(jì)數(shù)值不變 else count<=count+1;--當(dāng)其小于3時(shí),進(jìn)行加1處理 end if;if(count=2)then cp<='1';--如果計(jì)數(shù)達(dá)到2,cp置1 else cp<='0';--其余情況全部為0 end if;else count<=0;--如果計(jì)數(shù)出現(xiàn)非法狀況,進(jìn)行清零復(fù)位 end if;end if;output<=cp;--信號(hào)輸出 end process;end behav;

      下載數(shù)字鎖相環(huán)的FPGA設(shè)計(jì)與實(shí)現(xiàn)-課設(shè)word格式文檔
      下載數(shù)字鎖相環(huán)的FPGA設(shè)計(jì)與實(shí)現(xiàn)-課設(shè).doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦