版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 電子課程設(shè)計</b></p><p> ----數(shù)字秒表的設(shè)計</p><p><b> 目錄</b></p><p> 設(shè)計任務(wù)及要求 ……………………………………………………1</p><p> 二.總體框圖 ……………………………………………………………1
2、</p><p> 三.選擇器件 ……………………………………………………………1</p><p> 四.功能模塊 ……………………………………………………………2</p><p> 4.1 分頻模塊……………………………………………………………2</p><p> 4.2 0.01秒模塊…………………………………………………………3
3、</p><p> 4.3 秒模塊………………………………………………………………5</p><p> 4.4 分模塊………………………………………………………………6</p><p> 4.5 掃描模塊……………………………………………………………7</p><p> 4.6 數(shù)碼管模塊…………………………………………………………9
4、</p><p> 4.7 三八譯碼器模塊 …………………………………………………11</p><p> 五.總體設(shè)計電路圖……………………………………………………13</p><p> 5.1總體電路設(shè)計原理圖………………………………………………13</p><p> 5.2仿真結(jié)果……………………………………………………………13
5、</p><p> 5.3管腳分配……………………………………………………………20</p><p> 5.4硬件實現(xiàn)……………………………………………………………20</p><p> 六.心得體會……………………………………………………………22</p><p><b> 數(shù)字秒表的設(shè)計</b></p&
6、gt;<p><b> 一.設(shè)計任務(wù)及要求</b></p><p> 設(shè)計一個數(shù)字秒表,用VHDL語言編程,并進(jìn)行下載,仿真。具體化技術(shù)指標(biāo)如下:</p><p> (1)數(shù)字秒表的計時范圍是0秒-59分59.99秒,顯示的最長時間為59分59秒;</p><p> ?。?)數(shù)字秒表的計時精度是10ms;</p>
7、<p> ?。?)復(fù)位開關(guān)可以在任何情況下使用,即便在計時過程中,只要按一下復(fù)位開關(guān),計時器就清零,并做好下次計時的準(zhǔn)備;</p><p> ?。?)具有啟/停開關(guān),即按一下啟/停開關(guān),起動計時器開始計時,再按一下啟/停開關(guān)則停止計時。</p><p><b> 二.總體框圖</b></p><p><b> 圖1.
8、總體框圖</b></p><p> 由頻率信號輸出端輸出頻率為100HZ的時鐘信號,輸入到0.0秒模塊的時鐘端clk,0.01秒模塊為100進(jìn)制的計數(shù)器,產(chǎn)生的進(jìn)位信號count輸入到下一級秒模塊的時鐘端,以此類推,直到分模塊計數(shù)到59進(jìn)60時,產(chǎn)生的進(jìn)位信號不輸出,計數(shù)清零。將0.01秒、秒、分產(chǎn)生的計數(shù)通過置數(shù)/位選再通過顯示模塊實時顯示。</p><p><b&g
9、t; 三.器件選擇</b></p><p><b> 1、PC機(jī)一臺。</b></p><p> 2、CPLD/FPGA適配器板:標(biāo)準(zhǔn)配置EPF10K10LC84-4接口板,下載接口是數(shù)字芯片的下載接口(DIGITAL JTAG),主要用于CPLD/FPGA芯片的數(shù)據(jù)下載。</p><p> 3、實驗箱:裝有七段數(shù)碼管,七段
10、數(shù)碼管真值表及字型如下:</p><p> 表1.七段數(shù)碼管真值表</p><p> 七段數(shù)碼管字形如下:</p><p><b> 圖2.數(shù)碼管字型圖</b></p><p><b> 功能模塊</b></p><p> 4.1 分頻模塊設(shè)計</p>
11、<p><b> 1.模塊圖</b></p><p><b> 圖3.分頻器模塊圖</b></p><p> 時鐘脈沖是50MHz,因此在實驗時需要對其進(jìn)行分頻,才能實現(xiàn)功能,若需要100Hz的時鐘,則需要對脈沖進(jìn)行250000次分頻;此外,實驗還需要數(shù)碼管動態(tài)顯示的掃描時鐘,本實驗采用1000次分頻。</p>&
12、lt;p><b> 程序</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity div is</p>
13、<p> port (clk:in std_logic;</p><p> clk1:out std_logic);</p><p><b> end div;</b></p><p> architecture behav of div is</p><p><b> begin<
14、/b></p><p> process(clk)</p><p> variable num:integer range 0 to 250000;</p><p> variable q:std_logic;</p><p><b> begin</b></p><p> if
15、clk'event and clk='1'then</p><p> if num=250000 then num:=0;q:=not q;</p><p> else num:=num+1;</p><p><b> end if;</b></p><p><b> end i
16、f;</b></p><p><b> clk1<=q;</b></p><p> end process;</p><p> end behav;</p><p> 4.2 0.01秒模塊設(shè)計</p><p><b> 1.模塊圖</b><
17、/p><p> 圖4.0.01秒模塊圖</p><p> 0.01秒模塊由兩個十位計數(shù)器組成,可以實現(xiàn)帶有100進(jìn)制進(jìn)位和清零功能,暫停等功能。0.01秒個位輸入為100HZ脈沖,其進(jìn)位信號輸出,作為周期時鐘信號,為0.01秒十位提供脈沖。個位模塊和十位模塊都有清零信號clear和秒表啟停位start,輸出0.01秒個位、十位及進(jìn)位信號cout。</p><p>&
18、lt;b> 仿真圖</b></p><p> 由于該模塊是由兩個十進(jìn)制級聯(lián)而成的,現(xiàn)對一個十進(jìn)制模塊仿真,仿真圖如下:</p><p><b> 圖5.十進(jìn)制仿真圖</b></p><p> 由仿真的結(jié)果可以看出來,從0000開始計數(shù),當(dāng)計數(shù)計到1001時,自動清零,所以該結(jié)果顯示其功能是一個十進(jìn)制計數(shù)器。</p
19、><p><b> 程序</b></p><p> 由于兩個十進(jìn)制模塊是一樣的,所以現(xiàn)只給出一個十進(jìn)制模塊:</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_un
20、signed.all;</p><p> use ieee.std_logic_arith.all;</p><p> entity cnt10 is</p><p> port(clk,clr,start:in std_logic;</p><p> cout:out std_logic;</p><p>
21、 daout:buffer std_logic_vector(3 downto 0));</p><p> end cnt10;</p><p> architecture behav of cnt10 is</p><p><b> begin</b></p><p> process(clk,clr,star
22、t)</p><p><b> begin</b></p><p> if clr='0' then daout<="0000";</p><p> elsif(clk'event and clk='1')then</p><p> if star
23、t='1' then</p><p> if daout="1001" then daout<="0000";cout<='1';</p><p> else daout<=daout+'1';cout<='0';</p><p>&l
24、t;b> end if;</b></p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process;</p><p> end behav;</p><p><b&g
25、t; 4.3 秒模塊</b></p><p><b> 1.模塊圖</b></p><p><b> 圖6.秒模塊圖</b></p><p> 秒模塊是由一個十位計數(shù)器和一個六位計數(shù)器組成,其中十位計數(shù)器為秒個位計數(shù),六位計數(shù)器為秒十位計數(shù),可以實現(xiàn)帶有60進(jìn)制進(jìn)位和清零功能,暫停等功能。秒個位輸入為0
26、.01秒十位進(jìn)位脈沖,其進(jìn)位信號輸出,作為周期時鐘信號,為秒十位提供脈沖。個位模塊和十位模塊都有清零信號clear和秒表啟停位start,輸出秒個位、十位及進(jìn)位信號cout。</p><p><b> 仿真圖</b></p><p> 秒模塊是有一個十進(jìn)制和一個六進(jìn)制級聯(lián)而成的,十進(jìn)制仿真圖如圖5所示,現(xiàn)給出六進(jìn)制仿真圖:</p><p>
27、<b> 圖7.六進(jìn)制仿真圖</b></p><p> 由仿真的結(jié)果可以看出來,從0000開始計數(shù),當(dāng)計數(shù)計到0101時,自動清零,所以該結(jié)果顯示其功能是一個六進(jìn)制計數(shù)器。</p><p><b> 程序</b></p><p> 十進(jìn)制模塊在0.01秒模塊中已經(jīng)給出,現(xiàn)只給出六進(jìn)制程序:</p>&
28、lt;p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> use ieee.std_logic_arith.all;</p><p> entity cnt6 is&l
29、t;/p><p> port(clk,clr,start:in std_logic;</p><p> cout:out std_logic;</p><p> daout:buffer std_logic_vector(3 downto 0));</p><p><b> end cnt6;</b></p&g
30、t;<p> architecture behav of cnt6 is</p><p><b> begin</b></p><p> process(clk,clr,start)</p><p><b> begin</b></p><p> if clr='0&
31、#39; then daout<="0000";</p><p> elsif(clk'event and clk='1')then</p><p> if start='1' then</p><p> if daout="0101" then daout<=&quo
32、t;0000";cout<='1';</p><p> else daout<=daout+'1';cout<='0';</p><p><b> end if;</b></p><p><b> end if;</b></p>
33、<p><b> end if;</b></p><p> end process;</p><p> end behav;</p><p><b> 4.4 分模塊</b></p><p><b> 圖8.分模塊圖</b></p><
34、p> 分模塊和秒模塊原理一樣,也是由一個十位計數(shù)器和一個六位計數(shù)器組成,其中十位計數(shù)器為分個位計數(shù),六位計數(shù)器為分十位計數(shù)。分模塊生成的器件可以實現(xiàn)帶有60進(jìn)制進(jìn)位和清零功能,暫停等功能,分個位輸入為秒十位進(jìn)位脈沖,其進(jìn)位信號輸出,作為周期時鐘信號,為分十位提供脈沖。個位模塊和十位模塊都有清零信號clear和秒表啟停位start,輸出分個位、十位及進(jìn)位信號cout。(由于分模塊的程序及仿真圖同秒模塊一樣,現(xiàn)不重復(fù)給出)</
35、p><p><b> 4.5掃描模塊</b></p><p><b> 模塊圖</b></p><p><b> 圖9.掃描模塊圖</b></p><p> 該模塊的功能是對輸入信號依次進(jìn)行掃描顯示,產(chǎn)生對數(shù)碼管的選擇信號。</p><p><
36、b> 仿真圖</b></p><p> 圖10.掃描模塊仿真圖</p><p> 本次仿真中,設(shè)定dain0是由0000-0001連續(xù)變化,dain1是由0010-0011連續(xù)變化,dain2是由0100-0101連續(xù)變化,dain3是由0110-0111連續(xù)變化,dain4是由1000-1001連續(xù)變化,dain5是由1010-1011連續(xù)變化。由仿真結(jié)果可以看出
37、,當(dāng)sel=000時,選中dain0,輸出dain0中的數(shù)據(jù);當(dāng)sel=001時,選中dain1,輸出dain1中的數(shù)據(jù);當(dāng)sel=010時,選中dain2,輸出dain2中的數(shù)據(jù);當(dāng)sel=011時,選中dain3,輸出dain3中的數(shù)據(jù);當(dāng)sel=100時,選中dain4,輸出dain4中的數(shù)據(jù);當(dāng)sel=101時,選中dain5,輸出dain5中的數(shù)據(jù)。</p><p><b> 程序</
38、b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> use ieee.std_logic_arith.all;</p><p>
39、 entity seltime is</p><p> port(clk,clr,start:in std_logic;</p><p> dain0,dain1,dain2,dain3,dain4,dain5:in std_logic_vector(3 downto 0);</p><p> daout:out std_logic_vector(3 dow
40、nto 0);</p><p> sel:out std_logic_vector(2 downto 0));</p><p> end seltime;</p><p> architecture behav of seltime is </p><p> signal temp:std_logic_vector(2 downto
41、0);</p><p> signal d_out:std_logic_vector(3 downto 0);</p><p><b> begin</b></p><p> sel<=temp;</p><p> process(clk,clr)</p><p><b>
42、 begin</b></p><p> if clr='0'</p><p> then temp<="000";</p><p><b> else</b></p><p> if clk'event and clk='1' the
43、n</p><p> if temp="101" then</p><p> temp<="000";</p><p><b> else</b></p><p> temp<=temp+'1';</p><p><
44、b> end if;</b></p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process;</p><p> process(temp,clr,dain0,dain1,dain2,dain3
45、,dain4,dain5)</p><p><b> begin</b></p><p> if clr='0' then</p><p> d_out<="0000";</p><p><b> else</b></p><p&
46、gt; if temp="000" then d_out<=dain0;</p><p> elsif temp="001" then d_out<=dain1;</p><p> elsif temp="010" then d_out<=dain2;</p><p> elsif
47、 temp="011" then d_out<=dain3;</p><p> elsif temp="100" then d_out<=dain4;</p><p> elsif temp="101" then d_out<=dain5;</p><p> else d_out&l
48、t;="0000";</p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process;</p><p> daout<=d_out;</p><p> end b
49、ehav;</p><p><b> 4.6 數(shù)碼管模塊</b></p><p><b> 模塊圖</b></p><p> 圖11.數(shù)碼管模塊圖</p><p> 該模塊的功能是將輸入BCD碼數(shù)轉(zhuǎn)換為七段數(shù)碼管需要的數(shù)據(jù)。其對應(yīng)關(guān)系為:</p><p><b&
50、gt; 表2.數(shù)碼管真值表</b></p><p><b> 仿真圖</b></p><p> 圖12.數(shù)碼管顯示仿真圖</p><p> 由仿真結(jié)果可以看出,當(dāng)num=0000時,led輸出為1111110;當(dāng)num=0001時,led輸出為0110000;當(dāng)num=0010時,led輸出為1101101;當(dāng)num=001
51、1時,led輸出為1111001;當(dāng)num=0100時,led輸出為0110011;當(dāng)num=0101時,led輸出為1011011;當(dāng)num=0110時,led輸出為1011111;當(dāng)num=0111時,led輸出為1110000;當(dāng)num=1000時,led輸出為1111011;當(dāng)num=1001時,led輸出為1110111。與表2的對應(yīng)關(guān)系相符合。</p><p><b> 程序</b&
52、gt;</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> entity seg7 is</p><p> port(num:in std_logic_vector(3 downto 0);</p><p> led:ou
53、t std_logic_vector(7 downto 0));</p><p><b> end seg7;</b></p><p> architecture behav of seg7 is</p><p><b> begin</b></p><p> process(num)<
54、;/p><p><b> begin</b></p><p> led<=(others=>'1');</p><p> case num is</p><p> when"0000"=>led<="00111111";</p>
55、;<p> when"0001"=>led<="00000110";</p><p> when"0010"=>led<="01011011";</p><p> when"0011"=>led<="01001111"
56、;;</p><p> when"0100"=>led<="01100110";</p><p> when"0101"=>led<="01101101";</p><p> when"0110"=>led<="01
57、111101";</p><p> when"0111"=>led<="00100111";</p><p> when"1000"=>led<="01111111";</p><p> when"1001"=>led&l
58、t;="01101111";</p><p> when others=>NULL;</p><p> end case; </p><p> end process;</p><p> end behav;</p><p> 4.7 三八譯碼器模塊</p><p
59、><b> 模塊圖</b></p><p> 圖13.三八譯碼器模塊圖</p><p> 該模塊的功能是將輸入BCD碼數(shù)轉(zhuǎn)換為七段數(shù)碼管需要的數(shù)據(jù),將seltime中的BCD碼編譯到共陰數(shù)碼管。</p><p><b> 2.仿真圖</b></p><p> 圖14.三八譯碼器仿真圖
60、</p><p> 由實驗結(jié)果可以看出,輸入sel與輸出q的關(guān)系有如下對應(yīng)關(guān)系:</p><p> 表3.三八譯碼器真值表</p><p><b> 程序</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;&l
61、t;/p><p> use ieee.std_logic_unsigned.all;</p><p> entity decode3_8 is </p><p> port(sel:in std_logic_vector(2 downto 0);</p><p> QQ:out std_logic_vector(7 downto 0));
62、</p><p> end decode3_8;</p><p> architecture one of decode3_8 is </p><p><b> begin </b></p><p> QQ<="11111110" when sel=0 else</p>&
63、lt;p> "11111101" when sel=1 else</p><p> "11111011" when sel=2 else</p><p> "11110111" when sel=3 else</p><p> "11101111" when sel=4 e
64、lse</p><p> "11011111" when sel=5 else</p><p> "11111111";</p><p><b> end one;</b></p><p><b> 五.總體設(shè)計電路圖</b></p>&
65、lt;p> 5.1總體電路設(shè)計原理圖</p><p> 圖15.總體電路設(shè)計原理圖</p><p> 實驗總體電路圖如圖15所示,由分頻模塊,0.01秒模塊,秒模塊,分模塊,掃描模塊,數(shù)碼管模塊和三八譯碼器模塊組成。</p><p> 其中clr為復(fù)位信號低電平有效,start為啟停開關(guān),高電平有效。</p><p> 當(dāng)50
66、MHZ時鐘信號clk經(jīng)分頻器clk后分頻為一個100Hz脈沖,經(jīng)分頻器clk1000后分頻為一個25kHZ脈沖信號。100HZ脈沖作為0.01秒計數(shù)信號輸入使0.01秒模塊為以一百十進(jìn)制計數(shù),滿一百后進(jìn)位,進(jìn)位信號作為秒信號時鐘使秒模塊以六十進(jìn)制計數(shù),滿六十后進(jìn)位,進(jìn)位信號作為分信號時鐘使分模塊以六十進(jìn)制計數(shù)。25kHz脈沖信號為掃描模塊提供頻率。0.01秒模塊的個位和十位,秒模塊的個位和十位,分模塊的個位和十位分別輸出作為掃描模塊的輸
67、入信號。掃描模塊選擇輸出信號,經(jīng)過譯碼器和七段數(shù)碼管顯示時間。</p><p><b> 5.2 仿真結(jié)果</b></p><p><b> 1.總仿真圖</b></p><p><b> 圖16.總仿真圖</b></p><p><b> 圖17.總仿真圖&
68、lt;/b></p><p><b> 圖18.總仿真圖</b></p><p><b> 圖19.總仿真圖</b></p><p><b> 圖20.總仿真圖</b></p><p><b> 頂層文件程序</b></p>&
69、lt;p> LIBRARY ieee;</p><p> USE ieee.std_logic_1164.all; </p><p> LIBRARY work;</p><p> ENTITY tutu IS </p><p><b> PORT</b></p><p><
70、b> (</b></p><p> clk : IN STD_LOGIC;</p><p> clear : IN STD_LOGIC;</p><p> start : IN STD_LOGIC;</p><p> a : OUT STD_LOGIC;</p><p>
71、b : OUT STD_LOGIC;</p><p> c : OUT STD_LOGIC;</p><p> d : OUT STD_LOGIC;</p><p> e : OUT STD_LOGIC;</p><p> f : OUT STD_LOGIC;</p><p> g :
72、OUT STD_LOGIC;</p><p> dp : OUT STD_LOGIC;</p><p> sel : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p> vga : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)</p><p><b> );
73、</b></p><p><b> END tutu;</b></p><p> ARCHITECTURE bdf_type OF tutu IS </p><p> COMPONENT cnt10</p><p> PORT(clk : IN STD_LOGIC;</p><p&
74、gt; clr : IN STD_LOGIC;</p><p> start : IN STD_LOGIC;</p><p> cout : OUT STD_LOGIC;</p><p> daout : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)</p><p><b> );</b>&
75、lt;/p><p> END COMPONENT;</p><p> COMPONENT cnt6</p><p> PORT(clk : IN STD_LOGIC;</p><p> clr : IN STD_LOGIC;</p><p> start : IN STD_LOGIC;</p>&l
76、t;p> cout : OUT STD_LOGIC;</p><p> daout : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)</p><p><b> );</b></p><p> END COMPONENT;</p><p> COMPONENT div</p>
77、<p> PORT(clk : IN STD_LOGIC;</p><p> clk1 : OUT STD_LOGIC</p><p><b> );</b></p><p> END COMPONENT;</p><p> COMPONENT decode3_8</p><p
78、> PORT(sel : IN STD_LOGIC_VECTOR(2 DOWNTO 0);</p><p> QQ : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)</p><p><b> );</b></p><p> END COMPONENT;</p><p> COMPONE
79、NT div1000</p><p> PORT(clk : IN STD_LOGIC;</p><p> clk1 : OUT STD_LOGIC</p><p><b> );</b></p><p> END COMPONENT;</p><p> COMPONENT seg7&l
80、t;/p><p> PORT(num : IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> led : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)</p><p><b> );</b></p><p> END COMPONENT;</p>&l
81、t;p> COMPONENT seltime</p><p> PORT(clk : IN STD_LOGIC;</p><p> clr : IN STD_LOGIC;</p><p> start : IN STD_LOGIC;</p><p> dain0 : IN STD_LOGIC_VECTOR(3 DOWNTO 0
82、);</p><p> dain1 : IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> dain2 : IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> dain3 : IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> dain4
83、: IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> dain5 : IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> daout : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> sel : OUT STD_LOGIC_VECTOR(2 DOWNTO
84、0)</p><p><b> );</b></p><p> END COMPONENT;</p><p> SIGNALled : STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p> SIGNALvga_ALTERA_SYNTHESIZED : STD_LOGIC_VECTO
85、R(3 DOWNTO 0);</p><p> SIGNALSYNTHESIZED_WIRE_0 : STD_LOGIC;</p><p> SIGNALSYNTHESIZED_WIRE_1 : STD_LOGIC;</p><p> SIGNALSYNTHESIZED_WIRE_2 : STD_LOGIC;</p><p>
86、; SIGNALSYNTHESIZED_WIRE_3 : STD_LOGIC;</p><p> SIGNALSYNTHESIZED_WIRE_4 : STD_LOGIC_VECTOR(2 DOWNTO 0);</p><p> SIGNALSYNTHESIZED_WIRE_5 : STD_LOGIC_VECTOR(3 DOWNTO 0);</p><
87、p> SIGNALSYNTHESIZED_WIRE_6 : STD_LOGIC;</p><p> SIGNALSYNTHESIZED_WIRE_7 : STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> SIGNALSYNTHESIZED_WIRE_8 : STD_LOGIC_VECTOR(3 DOWNTO 0);</p>
88、<p> SIGNALSYNTHESIZED_WIRE_9 : STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> SIGNALSYNTHESIZED_WIRE_10 : STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> SIGNALSYNTHESIZED_WIRE_11 : STD_LOGIC_VECTOR(3
89、 DOWNTO 0);</p><p> SIGNALSYNTHESIZED_WIRE_12 : STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> SIGNALSYNTHESIZED_WIRE_13 : STD_LOGIC;</p><p> SIGNALSYNTHESIZED_WIRE_14 : STD_LOGIC;<
90、/p><p><b> BEGIN </b></p><p> b2v_inst : cnt10</p><p> PORT MAP(clk => SYNTHESIZED_WIRE_0,</p><p> clr => clear,</p><p> start => st
91、art,</p><p> cout => SYNTHESIZED_WIRE_13,</p><p> daout => SYNTHESIZED_WIRE_7);</p><p> b2v_inst1 : cnt6</p><p> PORT MAP(clk => SYNTHESIZED_WIRE_1,</p&
92、gt;<p> clr => clear,</p><p> start => start,</p><p> cout => SYNTHESIZED_WIRE_3,</p><p> daout => SYNTHESIZED_WIRE_10);</p><p> b2v_inst10 : cn
93、t6</p><p> PORT MAP(clk => SYNTHESIZED_WIRE_2,</p><p> clr => clear,</p><p> start => start,</p><p> daout => SYNTHESIZED_WIRE_12);</p><p>
94、 b2v_inst11 : cnt10</p><p> PORT MAP(clk => SYNTHESIZED_WIRE_3,</p><p> clr => clear,</p><p> start => start,</p><p> cout => SYNTHESIZED_WIRE_2,</p
95、><p> daout => SYNTHESIZED_WIRE_11);</p><p> b2v_inst2 : div</p><p> PORT MAP(clk => clk,</p><p> clk1 => SYNTHESIZED_WIRE_0);</p><p> b2v_inst2
96、0 : decode3_8</p><p> PORT MAP(sel => SYNTHESIZED_WIRE_4,</p><p> QQ => sel);</p><p> b2v_inst3 : div1000</p><p> PORT MAP(clk => clk,</p><p>
97、 clk1 => SYNTHESIZED_WIRE_6);</p><p> b2v_inst4 : seg7</p><p> PORT MAP(num => SYNTHESIZED_WIRE_5,</p><p> led => led);</p><p> b2v_inst5 : seltime</p&
98、gt;<p> PORT MAP(clk => SYNTHESIZED_WIRE_6,</p><p> clr => clear,</p><p> start => start,</p><p> dain0 => SYNTHESIZED_WIRE_7,</p><p> dain1 =&g
99、t; SYNTHESIZED_WIRE_8,</p><p> dain2 => SYNTHESIZED_WIRE_9,</p><p> dain3 => SYNTHESIZED_WIRE_10,</p><p> dain4 => SYNTHESIZED_WIRE_11,</p><p> dain5 =>
100、 SYNTHESIZED_WIRE_12,</p><p> daout => SYNTHESIZED_WIRE_5,</p><p> sel => SYNTHESIZED_WIRE_4);</p><p> b2v_inst6 : cnt10</p><p> PORT MAP(clk => SYNTHESIZE
101、D_WIRE_13,</p><p> clr => clear,</p><p> start => start,</p><p> cout => SYNTHESIZED_WIRE_14,</p><p> daout => SYNTHESIZED_WIRE_8);</p><p>
102、 b2v_inst7 : cnt10</p><p> PORT MAP(clk => SYNTHESIZED_WIRE_14,</p><p> clr => clear,</p><p> start => start,</p><p> cout => SYNTHESIZED_WIRE_1,</p
103、><p> daout => SYNTHESIZED_WIRE_9);</p><p> a <= led(0);</p><p> b <= led(1);</p><p> c <= led(2);</p><p> d <= led(3);</p><p&g
104、t; e <= led(4);</p><p> f <= led(5);</p><p> g <= led(6);</p><p> dp <= led(7);</p><p> vga <= vga_ALTERA_SYNTHESIZED;</p><p> vga_ALT
105、ERA_SYNTHESIZED(1) <= '1';</p><p> vga_ALTERA_SYNTHESIZED(0) <= '0';</p><p> vga_ALTERA_SYNTHESIZED(3) <= '0';</p><p> vga_ALTERA_SYNTHESIZED(2)
106、<= '0';</p><p> END bdf_type;</p><p><b> 5.3管腳分配</b></p><p><b> 圖21.管腳分配圖</b></p><p><b> 5.4硬件實現(xiàn)</b></p><p
107、><b> 1.實驗連線</b></p><p> 1.CLK接IO3;</p><p> 2.LED1接IO1;</p><p> 3.功能選擇位VGA[3..0]狀態(tài)為0010;</p><p> 4.代表譯碼驅(qū)動的管腳SCAN0-SCAN7已經(jīng)接到實驗箱上的SCAN-SCAN7;</p>
108、<p> 5.代表七段數(shù)碼管的SEG70-SEG6已經(jīng)接到實驗箱上。</p><p><b> 2.下載仿真結(jié)果</b></p><p><b> 圖22.下載仿真圖</b></p><p><b> 圖23.下載仿真圖</b></p><p><b
109、> 3.仿真分析</b></p><p> 秒十位和分十位均為六進(jìn)制計數(shù)器,應(yīng)用QUARTUSII進(jìn)行仿真,得其仿真;電路共有六個輸出需用六位數(shù)碼管顯示,對其進(jìn)行動態(tài)掃描;電路輸出為4位信號,需用譯碼電路對其譯碼在數(shù)碼管顯示;試驗箱所給的頻率為50MHZ,故需對其進(jìn)行分頻。</p><p> 設(shè)置一個clear信號:當(dāng)信號clear=0時,整個系統(tǒng)復(fù)位;當(dāng)clear
110、=1時,進(jìn)行計時功能。并當(dāng)計時器計滿59分59.99秒,清零重新開始計數(shù); </p><p> 啟/??刂疲河糜陂_始/結(jié)束計時操作。數(shù)字秒表的啟/停是通過控制送給計數(shù)器的時鐘來實現(xiàn)的。當(dāng)start=1后,計數(shù)器開始計數(shù),秒表開始正常工作。當(dāng)start=0后,計數(shù)器停止計數(shù),秒表暫停工作。
111、 </p><p><b> 六.心得體會</b></p><p> 通過本次課程設(shè)計我對所學(xué)知識有了更加深刻的認(rèn)識,對EDA和數(shù)字電子技術(shù)有了更加深入的理解,在課程設(shè)計過程中,我遇到了很多困難,無論是程序設(shè)計方面的,還是調(diào)試方面的問題,但通過不斷的嘗試和老師的指導(dǎo),這些問題終于一一得到解決。其中,我認(rèn)真的將原來不懂得程序編程問
112、題向老師請教得已解決,同時也了解了在程序編寫的時候容易出現(xiàn)的問題。</p><p> 在程序編寫開始時分不清每個模塊需要多大頻率的脈沖,但在分析各個模塊的功能及脈沖的作用后漸漸了解為什么掃描模塊的頻率為什么要選的比時鐘信號大的多了。一些剛開始不知道如何編寫的模塊經(jīng)過查閱資料漸漸有了思路。在試驗箱上的多次試驗讓我對試驗箱的管腳及各部分作用都有了更深的了解。雖然困難重重,但結(jié)果是喜人的,當(dāng)我看到自己的設(shè)計結(jié)果時,內(nèi)
113、心的喜悅和成就感是無以名狀的。</p><p> 通過課程設(shè)計全方位的培養(yǎng)和考察我們解決問題和處理問題的能力。在設(shè)計編程到最后實現(xiàn)功能的過程中,我們必須經(jīng)過思考。從開始程序的編寫到模塊生成,再到最后功能的完全實現(xiàn),這要求我們擁有自頂上向下的思維,以及自底向上的編輯能力。它除了要求我們必須在短期內(nèi)鍛煉迅速掌握一門語言的能力,同時也要求學(xué)會利用其他的資料與書籍。</p><p> 這次課程
114、設(shè)計讓我學(xué)到的不只是更多相關(guān)的知識,還讓我了解到了努力、堅持的重要性。也許在堅持一點點成功就是屬于你的。通過也讓我了解到同學(xué)間團(tuán)結(jié)協(xié)作,互幫互助的作用,或許是一個不經(jīng)意的提點就會讓你收益匪淺。</p><p> 由此可見,課程設(shè)計的意義是十分重大和深遠(yuǎn)的。不僅豐富了我們的知識鍛煉了我們的動手能力,還給以我們生活的提點,展示自己的平臺。今后,我會更加努力學(xué)習(xí)更多專業(yè)知識,不斷提高自己的專業(yè)素質(zhì),把自己的綜合水平提
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- eda課程設(shè)計--數(shù)字秒表設(shè)計
- eda課程設(shè)計--數(shù)字秒表設(shè)計
- eda課程設(shè)計---數(shù)字秒表
- eda課程設(shè)計--數(shù)字秒表的設(shè)計
- eda課程設(shè)計---數(shù)字秒表的設(shè)計
- eda綜合課程設(shè)計-數(shù)字秒表
- eda數(shù)字秒表課程設(shè)計報告
- eda課程--數(shù)字秒表設(shè)計
- eda課程設(shè)計--秒表設(shè)計
- eda技術(shù)及應(yīng)用課程設(shè)計--數(shù)字秒表
- eda課程設(shè)計--電子秒表設(shè)計
- eda秒表電路課程設(shè)計
- 數(shù)字秒表課程設(shè)計
- 數(shù)字秒表課程設(shè)計
- 數(shù)字秒表課程設(shè)計
- 課程設(shè)計--數(shù)字秒表設(shè)計
- 數(shù)字秒表課程設(shè)計
- 課程設(shè)計-- 數(shù)字秒表
- 課程設(shè)計---數(shù)字秒表設(shè)計
- eda課程設(shè)計-- eda與數(shù)字系統(tǒng)課程設(shè)計
評論
0/150
提交評論