eda課程設(shè)計(jì)報(bào)告---數(shù)字鐘設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  一、引言</b></p><p>  隨著科學(xué)技術(shù)的迅猛發(fā)展,電子工業(yè)界經(jīng)歷了巨大的飛躍。集成電路的設(shè)計(jì)正朝著速度快、性能高、容量大、體積小和微功耗的方向發(fā)展?;谶@種情況,可編程邏輯器件的出現(xiàn)和發(fā)展大大改變了傳統(tǒng)的系統(tǒng)設(shè)計(jì)方法??删幊踢壿嬈骷拖鄳?yīng)的設(shè)計(jì)技術(shù)體現(xiàn)在三個(gè)主要方面:一是可編程邏輯器件的芯片技術(shù);二是適用于可邏輯編程器件的硬件編程技術(shù),三是可編程邏輯

2、器件設(shè)計(jì)的EDA開(kāi)發(fā)工具,它主要用來(lái)進(jìn)行可編程邏輯器件應(yīng)用的具體實(shí)現(xiàn)。在本實(shí)驗(yàn)中采用了集成度較高的FPGA 可編程邏輯器件, 選用了VHDL硬件描述語(yǔ)言和MAX + p lusⅡ開(kāi)發(fā)軟件。VHDL硬件描述語(yǔ)言在電子設(shè)計(jì)自動(dòng)化( EDA)中扮演著重要的角色。由于采用了具有多層次描述系統(tǒng)硬件功能的能力的“自頂向下”( Top - Down)和基于庫(kù)(L ibrary - Based)的全新設(shè)計(jì)方法,它使設(shè)計(jì)師們擺脫了大量的輔助設(shè)計(jì)工作,而把

3、精力集中于創(chuàng)造性的方案與概念構(gòu)思上,用新的思路來(lái)發(fā)掘硬件設(shè)備的潛力,從而極大地提高了設(shè)計(jì)效率,縮短了產(chǎn)品的研制周期。MAX + p lusⅡ是集成了編輯器、仿真工具、檢查/分析工具和優(yōu)化/綜合工具的這些所有開(kāi)發(fā)工具的一種集成的開(kāi)發(fā)環(huán)</p><p><b>  二、相關(guān)知識(shí)簡(jiǎn)介</b></p><p>  1、EDA簡(jiǎn)介20世紀(jì)90年代,國(guó)際上電子和計(jì)算機(jī)技術(shù)較

4、先進(jìn)的國(guó)家,一直在積極探索新的電子電路設(shè)計(jì)方法,并在設(shè)計(jì)方法、工具等方面進(jìn)行了徹底的變革,取得了巨大成功。在電子技術(shù)設(shè)計(jì)領(lǐng)域,可編程邏輯器件(如CPLD、FPGA)的應(yīng)用,已得到廣泛的普及,這些器件為數(shù)字系統(tǒng)的設(shè)計(jì)帶來(lái)了極大的靈活性。這些器件可以通過(guò)軟件編程而對(duì)其硬件結(jié)構(gòu)和工作方式進(jìn)行重構(gòu),從而使得硬件的設(shè)計(jì)可以如同軟件設(shè)計(jì)那樣方便快捷。這一切極大地改變了傳統(tǒng)的數(shù)字系統(tǒng)設(shè)計(jì)方法、設(shè)計(jì)過(guò)程和設(shè)計(jì)觀念,促進(jìn)了EDA技術(shù)的迅速發(fā)展。EDA是

5、電子設(shè)計(jì)自動(dòng)化(Electronic Design Automation)的縮寫,在20世紀(jì)90年代初從計(jì)算機(jī)輔助設(shè)計(jì)(CAD)、計(jì)算機(jī)輔助制造(CAM)、計(jì)算機(jī)輔助測(cè)試(CAT)和計(jì)算機(jī)輔助工程(CAE)的概念發(fā)展而來(lái)的。EDA技術(shù)就是以計(jì)算機(jī)為工具,設(shè)計(jì)者在EDA軟件平臺(tái)上,用硬件描述語(yǔ)言HDL完成設(shè)計(jì)文件,然后由計(jì)算機(jī)自動(dòng)地完成邏輯編譯、化簡(jiǎn)、分割、綜合、優(yōu)化、布局、布線和仿真,直至對(duì)于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等

6、工作。EDA技術(shù)的出現(xiàn),極大地提高了電路設(shè)計(jì)的效率和可操作性</p><p>  2、VHDL簡(jiǎn)介 硬件描述語(yǔ)言HDL(HardwareDescriptionLanguage)誕生于1962年。HDL是用形式化的方法描述數(shù)字電路和設(shè)計(jì)數(shù)字邏輯系統(tǒng)的語(yǔ)言。主要用于描述離散電子系統(tǒng)的結(jié)構(gòu)和行為。與SDL(SoftwareDescriptionLanguage)相似,經(jīng)歷了從機(jī)器碼(晶體管和焊接)、匯編(網(wǎng)表)、

7、到高級(jí)語(yǔ)言(HDL)的過(guò)程。 VHDL翻譯成中文就是超高速集成電路硬件描述語(yǔ)言,他誕生于1982年。最初是由美國(guó)國(guó)防部開(kāi)發(fā)出來(lái)供美軍用來(lái)提高設(shè)計(jì)的可靠性和縮減開(kāi)發(fā)周期的一種使用范圍較小的設(shè)計(jì)語(yǔ)言。1987年底,VHDL被IEEE和美國(guó)國(guó)防部確認(rèn)為標(biāo)準(zhǔn)硬件描述語(yǔ)言。自IEEE公布了VHDL的標(biāo)準(zhǔn)版本,IEEE-1076(簡(jiǎn)稱87版)之后,各EDA公司相繼推出了自己的VHDL設(shè)計(jì)環(huán)境,或宣布自己的設(shè)計(jì)工具可以和VHDL接口。此后VHDL

8、在電子設(shè)計(jì)領(lǐng)域得到了廣泛的接受,并逐步取代了原有的非標(biāo)準(zhǔn)的硬件描述語(yǔ)言。1993年,IEEE對(duì)VHDL進(jìn)行了修訂,從更高的抽象層次和系統(tǒng)描述能力上擴(kuò)展VHDL的內(nèi)容,公布了新版本的VHDL,(即IEEE標(biāo)準(zhǔn)的1076-1993</p><p><b>  三、課程設(shè)計(jì)題目</b></p><p>  設(shè)計(jì)并實(shí)現(xiàn)具有一定功能的數(shù)字小系統(tǒng)(數(shù)字鐘)</p>

9、<p><b>  四、課程設(shè)計(jì)要求:</b></p><p>  1、該數(shù)字鐘可以實(shí)現(xiàn)3個(gè)功能:計(jì)時(shí)功能、整點(diǎn)報(bào)時(shí)功能和重置時(shí)間功能,因此有3個(gè)功能:計(jì)時(shí)、重置時(shí)間、復(fù)位。</p><p>  2、對(duì)所有設(shè)計(jì)的小系統(tǒng)能夠正確分析;3、基于VHDL語(yǔ)言描述系統(tǒng)的功能;4、在quartus 2環(huán)境中編譯通過(guò);5、仿真通過(guò)并得到正確的波形;6、給出相應(yīng)的

10、設(shè)計(jì)報(bào)告。</p><p><b>  五、課程設(shè)計(jì)思路</b></p><p>  其中計(jì)時(shí)模塊有4部分構(gòu)成:秒計(jì)時(shí)器(second)、分計(jì)時(shí)器(minute)、時(shí)計(jì)時(shí)器(hour)、日計(jì)時(shí)器(date)、月計(jì)時(shí)器(mouth)、年計(jì)時(shí)器(year)     1) 秒計(jì)時(shí)器(second)是由一個(gè)60進(jìn)制的計(jì)數(shù)器構(gòu)成的,具有清0、置數(shù)

11、和計(jì)數(shù)功能。其中reset為清0信號(hào),當(dāng)reset為0時(shí),秒計(jì)時(shí)器清0;set 為置數(shù)信號(hào),當(dāng)set為0時(shí),秒計(jì)時(shí)器置數(shù),置s1的值。clk為驅(qū)動(dòng)秒計(jì)時(shí)器的時(shí)鐘,sec為秒計(jì)時(shí)器的輸出,ensec為秒計(jì)時(shí)器的進(jìn)位信號(hào),作為下一級(jí)的時(shí)鐘輸入信號(hào)。 2)分計(jì)時(shí)器(minute)是由一個(gè)60進(jìn)制的計(jì)數(shù)器構(gòu)成的,具有清0、置數(shù)和計(jì)數(shù)功能。其中reset為清0信號(hào),當(dāng)reset為0時(shí),分計(jì)時(shí)器清0;set 為置數(shù)信號(hào),當(dāng)set為0時(shí),分

12、計(jì)時(shí)器置數(shù),置m1的值。 clkm為驅(qū)動(dòng)分計(jì)時(shí)器工作的時(shí)鐘,與ensec相連接;min為分計(jì)時(shí)器的輸出;enmin為分計(jì)時(shí)器的進(jìn)位信號(hào),作為下一級(jí)的時(shí)鐘輸入信號(hào)。</p><p>  3)時(shí)計(jì)時(shí)器(hour)是由一個(gè)24進(jìn)制的計(jì)數(shù)器構(gòu)成的,具有清0、置數(shù)和計(jì)數(shù)功能。其中reset為清0信號(hào),當(dāng)reset為0時(shí),時(shí)計(jì)時(shí)器清0;set 為置數(shù)信號(hào),當(dāng)set為0時(shí),時(shí)計(jì)時(shí)器置數(shù),置h1的值。 clkh為驅(qū)動(dòng)時(shí)計(jì)時(shí)器工作

13、的時(shí)鐘,與enmin相連接;hour為時(shí)計(jì)時(shí)器的輸出;enhour為時(shí)計(jì)時(shí)器的進(jìn)位信號(hào),作為下一級(jí)的時(shí)鐘輸入信號(hào)。 </p><p>  4)日計(jì)時(shí)器( date1)是由一個(gè)60進(jìn)制的計(jì)數(shù)器構(gòu)成的,具有清0、置數(shù)和計(jì)數(shù)功能。其中reset為清0信號(hào),當(dāng)reset為0時(shí),星期計(jì)時(shí)器清0;set 為置數(shù)信號(hào),當(dāng)set為0時(shí),星期計(jì)時(shí)器置數(shù),置d1的值。 clkd為驅(qū)動(dòng)星期計(jì)時(shí)器工作的

14、時(shí)鐘,與enhour相連接;date為日計(jì)時(shí)器的輸出,endate為分計(jì)時(shí)器的進(jìn)位信號(hào),作為下一級(jí)的時(shí)鐘輸入信號(hào),由于月份的天數(shù)存在天數(shù)不同,閏年2月的天數(shù)為28天等情況,還設(shè)計(jì)了一個(gè)潤(rùn)年判別器,準(zhǔn)確顯示時(shí)間。</p><p>  5)月計(jì)時(shí)器(mouth)是由一個(gè)60進(jìn)制的計(jì)數(shù)器構(gòu)成的,具有清0、置數(shù)和計(jì)數(shù)功能。其中reset為清0信號(hào),當(dāng)reset為0時(shí),星期計(jì)時(shí)器清0;set 為置數(shù)信號(hào),當(dāng)set為0時(shí),星

15、期計(jì)時(shí)器置數(shù),置mou1的值,clkmou為驅(qū)動(dòng)星期計(jì)時(shí)器工作的時(shí)鐘,與enday相連接;mou為日計(jì)時(shí)器的輸出,enmou為分計(jì)時(shí)器的進(jìn)位信號(hào),作為下一級(jí)的時(shí)鐘輸入信號(hào)。</p><p>  6)計(jì)時(shí)器(year)是由一個(gè)60進(jìn)制的計(jì)數(shù)器構(gòu)成的,具有清0、置數(shù)和計(jì)數(shù)功能。其中reset為清0信號(hào),當(dāng)reset為0時(shí),星期計(jì)時(shí)器清0;set 為置數(shù)信號(hào),當(dāng)set為0時(shí),星期計(jì)時(shí)器置數(shù),置y1的值,clky為驅(qū)動(dòng)星

16、期計(jì)時(shí)器工作的時(shí)鐘,與enmou相連接;year為日計(jì)時(shí)器的輸出。</p><p>  六、相關(guān)VHDL程序</p><p><b>  1、屏幕切換模塊</b></p><p>  運(yùn)用狀態(tài)機(jī)進(jìn)行屏幕切換,分別顯示年月日,以及時(shí)分秒</p><p>  library IEEE;</p><p>

17、;  use IEEE.STD_LOGIC_1164.ALL;</p><p>  use IEEE.STD_LOGIC_ARITH.ALL;</p><p>  use IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  -- Uncomment the following lines to use the declarations t

18、hat are</p><p>  -- provided for instantiating Xilinx primitive components.</p><p>  --library UNISIM;</p><p>  --use UNISIM.VComponents.all;</p><p>  entity mux3 is&l

19、t;/p><p>  Port ( clk,Reset,sel : in std_logic;</p><p>  int1,int2,int3,int4,int5,int6,int7,int8,int9,int10,int11,int12:IN STD_LOGIC_VECTOR(3 DOWNTO 0);-- rst must</p><p>  a1,a2,a3,a4

20、,a5,a6: out std_logic_vector(3 downto 0));</p><p><b>  end mux3;</b></p><p>  architecture Behavioral of mux3 is</p><p>  TYPE states IS (st0, st1, st2, st3, st4, st5, s

21、t6, st7); </p><p>  SIGNAL STX: states ;</p><p><b>  begin</b></p><p>  COM1 : PROCESS(STX,int1,int2,int3,int4,int5,int6,int7,int8,int9,int10,int11,int12) </p&

22、gt;<p>  BEGIN --決定轉(zhuǎn)換狀態(tài)的進(jìn)程</p><p>  CASE STX IS </p><p>  WHEN st0 => a1<=int1;a2<=int2;a3<=int3;a4<=int4;a5<=int5;a6<=int6;</p><p>  WHEN st1

23、=> a1<=int7;a2<=int8;a3<=int9;a4<=int10;a5<=int11;a6<=int12;</p><p>  WHEN st2 => a1<=int7;a2<=int8;a3<=int9;a4<=int10;a5<=int11;a6<=int12;</p><p>  WHE

24、N st3 => a1<=int7;a2<=int8;a3<=int9;a4<=int10;a5<=int11;a6<=int12; </p><p>  WHEN st4 => a1<=int7;a2<=int8;a3<=int9;a4<=int10;a5<=int11;a6<=int12;</p><p&g

25、t;  WHEN st5 => a1<=int1;a2<=int2;a3<=int3;a4<=int4;a5<=int5;a6<=int6;</p><p>  WHEN st6 => a1<=int1;a2<=int2;a3<=int3;a4<=int4;a5<=int5;a6<=int6;</p><p&g

26、t;  WHEN st7 => a1<=int1;a2<=int2;a3<=int3;a4<=int4;a5<=int5;a6<=int6;</p><p>  WHEN OTHERS => NULL; </p><p>  END CASE ;</p><p>  END PROCESS COM1;</p>

27、;<p>  REG: PROCESS (clk,Reset,sel) --主控時(shí)序進(jìn)程</p><p><b>  BEGIN</b></p><p>  IF Reset = '1' THEN STX<= st0; --異步復(fù)位 </p><p&

28、gt;  ELSIF clk='1' AND clk'EVENT THEN </p><p>  if sel='1' then</p><p>  CASE STX IS</p><p>  WHEN st0=>STX<=st1;</p><p>  WHEN st1=>STX<

29、;=st2;</p><p>  WHEN st2=>STX<=st3;</p><p>  WHEN st3=>STX<=st4;</p><p>  WHEN st4=>STX<=st5;</p><p>  WHEN st5=>STX<=st6;</p><p> 

30、 WHEN st6=>STX<=st7;</p><p>  WHEN st7=>STX<=st0;</p><p><b>  END CASE;</b></p><p><b>  END IF;</b></p><p><b>  END if;</b&

31、gt;</p><p>  END PROCESS; </p><p><b>  2、顯示切換程序</b></p><p>  library IEEE;</p><p>  use IEEE.STD_LOGIC_1164.ALL;</p><p>  use IEEE.STD_LOGIC_AR

32、ITH.ALL;</p><p>  use IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  -- Uncomment the following lines to use the declarations that are</p><p>  -- provided for instantiating Xilinx primiti

33、ve components.</p><p>  --library UNISIM;</p><p>  --use UNISIM.VComponents.all;</p><p>  entity mux1 is</p><p>  Port ( clk,ina,inb,sel,Reset : in std_logic;</p>

34、<p>  result : out std_logic);</p><p><b>  end mux1;</b></p><p>  architecture Behavioral of mux1 is</p><p>  TYPE state IS(st0,st1,st2,st3,st4,st5,st6,st7);</

35、p><p>  SIGNAL STX:state;</p><p><b>  begin</b></p><p>  REG1: PROCESS(ina,inb,STX)</p><p><b>  BEGIN</b></p><p>  CASE STX IS</p&g

36、t;<p>  WHEN st0=>result<=ina;</p><p>  WHEN st1=>result<=ina;</p><p>  WHEN st2=>result<=inb;</p><p>  WHEN st3=>result<=inb;</p><p>  W

37、HEN st4=>result<=inb;</p><p>  WHEN st5=>result<=inb;</p><p>  WHEN st6=>result<=inb;</p><p>  WHEN st7=>result<=inb;</p><p><b>  END CASE

38、;</b></p><p>  END PROCESS;</p><p>  REG2:PROCESS(clk,sel,Reset)</p><p><b>  BEGIN</b></p><p>  IF(Reset='1') THEN</p><p><b&g

39、t;  STX<=st0;</b></p><p>  ELSIF(clk'EVENT AND clk='1')THEN</p><p>  if sel='1' then </p><p>  CASE STX IS</p><p>  WHEN st0=>STX<=st

40、1;</p><p>  WHEN st1=>STX<=st2;</p><p>  WHEN st2=>STX<=st3;</p><p>  WHEN st3=>STX<=st4;</p><p>  WHEN st4=>STX<=st5;</p><p>  WHE

41、N st5=>STX<=st6;</p><p>  WHEN st6=>STX<=st7;</p><p>  WHEN st7=>STX<=st0;</p><p><b>  END CASE;</b></p><p><b>  END IF;</b>&l

42、t;/p><p><b>  end if;</b></p><p>  END PROCESS REG2;</p><p>  end Behavioral;</p><p><b>  3、置數(shù)操作模塊</b></p><p>  運(yùn)用狀態(tài)機(jī),進(jìn)行置數(shù)操作</p>

43、<p>  library IEEE;</p><p>  use IEEE.STD_LOGIC_1164.ALL;</p><p>  use IEEE.STD_LOGIC_ARITH.ALL;</p><p>  use IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  -- Uncomment

44、 the following lines to use the declarations that are</p><p>  -- provided for instantiating Xilinx primitive components.</p><p>  --library UNISIM;</p><p>  --use UNISIM.VComponen

45、ts.all;</p><p>  entity mux is</p><p>  Port ( clk,ina,inb,sel,Reset : in std_logic;</p><p>  r1,r2,r3,r4,r5,r6 : out std_logic);</p><p><b>  end mux;</b>&l

46、t;/p><p>  architecture Behavioral of mux is</p><p>  TYPE state IS(st0,st1,st2,st3,st4,st5,st6,st7);</p><p>  SIGNAL STX:state;</p><p><b>  begin</b></p>

47、;<p>  PROCESS(ina,inb,STX)</p><p><b>  BEGIN</b></p><p>  CASE STX IS</p><p>  WHEN st0=>r1<=ina;r2<='0';r3<='0';r4<='0';r

48、5<='0';r6<='0';</p><p>  WHEN st1=>r1<=ina;r2<='0';r3<='0';r4<='0';r5<='0';r6<='0';</p><p>  WHEN st2=>r1<

49、;='0';r2<='0';r3<='0';r4<='0';r5<='0';r6<=inb;</p><p>  WHEN st3=>r1<='0';r2<='0';r3<='0';r4<='0';r5<=

50、inb;r6<='0';</p><p>  WHEN st4=>r1<='0';r2<='0';r3<='0';r4<=inb;r5<='0';r6<='0';</p><p>  WHEN st5=>r1<='0';

51、r2<='0';r3<=inb;r4<='0';r5<='0';r6<='0';</p><p>  WHEN st6=>r1<='0';r2<=inb;r3<='0';r4<='0';r5<='0';r6<=

52、9;0';</p><p>  WHEN st7=>r1<=inb;r2<='0';r3<='0';r4<='0';r5<='0';r6<='0';</p><p><b>  END CASE;</b></p><p&

53、gt;  END PROCESS;</p><p>  PROCESS(clk,sel,Reset)</p><p><b>  BEGIN</b></p><p>  IF(Reset='1') THEN</p><p><b>  STX<=st0;</b></p&g

54、t;<p>  ELSIF(clk'EVENT AND clk='1')THEN</p><p>  if sel='1' then</p><p>  CASE STX IS</p><p>  WHEN st0=>STX<=st1;</p><p>  WHEN st1=&

55、gt;STX<=st2;</p><p>  WHEN st2=>STX<=st3;</p><p>  WHEN st3=>STX<=st4;</p><p>  WHEN st4=>STX<=st5;</p><p>  WHEN st5=>STX<=st6;</p>&

56、lt;p>  WHEN st6=>STX<=st7;</p><p>  WHEN st7=>STX<=st0;</p><p><b>  END CASE;</b></p><p><b>  END IF;</b></p><p><b>  end i

57、f;</b></p><p>  END PROCESS;</p><p>  end Behavioral;</p><p>  end Behavioral;</p><p><b>  4、秒顯示模塊</b></p><p>  library IEEE;</p>

58、<p>  use IEEE.STD_LOGIC_1164.ALL;</p><p>  use IEEE.STD_LOGIC_ARITH.ALL;</p><p>  use IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  -- Uncomment the following lines to use the declar

59、ations that are</p><p>  -- provided for instantiating Xilinx primitive components.</p><p>  --library UNISIM;</p><p>  --use UNISIM.VComponents.all;</p><p>  entity s

60、ecute1 is</p><p>  Port ( clkm,set,reset : in std_logic;</p><p>  sec2,sec1 : inout std_logic_vector(3 downto 0);</p><p>  ensec : out std_logic);</p><p>  end secute1;

61、</p><p>  architecture Behavioral of secute1 is</p><p><b>  begin</b></p><p>  Process(clkm,reset,set)</p><p><b>  Begin</b></p><p>

62、;  If reset='1' then sec2<="0000";sec1<="0000"; </p><p>  Elsif set='1' then sec2<="0101";sec1<="1000"; </p&g

63、t;<p>  Elsif (clkm'event and clkm='1') then</p><p>  if sec2="0101" AND sec1="1001" then sec2<="0000";sec1<="0000";ensec<='1';

64、 </p><p>  elsif sec1="1001" then sec2<=sec2+'1';sec1<="0000";ensec<='0';</p><p>  else sec1<=sec1+'1';ensec<='0';

65、 </p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  End process;</p><p>  end Behavioral;</p><p><b> 

66、 5、分顯示模塊</b></p><p>  library IEEE;</p><p>  use IEEE.STD_LOGIC_1164.ALL;</p><p>  use IEEE.STD_LOGIC_ARITH.ALL;</p><p>  use IEEE.STD_LOGIC_UNSIGNED.ALL;</p&g

67、t;<p>  -- Uncomment the following lines to use the declarations that are</p><p>  -- provided for instantiating Xilinx primitive components.</p><p>  --library UNISIM;</p><p

68、>  --use UNISIM.VComponents.all;</p><p>  entity minute1 is</p><p>  Port ( clkm,set,reset : in std_logic;</p><p>  min2,min1 : inout std_logic_vector(3 downto 0);</p><

69、;p>  enmin : out std_logic);</p><p>  end minute1;</p><p>  architecture Behavioral of minute1 is</p><p><b>  begin</b></p><p>  Process(clkm,reset,set)&

70、lt;/p><p><b>  Begin</b></p><p>  If reset='1' then min2<="0000";min1<="0000"; </p><p>  Elsif set='1' then min2<=&quo

71、t;0101";min1<="1000"; </p><p>  Elsif (clkm'event and clkm='1') then</p><p>  if min2="0101" AND min1="1001" then min2<=&qu

72、ot;0000";min1<="0000";enmin<='1'; </p><p>  elsif min1="1001" then min2<=min2+'1';min1<="0000";enmin<='0';</p><p>

73、  else min1<=min1+'1';enmin<='0'; </p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  End process;<

74、;/p><p>  end Behavioral;</p><p><b>  6、小時(shí)顯示模塊</b></p><p>  library IEEE;</p><p>  use IEEE.STD_LOGIC_1164.ALL;</p><p>  use IEEE.STD_LOGIC_ARITH.

75、ALL;</p><p>  use IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  -- Uncomment the following lines to use the declarations that are</p><p>  -- provided for instantiating Xilinx primitive c

76、omponents.</p><p>  --library UNISIM;</p><p>  --use UNISIM.VComponents.all;</p><p>  entity hour1 is</p><p>  Port ( clkh,set,reset: in std_logic;</p><p>

77、  hor2,hor1 : inout std_logic_vector(3 downto 0);</p><p>  enhour : out std_logic);</p><p>  end hour1;</p><p>  architecture Behavioral of hour1 is</p><p><b>  b

78、egin</b></p><p>  Process(clkh,reset,set)</p><p><b>  Begin</b></p><p>  If reset='1' then hor2<="0000";hor1<="0000";

79、</p><p>  Elsif set='1' then hor2<="0010";hor1<="0011"; </p><p>  Elsif (clkh'event and clkh='1') then</p><p>  if hor

80、2="0010" AND hor1="0011" then hor2<="0000";hor1<="0000";enhour<='1'; </p><p>  elsif hor1="1001" then hor2<=hor2+'1';ho

81、r1<="0000";enhour<='0';</p><p>  else hor1<=hor1+'1';enhour<='0'; </p><p><b>  end if;</b></p><p><b>

82、;  end if;</b></p><p>  End process;</p><p>  end Behavioral;</p><p>  7、日顯示模塊(已加入閏年判斷功能)</p><p>  library IEEE;</p><p>  use IEEE.STD_LOGIC_1164.ALL

83、;</p><p>  use IEEE.STD_LOGIC_ARITH.ALL;</p><p>  use IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  -- Uncomment the following lines to use the declarations that are</p><p>  

84、-- provided for instantiating Xilinx primitive components.</p><p>  --library UNISIM;</p><p>  --use UNISIM.VComponents.all;</p><p>  entity date1 is</p><p>  Port ( c

85、lkd,set : in std_logic;</p><p>  dat2,dat1 : inout std_logic_vector(3 downto 0);</p><p>  endate : out std_logic);</p><p>  end date1;</p><p>  architecture Behavioral

86、of date1 is</p><p><b>  begin</b></p><p>  Process(clkd,set)</p><p>  Begin </p><p>  if set='1' then dat2<="0010";dat1<=&quo

87、t;1000"; </p><p>  Elsif (clkd'event and clkd='1')then</p><p>  if dat2="0011" AND dat1="0000" then dat2<="0000";dat1<="0

88、001";endate<='1';</p><p>  elsif dat1="1001" then dat2<=dat2+'1';dat1<="0000";endate<='0';</p><p>  else dat1<=dat1+'1'; e

89、ndate<='0'; </p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  End process;</p><p>  end Behav

90、ioral;</p><p><b>  8、月顯示模塊</b></p><p>  library IEEE;</p><p>  use IEEE.STD_LOGIC_1164.ALL;</p><p>  use IEEE.STD_LOGIC_ARITH.ALL;</p><p>  use

91、 IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  -- Uncomment the following lines to use the declarations that are</p><p>  -- provided for instantiating Xilinx primitive components.</p><p>

92、;  --library UNISIM;</p><p>  --use UNISIM.VComponents.all;</p><p>  entity month1 is</p><p>  Port ( clkn,set: in std_logic;</p><p>  mon2,mon1 : inout std_logic_vecto

93、r(3 downto 0);</p><p>  enmon : out std_logic);</p><p>  end month1;</p><p>  architecture Behavioral of month1 is</p><p><b>  begin</b></p><p>

94、;  Process(clkn,set)</p><p>  Begin </p><p>  if set='1' then mon2<="0000";mon1<="0110"; </p><p>  Elsif (clkn'event and

95、clkn='1') then</p><p>  if mon2="0001" AND mon1="0010" then mon2<="0000";mon1<="0001";enmon<='1'; </p><p>  elsif mon1=&qu

96、ot;1001" then mon2<=mon2+'1';mon1<="0000";enmon<='0';</p><p>  else mon1<=mon1+'1'; enmon<='0'; </p><p

97、><b>  end if;</b></p><p><b>  end if;</b></p><p>  End process;</p><p><b>  9、年顯示模塊</b></p><p>  library IEEE;</p><p&g

98、t;  use IEEE.STD_LOGIC_1164.ALL;</p><p>  use IEEE.STD_LOGIC_ARITH.ALL;</p><p>  use IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  -- Uncomment the following lines to use the declarations

99、that are</p><p>  -- provided for instantiating Xilinx primitive components.</p><p>  --library UNISIM;</p><p>  --use UNISIM.VComponents.all;</p><p>  entity yearth1

100、is</p><p>  Port ( clkn,set: in std_logic;</p><p>  year2,year1 : inout std_logic_vector(3 downto 0);</p><p>  enyear : out std_logic);</p><p>  end yearth1;</p>

101、<p>  architecture Behavioral of yearth1 is</p><p><b>  begin</b></p><p>  Process(clkn,set)</p><p>  Begin </p><p>  if set='1' then y

102、ear2<="0001";year1<="0001"; </p><p>  Elsif (clkn'event and clkn='1') then</p><p>  if year2="1001" AND year1="1001" then

103、 year2<="0000";year1<="0001"; </p><p>  elsif year1="1001" then year2<=year2+'1';year1<="0000";enyear<='0';</p><p>  

104、else year1<=year1+'1'; enyear<='0'; </p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end Behav

105、ioral;</p><p><b>  七、實(shí)驗(yàn)心得</b></p><p>  感謝老師對(duì)我的教育培養(yǎng),你平時(shí)對(duì)我的細(xì)心指導(dǎo),課程設(shè)計(jì)的過(guò)程是對(duì)所學(xué)的電子技術(shù)基本理論知識(shí)的綜合運(yùn)用,對(duì)三年專業(yè)知識(shí)的一次綜合應(yīng)用、擴(kuò)充和深化,也是對(duì)我們理論運(yùn)用于實(shí)際設(shè)計(jì)的一次鍛煉。通過(guò)課程設(shè)計(jì),我不僅溫習(xí)了以前在課堂上學(xué)習(xí)的專業(yè)知識(shí),同時(shí)我也得到了老師和同學(xué)的幫助,學(xué)習(xí)和體會(huì)到了電

106、子技術(shù)的基本技能和思想。 在這段時(shí)間里,我學(xué)到了很多知識(shí)也有很多感受。當(dāng)然在做的過(guò)程中也遇到過(guò)很多的麻煩,一些沒(méi)有接觸過(guò)的元件,它們的封裝需要自己去書籍、網(wǎng)上搜索,在更新的時(shí)候會(huì)有一些錯(cuò)誤,自己很難改正,只得求助老師,最后得以解決。和老師的溝通交流更使我對(duì)設(shè)計(jì)有了新的認(rèn)識(shí)也對(duì)自己提出了新的要求,這對(duì)我能力的提高大有好處。這個(gè)課題設(shè)計(jì)的過(guò)程讓我學(xué)習(xí)、工作的思路有了更為明朗的認(rèn)識(shí):它是站在一定高度上去工作的,眼界要放寬,思路要開(kāi)闊,內(nèi)容

107、要飽滿。</p><p>  非常感謝學(xué)院能給我們提供這樣的一個(gè)可以自己動(dòng)腦、動(dòng)手進(jìn)行設(shè)計(jì)的機(jī)會(huì),同時(shí)也大大加強(qiáng)了同學(xué)之間的溝通,以及學(xué)生與老師之間的交流,這是一個(gè)放飛自我的平臺(tái),也是我們理想與實(shí)際結(jié)合的升華,我想學(xué)院給我們提供的這些,教會(huì)我們的這些不僅僅在現(xiàn)在有用,對(duì)于我們今后步入社會(huì)也是同樣有用的。我在工作中不怕失敗,在失敗中總結(jié)經(jīng)驗(yàn),為成功積累素材;學(xué)著自我超越,敢于嘗試,在嘗試中進(jìn)步,這對(duì)我能力的提高大有

溫馨提示

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

評(píng)論

0/150

提交評(píng)論