課程設計論文基于SOPC技術實現(xiàn)數(shù)字鬧鐘_第1頁
課程設計論文基于SOPC技術實現(xiàn)數(shù)字鬧鐘_第2頁
課程設計論文基于SOPC技術實現(xiàn)數(shù)字鬧鐘_第3頁
課程設計論文基于SOPC技術實現(xiàn)數(shù)字鬧鐘_第4頁
課程設計論文基于SOPC技術實現(xiàn)數(shù)字鬧鐘_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于sopc技術實現(xiàn)數(shù)字鬧鐘【摘要】在現(xiàn)代社會,數(shù)字鬧鐘方便了人們的生活和工作。數(shù)碼管顯示的時間簡單明了而且讀數(shù)快、時間準確顯示到秒。該數(shù)字鬧鐘主要采用sopc技術,設計由系統(tǒng)對外部機械按鍵模塊進行掃描獲取部分指令,對外部時鐘分頻后進行小時24分頻計時模塊、分鐘60分頻計時模塊、秒鐘60分頻計時模塊,并進一步建立年月日計時判斷模塊。采用led數(shù)碼管顯示時、分、秒,以24小時計時方式,蜂鳴器則作為鬧鐘聲音提示用。該數(shù)字鬧鐘優(yōu)點是小巧,價格低廉,走時精度高,整點報時和定時非常方便。 關鍵字: sopc技術 數(shù)碼管顯示 整點提示 鬧鐘一、課題簡介 sopc技術是美國altrea公司于2000年最早提

2、出的,并同時推出了相應的開發(fā)軟件quartus ii。sopc是基于fpga解決方案的soc,與asic的soc解決方案相比,sopc系統(tǒng)及其開發(fā)技術具有更多的特色,構成sopc的方案有多種途徑,我們主要用到的是:基于fpga嵌入ip硬核的sopc系統(tǒng)1基于fpga嵌入ip硬核的sopc系統(tǒng)即在fpga中預先植入嵌入式系統(tǒng)處理器。目前最為常用的嵌入式系統(tǒng)大多采用了含有arm的32位知識產權處理器核的器件。盡管由這些器件構成的嵌入式系統(tǒng)有很強的功能,但為了使系統(tǒng)更為靈活完備,功能更為強大,對更多任務的完成具有更好的適應性,通常必須為此處理器配置許多接口器件才能構成一個完整的應用系統(tǒng)。如除配置常規(guī)

3、的sram、dram、flash外,還必須配置網絡通信接口、串行通信接口、usb接口、vga接口、ps/2接口或其他專用接口等。這樣會增加整個系統(tǒng)的體積、功耗,而降低系統(tǒng)的可靠性。但是如果將arm或其他知識產權核,以硬核方式植入fpga中,利用fpga中的可編程邏輯資源和ip軟核,直接利用fpga中的邏輯宏單元來構成該嵌入式系統(tǒng)處理器的接口功能模塊,就能很好地解決這些問題。2基于fpga嵌入ip軟核的sopc系統(tǒng)這種sopc系統(tǒng)是指在fpga中植入軟核處理器,如:nios ii核等。用戶可以根據(jù)設計的要求,利用相應的eda工具,對nios ii及其外圍設備進行構建,使該嵌入式系統(tǒng)在硬件結構、功

4、能特點、資源占用等方面全面滿足用戶系統(tǒng)設計的要求。二、數(shù)字鬧鐘的工作原理及設計過程1、工作原理 數(shù)字鬧鐘組成結構數(shù)字鬧鐘一般由振蕩器、分頻器、計數(shù)器、譯碼器、顯示器及部分擴展電路等組成。1.1 振蕩器振蕩器是數(shù)字電子鐘的核心,其作用是產生一個頻率標準,即時間標準信號,然后再由分頻器生成秒脈沖,所以,振蕩器頻率的精度和穩(wěn)定度就基本決定了數(shù)字電子鐘的準確度,為產生穩(wěn)定的時間標準信號,一般采用石英晶體振蕩器。從數(shù)字電子鐘的精度考慮,振蕩頻率越高記數(shù)精度越高。但這回使振蕩器的耗電量增大,分頻器級數(shù)增多。所以在確定頻率時應同時考慮這兩方面的因素再選擇器材。如果精度要求不是很高的話我們可以采用由集成邏輯門

5、與rc組成的時鐘源振蕩器或由集成電路定時器555與rc組成的多諧振蕩器。一般而言,選用石英晶體振蕩器所選用的晶振頻率為32768hz,再通過15級2分頻集成電路得到1hz的標準秒脈沖。1.2 分頻器振蕩器產生的時標信號頻率很高,要使它變成用來計時的“秒”信號,需要若干級分頻電路,分頻器的級數(shù)和每級分頻次數(shù)要根據(jù)時標信號的頻率來決定。其功能主要有兩個:一是產生標準秒脈沖信號,二是提供功能擴展電路所需的信號。1.3 計數(shù)器有了“秒”信號了就可以根據(jù)60秒為一分,60分為一小時,24小時為一天的進制,分別選定沒“秒”、“分”、“時”的計數(shù)器。從這些計數(shù)器的輸出可得到一分、一小時、一天的時間進位信號。

6、在秒計數(shù)器鐘因為是60進制通常用兩個十進制計數(shù)器的集成片組成,其中秒個位是十進制的、十位是6進制的??刹捎梅答仛w零法變“秒”十位為6進制,實現(xiàn)秒的60進制,同樣,分計數(shù)器的與秒的一樣,只是時計數(shù)器里需要變成24進制,也用反饋歸零法實現(xiàn)。1.4 譯碼器及顯示器因為計數(shù)器全部采用8421bcd碼十進制計數(shù)集成芯片,所以“秒”、“分”、“時”的個位和十位都有四個狀態(tài)輸出端(qa、qb、qc、qd)。將這些輸出端接至專門設計制造的譯碼電路,就可產生驅動七段數(shù)碼顯示器的信號。1.5 校時電路當數(shù)字鐘接通電源或者計時出現(xiàn)誤差時需要校正時間,校時電路的要求是:在小時校正時不影響分和秒的正常計數(shù);在分校時時不

7、影響時和秒的正常計數(shù);校時方式有“快校時”和“慢校時”兩種,“快校時“是通過開關控制使計數(shù)器對1hz的校時脈沖計數(shù),“慢校時”是通過手動產生單脈沖作校時脈沖,校時的基本原理是將0.5秒的脈沖信號(可由分頻器的第14級分頻輸出端直接獲得),直接引進“時”計數(shù)器,同時將計數(shù)器置“0”,在時的指示調到需要的數(shù)字后,再切斷“0.5”信號讓計數(shù)器正常工作。2、設計過程sopc設計首先使用quartus ii建立一個quartus ii 的工程,創(chuàng)建完成工程之后,需要創(chuàng)建頂層實體。創(chuàng)建完頂層設計文件之后,使用sopc builder創(chuàng)建nios ii 嵌入式處理器,添加、配置系統(tǒng)的外設ip,組成nios

8、ii系統(tǒng)模塊。 nios ii 系統(tǒng)模塊設計完成之后要加入到該頂層實體中,然后進行其他片上邏輯的開發(fā)。2.1 quartus ii 工程的建立:(1)啟動quartus ii軟件;(2)選擇file菜單®new project wizard,出現(xiàn)introduction頁面,該頁面介紹所要完成的具體任務,點擊next。(3) 進行項目名稱的設定、工作目錄的選擇。指定工程存放的目錄,工程名和頂層實體名,工程名和頂層實體名要求相同,工程目錄可以隨意設置,但必須是英文的目錄,工程名和頂層實體名也要求是英文名字,我們的工程名和頂層實體名為clock,選擇next。4. 可以為工程添加先期已經

9、輸入的設計文件,指定用戶自定義的元件庫的路徑,這里我們沒有事先輸入好的文件,也沒有自定義的元件庫,點擊next進入下一步。 5. 用戶指定目標器件,根據(jù)開發(fā)板的所使用的器件來選擇,實際開發(fā)中,通過查看核心板的參考手冊來獲取所使用的器件具體型號,可以使用窗口右邊的filters來加快器件的選擇,選擇完畢點擊next。6. 指定在quartus ii 之外的用于,設計輸入、綜合、仿真、時序分析的第三方eda工具,quartus ii對第三方工具的支持比較完善。這里我們不做選擇,直接點擊next。所見新工程的信息,確認所創(chuàng)建工程的主要信息,點擊finish完成工程的建立,在開發(fā)的過程中,還可以通過菜

10、單assignment®settings來對這些配置進行修改。 點擊finish按鈕,quartus ii自動會打開這個工程,可以看到頂層實體名出現(xiàn)在工程導航窗口中。7,、 新建的工程窗口中,選擇file®new;在device design file頁中,選擇block diagramschematic file,即原理圖文件,也可以選擇硬件描述語言的文件形式。單擊ok。出現(xiàn)一個模塊編輯窗口;選擇file®save as,出現(xiàn)save as對話框,顯示的目錄為之前設置的工程目錄,文件名為之前設置的頂層實體名(由于這是工程的第一個文件,系統(tǒng)會默認為頂層設計實體的名

11、字)。確定add to current project選項被選中,點擊save。器件型號 2.2創(chuàng)建nios ii 系統(tǒng)模塊(1) 創(chuàng)建系統(tǒng):啟動sopc builder,選擇tools®sopc builder,出現(xiàn)如圖所示的create new system對話框。鍵入系統(tǒng)的名字,選擇硬件描述語言verilog或者是vhdl。 (2) 設置系統(tǒng)主頻和指定目標fpga:在board部分選擇unspecified,然后在device family選擇cyclone ii。用戶需要設置系統(tǒng)的時鐘頻率,該頻率用于計算硬件和軟件開發(fā)中的定時,比如時鐘分頻或波特率,還可以選擇是否選用流水線。

12、 (3)加入nios ii cpu和 ip模塊:首先加入nios ii軟核,nios ii 是軟核cpu,共有三種類型的cpu可供選擇:nios ii/e(經濟型)、nios ii/s(標準型)和nios ii/f(快速型)。用戶可以根據(jù)實際的情況進行選擇。nios ii是一個用戶可以自行進行定制的cpu,用戶可以增加新的外設、新的指令等。 添加cpu軟核添加內存_sdram 添加lcd模塊 添加100ms的定時器 完整的sopc的硬件系統(tǒng)生成的pll模塊 頂層總原理圖2.3部分程序如下:模24計數(shù)器/counter24.v 1 /filename :counter24.v (bcd : 0-

13、23) 2 module counter24(cnth,cntl,ncr,en,cp); 3 input cp,ncr,en; 4 output 3:0cnth,cntl; 5 reg 3:0cnth,cntl; 6 7 always (posedge cp,negedge ncr) 8 begin 9 if(ncr)10 cnth,cntl<=8'h00;11 else if(en)12 cnth,cntl<=cnth,cntl;13 else if(cnth>2)|(cntl>9)|(cnth=2)&&(cntl>=3)14 cnth,

14、cntl<=8'h00;15 else if(cnth=2)&&(cntl<3)16 begin17 cnth<=cnth;18 cntl<=cntl+1'b1;19 end20 else if(cntl=9)21 begin22 cnth<=cnth+1'b1;23 cntl<=4'b0000;24 end25 else26 begin27 cnth<=cnth;28 cntl<=cntl+1'b1;29 end30 end31 32 endmodule 模60計數(shù)器/counter60.

15、v1 /countuer 60 2 3 /counter10.v (bcd: 0-9) 4 module counter10(q,ncr,en,cp); 5 input cp,ncr,en; 6 output reg 3:0q; 7 8 always (posedge cp,negedge ncr) 9 begin10 if(ncr)11 q<=4'b0000;12 else if(en)13 q<=q;14 else if(q=4'b1001)15 q<=4'b0000;16 else17 q<=q+1'b1;18 end19 endm

16、odule20 21 /counter6.v(bcd: 0-5)22 module counter6(q,ncr,en,cp);23 input cp,ncr,en;24 output reg 3:0q;25 26 always (posedge cp,negedge ncr)27 begin28 if(ncr)29 q<=4'b0000;30 else if(en)31 q<=q;32 else if(q=4'b0101)33 q<=4'b0000;34 else35 q<=q+1'b1;36 end37 endmodule 38 39

17、 /counter60.v(bcd:0-59)40 module counter60(cnt,ncr,en,cp);41 input cp,ncr,en;42 output 7:0cnt;43 wire 7:0cnt;44 wire enp;45 46 counter10 uc0(cnt3:0,ncr,en,cp);47 counter6 uc1(cnt7:4,ncr,enp,cp);48 49 assign enp=(cnt3:0=4'h9);50 endmodule 鬧鐘/1 /bell.v 2 module bell(alarm_clock,set_hr,set_min,hour

18、,minute, 3 second,sethrkey,setminkey,_1khz,_500hz, 4 _1hz,ctrlbell); 5 output alarm_clock; 6 output 7:0set_hr,set_min; 7 wire alarm_clock; 8 input _1khz,_500hz,_1hz; 9 input sethrkey,setminkey;10 input ctrlbell;11 input 7:0hour,minute,second;12 13 supply1 vdd;14 wire hrh_equ,hrl_equ,minh_equ,minl_eq

19、u;15 wire time_equ;16 17 counter60 su1(set_min,vdd,setminkey,_1hz);18 counter24 su2(set_hr7:4,set_hr3:0,vdd,sethrkey,_1hz);19 20 /comparate the set time21 _4bitcomparator su4(hrh_equ,set_hr7:4,hour7:4);22 _4bitcomparator su5(hrl_equ,set_hr3:0,hour3:0);23 _4bitcomparator su6(minh_equ,set_min7:4,minut

20、e7:4);24 _4bitcomparator su7(minl_equ,set_min3:0,minute3:0);25 26 assign time_equ=(hrh_equ && hrl_equ && minh_equ && minl_equ);27 assign alarm_clock=ctrlbell?(time_equ&&(second0=1'b1)&&_500hz)28 |(second0=1'b0)&&_1khz):1'b0;29 endmodule30 3

21、1 /4bitcomparator.v32 module _4bitcomparator(equ,a,b);33 input 3:0a,b;34 output equ;35 36 assign equ=(a=b);37 endmodule2.3元器件型號及邏輯門芯片:ep2c20f484c7 1.2v 18752 315 239616 52 4占用了3383個邏輯單元,占器件中18752個邏輯單元的18% timeout period:100mstimer counter size :32bitspio:4電容若干開關若干100khz晶振1塊蜂鳴器1個三、設計過程中遇到的問題及方案在連接電路時,用1hz的信號輸入時,發(fā)現(xiàn)數(shù)碼管顯示沒有按預期的要求顯示,結果得等一兩分鐘才顯示一次

溫馨提示

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

評論

0/150

提交評論