【正文】
when 106=tone_index=10。 when 114=tone_index=5。 when 122=tone_index=8。 when 130=tone_index=8。 when 138=tone_index=0。 773 when 2=tone=01110010000。 1542 when 12=tone=11001010110。sig500=c。end if。 process(clkm) control the frequence of the speaker begin if hh=0001 and hl=0010 and mh=0011 and ml=0000 then if(clkm39。 end if。end behave??偟膩碚f,通過這次的設(shè)計(jì)實(shí)驗(yàn)更進(jìn)一步地增強(qiáng)了實(shí)驗(yàn)的動手能力,對數(shù)字鐘的工作原理也有了更加透徹的理解。無論在理論上還是在實(shí)踐中,都給與我很大的幫助。由于本人學(xué)識有限,加之時間倉促,文中不免有錯誤和待改進(jìn)之處,真誠歡迎各位師長、同學(xué)提出寶貴意見。 致謝在論文完成之際,我首先要向指導(dǎo)老師吳小所老師表示最真摯的謝意。再加上器件對信號的延時等問題,實(shí)際下載硬件電路上后會出現(xiàn)一系列的問題,因此仿真圖和電路連接圖還是有一定區(qū)別的。b=clk05s and not(c)。 else tone_count=tone_count+1。end if。 else c=39。process(clk05s)variable t:integer range 0 to 120:=0。 1410 when 9=tone=10111001000。 process(tone_index) begin case tone_index is when 0=tone=11111111111。 when 136=tone_index=5。 when 128=tone_index=5。 when 120=tone_index=8。 when 112=tone_index=8。 when 104=tone_index=12。 when 96=tone_index=6。 when 88=tone_index=6。 when 80=tone_index=5。 when 72=tone_index=6。 when 64=tone_index=10。 when 56=tone_index=5。 when 48=tone_index=3。 when 40=tone_index=5。 when 32=tone_index=9。 when 24=tone_index=9。 when 16=tone_index=12。 when 8=tone_index=8。) then case time is when 0=tone_index=3。) then if(time=150) then time=0。) then clk10_count=clk10_count+1。 END IF。 BEGIN IF iclk=39。139。039。 signal time : integer range 0 to 150。end baoshi。模塊元件如圖414:圖414整點(diǎn)報(bào)時模塊元件程序如下:library ieee。ENTITY conv IS PORT ( idata : IN STD_LOGIC_VECTOR(7 downto 0)。 when 1001=led=10010000。 when 0001=led=11111001。 USE 。 count:=count+1。 count:=0。 addr_1s=iset_addr。 iset_addr : IN STD_LOGIC_VECTOR(3 DOWNTO 0)。(4)小時高位計(jì)數(shù)模塊該模塊框圖如圖411所示。039。 count:=count+1。elsif rising_edge(clk_1s) then if flag=39。 addr_1s : OUT STD_LOGIC_vector(3 downto 0)。圖410小時低位計(jì)數(shù)模塊元件圖程序如下:LIBRARY ieee。 addr_1s=CONV_STD_LOGIC_VECTOR(count,4)。 addr_1s=iset_addr。 iset_addr : IN STD_LOGIC_VECTOR(3 DOWNTO 0)。(2)分低位計(jì)數(shù)器該模塊框圖如圖49所示。139。模塊主要完成秒向分的進(jìn)位,產(chǎn)生脈沖信號。 if count=9 then count=0000。ARCHITECTURE addram3_architecture OF addram3 ISsignal count:std_logic_vector(3 downto 0)。對于分的高位,僅將程序中的count=9改成count=5即可;對于小時的高位,僅將程序中的count=9改成count=2即可。BEGINoaddr=count。圖(b)中的flag是判斷小時高位是1還是2的信號,若為1,則flag信號為低電平;若為2,則flag信號為高電平。END colv_architecture。039。END colv。模塊的實(shí)現(xiàn)方法是先判斷是否有按鍵按下,如有按鍵按下則延時一段時間,待抖動過去之后再讀行線狀態(tài),如果仍有低電平行線,則確定有按鍵按下,然后產(chǎn)生一個有按鍵按下的信號。石英晶體的選頻特性非常好,只有某一頻率點(diǎn)的信號可以通過它,其它頻率段的信號均會被它所衰減,而且,振蕩信號的頻率與振蕩電路中的R、C元件的數(shù)值無關(guān)。秒計(jì)數(shù)器滿60后向分計(jì)數(shù)器進(jìn)位,分計(jì)數(shù)器滿60后向小時計(jì)數(shù)器進(jìn)位,小時計(jì)數(shù)器按照“24翻1”規(guī)律計(jì)數(shù)。在圖形的方式下定義好各個工作狀態(tài),然后在各個狀態(tài)上輸入轉(zhuǎn)換條件以及相應(yīng)的輸入輸出,最后生成HDL語言描述,送去綜合軟件綜合到可編程邏輯器件的內(nèi)部。HDL既可以描述底層設(shè)計(jì),也可以描述頂層的設(shè)計(jì),但它不容易做到較高的工作速度和芯片利用率。,產(chǎn)生多項(xiàng)設(shè)計(jì)結(jié)果:(a)適配報(bào)告,包括芯片內(nèi)部資源利用情況,設(shè)計(jì)的布爾方程描述情況等;(b)適配后的仿真模型;(c)器件編程文件。,主要是檢驗(yàn)系統(tǒng)功能設(shè)計(jì)的正確性。 FPGA系統(tǒng)設(shè)計(jì)流程一般說來,一個比較大的完整的項(xiàng)目應(yīng)該采用層次化的描述方法:分為幾個較大的模塊,定義好各功能模塊之間的接口,然后各個模塊再細(xì)分去具體實(shí)現(xiàn),這就是TOP DOWN(自頂向下)的設(shè)計(jì)方法。當(dāng)IOB控制的引腳被定義為輸入時,通過該引腳的輸入信號先送入輸入緩沖器。這些數(shù)據(jù)選擇器的地址控制信號均由編程信息提供,從而實(shí)現(xiàn)所需的電路結(jié)構(gòu)。圖21是CLB基本結(jié)構(gòu)框圖,它主要由邏輯函數(shù)發(fā)生器、觸發(fā)器、數(shù)據(jù)選擇器等電路組成。通過軟件仿真可以事先驗(yàn)證設(shè)計(jì)的正確性,在PCB完成以后,利用CPLD/FPGA的在線修改功能,隨時修改設(shè)計(jì)而不必改動硬件電路。近些年,隨著科技的發(fā)展和社會的進(jìn)步,人們對數(shù)字鐘的要求也越來越高,傳統(tǒng)的時鐘已不能滿足人們的需求。數(shù)字鐘可以由各種技術(shù)實(shí)現(xiàn),它具有易學(xué),方便,新穎,有趣,直觀,設(shè)計(jì)與實(shí)驗(yàn)項(xiàng)目成功率高,理論與實(shí)踐結(jié)合緊密,體積小,容量大,I/O口豐富,易編程和加密等特點(diǎn),并且它還具有開放的界面,豐富的設(shè)計(jì)庫,模塊化的工具以及LPM定制等優(yōu)良性能,應(yīng)用非常方便。 選題背景本節(jié)將從FPGA嵌入式應(yīng)用開發(fā)技術(shù)與數(shù)字鐘技術(shù)發(fā)展的客觀實(shí)際出發(fā),通過對該技術(shù)發(fā)展?fàn)顩r的了解,以及課題本身的需要,指出研究基于FPGA的芯片系統(tǒng)與設(shè)計(jì)——數(shù)字鐘的設(shè)計(jì)與實(shí)現(xiàn)的必要性。而FPGA是特殊的ASIC芯片,與其他的ASIC芯片相比,它具有設(shè)計(jì)開發(fā)周期短、設(shè)計(jì)制造成本低、開發(fā)工具先進(jìn)、標(biāo)準(zhǔn)產(chǎn)品無需測試、質(zhì)量穩(wěn)定以及可實(shí)時在線檢測等優(yōu)點(diǎn)。關(guān)鍵詞:數(shù)字鐘;VHDL;FPGAAbstractThe design for a multifunctional digital clock, with hours and minutes count display to a 24hour cycle count。經(jīng)編譯和仿真所設(shè)計(jì)的程序,在可編程邏輯器件上下載驗(yàn)證,本系統(tǒng)能夠完成時、分顯示,由按鍵輸入進(jìn)行數(shù)字鐘的校時功能。ASIC是專用的系統(tǒng)集成電路,是一種帶有邏輯處理的加速處理器。因此,研究數(shù)字鐘及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。本設(shè)計(jì)利用VHDL硬件描述語言結(jié)合可編程邏輯器件進(jìn)行的,并通過數(shù)碼管動態(tài)顯示計(jì)時結(jié)果。數(shù)字化的鐘表給人們帶來了極大的方便。它如同一張白紙或是一堆積木,工程師可以通過傳統(tǒng)的原理圖輸入或硬件描述語言自由的設(shè)計(jì)一個數(shù)字系統(tǒng)。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),通過自動布線實(shí)現(xiàn)各種電路的連接。,包括底層器件配置、邏輯分割、邏輯優(yōu)化和布局布線。具體的設(shè)計(jì)輸入方式有以下幾種:。一般大都使用成熟的IP核和中小規(guī)模集成電路所搭成的現(xiàn)成電路,整體放到一片可編程邏輯器件的內(nèi)部去,所以硬件工作速度和芯片利用率很高,但是但項(xiàng)目很大的時候,該方法就顯得有些繁瑣;狀態(tài)機(jī)描述主要用來設(shè)計(jì)基于狀態(tài)機(jī)思想的時序電路。圖31 總體框架 數(shù)字鐘的工作原理振蕩器產(chǎn)生穩(wěn)定的高頻脈沖信號,作為數(shù)字鐘的時間基準(zhǔn),然后經(jīng)過分頻器輸出標(biāo)準(zhǔn)秒脈沖。4 單元電路設(shè)計(jì) 分頻模塊電路設(shè)計(jì)與實(shí)現(xiàn)晶體振蕩器是構(gòu)成數(shù)字式時鐘的核心,振蕩器的穩(wěn)定度及頻率的精度決定了數(shù)字鐘計(jì)時的準(zhǔn)確程度,它保證了時鐘的走時準(zhǔn)確及穩(wěn)定。圖43 分頻模塊仿真圖 校時控制模塊電路設(shè)計(jì)與實(shí)現(xiàn)本模塊用于當(dāng)有按鍵按下時,采用軟件消抖的辦法去除按鍵抖動。 okey : OUT STD_LOGIC )。elsif rising_edge(clk) then if count=30 then okey=39。end pro