版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課程設(shè)計(jì)</b></p><p><b> 1 前言</b></p><p> 在科技高度發(fā)展的今天,集成電路和計(jì)算機(jī)應(yīng)用得到了高速發(fā)展。尤其是計(jì)算機(jī)應(yīng)用的發(fā)展。它在人們?nèi)粘I钜阎饾u嶄露頭角。大多數(shù)電子產(chǎn)品多是由計(jì)算機(jī)電路組成,</p><p> 如:手機(jī)、mp3等。而且將來(lái)的不久他們
2、的身影將會(huì)更頻繁的出現(xiàn)在我們身邊。各種家用電器多會(huì)實(shí)現(xiàn)微電腦技術(shù)。電腦各部分在工作時(shí)多是一時(shí)間為基準(zhǔn)的。這次課程設(shè)計(jì)就是基于計(jì)算機(jī)電路的時(shí)鐘脈沖信號(hào)、狀態(tài)控制等原理設(shè)計(jì)出的數(shù)字秒表。秒表在很多領(lǐng)域充當(dāng)一個(gè)重要的角色。在各種比賽中對(duì)秒表的精確度要求很高,尤其是一些科學(xué)實(shí)驗(yàn)。他們對(duì)時(shí)間精確度達(dá)到了幾納秒級(jí)別。</p><p> 1.1 課程設(shè)計(jì)的目的</p><p> 本次設(shè)計(jì)的目的就是在
3、掌握EDA實(shí)驗(yàn)開(kāi)發(fā)系統(tǒng)的初步使用基礎(chǔ)上,了解EDA技術(shù),對(duì)計(jì)算機(jī)系統(tǒng)中時(shí)鐘控制系統(tǒng)進(jìn)一步了解,通過(guò)對(duì)數(shù)字秒表的設(shè)計(jì),進(jìn)行理論與實(shí)際的結(jié)合,提高與計(jì)算機(jī)有關(guān)設(shè)計(jì)能力,提高分析、解決計(jì)算機(jī)技術(shù)實(shí)際問(wèn)題的能力。通過(guò)課程設(shè)計(jì)深入理解計(jì)算機(jī)結(jié)構(gòu)與控制實(shí)現(xiàn)的技術(shù),達(dá)到課程設(shè)計(jì)的目標(biāo)。</p><p> 1.2 課程設(shè)計(jì)的內(nèi)容</p><p> 設(shè)計(jì)一塊數(shù)字秒表,能夠精確反映計(jì)時(shí)時(shí)間,并完成復(fù)位、計(jì)
4、時(shí)功能。秒表計(jì)時(shí)的最大范圍為1小時(shí),精度為0.01秒,并可顯示計(jì)時(shí)時(shí)間的分、秒、0.1秒等度量。</p><p> 1.3 課程設(shè)計(jì)的要求</p><p> 給出系統(tǒng)總體組成框圖,設(shè)計(jì)思路,完成以上模塊的VHDL實(shí)現(xiàn)及功能仿真,頂層文件及整體仿真。</p><p><b> 2 設(shè)計(jì)過(guò)程</b></p><p>&
5、lt;b> 2.1 設(shè)計(jì)規(guī)劃</b></p><p> 本系統(tǒng)設(shè)計(jì)采用自頂向下的設(shè)計(jì)方案,系統(tǒng)的整體組裝設(shè)計(jì)原理圖如圖2-1所示,它主要由控制模塊、時(shí)基分頻模塊,計(jì)時(shí)模塊和顯示模塊四部分組成。各模塊分別完成計(jì)時(shí)過(guò)程的控制功能、計(jì)時(shí)功能與顯示功能。</p><p> 2.2 各模塊的原理及其程序</p><p> 本系統(tǒng)設(shè)計(jì)由控制模塊、時(shí)基分
6、頻模塊,計(jì)時(shí)模塊和顯示模塊四部分組成。各模塊實(shí)現(xiàn)秒表不同的功能 。圖2-2就是整個(gè)系統(tǒng)原理圖。</p><p> 2.2.1 控制模塊</p><p> 控制模塊的作用是針對(duì)計(jì)時(shí)過(guò)程進(jìn)行控制。計(jì)時(shí)控制模塊可用倆個(gè)按鈕來(lái)完成秒表的啟動(dòng)、停止和復(fù)位。VHDL源程序如下:</p><p> LIBRARY IEEE;</p><p> US
7、E IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY CTRL IS</p><p> PORT( CLR,CLK,SP:IN STD_LOGIC;</p><p> EN :OUT STD_LOGIC);</p&
8、gt;<p><b> END ;</b></p><p> ARCHITECTURE BEHAVE OF CTRL IS</p><p> CONSTANT S0: STD_LOGIC_VECTOR (1 DOWNTO 0):="00";</p><p> CONSTANT S1: STD_LOGIC
9、_VECTOR (1 DOWNTO 0):="01";</p><p> CONSTANT S2: STD_LOGIC_VECTOR (1 DOWNTO 0):="11";</p><p> CONSTANT S3: STD_LOGIC_VECTOR (1 DOWNTO 0):="10";</p><p&g
10、t; TYPE STATES IS (S0,S1,S2,S3);</p><p> SIGNAL CURRENT_STATE,NEXT_STATE:STATES;</p><p><b> BEGIN</b></p><p> COM:PROCESS(SP,CURRENT_STATE)</p><p><b
11、> BEGIN</b></p><p> CASE CURRENT_STATE IS</p><p> WHEN S0=>EN<='0';</p><p> IF SP='1'THEN</p><p> NEXT_STATE<=S1;</p><
12、p><b> ELSE</b></p><p> NEXT_STATE<=S0;</p><p><b> END IF;</b></p><p> WHEN S1=>EN<='1';</p><p> IF SP='1'THEN&l
13、t;/p><p> NEXT_STATE<=S1;</p><p><b> ELSE</b></p><p> NEXT_STATE<=S2;</p><p><b> END IF;</b></p><p> WHEN S2=>EN<=
14、9;1';</p><p> IF SP='1'THEN</p><p> NEXT_STATE<=S3;</p><p><b> ELSE</b></p><p> NEXT_STATE<=S2;</p><p><b> END IF;
15、</b></p><p> WHEN S3=>EN<='0';</p><p> IF SP='1'THEN</p><p> NEXT_STATE<=S3;</p><p><b> ELSE</b></p><p> NE
16、XT_STATE<=S0;</p><p><b> END IF;</b></p><p><b> END CASE;</b></p><p> END PROCESS;</p><p> SYNCH:PROCESS(clk)</p><p><b&g
17、t; BEGIN</b></p><p> IF CLR='1'THEN</p><p> CURRENT_STATE <=S0;</p><p> ELSIF CLK'EVENT AND CLK='1'THEN</p><p> CURRENT_STATE<=NEXT
18、_STATE;</p><p><b> END IF;</b></p><p> END PROCESS;</p><p> END BEHAVE;</p><p> 2.2.2 時(shí)基分頻模塊</p><p> 時(shí)基分頻模塊的作用把輸入時(shí)鐘信號(hào)變?yōu)榉诸l輸出信號(hào)。VHDL源程序:<
19、/p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY CB10 IS</p><p> PORT( CLK: IN STD_LOGI
20、C;</p><p> CO : OUT STD_LOGIC);</p><p><b> END CB10;</b></p><p> ARCHITECTURE ART OF CB10 IS</p><p> SIGNAL COUNT:STD_LOGIC_VECTOR (3 DOWNTO 0);</p&g
21、t;<p><b> BEGIN</b></p><p> PROCESS(CLK)</p><p><b> BEGIN</b></p><p> IF RISING_EDGE(CLK)THEN</p><p> IF COUNT="1001"THEN&
22、lt;/p><p> COUNT<="0000";</p><p><b> CO<='1';</b></p><p><b> ELSE</b></p><p> COUNT<=COUNT+1;</p><p>&l
23、t;b> CO<='0';</b></p><p><b> END IF;</b></p><p><b> END IF;</b></p><p> END PROCESS;</p><p><b> END ART;</b>
24、;</p><p> 2.2.3 計(jì)時(shí)模塊</p><p> 計(jì)時(shí)模塊執(zhí)行計(jì)時(shí)功能,計(jì)時(shí)方法和計(jì)算機(jī)一樣是對(duì)標(biāo)準(zhǔn)時(shí)鐘脈沖計(jì)數(shù)。他是由四</p><p> 個(gè)十進(jìn)制計(jì)數(shù)器和倆個(gè)六進(jìn)制計(jì)數(shù)器構(gòu)成,其中毫秒位、十毫秒位、秒位和分位采用十進(jìn)制計(jì)數(shù)器,十秒位和十分位采用六進(jìn)制計(jì)數(shù)器。VHDL源程序:</p><p><b> 1) 十
25、進(jìn)制計(jì)數(shù)器</b></p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY CDU10 IS</p><p> PO
26、RT( CLK:IN STD_LOGIC;</p><p> CLR,EN:IN STD_LOGIC;</p><p> CN :OUT STD_LOGIC;</p><p> COUNT10:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));</p><p> END CDU10;</p><p
27、> ARCHITECTURE ART OF CDU10 IS</p><p> SIGNAL SCOUNT10: STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> BEGIN COUNT10<=SCOUNT10;</p><p> PROCESS (CLK,CLR,EN)</p><p> B
28、EGIN IF(CLR='1')THEN</p><p> SCOUNT10<="0000";CN<='0';</p><p> ELSIF RISING_EDGE(CLK)THEN</p><p> IF(EN='1')THEN</p><p> IF
29、SCOUNT10="1001"THEN</p><p><b> CN<='1';</b></p><p> SCOUNT10<="0000";</p><p><b> ELSE</b></p><p><b>
30、 CN<='0';</b></p><p> SCOUNT10<=SCOUNT10+'1';</p><p><b> END IF;</b></p><p><b> END IF;</b></p><p><b> END
31、 IF;</b></p><p> END PROCESS;</p><p><b> END ART;</b></p><p><b> 2) 六進(jìn)制計(jì)數(shù)器</b></p><p> LIBRARY IEEE;</p><p> USE IEEE.ST
32、D_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY CDU6 IS</p><p> PORT( CLK,CLR,EN:IN STD_LOGIC;</p><p> CN :OUT STD_LOGIC;</p><p
33、> COUNT6:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));</p><p><b> END CDU6;</b></p><p> ARCHITECTURE ART OF CDU6 IS</p><p> SIGNAL SCOUNT6: STD_LOGIC_VECTOR(3 DOWNTO 0);<
34、/p><p><b> BEGIN </b></p><p> COUNT6<=SCOUNT6;</p><p> PROCESS (CLK,CLR,EN)</p><p><b> BEGIN </b></p><p> IF(CLR='1')T
35、HEN</p><p> SCOUNT6<="0000";CN<='0';</p><p> ELSIF RISING_EDGE(CLK) THEN</p><p> IF(EN='1')THEN</p><p> IF SCOUNT6="0101"T
36、HEN</p><p><b> CN<='1';</b></p><p> SCOUNT6<="0000";</p><p><b> ELSE</b></p><p><b> CN<='0';</b&
37、gt;</p><p> SCOUNT6<=SCOUNT6+'1';</p><p><b> END IF;</b></p><p><b> END IF;</b></p><p><b> END IF;</b></p><
38、;p> END PROCESS;</p><p><b> END ART;</b></p><p><b> 3) 計(jì)數(shù)器</b></p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><
39、;p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY COUNT IS</p><p> PORT( CLK,CLR,EN:IN STD_LOGIC;</p><p> S_1MS:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> S_10
40、MS:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> S_100MS:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> S_1S:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> S_10S:OUT STD_LOGIC_VECTOR(3 DOWNTO
41、0);</p><p> S_1MIN:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> S_10MIN:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> HOUR:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));</p><p> END C
42、OUNT;</p><p> ARCHITECTURE ART OF COUNT IS</p><p> COMPONENT CDU10</p><p> PORT( CLK,CLR,EN:IN STD_LOGIC;</p><p> CN :OUT STD_LOGIC;</p><p> COUNT10
43、:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));</p><p> END COMPONENT CDU10;</p><p> COMPONENT CDU6</p><p> PORT( CLK,CLR,EN:IN STD_LOGIC;</p><p> CN :OUT STD_LOGIC;</p>
44、;<p> COUNT6:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));</p><p> END COMPONENT CDU6;</p><p> SIGNAL A,B,C,D,E,F,G,H:STD_LOGIC;</p><p><b> BEGIN</b></p><p>
45、; UL:CDU10 PORT MAP (CLK,CLR,EN,A,S_1MS);</p><p> U2:CDU10 PORT MAP (A,CLR,EN,B,S_10MS);</p><p> U3:CDU10 PORT MAP (B,CLR,EN,C,S_100MS);</p><p> U4:CDU10 PORT MAP (C,CLR
46、,EN,D,S_1S);</p><p> U5:CDU6 PORT MAP (D,CLR,EN,E,S_10S);</p><p> U6:CDU10 PORT MAP (E,CLR,EN,F,S_1MIN);</p><p> U7:CDU6 PORT MAP (F,CLR,EN,G,S_10MIN);</p><p&g
47、t; U8:CDU10 PORT MAP (G,CLR,EN,H,HOUR);</p><p><b> END ART;</b></p><p> 2.2.4 顯示模塊</p><p> 計(jì)時(shí)顯示電路的作用是將計(jì)時(shí)值在LED數(shù)碼管上顯示出來(lái)。計(jì)時(shí)電路產(chǎn)生的值經(jīng)過(guò)BCD七段譯碼后,驅(qū)動(dòng)LED數(shù)碼管。計(jì)時(shí)顯示電路的實(shí)現(xiàn)方案采用掃描顯示
48、。VHDL源程序:</p><p><b> 1) 數(shù)據(jù)選擇器</b></p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p&g
49、t; ENTITY MULX IS</p><p> PORT( CLK,CLR,EN:IN STD_LOGIC;</p><p> S_1MS:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> S_10MS:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> S_1
50、00MS:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> S_1S:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> S_10S:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> S_1MIN:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
51、</p><p> S_10MIN:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> HOUR:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> OUTBCD:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> SEG:OUT STD
52、_LOGIC_VECTOR(7 DOWNTO 0));</p><p><b> END MULX;</b></p><p> ARCHITECTURE ART OF MULX IS</p><p> SIGNAL COUNT :STD_LOGIN_VECTOR(3 DOWNTO 0);</p><p><b
53、> BEGIN</b></p><p> PROCESS (CLK)</p><p><b> BEGIN</b></p><p> IF CLR='1'THEN</p><p> COUNT<="1111";</p><p>
54、 ELSIF RISING_EDGE(CLK)THEN</p><p> IF EN ='1' THEN </p><p> COUNT<="0000";</p><p><b> ELSE</b></p><p> COUNT<=COUNT+'1'
55、;;</p><p><b> END IF;</b></p><p><b> END IF;</b></p><p><b> END IF;</b></p><p> END PROCESS;</p><p> PROCESS(CLK)&
56、lt;/p><p><b> BEGIN</b></p><p> IF CLK'EVENT AND CLK='1' THEN</p><p> CASE COUNT IS</p><p> WHEN "0000"=>OUTBCD<=S_1MS;
57、 SEG<="11111110";</p><p> WHEN "0001"=>OUTBCD<=S_10MS; SEG<="11111101";</p><p> WHEN "0010"=>OUTBCD<=S_100MS; SEG<=&qu
58、ot;11111011";</p><p> WHEN "0011"=>OUTBCD<=S_1S; SEG<="11110111";</p><p> WHEN "0100"=>OUTBCD<=S_10S; SEG<="11101111&
59、quot;;</p><p> WHEN "0101"=>OUTBCD<=S_1MIN; SEG<="11011111";</p><p> WHEN "0110"=>OUTBCD<=S_10MIN; SEG<="10111111";</p
60、><p> WHEN "0111"=>OUTBCD<=S_HUOR; SEG<="01111111";</p><p> WHEN "1000"=>OUTBCD<=S_1MS; SEG<="11111110";</p><p&
61、gt; WHEN "1001"=>OUTBCD<=S_10MS; SEG<="11111101";</p><p> WHEN OTHERS=>OUTBCD<="0000"; SEG<="00000000";</p><p><b>
62、 END CASE;</b></p><p><b> END IF;</b></p><p> END PROCESS;</p><p><b> END ART;</b></p><p> 2) BCD七段譯碼器</p><p> LIBRARY
63、IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY BCD7 IS</p><p><b> PORT( </b></p><p> B
64、CD:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> LED:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));</p><p><b> END BCD7;</b></p><p> ARCHITECTURE ART OF BCD7 IS</p><p>&l
65、t;b> BEGIN</b></p><p> LED<="1111110"WHEN BCD ="0000" ELSE</p><p> "0110000"WHEN BCD ="0001" ELSE</p><p> "1101101"
66、WHEN BCD ="0010" ELSE</p><p> "1111001"WHEN BCD ="0011" ELSE</p><p> "0110011"WHEN BCD ="0100" ELSE</p><p> "1011011"W
67、HEN BCD ="0101" ELSE</p><p> "1011111"WHEN BCD ="0110" ELSE</p><p> "1110000"WHEN BCD ="0111" ELSE</p><p> "1111111"WH
68、EN BCD ="1000" ELSE</p><p> "1111011"WHEN BCD ="1001" ELSE</p><p> "0000000";</p><p><b> END ART;</b></p><p> 2.
69、2.5 頂層設(shè)計(jì)的源程序</p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY MB IS</p><p> PORT( SP
70、,CLR,CLK:IN STD_LOGIC;</p><p> CO,EN: OUT STD_LOGIC;</p><p> LED:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);</p><p> OUTBCD:OUT STD_LOGIC_VECTOR(3 DOWNTO 0))</p><p> SEG:OUT
71、STD_LOGIC_VECTOR(7 DOWNTO 0));</p><p><b> END MB;</b></p><p> ARCHITECTURE ART OF MB IS</p><p> COMPONENT CTRL</p><p> PORT( CLK,CLR,SP:IN STD_LOGIC;&
72、lt;/p><p> EN :OUT STD_LOGIC);</p><p> END COMPONENT ;</p><p> COMPONENT CB10</p><p> PORT( CLK:IN STD_LOGIC;</p><p> CO :OUT STD_LOGIC);</p>&l
73、t;p> END COMPONENT ;</p><p> COMPONENT COUNT</p><p> PORT( CLK,CLR,EN:IN STD_LOGIC;</p><p> S_1MS: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> S_10MS: OUT
74、STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> S_100MS: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> S_1S: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> S_10S: OUT STD_LOGIC_VECTOR(3
75、DOWNTO 0);</p><p> S_1MIN: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> S_10MIN: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> HOUR: OUT STD_LOGIC_VECTOR(3 DOWNTO 0));</p&g
76、t;<p> END COMPONENT;</p><p> COMPONENT BCD7</p><p> PORT( BCD:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> LED :OUT STD_LOGIC_VECTOR(6 DOWNTO 0);</p><p> END
77、 COMPONENT ;</p><p> COMPONENT MULX</p><p> PORT( CLK,CLR,EN:IN STD_LOGIC;</p><p> S_1MS:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> S_10MS:IN STD_LOGIC_VECTOR(3 DOWNT
78、O 0);</p><p> S_100MS:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> S_1S:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> S_10S:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> S_1MIN:I
79、N STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> S_10MIN:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> HOUR:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> OUTBCD:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);<
80、;/p><p> SEG:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));</p><p> END COMPONENT;</p><p> SIGNAL C,E:STD_LOGIC;</p><p> SIGNAL MS1_S,MS10_S,MS100_S:STD_LOGIC_VECTOR(3 DOWNTO 0);&
81、lt;/p><p> SIGNAL S1S_S,S10_S:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> SIGNAL MIN1_S,MIN10_S:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> SIGNAL H:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><
82、;p> SIGNAL BCD_S,MS10_S,MS100_S:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p><b> BEGIN</b></p><p> U0: CTRL PORT MAP(CLR,CLK,SP,E);</p><p> U1: CB10 PORT MAP(CLK,C);</
83、p><p><b> U2:</b></p><p> COUNTPORT MAP(C,CLR,E,MS1_S,MS10_S,MS100_S,S1S_S,S10_S,MIN1_SMIN10_S,H);</p><p> U3:MULXPORTMAP(CLR,CLK,E,MS1_S,MS10_S,MS100_S,S1S_S,S10_S,MIN1
84、_SMIN10_S,H,BCD_S,SEG);</p><p> U4: BCD7 PORT MAP(BCD_S,LED);</p><p><b> CO<=C;</b></p><p><b> EN<=E;</b></p><p> OUTBCD<=BCD_S;<
85、;/p><p><b> END ART;</b></p><p><b> 3 系統(tǒng)仿真</b></p><p> 3.1 控制模塊的仿真(如圖 3-1所示)</p><p> 分析:CLK、CLR和SP為輸入信號(hào),EN為輸出信號(hào)。</p><p> 3.2 時(shí)基分頻
86、模塊的仿真(如圖 3-2所示)</p><p> 分析:CLK為時(shí)鐘信號(hào)的輸入 ,CO為分頻輸出信號(hào)。</p><p> 3.3 計(jì)時(shí)電路模塊的仿真(如圖 3-3~圖3-5所示) </p><p> 3.3.1 十進(jìn)制計(jì)數(shù)器的仿真(如圖3-3所示)</p><p> 3.3.2 六進(jìn)制計(jì)數(shù)器的仿真(如圖3-4所示)</p>
87、<p> 3.3.3 計(jì)數(shù)器的仿真(如圖3-5所示)</p><p> 分析:clk為時(shí)鐘脈沖脈沖,s_1ms是毫秒計(jì)數(shù)值,s_10ms是十毫秒計(jì)數(shù)器,s_100ms是百毫秒計(jì)數(shù)器,s_1s是秒計(jì)數(shù)器,s_10s是十秒計(jì)數(shù)器,m_1min是分計(jì)數(shù)器,s_10min是十分計(jì)數(shù)器,hour是小時(shí)計(jì)數(shù)器。它們均為輸入信號(hào)。每來(lái)個(gè)時(shí)鐘脈沖,s_1ms加1,當(dāng)s_1ms滿(mǎn)十時(shí),s_10ms加1,依次類(lèi)推,
88、s_10ms滿(mǎn)十的時(shí)候,s_100ms加1等等作為輸出。</p><p> 3.4 顯示電路模塊的仿真(如圖 3-6~圖3-7所示)</p><p> 3.4.1 數(shù)據(jù)選擇器的仿真(如圖 3-6所示)</p><p> 3.4.2 BCD七段譯碼器驅(qū)動(dòng)器的仿真(如圖 3-7所示)</p><p> 分析:bcd為時(shí)鐘脈沖輸入信號(hào),le
89、d是輸出信號(hào),如圖所示:當(dāng)輸出為“1111110”時(shí)候,輸入為“0000”;當(dāng)輸出為“0110000”時(shí)輸入“0001”,當(dāng)輸入為“0010”時(shí)輸出為“1101101”,當(dāng)輸入為“0011”時(shí)輸出為“1111001”等等來(lái)實(shí)現(xiàn)七段譯碼功能。</p><p> 3.5 數(shù)字秒表整個(gè)系統(tǒng)的仿真(如圖3-8所示)</p><p> 分析:秒表開(kāi)始從零開(kāi)始計(jì)數(shù),每次增加10ms。工作很正常的進(jìn)
90、行。</p><p><b> 4 心得體會(huì)</b></p><p> 對(duì)于這次課程設(shè)計(jì),由于以前做實(shí)驗(yàn)的時(shí)候已經(jīng)接觸過(guò)類(lèi)似的題目,所以做起來(lái)不是很困難。但是,開(kāi)始做設(shè)計(jì)時(shí)總是會(huì)犯一些錯(cuò)誤,只有經(jīng)過(guò)不停的改錯(cuò),不停的編譯,才能得到正確的程序,這也說(shuō)明了作為軟件編程人員是不能粗心大意的。一個(gè)程序的質(zhì)量的高低與你細(xì)心與否有著一定的聯(lián)系。在編程時(shí),我充分使用了結(jié)構(gòu)化的思
91、想,這樣程序檢查起來(lái)也比較方便,調(diào)試時(shí)也給了我很大方便,只要一個(gè)模塊一個(gè)模塊的進(jìn)行調(diào)試就可以了,充分體現(xiàn)了結(jié)構(gòu)化編程的優(yōu)勢(shì)。在設(shè)計(jì)中要求我要有毅力,還要細(xì)心,稍有不慎,一個(gè)小小的錯(cuò)誤就會(huì)導(dǎo)致結(jié)果的不正確,而對(duì)錯(cuò)誤的檢查要求我要有足夠的耐心,通過(guò)這次設(shè)計(jì)和設(shè)計(jì)中遇到的問(wèn)題,也積累了一定的經(jīng)驗(yàn),對(duì)以后從事集成電路設(shè)計(jì)工作會(huì)有一定的幫助。</p><p> 雖然設(shè)計(jì)過(guò)程不是一帆風(fēng)順,遇到了許多問(wèn)題,但整個(gè)過(guò)程讓我學(xué)到
92、了很多平時(shí)沒(méi)學(xué)到的知識(shí)。通過(guò)這次設(shè)計(jì)更進(jìn)一步的提高了我的思維能力,動(dòng)手能力,增強(qiáng)了對(duì)專(zhuān)業(yè)學(xué)習(xí)的興趣。希望以此為起點(diǎn),在以后的學(xué)習(xí)中能更積極的動(dòng)腦動(dòng)手,提高自己的綜合能力,為以后的發(fā)展打下堅(jiān)實(shí)的基礎(chǔ)。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 謝華生.VHDL數(shù)字控制系統(tǒng)設(shè)計(jì)范例. 2006</p><p> [
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- eda課程設(shè)計(jì)---數(shù)字秒表
- eda課程設(shè)計(jì)--數(shù)字秒表設(shè)計(jì)
- eda課程設(shè)計(jì)--數(shù)字秒表設(shè)計(jì)
- eda綜合課程設(shè)計(jì)-數(shù)字秒表
- eda數(shù)字秒表課程設(shè)計(jì)報(bào)告
- eda課程設(shè)計(jì)--數(shù)字秒表的設(shè)計(jì)
- eda課程設(shè)計(jì)---數(shù)字秒表的設(shè)計(jì)
- eda課程--數(shù)字秒表設(shè)計(jì)
- eda技術(shù)及應(yīng)用課程設(shè)計(jì)--數(shù)字秒表
- eda課程設(shè)計(jì)--秒表設(shè)計(jì)
- eda秒表電路課程設(shè)計(jì)
- eda課程設(shè)計(jì)--電子秒表設(shè)計(jì)
- 數(shù)字秒表課程設(shè)計(jì)
- 數(shù)字秒表課程設(shè)計(jì)
- 數(shù)字秒表課程設(shè)計(jì)
- 數(shù)字秒表課程設(shè)計(jì)
- 課程設(shè)計(jì)-- 數(shù)字秒表
- 課程設(shè)計(jì)--數(shù)字秒表設(shè)計(jì)
- 廣西科技大學(xué)eda課程設(shè)計(jì)數(shù)字秒表論文
- 課程設(shè)計(jì)---數(shù)字秒表設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論