版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、河南師范大學本科畢業(yè)設計ii基于cpld的數(shù)字鐘摘 要本設計為一個基于cpld的多功能數(shù)字鐘,具有時、分、秒計數(shù)顯示功能,以24小時循環(huán)計數(shù);具有時間校對、鬧鐘以及整點報時功能。本設計采用eda技術,以硬件描述語言vhdl為系統(tǒng)邏輯描述手段。在quartus全集成開發(fā)環(huán)境下,采用自頂向下的設計方法,由各個基本模塊共同構建一個基于cpld的數(shù)字鐘。系統(tǒng)主芯片采用altera公司max 系列的epm570t100c5n,由時鐘模塊、控制模塊、計時模塊、定時模塊、顯示以及報時模塊組成。設計方案經(jīng)編譯和仿真后,可在可編程邏輯器件上下載驗證,本系統(tǒng)能夠完成時、分、秒的顯示,并可由外部按鍵輸入進行數(shù)字鐘的
2、校時、清零、設鬧鐘功能。關鍵詞:數(shù)字鐘;硬件描述語言;vhdl;cpld;動態(tài)掃描a digital clock based on cpldabstractthe design for a multi-functional digital clock, with a hours, minutes and seconds count display to a 24-hour cycle count; have proof functions and the whole point timekeeping function and set a alarm.the use of eda design
3、 technology, hardware-description language vhdl description logic means for the system design documents, in quartus tools environment, a top-down design, by the various modules together build a cpld-based digital clock.the main system chips used epm570t100c5n, make up of the clock module, control mo
4、dule, time module, data decoding module, display and broadcast module. after compiling the design and simulation procedures, the programmable logic device to download verification, the system can complete the hours, minutes and seconds respectively, using keys to modify, cleared, set a alarm.key wor
5、ds: digital clock; hardware description language; vhdl;cpld; dynamic scanning目 錄摘 要iabstractii前 言11 方案選擇及論證31.1方案的比較31.2 芯片的選擇31.3 設計方案的概述42 數(shù)字鐘總體設計方案52.1 數(shù)字鐘的構成52.2 數(shù)字鐘的工作原理62.3 數(shù)字鐘的硬件電路設計73 單元電路設計83.1 分頻模塊電路設計與實現(xiàn)83.2 獨立按鍵消抖模塊103.3 計數(shù)模塊設計與實現(xiàn)123.4 鬧鐘模塊設計與實現(xiàn)153.5 整點報時模塊設計與實現(xiàn)163.6 動態(tài)掃描顯示模塊設計與實現(xiàn)174 編譯與
6、調(diào)試204.1 編譯軟件介紹204.2 編譯與仿真204.3 實現(xiàn)與布局布線224.4 調(diào)試與下載配置225 實驗結(jié)論與研究展望245.1 實驗結(jié)論245.2 研究展望24結(jié)束語26參考文獻27致 謝2828 前 言現(xiàn)代社會的標志之一就是信息產(chǎn)品的廣泛使用,而且是產(chǎn)品的性能越來越強,復雜程度越來越高,更新步伐越來越快。支撐信息電子產(chǎn)品高速發(fā)展的基礎就是微電子制造工藝水平的提高和電子產(chǎn)品設計開發(fā)技術的發(fā)展。前者以微細加工技術為代表,而后者的代表就是電子設計自動化(electronic design automatic,eda)技術。本設計采用vhdl硬件描述語言進行設計,vhdl主要用于描述數(shù)字
7、系統(tǒng)的結(jié)構、行為、功能和接口;支持結(jié)構、數(shù)據(jù)流、行為三種描述形式的混合描述、覆蓋面廣、抽象能力強,因此在實際應用中越來越廣泛。asic是一種為專門目的而設計的集成電路,是指應特定用戶要求和特定電子系統(tǒng)的需要而設計、制造的集成電路。cpld是asic的近親,一般通過原理圖、vhdl對數(shù)字系統(tǒng)建模,運用eda軟件仿真、綜合,生成基于一些標準庫的網(wǎng)絡表,配置到芯片即可使用。它與asic的區(qū)別是用戶不需要介入芯片的布局布線和工藝問題,而且可以隨時改變其邏輯功能,使用靈活。在控制系統(tǒng)中,鍵盤是常用的人機交換接口,當所設置的功能鍵或數(shù)字鍵按下的時候,系統(tǒng)應該完成該鍵所設置的功能。因此,鍵輸入是與軟件結(jié)構密
8、切相關的過程。根據(jù)鍵盤的結(jié)構不同,采用不同的編碼方法。但無論有無編碼以及采用什么樣的編碼,最后都要轉(zhuǎn)換成為相應的鍵值,以實現(xiàn)按鍵功能程序的轉(zhuǎn)移。 鐘表的數(shù)字化給人們的生產(chǎn)生活帶來了極大的方便,而且大大地擴展了鐘表原先的報時功能。諸如定時自動報警、定時啟閉電路、定時開關烘箱、通斷動力設備,甚至各種定時電氣的自動啟用等,所有這些,都是以鐘表數(shù)字化為基礎的。當今電子產(chǎn)品正向功能多元化,體積最小化,功耗最低化的方向發(fā)展。它與傳統(tǒng)的電子產(chǎn)品在設計上的顯著區(qū)別是大量使用大規(guī)模可編程邏輯器件,使產(chǎn)品的性能提高,體積縮小,功耗降低。同時廣泛運用現(xiàn)代計算機技術,提高產(chǎn)品的自動化程度和競爭力,縮短研發(fā)周期。eda
9、技術正是為了適應現(xiàn)代電子技術的要求,吸收眾多學科最新科技成果而形成的一門新技術。美國altera公司的可編程邏輯器件采用全新的結(jié)構和先進的技術,加上quartus開發(fā)環(huán)境,更具有高性能,開發(fā)周期短等特點,十分方便進行電子產(chǎn)品的開發(fā)和設計。eda技術以大規(guī)??删幊踢壿嬈骷樵O計載體,以硬件描述語言為系統(tǒng)邏輯描述主要表達方式,以計算機、大規(guī)??删幊踢壿嬈骷拈_發(fā)軟件及實驗開發(fā)系統(tǒng)為設計工具,通過有關的開發(fā)軟什,自動完成用軟件的方式設計的電子系統(tǒng)到硬件系統(tǒng)的邏輯編譯、邏輯化簡、邏輯分割、邏輯映射、編程下載等工作,最終形成集成電子系統(tǒng)或?qū)S眉尚酒?。本設計是利用vhdl硬件描述語言結(jié)合可編程邏輯器件進
10、行的,并通過數(shù)碼管動態(tài)顯示計時結(jié)果。數(shù)字鐘可以由各種技術實現(xiàn),如單片機等利用可編程邏輯器件具有其他方式?jīng)]有的特點,它具有易學、方便、新穎、有趣、直觀、設計與實驗項目成功率高,理論與實踐結(jié)合緊密,體積小、容量大、i/o口豐富、易編程和加密等特點,并且它還具有開放的界面、豐富的設計庫、模塊化的工具以及l(fā)pm定制等優(yōu)良性能,應用非常方便。因此,本設計采用可編程邏輯器件實現(xiàn)?,F(xiàn)在是一個知識爆炸的新時代。新產(chǎn)品、新技術層出不窮,電子技術的發(fā)展更是日新月異。可以毫不夸張的說,電子技術的應用無處不在,電子技術正在不斷地改變我們的生活,改變著我們的世界。在這快速發(fā)展的年代,時間對人們來說是越來越寶貴,在快節(jié)奏
11、的生活時,人們往往忘記了時間,一旦遇到重要的事情而忘記了時間,這將會帶來很大的損失。因此我們需要一個定時系統(tǒng)來提醒這些忙碌的人。數(shù)字化的鐘表給人們帶來了極大的方便。近幾年,隨著科技的發(fā)展和社會的進步,人們對數(shù)字鐘的要求也越來越高,傳統(tǒng)的時鐘已不能滿足人們的需求。多功能數(shù)字鐘不管在性能還是在樣式上都發(fā)生了質(zhì)的變化,有電子鬧鐘、數(shù)字鬧鐘等等。本設計主要研究基于cpld的數(shù)字鐘,要求時間以24小時為一個周期,顯示時、分、秒。具有校時、設鬧鐘及整點報時的功能,可以對時、分、秒進行單獨校對,使其校正到標準時間,并能調(diào)整鬧鐘的時間,校對時間的時分秒的按鍵和設鬧鐘的時分秒的按鍵相同,通過另一按鍵來切換至校對
12、時間或是設鬧鐘,為保證計時的穩(wěn)定及準確須由晶體振蕩器提供時間基準信號。1 方案選擇及論證1.1 方案的比較本時鐘的設計具體有三種方法。一是通過單純的數(shù)字電路來實現(xiàn);二是使用單片機來控制實現(xiàn);三是使用可編程邏輯器件(cpld/fpga)來實現(xiàn)。由于純數(shù)字電路實現(xiàn)不僅造價很高、設計麻煩,且后期的調(diào)試與驗證會有很多連線與布局的問題,此方法已經(jīng)很不實用了,所以放棄此方法;而第二種和第三種方法均是采用一個主控芯片來控制時鐘電路,再外接不同的模塊來實現(xiàn)完整的功能,需進一步說明兩種方法的不同。1單片機單片機是一種集成在電路芯片,是采用超大規(guī)模集成電路技術把具有數(shù)據(jù)處理能力的中央處理器cpu隨機存儲器ram、
13、只讀存儲器rom、多種i/o口和中斷系統(tǒng)、定時器/計時器等功能(可能還包括顯示驅(qū)動電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、a/d轉(zhuǎn)換器等電路)集成到一塊硅片上構成的一個小而完善的計算機系統(tǒng)。2可編程邏輯器件可編程邏輯器件pld(programmable logic device) :pld是做為一種通用集成電路生產(chǎn)的,他的邏輯功能按照用戶對器件編程來搞定。一般的pld的集成度很高,足以滿足設計一般的數(shù)字系統(tǒng)的需要。這樣就可以由設計人員自行編程而把一個數(shù)字系統(tǒng)“集成”在一片pld上,而不必去請芯片制造廠商設計和制作專用的集成電路芯片了。相比較而言,單片機一般用于操作控制,pld一般用于組合邏輯,功能
14、各不相同,但pld功能比普通的單片機更強、速度更快、價格也越來越便宜。并且pld更加高端一些,靈活性更強,近來發(fā)展很快,之后的電子技術發(fā)展pld的應用將會非常廣泛。選擇pld進行設計會對以后的專業(yè)發(fā)展有很大的幫助,所以選擇第三種方法即采用可編程邏輯器件進行設計。1.2 芯片的選擇目前使用比較廣泛的可編程邏輯器件主要有cpld(complex programmable logic device)復雜可編程邏輯器件和現(xiàn)場可編程門陣列fpga(field programmable gate array)。cpld相比fpga功能相當并相對容易、成本較低。因此本設計使用的芯片是altera公司max
15、系列的epm570t100c5n,altera的max ii 系列cpld是有史以來功耗最低、成本最低的cpld。在所有cpld系列中,其單位i/o引腳的功耗和成本都是最低的。此芯片能滿足本設計的要求,改進升級也比較方便。1.3 設計方案的概述本方案以cpld芯片為核心,將外接時鐘信號送至cpld作為時鐘基準信號和動態(tài)掃描信號。在芯片內(nèi)部分別設計出數(shù)字鐘的各個模塊,如分頻模塊、計時模塊、鬧鐘模塊、整點報時模塊和動態(tài)掃描模塊等。將各位信號送出至數(shù)碼管顯示。本方案的電路比較簡單,只用外接一個穩(wěn)壓電源為主控芯片和數(shù)碼管供電,再接一個晶振和一個數(shù)碼管即可。本設計的電路簡單,但功能齊全,可以設置鬧鐘、時
16、間校對和整點報時,cpld的設計改動非常方便,只用改變程序設計出相應的內(nèi)部模塊就可以實現(xiàn)一些基本門電路的功能。根據(jù)需要可以增添日歷、溫度顯示等功能,所以本設計具有很強的升級前景。2 數(shù)字鐘總體設計方案2.1 數(shù)字鐘的構成數(shù)字鐘實際上是一個對標準頻率( 1hz)進行計數(shù)的計數(shù)電路。由于計數(shù)的起始時間不可能與標準時間(如北京時間)一致,故需要在電路上加一個校時電路,同時標準的1hz時間信號必須做到準確穩(wěn)定。通常使用石英晶體振蕩器電路構成數(shù)字鐘。圖2.1所示為數(shù)字鐘的一般構成框圖。主要包括時問基準電路、計數(shù)器電路、控制電路、譯碼和顯示電路。其中的控制邏輯電路是比較靈活多樣的,不斷完善它可以增強數(shù)字鐘
17、的功能??刂崎_關調(diào)試和設鬧秒計數(shù)六十進制分計數(shù)六十進制時計數(shù)二十四進制動態(tài)掃描顯示晶振分頻整點報時六位數(shù)碼管圖2.1 數(shù)字鐘的設計框圖控制開關有五個,分別為復位開關(用于系統(tǒng)復位清零)、設鬧與時鐘切換開關(用于設置鬧鐘和時鐘的切換)、調(diào)秒開關(用于調(diào)整鬧鐘或時鐘的秒位)、調(diào)分開關(用于調(diào)整鬧鐘或時鐘的分鐘位)、調(diào)時開關(用于調(diào)整鬧鐘或時鐘的小時位)。晶振為24mhz石英晶體振蕩器,產(chǎn)生穩(wěn)定的頻率為24mhz的時鐘信號,接至芯片內(nèi)的分頻模塊,分成1khz信號和1hz信號,1khz信號接至動態(tài)掃描模塊作為掃描信號,1hz信號接至秒計數(shù)模塊作為時鐘基準信號。動態(tài)掃描模塊輸出時、分、秒的顯示信號和位選
18、信號接至六位數(shù)碼管,作為動態(tài)掃描顯示信號。掃描的頻率由分頻電路從外接晶振分頻得到,且六位數(shù)碼管的電源有外接穩(wěn)壓電源提供。本設計的總體框架如圖2.2所示。 圖2.2 數(shù)字鐘的總體框架2.2 數(shù)字鐘的工作原理晶體振蕩器產(chǎn)生穩(wěn)定的高頻脈沖信號,作為數(shù)字鐘的時間基準,然后經(jīng)過分頻器分別輸出標準秒脈沖(1hz)和掃描信號(1khz)。秒計數(shù)器滿60后向分計數(shù)器進位,分計數(shù)器滿60后向小時計數(shù)器進位,小時計數(shù)器按照“24翻l”的規(guī)律計數(shù)。計滿后各計數(shù)器清零,重新計數(shù)。計數(shù)器的輸出分別經(jīng)譯碼器送數(shù)碼管顯示。計時出現(xiàn)誤差時,可以用校時電路校小時、校分或校秒。在控制信號中除了一般的校時信號外,還有時鐘清零信號、
19、設鬧與計時顯示的切換信號。控制信號由獨立按鍵輸入并加有按鍵去抖電路。時基電路可以由石英晶體振蕩電路構成,如果晶振頻率為24mhz,經(jīng)過24000000分頻就可以得到秒脈沖信號。顯示由六位七段數(shù)碼管構成,通過動態(tài)掃描譯碼顯示,可節(jié)省i/o資源。2.3 數(shù)字鐘的硬件電路設計數(shù)字鐘需外接24mhz的晶振為電路提供時鐘基準,并外接按鍵控制電路功能,外接六位數(shù)碼管顯示,以及穩(wěn)壓電源模塊為電路提供電源。硬件電路的框圖如圖2.3所示。穩(wěn)壓電路cpldepm570t100c5n五位按鍵晶振六位數(shù)碼管圖2.3 數(shù)字鐘的硬件電路框架本電路的外接晶振采用24mhz的石英晶體振蕩器,經(jīng)分頻后輸出時鐘基準和掃描時鐘基準
20、;穩(wěn)壓模塊采用ams1117/3.3三端穩(wěn)壓器,通過usb接口輸入5v電壓,經(jīng)穩(wěn)壓器輸出3.3v為cpld芯片和數(shù)碼管顯示提供電壓;五位按鍵分別控制系統(tǒng)復位、計時與設鬧的顯示切換、秒調(diào)節(jié)、分鐘調(diào)節(jié)和小時調(diào)節(jié);六位數(shù)碼管用于顯示時鐘。3 單元電路設計3.1 分頻模塊電路設計與實現(xiàn)晶體振蕩器是構成數(shù)字式時鐘的核心,振蕩器的穩(wěn)定度及頻率的精度決定了數(shù)字鐘計時的準確程度,它保證了時鐘的走時準確及穩(wěn)定。石英晶體的選頻特性非常好,只有某頻率點的信號可以通過它,其它頻率段的信號均會被它所衰減,而且,振蕩信號的頻率與振蕩電路中的r、c元件的數(shù)值無關。因此,這種振蕩電路輸出的是準確度極高的信號。然后再利用分頻電
21、路,將其輸出信號轉(zhuǎn)變?yōu)槊胄盘柡蛼呙栊盘?,其組成框圖如圖3.1所示。晶振分頻電路圖3.1 秒信號產(chǎn)生電路框圖本系統(tǒng)使用的晶體振蕩器電路給數(shù)字鐘提供了一個頻率穩(wěn)定準確的24mhz的方波信號,其輸出至分頻電路。分頻電路的邏輯框圖如圖3.2所示。圖3.2 分頻電路模塊分頻電路的程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenpin isport(clkin:in std_logic; clkout1:out std_logic; clkout1k:out std_logic)
22、;end;architecture behave of fenpin issignal clk1khz:std_logic;signal clk1hz:std_logic;begin process(clkin) variable count:integer range 0 to 1199; begin if clkinevent and clkin=1 then if count=1199 then clk1khz=not clk1khz; count:=0; else count:=count+1; end if; end if;end process; process(clk1khz)
23、variable count:integer range 0 to 499; begin if clkinevent and clkin=1 then if count=499 then clk1hz=not clk1hz; count:=0; else count:=count+1; end if; end if; end process; clkout1=clk1hz; clkout1k=clk1khz;end behave;此分頻電路輸出兩種不同頻率的信號,一個是頻率為1khz的信號,接至去抖模塊和動態(tài)掃描模塊作為掃描信號;另一個是頻率為1hz的信號,輸出至秒計數(shù)模塊作為時鐘計時的秒基準
24、信號。當然秒信號必須非常精確,否則時鐘會出現(xiàn)較大的誤差,所以必須對秒信號進行測試,直至符合要求。3.2 獨立按鍵消抖模塊按鍵的閉合和釋放的瞬間,輸入的信號會有毛刺。如果不進行消抖處理,系統(tǒng)會將這些毛刺誤以為是用戶的另一次輸入,導致系統(tǒng)的誤操作。本模塊的消抖電路采用的是計數(shù)法,實現(xiàn)方法是先判斷是否有按鍵按下,如果有按鍵按下則延時一段時間,待抖動過去之后再讀鍵值,如果仍為高電平,則確定有按鍵按下,然后產(chǎn)生一個有按鍵按下的信號。該模塊有一個時鐘輸入端口,輸入的時鐘信號是分頻模塊出來的1khz的掃描信號;一個按鍵輸入端口,用于存儲當前鍵值;一個輸出端口,用于輸出有按鍵按下的信號。該模塊的邏輯框圖如圖3
25、.3所示。圖3.3 去抖邏輯模塊該電路的vhdl程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity qudou isport(clk1k:in std_logic; numin:in std_logic; numout:out std_logic );end;architecture behave of qudou issignal tempnum:std_logic;signal counter:integer range 0 to 31;signal start:std_l
26、ogic;begin process(clk1k) begin if rising_edge(clk1k) then if start=0 then tempnum=0; numout=0; start=1; else if numin/=tempnum then tempnum=numin; counter=0; else if counter=31 then numout=numin; counter=0; else counter=counter+1; end if; end if; end if; end if; end process;end;這段程序的作用是實現(xiàn)按鍵消抖,原理是當有
27、按鍵按下的時候,tempnum記錄當前的鍵值,counte開始計數(shù),當counter不為31時,內(nèi)部計數(shù)器計數(shù),從0計數(shù)至31,當鍵值保持31個掃描周期不變時,由numout讀出此鍵值。如果在計數(shù)不滿31時鍵值發(fā)生跳變,則說明此鍵值只是抖動,不讀此鍵值。一旦計數(shù)完成,抖動已經(jīng)過去,就不會再發(fā)生重鍵現(xiàn)象了,這樣就去除了抖動。按鍵消抖是電路的一個必要模塊,在軟件仿真時其作用可能不太明顯,但在下載后運行調(diào)試時卻是必不可少的,由于因為人們進行按鍵的時間不是固定的,因此消抖的時間也要視實際情況而進行改動,這樣才能更加符合人們的使用習慣。3.3 計數(shù)模塊設計與實現(xiàn)1秒、分計數(shù)模塊秒、分計數(shù)均為六十進制,所
28、以只用設計一個六十進制計數(shù)器模塊即可,其邏輯框圖如圖3.4所示。圖3.4 秒(分)計數(shù)模塊框圖輸入端口rst是異步清零信號;clk是輸入脈沖信號。dout7.0是秒(分)時鐘的輸出,高四位是十位數(shù),低四位是個位數(shù);co是進位輸出端口,當秒(分)計數(shù)到“01011001”時輸出高電平,其他時候輸出低電平。秒(分)計數(shù)模塊的程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity counter_60_bcd isport(rst,clk:in std_logic; dout:buffe
29、r std_logic_vector(7 downto 0); co:out std_logic);end;architecture behave of counter_60_bcd isbegin process(clk,rst) begin if rst=1then dout=00000000; co=0; else if clkevent and clk=1then if dout(7 downto 0)=01011001then dout=00000000; co=1; elsif dout(3 downto 0)=1001then dout=dout+0111; co=0; else
30、 dout=dout+1; co=0; end if; end if; end if; end process;end behave; 2小時計數(shù)模塊小時計數(shù)模塊為二十四進制計數(shù)器,其邏輯框圖如圖3.5所示。圖3.5 時計數(shù)模塊框圖輸入端口rst是異步清零信號;clk是分脈沖輸入端口;dout7.0是小時的輸出,高四位是十位數(shù),低四位是個位數(shù);co是進位輸出端口,當時計數(shù)到“00100011”時輸出高電平,其他時候輸出低電平。時計數(shù)模塊的程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;e
31、ntity counter_24_bcd isport(rst,clk:in std_logic; dout:buffer std_logic_vector(7 downto 0); co:out std_logic);end;architecture behave of counter_24_bcd isbegin process(clk,rst) begin if rst=1then dout=00000000; co=0; else if clkevent and clk=1then if dout(7 downto 0)=00100011then dout=00000000; co=1
32、; elsif dout(3 downto 0)=1001then dout=dout+0111; co=0; else dout=dout+1; co=0; end if; end if; end if; end process;end behave; 鬧鐘和計時的時、分、秒都是使用以上計數(shù)模塊進行顯示和存儲的,此方法可以節(jié)省芯片的內(nèi)部資源占用量,只用進行簡單的模塊之間的連線就可生成完整的鬧鐘模塊或是時鐘模塊。并且以上的編程方法非常節(jié)省資源,即當個位計數(shù)至“00001001”時,下一脈沖直接加7,變成“00010000”,便完成了二進制向十位的進位,比十進制轉(zhuǎn)換成十六進制要簡單的多。因為進行
33、顯示時用的是二進制代碼,使用十進制計數(shù)雖然方便,但在進行譯碼顯示是還要先將十進制轉(zhuǎn)換成二進制再進行譯碼,很不方便,所以本設計均使用二進制計數(shù)。3.4 鬧鐘模塊設計與實現(xiàn)本鬧鐘模塊是將存儲的時間與當前時間比較,當兩個時間相同時,輸出高電平,驅(qū)動揚聲器。該模塊邏輯框圖如圖3.6所示。圖3.6 鬧鐘模塊框圖鬧鐘模塊輸入為時鐘的輸出h_out7.0、m_out7.0、s_out7.0,以及存儲的鬧鐘時間h7.0、m7.0、s7.0;將兩個時間比較,相同時dout輸出高電平使蜂鳴器響鈴。鬧鐘模塊程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.
34、std_logic_unsigned.all;entity alarm isport(h_out,m_out,s_out,h,m,s:in std_logic_vector(7 downto 0); dout:out std_logic);end;architecture behave of alarm issignal x1:std_logic_vector(23 downto 0);signal x2:std_logic_vector(23 downto 0);begin x1=h_out&m_out&s_out; x2=h&m&s; process(x1,x2) begin if x1=
35、x2 or x1=x2-1 or x1=x2-10 then dout=1; else dout=0; end if; end process;end behave;3.5 整點報時模塊設計與實現(xiàn)整點報時的原理是當分和秒均為0時,輸出脈沖使鬧鈴報時。本模塊設計了一個比較器,當分和秒都為0時,鬧鐘報時;否則鬧鐘不報時。該模塊邏輯框圖如圖3.7所示。圖3.7 整點報時模塊框圖整點報時模塊輸入為分鐘的數(shù)據(jù)m7.0和秒的數(shù)據(jù)s7.0,當m7.0和s7.0都為“00000000”時,dout輸出高電平時使鬧鐘報時。該模塊程序如下:library ieee;use ieee.std_logic_1164.
36、all;use ieee.std_logic_unsigned.all;entity timer isport(m,s:in std_logic_vector(7 downto 0); dout:out std_logic);end;architecture behave of timer issignal x:std_logic_vector(15 downto 0);begin x=m&s; process(x) begin if x=0000000000000000 or x=0000000000000001 then dout=1; else dout=0; end if; end p
37、rocess;end behave; 此整點報時模塊非常簡單,只是一個八位比較器,當分和秒都為0時,以上所示,驅(qū)動蜂鳴器響2秒,也可以將蜂鳴器改成音樂片,當整點時便響起音樂。還可根據(jù)需要延長或縮短響鈴的時間長短。3.6 動態(tài)掃描顯示模塊設計與實現(xiàn)動態(tài)掃描電路將計數(shù)器輸出的8421bcd碼轉(zhuǎn)換為數(shù)碼管所需要的邏輯狀態(tài),并且輸出數(shù)碼管的片選信號和位選信號。所謂動態(tài)掃描顯示方式是指在顯示某一位led顯示塊的數(shù)據(jù)的時候,讓其它位不顯示,然后再顯示下一位的數(shù)據(jù),同時關閉其他顯示塊。這樣做可以使每一個顯示塊顯示與自己相對應的數(shù)據(jù)。只要保證每一位顯示的時間間隔不要太長,利用人眼的視覺暫留的現(xiàn)象,就可以造成各
38、位數(shù)據(jù)同時顯示的假象。一般每位的顯示時間大約是1-l0ms。動態(tài)掃描邏輯框圖如圖3.8所示。圖3.8 動態(tài)掃描顯示模塊框圖該模塊的輸入端口clk1k是頻率為1khz的掃描時鐘,故每位顯示的時間為1ms,需要掃描6個數(shù)碼管,故顯示間隔為6ms。輸入時鐘信號由分頻模塊提供;輸入端口h_out7.0、m_out7.0、s_out7.0分別為時、分、秒的顯示數(shù)據(jù);輸出端口display0.6為動態(tài)輸出掃描的數(shù)據(jù);輸出端口en0.5為數(shù)碼管的片選信號。該模塊程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.
39、all;entity display isport(clk1k:in std_logic; s_out,m_out,h_out:in std_logic_vector(7 downto 0); en:out std_logic_vector(0 to 5); display:out std_logic_vector(0 to 6) );end;architecture edcoder of display issignal counter:integer range 0 to 5;signal num:std_logic_vector(3 downto 0);begin process(clk
40、1k) begin if rising_edge(clk1k)then if counter=5 then counter=0; else counteren=011111; numen=101111; numen=110111; numen=111011; numen=111101; numen=111110; numen=000000;numdisplaydisplaydisplaydisplaydisplaydisplaydisplaydisplaydisplaydisplaydisplay=0000000; end case; end if; end process;end;動態(tài)掃描方
41、式不僅節(jié)約了大量的i/o口,而且也節(jié)約了軟件資源。因為如果使用每個數(shù)碼管單獨顯示的話,六個數(shù)管將需要68個i/o口;并且每個數(shù)碼管都需要相應的譯碼電路模塊,很多軟件資源就被浪費掉了。所以動態(tài)掃描模塊是非常實用的,在后期升級時,如果需要顯示年、月、日及溫度等信息,則可將此模塊換成lcd液晶模塊,同樣非常節(jié)省i/o口,并能顯示較多的信息。4 編譯與調(diào)試4.1 編譯軟件介紹本設計使用的芯片是altera公司的max 系列cpld,因此設計的編譯和調(diào)試要使用altera公司的開發(fā)工具quartus 。quartus 是altera公司的綜合性pld開發(fā)軟件,支持原理圖、vhdl、veriloghdl以
42、及ahdl(altera hardware description language)等多種設計輸入形式,內(nèi)嵌有自有的綜合器以及仿真器,可以完成從設計輸入到硬件配置的完整pld設計流程。是一個完全集成化、易學易用的可編程邏輯設計環(huán)境,可以在多個平臺上運行。quartus 具有以下主要模塊:1設計輸入 quartus 軟件中的工程由所有設計文件和與設計有關的設置組成。用戶可以建立包括altera 宏功能模塊、參數(shù)化模塊庫(lpm)函數(shù)和知識產(chǎn)權函數(shù)(ip)再內(nèi)的設計。2綜合 用戶可以利用編輯器中的analysis&synthesis模塊綜合vhdl文件或verilog文件,也可以使用其他綜合工具
43、進行綜合,然后生成edf網(wǎng)表文件或vqm文件。3仿真 利用仿真器進行時序仿真和功能仿真??梢苑抡嬲麄€設計,也可以仿真設計中的任何部分,還可以使用第三方仿真工具進行仿真。4布局布線利用quartus fitter,執(zhí)行布局布線。通過analysis&synthesis建立的數(shù)據(jù)庫,將工程的邏輯和時序要求與器件的可用資源相匹配。5時序分析 利用timing analyzer對設計進行時序分析,幫助滿足設計的時序要求。在默認情況下,自動生成時序信息以供分析、調(diào)試和驗證設計的時序性能;還可以進行最優(yōu)時序分析,提供最佳的時序結(jié)果,從而得到外部信號的時鐘至引腳的延時。4.2 編譯與仿真一般說來,一個比較大
44、的完整的項目應該采用層次化的描述方法:分為幾個較大的模塊,定義好各功能模塊之問的接口,然后各個模塊再細分去具體實現(xiàn),這就是top todown(自頂向下)的設計方法。目前這種高層次的設計方法已被廣泛采用。高層次設計只是定義系統(tǒng)的行為特征,可以不涉及實現(xiàn)工藝,因此還可以在廠家綜合庫的支持下,利用綜合優(yōu)化工具將高層次描述轉(zhuǎn)換成針對某種工藝優(yōu)化的網(wǎng)絡表,使工藝轉(zhuǎn)化變得輕而易舉。cpld/fpga系統(tǒng)設計的工作流程如圖4.1所示。系統(tǒng)劃分vhdl代碼或圖形方式輸入編譯器代碼級功能仿真仿真綜合庫綜合器適配前時序仿真cpld/fpga實現(xiàn)適配報告asic實現(xiàn)適配后時序仿真器件編程文件適配后仿真模型適配器圖
45、4.1 cpld/fpga系統(tǒng)設計流程前面已經(jīng)進行了vhdl代碼輸入,在analysis&synthesis綜合器中進行編譯和綜合正確無誤。之后進行功能仿真和時序仿真。進行時序仿真和功能仿真時,可以使用quartus 自帶的仿真工具,也可以使用第三方的仿真工具進行仿真,本設計使用自帶的仿真工具,設置仿真屬性,建立波形矢量文件用于存儲仿真波形;選擇generate functional simulation netlist命令產(chǎn)生功能仿真網(wǎng)表文件;之后再選擇start simulation命令進行仿真 ,仿真運行結(jié)束后,產(chǎn)生仿真報告及輸出波形文件。使用引腳規(guī)劃器(pin planner)進行引腳
46、分配,本設計的引腳分配圖如圖4.2所示。圖4.2 芯片引腳分配圖4.3 實現(xiàn)與布局布線各模塊均通過編譯綜合,生成相應的編譯報告,再將各模塊連接起來在進行總體的編譯和綜合,綜合結(jié)果的本質(zhì)是一些由與、或、非門,觸發(fā)器,ram等基本邏輯單元組成的邏輯網(wǎng)表,它與芯片的實際的配置情況還有較大差距,因此須將綜合輸出的邏輯網(wǎng)表適配到具體的cpld期間上進行驗證,這個過程就叫做實現(xiàn)過程。在實現(xiàn)過程中最主要的過程是布局布線(par,place and route);所謂布局(place)是指將邏輯網(wǎng)表中的硬件原語或者底層單元合理地適配到cpld內(nèi)部的固有硬件結(jié)構上;所謂布線(route)是根據(jù)布局的拓撲結(jié)構,利
47、用cpld內(nèi)部的各種連線資源,合理正確的連接各個元件的過程。4.4 調(diào)試與下載配置經(jīng)上述一系列的編譯、綜合、分析、驗證后證明此設計可以正確運行,最后的步驟就是在線調(diào)試或者將生成的配置文件寫入芯片中進行測試。本設計采用jtag編程方式,可以進行在系統(tǒng)的編程與調(diào)試,將jtag的四個引腳分別與cpld芯片的相應引腳相連進行下載驗證和調(diào)試,jtag的四個引腳分別為tms、tck、tdi、tdo,分別為模式選擇、時鐘、數(shù)據(jù)輸入和數(shù)據(jù)輸出線。jtag與cpld的連接方式如圖4.3所示。圖4.3 cpld與jtag編程連接觀察數(shù)字鐘運行是否正常再進行相應的調(diào)整,在調(diào)試中發(fā)現(xiàn)按鍵的反應有一定的延遲,感覺是去抖
48、的掃描時間過長造成的,便將去抖模塊的掃描時間減小,再下載調(diào)試發(fā)現(xiàn)此問題解決。再不斷的進行測試以驗證設計是否還有瑕疵,慢慢進行改正。本設計采用了資源豐富的可編程邏輯器件,整個設計全部vhdl來編寫,使得本系統(tǒng)的軟件系統(tǒng)很大而硬件結(jié)構十分簡單,因此在軟硬件都基本調(diào)通的情況下,系統(tǒng)的軟硬件聯(lián)調(diào)難度不是很大。在通過了quartus 軟件的編譯后,再經(jīng)功能仿真和定時分析,在確認程序沒問題后,直接下載到芯片進行硬件調(diào)試,單獨調(diào)試好每一個模塊,然后再連接成一個完整的系統(tǒng)調(diào)試。調(diào)試時,使用邏輯分析儀,分析cpld輸入輸出,可以發(fā)現(xiàn)時序與仿真結(jié)果是否有出入,便于檢查電路中的故障。cpld的時鐘頻率很高,對周圍電
49、路的一定影響。我們采取了一些抗干擾措施。例如引線盡量短,減少交叉,每個芯片的電源與之間都有接有去耦電容,數(shù)字地與模擬分開。實踐證明,這些措施對消除某些引腳上的“毛刺”及高頻噪聲起到了很好的效果5 實驗結(jié)論與研究展望5.1 實驗結(jié)論將設計程序下載到電路板上運行調(diào)試后,最終結(jié)果與預期效果基本一致,時、分、秒能夠正常計數(shù)并能由控制鍵分別顯示,整點報時和鬧鐘響鈴功能正常。在此次的數(shù)字鐘設計過程中,更進一步地熟悉了有關數(shù)字電路的知識和具體應用。學會了利用quartus軟件進行原理圖的繪制,硬件描述語言vhdl的編寫,程序的仿真等工作。并能根據(jù)仿真結(jié)果分析設計的存在的問題和缺陷,從而進行程序的調(diào)試和完善。在設計電路中,往往是先仿真后連接實物圖,但有時候仿真和電路連接并不是完全一致的,例如在對具體模塊的仿真的過程中,往往沒有考慮到整體設計的層面以及與上下模塊接口的設計。再加上器件對信號的延時等問題,實際下載到電路板上后會出現(xiàn)一系列的問題,因此仿真圖和電路連接圖還是有
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 帶英文的合同范本
- 2025合肥恒遠化工物流發(fā)展有限公司招聘6人筆試重點題庫及答案解析
- 資質(zhì)注冊協(xié)議書
- 西安收房協(xié)議書
- 藥費補償協(xié)議書
- 責任追償協(xié)議書
- 征地苗木協(xié)議書
- 學生招生協(xié)議書
- 征地付款協(xié)議書
- 2025年齊齊哈爾龍江縣中醫(yī)醫(yī)院招聘編外工作人員11人筆試重點題庫及答案解析
- 共同買廠房協(xié)議書
- 2025貴州省專業(yè)技術人員繼續(xù)教育公需科目考試題庫(2025公需課課程)
- 美國國家公園管理
- 人教版五年級語文上冊期末考試卷【含答案】
- 四川省2025年高考綜合改革適應性演練測試化學試題含答案
- 醫(yī)療機構安全生產(chǎn)事故綜合應急預案
- 水利信息化計算機監(jiān)控系統(tǒng)單元工程質(zhì)量驗收評定表、檢查記錄
- 《管理學原理》課程期末考試復習題庫(含答案)
- DL-T+5174-2020燃氣-蒸汽聯(lián)合循環(huán)電廠設計規(guī)范
- 消費者在直播帶貨中沖動行為的影響因素探究
- 人工智能中的因果驅(qū)動智慧樹知到期末考試答案章節(jié)答案2024年湘潭大學
評論
0/150
提交評論