eda課程設(shè)計--簡易頻率計設(shè)計_第1頁
已閱讀1頁,還剩14頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目 錄</b></p><p><b>  摘 要1</b></p><p>  一、簡易數(shù)字頻率計設(shè)計原理2</p><p><b>  1.1基本原理2</b></p><p><b>  1.2原理框圖2</b>

2、;</p><p>  二、各模塊程序及仿真4</p><p>  2.1信號處理模塊_verilog:4</p><p>  2.2計數(shù)器模塊:5</p><p>  2.3信號顯示處理7</p><p>  三、仿真結(jié)果分析10</p><p><b>  總結(jié)與致謝1

3、3</b></p><p><b>  參考文獻14</b></p><p><b>  摘 要</b></p><p>  EDA技術(shù)是以硬件語言為主要的描述方式,以EDA軟件為主要的設(shè)計軟件,以大規(guī)模課編程邏輯器件為載體的數(shù)字電路的設(shè)計過程。其設(shè)計的靈活性使得EDA技術(shù)得以快速發(fā)展和廣泛應(yīng)用。本設(shè)計以Qu

4、artusⅡ軟件為設(shè)計平臺,采用Verilog HDL語言現(xiàn)數(shù)字頻率計的整體設(shè)計。電子設(shè)計自動化(EDA)逐漸成為重要的設(shè)計手段,已經(jīng)廣泛應(yīng)用于模擬與數(shù)字電路系統(tǒng)等許多領(lǐng)域,電子設(shè)計自動化是一種實現(xiàn)電子系統(tǒng)或電子產(chǎn)品自動化設(shè)計的技術(shù),它與電子技術(shù),微電子技術(shù)的發(fā)展密切相關(guān),它吸收了計算機科學領(lǐng)域的大多數(shù)最新研究成果,以高性能的計算機作為工作平臺,促進了工程發(fā)展。EDA的一個重要特征就是使用硬件描述語言(HDL)來完成的設(shè)計文件,在電子設(shè)

5、計領(lǐng)域受到了廣泛的接受。EDA技術(shù)就是以計算機為工具,設(shè)計者在EDA軟件平臺上,有硬件描述語言Verilog HDL完成設(shè)計文件,然后由計算機自動地完成邏輯編譯、化簡、分割、綜合、優(yōu)化、布局、布線和仿真,直至對于特定目標芯片的適配編譯、邏輯映射和編程下載等工作,最終形成集成電子系統(tǒng)或?qū)I(yè)集成芯片的一門新技術(shù)。EDA技術(shù)的出現(xiàn),極大地提高了電路設(shè)計的效率和可操作性,減輕了設(shè)計</p><p>  關(guān)鍵詞:EDA;Q

6、uartusⅡ;Verilog HDL</p><p>  一、簡易數(shù)字頻率計設(shè)計原理</p><p><b>  1.1基本原理</b></p><p>  數(shù)字頻率計的主要功能是測量周期信號的頻率。頻率計的基本原理是用一個頻率穩(wěn)定度高的頻率源作為基準時鐘,對比測量其他信號的頻率。</p><p>  頻率是單位時間(

7、1秒)內(nèi)方波信號發(fā)生周期變化的次數(shù)。在給定的1秒時間內(nèi)對方波信號波形計數(shù),并將所計數(shù)值顯示出來,就能讀取被測信號的頻率。數(shù)字頻率計首先必須獲得相對穩(wěn)定與準確的時間,然后通過計數(shù)器計算這一段時間間隔內(nèi)的方波脈沖個數(shù)并顯示出來。這就是數(shù)字頻率計的基本原理。</p><p>  脈沖信號的頻率就是在單位時間內(nèi)所產(chǎn)生的脈沖個數(shù),其表達式為f=N/T,其中f為被測信號的頻率,N為計數(shù)器所累計的脈沖個數(shù),T為產(chǎn)生N個脈沖所需

8、的時間。本設(shè)計要求基準時鐘的頻率為1MHZ。待測方波信號的頻率在1HZ-9999HZ,所以用四位7段數(shù)碼管無法完全正確顯示,所以需要選擇恰當?shù)牧砍虂盹@示待測風波信號的頻率,當量程選擇不當或者頻率超出9999HZ時,能夠給出指示信號。</p><p>  1.2原理框圖 </p><p>  根據(jù)設(shè)計要求,輸入系統(tǒng)的標準時鐘信號要先經(jīng)過分頻后得到一個周期為2s占空比50%的信號,用來

9、對輸入信號采樣,得到采樣信號GATED_CLK;為了能夠控制計數(shù)模塊對采樣的信號進行正常計數(shù)及保存計數(shù)后的頻率,這要求,要在計數(shù)器剛好完成計數(shù)后立即將數(shù)據(jù)輸出給顯示部分進行顯示,并且要為下次計數(shù)做好準備,因此數(shù)據(jù)信號處理部分還要有產(chǎn)生控制計數(shù)器的兩個信號LOAD和COUNTER_CLR,LOAD信號控制計數(shù)完成后的數(shù)據(jù)及時輸出給顯示,COUNTER_CLR信號控制計數(shù)器清零;計數(shù)模塊就是完成對采樣信號的計數(shù),并當計數(shù)發(fā)生溢出時產(chǎn)生溢出信

10、號FLOW_UP;顯示控制模塊要完成將計數(shù)模塊輸入的信號進行譯碼顯示。</p><p>  1.3信號描述 </p><p><b>  測試信號采樣原理:</b></p><p>  GATED_CLK、LOAD、COUNTER_CLR信號的關(guān)系:</p><p>  程序中用到的信號變量:</p>

11、<p>  二、各模塊程序及仿真</p><p>  此設(shè)計運用元件例化的方法進行功能的實現(xiàn),所以各個模塊即使相互獨立又是彼此聯(lián)系的,三個模塊和一個頂層共同完成方波信號的測量。</p><p>  2.1信號處理模塊_verilog:</p><p>  module FREQUENCY_COUNTROL_BLOCK(GATED_CLK,LOAD,CO

12、UNTER_CLR,CLK_IN,SIGNAL_TEST,RESET);</p><p>  output GATED_CLK;</p><p>  output LOAD;</p><p>  output COUNTER_CLR;</p><p>  input CLK_IN;</p><p>  input SI

13、GNAL_TEST;</p><p>  input RESET;</p><p>  reg LOAD;</p><p>  reg COUNTER_CLR;</p><p>  reg DIVIDE_CLK;</p><p>  reg[19:0] cn;</p><p>  r

14、eg A1,A2;</p><p>  //信號分頻:由CLK_IN得到分頻后的信號DIVIDE_CLK(0.5Hz)</p><p>  always @(posedge CLK_IN) </p><p><b>  begin</b></p><p><b>  if(RESET)</b>&

15、lt;/p><p><b>  begin</b></p><p>  DIVIDE_CLK<=0;</p><p><b>  cn<=0;</b></p><p><b>  end</b></p><p>  else if(cn==100

16、0000) </p><p><b>  begin</b></p><p><b>  cn<=0;</b></p><p>  DIVIDE_CLK<=~DIVIDE_CLK; </p><p><b>  end</b></p><p&g

17、t;<b>  else</b></p><p><b>  cn<=cn+1;</b></p><p><b>  end</b></p><p>  //頻率計數(shù)控制信號的產(chǎn)生:產(chǎn)生LOAD信號和COUNTER_CLR信號</p><p>  always @(po

18、sedge SIGNAL_TEST)</p><p><b>  begin</b></p><p>  A1<=~DIVIDE_CLK;</p><p><b>  end</b></p><p>  always @(posedge SIGNAL_TEST)</p><

19、p><b>  begin</b></p><p><b>  A2=A1;</b></p><p><b>  end</b></p><p>  always @(A1 or A2)</p><p><b>  begin</b></p&g

20、t;<p>  LOAD=A1&&(!A2);</p><p><b>  end</b></p><p>  always @(posedge SIGNAL_TEST)</p><p>  COUNTER_CLR=LOAD;</p><p>  //產(chǎn)生驅(qū)動計數(shù)模塊的信號GATED_CL

21、K,也就是被計數(shù)模塊檢測的信號</p><p>  assign GATED_CLK=SIGNAL_TEST&DIVIDE_CLK;</p><p><b>  endmodule</b></p><p><b>  2.2計數(shù)器模塊:</b></p><p>  module FR

22、EQUENCY_COUNTER_BLOCK(COUT,FLOW_UP,CLOCK_IN,RESET,LOAD,COUNTER_CLR);</p><p>  output[15:0] COUT;</p><p>  output FLOW_UP;</p><p>  input CLOCK_IN;</p><p>  input LOAD;&

23、lt;/p><p>  input COUNTER_CLR;</p><p>  input RESET;</p><p>  reg[15:0] TEMP;</p><p>  reg FLOW_UP;</p><p>  parameter B_SIZE=16; //二進制位寬,為便于移植,所有定義了成參數(shù)</

24、p><p>  reg[B_SIZE+3:0] bcd; //轉(zhuǎn)換后的BCD碼的位數(shù)要比二進制多4位</p><p>  reg[B_SIZE-1:0] binary;</p><p>  reg[B_SIZE-1:0] bin;</p><p>  reg[B_SIZE+3:0] result;</p><p>

25、  //計數(shù)器完成計數(shù)得到二進制表示的頻率數(shù)值</p><p>  always @(CLOCK_IN or RESET or LOAD or COUNTER_CLR)</p><p><b>  begin</b></p><p>  if(RESET|COUNTER_CLR)</p><p><b>  b

26、egin</b></p><p><b>  TEMP<=0;</b></p><p>  FLOW_UP<=0;</p><p><b>  end</b></p><p>  else if(LOAD)</p><p>  binary<=T

27、EMP;</p><p>  else if(TEMP>9999)</p><p><b>  begin</b></p><p>  FLOW_UP<=1;</p><p>  binary<=9999;</p><p><b>  end</b><

28、/p><p><b>  else</b></p><p>  if(CLOCK_IN)</p><p>  TEMP<=TEMP+1;</p><p><b>  end</b></p><p>  //將二進制表示(或十六進制表示)的數(shù)轉(zhuǎn)換為BCD碼的形式,便

29、于數(shù)碼管譯碼顯示</p><p>  always @(binary or RESET)</p><p><b>  begin</b></p><p>  bin=binary;</p><p><b>  result=0;</b></p><p><b>  

30、if(RESET)</b></p><p><b>  bcd<=0;</b></p><p><b>  else</b></p><p><b>  begin</b></p><p>  repeat(B_SIZE-1)</p><p

31、><b>  begin</b></p><p>  result[0]=bin[B_SIZE-1];</p><p>  if(result[3:0]>4)</p><p>  result[3:0]=result[3:0]+4'd3;</p><p>  if(result[7:4]>4)&

32、lt;/p><p>  result[7:4]=result[7:4]+4'd3;</p><p>  if(result[11:8]>4)</p><p>  result[11:8]=result[11:8]+4'd3;</p><p>  if(result[15:12]>4)</p><p&

33、gt;  result[15:12]=result[15:12]+4'd3;</p><p>  if(result[19:16]>4)</p><p>  result[19:16]=result[19:16]+4'd3;</p><p>  result=result<<1;</p><p>  bin=

34、bin<<1;</p><p><b>  end</b></p><p>  result[0]=bin[B_SIZE-1];</p><p>  bcd<=result;</p><p><b>  end</b></p><p><b>  

35、end </b></p><p>  assign COUT=bcd[15:0];</p><p><b>  endmodule</b></p><p><b>  2.3信號顯示處理</b></p><p>  module FREQUENCY_DISPLY_BLOCK(DOUT,

36、DCLK_IN,RESET,CDIN);</p><p>  output[10:0] DOUT;</p><p>  input[15:0] CDIN;</p><p>  input DCLK_IN;</p><p>  input RESET;</p><p>  reg[10:0] DOUT;</p&

37、gt;<p>  reg[3:0] Temp1;</p><p>  reg[1:0] cn;</p><p>  always @(posedge DCLK_IN) //設(shè)置成動態(tài)掃描</p><p><b>  begin</b></p><p><b>  if(RESET)</b

38、></p><p><b>  cn<=0;</b></p><p><b>  else</b></p><p><b>  begin</b></p><p><b>  cn<=cn+1;</b></p><p&

39、gt;<b>  case(cn)</b></p><p>  2'b00: begin DOUT[10:7]<=4'b0001; Temp1<=CDIN[3:0];end</p><p>  2'b01: begin DOUT[10:7]<=4'b0010; Temp1<=CDIN[7:4];end</p

40、><p>  2'b10: begin DOUT[10:7]<=4'b0100; Temp1<=CDIN[11:8];end</p><p>  2'b11: begin DOUT[10:7]<=4'b1000; Temp1<=CDIN[15:12];end</p><p><b>  endcase&

41、lt;/b></p><p><b>  end</b></p><p><b>  end</b></p><p>  always @(Temp1) //譯碼顯示</p><p><b>  begin</b></p><p>  case(

42、Temp1)</p><p>  4'b0000: DOUT[6:0]<=7'b0111111; //3fh=0</p><p>  4'b0001: DOUT[6:0]<=7'b0000110; //06h=1</p><p>  4'b0010: DOUT[6:0]<=7'b1010110;

43、 //56h=2</p><p>  4'b0011: DOUT[6:0]<=7'b1001111; //4fh=3</p><p>  4'b0100: DOUT[6:0]<=7'b1100110; //66h=4</p><p>  4'b0101: DOUT[6:0]<=7'b1101101

44、; //6dh=5</p><p>  4'b0110: DOUT[6:0]<=7'b1111101; //7dh=6</p><p>  4'b0111: DOUT[6:0]<=7'b0000111; //07h=7</p><p>  4'b1000: DOUT[6:0]<=7'b11111

45、11; //7fh=8</p><p>  4'b1001: DOUT[6:0]<=7'b1101111; //6fh=9</p><p>  default: DOUT[6:0]<=7'b0111111; //3fh</p><p><b>  endcase</b></p><p

46、><b>  end</b></p><p><b>  endmodule</b></p><p>  2.4頂層verilog程序:</p><p>  module FREQUENCY_COUNTER_DISPLY_BLOCK(DOUT,FLOW_UP,CLK,TEST_CLK_IN,RESET);</

47、p><p>  output[10:0] DOUT;</p><p>  output FLOW_UP;</p><p>  input CLK;</p><p>  input TEST_CLK_IN;</p><p>  input RESET;</p><p>

48、;  wire gated_clk,load,counter_clr;</p><p>  wire[15:0] cout_cdin;</p><p>  FREQUENCY_COUNTROL_BLOCK u1(.GATED_CLK(gated_clk),.LOAD(load),.COUNTER_CLR(counter_clr),.CLK_IN(CLK),.SIGNAL_TEST(TE

49、ST_CLK_IN),.RESET(RESET)); </p><p>  FREQUENCY_COUNTER_BLOCK u2(.COUT(cout_cdin),.FLOW_UP(FLOW_UP),.CLOCK_IN(gated_clk),.RESET(RESET),.LOAD(load),.COUNTER_CLR(counter_clr));</p><p>  FREQUENCY

50、_DISPLY_BLOCK u3(.DOUT(DOUT),.DCLK_IN(CLK),.RESET(RESET),.CDIN(cout_cdin)); </p><p><b>  endmodule</b></p><p><b>  三、仿真結(jié)果分析</b></p><p>  仿真結(jié)果如圖所示,輸入標準時鐘頻率

51、為1MHz,經(jīng)過分頻后變成頻率為0.5Hz的信號,將其與測試信號相與得到采樣信號GATED_CLK,同時利用測試信號和0.5Hz的分頻信號可以產(chǎn)生LOAD信號和COUNTER_CLR信號,它們和采樣信號的關(guān)系在圖上可以清楚的看出。圖中測試信號頻率為2500Hz,16進制表示為09C4。Dout信號為要輸入4個共陰數(shù)碼管的信號,其高四位為片選控制,低七位為經(jīng)譯碼后輸入到數(shù)碼管的信號。 </p><p>  以下為綜

52、合后的頂層電路和各子電路圖:</p><p> ?。╝)頂層模塊綜合后的電路</p><p> ?。╞)FREQUENCY_COUNTROL_BLOCK模塊綜合后的電路</p><p>  (c)FREQUENCY_COUNTER_BLOCK模塊綜合后的電路</p><p> ?。╠)FREQUENCY_DISPLY_BLOCK模塊綜合后的電

53、路</p><p><b>  總結(jié)與致謝</b></p><p>  通過這次EDA課程設(shè)計,我對課堂上所學到的理論知識的理解加深了許多, 自己動腦、動手設(shè)計的能力也得到了較大提高。在這次課程設(shè)計的過程中,我對 Verilog HDL 語言有了更深的認識。通過查閱相關(guān)資料和動手設(shè)計我發(fā)現(xiàn)我以前對 Verilog HDL 語言的認識太過膚淺,認為 Verilog HD

54、L 語言只能用于設(shè)計小型的電路系統(tǒng)。但有了更深刻的認識之后我發(fā)現(xiàn)學好 Verilog HDL 語言可以設(shè)計出大規(guī)模的、功能復雜的電路系統(tǒng)。我發(fā)現(xiàn)了動手實踐的重要性。動手實踐是理論知識得以靈活運用的必要前提,也是今后走上工作崗位之后能夠很好的完成設(shè)計工作的技術(shù)保證。只有遇到實際問題并根據(jù)自己對課堂上獲得的專業(yè)知識的理解來解決才能真正的提高自己的能力。這也提醒我在平時的學習生活中不能一味埋頭于課本知識,當今社會競爭越來越激烈,社會對人才的要

55、求越來越全面,只有理論知識是遠遠不夠的,必須靠實踐作支撐。雖然課設(shè)完成了,但是我意識到,我對FPGA 技術(shù)僅僅只是停留在入門的階段,想要有更大的發(fā)展,更深入的研究,還需要更多的努力與實踐。因此在學習之余我們應(yīng)該積極參加各種與專業(yè)知識有關(guān)的實踐活動和知識競賽,鞏固</p><p>  感謝學校和老師對我的培養(yǎng),給我這個自己動手的機會和空間。經(jīng)過一段時間,終于在*老師的幫助下完成了課程設(shè)計,對自己的能力有了很大的提升

56、。在此我要感謝每一個幫助過我的人,他們今天對我的付出,成為我將來工作的動力。</p><p><b>  參考文獻</b></p><p>  [1] 江國強編著.EDA技術(shù)與應(yīng)用(第三版)..北京:電子工業(yè)出版社,2010</p><p>  [2] 夏宇聞編著.Verilog HDL數(shù)字系統(tǒng)設(shè)計教程..北京:北京航空航天大學出版社,2008

57、</p><p>  [3] 周祖成,程曉軍,馬卓釗編著.數(shù)字電路與系統(tǒng)教學實驗教程.北京:科學出版社,2010</p><p>  [4] 周潤景,蘇良碧.基于Quartus II 的數(shù)字系統(tǒng)Verilog HDL設(shè)計實例詳解.北京:電子工業(yè)出版社,2010</p><p>  [5] 云創(chuàng)工作室.Verilog HDL程序設(shè)計與實踐.北京:人民郵電出版社,200

溫馨提示

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

評論

0/150

提交評論