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

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論