

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 《EDA技術(shù)及應(yīng)用》</p><p><b> 課程設(shè)計報告</b></p><p> 系 別: 機電與自動化學院 </p><p> 專業(yè)班級: 電氣自動化技術(shù)0902 </p><p> 學生姓名: </p&g
2、t;<p><b> 目 錄</b></p><p> 課程設(shè)計目的…………………………………………………………………3</p><p> 課程設(shè)計題目描述和要求………………………………………………………3</p><p> 課程設(shè)計報告內(nèi)容………………………………………………………………3</p><
3、;p> 各模塊VHDL源程序………………………………………………………………5</p><p> 4.1.3MHz→100Hz分頻器的源程序…………………………………………………5</p><p> 4.2.十進制計數(shù)器源程序……………………………………………………………6</p><p> 4.3.六進制計數(shù)器源程序……………………………………………
4、………………9</p><p> 4.4.頂層綜合文件TIMES的源程序………………………………………………11</p><p> 5.總結(jié) ………………………………………………………………………………14</p><p> 參考文獻 ……………………………………………………………………………15</p><p> 秒表是人們?nèi)粘I?/p>
5、中常用的測時儀器,它能夠簡單的完成計時、清零等功能,從一年一度的校際運動會到NBA、世界杯、奧運會,都能看到秒表的身影。</p><p><b> 課程設(shè)計目的</b></p><p> 學習使用EDA集成設(shè)計軟件MaxplusⅡ設(shè)計一個計時范圍為0.01秒~1小時的數(shù)字秒表,能夠精確反映計時時間,并完成復(fù)位、計時功能。秒表計時的最大范圍為1小時,精度為0.01秒
6、。秒表可得到計時時間的分、秒、0.1秒等度量,且各度量單位間可正確進位。</p><p> 當復(fù)位清零有效時,秒表清零并做好計時準備。任何情況下,只要按下復(fù)位開關(guān),秒表都要無條件的進行復(fù)位操作,即使在計時過程中也要無條件的清零。</p><p> 了解全過程中VHDL程序的基本結(jié)構(gòu),掌握使用EDA工具設(shè)計數(shù)字系統(tǒng)的設(shè)計思路和設(shè)計方法。學習VHDL基本邏輯電路的綜合設(shè)計應(yīng)用,以及程序中數(shù)
7、據(jù)對象、數(shù)據(jù)類型、順序語句、并行語句的綜合使用。根據(jù)電路持點,用層次設(shè)計概念,將此設(shè)計任務(wù)分成若干模塊,規(guī)定每一模塊的功能和各模塊之間的接口,同時加深層次化設(shè)計概念;考慮軟件的元件管理深層含義,以及模塊元件之間的連接概念,對于不同目錄下的同一設(shè)計,如何熔合等問題。</p><p> 2.課程設(shè)計題目描述和要求</p><p> (1)根據(jù)設(shè)計題目要求完成設(shè)計輸入、綜合、模擬仿真驗證。&
8、lt;/p><p> (2)具有復(fù)位、暫停、秒表計時及結(jié)果直接送LED顯示的功能。</p><p> (3)三個輸入端,分別為:時鐘輸入(CLK)、復(fù)位(CLR)和啟動/暫停(ENA)。</p><p> (4)輸出端有:百分秒、秒和分鐘信號,皆采用BCD碼計數(shù)方式,并直接送到6個LED顯示。</p><p> (5)提供設(shè)計報告,報告要
9、求包括以下內(nèi)容:設(shè)計思路、設(shè)計輸入文件、設(shè)計與調(diào)試過程、模擬仿真結(jié)果和設(shè)計結(jié)論。</p><p> 3. 課程設(shè)計報告內(nèi)容</p><p> 系統(tǒng)由一個分頻器CLKGEN,四個十進制計數(shù)器CNT10,兩個六進制計數(shù)器CNT6組成。其中1/100和1/10秒都是十進制計數(shù)器,秒和分的個位是十進制計數(shù)器,十位是六進制計數(shù)器。</p><p> 分頻器以3MHz的脈
10、沖波做輸入信號,為系統(tǒng)提供精確的100Hz時鐘信號。作為百分秒的CLK輸入端。1/100秒的進位信號作為1/10秒的CLK信號,而1/10秒的進位信號作為秒的CLK信號。秒的進位信號作為秒10的CLK,秒10的進位接分的CLK,分的進位接分10的CLK。</p><p> ENA為異步開始信號,為‘1’時開始計時,為‘0’時暫停計時。CLR為異步清零信號,為‘1’清零,所有計數(shù)器重新從‘0000’開始。<
11、;/p><p><b> 輸出:</b></p><p> DOUT[0…23]是BCD碼輸出:</p><p> DOUT[0…3]為1/100秒的BCD碼輸出;</p><p> DOUT[4…7]為1/10秒的BCD碼輸出;</p><p> DOUT[8…11]為秒的BCD碼輸出;&
12、lt;/p><p> DOUT[12…15]為10秒的BCD碼輸出;</p><p> DOUT[16…19]為分的BCD碼輸出;</p><p> DOUT[20…23]為10分的BCD碼輸出。</p><p> 輸出的BCD碼送LED顯示解碼器。</p><p> 系統(tǒng)的結(jié)構(gòu)原理圖1所示:</p>
13、<p> 圖1 系統(tǒng)的結(jié)構(gòu)原理圖</p><p> 各模塊VHDL源程序</p><p> 4.1.3MHz→100Hz分頻器的源程序</p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> ENTITY
14、 CLKGEN IS</p><p> PORT (CLK: IN STD_LOGIC;</p><p> NEWCLK: OUT STD_LOGIC);</p><p> END ENTITY CLKGEN;</p><p> ARCHITECTURE ART OF CLKGEN IS</p><p>
15、; SIGNAL CNTER: INTEGER RANGE 0 TO 10#29999#;</p><p><b> BEGIN </b></p><p> PROCESS (CLK) IS</p><p> BEGIN </p><p> IF CLK' EVENT AND CLK=
16、39;1' THEN</p><p> IF CNTER =10#29999#</p><p> THEN CNTER<=0;</p><p> ELSE CNTER<=CNTER+1;</p><p><b> END IF;</b></p><p><b>
17、; END IF;</b></p><p> END PROCESS;</p><p> PROCESS(CNTER) IS</p><p><b> BEGIN</b></p><p> IF CNTER=10#29999#</p><p> THEN NEWCLK<
18、;='1';</p><p> ELSE NEWCLK<='0';</p><p><b> END IF;</b></p><p> END PROCESS;</p><p> END ARCHITECTURE ART;</p><p> 此處用到
19、了一個分頻比為30000的分頻器,用來將3MHz的脈沖分成100Hz,也就是當CLK經(jīng)過三萬個脈沖的時候,才會看到一個100Hz的計數(shù)脈沖NEWCLK。</p><p> 由于使用的器件EPF10K10LC84-3反應(yīng)時間最短為3ns ,因此Grid Size不能設(shè)置太小,否則會出錯。在這里設(shè)置為10.0ns 。這樣,一個CLK的周期為20ns ,總時間為</p><p> 29999
20、 X 2X10.0ns =0.59998ms</p><p> 所以End Time要設(shè)置為1ms 才能使CNTER計數(shù)到29999并歸0 。</p><p> 其仿真波形如圖2所示:</p><p> 圖2 CLKGEN的仿真波形</p><p> 當變量CNTER計數(shù)到29999時清零,同時NEWCLK產(chǎn)生一個脈沖波。</
21、p><p><b> 其原理圖如圖3。</b></p><p> 圖3 CLKGEN的原理圖</p><p> 4.2. 十進制計數(shù)器源程序</p><p> LIBRARY IEEE; </p><p> USE IEEE.STD_LOGIC_1164.ALL;</p&
22、gt;<p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY cnt10 IS</p><p> PORT (CLK: IN STD_LOGIC;</p><p> CLR: IN STD_LOGIC;</p><p> ENA: IN STD_LOGIC;</
23、p><p> CQ: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> CARRY_OUT: OUT STD_LOGIC);</p><p> END ENTITY cnt10; </p><p> ARCHITECTURE ART10 OF cnt10 IS</p><p&g
24、t; SIGNAL CQI:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p><b> BEGIN </b></p><p> PROCESS(CLK,CLR,ENA)IS</p><p><b> BEGIN </b></p><p> IF CLR='
25、1'</p><p> THEN CQI<="0000";</p><p> ELSIF CLK'EVENT AND CLK='1'THEN</p><p> IF ENA='1' THEN</p><p> IF CQI ="1001"&
26、lt;/p><p> THEN CQI<="0000";</p><p> ELSE CQI<=CQI+'1'; </p><p><b> END IF;</b></p><p><b> END IF;</b></p>&l
27、t;p><b> END IF;</b></p><p> END PROCESS;</p><p> PROCESS(CQI) IS</p><p><b> BEGIN</b></p><p> IF CQI="0000"</p><p&g
28、t; THEN CARRY_OUT<='1';</p><p> ELSE CARRY_OUT<='0'; </p><p><b> END IF;</b></p><p> END PROCESS;</p><p><b> CQ<=CQI;<
29、;/b></p><p> END ARCHITECTURE ART10;</p><p> 以上為十進制計數(shù)器源程序,基本原理是在使能信號ENA為高電平﹑清零信號CLR為低電平且 CLK為時鐘上升沿(CLK'EVENT AND CLK='1')時,CQI開始進行累加計數(shù)(CQI<=CQI+1),當CQI="0101",即為BCD
30、數(shù)0101時,計數(shù)器向CARRY_OUT進位且CQI<="0000"進行清零。如此0000→0001→0010→0011→0100→0101→0110→0111→1000→1001循環(huán),進行十進制計數(shù)。上述源程序的波形仿真波形如下圖4所示。</p><p> 圖4 cnt10的仿真波形</p><p> 由圖4可以看出,CQ從“0000”開始計數(shù),計數(shù)到“1
31、001”時翻“0000”,同時CARRY_OUT進位信號輸出高電平。當ENA使能信號為高電平時計數(shù)器計數(shù),為低電平時停止計數(shù),CQ輸出值沒有變化。當CLR清零信號為高電平時CQ清零,CARRY_OUT進位信號輸出高電平,當CLR為低電平時正常計數(shù)。</p><p><b> 其原理圖如圖5。</b></p><p> 圖5 cnt10的原理圖</p>
32、<p> 4.3. 六進制計數(shù)器源程序</p><p> LIBRARY IEEE; </p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY cnt6 IS</p&
33、gt;<p> PORT (CLK: IN STD_LOGIC;</p><p> CLR: IN STD_LOGIC;</p><p> ENA: IN STD_LOGIC;</p><p> CQ: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); </p><p> CARRY_OUT: OU
34、T STD_LOGIC);</p><p> END ENTITY cnt6; </p><p> ARCHITECTURE ART11 OF cnt6 IS</p><p> SIGNAL CQI:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p><b> BEGIN </b>&l
35、t;/p><p> PROCESS(CLK,CLR,ENA)IS</p><p><b> BEGIN </b></p><p> IF CLR='1'</p><p> THEN CQI<="0000";</p><p> ELSIF CLK
36、9;EVENT AND CLK='1'THEN</p><p> IF ENA='1' THEN</p><p> IF CQI ="0101"</p><p> THEN CQI<="0000";</p><p> ELSE CQI<=CQI+
37、'1'; </p><p><b> END IF;</b></p><p><b> END IF;</b></p><p><b> END IF;</b></p><p> END PROCESS;</p><p> P
38、ROCESS(CQI) IS</p><p><b> BEGIN</b></p><p> IF CQI="0000"</p><p> THEN CARRY_OUT<='1';</p><p> ELSE CARRY_OUT<='0'; <
39、/p><p><b> END IF;</b></p><p> END PROCESS;</p><p><b> CQ<=CQI;</b></p><p> END ARCHITECTURE ART11;</p><p> 以上為六進制計數(shù)器源程序,基本原理是
40、在使能信號ENA為高電平﹑清零信號CLR為低電平且 CLK為時鐘上升沿(CLK'EVENT AND CLK='1')時,CQI開始進行累加計數(shù)(CQI<=CQI+1),當CQI="0101",即為BCD數(shù)0101時,計數(shù)器向CARRY_OUT進位且CQI<="0000"進行清零。如此0000→0001→0010→0011→0100→0101循環(huán),進行六進制計數(shù)。
41、上述源程序的波形仿真波形如下圖6所示。</p><p> 圖6 cnt6的仿真波形</p><p> 從上圖可以看出,CQ從“0000”開始計數(shù),計數(shù)到“0101”時翻“0000”,同時CARRY_OUT進位信號輸出高電平。當ENA使能信號為高電平時計數(shù)器計數(shù),為低電平時停止計數(shù),CQ輸出值沒有變化。當CLR清零信號為高電平時CQ清零,CARRY_OUT進位信號輸出高電平,當CLR為低
42、電平時正常計數(shù)。</p><p><b> 其原理圖如圖7。</b></p><p> 圖7 cnt6的原理圖</p><p> 4.4.頂層綜合文件TIMES的源程序</p><p> LIBRARY IEEE; </p><p> USE IEEE.STD_LOGIC_1164.AL
43、L;</p><p> ENTITY times IS</p><p> PORT(CLK: IN STD_LOGIC;</p><p> CLR:IN STD_LOGIC;</p><p> ENA: IN STD_LOGIC;</p><p> DOUT: OUT STD_LOGIC_VECTOR(23
44、DOWNTO 0));</p><p> END ENTITY times;</p><p> ARCHITECTURE ART OF times IS</p><p> COMPONENT CLKGEN IS </p><p> PORT(CLK: IN STD_LOGIC;</p><p> NEWCLK
45、: OUT STD_LOGIC);</p><p> END COMPONENT CLKGEN;</p><p> COMPONENT CNT10 IS</p><p> PORT(CLK,CLR,ENA: IN STD_LOGIC;</p><p> CQ: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);<
46、/p><p> CARRY_OUT: OUT STD_LOGIC);</p><p> END COMPONENT CNT10;</p><p> COMPONENT CNT6 IS</p><p> PORT(CLK,CLR,ENA: IN STD_LOGIC;</p><p> CQ: OUT STD_LOG
47、IC_VECTOR(3 DOWNTO 0);</p><p> CARRY_OUT: OUT STD_LOGIC);</p><p> END COMPONENT CNT6;</p><p> SIGNAL S0: STD_LOGIC;</p><p> SIGNAL S1,S2,S3,S4,S5: STD_LOGIC;</p&
48、gt;<p><b> BEGIN</b></p><p> U0: CLKGEN PORT MAP(CLK=>CLK, NEWCLK=>S0);</p><p> U1: CNT10 PORT MAP(S0,CLR,ENA, DOUT(3 DOWNTO 0),S1);</p><p> U2: CNT10 P
49、ORT MAP(S1,CLR,ENA, DOUT(7 DOWNTO 4),S2);</p><p> U3: CNT10 PORT MAP(S2,CLR,ENA, DOUT(11 DOWNTO 8),S3);</p><p> U4: CNT6 PORT MAP(S3,CLR,ENA, DOUT(15 DOWNTO 12),S4);</p><p> U5:
50、CNT10 PORT MAP(S4,CLR,ENA, DOUT(19 DOWNTO 16),S5);</p><p> U6: CNT6 PORT MAP(S5,CLR,ENA, DOUT(23 DOWNTO 20));</p><p> END ARCHITECTURE ART;</p><p> 因為TIMES中包含的CLKGEN的分頻作用,因此需要300
51、00個CLK信號才能使1/100秒位計數(shù)一次,給仿真帶來很大難度。所以仿真前先要把CLKGEN去掉,直接把CLK信號作為1/100秒的時鐘信號。但是還是需要360000個CLK信號才能得到59分翻0分。所以分兩步進行仿真,先檢驗1/100秒跟1/10秒,再把CLK信號作為秒的時鐘信號進行仿真。</p><p> 第一步:對TIMES中相應(yīng)的程序進行一下改動:</p><p> ?。ò袰L
52、KGEN去掉,直接把CLK信號作為1/100秒的時鐘信號。)</p><p> SIGNAL S0: STD_LOGIC;</p><p> SIGNAL S1,S2,S3,S4,S5: STD_LOGIC;</p><p><b> BEGIN</b></p><p> U1: CNT10 PORT MAP(c
53、lk,CLR,ENA, DOUT(3 DOWNTO 0),S1);</p><p> U2: CNT10 PORT MAP(S1,CLR,ENA, DOUT(7 DOWNTO 4),S2);</p><p> U3: CNT10 PORT MAP(S2,CLR,ENA, DOUT(11 DOWNTO 8),S3);</p><p> U4: CNT6 PORT
54、 MAP(S3,CLR,ENA, DOUT(15 DOWNTO 12),S4);</p><p> U5: CNT10 PORT MAP(S4,CLR,ENA, DOUT(19 DOWNTO 16),S5);</p><p> U6: CNT6 PORT MAP(S5,CLR,ENA, DOUT(23 DOWNTO 20));</p><p> END ARC
55、HITECTURE ART;</p><p> 然后進行波形仿真,仿真波形如下圖8:</p><p> 圖8 times test1的波形仿真</p><p> 如圖所示,1/100秒,1/10秒,秒,10秒位都能正常計數(shù)和進位,翻0。</p><p> 第二步:對TIMES中相應(yīng)的程序進行一下改動:</p><p
56、> ?。ò袰LKGEN去掉,直接把CLK信號作為秒的時鐘信號。)</p><p> SIGNAL S3,S4,S5: STD_LOGIC;</p><p><b> BEGIN</b></p><p> U2: CNT10 PORT MAP(clk,CLR,ENA, DOUT(11 DOWNTO 8),S3);</p>
57、<p> U3: CNT6 PORT MAP(S3,CLR,ENA, DOUT(15 DOWNTO 12),S4);</p><p> U4: CNT10 PORT MAP(S4,CLR,ENA, DOUT(19 DOWNTO 16),S5);</p><p> U5: CNT6 PORT MAP(S5,CLR,ENA, DOUT(23 DOWNTO 20));</
58、p><p> END ARCHITECTURE ART;</p><p> 然后進行波形仿真,仿真波形如圖9。</p><p> 圖9 times test2的波形仿真</p><p> 如圖8所示,秒,10秒,分和10分位都能正常計數(shù)和進位,翻0。</p><p><b> 5.總結(jié)</b>
59、;</p><p> 通過這次課程設(shè)計,使我們加深了對VHDL語言和MaxplusII的認識,增強了動手能力,并培養(yǎng)了我們獨立思考的習慣,和樹立了對試驗操作和數(shù)據(jù)分析一絲不茍的的態(tài)度。</p><p> 下面是試驗中碰到的部分問題的解決方法和應(yīng)該注意的事項:</p><p> 圖10 cnt10的波形仿真</p><p> 進行波形仿
60、真時,要考慮不同的輸入條件所能出現(xiàn)的所有情況。比如說在有使能信號ENA(或者清零信號CLR)的仿真圖要包含信號為‘1’和為‘0’兩種情況下的波形;有二輸入與門(或者非門)這樣器件則要包含輸入信號四種不同組合情況下的四種波形;還有計數(shù)器,要包含計滿清零向高位進位的波形等。</p><p> 如圖10,包含了ENA,CLR分別為‘0’和‘1’時的波形,還有CQ在時鐘CLK下降沿計數(shù)到9后清零并由CARRY_OUT向
61、高位輸出進位信號的波形。</p><p> 關(guān)于時鐘信號的設(shè)置。時鐘信號能設(shè)置的最小周期和Options中的Grid Size來決定,要得到周期為20ns的時鐘信號,就要把Grid Size設(shè)置為10ns。但是CLK的周期也不是越小越好,因為器件有最小反應(yīng)時間,設(shè)置的周期必須大于器件的反應(yīng)時間。</p><p> 減少不必要的計算。第一次做Times的波形時,沒有進行分步仿真,直接把C
62、LK信號加在CLKGEN的輸入端開始仿真。結(jié)果半個多小時過去了,還只是仿真到8分多。(仿真用的計算機CPU為奔騰4 1.7G)要得出59分翻0的波形,估計要4個多小時。所以把CLKGEN去掉,并且分兩步來進行波形仿真,計算量大大減小了,僅幾分鐘就得出了59分翻0的波形。</p><p><b> 參考文獻</b></p><p> 1. 潘松.EDA技術(shù)實用教程
63、. 成都:電子科技大學出版社,2000</p><p> 2. 李玉山. 電子系統(tǒng)集成設(shè)計技術(shù). 北京:電子工業(yè)出版社,2001.6.</p><p> 3. 李國麗.EDA與數(shù)字系統(tǒng)設(shè)計.北京:機械工業(yè)出版社,2004</p><p> 4. 周彩寶.VHDL語言及其應(yīng)用. 上海:華東計算機技術(shù)研究所,1998</p><p> 5
64、. 于海生.微型計算機控制技術(shù).北京:清華大學出版社,2006.8</p><p> 6. 林紅.周鑫霞.數(shù)字電路與邏輯設(shè)計.北京:清華大學出版社,2004.8</p><p> 7. 譚會生.張昌凡. EDA技術(shù)及應(yīng)用.西安: 西安電子科技大學出版社,2001</p><p> 8. 朱定華.陳林.電子電路測試與實驗. 北京:清華大學出版社,2005.7&l
溫馨提示
- 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è)計
- eda課程設(shè)計---數(shù)字秒表
- eda課程設(shè)計--數(shù)字秒表設(shè)計
- eda課程設(shè)計--數(shù)字秒表設(shè)計
- eda綜合課程設(shè)計-數(shù)字秒表
- eda數(shù)字秒表課程設(shè)計報告
- eda課程設(shè)計--數(shù)字秒表的設(shè)計
- eda課程設(shè)計---數(shù)字秒表的設(shè)計
- eda課程--數(shù)字秒表設(shè)計
- eda課程設(shè)計--秒表設(shè)計
- eda秒表電路課程設(shè)計
- eda課程設(shè)計--電子秒表設(shè)計
- 數(shù)字秒表課程設(shè)計
- 數(shù)字秒表課程設(shè)計
- 數(shù)字秒表課程設(shè)計
- 數(shù)字秒表課程設(shè)計
- 課程設(shè)計-- 數(shù)字秒表
- 課程設(shè)計--數(shù)字秒表設(shè)計
- 廣西科技大學eda課程設(shè)計數(shù)字秒表論文
- 課程設(shè)計---數(shù)字秒表設(shè)計
評論
0/150
提交評論