eda數(shù)字秒課程設(shè)計_第1頁
已閱讀1頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p><b>  目錄</b></p><p>  數(shù)字秒表的設(shè)計思路 1</p><p>  2.系統(tǒng)設(shè)計要求 1</p><p>  3.系統(tǒng)計時方案

2、1</p><p>  4.系統(tǒng)仿真 10</p><p>  5.結(jié)束語 13</p><p>  6.參考文獻 13</p>&l

3、t;p>  1. 數(shù)字秒表設(shè)計思路</p><p>  應(yīng)用VHDL語言設(shè)計數(shù)字系統(tǒng),很多設(shè)計可以在計算機上完成,從而縮短了數(shù)字系統(tǒng)的開發(fā)時間,我們嘗試利用VHDL為開發(fā)工具涉及數(shù)字秒表。</p><p>  秒表的邏輯結(jié)構(gòu)較簡單,它主要由十進制計數(shù)器,六進制計數(shù)器,12500的分頻器,數(shù)字選擇器,和顯示譯碼器等組成。在整個秒表中最關(guān)鍵的時候如何獲得一個精確的100HZ計時脈沖,除此

4、之外,整個秒表還需有一個啟動信號和清零信號,以便秒表能隨意停止及啟動。</p><p><b>  VHDL的設(shè)計流程</b></p><p>  它主要包括以下幾個步驟:</p><p><b>  (1)文本編輯:</b></p><p>  用任何文本編輯器都可以進行,也可以用專用的HDL編輯

5、環(huán)境。通常VHDL文件保存為.vhd文件,Verilog文件保存為.v文件</p><p><b> ?。?)功能仿真</b></p><p>  將文件調(diào)入HDL仿真軟件進行功能仿真,檢查邏輯功能是否正確(也叫前仿真,對簡單的設(shè)計可以跳過這一步,只在布線完成以后,進行時序仿真)</p><p><b> ?。?)邏輯綜合</

6、b></p><p>  將源文件調(diào)入邏輯綜合軟件進行綜合,即把語言綜合成最簡的布爾表達式。邏輯綜合軟件會生成.edf或.edif 的EDA工業(yè)標準文件。</p><p><b> ?。?)布局布線</b></p><p>  將.edf文件調(diào)入PLD廠家提供的軟件中進行布線,即把設(shè)計好的邏輯安放PLD/FPGA內(nèi)。</p>

7、<p><b> ?。?)時序仿真</b></p><p>  需要利用在布局布線中獲得的精確參數(shù),用仿真軟件驗證電路的時序。(也叫后仿真) 通常以上過程可以都在PLD/FPGA廠家提供的開發(fā)工具。</p><p><b> ?。?)器件編程</b></p><p><b>  2.系統(tǒng)設(shè)計要求<

8、;/b></p><p> ?。?)數(shù)字秒表的計時范圍是0秒~59分59.99秒,顯示的最長時間為59分59秒。</p><p>  (2)數(shù)字秒表的計時精度是10ms。</p><p> ?。?)復(fù)位開關(guān)可以在任何情況下使用,即使在即使過程中,只要按一下復(fù)位開關(guān),即使器就清零,并做好下次即使的準備。</p><p>  (4)具有啟/

9、停開關(guān),啟動計時器計時,再按啟/停開關(guān)則停止計時。、</p><p><b>  3.系統(tǒng)計時方案</b></p><p>  根據(jù)系統(tǒng)設(shè)計要求,系統(tǒng)的組成框圖如圖0-1所示。</p><p>  系統(tǒng)設(shè)計采用自頂向下的設(shè)計方案,系統(tǒng)的組成框圖如圖0-1所示</p><p>  系統(tǒng)設(shè)計采用自頂而下的設(shè)計方法,它主要由控

10、制模塊,時機分頻模塊,計時模塊和顯示模塊四部分組成。</p><p><b>  控制模塊</b></p><p>  計時控制模塊的作用是對計時過程進行控制。計時控制模塊可用兩個按鈕開關(guān)按鈕來完成秒表的啟動,停止和復(fù)位。</p><p><b>  計時模塊</b></p><p>  計時模塊執(zhí)

11、行計時功能,計時的方法是對標準時鐘脈沖計數(shù)。由于計時范圍是0秒~59分59.99秒,所以計數(shù)器可以由四個十進制計數(shù)器和兩個六進制計數(shù)器構(gòu)成,其中秒表位,十毫秒位,秒位和分位采用六進制計時器。</p><p><b>  顯示模塊</b></p><p>  計時顯示電路的作用是將計數(shù)值在LED七段數(shù)碼管上顯示才出來。計時電路產(chǎn)生的計時值經(jīng)過BCD七段譯碼后,驅(qū)動LED

12、數(shù)字管。計時顯示電路的實現(xiàn)方案采用掃描顯示,即每次只驅(qū)動一位數(shù)碼管,各位數(shù)據(jù)輪流驅(qū)動對應(yīng)的數(shù)碼管進行顯示。</p><p>  圖3-1系統(tǒng)組成框圖</p><p>  3.1 控制模塊</p><p>  計時模塊的作用是針對計時過程進行控制。計時控制模塊可用倆個按鈕來完成秒表的啟動、停止和復(fù)位。部分源程序如下: </p><p&

13、gt;  LIBRARY IEEE;</p><p>  USE 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

14、><p>  EN :OUT STD_LOGIC);</p><p><b>  END ;</b></p><p>  ARCHITECTURE BEHAVE OF CTRL IS</p><p>  CONSTANT S0: STD_LOGIC_VECTOR (1 DOWNTO 0):="00";&l

15、t;/p><p>  CONSTANT S1: STD_LOGIC_VECTOR (1 DOWNTO 0):="01";</p><p>  CONSTANT S2: STD_LOGIC_VECTOR (1 DOWNTO 0):="11";</p><p>  CONSTANT S3: STD_LOGIC_VECTOR (1 DO

16、WNTO 0):="10";</p><p>  TYPE STATES IS (S0,S1,S2,S3);</p><p>  SIGNAL CURRENT_STATE,NEXT_STATE:STATES;</p><p><b>  BEGIN</b></p><p>  COM:PROCESS(

17、SP,CURRENT_STATE)</p><p><b>  BEGIN</b></p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p>  END BEHAVE;</p><p><b>  3.2時基分

18、頻模塊</b></p><p>  時基分頻模塊的作用把輸入時鐘信號變?yōu)榉诸l輸出信號。源程序:</p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p>&

19、lt;p>  ENTITY CB10 IS</p><p>  PORT( CLK: IN STD_LOGIC;</p><p>  CO : OUT STD_LOGIC);</p><p><b>  END CB10;</b></p><p>  ARCHITECTURE ART OF CB10 IS</

20、p><p>  SIGNAL COUNT:STD_LOGIC_VECTOR (3 DOWNTO 0);</p><p><b>  BEGIN</b></p><p>  PROCESS(CLK)</p><p><b>  BEGIN</b></p><p>  IF RISI

21、NG_EDGE(CLK)THEN</p><p>  IF COUNT="1001"THEN</p><p>  COUNT<="0000";</p><p><b>  CO<='1';</b></p><p><b>  ELSE</

22、b></p><p>  COUNT<=COUNT+1;</p><p><b>  CO<='0';</b></p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><

23、;p>  END PROCESS;</p><p><b>  END ART;</b></p><p><b>  3.3計時模塊</b></p><p>  計時模塊執(zhí)行計時功能,計時方法和計算機一樣是對標準時鐘脈沖計數(shù)。他是由四</p><p>  個十進制計數(shù)器和倆個六進制計數(shù)器構(gòu)成,

24、其中毫秒位、十毫秒位、秒位和分位采用十進制計數(shù)器,十秒位和十分位采用六進制計數(shù)器。源程序:</p><p><b> ?、?十進制計數(shù)器</b></p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LO

25、GIC_UNSIGNED.ALL;</p><p>  ENTITY CDU10 IS</p><p>  PORT( CLK:IN STD_LOGIC;</p><p>  CLR,EN:IN STD_LOGIC;</p><p>  CN :OUT STD_LOGIC;</p><p>  COUNT10:OUT

26、STD_LOGIC_VECTOR(3 DOWNTO 0));</p><p>  END CDU10;</p><p>  ARCHITECTURE ART OF CDU10 IS</p><p>  SIGNAL SCOUNT10: STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  BEGIN COUNT10&

27、lt;=SCOUNT10;</p><p>  PROCESS (CLK,CLR,EN)</p><p>  BEGIN IF(CLR='1')THEN</p><p>  SCOUNT10<="0000";CN<='0';</p><p>  ELSIF RISING_EDGE

28、(CLK)THEN</p><p>  IF(EN='1')THEN</p><p>  IF SCOUNT10="1001"THEN</p><p><b>  CN<='1';</b></p><p>  SCOUNT10<="0000&quo

29、t;;</p><p><b>  ELSE</b></p><p><b>  CN<='0';</b></p><p>  SCOUNT10<=SCOUNT10+'1';</p><p><b>  END IF;</b><

30、/p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p><b>  END ART;</b></p><p><b> ?、诹M制計數(shù)器</b></p><p>  LIBRARY IEEE;</

31、p><p>  USE IEEE.STD_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 :OU

32、T STD_LOGIC;</p><p>  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_

33、LOGIC_VECTOR(3 DOWNTO 0);</p><p><b>  BEGIN </b></p><p>  COUNT6<=SCOUNT6;</p><p>  PROCESS (CLK,CLR,EN)</p><p><b>  BEGIN </b></p>&l

34、t;p>  IF(CLR='1')THEN</p><p>  SCOUNT6<="0000";CN<='0';</p><p>  ELSIF RISING_EDGE(CLK) THEN</p><p>  IF(EN='1')THEN</p><p> 

35、 IF SCOUNT6="0101"THEN</p><p><b>  CN<='1';</b></p><p>  SCOUNT6<="0000";</p><p><b>  ELSE</b></p><p><b>

36、;  CN<='0';</b></p><p>  SCOUNT6<=SCOUNT6+'1';</p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p>  END PROCESS;

37、</p><p><b>  END ART;</b></p><p><b> ?、塾嫈?shù)器</b></p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_L

38、OGIC_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_10MS:OUT STD_LOGIC_VECTO

39、R(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 0);</p><p&g

40、t;  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 COUNT;</p><p

41、>  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:OUT STD_LOGIC_VECTOR(

42、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><p>  COUNT6:O

43、UT 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>  UL:CDU10 PORT MAP

44、 (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,EN,D,S_1S);</p>

45、<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>  U8:CDU10 PORT MA

46、P (G,CLR,EN,H,HOUR);</p><p><b>  END ART;</b></p><p><b>  3.4顯示模塊</b></p><p>  計時顯示電路的作用是將計時值在LED數(shù)碼管上顯示出來。計時電路產(chǎn)生的值經(jīng)過BCD七段譯碼后,驅(qū)動LED數(shù)碼管。計時顯示電路的實現(xiàn)方案采用掃描顯示。部分源程序

47、:</p><p><b> ?、贁?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>  ENTITY

48、 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_100MS:IN ST

49、D_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>  M_1MIN:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p>

50、<p>  M_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_LOGIC_VEC

51、TOR(7 DOWNTO 0));</p><p><b>  END MULX;</b></p><p>  ARCHITECTURE ART OF MULX IS</p><p>  SIGNAL COUNT:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p><b>  BEGIN

52、</b></p><p>  PROCESS (CLK)</p><p><b>  BEGIN</b></p><p>  IF CLR='1'THEN</p><p>  COUNT<="1111";</p><p>  ELSIF RIS

53、ING_EDGE(CLK)THEN</p><p>  IF EN ='1' THEN </p><p>  COUNT<="0000";</p><p><b>  ELSE</b></p><p>  COUNT<=COUNT+'1';</p>

54、;<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)</p>

55、<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; SEG<=&q

56、uot;11111110";</p><p>  WHEN "0001"=>OUTBCD<=S_10MS; SEG<="11111101";</p><p>  WHEN "0010"=>OUTBCD<=S_100MS; SEG<="11111011

57、";</p><p>  WHEN "0011"=>OUTBCD<=S_1S; SEG<="11110111";</p><p>  WHEN "0100"=>OUTBCD<=S_10S; SEG<="11101111";</

58、p><p>  WHEN "0101"=>OUTBCD<=S_1MIN; SEG<="11011111";</p><p>  WHEN "0110"=>OUTBCD<=S_10MIN; SEG<="10111111";</p><p

59、>  WHEN "0111"=>OUTBCD<=S_HUOR; SEG<="01111111";</p><p>  WHEN "1000"=>OUTBCD<=S_1MS; SEG<="11111110";</p><p>  WHEN &

60、quot;1001"=>OUTBCD<=S_10MS; SEG<="11111101";</p><p>  WHEN OTHERS=>OUTBCD<="0000"; SEG<="00000000";</p><p><b>  END CASE;

61、</b></p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p><b>  END ART;</b></p><p><b> ?、贐CD七段譯碼器</b></p><p>  LI

62、BRARY 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&

63、gt;  BCD: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

64、><b>  BEGIN</b></p><p>  LED<="1111110"WHEN BCD ="0000" ELSE</p><p>  "0110000"WHEN BCD ="0001" ELSE</p><p>  "1101101

65、"WHEN BCD ="0010" ELSE</p><p>  "1111001"WHEN BCD ="0011" ELSE</p><p>  "0110011"WHEN BCD ="0100" ELSE</p><p>  "1011011&

66、quot;WHEN BCD ="0101" ELSE</p><p>  "1011111"WHEN BCD ="0110" ELSE</p><p>  "1110000"WHEN BCD ="0111" ELSE</p><p>  "1111111&q

67、uot;WHEN BCD ="1000" ELSE</p><p>  "1111011"WHEN BCD ="1001" ELSE</p><p>  "0000000";</p><p><b>  END ART; </b></p><p&

68、gt;  3.5頂層設(shè)計的源程序(MB.VHD)</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&g

69、t;  PORT( SP,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&g

70、t;  SEG:OUT 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

71、 STD_LOGIC;</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);&l

72、t;/p><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_1

73、0MS: 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_LOG

74、IC_VECTOR(3 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

75、0));</p><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>&l

76、t;p>  END 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_VE

77、CTOR(3 DOWNTO 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&g

78、t;  S_1MIN:IN 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 D

79、OWNTO 0);</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

80、 DOWNTO 0);</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);<

81、;/p><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(

82、CLK,C);</p><p>  U2:COUNT PORT;</p><p>  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_SMIN1

83、0_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;</p>

84、;<p><b>  END ART;</b></p><p><b>  4 系統(tǒng)仿真</b></p><p>  時基分頻模塊的仿真(如圖 4-1所示)</p><p>  分析:CLK為時鐘信號的輸入 ,CO為分頻輸出信號。</p><p>  控制模塊的仿真(如圖 4-2所示)

85、</p><p>  分析:CLK、CLR和SP為輸入信號,EN為輸出信號。</p><p>  計時電路模塊的仿真(如圖 4-3~圖4-5所示)</p><p>  十進制計數(shù)器的仿真(如圖4-3所示)</p><p>  六進制計數(shù)器的仿真(如圖4-4所示)</p><p>  計數(shù)器的仿真(如圖4-5所示)<

86、;/p><p>  分析:clk為時鐘脈沖脈沖,s_1ms是毫秒計數(shù)值,s_10ms是十毫秒計數(shù)器,s_100ms是百毫秒計數(shù)器,s_1s是秒計數(shù)器,s_10s是十秒計數(shù)器,m_1min是分計數(shù)器,s_10min是十分計數(shù)器。它們均為輸入信號。每來兩個時鐘脈沖,s_1ms加1,當(dāng)s_1ms滿十時,s_10ms加1,依次類推,s_10ms滿十的時候,s_100ms加1等等作為輸出。</p><p&g

87、t;  顯示電路模塊的仿真(如圖 4-6~圖5-7所示)</p><p>  數(shù)據(jù)選擇器的仿真(如圖 4-6所示)</p><p>  BCD七段譯碼器驅(qū)動器的仿真(如圖 4-7所示)</p><p>  分析:bcd為時鐘脈沖輸入信號,led是輸出信號,如圖所示:當(dāng)輸出為“1111110”時候,輸入為“0000”;當(dāng)輸出為“0110000”時輸入“0001”,當(dāng)輸

88、入為“0010”時輸出為“1101101”,當(dāng)輸入為“0011”時輸出為“1111001”等等來實現(xiàn)七段譯碼功能。</p><p>  數(shù)字秒表整個系統(tǒng)的仿真(如圖4-8所示)</p><p>  分析:秒表開始從零開始計數(shù),每次增加10ms。工作很正常的進行。</p><p><b>  5.結(jié)束語</b></p><p&

89、gt;  開始做設(shè)計時總是會犯錯誤,只有經(jīng)過不停的改錯不停的編譯得到正確的程序說明了作為軟件編程人員是不能粗心大意的,一個程序的質(zhì)量的高低與你細心與否有著一定的聯(lián)系。在編程時,我充分使用了結(jié)構(gòu)化的思想,這樣程序檢查起來也比較方便,調(diào)試時也給了我很大方便,只要一個模塊一個模塊的進行調(diào)就可以了,充分體現(xiàn)了結(jié)構(gòu)化編程的優(yōu)勢。在設(shè)計中要求我要有耐心和毅力,還要細心,稍有不慎,一個小小的錯誤就會導(dǎo)致結(jié)果的不正確,而對錯誤的檢查要求我要有足夠的耐心

90、,通過這次設(shè)計和設(shè)計中遇到的問題,也積累了一定的經(jīng)驗,對以后從事集成電路設(shè)計工作會有一定的幫助。</p><p>  在應(yīng)用VHDL的過程中讓我真正領(lǐng)會到了其并行運行與其他軟件順序執(zhí)行的差別及其在電路設(shè)計上的優(yōu)越性。用VHDL硬件描述語言的形式來進行數(shù)字系統(tǒng)的設(shè)計方便靈活,利用EDA軟件進行編譯優(yōu)化仿真極大地減少了電路設(shè)計時間和可能發(fā)生的錯誤,降低了開發(fā)成本,這種設(shè)計方法在數(shù)字系統(tǒng)設(shè)計中發(fā)揮越來越重要的作用。&l

91、t;/p><p><b>  6.致謝</b></p><p>  經(jīng)過快一個星期的緊張工作,我終于完成了我的設(shè)計任務(wù)——設(shè)計數(shù)字秒表。在這次課程設(shè)計中特別感謝xx老師對我的指導(dǎo),正是由于她的督促和耐心指導(dǎo),我才可以順利完成這次的設(shè)計。鍛煉了動手能力,給以后的學(xué)習(xí)指出了一個方向。</p><p><b>  7.參考文獻</b>

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論