版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 《EDA技術(shù)應(yīng)用》</b></p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 基于FPGA的數(shù)字鐘設(shè)計(jì)</p><p> 專 業(yè): 通信工程 </p><p> 班 級(jí):
2、 </p><p> 姓 名: </p><p> 指導(dǎo)教師: </p><p><b> 2012.1.6</b></p><p><b> 目錄</b>
3、;</p><p> 1.設(shè)計(jì)任務(wù)及要求1</p><p><b> 1.1設(shè)計(jì)任務(wù)1</b></p><p><b> 1.2設(shè)計(jì)要求1</b></p><p> 2.設(shè)計(jì)方案以及流程2</p><p> 2.1設(shè)計(jì)原理圖2</p><
4、;p> 2.2工程流程圖2</p><p><b> 3.程序設(shè)計(jì)3</b></p><p> 3.1 秒鐘模塊3</p><p><b> 3.2分鐘模塊4</b></p><p><b> 3.3時(shí)鐘模塊6</b></p><p
5、><b> 3.4分頻模塊7</b></p><p> 3.5數(shù)碼管控制模塊9</p><p> 3.6七段譯碼顯示模塊11</p><p> 3.7頂層模塊12</p><p><b> 4.硬件測(cè)試14</b></p><p> 4.1管腳的分
6、配14</p><p><b> 4.2調(diào)試15</b></p><p> 4.3實(shí)驗(yàn)現(xiàn)象16</p><p><b> 5.總結(jié)16</b></p><p><b> 6.老師點(diǎn)評(píng)16</b></p><p><b> 參
7、考書目17</b></p><p> 基于FPGA的數(shù)字鐘的設(shè)計(jì)</p><p><b> 1.設(shè)計(jì)任務(wù)及要求</b></p><p><b> 1.1設(shè)計(jì)任務(wù) </b></p><p> 設(shè)計(jì)并實(shí)現(xiàn)具有一定功能的數(shù)字鐘。包括清零、置數(shù)、計(jì)數(shù)、報(bào)時(shí)等 功能。<
8、;/p><p> 具有時(shí)、分、秒計(jì)數(shù)顯示功能,且以24小時(shí)循環(huán)計(jì)時(shí)。</p><p> 具有清零的功能,且能夠?qū)τ?jì)時(shí)系統(tǒng)的小時(shí)、分鐘進(jìn)行調(diào)整。</p><p><b> 具有整點(diǎn)報(bào)時(shí)功能。</b></p><p><b> 1.2設(shè)計(jì)要求</b></p><p> (1
9、) 采用VHDL語(yǔ)言編寫程序,并在QuartusII工具平臺(tái)中進(jìn)行開發(fā),下載到EDA實(shí)驗(yàn)箱進(jìn)行驗(yàn)證。</p><p> ?。?) 編寫設(shè)計(jì)報(bào)告,要求包括方案選擇、程序清單、調(diào)試過(guò)程、測(cè)試結(jié)果及心得體會(huì)。</p><p> 2.設(shè)計(jì)方案以及流程</p><p> 本設(shè)計(jì)由振蕩器、分頻器、計(jì)數(shù)器、譯碼器顯示器和校時(shí)電路組成。振蕩器提供穩(wěn)定的6M脈沖信號(hào),作為數(shù)字鐘的
10、時(shí)鐘,然后經(jīng)過(guò)分頻器分頻后輸出標(biāo)準(zhǔn)1HZ脈沖。中間變量計(jì)數(shù)十次后,生成秒信號(hào),秒計(jì)數(shù)器滿60后向分計(jì)數(shù)器進(jìn)位,分計(jì)數(shù)器滿60后向時(shí)鐘進(jìn)位,時(shí)計(jì)數(shù)器滿24后全部清零。</p><p> 此次設(shè)計(jì)的多功能數(shù)字鐘主要有四部分組成:</p><p> 分頻器部分:主要產(chǎn)生6MHZ的CLK的輸入脈沖信號(hào)。 </p><p> 開關(guān)控制部分:主要實(shí)現(xiàn)數(shù)字鐘的復(fù)位。 <
11、;/p><p> EPM7064芯片部分:是整個(gè)數(shù)字鐘的核心部分。是程序?qū)懭胍约皩?duì)輸 入脈沖的接收與轉(zhuǎn)換控制。 </p><p> 數(shù)碼管顯示部分:6位數(shù)碼管動(dòng)態(tài)(2000HZ)顯示時(shí)、分、秒。</p><p><b> 2.1設(shè)計(jì)原理圖:</b></p><p> 圖1.數(shù)字鐘原理圖 <
12、/p><p><b> 2.2工程流程圖</b></p><p><b> ↓</b></p><p><b> ↓</b></p><p><b> ↓</b></p><p><b> ↓</b>&l
13、t;/p><p><b> ↓</b></p><p><b> ↓</b></p><p><b> 執(zhí)行</b></p><p><b> ↓</b></p><p> 圖2工程流程圖創(chuàng)建步驟</p><
14、;p><b> 3.程序設(shè)計(jì)</b></p><p><b> 3.1 秒鐘模塊</b></p><p> 此模塊主要由輸入端口clk=1HZ的頻率源作為計(jì)數(shù)器的時(shí)鐘,當(dāng)計(jì)數(shù)到59歸零并且時(shí)產(chǎn)生進(jìn)位carry=1作為分鐘的時(shí)鐘源。</p><p> miao_60的源代碼:</p><p&
15、gt; 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 miao_60 is<
16、/p><p> port(clk :in std_logic; --輸入1HZ的頻率 </p><p> rst :in std_logic; --rst 復(fù)位</p><p> shi: out std_logic_vector(3 downto 0); --秒的十位、個(gè)位&l
17、t;/p><p> ge: out std_logic_vector(3 downto 0);</p><p> carry :out std_logic ); --滿59s進(jìn)位給分鐘作頻率</p><p> end entity miao_60;</p><p> architecture art1 of miao_60
18、 is</p><p> signal tem1: std_logic_vector(3 downto 0); --定義與端口等寬的信號(hào)</p><p> signal tem2: std_logic_vector(3 downto 0); --位矢量</p><p><b> begin</b></p><p&g
19、t; process(clk,rst)</p><p><b> begin</b></p><p> if(rst='0' ) then</p><p> tem1<="0000"; --復(fù)位時(shí)十、個(gè)位歸零</p><p> tem2<="00
20、00";</p><p> elsif clk'event and clk='1' then</p><p> if tem1="1001" then --個(gè)位計(jì)到9時(shí)歸零</p><p> tem1<="0000";</p><p> if
21、 tem2="0101" then --十位到5時(shí)歸零</p><p> tem2<="0000";</p><p> carry<='1'; --給分鐘進(jìn)位作為分鐘的時(shí)鐘頻率</p><p><b> else</b></p>
22、<p> tem2<=tem2+1; carry<='0';</p><p><b> end if;</b></p><p><b> else</b></p><p> tem1<=tem1+1;</p><p><b> end
23、if;</b></p><p><b> end if;</b></p><p> shi<=tem2;ge<=tem1;</p><p> end process;</p><p><b> end art1;</b></p><p> m
24、iao_60的時(shí)序仿真波形如圖所示:</p><p> 圖3miao_60的時(shí)序仿真波形圖</p><p><b> 3.2分鐘模塊</b></p><p> 此模塊主要由輸入端口clk=carry的頻率源作為計(jì)數(shù)器的時(shí)鐘,當(dāng)計(jì)數(shù)到59歸零并且時(shí)產(chǎn)生進(jìn)位carry=1作為時(shí)鐘的時(shí)鐘源。</p><p> fen_
25、60的源代碼:</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&g
26、t; entity fen_60 is</p><p> port(clk :in std_logic; --miao_60的進(jìn)位carry作為時(shí)鐘源</p><p> rst :in std_logic; -- --rst 復(fù)位</p><p> shi: out std_logic_vector(3 downto 0);
27、</p><p> ge: out std_logic_vector(3 downto 0); ——分鐘的十、個(gè)位</p><p> carry :out std_logic );</p><p> end entity fen_60;</p><p> architecture art1 of fen_60 is</
28、p><p> signal tem1: std_logic_vector(3 downto 0); --定義與端口等寬的信號(hào)</p><p> signal tem2: std_logic_vector(3 downto 0); --位矢量</p><p><b> begin</b></p><p> pr
29、ocess(clk,rst)</p><p><b> begin</b></p><p> if(rst='0' ) then</p><p> tem1<="0000";</p><p> tem2<="0000";</p>
30、<p> elsif clk'event and clk='1' then</p><p> if tem1="1001" then --當(dāng)個(gè)位計(jì)數(shù)到9時(shí),向十位進(jìn)位,并</p><p> tem1<="0000"; --且個(gè)位歸零</p><p> i
31、f tem2="0101" then </p><p> tem2<="0000";</p><p> carry<='1';</p><p><b> else</b></p><p> tem2<=tem2+1;carry<
32、;='0';</p><p><b> end if;</b></p><p><b> else</b></p><p> tem1<=tem1+1; end if;</p><p><b> end if;</b></p><
33、;p> shi<=tem2;ge<=tem1;</p><p> end process;</p><p><b> end art1;</b></p><p> fen_60的時(shí)序仿真波形如圖所示:</p><p> 圖4 .fen_60的時(shí)序仿真波形圖</p><p&g
34、t;<b> 3.3時(shí)鐘模塊</b></p><p> 此模塊主要由輸入端口clk=carry(分鐘)的頻率源作為計(jì)數(shù)器的時(shí)鐘,當(dāng)計(jì)數(shù)到24歸零。</p><p> hour_24源代碼:</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;&
35、lt;/p><p> use ieee.std_logic_unsigned.all;</p><p> use ieee.std_logic_arith.all;</p><p> entity hour_24 is</p><p> port(clk :in std_logic;</p><p> rst :
36、in std_logic;</p><p> shi: out std_logic_vector(3 downto 0);</p><p> ge: out std_logic_vector(3 downto 0);</p><p> carry :out std_logic );</p><p> end entity hour_
37、24;</p><p> architecture art3 of hour_24 is</p><p> signal tem1: std_logic_vector(3 downto 0);</p><p> signal tem2: std_logic_vector(3 downto 0);</p><p><b> b
38、egin</b></p><p> process(clk,rst)</p><p><b> begin</b></p><p> if(rst='0' ) then</p><p> tem1<="0011"; --復(fù)位時(shí)時(shí)鐘2位顯示23</p&
39、gt;<p> tem2<="0010";</p><p> elsif clk'event and clk='1' then</p><p> if (tem2="0010" and tem1="0011") then</p><p> tem1<
40、;="0000";</p><p> tem2<="0000";</p><p> carry<='1';</p><p><b> else </b></p><p> carry<='0';</p><
41、;p> if tem1="1001" then</p><p> tem1<="0000";</p><p> tem2<=tem2+1;</p><p><b> else</b></p><p> tem1<=tem1+1;</p>
42、<p><b> end if;</b></p><p><b> end if;</b></p><p> end if; </p><p> shi<=tem2;ge<=tem1;</p><p> end process;</p
43、><p><b> end art3;</b></p><p> hour_24的時(shí)序仿真波形如圖所示:</p><p> 圖5..hour_24的時(shí)序仿真波形圖</p><p><b> 3.4分頻模塊</b></p><p> 此模塊主要給秒鐘模塊提供1HZ的時(shí)鐘頻
44、率用來(lái)計(jì)時(shí),同時(shí)分頻得到200HZ用來(lái)使6個(gè)數(shù)碼管動(dòng)態(tài)顯示。當(dāng)動(dòng)態(tài)顯示的時(shí)鐘頻率大于20ZH時(shí),由于人眼的錯(cuò)覺(jué)感覺(jué)6個(gè)數(shù)碼管同時(shí)在顯示。</p><p> fenpin_1HZd的源代碼:</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use
45、 ieee.std_logic_unsigned.all;</p><p> use ieee.std_logic_arith.all;</p><p> entity fenpin_1HZ is --對(duì)試驗(yàn)箱提供的6MHZ的頻率分 </p><p> port( clk1 : in std_logic;
46、--頻得到1HZ的頻率</p><p> qout : out std_logic );</p><p> end entity; --分頻常數(shù)=提供時(shí)鐘頻率/需要的時(shí)</p><p> architecture art7 of fenpin_1HZ is --鐘頻率</p><p&
47、gt; constant counter: integer :=5999999; --分頻常數(shù)為6*10^6</p><p><b> begin </b></p><p> process(clk1, rst)</p><p> variable cnt:integer range 0 to counter;</
48、p><p><b> begin</b></p><p> elsif clk1'event and clk1='1' then</p><p> if cnt=counter then</p><p><b> cnt:=0;</b></p><p&
49、gt;<b> else</b></p><p> cnt:=cnt+1;</p><p><b> end if;</b></p><p> case cnt is</p><p> when 0 to counter/2=>qout<='0'; --使產(chǎn)
50、生的方波占空比</p><p> when others =>qout<='1'; --等于50%</p><p><b> end case;</b></p><p><b> end if;</b></p><p> end process;<
51、;/p><p><b> end art7;</b></p><p> fenpin_1HZ的時(shí)序仿真波形如圖所示:</p><p> 圖6.fenpin_1HZ的時(shí)序仿真波形</p><p> fenpin_2000HZ源代碼:</p><p> library ieee;</p&g
52、t;<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 fenpin_2000HZ is --數(shù)碼管動(dòng)
53、態(tài)顯示的2000HZ</p><p> port( clk200 : in std_logic;</p><p> qout : out std_logic);</p><p> end entity;</p><p> architecture art6 of fenpin_2000HZ is</p><p>
54、; constant counter: integer :=2999; --分頻常數(shù)為20000</p><p><b> begin </b></p><p> process(clk200, rst)</p><p> variable cnt:integer range 0 to counter;</p>
55、;<p><b> begin</b></p><p> elsif clk200'event and clk200='1' then</p><p> if cnt=counter then cnt:=0;</p><p> else cnt:=cnt+1;</p><
56、p><b> end if;</b></p><p> case cnt is</p><p> when 0 to counter/2=>qout<='0'; --產(chǎn)生均勻的方波</p><p> when others =>qout<='1';</p>
57、<p><b> end case;</b></p><p><b> end if;</b></p><p> end process;</p><p><b> end art6;</b></p><p> fenpin_300HZ的時(shí)序仿真波形如圖所示
58、:</p><p> 圖7.fenpin_200HZ的時(shí)序仿真波形</p><p> 3.5數(shù)碼管控制模塊</p><p> 此模塊是實(shí)驗(yàn)最關(guān)鍵的一個(gè)部分,主要的作用是對(duì)前面的時(shí)鐘、分鐘、秒鐘模塊的顯示,實(shí)驗(yàn)箱對(duì)數(shù)碼的位選是通過(guò)74LS138譯碼器來(lái)實(shí)現(xiàn)的。(位選為低電平有效)</p><p> wei_xuan源代碼:</p&
59、gt;<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 wei
60、_xuan is</p><p> port(clk: in std_logic;</p><p> rst: in std_logic;</p><p> se1: in std_logic_vector(3 downto 0); --第一個(gè)數(shù)碼管顯示的內(nèi)容</p><p> se2: in std_logic_vector(3
61、 downto 0); ----第二個(gè)數(shù)碼管顯示的內(nèi)容</p><p> se3: in std_logic_vector(3 downto 0); ----第三個(gè)數(shù)碼管顯示的內(nèi)容</p><p> se4: in std_logic_vector(3 downto 0); -----第四個(gè)數(shù)碼管顯示的內(nèi)容</p><p> se5: in std_lo
62、gic_vector(3 downto 0); ----第五個(gè)數(shù)碼管顯示的內(nèi)容</p><p> se6: in std_logic_vector(3 downto 0); ----第六個(gè)數(shù)碼管顯示的內(nèi)容</p><p> qout: out std_logic_vector(3 downto 0); --作為七段數(shù)碼管的輸入信號(hào)</p><p> se
63、l: out std_logic_vector(2 downto 0) ); --接74ls138的輸入端</p><p> end wei_xuan;</p><p> architecture art4 of wei_xuan is</p><p><b> begin</b></p><p> proc
64、ess(clk,rst)</p><p> variable cnt:integer range 0 to 5;</p><p><b> begin</b></p><p> if(rst='0') then </p><p><b> cnt:=0;</b></p&
65、gt;<p> sel<="XXX"; --復(fù)位時(shí)位選、輸出信號(hào)(seg7)不確定</p><p> qout<="XXXX";</p><p> elsif clk'event and clk='1' then</p><p> if cnt=5 then c
66、nt:=0;</p><p> else cnt:=cnt+1;</p><p><b> end if;</b></p><p> case cnt is</p><p> when 0=>qout<=se1; sel<="000"; --第一個(gè)數(shù)碼管的驅(qū)動(dòng)信號(hào)<
67、;/p><p> when 1=>qout<=se2;sel<="001";</p><p> when 2=>qout<=se3;sel<="010";</p><p> when 3=>qout<=se4;sel<="011";</p>
68、<p> when 4=>qout<=se5;sel<="100";</p><p> when 5=>qout<=se6;sel<="101";--第六個(gè)數(shù)碼管的驅(qū)動(dòng)信號(hào),羅列了case語(yǔ)句的所有可能,所以不需要when others、、、、、</p><p> end case;
69、 </p><p><b> end if;</b></p><p> end process;</p><p><b> end art4;</b></p><p> wei_xuan的時(shí)序仿真波形如圖所示:</p><p> 圖8.wei_xuan的時(shí)序
70、仿真波形</p><p> 3.6七段譯碼顯示模塊</p><p> 此模塊是將位選的信號(hào)譯碼為十進(jìn)數(shù)在數(shù)碼管上顯示,實(shí)驗(yàn)箱為高電平點(diǎn)亮。</p><p><b> seg7源代碼:</b></p><p> library ieee;</p><p> use ieee.std_log
71、ic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> use ieee.std_logic_arith.all;</p><p> entity seg7 is</p><p> port(qin:in std_logic_vector(3 downto 0);
72、 --數(shù)碼管的輸入信號(hào)</p><p> qout:out std_logic_vector(7 downto 0) ); --七段譯碼對(duì)應(yīng)的編碼</p><p><b> end seg7;</b></p><p> architecture art5 of seg7 is</p><p><b>
73、; begin </b></p><p> with qin select</p><p> qout<="00000011" when "0000", -- 顯示0~9</p><p> "10011111" when "0001",</p>
74、;<p> "00100101" when "0010",</p><p> "00001101" when "0011",</p><p> "10011001" when "0100",</p><p> "01
75、001001" when "0101",</p><p> "01000001" when "0110",</p><p> "00011111" when "0111",</p><p> "00000001" when &quo
76、t;1000",</p><p> "00011001" when "1001",</p><p> "XXXXXXXX" when others; --數(shù)碼管顯示不確定 </p><p><b> end art5;</b></p><p
77、> seg7的時(shí)序仿真波形如圖所示:</p><p> 圖9.seg7的時(shí)序仿真波形</p><p><b> 3.7頂層模塊</b></p><p> 頂層模塊主要是把各個(gè)模塊通過(guò)映射連接起來(lái),實(shí)現(xiàn)工程。其模塊用到了元件定義和例化語(yǔ)句,在這里當(dāng)前設(shè)計(jì)實(shí)體相當(dāng)于一個(gè)較大的電路系統(tǒng),所定義的例化元件相當(dāng)于一個(gè)要插在這個(gè)電路系統(tǒng)板上的
78、芯片,而當(dāng)前設(shè)計(jì)實(shí)體中指定的端口則相當(dāng)于這快電路板上準(zhǔn)備接受此芯片的一個(gè)插座。</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_log
79、ic_arith.all;</p><p> entity shuzizhong is --頂層實(shí)體定義</p><p> port( clk :in std_logic; --外界時(shí)鐘源</p><p> rest :in std_logic; --復(fù)位、開關(guān)</p><p> wei :ou
80、t std_logic_vector(2 downto 0); --數(shù)碼管位選</p><p> duan :out std_logic_vector(7 downto 0) ); --數(shù)碼管譯碼</p><p> end entity;</p><p> architecture art of shuzizhong is</p>&l
81、t;p> component miao_60 is --秒鐘模塊元件定義語(yǔ)句 </p><p> port(clk :in std_logic;</p><p> rst :in std_logic;</p><p> shi: out std_logic_vector(3 downto 0);</p>
82、<p> ge: out std_logic_vector(3 downto 0);</p><p> carry :out std_logic );</p><p> end component miao_60; </p><p> component fen_60 is --分鐘模塊元件定義語(yǔ)句</p>
83、<p> port(clk :in std_logic;</p><p> rst :in std_logic;</p><p> shi: out std_logic_vector(3 downto 0);</p><p> ge: out std_logic_vector(3 downto 0);</p><p> c
84、arry :out std_logic );</p><p> end component fen_60;</p><p> component hour_24 is --小時(shí)模塊元件定義語(yǔ)句</p><p> port(clk :in std_logic; </p><p> rst :in
85、std_logic;</p><p> shi: out std_logic_vector(3 downto 0);</p><p> ge: out std_logic_vector(3 downto 0);</p><p> carry :out std_logic );</p><p> end component hour
86、_24;</p><p> component wei_xuan is ----位選模塊元件定義語(yǔ)句</p><p> port(clk: in std_logic;</p><p> rst: in std_logic;</p><p> se1: in std_logic_vector(3 down
87、to 0);</p><p> se2: in std_logic_vector(3 downto 0);</p><p> se3: in std_logic_vector(3 downto 0); </p><p> se4: in std_logic_vector(3 downto 0);</p><p> se5: in st
88、d_logic_vector(3 downto 0);</p><p> se6: in std_logic_vector(3 downto 0);</p><p> qout: out std_logic_vector(3 downto 0);</p><p> sel: out std_logic_vector(2 downto 0) );</p&
89、gt;<p> end component wei_xuan;</p><p> component seg7 is --七段譯碼模塊元件定義語(yǔ)句</p><p> port( qin:in std_logic_vector(3 downto 0);</p><p> qout:out std_log
90、ic_vector(7 downto 0) );</p><p> end component seg7;</p><p> component fenpin_300HZ is --20000分頻模塊元件定義語(yǔ)句</p><p> port( clk200 : in std_logic;</p><p> rst :
91、 in std_logic;</p><p> qout : out std_logic);</p><p> end component fenpin_2000HZ;</p><p> component fenpin_1HZ is -6*10^6分頻模塊元件定義語(yǔ)句</p><p> port( clk1
92、 : in std_logic;</p><p> rst : in std_logic;</p><p> qout : out std_logic);</p><p> end component fenpin_1HZ; </p><p> signal c1,c2,s0,s1,s2:std_logic; --原件例化語(yǔ)句&
93、lt;/p><p> signal q1,q2,q3,q4,q5,q6,s_eg: std_logic_vector(3 downto 0); --申明的中間信號(hào) begin -- 用來(lái)連接不同的模塊</p><p> u0: fenpin_2000HZ port map(clk
94、300=>clk,rst=>rest,qout=>s0);</p><p> u1: fenpin_1HZ port map(clk1=>clk, rst=>rest,qout=>s1);</p><p> u2: miao_60 port map(clk=>s1,rst=>rest,shi=>q1,g
95、e=>q2, carry=>c1 );</p><p> u3: fen_60 port map(clk=>c1,rst=>rest,shi=>q3,ge=>q4, carry=>c2 );</p><p> u4: hour_24 port map(clk=>c2,rst=>rest,shi=>q5,ge
96、=>q6);</p><p> u5: wei_xuan port map(clk=>s0,rst=>rest,se1=>q5,se2=>q6, </p><p> se3=>q3,se4=>q4,se5=>q1,se6=>q2,qout=>s_eg,sel=>wei);</p><p>
97、 u6: seg7 port map(qin=>s_eg,qout=>duan );</p><p><b> end art;</b></p><p> shuzizhong的時(shí)序仿真波形如圖所示:</p><p> 圖10.shuzizhong時(shí)序仿真波形</p><p><
98、b> 4.硬件測(cè)試</b></p><p><b> 4.1管腳的分配</b></p><p> 當(dāng)vhdl源程序編譯沒(méi)有問(wèn)題時(shí),對(duì)程序做時(shí)序仿真、引腳分配、最后燒寫程序得到EP1K30TC144-3芯片中觀察硬件現(xiàn)象。</p><p> 圖11. 管腳的分配</p><p><b>
99、 4.2調(diào)試</b></p><p><b> 硬件現(xiàn)象:</b></p><p> 1、亮起六個(gè)數(shù)碼管(前面三個(gè),后面三個(gè)中間的一個(gè)不亮)。</p><p> 2、分鐘、時(shí)鐘的位置錯(cuò)亂。</p><p> 3、數(shù)碼管動(dòng)態(tài)顯示和標(biāo)準(zhǔn)的時(shí)鐘顯示視覺(jué)效果不一樣,感覺(jué)就是一個(gè)徹底的計(jì)數(shù)器。</p&g
100、t;<p> 軟件修改:根據(jù)以上現(xiàn)象初步判斷只需修改U5:wei_xuan元件例化語(yǔ)句。修改前u5: wei_xuan port map(clk=>s0,rst=>rest,se1=>q5,se2=>q6, </p><p> se3=>q3,se4=>q4,se5=>q1,se6=>q2,</p><p> qo
101、ut=>s_eg,sel=>wei);</p><p> 修改后u5: wei_xuan port map(clk=>s0,rst=>rest,se1=>q1,se2=>q2, </p><p> se3=>q3,se4=>q4,se5=>q5,se6=>q6,</p><p> qout=&
102、gt;s_eg,sel=>wei);</p><p> 修改后數(shù)碼管的顯示位置符合設(shè)計(jì)要求。數(shù)碼管的動(dòng)態(tài)顯示效果不是很好主要是所需要的動(dòng)態(tài)的頻率較低,后來(lái)我們用了300HZ的頻率與設(shè)計(jì)的要求一致。</p><p><b> 4.3實(shí)驗(yàn)現(xiàn)象</b></p><p><b> 圖12.實(shí)驗(yàn)現(xiàn)象圖</b></p
103、><p><b> 5.總結(jié)</b></p><p> 這次課程設(shè)計(jì),我組完成的是基于FPGA的數(shù)字時(shí)鐘的設(shè)計(jì),期間我們遇到一些問(wèn)題,通過(guò)查閱相關(guān)書籍、相互討論和老師熱心的指導(dǎo),最終我們?cè)O(shè)計(jì)出了電路圖,又經(jīng)過(guò)上機(jī)仿真并且不斷的修改、完善設(shè)計(jì)。經(jīng)過(guò)這次設(shè)計(jì)我發(fā)現(xiàn)的問(wèn)題,就是我們理論知識(shí)和實(shí)踐操作不能很好的結(jié)合、遇到到問(wèn)題不能及時(shí)解決。只有認(rèn)真做好課程設(shè)計(jì)才能夠提升一些實(shí)
104、踐能力。</p><p> 在設(shè)計(jì)之中我們首先要根據(jù)要求編寫VHDL源程序,并且編譯無(wú)錯(cuò)誤,然后,要對(duì)實(shí)驗(yàn)室提供的實(shí)驗(yàn)箱相關(guān)的電路模塊要有所了解。比如,實(shí)驗(yàn)箱上數(shù)碼管的位選是通過(guò)74ls138譯碼器輸出低電平有效來(lái)選擇的,動(dòng)態(tài)顯示則需要大于20HZ的頻率源。細(xì)節(jié)上比如數(shù)碼管的每段是高電平點(diǎn)亮,這里我們剛開始用的是低電平結(jié)果顯示的是亂碼修改后就得到正確的結(jié)果了。本次實(shí)驗(yàn)就這里的問(wèn)題較大,也是設(shè)計(jì)成功的關(guān)鍵。頂層模
105、塊的原理圖也很重要,因?yàn)樵韴D出來(lái)后解決問(wèn)題就比較容易了。</p><p><b> 6.老師點(diǎn)評(píng)</b></p><p><b> 參考書目:</b></p><p> [1] 譚會(huì)生,張昌凡,《EDA技術(shù)及應(yīng)用》,西安,西安電子科技大學(xué)出版社,2011年</p><p> [2] 聶
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- eda數(shù)字鐘課程設(shè)計(jì)
- 數(shù)字鐘--eda課程設(shè)計(jì)
- eda數(shù)字鐘課程設(shè)計(jì)
- 基于fpga的數(shù)字鐘課程設(shè)計(jì)
- eda課程設(shè)計(jì)報(bào)告---數(shù)字鐘設(shè)計(jì)
- 數(shù)字鐘eda課程設(shè)計(jì)報(bào)告
- eda課程設(shè)計(jì)報(bào)告--數(shù)字鐘
- 課程設(shè)計(jì)--基于fpga的數(shù)字鐘設(shè)計(jì)
- eda課程設(shè)計(jì)——多功能數(shù)字鐘
- eda課程設(shè)計(jì)--數(shù)字鐘的設(shè)計(jì)與制作
- eda課程設(shè)計(jì)報(bào)告--基于vhdl的數(shù)字鐘的設(shè)計(jì)
- eda數(shù)字鐘課程設(shè)計(jì)--用vhdl語(yǔ)言實(shí)現(xiàn)數(shù)字鐘的設(shè)計(jì)
- eda課程數(shù)字鐘設(shè)計(jì)報(bào)告
- eda實(shí)現(xiàn)多功能數(shù)字鐘課程設(shè)計(jì)
- 基于fpga的多功能數(shù)字鐘課程設(shè)計(jì)
- EDA課程設(shè)計(jì)--數(shù)字鐘的設(shè)計(jì)與制作.doc
- 數(shù)字鐘課程設(shè)計(jì)
- 數(shù)字鐘課程設(shè)計(jì)
- 數(shù)字鐘課程設(shè)計(jì)
- 數(shù)字鐘課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論