




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
本科畢業(yè)設(shè)計(論文)基于FPGA的計時器的設(shè)計摘要隨著電子設(shè)計自動化技術(shù)和可編程邏輯器件的出現(xiàn)和飛速發(fā)展,在設(shè)計周期得到大大的縮短的同時系統(tǒng)成本也有了大幅度的降低,顯然標準邏輯器件的組裝已遠不能滿足這方面的要求。而VerilogHDL能提供高階電路描述語言的方式,讓復(fù)雜的電路可以通過VerilogHDL編輯器的電路合成方式,輕易而且快速的達到設(shè)計的規(guī)格。由于VerilogHDL電路描述語言能涵蓋的范圍相當廣,能適用于各種不同階層的設(shè)計工程師的需要,所以VerilogHDL電路設(shè)計毫無疑問的成為硬件設(shè)計工程師的必備工具。本系統(tǒng)是用Verilog編寫的基于AlteraDE2的電話計費器。該設(shè)計采用了現(xiàn)場可編程邏輯器件FPGA設(shè)計,并基于硬件描述語言VerilogHDL在Altera公司的QuartusⅡ軟件上實現(xiàn)仿真。根據(jù)電話局反饋回來的信號,此信號是提前預(yù)設(shè)的,數(shù)碼管顯示通話類型、用戶余額以及通話時長(包括秒數(shù)和分鐘數(shù))。根據(jù)每種通話類型的計費價格不同,當系統(tǒng)所設(shè)置的余額數(shù)不夠,用戶將無法撥通電話,當用戶余額小于指定金額時,系統(tǒng)發(fā)出警告信號,提醒用戶。當告警時間過長(超過1分鐘)時自動切斷通話信號。當用戶結(jié)束通話,系統(tǒng)清零。關(guān)鍵詞:Verilog,F(xiàn)PGA,通話信號,計時器AbstractWiththerapiddevelopmentofelectronicdesignautomationtechnologyandprogrammablelogicdeviceswhichgreatlyshortenthedesignperiodandreducedthecothesystematthesametime.Apparently,theassemblyofstandardlogicdevicescanntherequirementsinthisregard.VerilogHDLcanprovidehigh-levelcircuitdescriptilanguage,whichallowscomplexcircuitbytheVerilogHDLEditorcircuitsynthesismeaswellbymeetingthedesignspecificationappropriately.VerilogHDLcircuitdescrilanguagecoversaverywiderange,whichcanbeappliedtoavarietyofdifferentsectneedsofdesignengineers,thecircuitdesignofVerilogHDLwithoutadoubttobecomessentialtoolforhardwaredesignengineers.ThesystemisbasedonAlteraDE2writtenbyVerilogphonedevices.ItisusedbyProgrammableGateArrayFPGAbasedonVerilogHDLhardwaredescriptionlanguagetodesignandAltera'sQuartusⅡinsoftwareforemulation.Accordingtothefeedbackofthetelephoneofficebacksignalwhichisactuallypre-designed,digitalpipedisplaytypbalanceandphonecallduration(includingthenumberofsecondsorminutes).Dependithebillingpriceofeachcalltypeisdifferent,whenabegantobalancethesetisntheuserwillnotbeabletodialthephone,andwhenthebalanceislessthanthespmoney,issuingawarningsignalsystem,remindingtousers.Whenthealarmtimeisto(morethan1minutes),theconversationsignalwillbeautomaticallycutoff.Whentendthecall,thesystemwillbereseted.Keywords:Verilog,FPGA,Callingsignal,calculagraph目錄緒論.....................................................................................1課題研究的目的.................................................................1國內(nèi)外發(fā)展現(xiàn)狀.................................................................11.3課題的主要技術(shù)路線.............................................................2FPGA技術(shù)及硬件描述語言...........................................................3FPGA的介紹...................................................................32.1.1可編程邏輯器件發(fā)展簡史.....................................................32.1.2可編程邏輯器件的基本結(jié)構(gòu)...................................................32.1.3可編程邏輯器件分類.........................................................4AlteraCycloneⅡ系列器件介紹................................................5FPGA的開發(fā)流程............................................................5FPGA設(shè)計方法..................................................................7利用硬件描述語言(HDL)的硬件電路設(shè)計方法.....................................8VerilogHDL語言的設(shè)計流程.......................................................9QuartusⅡ概述及其設(shè)計流程........................................................12QuartusⅡ概述.............................................................12QuartusⅡ設(shè)計流程.........................................................13系統(tǒng)總體設(shè)計......................................................................14計費模塊介紹...................................................................14預(yù)設(shè)模塊介紹...................................................................15時鐘分頻模塊介紹...............................................................15分拆模塊介紹...................................................................16數(shù)碼管顯示模塊介紹.............................................................16警告模塊介紹...................................................................17邏輯資源使用情況...............................................................17系統(tǒng)的操作與分析..................................................................18系統(tǒng)功能介紹...................................................................18選擇通話類型和設(shè)置余額.........................................................204.3通話開始........................................................................214.4通話結(jié)束........................................................................22結(jié)論.................................................................................23參考文獻.............................................................................24致謝.................................................................................26附錄A................................................................................27附錄B................................................................................28附錄C................................................................................32附錄D................................................................................33附錄E................................................................................34附錄F...............................................................................36附錄G................................................................................37
緒論1.1課題研究的目的時鐘計時器在現(xiàn)在應(yīng)用場合非常的廣泛,近年來,隨著科學(xué)技術(shù)的進步和時代的發(fā)展,人們對時鐘的功能和精度提出了越來越高的要求,各種時鐘的設(shè)計也越來越重要。秒表/時鐘計時器是在一種計時器上實現(xiàn)兩種基本功能的一種器件。它廣泛應(yīng)用于各種場所,同時,它以其小巧,價格低廉,走時精度高,使用方便,功能多,便于集成化,而受到廣大消費者的喜愛。近年來隨著計算機技術(shù)的飛速發(fā)展,計算機也正式形成了通用計算機系統(tǒng)和嵌入式計算機系統(tǒng)二個分支。單片機作為最典型的嵌入式系統(tǒng),由于其微小的體積和極低的成本,廣泛應(yīng)用于家用電器、儀器儀表、工業(yè)控制單元以及通信產(chǎn)品中,成為現(xiàn)代電子系統(tǒng)中最重要的智能化工具。同時數(shù)模電技術(shù)、微電子技術(shù)也快速發(fā)展使得大量集成芯片出現(xiàn),從而實現(xiàn)很多簡單功能代替了原來的模擬電路。這樣利用單片機、集成芯片和電子電路就可以很方便的進行設(shè)計,其中最典型、現(xiàn)在應(yīng)用也很多的就是電子產(chǎn)品的設(shè)計。本設(shè)計就是利用單片機技術(shù)將秒表和時鐘兩種計時器的功能集中到一種計時裝置上,從而實現(xiàn)計時器功能的集成化,使其使用起來更加方便。本設(shè)計的一大特點就是在硬件設(shè)計中采用實時時鐘芯片來實現(xiàn)計時,大大簡化了硬件電路,從而使設(shè)計更加簡便易行。1.2國內(nèi)外發(fā)展現(xiàn)狀在國外,電子計時器在集成電路發(fā)明后,只用短短幾年時間就完成了技術(shù)飛躍,經(jīng)過激烈的市場競爭,現(xiàn)在的計時器技術(shù)己經(jīng)相當成熟。計時器已慢慢地脫離原來的“輔助計時工具的功能定位,正向著多功能化、可編程化方向發(fā)展,在各個領(lǐng)域都得到了廣泛的應(yīng)用。國內(nèi)也有廠商利用計時器芯片開發(fā)新的產(chǎn)品,但對計時器技術(shù)的研究、計時器芯片的設(shè)計還處于起步階段。計時器的主要功能還是在于“計時”,不妨稱之為“低檔計時器”。即便是對這種計時器,很多廠商也只從事計時器的設(shè)計、銷售業(yè)務(wù)。1.3課題的主要技術(shù)路線在本次設(shè)計基于現(xiàn)場可編程邏輯器件FPGA進行設(shè)計,應(yīng)用硬件描述語言VerilogHDL編程并在Altera公司的QuartusⅡ軟件上實現(xiàn)仿真。需要進行計時功能的實現(xiàn),通過撥碼開關(guān)輸入、數(shù)碼管顯示來達成運算目的。FPGA技術(shù)及硬件描述語言2.1FPGA的介紹2.1.1可編程邏輯器件發(fā)展簡史 隨著微電子設(shè)計技術(shù)與工藝的發(fā)展,數(shù)字集成電路從電子管、晶體管、中小規(guī)模集成電路、超大規(guī)模集成電路逐步發(fā)展到今天的專用集成電路(ASIC)。ASIC的出現(xiàn)降低了產(chǎn)品的生產(chǎn)成本,提高了系統(tǒng)的可靠性,縮小了設(shè)計的物理尺寸,推動了社會的數(shù)字化進程。但是ASIC因其設(shè)計周期長,改版投資大,靈活性差等缺陷制約著它的應(yīng)用范圍。硬件工程師希望有一種更靈活的設(shè)計方法,根據(jù)需要,在實驗室就能設(shè)計、更改大規(guī)模數(shù)字邏輯,研制自己的ASIC并馬上投入使用,這是提出可編程邏輯器件的基本思想??删幊踢壿嬈骷S著微電子制造工藝的發(fā)展取得了長足的進步。從早期的只能存儲少量數(shù)據(jù),完成簡單邏輯功能的可編程只讀存儲器(PROM)、紫外線可擦除只讀存儲器(EPROM)和電可擦除只讀存儲器(E2PROM),發(fā)展到能完成中大規(guī)模的數(shù)字邏輯功能的可編程陣列邏輯(PAL)和通用陣列邏輯(GAL),今天已經(jīng)發(fā)展成為可以完成超大規(guī)模的復(fù)雜組合邏輯與時序邏輯的復(fù)雜可編程邏輯器件(CPLD)和現(xiàn)場可編程門陣列(FPGA)。隨著工藝技術(shù)的發(fā)展與市場的需要,超大規(guī)模、高速、低功耗的新型FPGA/CPLD不斷推陳出新。新一代的FPGA甚至集成了中央處理器(CPU)或數(shù)字處理器(DSP)內(nèi)核,在一片F(xiàn)PGA上進行軟硬件協(xié)同設(shè)計,為實現(xiàn)片上可編程系統(tǒng)(SOPC,SystemOnProgrammableChip)提供了強大的硬件支持。2.1.2可編程邏輯器件的 基本結(jié)構(gòu)可編程邏輯器件的基木結(jié)構(gòu)如圖2.1所示。由輸入控制電路、與陣列、或陣列以及輸出控制電路組成。在輸入控制電路中,輸入信號經(jīng)過輸入緩沖單元產(chǎn)生每個輸入變量的原變量和反變量,并作為與陣列的輸入項。與陣列由若干個與門組成,輸入緩沖單元提供的各輸入項被有選擇地連接到各個與門輸入端,每個與門的輸出則是部分輸入變量的乘積項。各與門輸出又作為或陣列的輸入,這樣或陣列的輸出就是輸入變量的與或形式。輸出控制電路將或陣列輸出的與或式通過三態(tài)門、寄存器等電路,一方面產(chǎn)生輸出信號,另一方面作為反饋信號送回輸入端,以便實現(xiàn)更復(fù)雜的邏輯功能。因此,利用可編程邏輯器件可以方便地實現(xiàn)各種邏輯功能。輸入控輸入控制與陣列或陣列輸出控制…………輸入輸出2.1.3可編程邏輯器件分類廣義上講,可編程邏輯器件是指一切通過軟件手段更改、配置器件內(nèi)部連接結(jié)構(gòu)和邏輯單元,完成既定設(shè)計功能的數(shù)字集成電路。目前常用的可編程邏輯器件主要有簡單的邏輯陣列(PAL/GAL)、復(fù)雜可編程邏輯器件(CPLD)和現(xiàn)場可編程門陣列(FPGA)等3大類。PAL/GALPAL是ProgrammableArrayLogic的縮寫,即可編程陣列邏輯;GAL是GenericArrayLogic的縮寫,即通用可編程陣列邏輯。PAL/GAL是早期可編程邏輯器件的發(fā)展形式,其特點是大多基于E2CMOS工藝,結(jié)構(gòu)較為簡單,可編程邏輯單元多為與、或陣列,可編程邏輯單元密度較低,僅能使用于某些簡單的數(shù)字邏輯電路。雖然PAL/GAL密度較低,但是它們一出現(xiàn)即以其低功耗,低成本、高可靠性、軟件可編程、可重復(fù)更改等特點引發(fā)了數(shù)字電路領(lǐng)域的巨大震動。雖然目前較復(fù)雜的邏輯電路一般使用CPLD甚至FPGA完成,但是對應(yīng)很多簡單的數(shù)字邏輯電路,GAL等簡單的可編程邏輯器件仍然被大量使用。目前,國內(nèi)外很多對成本十分敏感的設(shè)計都在使用GAL等低成本可編程邏輯器件,越來越多的74系列邏輯電路被GAL取代。GAL等器件發(fā)展至今已經(jīng)近20年了,新一代的GAL以功能靈活,小封裝、低成本、重復(fù)可編程、應(yīng)用靈活等特點依然在數(shù)字電路領(lǐng)域扮演著重要的角色。目前比較大的GAL器件供應(yīng)商主要是Lattice半導(dǎo)體。CPLDCPLD是ComplexProgrammableLogicDevice的縮寫,即復(fù)雜的可編程邏輯器件。CPLD是在PAL、GAL的基礎(chǔ)上發(fā)展起來的,一般也采用稱為E2CMOS工藝,也有少數(shù)廠商采用Flash工藝,其基本結(jié)構(gòu)由可編程I/O單元、基本邏輯單元、布線池和其他輔助功能模塊構(gòu)成。CPLD可實現(xiàn)的邏輯功能比PAL、GAL有了大幅度的提升,一般可以完成設(shè)計中較復(fù)雜、較高速度的邏輯功能,如接口轉(zhuǎn)換、總線控制等。CPLD的主要器件供應(yīng)商有Altera、Lattice和Xilinx等。FPGAFPGA是FieldProgrammableGateArray的縮寫,即現(xiàn)場可編程門陣列。FPGA是在CPLD的基礎(chǔ)上發(fā)展起來的新型高性能可編程邏輯器件,它一般采用SRAM工藝,也有一些專用器件采用Flash工藝或反熔絲(Anti-Fuse工藝等。) FPGA的集成度很高,其器件密度從數(shù)萬系統(tǒng)門到數(shù)千萬系統(tǒng)門不等,可以完成極其復(fù)雜的時序與組合邏輯電路功能,適用于高速、高密度的高端數(shù)字邏輯電路設(shè)計領(lǐng)域。FPGA的基本組成部分有可編程輸入/輸出單元,基本可編程邏輯單元、嵌入式RAM、豐富的布線資源、底層嵌入功能單元、內(nèi)嵌專用硬核等。FPGA的主要器件供應(yīng)商有Xilinx、Altera、Lattice、Actel和Atmel等。2.1.4AlteraCycloneⅡ系列器件介紹AlteraCycloneⅡ采用全銅層、低K值、1.2伏SRAM工藝設(shè)計,裸片尺寸被盡可能最小的優(yōu)化。采用300毫米晶圓,以TSMC成功的90nm工藝技術(shù)為基礎(chǔ),CycloneⅡ器件提供了4,608到68,416個邏輯單元(LE),并具有一整套最佳的功能,包括嵌入式18比特x18比特乘法器、專用外部存儲器接口電路、4kbit嵌入式存儲器塊、鎖相環(huán)(PLL)和高速差分I/O能力。CycloneⅡ器件擴展了FPGA在成本敏感性、大批量應(yīng)用領(lǐng)域的影響力,延續(xù)了第一代Cyclone器件系列的成功。CycloneⅡ器件包含了許多新的特性,如嵌入存儲器、嵌入乘法器、PLL和低成本的封裝,這些都為諸如視頻顯示、數(shù)字電視DTV)、機頂盒STB)、DVD播放器、DSL調(diào)制解調(diào)器、家用網(wǎng)關(guān)和中低端路由器等批量應(yīng)用進行了優(yōu)化。本設(shè)計正是采用CycloneⅡ系列的芯片EP2C35672C6。該芯片的空間足夠應(yīng)付該系統(tǒng)所需要的資源。2.1.5FPGA的開發(fā)流程FPGA開發(fā)基本流程包括:設(shè)計輸入、設(shè)計仿真、設(shè)計綜合、布局布線等,它們的連接關(guān)系如圖它們的連接關(guān)系如圖2.2所示。圖2.2中FPGA開發(fā)流程圖設(shè)計綜合是整個FPGA設(shè)計流程中一個重要的步驟,它將HDL代碼生成用于布局布線的網(wǎng)表和相應(yīng)的約束。而且隨著新一代FPGA芯片頻率和密度的增長,時序收斂問題越來越嚴重,綜合已經(jīng)成為整個設(shè)計成敗的關(guān)鍵。通常芯片供應(yīng)商的FPGA軟件中都包含綜合功能,但它相對簡單,不能適應(yīng)新一代FPGA芯片的發(fā)展,需要更加專業(yè)的綜合工具。圖2.2AlteraFPGA的開發(fā)流程2.2FPGA設(shè)計方法在FPGA設(shè)計中,有許多重要的原則和規(guī)律可循,掌握這些原則和規(guī)律,人們可以設(shè)計出許多高性能的電子系統(tǒng)。硬件原則主要針對HDL代碼編寫而言的。硬件描述語言,它通過對硬件的抽象,最終實現(xiàn)在芯片內(nèi)部的實際電路。因此評判一段HDL代碼的優(yōu)劣的最終標準是:其描述并實現(xiàn)的硬件電路的性能(主要是指面積和速度)。評價一個設(shè)計的代碼水平,主要從設(shè)計工程師所構(gòu)想的硬件實現(xiàn)方案的效率以及合理性來分析。一個硬件系統(tǒng),通過何種方式進行模塊劃分與任務(wù)分配,使用算法和實現(xiàn)功能,以及FPGA的規(guī)模估算、數(shù)據(jù)接口設(shè)計等,具體到FPGA的設(shè)計就要求對設(shè)計的全局有個宏觀上的合理安排。一般來說實時性要求高、頻率快、功耗小的功能模塊適合使用CPLD實現(xiàn)。而FPGA與CPLD相比,更適合實現(xiàn)規(guī)模較大、頻率較高、寄存器資源使用較多的設(shè)計。面積和速度的平衡與互換原則進行FPGA設(shè)計時的一個重要原則。這里“面積”是指一種設(shè)計所要消耗的FPGA/CPLD的邏輯資源的數(shù)量,對于FPGA可以用所消耗的觸發(fā)器(FF)和查找表(LUT)來衡量,更一般的衡量方式可以用設(shè)計所占用的等價邏輯門數(shù)?!八俣取笔侵冈O(shè)計在芯片上穩(wěn)定運行,所能夠達到的最高頻率,這個頻率由設(shè)計的時序狀況決定,和設(shè)計滿足的時鐘周期,時鐘建立時間(ClockSetupTime),時鐘保持時間(ClockHoldTime等眾)多時序特征量密切相關(guān)。面積和速度是對立統(tǒng)一的矛盾體。要求一個設(shè)計同時具備運行頻率最高而且面積最小是不現(xiàn)實的??茖W(xué)的設(shè)計方法是在滿足設(shè)計時序要求的前提下,占用最小的芯片面積?;蛘咴谒?guī)定的面積下,頻率更高。這兩種目標充分體現(xiàn)了面積和速度的平衡思想。相比之下,滿足時序、工作頻率的要求更重要一些,當兩者沖突時,采用速度優(yōu)先的準則。采用同步時序設(shè)計是FPGA設(shè)計的一個重要原則。它可以使靜態(tài)時序分析變得簡單而且可靠,能有效地避免毛刺的影響,使設(shè)計更加有效,還可以減小環(huán)境對芯片的影響。在遵循這一原則的時候,應(yīng)該盡可能的在設(shè)計中使用同一時鐘,時鐘走全局網(wǎng)絡(luò),同時避免使用混合時鐘采樣數(shù)據(jù)。2.3利用硬件描述語言(HDL)的硬件電路設(shè)計方法硬件描述語言,就是可以描述電路的功能、信號連接關(guān)系及定時關(guān)系的語言。它能比電路圖更有效地表示硬件電路的特性。利用硬件描述語言編程來表示邏輯器件及系統(tǒng)硬件的功能和行為,是該設(shè)計方法的一個重要特征。隨著大規(guī)模專用集成電路(ASIC)的開發(fā)和研制,為了提高開發(fā)的效率,增加已有開發(fā)成果的可繼承性以及縮短開發(fā)時間,各ASIC研制和生產(chǎn)廠家相繼開發(fā)了用于各自目的的硬件描述語言。其中最有代表性的是美國國防部開發(fā)的VHDL語言,Verilog公司開發(fā)的VerilogHDL以及日本電子工業(yè)振興協(xié)會開發(fā)的UDL/I語言。利用硬件描述語言(HDL)的硬件電路設(shè)計方法具有以下特點:首先是該設(shè)計方法是首先從系統(tǒng)設(shè)計入手,從頂層進行功能劃分和結(jié)構(gòu)設(shè)計。其次,系統(tǒng)中可大量采用ASIC芯片由于目前眾多的制造ASIC芯片的廠家,他們的工具軟件都可以支持HDL語言的編程,因此,硬件設(shè)計人員在設(shè)計硬件電路時,無須受只能使用通用元器件的限制,而可以根據(jù)硬件電路設(shè)計的需要,設(shè)計自用的ASIC芯片或可編程邏輯器件。這樣最終會使系統(tǒng)電路設(shè)計更趨合理,體積也可大為縮小。采用系統(tǒng)早期仿真從自上至下的設(shè)計過程可以看到,在系統(tǒng)設(shè)計過程中要進行三級仿真,即行為層次仿真、RTL層次仿真和門級層次仿真。也就是說進行系統(tǒng)數(shù)學(xué)模型的仿真、系統(tǒng)數(shù)據(jù)流的仿真和系統(tǒng)門級電路原理的仿真。這三級仿真貫穿系統(tǒng)硬件設(shè)計的全過程,從而可以在系統(tǒng)設(shè)計早期發(fā)現(xiàn)設(shè)計中存在的問題。在采用傳統(tǒng)的硬件電路設(shè)計方法時,往往要求設(shè)計者在設(shè)計電路前應(yīng)寫出該電路的邏輯表達式或真值表(或時序電路的狀態(tài)表)。這一工作是很困難和繁雜的,特別是在系統(tǒng)比較復(fù)雜時更是如此。在用HDL語言設(shè)計硬件電路時,就可以使設(shè)計者免除編寫邏輯表達式或真值表之苦。這樣使硬件電路的設(shè)計難度有了大幅度的下降,從而也縮短了硬件電路的設(shè)計周期。在傳統(tǒng)的硬件電路設(shè)計中,最后形成的主要文件是電原理圖,而采用HDL語言設(shè)計系統(tǒng)硬件電路時,主要的設(shè)計文件是用HDL語言編寫的源程序。如果需要也可以轉(zhuǎn)換為電原理圖形式輸出。用HDL語言源程序作為歸檔文件有很多好處。其一是資料量小,便于保存。其二是可繼承性好。當設(shè)計其它硬件電路時,可以使用文件中的某些庫、進程和過程等描述某些局部硬件電路的程序。其三是閱讀方便。閱讀程序比閱讀原理圖要更容易一些。閱讀者很容易在程序中看出某一硬件電路的工作原理和邏輯關(guān)系。而閱讀電原理圖,推知其工作原理卻需要較多的硬件知識和經(jīng)驗,而且看起來也不那么一目了然。2.4VerilogHDL語言的設(shè)計流程VerilogHDL語言采用自頂而下(Top-Down)設(shè)計的基本概念?,F(xiàn)代集成電路制造工藝技術(shù)的改進,使得在一個芯片上集成數(shù)十萬乃至數(shù)千萬個器件成為可能。但很難設(shè)想僅有一個設(shè)計師獨立設(shè)計如此大規(guī)模的電路而不出現(xiàn)錯誤。利用層次化、結(jié)構(gòu)化的設(shè)計方法,一個完整的硬件設(shè)計任務(wù)首先由總設(shè)計師劃分為若干個可操作的模塊,編制出相應(yīng)的模型(行為的或結(jié)構(gòu)的),通過仿真加以驗證后,再把這些模塊分配給下一層的設(shè)計師。這就允許多個設(shè)計師同時對其下層設(shè)計師完成的設(shè)計用行為級上層模塊對其所做的設(shè)計進行驗證。為了提高設(shè)計質(zhì)量,如果其中有一部分模塊可由商業(yè)渠道可得,用戶可以購買它們的知識產(chǎn)權(quán)的使用權(quán)(IP核的重用),以節(jié)省時間和開發(fā)經(jīng)費,圖2.3為自頂而下(Top-Down)的示意圖,以設(shè)計樹的形式繪出。自頂而下的設(shè)計(即Top-Down設(shè)計)是從系統(tǒng)級開始,把系統(tǒng)劃分為基本單元,然后再把每個基本單元劃分為下一層次的基本單元,一直這樣做下去,直到可以直接用EDA元件庫中的基本元件來實現(xiàn)為止。對于設(shè)計開發(fā)整機電子產(chǎn)品的單位和個人來說,新產(chǎn)品的開發(fā)總是從系統(tǒng)設(shè)計入手,先進方案的總體論證、功能描述、任務(wù)和指標的分配。隨著系統(tǒng)變得復(fù)雜和龐大,特別需要在樣機問世之前,對產(chǎn)品的全貌有一定的預(yù)見性。目前,EDA技術(shù)的發(fā)展使得設(shè)計師有可能實現(xiàn)真正的自頂而下的設(shè)計。系系統(tǒng)級設(shè)模塊A模塊B模塊C模塊A1模塊A2模塊B1模塊B2模塊C1模塊C2圖2.3Top-Dowm設(shè)計思想復(fù)雜數(shù)字邏輯電路和系統(tǒng)的層次化、結(jié)構(gòu)化設(shè)計隱含著對系統(tǒng)硬件設(shè)計方案的逐次分解。在設(shè)計過程中的任意層次,至少得有一種形式來描述硬件。硬件的描述特別是行為描述通常成為行為建模。在集成電路設(shè)計的每一層次,硬件可以分為一些模塊,該層次的硬件結(jié)構(gòu)由這些模塊的互聯(lián)描述,該層次的硬件的行為有這些模塊的行為描述。這些模塊稱為該層次的基本單元。而該層次的基本單元又由下一層次的基本單元互聯(lián)而成。如此下去,完整的硬件設(shè)計就可以由圖1.1所示的設(shè)計樹描述。在不同的層次都可以進行仿真以對設(shè)計思想進行驗證。EDA工具提供了有效的手段來管理錯綜復(fù)雜的層次,即可以很方便的查看某一層次某模塊的源代碼或電路圖以改正仿真時發(fā)現(xiàn)的錯誤。以下是具體模塊的設(shè)計編譯和仿真的過程。在不同的層次做具體模塊的設(shè)計所用的方法也有所不同,在高層次上往往編寫一些行為級的模塊通過仿真加以驗證,其主要目的是系統(tǒng)性能的總體考慮和各模塊的指標分配,并非具體電路的實現(xiàn),因而綜合及其以后的步驟往往不需進行。而當設(shè)計的層次比較接近底層時,行為描述往往需要用電路邏輯來實現(xiàn)。這時的模塊不僅需要通過仿真加以驗證,還需要進行綜合、優(yōu)化、布線和后仿真。總之具體電路是從底向逐步的。EDA工具往往不僅支持HDL描述也支持電路圖輸入,有效地利用這兩種方法是提高設(shè)計效率的辦法之一。圖2.4所示的流程圖簡要地說明了模塊的編譯和測試過程。從圖中可以看出,模塊設(shè)計流程主要有兩大主要功能部分組成:設(shè)計開發(fā):即從編寫設(shè)計文件→綜合到布局布線→電路生成這樣一系列步驟。設(shè)計驗證:也就是進行各種仿真的一系列步驟,如果在仿真過程中發(fā)現(xiàn)問題就返回設(shè)計輸入進行修改。具體工藝器件的優(yōu)化、映像和布局布線。由于各種由于各種ASIC和FPGA器件的工藝各不相同,因而當用不同廠家的不同器件來實現(xiàn)已驗證的邏輯網(wǎng)表(EDIF文件)就需要不同的基本單元庫與布線延遲模型與之對應(yīng),才能進行優(yōu)化、映像和布局布線,以及布局布線后準確的仿真驗證。基本單元庫與布線延遲模型由熟悉本廠工藝的工程師提供,再由EDA廠商的工程師編入相應(yīng)的處理程序,而邏輯電路設(shè)計師只需用一文件說明所用的工藝期間和約束條件,EDA工具就會自動地根據(jù)這一文件選擇相應(yīng)的庫和模型進行準確的處理,從而大大提高設(shè)計效率。圖2.4HDL設(shè)計流程圖2.5QuartusⅡ概述及其設(shè)計流程2.5.1QuartusⅡ概述QuartusⅡ是Altera公司的綜合性PLD開發(fā)軟件,支持原理圖、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多種設(shè)計輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計輸入到硬件配置的完整PLD設(shè)計流程。QuartusⅡ可以在XP、Linux以及Unix上使用,除了可以使用Tcl腳本完成設(shè)計流程外,提供了完善的用戶圖形界面設(shè)計方式。具有運行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點。QuartusⅡ支持Altera的IP核,包含了LPM/MegaFunction宏功能模塊庫,使用戶可以充分利用成熟的模塊,簡化了設(shè)計的復(fù)雜性、加快了設(shè)計速度。對第三方EDA工具的良好支持也使用戶可以在設(shè)計流程的各個階段使用熟悉的第三方EDA工具。此外,QuartusⅡ通過和DSPBuilder工具與Matlab/Simulink相結(jié)合,可以方便地實現(xiàn)各種DSP應(yīng)用系統(tǒng);支持Altera的片上可編程系統(tǒng)(SOPC)開發(fā),集系統(tǒng)級設(shè)計、嵌入式軟件開發(fā)、可編程邏輯設(shè)計于一體,是一種綜合性的開發(fā)平臺。MaxplusⅡ作為Altera的上一代PLD設(shè)計軟件,由于其出色的易用性而得到了廣泛的應(yīng)用。目前Altera已經(jīng)停止了對MaxplusⅡ的更新支持,QuartusⅡ與之相比不僅僅是支持器件類型的豐富和圖形界面的改變。Altera在QuartusⅡ中包含了許多諸如SignalTapⅡ、ChipEditor和RTLViewer的設(shè)計輔助工具,集成了SOPC和HardCopy設(shè)計流程,并且繼承了MaxplusⅡ友好的圖形界面及簡便的使用方法。AlteraQuartusⅡ作為一種可編程邏輯的設(shè)計環(huán)境,由于其強大的設(shè)計能力和直觀易用的接口,越來越受到數(shù)字系統(tǒng)設(shè)計者的歡迎。Altera的QuartusⅡ可編程邏輯軟件屬于第四代PLD開發(fā)平臺。該平臺支持一個工作組環(huán)境下的設(shè)計要求,其中包括支持基于Internet的協(xié)作設(shè)計。Quartus平臺與Cadence、ExemplarLogic、MentorGraphics、Synopsys和Synplicity等EDA供應(yīng)商的開發(fā)工具相兼容。改進了軟件的LogicLock模塊設(shè)計功能,增添了FastFit編譯選項,推進了網(wǎng)絡(luò)編輯性能,而且提升了調(diào)試能力。支持MAX7000/MAX3000等乘積項器件。2.5.2QuartusⅡ設(shè)計流程建立新工程:首先將所設(shè)計工程項目劃分為若干子模塊,將每個子模塊單獨存放在一個文件夾中,并分別進行編譯,驗證通過后,將每個子模塊的VHDL文本文件添加到總工程文件夾中,并建立圖元(建立圖元block,右鍵點擊.V文件,選擇createsymbolfilesforcurrentfiles),將各個圖元(亦即子模塊)連接起來構(gòu)成總體設(shè)計項目。設(shè)計各子模塊:編寫各子模塊相應(yīng)的代碼,并分別進行編譯,驗證通過后將各子模塊VHDL文件添加到頂層設(shè)計中,創(chuàng)建圖元,進行連接以完成總體項目的設(shè)計。這部分就是將管腳連好。在原理圖編輯中,英文的大小寫代表相同的含義,只要器件連接線的節(jié)點名稱相同就會默認為是連接的,總線(Bus)在圖形編輯窗口顯示的是一條粗線,總線必須在名稱的后面加上“[a..b”,]表示一條總線內(nèi)所含有的節(jié)點編號,原理圖編輯的文件擴展名為“.bdf”,在QuartusⅡ中工程名稱必須與頂層實體名稱相同,且VHDL設(shè)計中實體名稱亦為相同的名字,否則不能進行編譯。編譯工程仿真:波形矢量文件的擴展名為“.vwf”,仿真分為功能仿真和時序仿真,也稱為前仿真和后仿真,功能仿真是忽略延時后的仿真,是最理想的仿真,時序仿真則是加上了一些延時的仿真,是最接近于實際的仿真,在設(shè)計中通常先做功能仿真驗證邏輯的正確性,后做時序仿真驗證時序是否符合要求,需注意默認為時序仿真,在設(shè)置功能仿真后需要生成功能仿真網(wǎng)絡(luò)表。系統(tǒng)總體設(shè)計本系統(tǒng)總體設(shè)計框圖如圖3.1所示。此設(shè)計主要由計費模塊、預(yù)設(shè)模塊、時鐘分頻模塊、分拆模塊、數(shù)碼管顯示模塊、警告模塊組成??刂撇糠质窃撜n程設(shè)計的核心部分,用硬件描述語言Verilog來描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為和功能,采用“自頂向下”的設(shè)計方法,將電路的硬件轉(zhuǎn)變?yōu)檐浖O(shè)計。整個系統(tǒng)的RTL視圖見附錄A。計費模塊主控部分通話狀態(tài)分頻電路定時器計時發(fā)出警告數(shù)碼管顯示預(yù)設(shè)類型圖3.1系統(tǒng)設(shè)計結(jié)構(gòu)框圖3.1計費模塊介紹本模塊是用于設(shè)置本次所通話的類型和初始余額的。根據(jù)電話局反饋回來的信號,代表話務(wù)種類(返回信號可自己輸入),“00”表示目前沒打電話,“01”表示市內(nèi)通話,“10”表示長途通話,“11”表示特區(qū)童話;并用DE2板上的兩個數(shù)碼管來顯示通話為何種類型;利用利用DE2板上的兩個數(shù)碼管用來顯示卡內(nèi)余額(可自己設(shè)定初始余額),其單位為角,這里假定能顯示的最大數(shù)額為99角。余額根據(jù)打市話每分鐘2角,打長話7角,打特話12角來計算;余額過少時的告警信號。當打市話時,余額少于2角,打長話時,余額少于6角,打特話時,少于12角,即會產(chǎn)生告警信號;當告警時間過長(如超過1分鐘)時自動切斷通話信號。計費模塊的主體部分VerilogHDL語言描述見附錄B。3.2預(yù)設(shè)模塊介紹本模塊是用于設(shè)置本次所通話的類型和初始余額的。當通話按鍵開關(guān)還沒被按下時,用戶可以隨自己的意愿預(yù)設(shè)想要實現(xiàn)的通話類型和初始余額,一旦通話按鍵開關(guān)被按下,通話類型和初始余額這兩個值就會被鎖存,這時再去做任何調(diào)整,該系統(tǒng)也不會產(chǎn)生任何反應(yīng)。3.3時鐘分頻模塊介紹本模塊是用于將MHZ50的頻率分成1HZ的頻率。分頻的實現(xiàn)是通過一個計數(shù)器來實現(xiàn)的,由于系統(tǒng)自帶的外部晶振頻率為50MHZ,所以我設(shè)置一個新的時鐘,令它在原時鐘的上升沿觸發(fā),而且每25000000次就取反一次,由此的得到的新時鐘就是1HZ,即一個時鐘周期為1S。時鐘分頻模塊的主體部分VerilogHDL語言描述見附錄C。圖3.2為始終分頻模塊的仿真圖,由于25000000倍仿真太大,無法看清這里只做了25倍的仿真。時鐘分頻模塊所對應(yīng)的RTL視圖見附錄D。圖3.2分頻模塊的仿真圖3.43.4分拆模塊介紹本模塊是用于將十位數(shù)和個位數(shù)進行分拆。當輸入的變量改變時,就會觸發(fā)該模塊,而分拆的實際實現(xiàn)是將變量對10進行取整,得到的就是十位數(shù)字,而將變量對10進行求余得到的就是個位數(shù)字,最后調(diào)用顯示模塊用數(shù)碼管來進行顯示。圖3.3為分拆模塊所對應(yīng)的RTL視圖。圖3.3分拆模塊的RTL視圖3.5數(shù)碼管顯示模塊介紹本模塊是用于將數(shù)碼轉(zhuǎn)換為對應(yīng)共陰數(shù)碼管的顯示碼。該模塊主要是根據(jù)7段共陰數(shù)碼管數(shù)碼管的特性,將0到9對應(yīng)的顯示碼譯過來。顯示部分是系統(tǒng)的輸出部分,用于顯示按鍵值及計算結(jié)果,由于數(shù)字系統(tǒng)的數(shù)據(jù)運算都是二進制的,而輸出表達式都是BCD碼,為了滿足BCD碼的譯碼顯示,最方便的方法就是利用譯碼程序在FPGA中實現(xiàn)。本文采用的是共陽極七段數(shù)碼管,顯示數(shù)字時需要將對應(yīng)管腳置為低電平,輸出時,從左到右,按從高到低位的順序依次接g、f、e、d、c、b、a。七段譯碼器的基本結(jié)構(gòu)如圖3.4所示。數(shù)碼管顯示模塊的主體部分VerilogHDL語言描述見附錄E。數(shù)碼管顯示模塊對應(yīng)的RTL視圖見附錄F。abfg圖3.4七段譯碼器的結(jié)構(gòu)3.6警告模塊介紹該模塊主要功能為當用戶的余額不足時,主動發(fā)出信號燈警告。通過數(shù)碼管的顯示,可顯示出當前用戶所剩下的金額,一旦用戶的余額不足以支持當次通話的時候,此模塊就會發(fā)出警告,警告通過指示燈來顯示,而超過時間則會自動切斷通話。分拆模塊的主體部分VerilogHDL語言描述見附錄G。3.7邏輯資源使用情況整個計費系統(tǒng)編譯后資源使用情況不足1%,屬于一個微型系統(tǒng)。具體的系統(tǒng)編譯后的報告如圖3.5所示。圖3.5系統(tǒng)編譯后的報告系統(tǒng)的操作與分析4.1系統(tǒng)功能介紹如圖4.1所示,“1”為系統(tǒng)電源開關(guān),當系統(tǒng)開關(guān)打開,載入程序,通過“2”,我們可以隨意設(shè)置所通話的類型,通話類型將通過“8”顯示出來,“00”表示目前沒打電話,“01”表示市內(nèi)通話,“10”表示長途通話,“11”表示特區(qū)通話。通過“5”設(shè)置余額,“SW0”到“SW7”之間分別代表金額的1角,2角,4角,8角,16角,32角,64角,99角,如果“SW0”和“SW3”同時打上,就是1+8=9角,如此類推。系統(tǒng)所設(shè)置的余額將在“11”上顯示。當系統(tǒng)上的余額足夠撥打用戶所設(shè)置的通話類型時,打開“3”后,開始撥打電話,同時“9”和“10”的計時將開始,“4”指示燈綠光亮起,表示正在處于通話狀態(tài)。根據(jù)不同類型的通話,通話每分鐘的收費也不一樣,市內(nèi)通話每分鐘2角,長途通話每分鐘7角,特區(qū)通話每分鐘12角,當系統(tǒng)余額不足以支撐當前通話的下分鐘收費時,“6”指示燈紅燈亮起,代表警告信號。當告警時間過長(如超過1分鐘)時,系統(tǒng)將會自動切斷通話信號。最后,當需要進行下一次通話時,必須按下“7”,進行系統(tǒng)復(fù)位。1-系統(tǒng)總開關(guān);2-通話類型設(shè)置;3-通話開關(guān);4-通話狀態(tài)指示燈;5-金額設(shè)置;6-警告指示燈;7-復(fù)位鍵;8-通話類型顯示;9-通話分鐘計時顯示;10-通話秒鐘計時顯示;11-余額顯示圖4.1系統(tǒng)功能介紹4.2選擇通話類型和設(shè)置余額下面將會使用本系統(tǒng)進行一個簡單的操作。首先我們先設(shè)置通話類型為長途通話,數(shù)碼管上顯示為“10”,后面系統(tǒng)扣費將按照每分鐘7角來進行。余額設(shè)置為9角。具體系統(tǒng)操作顯示如圖4.2。圖4.2通話類型和余額設(shè)置的視圖4.3通話開始當打開通話開關(guān),用戶通話開始,計費系統(tǒng)也同時啟動,系統(tǒng)余額馬上扣除7角,剩余2角的余額。通過綠色指示燈可以得知正在進行通話。同時系統(tǒng)的計時器也在進行,如圖4.3所示,目前通話為0分11秒。由于系統(tǒng)的余額為2角,不足以支撐下一分鐘的長途通話,于是,警告信號指示燈亮起。圖4.3正在通話的視圖4.4通話結(jié)束當系統(tǒng)的告警時間過長(如超過1分鐘)時,系統(tǒng)將會自動切斷通話信號。如圖4.4所示,因為系統(tǒng)的余額為2角,不足以支撐當前通話的下一分鐘扣費,于是系統(tǒng)在告警一分鐘后切斷了通話信號,此時通話狀態(tài)燈也同時熄滅,而通話時間也正好顯示為1分0秒,系統(tǒng)當前余額仍為2角。圖4.4通話被切斷的視圖結(jié)論畢業(yè)設(shè)計跟我們平時上的基礎(chǔ)課或者專業(yè)課不同,它是一個重要課題,要用到很多綜合性的知識,最重要的是讓學(xué)生體驗一下做科學(xué)研究的整個過程。也是畢業(yè)最重要的一個過程,它最能把理論知識準確運用到實際當中的去,做好了它就是就是一份成功的畢業(yè)設(shè)計了。經(jīng)過幾個月的奮戰(zhàn)我的畢業(yè)設(shè)計終于完成了。在我還沒有做畢業(yè)設(shè)計以前覺得畢業(yè)設(shè)計只是對這幾年來所學(xué)知識的單純性的總結(jié),但是通過這次做畢業(yè)設(shè)計發(fā)現(xiàn)自己的看法有點太片面和簡單了。通過這次畢業(yè)設(shè)計的編制使我明白了自己原來的知識還是比較欠缺。自己要學(xué)習(xí)的東西還太多太多,以前總是覺得自己什么東西都會,什么東西都懂,有點眼高手低。通過這次畢業(yè)設(shè)計的收集編制等等,我才明白學(xué)習(xí)是一個長期積累的過程,在以后的工作和生活當中我們都應(yīng)該不斷的努力學(xué)習(xí),努力的去提高自己知識和綜合素質(zhì)。這個畢業(yè)設(shè)計是我本科學(xué)習(xí)階段最后一次將自己所學(xué)理論與實際相結(jié)合的機會,通過這次比較完整的基于FPGA的計時器設(shè)計,我自己的理論與實踐相結(jié)合的能力有了大幅度的提升。在溫習(xí)了所學(xué)專業(yè)知識的基礎(chǔ)上,同時通過查閱專業(yè)書籍、相關(guān)文獻資來解決實際工程問題,這鍛煉了我的綜合運用各項知識和資源的能力。而且通過對整體的掌控,對局部的取舍,以及對細節(jié)的斟酌處理,都使我的實際動手經(jīng)驗得到了極大的豐富,由于程序編寫與處理是一項非常繁瑣非常令人頭疼的工作,完成了這些,也使我的意志、抗壓能力及耐力都得到了不同程度的提升,我相信這些提升是會影響我一輩子的寶貴財富。這一次的設(shè)計讓我積累很多的解決實際問題的經(jīng)驗,使我的頭腦更加靈活,這必然會讓我在未來的工作學(xué)習(xí)中表現(xiàn)出更高的應(yīng)變能力,更強的溝通力和理解力。這也許就是我們在踏入社會前進行畢業(yè)設(shè)計的最主要的目的吧。通過這次的設(shè)計,我對FPGA技術(shù)、VerilogHDL語言以及QuartusⅡ的使用都有了深入的了解。雖然畢業(yè)設(shè)計中內(nèi)容較多,過程繁瑣但這也造就了我豐富的收獲。我采用的是分模塊的設(shè)計方法,各個模塊的設(shè)計我都是隨著設(shè)計的不斷深入而不斷熟悉并學(xué)會應(yīng)用的。能夠完成本次畢業(yè)設(shè)計令我松了一口氣,相信下一次做其它設(shè)計時我會做的更好。參考文獻[1]夏宇聞.Verilog數(shù)字系統(tǒng)教程(第二版)[M].北京:北京航空航天大學(xué)出版社.2002.[2]黃智偉.FPGA系統(tǒng)設(shè)計與實踐[M].北京:電子工業(yè)出版社,2005.[3]徐志軍,徐光輝.CPLD/FPGA的開發(fā)與應(yīng)用[M].北京:電子工業(yè)出版社,2002.[4]崔葛瑾,沈利芳,李偉民.基于FPGA的數(shù)字電路系統(tǒng)設(shè)計[M].西安:西安電子科技大學(xué)出版社,2008.[5]童詩白,華成英.模擬電子技術(shù)基礎(chǔ)(第四版)[M].北京:高等教育出版社,2006.[6]閻石.數(shù)字電子技術(shù)基礎(chǔ)(第五版)[M].北京:高等教育出版社,2005.[7]潘松,黃繼業(yè).EDA技術(shù)實用教程(第二版)[M].北京:科學(xué)出版社,2005.J.Batlle,J.Marti,PRidao,ANewFPGA/DSP-BasedParallelArchitectureforReal-TimeImageProcessing[J],Real-TimeImaging,2002,8(5):345~356.P.Zhong,M.MartonosiandP.Ashar,FPGA-basedSATsolverarchitecturewithnear-zerosysthesisandlayoutoverhead[J].IEEEProc.-Comput.Digit.Tech,May2000.Vol.147No.3:135~141.[11]王冬冬.基于FPGA的浮點運算器設(shè)計.萬方數(shù)據(jù)./Thesis_Y1548067.aspx,2009/12/30.致謝四年的讀書生活在這個季節(jié)即將劃上一個句號,而于我的人生卻只是一個逗號,我將面對又一次征程的開始。四年的求學(xué)生涯在師長、親友的大力支持下走得辛苦卻也收獲滿囊,在論文即將付梓之際,思緒萬千心情久久不能平靜。偉人、名人為我所崇拜,可是我更急切地要把我的敬意和贊美獻給一位平凡的人我的導(dǎo)師——譚北海老師。我不是您最出色的學(xué)生而您卻是我最尊敬的老師。您治學(xué)嚴謹學(xué)識淵博思想深邃視野雄闊,為我營造了一種良好的精神氛圍。授人以魚不如授人以漁,置身其間耳濡目染潛移默化,使我不僅接受了全新的思想觀念,樹立了宏偉的學(xué)術(shù)目標,領(lǐng)會了基本的思考方式。從論文題目的選定,到論文寫作的指導(dǎo),經(jīng)由您悉心的點撥再經(jīng)思考后的領(lǐng)悟,常常讓我有“山重水復(fù)疑無路,柳暗花明又一村”。感謝我的室友們,從不同的家鄉(xiāng)來到同一個城市里,是你們和我共同維系著彼此之間兄弟般的感情,維系著寢室那份家的融洽。四年了,仿佛就在昨天。四年里,我們沒有紅過臉,沒有吵過嘴,沒有發(fā)生上大學(xué)前所擔心的任何不開心的事情。只是今后大家就難得再聚在一起吃每年元旦那頓飯了吧,沒關(guān)系,各奔前程,大家珍重。但愿保研成果的林某學(xué)習(xí)天天向上,留守廣工快快樂樂。我們在一起的日子,我會記一輩子的。感謝我的爸爸媽媽,焉得諼草言樹之背養(yǎng)育之恩無以回報,你們永遠健康快樂是我最大的心愿。在論文即將完成之際,我的心情無法平靜。從開始進入課題到論文的順利完成,有多少可敬的師長、同學(xué)、朋友給了我無言的幫助,在這里請接受我誠摯謝意。人生的道路有許多的坎坷,不是一條通往光明之路,有痛苦,有傷心,有無助,也有面對一切所不能忍受的,這就是生活。但是生活中確實有許多美好的東西,有些時候你不會看到它的本身的色彩。如果你用這一種方式感受不到的話,不妨換一種方式去感受,也許它正是你所需要的那種生活方式。千萬不要放棄生活,你放棄了它,生活也就放棄了你,人生貴在的是感受會感受才會有幸福。在生活中如果你感受的多了,那你才會感受到生活中的美好,你才會知道你在前世所選擇的是今生的最正確的人生路。附錄A系統(tǒng)RTL視圖圖A1RTL視圖附錄B計費模塊的VerilogHDL語言描述moduleMONEY(iclk,iclk_50M,irst,imoney,iset,icall,omoney,otime,set,oclk_counter,oLED_warning,oLED_phoneing);inputiclk;inputiclk_50M;inputirst;inputicall;input[7:0]imoney;input[1:0]iset;output[5:0]oclk_counter;output[6:0]omoney;output[6:0]otime;output[1:0]set;outputoLED_phoneing;outputoLED_warning;regstart;//通話開始,結(jié)束變量reg[1:0]set_r;//什么類型的通話reg[5:0]clk_counter_r;//秒計數(shù)器reg[6:0]omoney_r;//剩余余額reg[6:0]otime_r;//通話多少分鐘計數(shù)器regLED_phoneing_r;//通話燈regLED_warning_r;//余額不足警告燈regSTOP;//余額不足一分鐘后停止assignomoney=omoney_r;assignotime=otime_r;assignset=set_r;assignoclk_counter=clk_counter_r;assignoLED_phoneing=LED_phoneing_r;assignoLED_warning=LED_warning_r;always@(posedgeiclk_50M,negedgeirst)beginif(!irst)start<=0;elseif(STOP)start<=0;elseif(icall)start<=1;elsestart<=0;end//每60秒一分鐘always@(posedgeiclk,negedgeirst)beginif(!irst)clk_counter_r<=0;elseif(start)beginif(clk_counter_r<6'd59)clk_counter_r<=clk_counter_r+1;elseclk_counter_r<=0;endend//通話計時always@(posedgeiclk,negedgeirst)beginif(!irst)otime_r<=0;elseif(clk_counter_r==6'd59)otime_r<=otime_r+1;end//先扣費,后接通電話always@(posedgeiclk,negedgeirst)beginif(!irst)omoney_r<=0;elseif(!icall)beginif(imoney>99)omoney_r<=99;elseomoney_r<=imoney;set_r<=iset;endelsebeginif((otime_r==0)&&(clk_counter_r==0))case(set_r)2'b01:omoney_r<=omoney_r-2;2'b10:omoney_r<=omoney_r-7;2'b11:omoney_r<=omoney_r-12;endcaseif(!LED_warning_r)beginif(clk_counter_r==6'd59)case(set_r)2'b01:omoney_r<=omoney_r-2;2'b10:omoney_r<=omoney_r-7;2'b11:omoney_r<=omoney_r-12;endcaseendelseif(STOP==1)set_r<=0;endend//通話提示always@(posedgeiclk,negedgeirst)beginif(!irst)LED_phoneing_r<=0;elseLED_phoneing_r<=start;end//余額不足提示always@(posedgeiclk,negedgeirst)beginif(!irst)LED_warning_r<=0;elseif(STOP==1)LED_warning_r<=0;elsecase(set_r)2'b01:if(omoney_r<3)LED_warning_r<=1;elseLED_warning_r<=0;2'b10:if(omoney_r<6)LED_warning_r<=1;elseLED_warning_r<=0;2'b11:if(omoney_r<12)LED_warning_r<=1;elseLED_warning_r<=0;endcaseendalways@(posedgeiclk,negedgeirst)beginif(!irst)STOP<=0;elseif((clk_counter_r==6'd59)&&(LED_warning_r==1))STOP<=1;endendmodule附錄C時鐘分頻模塊的VerilogHDL語言描述always@(posedgeclk_in,negedgerst)beginif(!rst)clk_counter<=0;elseif(clk_counter<26'd49999999)clk_counter<=clk_counter+1;elseclk_counter<=0;endalways@(posedgeclk_in,negedgerst)beginif(!rst)clk_out_r<=0;elseif(clk_counter<26'd24999999999)clk_out_r<=1;elseclk_out_r<=0;end附錄D時鐘分頻模塊RTL視圖圖D1RTL視圖附錄E數(shù)碼管顯示模塊的VerilogHDL語言描述modulesegdis(iDIS,oSEG);input[3:0]iDIS;output[6:0]oSEG;reg[6:0]oSEG_r;assignoSEG=oSEG_r;always@(iDIS)begincase(iDIS)4'h1:oSEG_r=7'b1111001;//1的顯示4'h2:oSEG_r=7'b0100100;//2的顯示4'h3:oSEG_r=7'b0110000;//3的顯示4'h4:oSEG_r=7'b0011001;//4的顯示4'h5:oSEG_r=7'b0010010;//5的顯示4'h6:oSEG_
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 車位使用權(quán)轉(zhuǎn)移合同協(xié)議
- 房地產(chǎn)開發(fā)合同書
- 標準車位租賃合同模板
- 土地征收補償合同實施細則
- 品牌代理合作合同權(quán)利轉(zhuǎn)讓協(xié)議
- 醫(yī)用耗材供應(yīng)合同
- 腎上腺皮質(zhì)激素及其相關(guān)藥物的臨床藥理學(xué)課件
- 文化展覽客戶需求挖掘考核試卷
- 拖拉機品牌建設(shè)與傳播考核試卷
- 機床制造業(yè)生產(chǎn)效率提升與精益生產(chǎn)考核試卷
- 2025人教版一年級下冊數(shù)學(xué)教學(xué)進度表
- DeepSeek教案寫作指令
- 休學(xué)復(fù)學(xué)申請書
- 北京2025年02月北京市地質(zhì)礦產(chǎn)勘查院所屬事業(yè)單位公開招考工作人員筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- DeepSeek零基礎(chǔ)到精通手冊(保姆級教程)
- 瓷磚鋪貼勞務(wù)承包協(xié)議書
- 2025年四川司法警官職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試近5年??及鎱⒖碱}庫含答案解析
- 新建污水處理廠工程EPC總承包投標方案(技術(shù)標)
- 《宏觀經(jīng)濟管理研究》課件
- 蘇教版五年級下冊數(shù)學(xué)全冊教案設(shè)計
- GB/T 36548-2024電化學(xué)儲能電站接入電網(wǎng)測試規(guī)程
評論
0/150
提交評論