【正文】
.................................................................31主要參考文獻 .............................................................331第一章 緒論現(xiàn)代社會的標(biāo)志之一就是信息產(chǎn)品的廣泛使用,而且是產(chǎn)品的性能越來越強,復(fù)雜程度越來越高,更新步伐越來越快。 [1]鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地擴展了鐘表原先的報時功能。 [2]EDA 技術(shù)以大規(guī)??删幊踢壿嬈骷樵O(shè)計載體,以硬件描述語言為系統(tǒng)邏輯描述主要表達方式,以計算機和大規(guī)??删幊踢壿嬈骷拈_發(fā)軟件及實驗開發(fā)系統(tǒng)為設(shè)計工具,自動完成用軟件的方式設(shè)計的電子系統(tǒng)到硬件系統(tǒng)的邏輯編譯、邏輯化簡、邏輯分割、邏輯映射、編程下載等工作,最終形成集成電子系統(tǒng)或?qū)S眉尚酒囊婚T新技術(shù)。在這快速發(fā)展的年代,時間對人們來說是越來越寶貴,在快節(jié)奏的生活時,人們往往忘記了時間,一旦遇到重要的事情而忘記了時間,這將會帶來很大的損失,因此我們需要一個定時3系統(tǒng)來提醒這些忙碌的人。它如同一張白紙或是一堆積木,工程師可以通過傳統(tǒng)的原理圖輸入或硬件描述語言自由的設(shè)計一個數(shù)字系統(tǒng)。 [4] 的主要組成部分。CLB中有許多不同規(guī)格的數(shù)據(jù)選擇器(四選一、二選一等),通過對CLB內(nèi)部數(shù)據(jù)選擇器的編程,邏輯函數(shù)發(fā)生器G、F和H 的輸出可以連接到CLB 輸出端X或Y,并用來選擇觸發(fā)器的激勵輸入信號、時鐘有效邊沿、時鐘使能信號以及輸出信號。每個IOB控制一個引腳,它們可被配置為輸入、輸出或雙向 I/O功能。IR主要由許多金屬線段構(gòu)成,這些金屬線段帶有可編程開關(guān),通過自動布線實現(xiàn)各種電路的連接。射操作,包括底層器件配置、邏輯分割、邏輯優(yōu)化和布局布線。具體的設(shè)計輸入方式有以下幾種:。由于狀態(tài)機到HDL語言有一種標(biāo)準(zhǔn)的對應(yīng)描述方式,所以這種輸入方式最后所能達到的工作速度和芯片利用率主要取決于綜合軟件;波形描述方式是基于真值表的一種圖形輸入方式,直接描述輸入與輸出的波形關(guān)系。此外,QuartusII 與 MATLAB 和 DSP Builder 結(jié)合,可以進行基于 FPGA 的 DSP 系統(tǒng)開發(fā),是 DSP 硬件系統(tǒng)實現(xiàn)的關(guān)鍵 EDA 技術(shù)。 S y n t h e s i s( 分析與綜合 )F i l t e r( 適配器 )A s s e m b l e r( 編程文件匯編 )編輯器T i m i n g A n a l y z e r( 時序分析器 )設(shè)計輸入 綜合或編譯 適配器件 下載仿真圖 QuartusII 設(shè)計流程在設(shè)計輸入之后,QuartusII 的編譯器將給出設(shè)計輸入的錯誤報告。流程圖中可以包含代表其它設(shè)計文件的符號;還可以使用MegaWizard PlugIn Manager 生成宏功能模塊和 IP 內(nèi)核的自定義變量,在設(shè)計中將它們實例化。在對源代碼進行少量更改之后,還可以使用增量布局布線。 具體設(shè)計流程首先建立工作庫目錄,以便存儲工程項目設(shè)計文件。編譯器首先檢查出工程設(shè)計文件中可能的錯誤信息,供設(shè)計者排除。秒計數(shù)器滿60后向分計數(shù)器進位,分計數(shù)器滿60后向小時計數(shù)器進位,小時計數(shù)器按照“24翻1” 規(guī)律計數(shù)。選用該款芯片的原因是:① Altera 公司的 Quartus II 開發(fā)環(huán)境非常友好、直觀,為整個系統(tǒng)的開發(fā)提供了極大的方便;② 該 FPGA 片內(nèi)邏輯資源、IO 端口數(shù)和 RAM 容量都足夠用,并且價格相對來說比較便宜,速度快,可以滿足要求,且有很大的升級空間。因此這種振蕩電路輸出的是準(zhǔn)確度極高的信號。該模塊有一個時鐘輸入端口,輸入時鐘信號是分頻出來的500HZ 的時鐘;有一個輸入端口與行線相連,用于輸入行線狀態(tài);一個輸出端口,用于輸出有按鍵按下的信號。inkey 是由消抖模塊輸出的有鍵按下的信號,這個信號引發(fā)按鍵控制模塊內(nèi)部信號的變化。k1:process(inkey )beginif rising_edge(inkey) thencount=count+1。該模塊的仿真波形如圖 所示。139。end if。os : OUT STD_LOGIC)。count:=count+1。iset : IN STD_LOGIC。 thencount:=CONV_INTEGER(iset_addr )。count:=count+1。主要完成小時低位向高位的進位,產(chǎn)生脈沖信號,同時根據(jù) flag 信號的不同判斷出小時高位時 1 還是 2。ARCHITECTURE hl_architecture OF hl ISBEGINk1:process(clk_1s,iset )variable count:integer range 0 to 10:=0。139。elseif count=9 thenos=39。end if。iset_addr : IN STD_LOGIC_VECTOR(3 DOWNTO 0)。addr_1s=iset_addr。count:=0。count:=count+1。clkaddr[3..0]led[7..0]driveinst9圖 譯碼顯示模塊組件核心程序如下:ENTITY drive IS PORT (clk:in std_logic。 when 0010=led=10100100。 when others=led=10111111。即將至整點時,前四秒低音,最后一秒高音。else c=39。end if。31結(jié)果與展望結(jié)果將設(shè)計程序下載到硬件電路上運行調(diào)試后,最終結(jié)果與預(yù)期效果基本一致,整點報時功能正常,時、分都能夠正常計數(shù)并能由按鍵控制校時。在本設(shè)計調(diào)試過程中遇到了一些問題如下:,故顯示電路所用芯片的 I/O 端口高達 32 個,使得資源利用不合理。設(shè)計的過程變的相對簡單,容易修改。這樣可以節(jié)省按鍵資源,以供更多的功能的使用。此次的數(shù)字鐘設(shè)計重在于按鍵的控制和各個模塊代碼的編寫,雖然能把鍵盤接口和各個模塊的代碼編寫出來,并能正常顯示,但對于各個模塊的優(yōu)化設(shè)計還有一定的缺陷和不足。該模塊仿真波形如圖 所示。139。if mh=0101 and ml=1001 and(t=117 or t=115 or t=113 or t=111) then c=39。模塊組件如圖 所示。 when 1000=led=10000000。 case sel is 28when 0000=led=11000000。 譯碼顯示模塊該模塊完成對計數(shù)器編碼信息的譯碼工作,驅(qū)動數(shù)碼管則顯示相應(yīng)的數(shù)字。27elseflag=39。elsif rising_edge(clk_1s ) thenif count=2 thenflag=39。039。clk_1sisetiset_addr[3..0]addr_1s[3..0]flaghhinst13圖 小時高位計數(shù)模塊組件26核心程序如下:ENTITY hh ISPORT(clk_1s : IN STD_LOGIC。count:=count+1。addr_1s=CONV_STD_LOGIC_VECTOR(count,4)。139。os : OUT STD_LOGIC)。說明:對于分高位計數(shù)模塊的程序,只需將上面程序中的 count=9 改成count=6 即可。elseos=39。beginif iset=39。主要完成分低位向高位的進位,產(chǎn)生脈沖信號。elseos=39。模塊主要完成秒向分的進位,產(chǎn)生脈沖信號。end if。BEGINoaddr=count。說明:每按鍵一次,即每當(dāng) inkey 的上升沿到來時,count 加一,當(dāng) count 等于 9的時候,作為分的低位,將 0 賦值于 count,在此過程中,隨時將十進制數(shù)的count 的值的 8421 碼作為 oaddr 的信號。ARCHITECTURE addram_architecture OF addram ISsignal count:std_logic_vector(3 downto 0)。圖 按鍵消抖模塊波形仿真 按鍵控制模塊按鍵控制模塊的框圖如圖 所示。石英晶體振蕩電路 分頻電路 秒信號17圖 分頻模塊仿真圖 校時控制模塊電路設(shè)計 按鍵消抖本模塊用于當(dāng)有按鍵按下時,采用軟件的辦法去除按鍵抖動。圖 LED 靜態(tài)驅(qū)動顯示原理圖16第四章 單元電路設(shè)計 分頻模塊電路設(shè)計晶體振蕩器是構(gòu)成數(shù)字式時鐘的核心,振蕩器的穩(wěn)定度及頻率的精度決定了數(shù)字鐘計時的準(zhǔn)確程度,它保證了時鐘的走時準(zhǔn)確及穩(wěn)定。譯碼顯示電路由八段譯碼器完成。本設(shè)計總體框架見附圖。步驟如下: FPGA 目標(biāo)芯片QuartusII 編譯器是由一系列處理模塊構(gòu)成的,這些模塊負責(zé)對設(shè)計項目的檢錯、邏輯綜合、結(jié)構(gòu)綜合、輸出結(jié)果的編輯配置,以及時序分析。14.(可選)使用 SignalTap II Logic Analyzer、 SignalProbe 功能或 Chip