《電子實(shí)習(xí)2》基于FPGA多功能數(shù)字鐘設(shè)計(jì)_第1頁
《電子實(shí)習(xí)2》基于FPGA多功能數(shù)字鐘設(shè)計(jì)_第2頁
《電子實(shí)習(xí)2》基于FPGA多功能數(shù)字鐘設(shè)計(jì)_第3頁
《電子實(shí)習(xí)2》基于FPGA多功能數(shù)字鐘設(shè)計(jì)_第4頁
《電子實(shí)習(xí)2》基于FPGA多功能數(shù)字鐘設(shè)計(jì)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、江蘇科技大學(xué)南徐學(xué)院 jiangsu university of science and technology nanxu college電子實(shí)習(xí)2基于fpga多功能數(shù)字鐘設(shè)計(jì)姓 名:學(xué) 號:.班 級:.指導(dǎo)教師:提交日期:2012 年 3 月摘 要本文介紹了利用eda技術(shù)自頂向下的設(shè)計(jì)方法,提出了一個(gè)多功能數(shù)字鐘的設(shè)計(jì)方案,采用verloghdl語言設(shè)計(jì)了數(shù)字鐘系統(tǒng)的各個(gè)模塊,在quartusii開發(fā)平臺(tái)下進(jìn)行了編譯、仿真、下載,實(shí)現(xiàn)了基本計(jì)時(shí)顯示和設(shè)置、調(diào)整時(shí)間、鬧鐘和秒表功能。vhdl是very high speed integrated circuit hardware descrip

2、tion language的縮寫,意思是超高速集成電路硬件描述語言。對于復(fù)雜的數(shù)字系統(tǒng)的設(shè)計(jì),它有獨(dú)特的作用。它的硬件描述能力強(qiáng),能輕易的描述出硬件的結(jié)構(gòu)和功能。這種語言的應(yīng)用至少意味著兩種重大的改變:電路的設(shè)計(jì)竟然可以通過文字描述的方式完成;電子電路可以當(dāng)作文件一樣來存儲(chǔ)。隨著現(xiàn)代技術(shù)的發(fā)展,這種語言的效益與作用日益明顯,每年均能夠以超過30%的速度快速成長。本文介紹一種基于fpga的數(shù)字時(shí)鐘設(shè)計(jì)方法,簡要介紹了vhdl語言的一些基本語法和概念后,進(jìn)一步應(yīng)用vhdl,在max+plusii 的環(huán)境下設(shè)計(jì)一個(gè)電子鐘,最后通過仿真出時(shí)序圖實(shí)現(xiàn)預(yù)定功能。電子鐘的時(shí)間顯示用到了七段數(shù)碼管(或稱七段顯

3、示器)的電路設(shè)計(jì),內(nèi)部的時(shí)間控制輸出則用到了各種設(shè)計(jì),包括:時(shí)鐘分頻模塊、計(jì)時(shí)模塊、按鍵模塊和顯示模塊四個(gè)部分。目 錄1 引言12 總體方案設(shè)計(jì) x2.1 項(xiàng)目設(shè)計(jì)要點(diǎn)2.2 方案論述2.3 軟件介紹2.4 芯片介紹3 單元電路設(shè)計(jì)3.1 分頻模塊設(shè)計(jì)3.2 計(jì)時(shí)功能模塊設(shè)計(jì)3.3 計(jì)數(shù)模塊3.4 譯碼顯示模塊3.5 整點(diǎn)報(bào)時(shí)模塊4 系統(tǒng)功能及功能仿真4.1 系統(tǒng)功能4.2功能仿真各個(gè)模塊的仿真波形5 心得體會(huì)6 參考文獻(xiàn)附錄:完整實(shí)驗(yàn)程序引言vhdl語言是一種標(biāo)準(zhǔn)化的硬件描述語言。設(shè)計(jì)者可以通過它編寫代碼,然后用模擬器驗(yàn)證其功能,再將設(shè)計(jì)代碼綜合成門級電路,最后下載到可編程邏輯器件(cpld

4、,fpga)中來實(shí)現(xiàn)一個(gè)設(shè)計(jì)。由于vhdl語言具有支持大規(guī)模設(shè)計(jì)和再利用已有設(shè)計(jì)等優(yōu)點(diǎn)1,因此使用vhdl語言來設(shè)計(jì)數(shù)字鐘。本設(shè)計(jì)采用的vhdl是一種全方位的硬件描述語言,具有極強(qiáng)的描述能力,能支持系統(tǒng)行為級、寄存器傳輸級和邏輯門級這三個(gè)不同層次的設(shè)計(jì);支持結(jié)構(gòu)、數(shù)據(jù)流、行為三種描述形式的混合描述,覆蓋面廣,抽象能力強(qiáng),因此在實(shí)際應(yīng)用中越來越廣泛。asic是專用的系統(tǒng)集成電路,是一種帶有邏輯處理的加速處理器;而fpga是特殊的asic芯片,與其它的asic芯片相比,它具有設(shè)計(jì)開發(fā)周期短、設(shè)計(jì)制造成本低、開發(fā)工具先進(jìn)、標(biāo)準(zhǔn)產(chǎn)品無需測試、質(zhì)量穩(wěn)定以及可實(shí)時(shí)在線檢測等優(yōu)點(diǎn)。在控制系統(tǒng)中,鍵盤是常用的

5、輸入設(shè)備,系統(tǒng)應(yīng)當(dāng)根據(jù)鍵盤的輸入來完成相應(yīng)的功能。因此,按鍵信息輸入是與軟件結(jié)構(gòu)密切相關(guān)的過程。根據(jù)鍵盤結(jié)構(gòu)的不同,采用不同的編碼方法,但無論有無編碼以及采用什么樣的編碼,最后都要轉(zhuǎn)換成為相應(yīng)的鍵值,以實(shí)現(xiàn)按鍵功能程序的轉(zhuǎn)移。1鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。諸如定時(shí)自動(dòng)報(bào)警、定時(shí)啟閉電路、定時(shí)開關(guān)烘箱、通斷動(dòng)力設(shè)備,甚至各種定時(shí)電氣的自動(dòng)啟用等,所有這些都是以鐘表數(shù)字化為基礎(chǔ)的。因此研究數(shù)字鐘以及擴(kuò)大其應(yīng)用有著非?,F(xiàn)實(shí)的意義。2.總體方案設(shè)計(jì)2.1項(xiàng)目設(shè)計(jì)要點(diǎn) (1)以數(shù)字形式顯示時(shí)、分、秒; (2)小時(shí)記數(shù)為24小時(shí)進(jìn)制 (3)分秒進(jìn)制為60

6、進(jìn)制 (4)擴(kuò)展功能:定時(shí)鬧鐘、整點(diǎn)報(bào)時(shí)2.2 方案論述 系統(tǒng)組成框圖,如下圖所示: 主體電路電路的兩種工作狀態(tài)如下圖所示:1.為正常時(shí)鐘模塊2.設(shè)置時(shí)間模塊控制按鍵用來選擇是正常計(jì)數(shù)還是調(diào)整時(shí)間并決定調(diào)整時(shí)、分、秒; 置數(shù)按鍵按下時(shí),表示相應(yīng)的調(diào)整塊要加一;基準(zhǔn)時(shí)鐘是1hz;計(jì)數(shù)器是對1hz的頻率計(jì)數(shù);動(dòng)態(tài)顯示模塊是對計(jì)數(shù)器的計(jì)數(shù)進(jìn)行譯碼,送到數(shù)碼管進(jìn)行顯示 。2.3 軟件介紹本設(shè)計(jì)采用quartus ii軟件編寫所需程序。quartus ii 是altera公司的綜合性pld開發(fā)軟件,支持原理圖、vhdl、veriloghdl以及ahdl(altera hardware descripti

7、on language)等多種設(shè)計(jì)輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整pld設(shè)計(jì)流程。 quartus ii可以在xp、linux以及unix上使用,除了可以使用tcl腳本完成設(shè)計(jì)流程外,提供了完善的用戶圖形界面設(shè)計(jì)方式。具有運(yùn)行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點(diǎn)。 quartus ii支持altera的ip核,包含了lpm/megafunction宏功能模塊庫,使用戶可以充分利用成熟的模塊,簡化了設(shè)計(jì)的復(fù)雜性、加快了設(shè)計(jì)速度。對第三方eda工具的良好支持也使用戶可以在設(shè)計(jì)流程的各個(gè)階段使用熟悉的第三方eda工具。 此外,quartus ii 通過和

8、dsp builder工具與matlab/simulink相結(jié)合,可以方便地實(shí)現(xiàn)各種dsp應(yīng)用系統(tǒng);支持altera的片上可編程系統(tǒng)(sopc)開發(fā),集系統(tǒng)級設(shè)計(jì)、嵌入式軟件開發(fā)、可編程邏輯設(shè)計(jì)于一體,是一種綜合性的開發(fā)平臺(tái)。 maxplus ii 作為altera的上一代pld設(shè)計(jì)軟件,由于其出色的易用性而得到了廣泛的應(yīng)用。目前altera已經(jīng)停止了對maxplus ii 的更新支持,quartus ii 與之相比不僅僅是支持器件類型的豐富和圖形界面的改變。altera在quartus ii 中包含了許多諸如signaltap ii、chip editor和rtl viewer的設(shè)計(jì)輔助工具

9、,集成了sopc和hardcopy設(shè)計(jì)流程,并且繼承了maxplus ii 友好的圖形界面及簡便的使用方法。 altera quartus ii 作為一種可編程邏輯的設(shè)計(jì)環(huán)境, 由于其強(qiáng)大的設(shè)計(jì)能力和直觀易用的接口,越來越受到數(shù)字系統(tǒng)設(shè)計(jì)者的歡迎。altera的quartus ii可編程邏輯軟件屬于第四代pld開發(fā)平臺(tái)。該平臺(tái)支持一個(gè)工作組環(huán)境下的設(shè)計(jì)要求,其中包括支持基于internet的協(xié)作設(shè)計(jì)。quartus平臺(tái)與cadence、exemplarlogic、 mentor graphics、synopsis和simplicity等eda供應(yīng)商的開發(fā)工具相兼容。改進(jìn)了軟件的logicloc

10、k模塊設(shè)計(jì)功能,增添 了fastfit編譯選項(xiàng),推進(jìn)了網(wǎng)絡(luò)編輯性能,而且提升了調(diào)試能力。支持max7000/max3000等乘積項(xiàng)器件2.4 芯片介紹fpga是現(xiàn)場可編程門陣列(field programmable gate array)的簡稱,與之相應(yīng)的cpld是復(fù)雜可編程邏輯器件(complex programmable logic device)的簡稱,兩者的功能基本相同,只是實(shí)現(xiàn)原理略有不同,有時(shí)可以忽略這兩者的區(qū)別,統(tǒng)稱為可編程邏輯器件或cpld/pgfa。cpld/pgfa幾乎能完成任何數(shù)字器件的功能,上至高性能cpu,下至簡單的74電路。它如同一張白紙或是一堆積木,工程師可以通過

11、傳統(tǒng)的原理圖輸入或硬件描述語言自由的設(shè)計(jì)一個(gè)數(shù)字系統(tǒng)。通過軟件仿真可以事先驗(yàn)證設(shè)計(jì)的正確性,在pcb完成以后,利用cpld/fpga的在線修改功能,隨時(shí)修改設(shè)計(jì)而不必改動(dòng)硬件電路。使用cpld/fpga開發(fā)數(shù)字電路,可以大大縮短設(shè)計(jì)時(shí)間,減少pcb面積,提高系統(tǒng)的可靠性。這些優(yōu)點(diǎn)使得cpld/fpga技術(shù)在20世紀(jì)90年代以后得到飛速的發(fā)展,同時(shí)也大大推動(dòng)了eda軟件和硬件描述語言hdl的進(jìn)步。3fpga具有掩膜可編程門陣列的通用結(jié)構(gòu),它由邏輯功能塊排成陣列,并由可編程的互連資源連接這些邏輯功能塊來實(shí)現(xiàn)不同的設(shè)計(jì)。fpga一般由3種可編程電路和一個(gè)用于存放編程數(shù)據(jù)的靜態(tài)存儲(chǔ)器sram組成。這3

12、種可編程電路是:可編程邏輯模塊(clb-configurable logic block)、輸入/輸出模塊(iob-i/o block)和互連資源(irinterconnect resource)??删幊踢壿嬆Kclb是實(shí)現(xiàn)邏輯功能的基本單元,它們通常規(guī)則的排列成一個(gè)陣列,散布于整個(gè)芯片;可編程輸入/輸出模塊(iob)主要完成芯片上的邏輯與外部封裝腳的接口,它通常排列在芯片的四周;可編程互連資源包括各種長度的連接線段和一些可編程連接開關(guān),它們將各個(gè)clb之間或clb、iob之間以及iob之間連接起來,構(gòu)成特定功能的電路。3 單元電路設(shè)計(jì)3.1 分頻模塊設(shè)計(jì)系統(tǒng)需要1hz的頻率來驅(qū)動(dòng)計(jì)時(shí)器,而實(shí)

13、驗(yàn)箱上可提供多種不同的頻率,如系統(tǒng)時(shí)鐘20mhz和sw7提供的可選擇頻率,請根據(jù)需要自行選擇頻率,并進(jìn)行分頻,形成1hz頻率。實(shí)驗(yàn)程序分頻模塊process(clk) variable cnt: integer range 0 to 12000000; begin if(clkevent and clk=1) then if(cnt=12000000) then cnt:=0; clkin1=not clkin1; else cnt:=cnt+1; end if; end if; end process;process(clk) variable cnt: integer range 0 to

14、 12000; begin if(clkevent and clk=1) then if(cnt=12000) then cnt:=0; clkin2=not clkin2; else cnt:=cnt+1; end if; end if; end process;3.2 計(jì)時(shí)功能模塊設(shè)計(jì)計(jì)時(shí)模塊需對時(shí)、分、秒進(jìn)行計(jì)數(shù),其中小時(shí)位為24進(jìn)制,分鐘和秒鐘位為60進(jìn)制??梢杂靡欢纬绦?qū)r(shí)、分、秒進(jìn)行連續(xù)計(jì)數(shù),也可以對時(shí)、分、秒的高位和低位分別計(jì)數(shù)。注意,如果采用連續(xù)計(jì)數(shù)方式,因?yàn)槊课伙@示時(shí)有高位和低位之分,所以需將十進(jìn)制數(shù)據(jù)用bcd碼進(jìn)行轉(zhuǎn)換后,才能輸出到七段數(shù)碼管上顯示。實(shí)驗(yàn)程序process(

15、clk) variable cnt: integer range 0 to 6000000; begin if(clkevent and clk=1) then if(jiezou=0) then if(cnt=3000000) then cnt:=0; clk1=not clk1; else cnt:=cnt+1; end if; else if(cnt=6000000) then cnt:=0; clk1=not clk1; else cnt:=cnt+1; end if; end if; end if; end process; process(clk1,kaiguan) begin i

16、f(clk1event and clk1=1) then if(kaiguan=1) then temp=0; end if; if(kaiguan=0) then if(temp=25) then temp=0; else templiushuiliushuiliushuiliushuiliushuiliushuiliushuiliushuiliushuiliushuiliushuiliushuiliushuiliushuiliushuiliushuiliushuiliushuiliushuiliushuiliushuiliushuiliushuiliushuiliushuiliushui=

17、00000000; end case; end process; process(clkin1,mode,tiaofen,tiaoshi) begin if(clkin1event and clkin1=1) then co1=0;co2=0; if(mode=1) then if(sec0=1001) then sec0=0000; if(sec1=0101) then sec1=0000; else sec1=sec1+1; end if; else sec0=sec0+1; end if; if(sec1=0101 and sec0=1000) then co1=1; else co1=

18、0; end if; if(co1=1) then if(min0=1001) then min0=0000; if(min1=0101) then min1=0000; else min1=min1+1; end if; else min0=min0+1; end if; end if; if(min1=0101 and min0=1001) then co2=1; else co2=0; end if; if(co1=1 and co2=1) then if(hour0=1001) then hour0=0000; if(hour1=0010) then hour1=0000; else

19、hour1=hour1+1; end if; else hour0=hour0+1; end if; if(hour1=0010 and hour0=0011) then hour1=0000; hour0=0000; end if; end if; elsif(mode=0 and tiaofen=0) then if(min0=1001) then min0=0000; if(min1=0101) then min1=0000; else min1=min1+1; end if; else min0=min0+1; end if; elsif(mode=0 and tiaoshi=0) t

20、hen if(hour0=1001) then hour0=0000; if(hour1=0010) then hour1=0000; else hour1=hour1+1; end if; else hour0=hour0+1; end if; if(hour1=0010 and hour0=0011) then hour1=0000; hour0=0000; end if; end if; end if; end process; process(clkin2,sel) begin if(clkin2event and clkin2=1) then if(sel=111) then sel

21、=000; else sel=sel+1; end if; end if;3.3 計(jì)數(shù)模塊1.秒計(jì)數(shù)模塊該模塊框圖如圖4.9所示。模塊主要完成秒向分的進(jìn)位,產(chǎn)生脈沖信號。圖3.9 秒模塊邏輯框圖核心程序如下:entity second isport(clk_1s : in std_logic;os : out std_logic);end second;architecture sec_architecture of second isbegink1:process(clk_1s)variable count:integer range 0 to 100:=0;beginif rising_e

22、dge(clk_1s) thenif count=59 thenos=1;count:=0;elseos=0;count:=count+1;end if;end if;end process k1;3.4 譯碼顯示模塊該模塊完成對計(jì)數(shù)器編碼信息的譯碼工作,驅(qū)動(dòng)數(shù)碼管則顯示相應(yīng)的數(shù)字。模塊組件如4.14所示。圖3.14譯碼顯示模塊組件核心程序如下:entity drive is port (clk:in std_logic;addr : in std_logic_vector(3 downto 0); led : out std_logic_vector(7 downto 0); end dri

23、ve; architecture behave of drive is signal sel:std_logic_vector(3 downto 0); begin process(clk)begin selledledledledledledledledledledled=10111111; end case; end process; end behave;3.5 整點(diǎn)報(bào)時(shí)模塊該模塊能夠完成整點(diǎn)時(shí)的報(bào)時(shí)功能。即將至整點(diǎn)時(shí),前四秒低音,最后一秒高音。該模塊在十二點(diǎn)三十分的時(shí)候,蜂鳴器響起音樂,持續(xù)一分鐘。模塊組件如圖4.17所示。圖3.17 整點(diǎn)報(bào)時(shí)模塊組件1.整點(diǎn)報(bào)時(shí)核心程序如下:if r

24、ising_edge(clk05s) thenif cnt=119 thencnt:=0;elsecnt:=cnt+1;end if;if mh=0101 and ml=1001 and(cnt=117 or cnt=115 or cnt=113 or cnt=111) then c=0;else c=1;end if;if mh=0000 and ml=0000 and (cnt=119 or cnt=0 or cnt=1)then d=0;else d=1;end if;end if;end process;a=clk1k and not(d);b=clk05s and not(c);sp

25、eaker=a or b;4 系統(tǒng)功能及仿真計(jì)數(shù)功能 該模塊的仿真波形如圖4.10所示。圖3.10 秒計(jì)數(shù)模塊波形仿真譯碼功能該模塊的仿真波形如圖3.15所示。圖3.15 譯碼顯示波形仿真5.小結(jié)與體會(huì)通過本次的數(shù)字鐘設(shè)計(jì)過程中,讓我更進(jìn)一步地熟悉有關(guān)數(shù)字電路的知識(shí)和具體應(yīng)用。學(xué)會(huì)了利用quarterii軟件進(jìn)行原理圖的繪制,硬件描述語言vhdl的編寫,程序的仿真等工作。并能根據(jù)仿真結(jié)果分析設(shè)計(jì)的存在的問題和缺陷,從而進(jìn)行程序的調(diào)試和完善。參考文獻(xiàn):1eda技術(shù)與vhdl。2 王紫婷,吳蓉 ,張彩珍,eda技術(shù)與應(yīng)用,蘭州大學(xué)出版社,20033 潘松,黃繼業(yè),eda技術(shù)實(shí)用教程,北京科學(xué)出版社

26、,20064 王開軍,姜宇柏,面向cpld/fpga的vhdl設(shè)計(jì),機(jī)械工業(yè)出版社,20075 畢滿清,電子技術(shù)實(shí)驗(yàn)與課程設(shè)計(jì),機(jī)械工業(yè)出版社,20056 呂思忠,數(shù)子電路實(shí)驗(yàn)與課程設(shè)計(jì),哈爾濱工業(yè)大學(xué)出版社,20017 謝自美,電子線路設(shè)計(jì)、實(shí)驗(yàn)、測試,華中理工大學(xué)出版社,2003附錄:完整實(shí)驗(yàn)程序 1)主程序模塊:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity szz isport(clk:in std_logic; md1:in std_logic; md2:in std_lo

27、gic_vector(1 downto 0); speak:out std_logic; h1,h2,m1,m2,s1,s2:out std_logic_vector(3 downto 0);end szz;architecture one of szz issignal hou1:std_logic_vector(3 downto 0);signal hou2:std_logic_vector(3 downto 0);signal min1:std_logic_vector(3 downto 0);signal min2:std_logic_vector(3 downto 0);signal

28、 seth1:std_logic_vector(3 downto 0);signal seth2:std_logic_vector(3 downto 0);signal setm1:std_logic_vector(3 downto 0);signal setm2:std_logic_vector(3 downto 0);signal sec1:std_logic_vector(3 downto 0);signal sec2:std_logic_vector(3 downto 0);begin-小時(shí)十位h110:process(clk,hou2,min1,min2,sec1,sec2,md1,

29、md2)beginif clkevent and clk=1 thenif (hou1=0010 and hou2=0011)and(min1=0101 and min2=1001) and (sec1=0101 and sec2=1001) thenhou1=0000;elsif hou1=0010and hou2=0011and md1=0 and md2=01 then-當(dāng)時(shí)間為23點(diǎn)且處于校時(shí)狀態(tài)時(shí)hou1=0000;elsif (hou2=1001and(min1=0101 and min2=1001) and (sec1=0101 and sec2=1001)or (hou2=10

30、01and md1=0 and md2=01) thenhou1=hou1+1;end if;end if;end process h110;-小時(shí)個(gè)位h220:process(clk,min1,min2,sec1,sec2,md1,md2,hou1)beginif clkevent and clk=1 thenif (hou1=0010 and hou2=0011)and(min1=0101 and min2=1001) and (sec1=0101 and sec2=1001) thenhou2=0000;elsif hou2=1001and(min1=0101 and min2=1001

31、) and (sec1=0101 and sec2=1001) thenhou2=0000;elsif (hou2=1001and md1=0 and md2=01)or (hou1=0010and hou2=0011) thenhou2=0000;-md=1;elsif (min1=0101 and min2=1001) and (sec1=0101 and sec2=1001)or (md1=0 and md2=01) thenhou2=hou2+1;-speak=clk;end if;end if;end process h220;-分鐘十位m110:process(clk,min2,s

32、ec1,sec2,md1,md2)beginif clkevent and clk=1 thenif (min1=0101 and min2=1001) and (sec1=0101 and sec2=1001) then min1=0000;elsif min1=0101and min2=1001and (md1=0 and md2=00)thenmin1=0000;elsif (min2=1001and (sec1=0101 and sec2=1001) or (min2=1001and md1=0 and md2=00)thenmin1=min1+1;end if;end if;-end

33、 if;end process m110;-分鐘個(gè)位m220:process(clk,sec1,sec2,md1,md2)beginif clkevent and clk=1 thenif min2=1001and (sec1=0101 and sec2=1001)thenmin2=0000;elsif min2=1001and (md1=0 and md2=00)thenmin2=0000;else if (sec1=0101 and sec2=1001) or(md1=0 and md2=00)thenmin2=min2+1;end if;end if;end if;end process

34、 m220;-秒十位s110:process(clk)beginif clkevent and clk=1 thenif (sec1=0101 and sec2=1001)thensec1=0000;else if sec2=1001thensec1=sec1+1;end if;end if;end if;end process s110;-秒個(gè)位s220:process(clk)beginif clkevent and clk=1 thenif sec2=1001 thensec2=0000;else sec2=sec2+1;end if;end if;end process s220;-時(shí)

35、間設(shè)置小時(shí)部分sethour1:process(clk,seth2)beginif clkevent and clk=1 thenif seth1=0010and seth2=0011 thenseth1=0000;elsif seth2=1001 thenseth1=seth1+1;end if;end if;end process sethour1;-sethour2:process(clk,md1,md2,seth1)beginif clkevent and clk=1 thenif (seth1=0010and seth2=0011)or seth2=1001thenseth2=000

36、0;elsif md1=1 and md2=00 thenseth2=seth2+1;end if;end if;end process sethour2;-時(shí)間設(shè)置分鐘部分setmin1:process(clk,setm2)beginif clkevent and clk=1 thenif setm1=0101and setm2=1001thensetm1=0000;elsif setm2=1001thensetm1=setm1+1;end if;end if;end process setmin1;-setmin2:process(clk,md1,md2)beginif clkevent

37、and clk=1thenif setm2=1001thensetm2=0000;elsif md1=1 and md2=01thensetm2=setm2+1;end if;end if;end process setmin2;-鬧鈴speaker:process(clk,hou1,hou2,min1,min2)beginif clkevent and clk=1thenif seth1=hou1 and seth2=hou2 and setm1=min1 and setm2=min2 thenspeak=clk;else speak=0;end if;end if;end process

38、speaker;-disp:process(md1,hou1,hou2,min1,min2,sec1,sec2,seth1,seth2,setm1,setm2)beginif md1=0 then-計(jì)時(shí)時(shí)間顯示和設(shè)置模式h1=hou1;h2=hou2;m1=min1;m2=min2;s1=sec1;s2=sec2;else -鬧鈴時(shí)間現(xiàn)實(shí)和設(shè)置模式h1=seth1;h2=seth2;m1=setm1;m2=setm2;s1=1111;s2=1111;end if;end process disp;end one;模塊一、library ieee;use ieee.std_logic_1164.

39、all;use ieee.std_logic_unsigned.all;entity notetabs isport(clk:in std_logic;speak:in std_logic;toneindex:out std_logic_vector(3 downto 0);end;architecture one of notetabs iscomponent musicport(address:in std_logic_vector(7 downto 0);clock:in std_logic;q:out std_logic_vector(3 downto 0);end component;signal counter:std_logic_vector(7 downto 0);begincnt8:process(clk,speak)beginif cou

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論