eda課程設(shè)計(jì)---數(shù)字秒表的設(shè)計(jì)_第1頁
已閱讀1頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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>  ----數(shù)字秒表的設(shè)計(jì)</p><p><b>  目錄</b></p><p>  設(shè)計(jì)任務(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è)計(jì)電路圖……………………………………………………13</p><p>  5.1總體電路設(shè)計(jì)原理圖………………………………………………13</p><p>  5.2仿真結(jié)果……………………………………………………………13

5、</p><p>  5.3管腳分配……………………………………………………………20</p><p>  5.4硬件實(shí)現(xiàn)……………………………………………………………20</p><p>  六.心得體會(huì)……………………………………………………………22</p><p><b>  數(shù)字秒表的設(shè)計(jì)</b></p&

6、gt;<p><b>  一.設(shè)計(jì)任務(wù)及要求</b></p><p>  設(shè)計(jì)一個(gè)數(shù)字秒表,用VHDL語言編程,并進(jìn)行下載,仿真。具體化技術(shù)指標(biāo)如下:</p><p>  (1)數(shù)字秒表的計(jì)時(shí)范圍是0秒-59分59.99秒,顯示的最長(zhǎng)時(shí)間為59分59秒;</p><p> ?。?)數(shù)字秒表的計(jì)時(shí)精度是10ms;</p>

7、<p> ?。?)復(fù)位開關(guān)可以在任何情況下使用,即便在計(jì)時(shí)過程中,只要按一下復(fù)位開關(guān),計(jì)時(shí)器就清零,并做好下次計(jì)時(shí)的準(zhǔn)備;</p><p>  (4)具有啟/停開關(guān),即按一下啟/停開關(guān),起動(dòng)計(jì)時(shí)器開始計(jì)時(shí),再按一下啟/停開關(guān)則停止計(jì)時(shí)。</p><p><b>  二.總體框圖</b></p><p><b>  圖1.

8、總體框圖</b></p><p>  由頻率信號(hào)輸出端輸出頻率為100HZ的時(shí)鐘信號(hào),輸入到0.0秒模塊的時(shí)鐘端clk,0.01秒模塊為100進(jìn)制的計(jì)數(shù)器,產(chǎn)生的進(jìn)位信號(hào)count輸入到下一級(jí)秒模塊的時(shí)鐘端,以此類推,直到分模塊計(jì)數(shù)到59進(jìn)60時(shí),產(chǎn)生的進(jìn)位信號(hào)不輸出,計(jì)數(shù)清零。將0.01秒、秒、分產(chǎn)生的計(jì)數(shù)通過置數(shù)/位選再通過顯示模塊實(shí)時(shí)顯示。</p><p><b&g

9、t;  三.器件選擇</b></p><p><b>  1、PC機(jī)一臺(tái)。</b></p><p>  2、CPLD/FPGA適配器板:標(biāo)準(zhǔn)配置EPF10K10LC84-4接口板,下載接口是數(shù)字芯片的下載接口(DIGITAL JTAG),主要用于CPLD/FPGA芯片的數(shù)據(jù)下載。</p><p>  3、實(shí)驗(yàn)箱:裝有七段數(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è)計(jì)</p>

11、<p><b>  1.模塊圖</b></p><p><b>  圖3.分頻器模塊圖</b></p><p>  時(shí)鐘脈沖是50MHz,因此在實(shí)驗(yàn)時(shí)需要對(duì)其進(jìn)行分頻,才能實(shí)現(xiàn)功能,若需要100Hz的時(shí)鐘,則需要對(duì)脈沖進(jìn)行250000次分頻;此外,實(shí)驗(yàn)還需要數(shù)碼管動(dòng)態(tài)顯示的掃描時(shí)鐘,本實(shí)驗(yàn)采用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è)計(jì)</p><p><b>  1.模塊圖</b><

17、/p><p>  圖4.0.01秒模塊圖</p><p>  0.01秒模塊由兩個(gè)十位計(jì)數(shù)器組成,可以實(shí)現(xiàn)帶有100進(jìn)制進(jìn)位和清零功能,暫停等功能。0.01秒個(gè)位輸入為100HZ脈沖,其進(jìn)位信號(hào)輸出,作為周期時(shí)鐘信號(hào),為0.01秒十位提供脈沖。個(gè)位模塊和十位模塊都有清零信號(hào)clear和秒表啟停位start,輸出0.01秒個(gè)位、十位及進(jìn)位信號(hào)cout。</p><p>&

18、lt;b>  仿真圖</b></p><p>  由于該模塊是由兩個(gè)十進(jìn)制級(jí)聯(lián)而成的,現(xiàn)對(duì)一個(gè)十進(jìn)制模塊仿真,仿真圖如下:</p><p><b>  圖5.十進(jìn)制仿真圖</b></p><p>  由仿真的結(jié)果可以看出來,從0000開始計(jì)數(shù),當(dāng)計(jì)數(shù)計(jì)到1001時(shí),自動(dòng)清零,所以該結(jié)果顯示其功能是一個(gè)十進(jìn)制計(jì)數(shù)器。</p

19、><p><b>  程序</b></p><p>  由于兩個(gè)十進(jìn)制模塊是一樣的,所以現(xiàn)只給出一個(gè)十進(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>  秒模塊是由一個(gè)十位計(jì)數(shù)器和一個(gè)六位計(jì)數(shù)器組成,其中十位計(jì)數(shù)器為秒個(gè)位計(jì)數(shù),六位計(jì)數(shù)器為秒十位計(jì)數(shù),可以實(shí)現(xiàn)帶有60進(jìn)制進(jìn)位和清零功能,暫停等功能。秒個(gè)位輸入為0

26、.01秒十位進(jìn)位脈沖,其進(jìn)位信號(hào)輸出,作為周期時(shí)鐘信號(hào),為秒十位提供脈沖。個(gè)位模塊和十位模塊都有清零信號(hào)clear和秒表啟停位start,輸出秒個(gè)位、十位及進(jìn)位信號(hào)cout。</p><p><b>  仿真圖</b></p><p>  秒模塊是有一個(gè)十進(jìn)制和一個(gè)六進(jìn)制級(jí)聯(lián)而成的,十進(jìn)制仿真圖如圖5所示,現(xiàn)給出六進(jìn)制仿真圖:</p><p>

27、<b>  圖7.六進(jìn)制仿真圖</b></p><p>  由仿真的結(jié)果可以看出來,從0000開始計(jì)數(shù),當(dāng)計(jì)數(shù)計(jì)到0101時(shí),自動(dòng)清零,所以該結(jié)果顯示其功能是一個(gè)六進(jìn)制計(jì)數(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>  分模塊和秒模塊原理一樣,也是由一個(gè)十位計(jì)數(shù)器和一個(gè)六位計(jì)數(shù)器組成,其中十位計(jì)數(shù)器為分個(gè)位計(jì)數(shù),六位計(jì)數(shù)器為分十位計(jì)數(shù)。分模塊生成的器件可以實(shí)現(xiàn)帶有60進(jìn)制進(jìn)位和清零功能,暫停等功能,分個(gè)位輸入為秒十位進(jìn)位脈沖,其進(jìn)位信號(hào)輸出,作為周期時(shí)鐘信號(hào),為分十位提供脈沖。個(gè)位模塊和十位模塊都有清零信號(hào)clear和秒表啟停位start,輸出分個(gè)位、十位及進(jìn)位信號(hào)cout。(由于分模塊的程序及仿真圖同秒模塊一樣,現(xiàn)不重復(fù)給出)</

35、p><p><b>  4.5掃描模塊</b></p><p><b>  模塊圖</b></p><p><b>  圖9.掃描模塊圖</b></p><p>  該模塊的功能是對(duì)輸入信號(hào)依次進(jìn)行掃描顯示,產(chǎn)生對(duì)數(shù)碼管的選擇信號(hào)。</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時(shí),選中dain0,輸出dain0中的數(shù)據(jù);當(dāng)sel=001時(shí),選中dain1,輸出dain1中的數(shù)據(jù);當(dāng)sel=010時(shí),選中dain2,輸出dain2中的數(shù)據(jù);當(dāng)sel=011時(shí),選中dain3,輸出dain3中的數(shù)據(jù);當(dāng)sel=100時(shí),選中dain4,輸出dain4中的數(shù)據(jù);當(dāng)sel=101時(shí),選中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ù)。其對(duì)應(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時(shí),led輸出為1111110;當(dāng)num=0001時(shí),led輸出為0110000;當(dāng)num=0010時(shí),led輸出為1101101;當(dāng)num=001

51、1時(shí),led輸出為1111001;當(dāng)num=0100時(shí),led輸出為0110011;當(dāng)num=0101時(shí),led輸出為1011011;當(dāng)num=0110時(shí),led輸出為1011111;當(dāng)num=0111時(shí),led輸出為1110000;當(dāng)num=1000時(shí),led輸出為1111011;當(dāng)num=1001時(shí),led輸出為1110111。與表2的對(duì)應(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>  由實(shí)驗(yàn)結(jié)果可以看出,輸入sel與輸出q的關(guān)系有如下對(duì)應(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è)計(jì)電路圖</b></p>&

65、lt;p>  5.1總體電路設(shè)計(jì)原理圖</p><p>  圖15.總體電路設(shè)計(jì)原理圖</p><p>  實(shí)驗(yàn)總體電路圖如圖15所示,由分頻模塊,0.01秒模塊,秒模塊,分模塊,掃描模塊,數(shù)碼管模塊和三八譯碼器模塊組成。</p><p>  其中clr為復(fù)位信號(hào)低電平有效,start為啟停開關(guān),高電平有效。</p><p>  當(dāng)50

66、MHZ時(shí)鐘信號(hào)clk經(jīng)分頻器clk后分頻為一個(gè)100Hz脈沖,經(jīng)分頻器clk1000后分頻為一個(gè)25kHZ脈沖信號(hào)。100HZ脈沖作為0.01秒計(jì)數(shù)信號(hào)輸入使0.01秒模塊為以一百十進(jìn)制計(jì)數(shù),滿一百后進(jìn)位,進(jìn)位信號(hào)作為秒信號(hào)時(shí)鐘使秒模塊以六十進(jìn)制計(jì)數(shù),滿六十后進(jìn)位,進(jìn)位信號(hào)作為分信號(hào)時(shí)鐘使分模塊以六十進(jìn)制計(jì)數(shù)。25kHz脈沖信號(hào)為掃描模塊提供頻率。0.01秒模塊的個(gè)位和十位,秒模塊的個(gè)位和十位,分模塊的個(gè)位和十位分別輸出作為掃描模塊的輸

67、入信號(hào)。掃描模塊選擇輸出信號(hào),經(jīng)過譯碼器和七段數(shù)碼管顯示時(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硬件實(shí)現(xiàn)</b></p><p

107、><b>  1.實(shí)驗(yàn)連線</b></p><p>  1.CLK接IO3;</p><p>  2.LED1接IO1;</p><p>  3.功能選擇位VGA[3..0]狀態(tài)為0010;</p><p>  4.代表譯碼驅(qū)動(dòng)的管腳SCAN0-SCAN7已經(jīng)接到實(shí)驗(yàn)箱上的SCAN-SCAN7;</p>

108、<p>  5.代表七段數(shù)碼管的SEG70-SEG6已經(jīng)接到實(shí)驗(yàn)箱上。</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)制計(jì)數(shù)器,應(yīng)用QUARTUSII進(jìn)行仿真,得其仿真;電路共有六個(gè)輸出需用六位數(shù)碼管顯示,對(duì)其進(jìn)行動(dòng)態(tài)掃描;電路輸出為4位信號(hào),需用譯碼電路對(duì)其譯碼在數(shù)碼管顯示;試驗(yàn)箱所給的頻率為50MHZ,故需對(duì)其進(jìn)行分頻。</p><p>  設(shè)置一個(gè)clear信號(hào):當(dāng)信號(hào)clear=0時(shí),整個(gè)系統(tǒng)復(fù)位;當(dāng)clear

110、=1時(shí),進(jìn)行計(jì)時(shí)功能。并當(dāng)計(jì)時(shí)器計(jì)滿59分59.99秒,清零重新開始計(jì)數(shù); </p><p>  啟/??刂疲河糜陂_始/結(jié)束計(jì)時(shí)操作。數(shù)字秒表的啟/停是通過控制送給計(jì)數(shù)器的時(shí)鐘來實(shí)現(xiàn)的。當(dāng)start=1后,計(jì)數(shù)器開始計(jì)數(shù),秒表開始正常工作。當(dāng)start=0后,計(jì)數(shù)器停止計(jì)數(shù),秒表暫停工作。

111、 </p><p><b>  六.心得體會(huì)</b></p><p>  通過本次課程設(shè)計(jì)我對(duì)所學(xué)知識(shí)有了更加深刻的認(rèn)識(shí),對(duì)EDA和數(shù)字電子技術(shù)有了更加深入的理解,在課程設(shè)計(jì)過程中,我遇到了很多困難,無論是程序設(shè)計(jì)方面的,還是調(diào)試方面的問題,但通過不斷的嘗試和老師的指導(dǎo),這些問題終于一一得到解決。其中,我認(rèn)真的將原來不懂得程序編程問

112、題向老師請(qǐng)教得已解決,同時(shí)也了解了在程序編寫的時(shí)候容易出現(xiàn)的問題。</p><p>  在程序編寫開始時(shí)分不清每個(gè)模塊需要多大頻率的脈沖,但在分析各個(gè)模塊的功能及脈沖的作用后漸漸了解為什么掃描模塊的頻率為什么要選的比時(shí)鐘信號(hào)大的多了。一些剛開始不知道如何編寫的模塊經(jīng)過查閱資料漸漸有了思路。在試驗(yàn)箱上的多次試驗(yàn)讓我對(duì)試驗(yàn)箱的管腳及各部分作用都有了更深的了解。雖然困難重重,但結(jié)果是喜人的,當(dāng)我看到自己的設(shè)計(jì)結(jié)果時(shí),內(nèi)

113、心的喜悅和成就感是無以名狀的。</p><p>  通過課程設(shè)計(jì)全方位的培養(yǎng)和考察我們解決問題和處理問題的能力。在設(shè)計(jì)編程到最后實(shí)現(xiàn)功能的過程中,我們必須經(jīng)過思考。從開始程序的編寫到模塊生成,再到最后功能的完全實(shí)現(xiàn),這要求我們擁有自頂上向下的思維,以及自底向上的編輯能力。它除了要求我們必須在短期內(nèi)鍛煉迅速掌握一門語言的能力,同時(shí)也要求學(xué)會(huì)利用其他的資料與書籍。</p><p>  這次課程

114、設(shè)計(jì)讓我學(xué)到的不只是更多相關(guān)的知識(shí),還讓我了解到了努力、堅(jiān)持的重要性。也許在堅(jiān)持一點(diǎn)點(diǎn)成功就是屬于你的。通過也讓我了解到同學(xué)間團(tuán)結(jié)協(xié)作,互幫互助的作用,或許是一個(gè)不經(jīng)意的提點(diǎn)就會(huì)讓你收益匪淺。</p><p>  由此可見,課程設(shè)計(jì)的意義是十分重大和深遠(yuǎn)的。不僅豐富了我們的知識(shí)鍛煉了我們的動(dòng)手能力,還給以我們生活的提點(diǎn),展示自己的平臺(tái)。今后,我會(huì)更加努力學(xué)習(xí)更多專業(yè)知識(shí),不斷提高自己的專業(yè)素質(zhì),把自己的綜合水平提

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論