基于FPGA的多功能數(shù)字時(shí)鐘畢業(yè)論文_第1頁(yè)
基于FPGA的多功能數(shù)字時(shí)鐘畢業(yè)論文_第2頁(yè)
基于FPGA的多功能數(shù)字時(shí)鐘畢業(yè)論文_第3頁(yè)
基于FPGA的多功能數(shù)字時(shí)鐘畢業(yè)論文_第4頁(yè)
基于FPGA的多功能數(shù)字時(shí)鐘畢業(yè)論文_第5頁(yè)
已閱讀5頁(yè),還剩49頁(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、 南京航空航天大學(xué)金城學(xué)院畢業(yè)設(shè)計(jì)題 目基于FPGA的多功能數(shù)字時(shí)鐘學(xué)生姓名 學(xué) 號(hào)2009031236系 部自動(dòng)化系專 業(yè)電氣工程與自動(dòng)化班 級(jí)20090312指導(dǎo)教師 二一三年六月南京航空航天大學(xué)金城學(xué)院本科畢業(yè)設(shè)計(jì)(論文)誠(chéng)信承諾書本人鄭重聲明:所呈交的畢業(yè)設(shè)計(jì)(論文)(題目: 基于FPGA的多功能數(shù)字時(shí)鐘 )是本人在導(dǎo)師的指導(dǎo)下獨(dú)立進(jìn)行研究所取得的成果。盡本人所知,除了畢業(yè)設(shè)計(jì)(論文)中特別加以標(biāo)注引用的內(nèi)容外,本畢業(yè)設(shè)計(jì)(論文)不包含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫的成果作品。 作者簽名: 郭建超 2013年 5 月 31 日 (學(xué)號(hào)):2009031236基于FPGA的多功能數(shù)字時(shí)

2、鐘摘 要數(shù)字鐘由于其具有走時(shí)準(zhǔn),顯示直觀,款式新穎,附加功能多等特點(diǎn)而受到人們的廣泛使用。采用FPGA設(shè)計(jì)一個(gè)具有整點(diǎn)報(bào)時(shí),可校時(shí),可顯示萬(wàn)年歷的數(shù)字時(shí)鐘是本課題的主要任務(wù)。由于數(shù)字集成電路的發(fā)展和石英晶體震蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠(yuǎn)遠(yuǎn)超過(guò)老式鐘表,鐘表的數(shù)字化給人們生產(chǎn)、生活帶來(lái)了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。諸如定時(shí)自動(dòng)報(bào)警、定時(shí)啟閉電路、定時(shí)開(kāi)關(guān)烘箱、通斷動(dòng)力設(shè)備,甚至各種定時(shí)電氣的自動(dòng)啟用等,所有這些都是以鐘表數(shù)字化為基礎(chǔ)的。近些年,隨著科技的發(fā)展和社會(huì)的進(jìn)步,人們對(duì)數(shù)字鐘的要求也越來(lái)越高,傳統(tǒng)的時(shí)鐘已不能滿足人們的需求,因此研究數(shù)字鐘以及擴(kuò)大其應(yīng)用有著非常

3、現(xiàn)實(shí)的意義。 本文介紹的基于現(xiàn)場(chǎng)可編程門陣列FPGA實(shí)現(xiàn)數(shù)字多功能數(shù)字時(shí)鐘,采用自上而下的方法對(duì)系統(tǒng)進(jìn)行設(shè)計(jì),以硬件描述語(yǔ)言VHDL為描述語(yǔ)言,利用QuartusII軟件進(jìn)行設(shè)計(jì),并在智能可編程器件開(kāi)發(fā)實(shí)驗(yàn)系統(tǒng)KH-310上實(shí)現(xiàn)數(shù)碼管顯示的時(shí)鐘,及其計(jì)時(shí)、校時(shí)、整點(diǎn)提示和萬(wàn)年歷功能。其中時(shí)鐘的秒鐘、分鐘為60進(jìn)制計(jì)時(shí)方式,小時(shí)可通過(guò)24進(jìn)制的計(jì)時(shí)方式,天可通過(guò)與月傳過(guò)來(lái)的判斷信號(hào)來(lái)判斷大、小平、閏月,可分別用28、29、30、31進(jìn)制計(jì)數(shù)實(shí)現(xiàn),月通過(guò)12進(jìn)制計(jì)數(shù)實(shí)現(xiàn),年通過(guò)100進(jìn)制計(jì)數(shù)實(shí)現(xiàn)。本課題通過(guò)設(shè)置一個(gè)專門的按鍵來(lái)實(shí)現(xiàn)時(shí)間和萬(wàn)年歷的切換顯示。關(guān)鍵詞:VHDL,F(xiàn)PGA,Quartus

4、II,多功能FPGA-based multi-function digital clockAbstractBecause of its quasi-travel time, intuitive display, fashionable, additional functions, digital clocks are widely used by the people. The main task of this project is that FPGA design can be on time alarm, timekeeping, and show calendar in digital

5、 clocks. Due to the development and widely use of digital integrated circuits and quartz crystal oscillators, it makes that the accuracy of the digital clock is far more than the old-fashioned watch. The digitized clocks have brought great convenience for peoples life and work, and also greatly expa

6、nd the original timekeeping function of the watch. Such as regular automatic alarm, timed to open and close the circuit, oven timer switch off the power equipment, and even a variety of timing Electrical automatically enabled, all of these are based on digital clocks. In recent years, with the devel

7、opment of technology and the progress of society, people have the higher demand for the digital clocks. The use of conventional clock can not meet the needs of people, so researching digital clock and expanding its application has a very practical significance.This article describes the field-progra

8、mmable gate array (FPGA), which is based on digital multi-function digital alarm clock, it designs system from the top to the down, treats hardware description language VHDL as the description language, and uses QuartusII software to design, and also uses the smart programmable devices developed exp

9、erimental system KH-310 to achieve the digital display of the clock, its time, school hours, the whole point of prompt and calendar functions. Clock seconds, minutes hands is by 60 hexadecimal timing, hour hand is by 24 hexadecimal timing, days are by 28, 29, 30, or 31 hexadecimal count, month is by

10、 12 hexadecimal count, year-on-year is by 100 hexadecimal count. This article designs a dedicated button to display time and calendar conversion.Key Words:VHDL; Quartus; FPGA; Multi-function目 錄摘 要iAbstractii第一章 引 言11.1 課題研究的概況11.1.1 課題研究的背景和意義11.1.2 課題研究的主要任務(wù)2第二章 硬件描述語(yǔ)言VHDL32.1 VHDL語(yǔ)言簡(jiǎn)介32.1.1 VHDL語(yǔ)言

11、的特點(diǎn)32.2 VHDL語(yǔ)言結(jié)構(gòu)4第三章 FPGA簡(jiǎn)介53.1 FPGA基本結(jié)構(gòu)53.2Altera公司的介紹63.2.1FPGA的應(yīng)用選擇63.2.2 課題研究采用的FPGA介紹7第四章 QuartusII的使用84.1QuartusII5.1簡(jiǎn)介84.2 QuartusII設(shè)計(jì)流程9第五章 基于FPGA的多功能數(shù)字時(shí)鐘115.1 系統(tǒng)設(shè)計(jì)任務(wù)及流程115.2 系統(tǒng)的總體設(shè)計(jì)115.3 系統(tǒng)的各模塊的設(shè)計(jì)125.3.1 分頻模塊125.3.2 計(jì)數(shù)模塊135.3.3 校時(shí)模塊225.3.4 報(bào)時(shí)模塊245.3.5 譯碼顯示模塊255.3.6 顯示轉(zhuǎn)換模塊27第六章 整體系統(tǒng)的實(shí)現(xiàn)306.1

12、系統(tǒng)的頂層原理圖306.2 多功能數(shù)字鬧鐘系統(tǒng)在KH-310實(shí)驗(yàn)系統(tǒng)上的演示32第七章 總結(jié)與展望367.1 總結(jié)367.2 展望36參考文獻(xiàn)37致謝38附錄39源程序39第一章 引 言1.1 課題研究的概況1.1.1 課題研究的背景和意義隨著科學(xué)技術(shù)的進(jìn)步,現(xiàn)在的鬧鐘也不再是過(guò)去的老樣子。在過(guò)去幾百年的時(shí)間里,人類發(fā)明的鬧鐘有的采用公雞的鳴叫聲,有的用教堂和佛寺的鐘聲,而現(xiàn)在市面上出現(xiàn)了各種各樣的鐘,以聲或光的形式提醒。如數(shù)字鬧鐘、字謎鬧鐘、小雞鬧鐘、禮品小鬧鐘、旅行鬧鐘、卡通鬧鐘、機(jī)械鬧鐘、石英鬧鐘、卡通語(yǔ)言鐘、掃描鐘、打鈴鐘、工藝鐘等系列產(chǎn)品。制造者們根據(jù)社會(huì)的需求為人類定制各種各樣的產(chǎn)

13、品。數(shù)字鐘在向美觀化、多功能化、時(shí)尚化的方面發(fā)展,人們對(duì)數(shù)字鐘的要求也越來(lái)越高,傳統(tǒng)的時(shí)鐘已不能滿足人們的要求。數(shù)字鐘是一種利用數(shù)字電路來(lái)顯示秒、分、時(shí)的計(jì)時(shí)裝置,與傳統(tǒng)的機(jī)械鐘相比,它具有走時(shí)準(zhǔn)確、顯示直觀、無(wú)機(jī)械傳動(dòng)裝置等優(yōu)。多功能數(shù)字鐘不管在性能還是在樣式上都發(fā)生了質(zhì)的變化。數(shù)字鐘被廣泛用于個(gè)人家庭,車站,碼頭、辦公室等公共場(chǎng)所,成為人們?nèi)粘I钪械谋匦杵?。由于?shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度運(yùn)用超過(guò)老式鐘表,鐘表的數(shù)字化給人們生產(chǎn)生活帶了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。 諸如定時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定時(shí)廣播、自動(dòng)起閉路

14、燈、定時(shí)開(kāi)關(guān)烘箱、通斷動(dòng)力設(shè)備、甚至各種定時(shí)電氣的自動(dòng)啟用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究數(shù)字鐘及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。數(shù)字鐘可以由各種技術(shù)實(shí)現(xiàn),如用數(shù)字電路、單片機(jī)等技術(shù)實(shí)現(xiàn)。利用可編程邏輯器件具有其他方式?jīng)]有的特點(diǎn),它具有易學(xué)、方便、新穎、有趣、直觀,設(shè)計(jì)與實(shí)驗(yàn)成功率高、理論與實(shí)踐結(jié)合緊密、體積小、量大、I/O口豐富、編程和加密等特點(diǎn),并且它還具有開(kāi)放的界面、豐富的設(shè)計(jì)庫(kù)、模塊化的工具以及LPM定制等優(yōu)良性能,應(yīng)用非常方便。因此,本設(shè)計(jì)采用可編程邏輯器件實(shí)現(xiàn)。本文采用的是基于FPGA的多功能數(shù)字時(shí)鐘系統(tǒng)設(shè)計(jì)。研究了如何以現(xiàn)場(chǎng)可編程門陣列FPGA為載體,運(yùn)用高級(jí)硬

15、件描述語(yǔ)言VHDL進(jìn)行系統(tǒng)功能編程,并通過(guò)QUARTUS II環(huán)境進(jìn)行仿真,驗(yàn)證多功能數(shù)字鐘的功能是否滿足以下基本指標(biāo):具有年、月、日、時(shí)、分、秒計(jì)數(shù)顯示功能;具有整點(diǎn)報(bào)時(shí)功能;可以對(duì)年、月、日、時(shí)、分及秒進(jìn)行單獨(dú)校對(duì),使其校正到標(biāo)準(zhǔn)時(shí)間;并進(jìn)行優(yōu)化完善。FPGA即現(xiàn)場(chǎng)可編程門列陣,它是1985年由美國(guó)Xilinx公司首家推出的一種新型的可編程邏輯器件。FPGA在結(jié)構(gòu)上由邏輯功能塊陣列,并由可編程的內(nèi)部連線連接這些功能塊來(lái)實(shí)現(xiàn)一定的邏輯功能。FPGA的功能由邏輯結(jié)構(gòu)的配置數(shù)據(jù)決定,工作時(shí),這些配置數(shù)據(jù)放在片內(nèi)SRAM或者熔絲圖上。使用SRAM的FPGA器件,在工作前需要從芯片外部加載配置數(shù)據(jù),

16、這些配置數(shù)據(jù)可以放在片外的EPROM或其他儲(chǔ)存體上,人們可以控制加載過(guò)程,在現(xiàn)場(chǎng)修改器件的邏輯功能。FPGA的發(fā)展十分迅速,目前已達(dá)到超過(guò)300萬(wàn)門/片的集成度、3ns內(nèi)部延時(shí)的水平。除Xilinx公司外,Altera和Actel等公司也提供高性能的FPGA芯片。本文使用Altera公司的ACEX1K系列的FPGA,型號(hào)為EP1K30Q-208.1.1.2 課題研究的主要任務(wù)設(shè)計(jì)具有如下功能的數(shù)字鐘:1)該數(shù)字鐘能進(jìn)行正常的時(shí)鐘走時(shí)功能以及日期的計(jì)時(shí)功能。2)在KH-310設(shè)置專門按鍵K3用來(lái)進(jìn)行模式切換,當(dāng)按鍵置“1”時(shí),顯示年、月、日;當(dāng)按鍵置“0”時(shí),顯示時(shí)、分、 秒。3)在KH-310

17、上設(shè)有專門的按鍵K1、K2實(shí)現(xiàn)年、月、日和時(shí)、分、秒的校對(duì)功能。當(dāng)按下K1鍵時(shí)進(jìn)入校時(shí)模式,K2按鍵為各模塊計(jì)時(shí)值得更改按鍵。4)同時(shí)設(shè)有5個(gè)校時(shí)模式下的LED燈,編號(hào)為、。當(dāng)燈被點(diǎn)亮?xí)r表示進(jìn)入調(diào)時(shí)模式下的分調(diào)時(shí),當(dāng)燈被點(diǎn)亮?xí)r表示進(jìn)入調(diào)時(shí)模式下的時(shí)調(diào)時(shí),當(dāng)燈被點(diǎn)亮?xí)r表示進(jìn)入調(diào)時(shí)模式下的天調(diào)時(shí),當(dāng)燈被點(diǎn)亮?xí)r表示進(jìn)入調(diào)時(shí)模式下的月調(diào)時(shí),當(dāng)燈被點(diǎn)亮?xí)r表示進(jìn)入調(diào)時(shí)模式下的年調(diào)時(shí)。5)本時(shí)鐘帶有整點(diǎn)報(bào)時(shí)功能,用一個(gè)LED燈的點(diǎn)亮一秒來(lái)表達(dá),該LED燈編號(hào)為。當(dāng)檢測(cè)的秒、分計(jì)數(shù)模塊的值都為“00”時(shí)燈會(huì)被點(diǎn)亮一秒鐘,然后熄滅。各個(gè)模塊設(shè)計(jì)好后,通過(guò)綜合仿真軟件Quartus采用VHDL實(shí)現(xiàn),仿真該系統(tǒng)的各

18、個(gè)功能模塊,并在綜合開(kāi)發(fā)實(shí)驗(yàn)系統(tǒng)KH-310上調(diào)試時(shí)鐘系統(tǒng)的整體功能。第二章 硬件描述語(yǔ)言VHDL2.1 VHDL語(yǔ)言簡(jiǎn)介2.1.1 VHDL語(yǔ)言的特點(diǎn)與其他硬件描述語(yǔ)言相比,VHDL具有以下特點(diǎn)1: 1)功能強(qiáng)大、設(shè)計(jì)靈活 VHDL具有功能強(qiáng)大的語(yǔ)言結(jié)構(gòu),可以用簡(jiǎn)潔明確的源代碼來(lái)描述復(fù)雜的邏輯控制。它具有多層次的設(shè)計(jì)描述功能,層層細(xì)化,最后可直接生成電路級(jí)描述。VHDL支持同步電路、異步電路和隨機(jī)電路的設(shè)計(jì),這是其他硬件描述語(yǔ)言所不能比擬的。VHDL還支持各種設(shè)計(jì)方法,既支持自底向上的設(shè)計(jì),又支持自頂向下的設(shè)計(jì);既支持模塊化設(shè)計(jì),又支持層次化設(shè)計(jì)。 2)支持廣泛、易于修改 由于VHDL已經(jīng)成

19、為IEEE標(biāo)準(zhǔn)所規(guī)范的硬件描述語(yǔ)言,目前大多數(shù)EDA工具幾乎都支持VHDL,這為VHDL的進(jìn)一步推廣和廣泛應(yīng)用奠定了基礎(chǔ)。在硬件電路設(shè)計(jì)過(guò)程中,主要的設(shè)計(jì)文件是用VHDL編寫的源代碼,因?yàn)閂HDL易讀和結(jié)構(gòu)化,所以易于修改設(shè)計(jì)。 3)強(qiáng)大的系統(tǒng)硬件描述能力 VHDL具有多層次的設(shè)計(jì)描述功能,既可以描述系統(tǒng)級(jí)電路,又可以描述門級(jí)電路。而描述既可以采用行為描述、寄存器傳輸描述或結(jié)構(gòu)描述,也可以采用三者混合的混合級(jí)描述。另外,VHDL支持慣性延遲和傳輸延遲,還可以準(zhǔn)確地建立硬件電路模型。VHDL支持預(yù)定義的和自定義的數(shù)據(jù)類型,給硬件描述帶來(lái)較大的自由度,使設(shè)計(jì)人員能夠方便地創(chuàng)建高層次的系統(tǒng)模型。 4

20、)獨(dú)立于器件的設(shè)計(jì)、與工藝無(wú)關(guān) 設(shè)計(jì)人員用VHDL進(jìn)行設(shè)計(jì)時(shí),不需要首先考慮選擇完成設(shè)計(jì)的器件,就可以集中精力進(jìn)行設(shè)計(jì)的優(yōu)化。當(dāng)設(shè)計(jì)描述完成后,可以用多種不同的器件結(jié)構(gòu)來(lái)實(shí)現(xiàn)其功能。 5)很強(qiáng)的移植能力 VHDL是一種標(biāo)準(zhǔn)化的硬件描述語(yǔ)言,同一個(gè)設(shè)計(jì)描述可以被不同的工具所支持,使得設(shè)計(jì)描述的移植成為可能。 6)易于共享和復(fù)用 VHDL采用基于庫(kù)(Library)的設(shè)計(jì)方法,可以建立各種可再次利用的模塊。這些模塊可以預(yù)先設(shè)計(jì)或使用以前設(shè)計(jì)中的存檔模塊,將這些模塊存放到庫(kù)中,就可以在以后的設(shè)計(jì)中進(jìn)行復(fù)用,可以使設(shè)計(jì)成果在設(shè)計(jì)人員之間進(jìn)行交流和共享,減少硬件電路設(shè)計(jì)。2.2 VHDL語(yǔ)言結(jié)構(gòu) VHD

21、L語(yǔ)言通常包括庫(kù)說(shuō)明、實(shí)體說(shuō)明、結(jié)構(gòu)體說(shuō)明3個(gè)部分2。VHDL提供5個(gè)庫(kù),IEEE 庫(kù),STD庫(kù),VITAL庫(kù),自定義庫(kù)和WORK庫(kù)。庫(kù)(Library)是一些常用代碼的集合,有利于設(shè)計(jì)的重用和代碼的共享。代碼通常以函數(shù)(FUNCTION)、過(guò)程(PROCEDURE)或元件(COMPONENT)等標(biāo)準(zhǔn)形式存放在包集(PACKAGE)中,用戶可以根據(jù)需要對(duì)其進(jìn)行編譯。VHDL設(shè)計(jì)中3個(gè)常用的庫(kù):ieee庫(kù),std庫(kù)和work庫(kù)。 實(shí)體是一個(gè)設(shè)計(jì)實(shí)體的表層設(shè)計(jì)單元,是對(duì)設(shè)計(jì)實(shí)體與外部電路進(jìn)行的接口描述,是設(shè)計(jì)實(shí)體經(jīng)封裝后對(duì)外界的一個(gè)通信界面。實(shí)體類似于原理圖中的符號(hào),它并不描述模塊的具體功能。此時(shí)

22、只是一個(gè)“黑盒子” ,只描述了它的輸入輸出接口信號(hào)。 結(jié)構(gòu)體(ARCHITECTURE)用來(lái)描述實(shí)體的內(nèi)部結(jié)構(gòu)或邏輯功能。它必須和實(shí)體(ENTITY)相聯(lián)系。一個(gè)實(shí)體(ENTITY)可以有多個(gè)結(jié)構(gòu)體,設(shè)計(jì)結(jié)構(gòu)可以為多進(jìn)程,運(yùn)行是并行的,結(jié)構(gòu)體描述方式包括:行為描述、數(shù)據(jù)流描述、結(jié)構(gòu)描述。 第三章 FPGA簡(jiǎn)介3.1 FPGA基本結(jié)構(gòu)FPGA由6部分組成,分別為可編程輸入/輸出單元、基本可編程邏輯單元、嵌入式塊RAM、豐富的布線資源、底層嵌入功能單元和內(nèi)嵌專用硬核等3。每個(gè)單元簡(jiǎn)介如下: 1、可編程輸入/輸出單元(I/O單元) 目前大多數(shù)FPGA的I/O單元被設(shè)計(jì)為可編程模式,即通過(guò)軟件的靈活配

23、置,可適應(yīng)不同的電器標(biāo)準(zhǔn)與I/O物理特性;可以調(diào)整匹配阻抗特性,上下拉電阻;可以調(diào)整輸出驅(qū)動(dòng)電流的大小等。2、基本可編程邏輯單元 FPGA的基本可編程邏輯單元是由查找表(LUT)和寄存器(Register)組成的,查找表完成純組合邏輯功能。FPGA內(nèi)部寄存器可配置為帶同步/異步復(fù)位和置位、時(shí)鐘使能的觸發(fā)器,也可以配置成為鎖存器。FPGA一般依賴寄存器完成同步時(shí)序邏輯設(shè)計(jì)。一般來(lái)說(shuō),比較經(jīng)典的基本可編程單元的配置是一個(gè)寄存器加一個(gè)查找表,但不同廠商的寄存器和查找表的內(nèi)部結(jié)構(gòu)有一定的差異,而且寄存器和查找表的組合模式也不同。3、嵌入式塊RAM 目前大多數(shù)FPGA都有內(nèi)嵌的塊RAM。嵌入式塊RAM可

24、以配置為單端口RAM、雙端口RAM、偽雙端口RAM、CAM、FIFO等存儲(chǔ)結(jié)構(gòu)。CAM,即為內(nèi)容地址存儲(chǔ)器。寫入CAM的數(shù)據(jù)會(huì)和其內(nèi)部存儲(chǔ)的每一個(gè)數(shù)據(jù)進(jìn)行比較,并返回與端口數(shù)據(jù)相同的所有內(nèi)部數(shù)據(jù)的地址。簡(jiǎn)單的說(shuō),RAM是一種寫地址,讀數(shù)據(jù)的存儲(chǔ)單元;CAM與RAM恰恰相反。 4、豐富的布線資源 布線資源連通FPGA內(nèi)部所有單元,連線的長(zhǎng)度和工藝決定著信號(hào)在連線上的驅(qū)動(dòng)能力和傳輸速度。布線資源的劃分:1)全局性的專用布線資源:以完成器件內(nèi)部的全局時(shí)鐘和全局復(fù)位/置位的布線。 2)長(zhǎng)線資源:用以完成器件Bank間的一些高速信號(hào)和一些第二全局時(shí)鐘信號(hào)的布線。 3)短線資源:用來(lái)完成基本邏輯單元間的邏

25、輯互連與布線。 4)其他:在邏輯單元內(nèi)部還有著各種布線資源和專用時(shí)鐘、復(fù)位等控制信號(hào)線。 5、底層嵌入功能單元 6、內(nèi)嵌專用硬核 與“底層嵌入單元”是有區(qū)別的,這里指的硬核主要是那些通用性相對(duì)較弱,不是所有FPGA器件都包含硬核。3.2Altera公司的介紹3.2.1FPGA的應(yīng)用選擇由于FPGA具備設(shè)計(jì)靈活、可以重復(fù)編程的優(yōu)點(diǎn),因此在電子產(chǎn)品設(shè)計(jì)領(lǐng)域得到了越來(lái)越廣泛的應(yīng)用。在工程項(xiàng)目或者產(chǎn)品設(shè)計(jì)中,選擇FPGA芯片可以參考以下的幾點(diǎn)策略和原則4。 1、盡量選擇成熟的產(chǎn)品系列 FPGA芯片的工藝一直走在芯片設(shè)計(jì)領(lǐng)域的前列,產(chǎn)品更新?lián)Q代速度非??臁7€(wěn)定性和可靠性是產(chǎn)品設(shè)計(jì)需要考慮的關(guān)鍵因素。廠家

26、最新推出的FPGA系列產(chǎn)品一般都沒(méi)有經(jīng)過(guò)大批量應(yīng)用的驗(yàn)證。選擇這樣的芯片會(huì)增加設(shè)計(jì)的風(fēng)險(xiǎn)。 而且,最新推出的FPGA芯片因?yàn)楫a(chǎn)量比較小,一般供貨情況都不會(huì)很理想,價(jià)格也會(huì)偏高一些。如果成熟的產(chǎn)品能滿足設(shè)計(jì)指標(biāo)要求,那么最好選這樣的芯片來(lái)完成設(shè)計(jì)。 2、盡量選擇兼容性好的封裝 FPGA系統(tǒng)設(shè)計(jì)一般采用硬件描述語(yǔ)言(VHDL)來(lái)完成設(shè)計(jì)。這與基于CPU的軟件開(kāi)發(fā)又有很大不同。特別是算法實(shí)現(xiàn)的時(shí)候,在設(shè)計(jì)之前,很難估算這個(gè)算法需要占用多少FPGA的邏輯資源。 作為代碼設(shè)計(jì)者,希望算法實(shí)現(xiàn)之后再選擇FPGA的型號(hào)。但是,現(xiàn)在的設(shè)計(jì)流程一般都是軟件和硬件并行開(kāi)始設(shè)計(jì)。也就是說(shuō),在VHDL代碼設(shè)計(jì)之前,就

27、開(kāi)始硬件板卡的設(shè)計(jì)。這就要求硬件板卡具備一定的兼容性,可以兼容不同規(guī)模的FPGA芯片。3、盡量選擇一個(gè)公司的產(chǎn)品 如果在整個(gè)電子系統(tǒng)中需要多個(gè)FPGA器件,那么盡量選擇一個(gè)公司的產(chǎn)品。這樣的好處不僅可以降低成本,而且降低開(kāi)發(fā)難度。因?yàn)殚_(kāi)發(fā)環(huán)境和工具是一致的,芯片接口電平和特性也一致,便于互聯(lián)互通。在全球不同的地區(qū),Altera和Actel公司的FPGA芯片產(chǎn)品的市場(chǎng)表現(xiàn)會(huì)有所差別。在中國(guó)市場(chǎng),兩家公司可以說(shuō)是平分秋色,在高校里面Altera的客戶會(huì)略多一些。針對(duì)特定的應(yīng)用,兩個(gè)廠家的產(chǎn)品目錄里面都可以找到適合的系列或者型號(hào)。 而本課題中采用的是Altera公司的ACEX1K系列的EP1K30型

28、號(hào)。 3.2.2 課題研究采用的FPGA介紹 本課題研究選用的是Altera公司的FPGA芯片,ACEX1K器件系列中的EP1K30型號(hào),208個(gè)引腳,576個(gè)邏輯單元,3個(gè)嵌入式RAM塊。ACEX1K 系列器件是Altera 公司近期推出的新型FPGA 產(chǎn)品。該器件基于SRAM,結(jié)合查找表(LUT)和嵌入式陣列塊(EAB)提供了高密度結(jié)構(gòu),可提供10000 到100000 可用門,每個(gè)嵌入式陣列塊增加到16 位寬可實(shí)現(xiàn)雙端口,RAM 位增加到49125 個(gè)。其多電壓引腳可以驅(qū)動(dòng)2.5V、3.3V、5.0V 器件,也可以被這些電壓所驅(qū)動(dòng);雙向I/O 引腳執(zhí)行速度可達(dá)250MHz。該器件還應(yīng)用A

29、ltera 專利技術(shù)進(jìn)行了重要的生產(chǎn)改進(jìn),進(jìn)一步降低了器件的成本,提高了產(chǎn)品的性能價(jià)格比。因此,ACEX1K 器件可用來(lái)實(shí)現(xiàn)許多邏輯復(fù)雜、信息量大的系統(tǒng)。但是在器件操作過(guò)程中,ACEX1K 系列器件的配置數(shù)據(jù)存儲(chǔ)在SRAM 單元中,由于SRAM的易失性,配置數(shù)據(jù)在每次上電時(shí)必須被重新載入SRAM。第四章 QuartusII的使用4.1QuartusII5.1簡(jiǎn)介 Altera公司開(kāi)始發(fā)售5.1版的QuartusII軟件,包括了時(shí)序分析工具TimeQuest,并且能夠支持Synopsys設(shè)計(jì)約束(SDC)時(shí)序格式 。這一最新版本還包括擴(kuò)展的團(tuán)隊(duì)設(shè)計(jì)功能, 能夠有效地管理高密度設(shè)計(jì)團(tuán)隊(duì)之間的協(xié)作。

30、這些改進(jìn)主要針對(duì)當(dāng)今高密度90nm的設(shè)計(jì)要求,同時(shí)對(duì)更高密度的FPGA的需求以及Altera發(fā)展下一代65nm產(chǎn)品系列打下了基礎(chǔ)。 Altera在最新版QuartusII軟件中引入了新的技術(shù)改進(jìn),以滿足客戶對(duì)90nm的需求,并為65nm工藝節(jié)點(diǎn)打下了基礎(chǔ)。TimeQuest時(shí)序分析工具幫助用戶對(duì)時(shí)序約束較為復(fù)雜的設(shè)計(jì)進(jìn)行建立、管理和分析操作,例如時(shí)鐘復(fù)用設(shè)計(jì)和源同步接口等,用戶還可以迅速完成高級(jí)時(shí)序驗(yàn)證。該軟件的團(tuán)隊(duì)設(shè)計(jì)支持特性包括工程管理器接口、用于頂層設(shè)計(jì)的資源管理和時(shí)序預(yù)算。此外,工程管理器接口還支持設(shè)計(jì)人員管理模塊間的時(shí)序約束,實(shí)現(xiàn)最佳性能。這一新特性支持團(tuán)隊(duì)在高密度FPGA設(shè)計(jì)上的協(xié)

31、作,從而提高了團(tuán)隊(duì)效率,增強(qiáng)了設(shè)計(jì)模塊相互之間的性能。 同時(shí),通過(guò)對(duì)流行的IEEE1800-2005標(biāo)準(zhǔn)SystemVerilog語(yǔ)法硬件描述和驗(yàn)證語(yǔ)言設(shè)計(jì)結(jié)構(gòu)的支持,該工具實(shí)現(xiàn)了速度更快的寄存器傳送級(jí)(RTL)。其增強(qiáng)的I/O引腳規(guī)劃器與Altera知識(shí)產(chǎn)權(quán)(IP)更直接的集成,簡(jiǎn)化了引腳分配。該軟件擴(kuò)展的電路板級(jí)設(shè)計(jì)還能支持提供StratixII單端輸出的HSPICE模型。圖4.1為Quartus軟件的用戶界面。圖 4.1 Quartus軟件的用戶界面4.2 QuartusII設(shè)計(jì)流程 基于QuartusII的FPGA系統(tǒng)設(shè)計(jì)流程5:1)設(shè)計(jì)輸入 使用Quartus軟件的模塊輸入方式、文本

32、輸入方式、Core輸入方式和EDA設(shè)計(jì)輸入工具等表達(dá)用戶的電路構(gòu)思,同時(shí)使用分配編輯器(AssignmentEditor)設(shè)定初始約束條件。 2)綜合 將HDL語(yǔ)言、原理圖等設(shè)計(jì)輸入翻譯成由與門、或門、非門、RAM和觸發(fā)器等基本邏輯單元組成的邏輯鏈接(網(wǎng)絡(luò)表),并根據(jù)目標(biāo)與要求(約束條件)優(yōu)化生成邏輯鏈接,輸出edf或vqm等標(biāo)準(zhǔn)格式的網(wǎng)絡(luò)表文件。 3)布局布線 布局布線輸入文件是綜合后的網(wǎng)絡(luò)表文件,Quartus軟件中布局布線包含分析布局布線結(jié)果、優(yōu)化布局布線、增量布局布線和通過(guò)反向標(biāo)注分配等。 4)時(shí)序分析 允許用戶分析設(shè)計(jì)中所有邏輯的時(shí)序性能,并協(xié)助引導(dǎo)布局布線以滿足設(shè)計(jì)中的時(shí)序分析要求

33、。默認(rèn)情況下,時(shí)序分析作為全編譯的一部分自動(dòng)運(yùn)行。 5)仿真 波形矢量文件的擴(kuò)展名為“.vwf”,仿真分為功能仿真和時(shí)序仿真,也稱為前仿真和后仿真,功能仿真是忽略延時(shí)后的仿真,是最理想的仿真,時(shí)序仿真則是加上了一些延時(shí)的仿真,是最接近于實(shí)際的仿真,在設(shè)計(jì)中通常先做功能仿真驗(yàn)證邏輯的正確性,后做時(shí)序仿真驗(yàn)證時(shí)序是否符合要求,需注意默認(rèn)為時(shí)序仿真,在設(shè)置功能仿真后需要生成功能仿真網(wǎng)絡(luò)表。 6)引腳分配 引腳分配是為了對(duì)所設(shè)計(jì)的工程進(jìn)行硬件測(cè)試,將輸入/輸出信號(hào)鎖定在器件確定的引腳上,分配完引腳后必須再次編譯才能存儲(chǔ)這些引腳鎖定的信息。 7)下載驗(yàn)證 JTAG下載模式相應(yīng)的文件為“.sof”,Act

34、iveSerial下載模式相應(yīng)的文件為“.pof”。設(shè)計(jì)輸入 綜 合功能仿真時(shí)序仿真器件仿真硬件測(cè)試設(shè)計(jì)修改圖 4.2 Quartus的設(shè)計(jì)流程圖圖4.2為QuartusII設(shè)計(jì)流程圖,從圖中我們可以更清楚地看出基于QuartusII的FPGA系統(tǒng)設(shè)計(jì)流程。 第五章 基于FPGA的多功能數(shù)字時(shí)鐘5.1 系統(tǒng)設(shè)計(jì)任務(wù)及流程 為了實(shí)現(xiàn)本系統(tǒng)設(shè)計(jì)的功能,本系統(tǒng)設(shè)計(jì)安排了用數(shù)碼管顯示,用24小時(shí)進(jìn)制來(lái)計(jì)時(shí),萬(wàn)年歷天部分分為28、29、30、31不同月份的計(jì)數(shù),月份為12進(jìn)制,年用100進(jìn)制來(lái)實(shí)現(xiàn)同時(shí)也能校時(shí)和整點(diǎn)鬧鐘提示等任務(wù)。通過(guò)自上而下的設(shè)計(jì)理念(自上而下的設(shè)計(jì)方法,一般用于全新設(shè)計(jì),其設(shè)計(jì)過(guò)程遵

35、循“設(shè)計(jì)驗(yàn)證修改設(shè)計(jì)再驗(yàn)證”的原則),把多功能數(shù)字鐘的整體功能考慮其中,然后再細(xì)化到各個(gè)模塊,包括:分頻模塊(用以獲得時(shí)鐘內(nèi)部所需的脈沖),校時(shí)模塊(用以校準(zhǔn)時(shí)間),計(jì)時(shí)模塊(用以計(jì)時(shí)),顯示模塊(用以顯示結(jié)果以及轉(zhuǎn)換顯示),整點(diǎn)報(bào)時(shí)模塊(用以報(bào)時(shí)功能)的功能實(shí)現(xiàn),最終在智能可編程器件開(kāi)發(fā)實(shí)驗(yàn)系統(tǒng)KH-310上實(shí)現(xiàn)。5.2 系統(tǒng)的總體設(shè)計(jì) 整個(gè)系統(tǒng)利用QuartusII軟件進(jìn)行設(shè)計(jì),以硬件描述語(yǔ)言VHDL為設(shè)計(jì)語(yǔ)言。本系統(tǒng)設(shè)計(jì)可以采用自上而下的方法對(duì)系統(tǒng)進(jìn)行描述。為使本次設(shè)計(jì)系統(tǒng)得時(shí)鐘顯示采用數(shù)碼管顯示,計(jì)時(shí)及校時(shí)功能和整點(diǎn)提示功能得以實(shí)現(xiàn),本系統(tǒng)設(shè)計(jì)了這幾大模塊:分頻模塊,校時(shí)模塊,計(jì)時(shí)模塊

36、,顯示模塊,整點(diǎn)報(bào)時(shí)模塊。分頻模塊利用智能可編程器件開(kāi)發(fā)實(shí)驗(yàn)系統(tǒng)KH-310上提供的40MHz的脈沖分頻得到多功能數(shù)字鬧鐘計(jì)時(shí)用的1Hz的脈沖。校時(shí)模塊可以通過(guò)控制外部電平的輸入來(lái)設(shè)置數(shù)字鐘的分、時(shí)的計(jì)數(shù)。計(jì)時(shí)模塊可以實(shí)現(xiàn)數(shù)字鐘的秒、分、時(shí)的計(jì)時(shí)功能以及萬(wàn)年歷的計(jì)數(shù)。顯示模塊通過(guò)共陰極數(shù)碼管掃描顯示,來(lái)顯示當(dāng)下的時(shí)間或設(shè)定的時(shí)間和日歷。整點(diǎn)報(bào)時(shí)模塊連接外部設(shè)備LED燈,用來(lái)設(shè)定整點(diǎn)提示。通過(guò)以上各個(gè)模塊的組合工作,實(shí)現(xiàn)多功能數(shù)字鐘的整體功能,如圖5.1所示??刂颇K時(shí)間計(jì)數(shù)模塊日期計(jì)數(shù)模塊校時(shí)模塊譯碼顯示顯示轉(zhuǎn)換模塊圖5.1 系統(tǒng)框架圖5.3 系統(tǒng)的各模塊的設(shè)計(jì)5.3.1 分頻模塊分頻模塊用于

37、給整個(gè)系統(tǒng)提供所需的脈沖。該模塊利用智能可編程器件開(kāi)發(fā)實(shí)驗(yàn)系統(tǒng)KH-310試驗(yàn)箱上的的1KHz脈沖分頻得到1Hz的脈沖。頻率,1Hz的脈沖用于秒計(jì)數(shù)。 我們知道一個(gè)脈沖有上升沿和下降沿,那么,1KHz的脈沖經(jīng)過(guò)499次的計(jì)數(shù)循環(huán)后,使一個(gè)信號(hào)X產(chǎn)生一個(gè)上升沿,再過(guò)499次的計(jì)數(shù)循環(huán)后,使這個(gè)X信號(hào)產(chǎn)生一個(gè)下降沿。這樣,因此,在1000次計(jì)數(shù)后信號(hào)X形成一個(gè)新的脈沖信號(hào),該脈沖即為1Hz的脈沖。 當(dāng)然,在語(yǔ)言處理中需要有一個(gè)“翻折”的概念。 IF (CLK='1' AND CLK'EVENT) THEN IF CLR='1' THEN COUNTER<

38、;=0; ELSIF COUNTER=49 THEN COUNTER<=0; Q<= NOT Q; ELSE COUNTER<=COUNTER+1; END IF; END IF;由VHDL程序代碼生成生成如圖5.2所示的圖元,元件,其中clr端口輸入清零信號(hào);clk端口輸入時(shí)鐘信號(hào);q端口是分頻的結(jié)果輸出。圖5.2 分頻器圖元元件5.3.2 計(jì)數(shù)模塊1、秒與分模塊為六十進(jìn)制的計(jì)數(shù)器秒和分的計(jì)數(shù)都是用60進(jìn)制的計(jì)數(shù)器實(shí)現(xiàn)的。秒的時(shí)鐘信號(hào)由分頻器提供,當(dāng)個(gè)位Q1計(jì)數(shù)到“9”后會(huì)產(chǎn)生一個(gè)進(jìn)位信號(hào)給十位Q2,同時(shí)個(gè)位會(huì)被清零,依次循環(huán)下去直到個(gè)位為“9”,十位為“5”時(shí),COUT會(huì)

39、向下一位產(chǎn)生進(jìn)位信號(hào),同時(shí)Q1,Q2會(huì)被清零。秒的COUT會(huì)向校時(shí)模塊的MI產(chǎn)生驅(qū)動(dòng)信號(hào),在正常計(jì)時(shí)狀態(tài)下驅(qū)動(dòng)分計(jì)數(shù)器的時(shí)鐘信號(hào)來(lái)使得分計(jì)數(shù)器正常計(jì)數(shù)。同理,分的COUT會(huì)驅(qū)動(dòng)時(shí)的時(shí)鐘信號(hào),使得時(shí)計(jì)數(shù)器正常計(jì)數(shù)。 IF CLK'EVENT AND CLK='1' THENQ1<=Q1+1;IF Q1=9 THEN Q1<=(OTHERS=>'0');Q2<=Q2+1;END IF;IF Q2=5 AND Q1=9 THEN Q2<="0000"Q1<="0000"COUT<

40、='1'ELSE COUT<='0'END IF;END IF;由VHDL程序代碼生成生成如圖5.3所示的圖元元件,其中CLK端口輸入分頻得到的秒脈沖信號(hào)(分計(jì)數(shù)則為低位的進(jìn)位信號(hào));Q13.0端口為秒/分計(jì)數(shù)的個(gè)位輸出;Q23.0端口為秒/分計(jì)數(shù)的十位輸出;COUT端口是向高位的進(jìn)位輸出端口。圖5.3 秒/分計(jì)數(shù)模塊的圖元元件該模塊的仿真波形如圖5.4所示:圖5.4 60進(jìn)制計(jì)數(shù)器仿真圖如圖5.4所示當(dāng)Q1、Q2計(jì)滿60時(shí),Q1、Q2都?xì)w零同時(shí)有一個(gè)進(jìn)位輸出脈沖,完成了六十進(jìn)制計(jì)數(shù)器的功能。2、時(shí)模塊為24進(jìn)制計(jì)數(shù)器根據(jù)分計(jì)數(shù)模塊可知時(shí)計(jì)數(shù)模塊的時(shí)鐘信號(hào)

41、是在正常計(jì)時(shí)情況下,由分計(jì)數(shù)模塊的COUT產(chǎn)生的進(jìn)位信號(hào)給的。時(shí)計(jì)數(shù)模塊是由24進(jìn)制計(jì)數(shù)實(shí)現(xiàn)的。當(dāng)個(gè)位Q1計(jì)數(shù)達(dá)到“9”后會(huì)向十位Q2產(chǎn)生進(jìn)位,使得十位開(kāi)始計(jì)數(shù)。當(dāng)Q1為“2”并且Q2為“3”時(shí),COUT會(huì)向校時(shí)模塊的SI產(chǎn)生進(jìn)位信號(hào),在正常計(jì)時(shí)情況下驅(qū)動(dòng)天的時(shí)鐘信號(hào),使得天計(jì)數(shù)模塊正常計(jì)數(shù)。同時(shí)Q1,Q2會(huì)被清零。由VHDL程序代碼生成生成如圖5.5所示的圖元元件,其中CLK端口為低位的進(jìn)位信號(hào);Q13.0端口為時(shí)計(jì)數(shù)的個(gè)位計(jì)數(shù)輸出信號(hào);Q23.0端口為時(shí)計(jì)數(shù)的十位計(jì)數(shù)輸出信號(hào);COUT端口為向高位的進(jìn)位輸出信號(hào)。 圖 5.5 時(shí)計(jì)數(shù)模塊的圖元元件IF CLK'EVENT AND C

42、LK='1' THENQ1<=Q1+1;IF Q1=9 THEN Q1<=(OTHERS=>'0');Q2<=Q2+1;END IF;IF Q2=2 AND Q1=3 THEN Q2<="0000"Q1<="0000"COUT<='1'ELSE COUT<='0'END IF;END IF;該模塊的仿真波形如圖5.6所示:圖 5.6 24進(jìn)制計(jì)數(shù)器仿真圖如圖5.6所示當(dāng)Q1、Q2計(jì)滿24時(shí),Q1、Q2都?xì)w零同時(shí)有一個(gè)進(jìn)位輸出脈沖,完成了六十進(jìn)制

43、計(jì)數(shù)器的功能。3、日計(jì)數(shù)模塊日計(jì)數(shù)有四種情況:大月為31進(jìn)制計(jì)數(shù)器,小月為30進(jìn)制計(jì)數(shù)器,平年二月為28進(jìn)制計(jì)數(shù)器,閏年二月為29進(jìn)制計(jì)數(shù)器。因此,需要有一個(gè)二位判斷輸入信號(hào)來(lái)進(jìn)行進(jìn)制數(shù)的選擇。判斷信號(hào)PANDUAN為“00”時(shí)為31進(jìn)制計(jì)數(shù),判斷信號(hào)為“01”時(shí)為30進(jìn)制計(jì)數(shù),判斷信號(hào)為“10”時(shí)為28進(jìn)制計(jì)數(shù),判斷信號(hào)為“11”時(shí)為29進(jìn)制計(jì)數(shù)。它的判斷信號(hào)來(lái)自月計(jì)數(shù)模塊的判斷信號(hào)。當(dāng)CQ1,CQ2計(jì)數(shù)達(dá)到進(jìn)位要求時(shí),COUT會(huì)向校時(shí)模塊的TI產(chǎn)生一個(gè)驅(qū)動(dòng)信號(hào),在正常計(jì)時(shí)情況下來(lái)驅(qū)動(dòng)月計(jì)數(shù)模塊的時(shí)鐘信號(hào)。同時(shí)CQ1,CQ2會(huì)被清零。IF CLK'EVENT AND CLK='

44、;1' THEN -上升沿CQ3<=CQ3+1;IF CQ3=9 THEN CQ3<=(OTHERS=>'0');CQ4<=CQ4+1;END IF;PAN<=PANDUAN;CASE PAN ISWHEN "00"=>IF CQ3="0001" AND CQ4="0011" -判斷信號(hào)為00時(shí)為31進(jìn) THEN CQ3<="0001"CQ4<="0000"COUT<='1' - 制計(jì)數(shù)器ELSE CO

45、UT<='0'END IF; WHEN "01"=>IF CQ3="0000" AND CQ4="0011" -判斷信號(hào)為01時(shí)為30進(jìn)THEN CQ3<="0001"CQ4<="0000"COUT<='1' - 制計(jì)數(shù)器ELSE COUT<='0'END IF; WHEN "10"=>IF CQ3="1000" AND CQ4="0010" -判

46、斷信號(hào)為10時(shí)為28進(jìn)THEN CQ3<="0001"CQ4<="0000"COUT<='1' - 制計(jì)數(shù)器ELSE COUT<='0'END IF; WHEN "11"=>IF CQ3="1001" AND CQ4="0010" -判斷信號(hào)為11時(shí)為29進(jìn)THEN CQ3<="0001"CQ4<="0000"COUT<='1' - 制計(jì)數(shù)器 ELSE COUT

47、<='0'END IF; WHEN OTHERS=>NULL;END CASE;END IF;由VHDL程序代碼生成生成如圖5.7所示的圖元元件,其中PANDUAN1.0端口是判斷月份大小的判斷信號(hào),它由月計(jì)數(shù)模塊提供;CLK端口是低位進(jìn)位信號(hào)提供的時(shí)鐘信號(hào);CQ13.0端口是天計(jì)數(shù)的個(gè)位計(jì)數(shù)輸出信號(hào);CQ23.0端口是天計(jì)數(shù)的十位計(jì)數(shù)的輸出信號(hào);COUT端口是向高位產(chǎn)生進(jìn)位的輸出端口。圖5.7 天計(jì)數(shù)模塊的圖元元件該模塊的仿真波形如圖5.8、5.9、5.10、5.11所示:圖5.8判斷信號(hào)為00時(shí)31天計(jì)數(shù)模塊仿真圖圖 5.9判斷信號(hào)為01時(shí)30天計(jì)數(shù)模塊仿真圖圖

48、5.10 判斷信號(hào)為10時(shí)28天計(jì)數(shù)模塊仿真圖圖 5.11 判斷信號(hào)為11時(shí)29天計(jì)數(shù)模塊仿真圖4、月計(jì)數(shù)模塊月模塊為12進(jìn)制計(jì)數(shù)器,同時(shí)其需要為天提供判斷信號(hào)輸出pan,其與天的判斷輸入信號(hào)相一致。由于二月的判斷信號(hào)輸出要受到平年和閏年的影響,平年時(shí)判斷信號(hào)是“10”,閏年時(shí)判斷信號(hào)為”11“,所以它要有接收來(lái)之年模塊的判斷平年閏年的輸出信號(hào)(run=0時(shí)表平年,run=1時(shí)表閏年)。月計(jì)數(shù)模塊的時(shí)鐘信號(hào)由天計(jì)數(shù)模塊在正常計(jì)時(shí)狀態(tài)下的進(jìn)位信號(hào)提供。當(dāng)個(gè)位cq1計(jì)數(shù)到“9”時(shí)會(huì)向十位cq2產(chǎn)生進(jìn)位,使得cq2開(kāi)始計(jì)數(shù)。當(dāng)cq1為“1”并且cq2為“2”時(shí),cout會(huì)產(chǎn)生進(jìn)位信號(hào)給校時(shí)模塊的YI

49、,在正常計(jì)時(shí)情況下驅(qū)動(dòng)年計(jì)數(shù)模塊的時(shí)鐘信號(hào)。同時(shí),cq1會(huì)被清零,但cq2會(huì)被重新賦值“1”,因?yàn)樵聲r(shí)從1月份開(kāi)始計(jì)的。IF clk'EVENT and clk='1' THEN cq1<=cq1+1;IF cq3=9 THEN cq2<=cq2+1;cq1<="0000" END IF;IF cq1=2 and cq2=1 THEN cq1<="0001"cq2<="0000"cout<='1' ELSE cout<='0'END IF

50、; END IF; -十二進(jìn)制計(jì)數(shù)器cq5<=cq4&cq3; -邏輯位相連接CASE cq5 ISWHEN "00000001"=>pan<="00" -一月WHEN "00000010"=>if run='1' then pan<="11"else pan<="10"end if; -二月WHEN "00000011"=>pan<="00" -三月WHEN "000001

51、00"=>pan<="01" -四月WHEN "00000101"=>pan<="00" -五月WHEN "00000110"=>pan<="01" -六月WHEN "00000111"=>pan<="00" -七月WHEN "00001000"=>pan<="00" -八月WHEN "00001001"=>pan<

52、="01" -七月WHEN "00001010"=>pan<="00" -十月WHEN "00001011"=>pan<="01" -十一月WHEN "00001100"=>pan<="00" -十二月WHEN others=>NULL;END CASE;由VHDL程序代碼生成生成如圖5.12所示的圖元元件,其中clk端口為低位進(jìn)位信號(hào)提供的時(shí)鐘信號(hào);run端口為閏年的判斷信號(hào),它由年計(jì)數(shù)模塊提供;pan端口輸出大

53、小月的判斷信號(hào),提供給天計(jì)數(shù)模塊;cq1端口輸出月計(jì)數(shù)的個(gè)位計(jì)數(shù);cq2端口輸出月計(jì)數(shù)的十位計(jì)數(shù);cout端口輸出向高位的進(jìn)位信號(hào)。 圖 5.12 月計(jì)數(shù)模塊的圖元元件該模塊的仿真波形如圖5.13、5.14所示:圖5.13平年(run=0)時(shí)月模塊仿真圖圖5.14 閏年(run=1)時(shí)月模塊仿真圖如圖5.13和5.14所示月模塊為12進(jìn)制計(jì)數(shù)器,并且1、3、5、7、8、10、12月(大月)判斷信號(hào)為“00”,4、6、9、11月(小月)判斷信號(hào)為“01”,平年(run=0)2月的判斷輸出信號(hào)為10,閏年(run=1)2月的判斷輸出信號(hào)為11,與天模塊的判斷輸入信號(hào)相一致,符合設(shè)計(jì)要求。5、年計(jì)數(shù)

54、模塊年計(jì)數(shù)為一百進(jìn)制的計(jì)數(shù)器,模塊有閏年判斷輸出信號(hào)RUN,要傳送給月份模塊,計(jì)滿四次就產(chǎn)生一個(gè)閏年輸出信號(hào),因?yàn)殚c年數(shù)值是4的整倍數(shù)。年計(jì)數(shù)模塊的時(shí)鐘信號(hào)來(lái)自正常計(jì)時(shí)狀態(tài)下的COUT進(jìn)位信號(hào)。年的個(gè)位Y1計(jì)數(shù)達(dá)到“9”就會(huì)向十位Y2產(chǎn)生進(jìn)位,使得Y2開(kāi)始計(jì)數(shù)。當(dāng)YI,Y2都為“9”時(shí),Y1,Y2會(huì)被清零。IF CLK'EVENT AND CLK='1' THEN Q1<=Q1+1;IF Q1=9 THEN Q1<=(OTHERS=>'0');Q2<=Q2+1;END IF;IF Q2=9 AND Q1=9 THEN Q2<

55、="0000"Q1<="0000"COUT<='1'ELSE COUT<='0'END IF;END IF;END PROCESS;PROCESS(CLK)BEGINIF CLK'EVENT AND CLK='1' THEN Q3<=Q3+1;-每計(jì)滿四個(gè)就輸出1,為閏年信號(hào)IF Q3=3 THEN Q3<=(OTHERS=>'0');RUN<='1'ELSE RUN <='0'END IF;END IF

56、;由VHDL程序代碼生成生成如圖5.15所示的圖元元件,其中CLK端口輸入由低位的進(jìn)位信號(hào)提供的時(shí)鐘信號(hào);Y1端口輸出年計(jì)數(shù)的個(gè)位計(jì)數(shù)信號(hào);Y2端口輸出年計(jì)數(shù)的十位計(jì)數(shù)信號(hào);RUN端口輸出閏年信號(hào)提供給月計(jì)數(shù)模塊。圖 5.15 年計(jì)數(shù)模塊的圖元元件該模塊的仿真波形如圖5.16所示:圖 5.16 年模塊仿真圖如圖5.16所示,兩位年模塊為100進(jìn)制計(jì)數(shù)器當(dāng)Y2、Y1表示的數(shù)為4的整數(shù)倍時(shí),判斷閏年輸出信號(hào)RUN就為高電平,與月模塊的判斷閏年輸入信號(hào)相一致。符合設(shè)計(jì)的要求。5.3.3 校時(shí)模塊如原理圖的說(shuō)明部分所述,校時(shí)模塊進(jìn)行工作模式的選擇,輸入端設(shè)有控制按鍵K1,K2。K1進(jìn)行模式的選擇,K2

57、的功能如同手動(dòng)時(shí)鐘脈沖,進(jìn)行調(diào)時(shí)設(shè)置。設(shè)計(jì)內(nèi)部一個(gè)寄存器A,在校時(shí)時(shí),沒(méi)按下K1,A就會(huì)加1,當(dāng)A為0000時(shí),是正常計(jì)時(shí),當(dāng)A為0001時(shí),是調(diào)分計(jì)數(shù),當(dāng)A為0010時(shí),是調(diào)時(shí)計(jì)數(shù),當(dāng)A為0011時(shí),是調(diào)天計(jì)數(shù),當(dāng)A為0100時(shí),是調(diào)月計(jì)數(shù),當(dāng)A為0101時(shí),是調(diào)年計(jì)數(shù)。同時(shí)設(shè)計(jì)相對(duì)應(yīng)的LED燈亮,當(dāng)調(diào)哪個(gè)部分,相對(duì)應(yīng)的校時(shí)狀態(tài)燈會(huì)被點(diǎn)亮。當(dāng)進(jìn)入校時(shí)狀態(tài)下,設(shè)置K2按鍵,K2按鍵每按下相對(duì)應(yīng)的模塊計(jì)數(shù)器會(huì)加1,與K2同步。CASE A ISWHEN "0000"=>FO<=MI;SO<=FI;TL<=SI;YO<=TI;NO<=YI;

58、- 模式0正常計(jì)時(shí) L1<='0'L2<='0'L3<='0'L4<='0'L5<='0'WHEN "0001"=>FO<=K2;SO<='0'TL<='0'YO<='0'NO<='0' -選通分模塊,調(diào)分 L1<='1'L2<='0'L3<='0'L4<='0'L5<='0'WHEN "0010"=>FO<='0'SO<=K2;TL<='0'YO<='0'NO<='0' -選通時(shí)模塊,調(diào)時(shí) L1<='0'L2<='1'L3<='0'L4<='0'L5<='0'WHEN "

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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)論