eda技術課程設計 ---eda數(shù)字頻率計_第1頁
已閱讀1頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  課 程 設 計</p><p><b>  課程設計任務書</b></p><p>  課程 EDA技術課程設計</p><p><b>  題目 數(shù)字頻率計</b></p><p>  主要內容、基本要求、主要參考資料等</p><p>&l

2、t;b>  主要內容:</b></p><p>  設計并制作一個帶鬧鐘功能的24小時計時器。它包括以下幾個組成部分:</p><p>  1、顯示屏,由4 個七段數(shù)碼管組成,用于顯示當前時間(時:分)或設置的鬧鐘時間;</p><p>  2、數(shù)字鍵,實現(xiàn)‘0’—‘9’的輸入,用于輸入新的時間或新的鬧鐘時間;</p><p&g

3、t;  3、TIME(時間)鍵,用于確定新的時間設置;</p><p>  4、ALARM(鬧鐘)鍵,用于確定新的鬧鐘時間設置,或顯示已設置的鬧鐘時間;</p><p>  5、揚聲器,在當前時鐘時間與鬧鐘時間相同時,發(fā)出蜂鳴聲</p><p><b>  基本要求:</b></p><p>  1、計時功能:這是本計時

4、器設計的基本功能,每隔一分鐘計時一次,并在顯示屏上顯示當前時間。</p><p>  2、鬧鐘功能:如果當前時間與設置的鬧鐘時間相同,則揚聲器發(fā)出蜂鳴聲。</p><p>  3、設置新的計時器時間:用戶用數(shù)字鍵輸入新的時間,然后按"TIME"鍵確認。在輸入過程中,輸入數(shù)字在顯示屏上從右到左依次顯示。例如,用戶要設置新的時間12:34,則按順序輸入“1”,“2”,“3”

5、,“4”,與之對應,顯示屏上依次顯示的信息為:“1”,“12”,“123”,“1234"。如果用戶在輸入任意幾個數(shù)字后較長時間內,例如5 s,沒有按任何鍵,則計時器恢復到正常的計時顯示狀態(tài)。</p><p><b>  主要參考資料:</b></p><p>  [1] 潘松著.EDA技術實用教程(第二版). 北京:科學出版社,2005.</p>

6、<p>  [2] 康華光主編.電子技術基礎 模擬部分. 北京:高教出版社,2006.</p><p>  [3] 閻石主編.數(shù)字電子技術基礎. 北京:高教出版社,2003.</p><p>  完成期限 2011.3.11 </p><p>  指導教師 </p><p&g

7、t;  專業(yè)負責人 </p><p><b>  一、總體設計思想</b></p><p><b>  1.基本原理</b></p><p>  數(shù)字頻率計的基本原理是用一個頻率穩(wěn)定度高的頻率源作為基準時鐘,對比測量其他信號的頻率。通常情況下計算每秒內待測信號的脈沖個數(shù),即閘門時間為1s。

8、閘門時間可以根據(jù)需要取值,大于或小于1s都可以。閘門時間越長,得到的頻率值就越準確,但閘門時間越長,則每測量一次頻率的間隔就越長。閘門時間越短,測得的頻率值刷新就越快,但測得的頻率精度就受影響。一般取1s作為閘門時間。</p><p>  在電子技術中,頻率是最基本的參數(shù)之一,并且與許多電參量的測量方案、測量結果都有十分密切的關系,因此,頻率的測量就顯得更為重要。測量頻率的方法有多種,其中電子計數(shù)器測量頻率具有精

9、度高、使用方便、測量迅速,以及便于實現(xiàn)測量過程自動化等優(yōu)點,是頻率測量的重要手段之一。數(shù)字式頻率計的測量原理有兩類:一是直接測頻法,即在一定閘門時間內測量被測信號的脈沖個數(shù);二是間接測頻法即測周期法,如周期測頻法。直接測頻法適用于高頻信號的頻率測量,通常采用計數(shù)器、數(shù)據(jù)鎖存器及控制電路實現(xiàn),并通過改變計數(shù)器閥門的時間長短在達到不同的測量精度;間接測頻法適用于低頻信號的頻率測量,本設計中使用的就是直接測頻法,即用計數(shù)器在計算1S內輸入信號

10、周期的個數(shù)。 數(shù)字頻率計是數(shù)字電路中的一個典型應用,實際的硬件設計用到的器件較多,連線比較復雜,而且會產生比較大的延時,造成測量誤差、可靠性差。隨著現(xiàn)場可編程門陣列FPGA的廣泛應用,以EDA工具作為開發(fā)手段,運用VHDL等硬件描述語言語言,將使整個系統(tǒng)大大簡化,提高了系統(tǒng)的整體性能和可靠性。</p><p>  根據(jù)數(shù)字頻率計的基本原理,本設計方案分三個模塊來實現(xiàn)其功能,即整個數(shù)字頻率計系統(tǒng)分為時基產生與

11、測頻時序控制電路模塊、待測信號脈沖計數(shù)電路模塊、鎖存與譯碼顯示控制電路模塊等幾個單元,并且分別用VHDL硬件描述語言對其進行編程,實現(xiàn)了控制電路、計數(shù)電路、鎖存與譯碼顯示電路。</p><p><b>  2.設計框圖</b></p><p>  具體設計方法:本實驗通過頻率控制模塊,將時鐘信號clkk 兩分頻后分別取反賦給鎖存使能和計數(shù)使能端,這樣計數(shù)完成后就能實現(xiàn)

12、數(shù)據(jù)的鎖存,當計數(shù)使能和鎖存使能同時無效,基都出現(xiàn)低電平的時候,計數(shù)復位信號有效,將計數(shù)器清零,從新開始計數(shù)。</p><p>  二、設計步驟和調試過程</p><p><b>  1、總體設計電路</b></p><p>  本設計采用自頂向下的設計方法,將任務分解為三大功能模塊:時基產生與測頻時序控制電路模塊、待測信號脈沖計數(shù)電路模塊、鎖

13、存與譯碼顯示電路模塊,編程時分別對控制、計數(shù)、鎖存、譯碼等電路模塊進行VHDL文本描述,最后用語言將各個已生成庫文件的器件的各個端口連接在一起,形成系統(tǒng)主電路的軟件結構。信號頻率計的測量有測頻法和周期法。本設計用測頻法,即直接計算每秒鐘內信號脈沖的個數(shù)。設計一個4位十進制數(shù)字頻率計,其測量范圍為1MHz,量程分1KHz、10KHz、100KHz、1MHz四檔,最大讀數(shù)位999999Hz,量程自動轉換規(guī)則:讀數(shù)大于999時,頻率計處于超量

14、程狀態(tài),此時顯示器發(fā)生溢出指示,下次量程,量程自動增大一檔。讀數(shù)小時,頻率計處于前量程狀態(tài),下次測量,量程自動增大一檔。如果計數(shù)器輸出直接譯碼顯示電路,則頻率計顯示將隨時計數(shù)值的增加不斷變化閃爍,人眼難以分辨。以防止此類現(xiàn)象,采用記憶顯示方式,即在計數(shù)與顯示電路加以鎖存電路,每次計數(shù)結束,將計數(shù)結果松鎖存器鎖存,并保持到下一個計數(shù)結束。而譯碼顯示電路以1Hz頻率對鎖存器取樣,保證了顯示時間至少為1s。</p><p&

15、gt;  2、模塊設計和相應模塊程序</p><p>  2.1時基產生與測頻時序控制模塊</p><p>  時基產生與測頻時序控制電路主要產生計數(shù)允許信號EN、清零信號CLR和鎖存信號LOCK。這里時基信號CLK取為1Hz,2分頻后就是計數(shù)閘門信號EN。當EN為高電平時開始計數(shù),在EN的下降沿,要產生一個鎖存信號LOCK,鎖存數(shù)據(jù)后,還要在下次EN上升沿到來之前產生清零信號CLR。&l

16、t;/p><p>  Library ieee;</p><p>  Use ieee.std_logic_1164.all;</p><p>  Use ieee.std_logic_unsigned.all;</p><p>  Entity ctrl is </p><p>  port(clk: in std_l

17、ogic; -系統(tǒng)時鐘</p><p>  lock: out std_logic; -鎖存信號</p><p>  en: out std_logic; -計數(shù)允許信號</p><p>  clr: out std_logic); -清零信號</p><p><b>  End;</b&

18、gt;</p><p>  architecture art of ctrl is</p><p>  signal q: std_logic_vector(3 downto 0); -定義變量</p><p><b>  begin</b></p><p>  process(clk)</p>&

19、lt;p><b>  begin</b></p><p>  if(clk'event and clk='1')then -檢測時鐘上升沿</p><p>  if q="1111"then</p><p>  q<="0000"; -計數(shù)

20、大于15,清零</p><p><b>  else</b></p><p>  q<=q+'1'; -允許計數(shù)</p><p><b>  end if;</b></p><p><b>  end if;</b></p>&

21、lt;p>  en<=not q(3);</p><p>  lock<=q(3) and not(q(2)) and q(1);</p><p>  clr<=q(3) and q(2) and not(q(1));</p><p>  end process;</p><p><b>  end art;

22、</b></p><p>  2.2待測信號脈沖計數(shù)模塊</p><p>  待測信號脈沖計數(shù)模塊是對輸入脈沖信號的頻率進行測量,由4個十進制加法計數(shù)器組成,其中EN為計數(shù)選通控制信號,CLR為計數(shù)器清零信號。在計數(shù)器清零信號CLR清零后,當計數(shù)選通控制信號EN有效時,開始對待測信號進行計數(shù)。如果計數(shù)選通控制信號EN的寬度為1s,那么計數(shù)結果就為待測信號的頻率。</p&g

23、t;<p>  2.2.1 十進制加法計數(shù)器的VHDL源程序</p><p>  程序cb10.vhd</p><p>  Library ieee;</p><p>  Use ieee.std_logic_1164.all;</p><p>  Use ieee.std_logic_unsigned.all;</p&g

24、t;<p>  Entity cb10 is</p><p>  port(clk,en,clr: in std_logic;</p><p>  count10: buffer std_logic_vector(3 downto 0)); -計數(shù)輸入</p><p><b>  信號</b></p><

25、;p><b>  End cb10;</b></p><p>  Architecture art of cb10 is -結構體</p><p><b>  begin</b></p><p>  process(clk,clr,en)</p><p><b>  

26、begin</b></p><p>  if clr='1' then</p><p>  count10<="0000"; -計數(shù)器清零</p><p>  elsif rising_edge(clk) then -檢測時鐘上升沿</p><p>  if(en='

27、;1') then -檢測是否允許計數(shù)</p><p>  if count10="1001" then</p><p>  count10<="0000"; -計數(shù)值滿9清零</p><p><b>  else</b></p><

28、p>  count10<=count10+'1'; -允許計數(shù)</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  en

29、d process;</p><p><b>  End art;</b></p><p>  程序主要講述了十進制加法計數(shù)器的使用,在符合了一定的標準以后十進制的使用,在計數(shù)器滿9后清零。</p><p>  2.2.2待測信號脈沖計數(shù)器的vhdl源程序</p><p>  程序count.vhd</p>

30、<p>  Library ieee;</p><p>  Use ieee.std_logic_1164.all;</p><p>  Use ieee.std_logic_unsigned.all;</p><p>  Entity count is</p><p>  port(clk: in std_logic;

31、 -待測時鐘信號</p><p>  en: in std_logic; -計數(shù)選通控制信號</p><p>  clr: in std_logic; -計數(shù)器清零信號</p><p>  qa,qb,qc,qd: buffer std_logic_vector(3 downto 0)); -結果輸出信號</p><p&g

32、t;<b>  End;</b></p><p>  Architecture art of count is</p><p>  component cb10 -元件cb10引用說明語句</p><p>  port(clk,en,clr: in std_logic;</p><

33、p>  count10: buffer std_logic_vector(3 downto 0)); -計數(shù)輸出信號</p><p>  end component;</p><p>  signal clk2: std_logic;</p><p>  signal clk3: std_logic;</p><p>  sig

34、nal clk4: std_logic;</p><p><b>  begin</b></p><p>  clk2<=not qa(3);</p><p>  clk3<=not qb(3);</p><p>  clk4<=not qc(3);</p><p>  u1:c

35、b10 port map(clk,en,clr,qa); -元件引用例示 </p><p>  u2:cb10 port map(clk2,en,clr,qb); -元件引用例示</p><p>  u3:cb10 port map(clk3,en,clr,qc); -元件引用例示</p><p>  u4:cb10 port

36、map(clk4,en,clr,qd); -元件引用例示</p><p><b>  End art;</b></p><p>  2.3鎖存與譯碼顯示控制模塊</p><p>  鎖存與譯碼顯示控制模塊用于實現(xiàn)記憶顯示,在測量過程中不刷新新的數(shù)據(jù),知道測量過程結束后,鎖存顯示測量結果,并且保存到下一次測量結束。鎖存與譯碼顯示電路的

37、功能是對四位BCD碼進行鎖存,并將其轉換為對應的四組七段碼,用于驅動數(shù)碼管。</p><p>  基于VHDL的采用自頂而下設計方法實現(xiàn)的數(shù)字頻率計。該設計方法具有外圍電路簡單,程序修改靈活和調試容易等特點。 </p><p>  程序lock.vhd</p><p>  Library ieee;</p><p>  Use ieee.s

38、td_logic_1164.all;</p><p>  Entity lock is</p><p>  port(lock: in std_logic;</p><p>  qa,qb,qc,qd: in std_logic_vector(3 downto 0);</p><p>  leda

39、,ledb,ledc,ledd: out std_logic_vector(6 downto 0));-頻率</p><p><b>  計數(shù)輸出</b></p><p><b>  End;</b></p><p>  Architecture art of lock is</p><p>  s

40、ignal qal,qbl,qcl,qdl: std_logic_vector(3 downto 0);</p><p>  component bcd7 -元件bcd7引用說明語句</p><p>  port(bcd: in std_logic_vector(3 downto 0);</p><p> 

41、 led: out std_logic_vector(6 downto 0));</p><p>  end component;</p><p><b>  begin</b></p><p>  process(lock)</p><p><b>  begin</b></p>&

42、lt;p>  if(lock'event and lock='1')then -檢測時鐘上升沿</p><p><b>  qal<=qa;</b></p><p><b>  qbl<=qb;</b></p><p><b>  qcl<=qc;<

43、/b></p><p><b>  qdl<=qd;</b></p><p><b>  end if;</b></p><p>  end process;</p><p>  u0: bcd7 port map(qal,leda); -元件引用例示</p

44、><p>  u1: bcd7 port map(qbl,ledb); -元件引用例示</p><p>  u2: bcd7 port map(qcl,ledc); -元件引用例示</p><p>  u3: bcd7 port map(qdl,ledd); -元件引用例示</p>&

45、lt;p><b>  End art;</b></p><p>  程序主要講述了調用七段譯碼器的顯示,將輸入的信號經過譯碼之后在七段譯碼器上進行顯示。</p><p>  3、仿真及仿真結果分析</p><p>  3.1 時基產生與測頻時序控制電路模塊的仿真</p><p>  圖3.1 時基產生與測頻時序控制

46、模塊的仿真圖</p><p>  圖3. 2 時基產生與測頻時序控制電路模塊的仿真圖的詳細</p><p>  圖3.1顯示的是時基產生與測頻時序控制電路模塊的仿真圖,很鮮明的給出了時鐘信號與計數(shù)允許信號、清零信號和鎖存信號的關系,而圖5. 2更加詳細的給出了計數(shù)允許信號、清零信號和鎖存信號與變量Q之間所存在的相對應的關系。</p><p>  3.2 待測信號脈

47、沖計數(shù)電路模塊的仿真</p><p>  3.2.1 十進制加法計數(shù)器的仿真</p><p>  圖3.3 十進制加法計數(shù)器的仿真圖</p><p>  圖3.3顯示的是十進制加法計數(shù)器的仿真圖,它詳細的給出了計數(shù)輸出信號與計數(shù)允許信號和清零信號之間的關系,能清楚的理解當CLR為0時,輸出為0;在EN為1選通有效后,則開始計數(shù)。</p><p&g

48、t;  3.2.2待測信號脈沖計數(shù)器的仿真</p><p>  圖3.4 測信號脈沖計數(shù)器的仿真</p><p>  圖3.4顯示的是測信號脈沖計數(shù)器的仿真圖,以圖文的形式更直接的表現(xiàn)了信號脈沖的計數(shù)值,簡介明了。</p><p>  3.3 鎖存與譯碼顯示控制電路模塊的仿真</p><p>  3.3.1 譯碼顯示電路的仿真</p&g

49、t;<p>  圖5.5 譯碼顯示電路的仿真圖</p><p>  圖5.5顯示的是譯碼顯示電路的仿真圖,它直接用圖形詮釋了程序中語句的意思,讓人一目了然,更簡單的了解了模塊的作用。</p><p>  5.3.2 鎖存與譯碼顯示控制模塊的仿真</p><p>  圖3.6 鎖存與譯碼顯示控制電路的仿真圖</p><p>  圖

50、3.6顯示的是鎖存與譯碼顯示控制電路的仿真圖,給人第一感覺很繁瑣,但是聯(lián)系程序再看圖就可以很輕松的清楚程序中之前還存在的疑惑也將圖從而理解透徹。</p><p><b>  4、實驗調試結果</b></p><p>  圖3.7 數(shù)字頻率計系統(tǒng)的仿真</p><p>  圖3.7顯示的是數(shù)字頻率計系統(tǒng)的仿真圖,它系統(tǒng)的體現(xiàn)了所設計的頻率計的作用

51、。</p><p><b>  三、結論及心得體會</b></p><p>  EDA課程設計就要結束了,這次課程設計歷時近一個星期,通過這一個星期的學習,發(fā)現(xiàn)了自己的很多不足,發(fā)現(xiàn)了很多知識上的漏洞。同時也看到了自己的實踐經驗還是比較缺乏,理論聯(lián)系實際的能力還急需提高。這次課程設計讓我學到了很多,不僅是鞏固了先前學的EDA技術的理論知識,而且也培養(yǎng)了我的動手能力,更

52、令我的創(chuàng)造性思維得到拓展。在課程設計中一個人的力量是遠遠不夠的,真正的完成任務需要共同的智慧與勞動,團結協(xié)作是我們成功的一項非常重要的保證。在這個過程中,我也曾經因為實踐經驗的缺乏失落過,也曾經仿真成功而熱情高漲。</p><p>  還有一點是我們做任何事情都無法缺少的,那就是細心認真。此次設計我們就深深地體會到了,由于編程的時候沒有做到足夠的細心,導致一串代碼弄混了。但是密密麻麻的英文字母混在一起,我始終沒有

53、發(fā)現(xiàn)。最終在調試的時候,就出現(xiàn)了問題。只知道出現(xiàn)了問題,就是不知道到問題的根源在哪里,好長時間都沒有找出問題的所在。這也讓我真正的明白了,科學的嚴謹性,它不允許出半點差錯,否則后果會是比較麻煩的。做其他事情也一樣,都需要我們付出足夠的認真去對待,才能順利的完成。</p><p>  對我而言,知識上的收獲重要,精神上的豐收更加可喜。讓我知道了學無止境的道理。我們每一個人永遠不能滿足于現(xiàn)有的成就,人生就像在爬山,一

54、座山峰的后面還有更高的山峰在等著你。挫折是一份財富,經歷是一份擁有。這次課程設計必將成為我人生旅途上一個非常美好的回憶!</p><p><b>  參考資料</b></p><p>  [1] 潘松著.EDA技術實用教程(第二版). 北京:科學出版社,2005.</p><p>  [2] 潘松著.EDA技術與VHDL. 北京:清華大學出版社

溫馨提示

  • 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

提交評論