版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 目 錄</b></p><p><b> 一:設(shè)計目的2</b></p><p><b> 二:設(shè)計方案2</b></p><p><b> 1.方案論證2</b></p><p> 2.模塊電路設(shè)計2<
2、;/p><p><b> 3.計時電路3</b></p><p><b> 4.計數(shù)器模塊3</b></p><p> 5.數(shù)字跑表的流程圖3</p><p> 6. 控制信號的作用4</p><p> 三:設(shè)計總體框圖5</p><p&g
3、t; 四:硬件電路設(shè)計與程序設(shè)計6</p><p><b> 1. 設(shè)計思路6</b></p><p><b> 2.控制模塊6</b></p><p> 3.十進制計數(shù)模塊7</p><p> 4.六進制計數(shù)模塊7</p><p> 5.數(shù)碼管掃描模塊
4、7</p><p> 6.七段譯碼顯示模塊8</p><p> 五:程序設(shè)計如下9</p><p> 六:編譯仿真及硬件測試15</p><p><b> 1.編譯仿真15</b></p><p> 2.頂層設(shè)計圖15</p><p> 3.仿真后得
5、到如下仿真波形圖16</p><p> 七. 硬件實驗調(diào)試17</p><p><b> 1.開始計時17</b></p><p><b> 2.暫停17</b></p><p><b> 3.清零18</b></p><p> 八.
6、實驗心得及體會19</p><p><b> 九.參考文獻20</b></p><p><b> 一:設(shè)計目的</b></p><p> ?。?)學(xué)會利用QuartusⅡ和所學(xué)的數(shù)字電路知識,搭建復(fù)雜一點的數(shù)字電路或系統(tǒng)。</p><p> ?。?)學(xué)會使用EDA的程序語言FPGA/CPLD
7、設(shè)計數(shù)字跑表,設(shè)計主要包括功能分析、方案設(shè)計和電路測試幾個步驟。</p><p><b> 二:設(shè)計方案</b></p><p><b> 1.方案論證</b></p><p> 數(shù)字跑表設(shè)三個輸入端,分別為時鐘輸入(CLK),復(fù)位(CLR),啟動、暫停按鍵(PUSE)。復(fù)位信號高電平有效,可對跑表異步清零;當啟動、
8、暫停鍵為低電平時跑表開始計時,為高電平時暫停,變低后在原來的數(shù)值基礎(chǔ)上繼續(xù)計數(shù)。數(shù)字跑表的結(jié)構(gòu)示意圖如下:</p><p><b> 圖1跑表示意圖</b></p><p><b> 2.模塊電路設(shè)計</b></p><p> 數(shù)字跑表實際上為計數(shù)器,數(shù)據(jù)選擇器,七段數(shù)碼管譯碼器等模塊構(gòu)成,核心模塊應(yīng)為計數(shù)器,其次為
9、暫??刂坪颓辶憧刂?。</p><p><b> 3.計時電路</b></p><p> 計時電路又分為百分秒計時電路、秒計時電路和分計時電路三個模塊。百分秒計時電路是一個100進制的計數(shù)器,以100Hz輸入信號作為計數(shù)時鐘,其進位信號作為秒計數(shù)電路的計數(shù)時鐘,當秒計數(shù)器計滿時,產(chǎn)生的進位信號又作為分計數(shù)電路的計數(shù)時鐘。電路的暫停和復(fù)位信號用于控制計時的開始、停止和
10、清零。</p><p><b> 4.計數(shù)器模塊</b></p><p> 數(shù)字跑表的計時器功能是,當PAUSE為低電平時開始計數(shù),百分秒低位自加一,加到九時歸零,百分秒高位自加一,加到九時歸零,且向秒位發(fā)出一個高電平,秒低位自加一,加到九時歸零,秒高位自加一,加到五時歸零,且向分位發(fā)出一個高電平,分低位自加一,加到六時系統(tǒng)清零。</p><p
11、> 5.數(shù)字跑表的流程圖</p><p> 數(shù)字跑表主要由計時器,七段數(shù)碼管譯碼器組成。流程框圖如圖所示。</p><p><b> CLKmsl</b></p><p><b> pause</b></p><p><b> clr</b></p>
12、;<p><b> 圖2程序流程圖</b></p><p><b> 控制信號的作用</b></p><p> 表1 控制信號的作用</p><p><b> 三:設(shè)計總體框圖</b></p><p><b> 圖3設(shè)計總體框圖</b&g
13、t;</p><p> 四:硬件電路設(shè)計與程序設(shè)計</p><p><b> 設(shè)計思路</b></p><p> 數(shù)字秒表電路計時范圍的要求為0.01~1小時,即59分59.99秒,所以這就需要獲得一個比較精確的計時基準信號,此基準信號可以由CPLD/FPGA試驗箱提供的頻率具體設(shè)定分頻器。分頻器在實驗中顯得很重要,因為如果分頻的要求達不
14、到,便會出現(xiàn)諸如缺少數(shù)字位、計時不精確等實驗現(xiàn)象。六進制計數(shù)器針對10秒和10分位,十進制針對0.01秒、0.1秒、1秒和1分位,這是根據(jù)不同的計數(shù)進位而設(shè)定的。電路還需要一個掃描電路,對每一位的計時結(jié)果進行不斷的掃描,掃描的速度要大于輸入信號的頻率,避免出現(xiàn)掃描滯后、顯示的結(jié)果不是當前結(jié)果的現(xiàn)象。掃描的同時還需要一個位碼電路。位碼電路的作用是將數(shù)字秒表的各位選中,以便七段數(shù)碼管的顯示。</p><p><
15、b> 2.控制模塊</b></p><p> 為了方便控制所有計數(shù)模塊清零和使能功能需要設(shè)計一個控制模塊,所以該模塊的功能就是控制什么時候發(fā)出置零信號和使能信號來控制計數(shù)器工作。</p><p> 其模塊圖如下圖所示:</p><p> Clk為開始/暫停功能按鈕(下降沿有效),初次按下它clc(控制計數(shù)器清零)為低電平,en(使計數(shù)器計數(shù)
16、)為高電平;再次按下它時,clc保持為低電平,en跳變?yōu)榈碗娖?,如此重?fù)循環(huán)。Reset為清零按鈕(下降沿有效),無論何時按下它時,clc跳變?yōu)楦唠娖?,en變?yōu)榈碗娖剑赃_到使計數(shù)器清零的目的。</p><p><b> 3.十進制計數(shù)模塊</b></p><p> 此模塊的功能就是完成十進制的計數(shù)功能,同時輸出進位信號。</p><p>
17、 其模塊圖如下圖所示:</p><p> Clk為時鐘信號輸入端,rst為計數(shù)器清零端(高電平有效),en為計數(shù)器使能端(高電平有效);daout為數(shù)據(jù)輸出端,cout為進位信號輸出端。</p><p><b> 4.六進制計數(shù)模塊</b></p><p> 此模塊的功能就是完成六進制的計數(shù)功能,同時輸出進位信號。</p>
18、<p> 其端口功能同十進制計數(shù)模塊,在次不再重復(fù)訴說。</p><p><b> 5.數(shù)碼管掃描模塊</b></p><p> 該模塊的功能是選擇各個計數(shù)端口來的數(shù)據(jù),當相應(yīng)的數(shù)據(jù)到來時,數(shù)據(jù)選擇器選擇數(shù)據(jù)后輸出給七段譯碼器,同時輸出位選信號,再接入到實驗箱上的8字數(shù)碼顯示電路上就可顯示了。 </p><p> 其模塊圖如
19、下圖所示:</p><p> Clk為時鐘信號輸入端,msec1…...minute2是各個計數(shù)端口來的數(shù)據(jù)的輸入端,deout為數(shù)據(jù)選擇器選擇數(shù)據(jù)后輸出端,sel為位選信號輸出端。</p><p> 6.七段譯碼顯示模塊</p><p> 該模塊的功能就是把輸入的四位二進制數(shù)據(jù)轉(zhuǎn)換為七段數(shù)碼管的顯示編碼,再輸入到七段數(shù)碼管中顯示出數(shù)據(jù)。</p>
20、<p> 其模塊圖如下圖所示:</p><p><b> 五:程序設(shè)計如下</b></p><p><b> 分頻計的源程序代碼</b></p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p>
21、<p> ENTITY FP IS</p><p> PORT(CLK: IN STD_LOGIC;</p><p> NEWCLK: OUT STD_LOGIC);</p><p><b> END FP;</b></p><p> ARCHITECTURE ART OF FP IS</p
22、><p> SIGNAL CNTER: INTEGER RANGE 0 TO 10#29999#;</p><p><b> BEGIN</b></p><p> PROCESS(CLK) IS</p><p><b> BEGIN </b></p><p> IF C
23、LK'EVENT AND CLK='1' THEN</p><p> IF CNTER=10#29999# THEN CNTER<=0;</p><p> ELSE CNTER<=CNTER + 1;</p><p><b> END IF;</b></p><p><b&
24、gt; END IF;</b></p><p> END PROCESS;</p><p> PROCESS(CNTER) IS</p><p><b> BEGIN</b></p><p> IF CNTER=10#29999# THEN NEWCLK<='1';</p
25、><p> ELSE NEWCLK<='0';</p><p><b> END IF;</b></p><p> END PROCESS;</p><p><b> END ART;</b></p><p> 六進制計數(shù)器的源程序代碼</p
26、><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> ENTITY TN6 IS</p><p> PORT(CLK: IN STD_LOGIC;</p><p> CLR: IN STD_LOGIC;</p><
27、p> ENA: IN STD_LOGIC;</p><p> CQ: OUT INTEGER RANGE 0 TO 15;</p><p> CARRY_OUT: OUT STD_LOGIC);</p><p><b> END TN6;</b></p><p> ARCHITECTURE ART OF
28、TN6 IS</p><p> SIGNAL CQI: INTEGER RANGE 0 TO 15;</p><p><b> BEGIN</b></p><p> PROCESS(CLK,CLR,ENA) IS</p><p><b> BEGIN</b></p><p
29、> IF CLR='1' THEN CQI<=0;</p><p> ELSIF CLK'EVENT AND CLK='1' THEN</p><p> IF ENA='1' THEN</p><p> IF CQI<5 THEN CQI<=CQI+1;</p>&
30、lt;p> ELSE CQI<=0;END IF;</p><p><b> END IF;</b></p><p><b> END IF;</b></p><p> END PROCESS;</p><p> PROCESS(CQI) IS</p><p
31、><b> BEGIN</b></p><p> IF CQI=5 THEN CARRY_OUT<='1';</p><p> ELSE CARRY_OUT<='0'; END IF;</p><p> END PROCESS;</p><p><b>
32、 CQ<=CQI;</b></p><p><b> END ART;</b></p><p> 十進制計數(shù)器源程序代碼</p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> ENT
33、ITY TN10 IS</p><p> PORT(CLK: IN STD_LOGIC;</p><p> CLR: IN STD_LOGIC;</p><p> ENA: IN STD_LOGIC;</p><p> CQ: OUT INTEGER RANGE 0 TO 15;</p><p> CARRY
34、_OUT: OUT STD_LOGIC);</p><p><b> END TN10;</b></p><p> ARCHITECTURE ART OF TN10 IS</p><p> SIGNAL CQI: INTEGER RANGE 0 TO 15;</p><p><b> BEGIN<
35、/b></p><p> PROCESS(CLK,CLR,ENA) IS</p><p><b> BEGIN</b></p><p> IF CLR='1' THEN CQI<=0;</p><p> ELSIF CLK'EVENT AND CLK='1' T
36、HEN</p><p> IF ENA='1' THEN</p><p> IF CQI<9 THEN CQI<=CQI+1;</p><p> ELSE CQI<=0;END IF;</p><p><b> END IF;</b></p><p>&l
37、t;b> END IF;</b></p><p> END PROCESS;</p><p> PROCESS(CQI) IS</p><p><b> BEGIN</b></p><p> IF CQI=9 THEN CARRY_OUT<='1';</p>
38、<p> ELSE CARRY_OUT<='0'; END IF;</p><p> END PROCESS;</p><p><b> CQ<=CQI;</b></p><p><b> END ART;</b></p><p> 掃描電路的源程序
39、代碼</p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY SCAN IS</p><p> PORT(scanclk:in
40、std_logic;</p><p> count1,Count2,count3,count4,count5,count6:in std_logic_VECTOR(3 DOWNTO 0);</p><p> S:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);</p><p> DOUT:OUT STD_LOGIC_VECTOR(3 DOWN
41、TO 0));</p><p> END ENTITY SCAN;</p><p> ARCHITECTURE DATAFLOW OF SCAN IS</p><p> SIGNAL SS:STD_LOGIC_VECTOR(2 DOWNTO 0);</p><p><b> BEGIN</b></p>
42、<p> PROCESS(scanclk)</p><p><b> begin</b></p><p> IF(scanclk'EVENT AND scanclk='1')THEN</p><p> IF(SS="101")THEN</p><p>
43、SS<="000";</p><p><b> ELSE</b></p><p><b> SS<=SS+1;</b></p><p><b> END IF;</b></p><p><b> END IF;</b>
44、;</p><p> END PROCESS;</p><p><b> S<=SS;</b></p><p> DOUT<=COUNT1 WHEN SS="000" ELSE</p><p> COUNT2 WHEN SS="001" ELSE</p&g
45、t;<p> COUNT3 WHEN SS="010" ELSE</p><p> COUNT4 WHEN SS="011" ELSE</p><p> COUNT5 WHEN SS="100" ELSE</p><p><b> COUNT6;</b></
46、p><p> END DATAFLOW;</p><p> 位碼選擇電路的源程序代碼</p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p>
47、<p> ENTITY YIMA IS</p><p> PORT(INP: IN STD_LOGIC_VECTOR(2 DOWNTO 0);</p><p> OUTP: OUT BIT_VECTOR(7 DOWNTO 0));</p><p><b> END YIMA;</b></p><p>
48、 ARCHITECTURE ART OF YIMA IS</p><p><b> BEGIN</b></p><p> OUTP(0)<='1' WHEN INP="000" ELSE '0';</p><p> OUTP(1)<='1' WHEN INP=
49、"001" ELSE '0';</p><p> OUTP(2)<='1' WHEN INP="010" ELSE '0';</p><p> OUTP(3)<='1' WHEN INP="011" ELSE '0';</p>
50、;<p> OUTP(4)<='1' WHEN INP="100" ELSE '0';</p><p> OUTP(5)<='1' WHEN INP="101" ELSE '0';</p><p> OUTP(6)<='1' WHEN
51、 INP="110" ELSE '0';</p><p> OUTP(7)<='1' WHEN INP="111" ELSE '0';</p><p><b> END ART;</b></p><p> 七位數(shù)碼管顯示電路的源程序代碼</
52、p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY DELED IS</p><p> PORT(NUM: IN STD_LOGIC
53、_VECTOR(3 DOWNTO 0);</p><p> A,B,C,D,E,F,G: OUT STD_LOGIC);</p><p> END DELED;</p><p> ARCHITECTURE ART OF DELED IS</p><p> SIGNAL LED : STD_LOGIC_VECTOR(6 DOWNTO 0
54、);</p><p><b> BEGIN</b></p><p> PROCESS(NUM)</p><p><b> BEGIN </b></p><p> CASE NUM IS</p><p> WHEN "0000" => LED
55、 <= "1111110";</p><p> WHEN "0001" => LED <= "0110000";</p><p> WHEN "0010" => LED <= "1101101";</p><p> WHEN &qu
56、ot;0011" => LED <= "1111001";</p><p> WHEN "0100" => LED <= "0110011";</p><p> WHEN "0101" => LED <= "1011011";</p&g
57、t;<p> WHEN "0110" => LED <= "1011111";</p><p> WHEN "0111" => LED <= "1110000";</p><p> WHEN "1000" => LED <= "
58、;1111111";</p><p> WHEN "1001" => LED <= "1111011";</p><p> WHEN "1010" => LED <= "1110111";</p><p> WHEN "1011"
59、; => LED <= "0011111";</p><p> WHEN "1100" => LED <= "1001110";</p><p> WHEN "1101" => LED <= "0111101";</p><p>
60、; WHEN "1110" => LED <= "1001111";</p><p> WHEN OTHERS => LED <= "1000111";</p><p><b> END CASE;</b></p><p> END PROCESS;&l
61、t;/p><p> A<=LED(6);B<=LED(5);C<=LED(4);D<=LED(3);E<=LED(2);F<=LED(1);G<=LED(0);</p><p><b> END ART;</b></p><p> 六:編譯仿真及硬件測試</p><p><
62、;b> 1.編譯仿真</b></p><p> 當完成了以上秒表系統(tǒng)各個模塊的VHDL設(shè)計,就可以使用QuartusⅡ?qū)Ρ驹O(shè)計進行編譯和仿真。首先使用文本編輯器輸入本設(shè)計的所有模塊的源程序,先對各個模塊進行編譯和仿真,當所有模塊全部編譯通過和仿真功能正確后,就可以利用圖形編輯工具完成頂層設(shè)計,其設(shè)計圖如頂層設(shè)計圖所示。然后再對圖形編輯器編輯出的頂層設(shè)計圖進行全程編譯,通過之后就可以進行系統(tǒng)的
63、整體仿了。其中各個模塊的仿真已在模塊設(shè)計中完成,在此從略,下面只說明系統(tǒng)的整體仿真。</p><p><b> 2.頂層設(shè)計圖</b></p><p> 在仿真中,合理選取start和reset信號,就可以進行系統(tǒng)的整體仿真了。</p><p> 3.仿真后得到如下仿真波形圖</p><p><b>
64、硬件實驗調(diào)試</b></p><p><b> 1.開始計時</b></p><p><b> 2.暫停</b></p><p> 圖為運行至5.42秒暫停</p><p><b> 3.清零</b></p><p><b>
65、; 八.實驗心得及體會</b></p><p> 從實驗中,我對整個流程有了初步了解;對實驗進行了深入學(xué)習(xí),讓我掌握硬件描述語言Verilog HDL語言的語言規(guī)則,數(shù)據(jù)類型,語句結(jié)構(gòu)和模塊設(shè)計;接著是最關(guān)鍵的編程,需要根據(jù)任務(wù)書分析需要的模塊,編程并仿真。</p><p> 兩周的課程設(shè)計已經(jīng)結(jié)束,雖然時間很短,但是增強了我的實踐動手能力,使我深刻地認識到僅僅學(xué)習(xí)課本上
66、的知識是遠遠不夠的,必須要多多動手,多多實踐,才能真正理解并掌握所學(xué)的知識,達到學(xué)以致用的目的,為以后的工作積累了寶貴的經(jīng)驗,同時我也深深地感受到嚴謹?shù)膽B(tài)度對于科學(xué)研究的重要性。由于在設(shè)計的過程中,一點點的失誤都可能造成整個系統(tǒng)的癱瘓,所以每一個細節(jié)都要認真思考,認真操作,不能有絲百分的大意。這使我認識到要想做一個科研工作者是多么的不易!自己身上的缺點還有很多,要靠以后艱苦的努力來克服! 這次的課程設(shè)計給了我一次非常重要也非常難得的實踐
67、機會,使我可以將平時課本上學(xué)習(xí)的理論知識應(yīng)用于實際操作。設(shè)計的過程是十分艱苦的,由于從未接觸過類似的領(lǐng)域,所以剛開始的時候一片茫然,不知道該干些什么。隨著研究的逐漸深入,自己漸漸的摸出頭緒,掌握了一些規(guī)律和方法,設(shè)計的成果也逐步成型,最終按照要求完成了設(shè)計。在實際操作的過程中,碰到了許多的困難,但最終在老師的耐心指導(dǎo)和同學(xué)的熱情幫助下,按時完成了任務(wù)。在此對老師和同學(xué)們表示衷心的感謝! 最后感謝老師給與我這次寶貴的實踐機會!</p
68、><p><b> 九.參考文獻</b></p><p> 1. 康華光主編.電子技術(shù)基礎(chǔ)(數(shù)字部分),高等教育出版社。 </p><p> 2. 閻石主編. 電子技術(shù)基礎(chǔ)(數(shù)字部分),清華大學(xué)出版社。</p><p> 3. 陳大欽主編,電子技術(shù)基礎(chǔ)實驗,高等教育出版社。</p><p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- eda課程設(shè)計---數(shù)字跑表
- 數(shù)字電路eda課程設(shè)計數(shù)字跑表
- 電子跑表 課程設(shè)計
- 數(shù)字跑表設(shè)計
- 基于fpga的數(shù)字跑表設(shè)計
- 基于fpga的數(shù)字跑表設(shè)計
- 數(shù)字電子課程設(shè)計
- 數(shù)字時鐘課程設(shè)計
- 數(shù)字電子課程設(shè)計
- 數(shù)字秒表課程設(shè)計
- 數(shù)字時鐘課程設(shè)計
- 數(shù)字電子課程設(shè)計--數(shù)字時鐘
- 數(shù)字邏輯課程設(shè)計---數(shù)字時鐘
- 數(shù)字秒表課程設(shè)計
- 數(shù)字電子課程設(shè)計
- 數(shù)字秒表課程設(shè)計
- 數(shù)字電子課程設(shè)計
- 課程設(shè)計--數(shù)字秒表設(shè)計
- 課程設(shè)計--數(shù)字時鐘
- 數(shù)字時鐘課程設(shè)計
評論
0/150
提交評論