VHDL電路設計論文_第1頁
VHDL電路設計論文_第2頁
VHDL電路設計論文_第3頁
VHDL電路設計論文_第4頁
VHDL電路設計論文_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、摘要隨著大規(guī)模集成電路技術和計算機技術的不斷發(fā)展, 在涉及通信、 國防、航 天、醫(yī)學、工業(yè)自動化、計算機應用、儀器儀表等領域的電子系統(tǒng)設計工作中 EDA 技術的含量正以驚人的速度上升;電子類的高新技術項目的開發(fā)也逾益依 賴于 EDA 技術的應用。即使是普通的電子產品的開發(fā) EDA 技術常常使一些原 來的技術瓶頸得以輕松突破從而使產品的開發(fā)周期大為收縮、 性能價格比大幅提 高。不言而喻 EDA 技術將迅速成為電子設計領域中的極其重要的組成部分。100Hz 頻率計數(shù)器的主要功能是在一定時間內對頻率的計算。在數(shù)字系統(tǒng) 中,計數(shù)器可以統(tǒng)計輸入脈沖的個數(shù),實現(xiàn)計時、計數(shù)、分頻、定時、產生節(jié)拍 脈沖和序列

2、脈沖。 而本篇論文主要介紹了頻率計數(shù)器的實現(xiàn) : 系統(tǒng)以 MAX+PULSLL II 為開發(fā)環(huán)境,通過 VHDL語言作為硬件描述語言實現(xiàn)對電路結構的描述。 在 VHDL 語言中采用了一系列的語句 , 例如:if 語句、case 語句、loop 語句等。 這些語句 對程序中的輸入輸出端口進行了解釋 , 并給出實現(xiàn)代碼和仿真波形。相關的一些 關鍵詞: 100Hz;分頻;計數(shù); MAX+PULSLIIL ; VHDL; 編譯;仿真等。(論文 修改)前言VHDL 是超高速集成電路硬件描述語言( Very High Speed Integrated Circuit Hardware Descriptio

3、n Language)的縮寫在美國國防部的支持下于 1985 年正式推出是 目前標準化程度最高的硬件描述語言。 IEEE( The Institute of Electrical and Electronics Engineers)于 1987 年將 VHDL 采納為 IEEE1076 標準。它經過十幾年的發(fā)展、應用 和完善以其強大的系統(tǒng)描述能力、 規(guī)范的程序設計結構、 靈活的語言表達風格和多層 次的仿真測試手段在電子設計領域受到了普遍的認同和廣泛的接受成為現(xiàn)代 EDA 領 域的首選硬件描述語言。目前流行的 EDA 工具軟件全部支持 VHDL 它在 EDA 領域 的學術交流、電子設計的存檔、專

4、用集成電路( ASIC )設計等方面擔任著不可缺少 的角色。數(shù)字頻率計是數(shù)字電路中的一個典型應用, 實際的硬件設計用到的器件較多, 連 線比較復雜,而且會產生比較大的延時,造成測量誤差、可靠性差。隨著復雜可編程 邏輯器件( CPLD)的廣泛應用,以 EDA工具作為開發(fā)手段,運用 VHDL語言。將使整 個系統(tǒng)大大簡化。提高整體的性能和可靠性。本文用 VHDL在 CPLD器件上實現(xiàn)一種 2b 數(shù)字頻率計測頻系統(tǒng),能夠用十進制數(shù) 碼顯示被測信號的頻率,不僅能夠測量正弦波、方波和三角波等信號的頻率,而且還 能對其他多種物理量進行測量。具有體積小、可靠性高、功耗低的特點。目 錄(論文修改)摘要 1 前言

5、 2 目錄 3第一章 設計目的 5設計要求 5設計意義 5第二章 設計方案 6第三章 產生子模塊 7分頻模塊 73.2 分頻模塊源代碼 83.3 仿真及波形圖 9第四章 計數(shù)模塊 9104.1 計數(shù)模塊分析 94.2 計數(shù)模塊源代碼4.3 計數(shù)模塊的仿真及波形圖12第五章 顯示模塊 125.1 七段數(shù)碼管的描述 135.2 八進制計數(shù)器 count8 的描述 145.3 七段顯示譯碼電路的描述 155.4 計數(shù)位選擇電路的描述 165.5 總體功能描述 185.6 顯示模塊的仿真及波形圖 19第六章 頂層文件 206.1 頂層文件設計源程序 206.2 頂層文件的仿真及波形圖 21結語 22參

6、考文獻 23致謝 24附件 25第一章 設計目的(畢業(yè)論文)設計要求獲得穩(wěn)定 100Hz 頻率用數(shù)碼管的顯示用 VHDL寫出設計整個程序設計意義進一步學習 VHDL硬件描述語言的編程方法和步驟。運用 VHDL硬件描述語言實現(xiàn)對電子元器件的功能控制熟悉并掌握元件例化語句的使用方法熟悉數(shù)字式頻率的基本工作原理。熟悉數(shù)字頻率計中計數(shù)顯示設計熟悉掌握 MAX+PLUS軟件的基本使用方法。第二章 設計方案此 系統(tǒng) 正常工作時,脈沖 發(fā)生器提供的 1 Hz 的輸入信號,信 號的 變換,產 生計數(shù)信號,被 測信號通過信號整形電路產生同頻率的矩形 波,送 入計數(shù)模塊,計 數(shù)模塊對輸入的矩形波進行計數(shù),將 計數(shù)

7、結果 送入鎖存器中,保 證系統(tǒng)可以穩(wěn)定顯示數(shù)據(jù),顯 示譯碼驅動電路將二 進制表示的計數(shù)結果轉換成相應的能夠在七段數(shù)碼顯示管上可以顯 示的十進制結果。在數(shù)碼顯示管上可以看到計數(shù)結果。在這個 100HZ 頻率計的設計中一共分為 3 大模塊:產生子模塊、計 數(shù)模塊、顯示模塊。產生子模塊是為此 100 赫茲頻率計提供 1Hz 的時鐘脈沖信號,為了 實現(xiàn)嚴格的同步,在這個模塊中采用了同步計數(shù)電路。計數(shù)模塊是實現(xiàn)從 0 到 99 的計數(shù)。顯示模塊是將計數(shù)模塊程序中產生的數(shù)值通過 2 個七段數(shù)碼管表達 出來,使大家對此頻率計有一個更直觀的認識。此 100HZ 頻率計的設計中,這 3 個大的模塊是核心部分,這

8、個 3 個 大的模塊會在后面的分析設計中給出詳細的介紹。頻率計的工作原理是通過在一定時間內對外部信號進行計數(shù),計數(shù) 值與時 間的比值,從而 得到輸入信號的頻 率,通過二個數(shù) 碼管 作為頻率 值的輸出。對系統(tǒng)進行分析后,確定采用模塊設計,基本框架圖如CLK圖1第三章 產生子模塊分頻模塊分頻模塊的功能是將輸入的外部信號 clk 進行分頻 ,分頻成計數(shù)器所需要的 計數(shù)信號 , 使計數(shù)器在計數(shù)信號有效的時間對外部信號進行計數(shù)。 根據(jù)頻率計測 量的范圍,確定了分頻至 1Hz,從而得到頻率值 .圖2555定時器(如圖 2)是一種模擬電路與數(shù)字電路相結合的中規(guī)模集 成電路 ,它在信 號產生、整形 、延 時(

9、定時)、控制 等方 面獲得了廣泛 的應用 。雖說 555 定時 器應 用領域十分廣泛,但其電路結構歸 納起 來有 三種基本形式,即多諧振蕩器、單穩(wěn)態(tài)觸發(fā)器、施密特觸發(fā)器由于雙極型 555 和 CMOS型 555 的制作工藝和流程不同,生 產出的 555 集成電路 的性能指標是有差異的 。CMOS型 555 的功耗僅為雙極型的幾十分之一,靜態(tài)電流僅為 300uA左右, 為微功耗電路。CMOS型 555 的輸出脈沖的上升沿和下降沿比雙極型的要陡,轉換時間短。CMOS型 555 的在傳輸過度時間里產生的尖峰電流小,僅為 2-3mA,而雙極 型 555 的尖峰電流高達 300-400mA。分頻程序如下

10、:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY clk_div1000 ISPORT(clk:IN STD_LOGIC;clk_div:out STD_LOGIC);END clk_div1000;ARCHITECTURE rt1 OF clk_div1000 ISSIGNAL q_tmp:integer range 0 to 999;BEGIN process(clk) beginIF(clkevent and clk=1)thenif(q_tmp=999)thenq_tmp=0

11、;elseq_tmp=q_tmp+1;end if;end if;end process;process(clk)beginIF(clkevent and clk=1)thenif(q_tmp=999)thenclk_div=1;elseclk_div=0;end if;end if;end process;end rt1;在程序 3.2 中我們將外部信號 clk 進行 10次分頻輸入信號為 clk, 輸出信號為 clk_div.仿真及波形圖圖3圖4第四章 計數(shù)模塊計數(shù)模塊分析經分析可知,此頻率計計數(shù)模塊分為 2 個子模塊,即個位顯示模塊、十位 顯示模塊。詳細分析如下:計數(shù)模塊的個位可以用 1

12、 個十進制計數(shù)器表示。計數(shù)模塊的十位可以用 1 個十進制計數(shù)器表示。頻率計的計數(shù)模塊主要來實現(xiàn)頻率計數(shù)器內部的計數(shù)功能 , 計數(shù)器的內部 計數(shù)信號 clk 和頻率計數(shù)器的使能信號 enable. 頻率計數(shù)器的計數(shù)模塊的輸出 信號就是個位 sec, 十位 sec10電路圖如下 :圖5十進制計數(shù)器 ,它的輸入端口主要包括使能端口 enable計數(shù)輸入端口 clk, 輸 出端口主要包括計數(shù)輸出端口 q 和進位輸出端口 cout.計數(shù)模塊的程序如下:畢業(yè)論文LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;

13、ENTITY count10 ISPORT(enable:IN STD_LOGIC; clk:IN STD_LOGIC; cout:out STD_LOGIC;q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END count10;ARCHITECTURE rt1 OF count10 ISSIGNAL q_tmp:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINprocess(clk) beginIF(clkevent and clk=1)thenif(enable=1)thenif(q_tmp=1001)thenq_tmp=0000;elseq_t

14、mp=q_tmp+1;end if;end if;end if;q=q_tmp;end process;cout=1when q_tmp=1001and enable=1 else0;-cout=1when q_tmp=1001 else0;end rt1;描述了上述的十進制計數(shù)器后 , 我們就可以根據(jù)圖三所示的結構框圖來進行 頻率計數(shù)器計數(shù)模塊的 VHDL描述了 . 在頻率計數(shù)器計數(shù)模塊的 VHDL描述中 , 我們 引用元件的形式調用上面描述的十進制計數(shù)器 . 從而得到頻率計數(shù)器的計數(shù)功能 程序如下 :LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTI

15、TY time_counter ISPORT(enable:IN STD_LOGIC;clk0:IN STD_LOGIC;sec10:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);sec:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END time_counter;ARCHITECTURE rt1 OF time_counter ISCOMPONENT count10PORT(enable:IN STD_LOGIC;clk:IN STD_LOGIC;cout:out STD_LOGIC;q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0

16、);end COMPONENT;SIGNAL co1,co2:STD_LOGIC;BEGINU1:count10 PORT MAP(enable,clk0,co1,sec);U2:count10 PORT MAP(co1,clk0,co2,sec10);end rt1;計數(shù)模塊的仿真及波形圖圖6圖7第五章 顯示模塊有了計數(shù)模塊還不能滿足設計的要求,任何一個設計都是需要一定的硬件 設備來表達。 否則, 只有一個理論的程序是不足以來證明一個設計的完整性。 在 參考一些資料和根據(jù)實驗提供的條件, 我在這個設計中采用 2 個七段數(shù)碼管來對 這個頻率計進行實際的表達。頻率計數(shù)器要將計數(shù)的結果顯示出來 ,

17、就必需設計一個計數(shù)顯示模塊來完成 該顯示功能 .頻頻計數(shù)器的顯示模塊的輸入信號主要來自于頻頻計數(shù)器計數(shù)模塊 的計數(shù)信息 ,它的輸出信號是 choose和 segment,以用來驅動計數(shù)顯示的 8 個 LED 七段顯示數(shù)碼管 ,在輸出信號中 ,為了節(jié)省資源 ,我們采用循環(huán)點亮 LED 七段顯示 數(shù)碼管的方法來顯示頻率計數(shù)器的計數(shù)輸出 .我們通過信號 choose(7downto0)來 進行 8 個 LED 七段顯示數(shù)碼管的選擇 ,從而將輸出信號 segment(6downto0)送到 相應的 LED 七段顯示數(shù)碼管上以完成頻率計數(shù)的顯示 .計數(shù)顯示模塊的結構框圖如圖 8 所示:原創(chuàng)論文圖8從圖

18、4 以看出 , 計數(shù)顯示模塊可由三個部分組成 : 八進制計數(shù)器 , 計數(shù)位選 擇電路, 七段顯示譯碼電路 .下面描述一下計數(shù)顯示模塊的工作過程 :在外部計數(shù)信號 clk 的作用下 ,八 進制計數(shù)器的輸出從 000到111按順序循環(huán)變化 ,輸出信號為 sel. 信號 sel 作為 計數(shù)位選擇電路的選擇信號 , 用來選擇對應位的數(shù)據(jù)并將其轉換為四位位矢量 . 最后將計數(shù)位選擇電路的輸出信號 q 送到七段顯示譯碼電路的輸入端口 , 將其轉 化成用來點燃 LED七段顯示數(shù)碼管的 segment 信號 .5.1 七段數(shù)碼管的描述我們所使用實驗箱中的 8個七段數(shù)碼管有這樣一個特點, 8 個數(shù)碼管中每 個數(shù)

19、碼管中相同的段都是連在一根線上的。如圖所示 :圖9故只要有一個數(shù)碼管的一段亮, 則8個數(shù)碼管中相同的段都會亮。 則,在選 用了數(shù)碼管后就我們需要考慮一個問題了, 就是如何在每個數(shù)碼管上正確的顯示 程序中每一位要顯示的數(shù)據(jù)呢?也就是如何將前面的計數(shù)模塊中要顯示的數(shù)字 準確地表達在數(shù)碼管上。 在這里就運用了人體生理學的一個結論, 人的眼睛能分 辨的時間是 1/16秒,即頻率為 25Hz左右。有了這個結論后, 我們就可以解決正確 顯示的問題了, 應用動態(tài)掃描的方法, 只要我們在顯示模塊中所使用的頻率大于 25Hz就可以讓每個數(shù)碼管正確的顯示程序中所要求的數(shù)字了。 因此,在顯示模塊 中首先要設計一個分

20、頻器, 實驗提供的脈沖是 1KHz,我們只要設計的分頻器所分 出來的頻率大于 25Hz即可,在此我選擇一個 8分頻器。8分頻器的輸入信號為 clk, 輸出信號為 sel(2 DOWNTO 0).八進制計數(shù)器 count8 的描述我們來描述下三個子電路 , 然后再描述顯示模塊的總體功能 . 先來討論下八 進制計數(shù)器 count8, 這個八進制計數(shù)器除了沒有使能端 enable 和進位輸出端口 cout 之外,它的描述結構與前面描述的計數(shù)器的結構完全相同 , 用VHDL描述如下 :8分頻器模塊設計程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE I

21、EEE.STD_LOGIC_UNSIGNED.ALL;ENTITY count8 ISPORT(clk:IN STD_LOGIC;sel:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END count8;ARCHITECTURE rt1 OF count8 ISSIGNAL sel_tmp:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGIN process(clk) beginIF(clkevent and clk=1)thenif(sel_tmp=111)thensel_tmp0);elsesel_tmp=sel_tmp+1;end if;end if

22、;selsegmentsegmentsegmentsegmentsegmentsegmentsegmentsegmentsegmentsegmentsegmentqqqchoosechoosechoosechoosechoosechoosechoosechoosechoose=XXXXXXXX;-END CASE;-END PROCESS;-END rt1;總體功能描述對計數(shù)器的顯示模塊的四個子電路描述以后 ,我們就可以進行計數(shù)器的總體功 能描述了 .在計數(shù)器顯示模塊的 VHDL 描述中 ,我們引用元件的形式來調用上面描 述過的四個子電路 ,秒表顯示模塊的 VHDL 描述如下 :LIBRARY

23、 IEEE; 原創(chuàng)論文 論文修改USE IEEE.STD_LOGIC_1164.ALL;ENTITY display ISPORT(clk:IN STD_LOGIC;sec10:IN STD_LOGIC_VECTOR(3 DOWNTO 0);sec:IN STD_LOGIC_VECTOR(3 DOWNTO 0);sel:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);-choose:out STD_LOGIC_VECTOR(7 DOWNTO 0); segment:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END display;ARCHITECTUR

24、E rt1 OF display ISCOMPONENT count8PORT(clk:IN STD_LOGIC;sel:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END COMPONENT;-COMPONENT choose_decoder-PORT(sel:IN STD_LOGIC_VECTOR(2 DOWNTO 0);-choose:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);-END COMPONENT;COMPONENT time_choosePORT(sel:IN STD_LOGIC_VECTOR(2 DOWNTO 0);sec10:I

25、N STD_LOGIC_VECTOR(3 DOWNTO 0);sec:IN STD_LOGIC_VECTOR(3 DOWNTO 0);q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END COMPONENT;COMPONENT seg7PORT(q:IN STD_LOGIC_VECTOR(3 DOWNTO 0); segment:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END COMPONENT;SIGNAL sel_tmp:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL q:STD_LOGIC_VECTOR(3 DOW

26、NTO 0);SIGNAL segment_tmp:STD_LOGIC_VECTOR(6 DOWNTO 0);BEGINU0:count8 PORT MAP(clk,sel_tmp);sel=sel_tmp;U2:time_choose PORT MAP(sel_tmp,sec10,sec,q);U3:seg7 PORT MAP(q,segment_tmp); segment=segment_tmp;END rt1;顯示模塊的仿真及波形圖圖11圖12第六章 頂層文件前三節(jié)就是整個設計的 3個核心模塊,當這 3個模塊設計完成后, 100赫茲的 頻率計的設計就接近尾聲了。 剩下的工作也就好做了,

27、我們就想連模擬電路中元 件一樣,將這 3個模塊對應的端口連接起來進行調試即可。整個設計我們都是用 的 VHDL硬件描述語言來完成的, 所以到了最后也不例外, 對于最后的級連同運用 元件例化的格式來“組裝”整個設計。6.1 頂層文件設計程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY clock ISPORT(clk:IN STD_LOGIC;enable:IN STD_LOGIC;sel:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);segment:OUT

28、 STD_LOGIC_VECTOR(6 DOWNTO 0); END clock;ARCHITECTURE rt1 OF clock ISCOMPONENT clk_div1000PORT(clk:IN STD_LOGIC;clk_div:out STD_LOGIC);end component;component time_counterPORT(enable:IN STD_LOGIC;clk0:IN STD_LOGIC;sec10:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); sec:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);end compo

29、nent;component displayPORT(clk:IN STD_LOGIC;sec10:IN STD_LOGIC_VECTOR(3 DOWNTO 0); sec:IN STD_LOGIC_VECTOR(3 DOWNTO 0); sel:out STD_LOGIC_VECTOR(2 DOWNTO 0); segment:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); end component;signal sec10: STD_LOGIC_VECTOR(3 DOWNTO 0); signal sec: STD_LOGIC_VECTOR(3 DOWNTO 0);

30、signal clk0:STD_LOGIC;beginu0:clk_div1000 PORT MAP(clk,clk0); u1:time_counter PORT MAP(enable,clk0,sec10,sec); u2:display PORT MAP(clk,sec10,sec,sel,segment); end rt1;6.2頂層設計的仿真及波形圖圖13圖 14結束語此次設計論文的經歷也會使我終身受益, 因為它讓我體會到做論文是要真真 正正用心去做每一件事情, 是真正的自己學習的過程和研究的過程, 沒有學習就 不可能有研究的能力,沒有自己的研究,就不會有所突破,那也就不叫論文了。 希望這次的經歷能讓我在以后學習中激勵我繼續(xù)進步。同時這次設計的過程也使我看到了自己的長處和短處, 雖然可以清晰的把整 個電路原理看懂, 但是在某些細節(jié)方面還不是很透徹。 這就說明了, 對于整體方 案我能夠做出正確的判斷, 但是遇到細節(jié)就輕視了, 所以最后在實驗箱上看現(xiàn)象 的時候出現(xiàn)顯示亂碼的問題。 再就是, 基本功還不是很扎實, 表面上看似

溫馨提示

  • 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

提交評論