【正文】
面,邏輯函數(shù)發(fā)生器F和G還可以作為器件內(nèi)高速RAM或小的可讀寫存儲器使用,它由信號變換電路控制。CLB中有許多不同規(guī)格的數(shù)據(jù)選擇器(四選一、二選一等),通過對CLB內(nèi)部數(shù)據(jù)選擇器的編程,邏輯函數(shù)發(fā)生器G、F和H的輸出可以連接到CLB輸出端X或Y,并用來選擇觸發(fā)器的激勵輸入信號、時鐘有效邊沿、時鐘使能信號以及輸出信號。這兩個函數(shù)發(fā)生器是完全獨立的,均可以實現(xiàn)4輸入變量的任意組合邏輯函數(shù)。 FPGA基本結構FPGA具有掩膜可編程門陣列的通用結構,它由邏輯功能塊排成陣列,并由可編程的互連資源連接這些邏輯功能塊來實現(xiàn)不同的設計。它如同一張白紙或是一堆積木,工程師可以通過傳統(tǒng)的原理圖輸入或硬件描述語言自由的設計一個數(shù)字系統(tǒng)。具有校時以及整點報時功能,可以對時、分進行單獨校對,使其校正到標準時間。數(shù)字化的鐘表給人們帶來了極大的方便。新產(chǎn)品、新技術層出不窮,電子技術的發(fā)展更是日新月異。本設計利用VHDL硬件描述語言結合可編程邏輯器件進行的,并通過數(shù)碼管動態(tài)顯示計時結果。EDA技術正是為了適應現(xiàn)代電子技術的要求,吸收眾多學科最新科技成果而形成的一門新技術。因此,研究數(shù)字鐘及擴大其應用,有著非常現(xiàn)實的意義。根據(jù)鍵盤的結構不同,采用不同的編碼方法。ASIC是專用的系統(tǒng)集成電路,是一種帶有邏輯處理的加速處理器。 FPGA目錄1 緒論 1 選題背景 1 課題相關技術的發(fā)展 2 課題研究的必要性 2 課題研究的內(nèi)容 32 FPGA簡介 4 FPGA概述 4 FPGA基本結構 4 FPGA系統(tǒng)設計流程 7 FPGA開發(fā)編程原理 83 數(shù)字鐘總體設計方案 10 數(shù)字鐘的構成 10 數(shù)字鐘的工作原理 114 單元電路設計 135 實驗結論與研究展望 32 實驗結論 32 研究展望 33致謝 34參考文獻 411 緒論現(xiàn)代社會的標志之一就是信息產(chǎn)品的廣泛使用,而且是產(chǎn)品的性能越來越強,復雜程度越來越高,更新步伐越來越快。經(jīng)編譯和仿真所設計的程序,在可編程邏輯器件上下載驗證,本系統(tǒng)能夠完成時、分顯示,由按鍵輸入進行數(shù)字鐘的校時功能。基于FPGA的多功能數(shù)字鐘設計摘要本設計為一個多功能的數(shù)字鐘,具有時、分計數(shù)顯示功能,以24小時循環(huán)計數(shù);具有校對功能以及整點報時功能。關鍵詞:數(shù)字鐘;VHDL;FPGAAbstractThe design for a multifunctional digital clock, with hours and minutes count display to a 24hour cycle count。支撐信息電子產(chǎn)品高速發(fā)展的基礎就是微電子制造工藝水平的提高和電子產(chǎn)品設計開發(fā)技術的發(fā)展。而FPGA是特殊的ASIC芯片,與其他的ASIC芯片相比,它具有設計開發(fā)周期短、設計制造成本低、開發(fā)工具先進、標準產(chǎn)品無需測試、質量穩(wěn)定以及可實時在線檢測等優(yōu)點。但無論有無編碼以及采用什么樣的編碼,最后都要轉換成為相應的鍵值,以實現(xiàn)按鍵功能程序的轉移。 選題背景本節(jié)將從FPGA嵌入式應用開發(fā)技術與數(shù)字鐘技術發(fā)展的客觀實際出發(fā),通過對該技術發(fā)展狀況的了解,以及課題本身的需要,指出研究基于FPGA的芯片系統(tǒng)與設計——數(shù)字鐘的設計與實現(xiàn)的必要性。美國ALTERA公司的可編程邏輯器件采用全新的結構和先進的技術,加上MaxplusII(或最新的QUARTUS)開發(fā)環(huán)境,更具有高性能,開發(fā)周期短等特點,十分方便進行電子產(chǎn)品的開發(fā)和設計。數(shù)字鐘可以由各種技術實現(xiàn),它具有易學,方便,新穎,有趣,直觀,設計與實驗項目成功率高,理論與實踐結合緊密,體積小,容量大,I/O口豐富,易編程和加密等特點,并且它還具有開放的界面,豐富的設計庫,模塊化的工具以及LPM定制等優(yōu)良性能,應用非常方便??梢院敛豢鋸埖恼f,電子技術的應用無處不在,電子技術正在不斷地改變我們的生活,改變著我們的世界。近些年,隨著科技的發(fā)展和社會的進步,人們對數(shù)字鐘的要求也越來越高,傳統(tǒng)的時鐘已不能滿足人們的需求。校對時間由15矩形鍵盤進行控制,為了保證計時的穩(wěn)定及準確須由晶體振蕩器提供時間基準信號。通過軟件仿真可以事先驗證設計的正確性,在PCB完成以后,利用CPLD/FPGA的在線修改功能,隨時修改設計而不必改動硬件電路。FPGA一般由3種可編程電路和一個用于存放編程數(shù)據(jù)的靜態(tài)存儲器SRAM組成。圖21是CLB基本結構框圖,它主要由邏輯函數(shù)發(fā)生器、觸發(fā)器、數(shù)據(jù)選擇器等電路組成。邏輯函數(shù)發(fā)生器H有3個輸入信號;前兩個是函數(shù)發(fā)生器的輸出G’和F’,而另一個輸入信號是來自信號變換電路的輸出H1。這些數(shù)據(jù)選擇器的地址控制信號均由編程信息提供,從而實現(xiàn)所需的電路結構。當IOB控制的引腳被定義為輸入時,通過該引腳的輸入信號先送入輸入緩沖器。IOB輸出端配有兩只MOS管,它們的柵極均可編程,使MOS管導通或截止,分別經(jīng)上拉電阻接通Vcc、地線或者不接通,用以改善輸出波形和負載能力。 FPGA系統(tǒng)設計流程一般說來,一個比較大的完整的項目應該采用層次化的描述方法:分為幾個較大的模塊,定義好各功能模塊之間的接口,然后各個模塊再細分去具體實現(xiàn),這就是TOP DOWN(自頂向下)的設計方法。系統(tǒng)劃分①編譯器③代碼級功能仿真④綜合器⑤適配前時序仿真⑥適配器⑦CPLD/FPGA實現(xiàn)適配后仿真模型⑧適配后時序仿真適配報告⑧ASIC實現(xiàn)VHDL代碼或圖形方式輸入②仿真綜合庫器件編程文件⑧圖22 CPLD/FPGA系統(tǒng)設計流程流程說明:“自頂向下”的設計方法進行系統(tǒng)劃分。,主要是檢驗系統(tǒng)功能設計的正確性。綜合優(yōu)化是針對ASIC芯片供應商的某一產(chǎn)品系列進行的,所以綜合的過程要在相應的廠家綜合庫的支持下才能完成。,產(chǎn)生多項設計結果:(a)適配報告,包括芯片內(nèi)部資源利用情況,設計的布爾方程描述情況等;(b)適配后的仿真模型;(c)器件編程文件。 FPGA開發(fā)編程原理硬件設計需要根據(jù)各種性能指標、成本、開發(fā)周期等因素,確定最佳的實現(xiàn)方案,畫出系統(tǒng)框圖,選擇芯片,設計PCB并最終形成樣機。HDL既可以描述底層設計,也可以描述頂層的設計,但它不容易做到較高的工作速度和芯片利用率。有的軟件3種輸入方法都支持,如ActiveHDL。在圖形的方式下定義好各個工作狀態(tài),然后在各個狀態(tài)上輸入轉換條件以及相應的輸入輸出,最后生成HDL語言描述,送去綜合軟件綜合到可編程邏輯器件的內(nèi)部。由于計數(shù)的起始時間不可能與標準時間(如北京時間)一致,故需要在電路上加一個校時電路,同時標準的1HZ時間信號必須做到準確穩(wěn)定。秒計數(shù)器滿60后向分計數(shù)器進位,分計數(shù)器滿60后向小時計數(shù)器進位,小時計數(shù)器按照“24翻1”規(guī)律計數(shù)??刂菩盘栍?5矩形鍵盤輸入。石英晶體的選頻特性非常好,只有某一頻率點的信號可以通過它,其它頻率段的信號均會被它所衰減,而且,振蕩信號的頻率與振蕩電路中的R、C元件的數(shù)值無關。分頻電路的邏輯框圖如圖42所示。模塊的實現(xiàn)方法是先判斷是否有按鍵按下,如有按鍵按下則延時一段時間,待抖動過去之后再讀行線狀態(tài),如果仍有低電平行線,則確定有按鍵按下,然后產(chǎn)生一個有按鍵按下的信號。USE 。END colv。 then count:=0。039。139。END colv_architecture。按鍵控制模塊的框圖如圖47所示。圖(b)中的flag是判斷小時高位是1還是2的信號,若為1,則flag信號為低電平;若為2,則flag信號為高電平。ENTITY addram IS PORT ( inkey : IN STD_LOGIC。BEGINoaddr=count。 end if。對于分的高位,僅將程序中的count=9改成count=5即可;對于小時的高位,僅將程序中的count=9改成count=2即可。ENTITY addram3 IS PORT ( inkey : IN STD_LOGIC。ARCHITECTURE addram3_architecture OF addram3 ISsignal count:std_logic_vector(3 downto 0)。 then if count=3 then count=0000。 if count=9 then count=0000。end process k1。模塊主要完成秒向分的進位,產(chǎn)生脈沖信號。 os : OUT STD_LOGIC )。139。 count:=count+1。(2)分低位計數(shù)器該模塊框圖如圖49所示。USE 。 iset_addr : IN STD_LOGIC_VECTOR(3 DOWNTO 0)。ARCHITECTURE ml_architecture OF ml ISBEGINk1:process(clk_1s,iset)variable count:integer range 0 to 10:=0。 addr_1s=iset_addr。 addr_1s=CONV_STD_LOGIC_VECTOR(count,4)。 addr_1s=CONV_STD_LOGIC_VECTOR(count,4)。END ml_architecture。圖410小時低位計數(shù)模塊元件圖程序如下:LIBRARY ieee。ENTITY hl IS PORT ( clk_1s : IN STD_LOGIC。 addr_1s : OUT STD_LOGIC_vector(3 downto 0)。beginif iset=39。elsif rising_edge(clk_1s) then if flag=39。 count:=0。 count:=count+1。139。039。 end if。(4)小時高位計數(shù)模塊該模塊框圖如圖411所示。USE 。 iset_addr : IN STD_LOGIC_VECTOR(3 DOWNTO 0)。ARCHITECTURE hh_architecture OF hh ISBEGINk1:process(clk_1s,iset)variable count:integer range 0 to 2:=0。 addr_1s=iset_addr。039。 count:=0。 count:=count+1。 count:=count+1。end process k1。 USE 。 END drive。 when 0001=led=11111001。 when 0101=led=10010010。 when 1001=led=10010000。 end behave。ENTITY conv IS PORT ( idata : IN STD_LOGIC_VECTOR(7 downto 0)。END conv_architecture。模塊元件如圖414:圖414整點報時模塊元件程序如下:library ieee。entity baoshi isport(mh,ml,hh,hl:in std_