久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 12774|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

基于FPGA的萬年歷設(shè)計(quartus代碼+PCB文件+文檔)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:466735 發(fā)表于 2019-3-3 18:02 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
eda萬年歷,可以顯示年份,星期,時間,秒表計時等功能。文件夾包含論文,pcb板設(shè)計,quartus程序。

全部資料51hei下載地址:
system_test.rar (6.89 MB, 下載次數(shù): 133)
formal_code.rar (7.03 MB, 下載次數(shù): 90)
FPGA萬年歷.docx (1.7 MB, 下載次數(shù): 99)
pcb.rar (645.2 KB, 下載次數(shù): 58)


基于FPGA的電子鐘設(shè)計,主要完成的任務(wù)是使用Verilog語音,在Quartise2上完成電路的設(shè)計,程序的開發(fā),基本功能是能夠顯示、修改年月日時分秒。電路的設(shè)計模塊分為幾個模塊:分頻、控制、時間顯示調(diào)整、時分、年月日、譯碼器。各個模塊完成不同的任務(wù),合在一起就構(gòu)成了電子鐘。至于程序編寫,使用Verilog語言,根據(jù)各個模塊的不同功能和它們之間的控制關(guān)系進行編寫。軟件模塊直接在Quartis2上進行。進入信息時代,時間觀念越來越強,但是老是的鐘表以及日歷等時間顯示工具已經(jīng)不太合適。如鐘表易壞,需經(jīng)常維修,日歷每天都需要翻頁等。對此,數(shù)字鐘表的設(shè)計就用了用武之地。 基于FPGA的電子鐘設(shè)計,采用軟件開發(fā)模塊,開發(fā)成本底,而且功能設(shè)計上有很大的靈活度,需要在軟件上進行簡單的修該就能實現(xiàn)不同的功能要求,能夠滿足不同的環(huán)境要求。同時,該設(shè)計在精度上遠(yuǎn)遠(yuǎn)超過鐘表,并且不需要維修,也不用每天的翻頁,極其的方便。且能夠添加各種不同的功能要求。例如:在其上加鬧鐘,同時顯示陰陽歷等。綜上所述本設(shè)計具有設(shè)計方便、功能多樣、電路簡潔成本低廉等優(yōu)點,符合社會發(fā)展的趨勢,前景廣闊。

目錄

1 緒論              1
1.1電子鐘的發(fā)展              1
1.2 FPGA簡介              1
1.3 VHDL語言簡介              2
2 設(shè)計方案              3
2.1設(shè)計要求              3
2.2設(shè)計實現(xiàn)功能              3
2.3模塊設(shè)計              4
2.3.1計時模塊              4
2.3.2分計數(shù)器              6
2.3.3時計數(shù)              7
2.3.4設(shè)置時間模塊              7
2.3.5整點報時模塊              10
2.3.6顯示時間模塊              11
2.3.7控制數(shù)碼管              12
2.3.8數(shù)碼管顯示器              14
2.3.9分頻模塊              15
2.3.10鬧鐘模塊              17
3 系統(tǒng)設(shè)計              17
3.1 數(shù)字鐘系統(tǒng)模塊框圖              18
4 硬件設(shè)計              18
4.1  電源接口電路設(shè)計              18
4.2 電源系統(tǒng)設(shè)計              18
4.3 JTAG端口和FPGA配置電路設(shè)計              19
4.4 數(shù)碼管電源擴展電路              19
4.5  數(shù)碼管電路              19
4.6  指示燈顯示電路              19
結(jié)  論              20
致  謝              21
參 考 文 獻              22
附錄.23

1 緒論

隨著EDA技術(shù)的發(fā)展和應(yīng)用領(lǐng)域的擴大與深入,EDA技術(shù)在電子信息、通信、自動控制及計算機應(yīng)用領(lǐng)域的重要性日益突出。EDA技術(shù)就是依賴功能強大的計算機,在 EDA工具軟件平臺上,對以硬件描述語言VHDL為系統(tǒng)邏輯描述手段完成的設(shè)計文件,自動地完成邏輯優(yōu)化和仿真測試,直至實現(xiàn)既定的電子線路系統(tǒng)功能。近十年來隨著超大規(guī)模集成電路和軟件技術(shù)的快速發(fā)展,使數(shù)字系統(tǒng)集成到一片集成電路內(nèi)成為可能,許多公司都推出了非常好的CPLD 和FPGA 產(chǎn)品,并為這些產(chǎn)品的設(shè)計配備了設(shè)計、下載軟件,這些軟件除了支持圖形方式設(shè)計數(shù)字系統(tǒng)外,還支持設(shè)計許多種數(shù)字系統(tǒng)的設(shè)計語言,使數(shù)字系統(tǒng)設(shè)計起來更加容易,可以說數(shù)字電子技術(shù)的設(shè)計進入了一個新時代。在這樣一個大背景下,熟練掌握相關(guān)功能模塊的開發(fā)就成為設(shè)計者必備的一部分知識。


1.1電子鐘的發(fā)展

鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地擴展了鐘表原先的報時功能,諸如定時自動報警、按時自動打鈴、時間程序自動控制、定時廣播、定時啟閉路燈等。所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究電子萬年歷及擴大其應(yīng)用,有非常現(xiàn)實的意義。數(shù)字鐘是一種用數(shù)字電路技術(shù)實現(xiàn)時、分、秒計時的裝置,與機械式時鐘相比具有更高的準(zhǔn)確性和直觀性,且無機械裝置,具有更長的使用壽命,因此得到了廣泛的使用。電子萬年歷從原理上講是一種典型的數(shù)字電路,其中包括了組合邏輯電路和時序電路。  因此,我們此次設(shè)計與制作電子萬年歷就是為了了解數(shù)字鐘的原理,從而學(xué)會制作數(shù)字鐘。而且通過萬年歷的制作進一步了解各種在制作中用到的中小規(guī)模集成電路的作用及使用方法,且由于電子萬年歷包括組合邏輯電路和時序電路,通過它可以進一步學(xué)習(xí)與掌握各種組合邏輯電路與時序電路的原理與使用方法。  

1.2 FPGA簡介  

FPGA是現(xiàn)場可編程門陣列(Field programmable gates array)的英文簡稱。是有可編程邏輯模塊組成的數(shù)字集成電路(IC)。這些邏輯模塊之間用可配置的互聯(lián)資源。設(shè)計者可以對這些器件進行編程來完成各種各樣的任務(wù)。   

PLD/FPGA是近幾年集成電路中發(fā)展最快的產(chǎn)品。由于PLD性能的高速發(fā)展以及設(shè)計人員自身能力的提高,可編程邏輯器件供應(yīng)商將進一步擴大可編程芯片的領(lǐng)地,將復(fù)雜的專用芯片擠向高端和超復(fù)雜應(yīng)用。據(jù)IC Insights的數(shù)據(jù)顯示,PLD市場從1999年的29億美元增長到去年的56億美元,幾乎翻了一番。Matas預(yù)計這種高速增長局面以后很難出現(xiàn),但可編程邏輯器件依然是集成電路中最具活力和前途的產(chǎn)業(yè)。

復(fù)雜可編程邏輯器件。 可編程邏輯器件的兩種主要類型是現(xiàn)場可編程門陣列(FPGA)和復(fù)雜可編程邏輯(CPLD)。 在這兩類可編程邏輯器件中,F(xiàn)PGA提供了最高的邏輯密度、最豐富的特性和最高的性能。 現(xiàn)在最新的FPGA器件,如Xilinx Virtex"系列中的部分器件,可提供八百萬"系統(tǒng)門"(相對邏輯密度)。 這些先進的器件還提供諸如內(nèi)建的硬連線處理器(如IBM Power PC)、大容量存儲器、時鐘管理系統(tǒng)等特性,并支持多種最新的超快速器件至器件(device-to-device)信號技術(shù)。 FPGA被應(yīng)用于范圍廣泛的應(yīng)用中,從數(shù)據(jù)處理和存儲,以及到儀器儀表、電信和數(shù)字信號處理等。

1.3 VHDL語言簡介

VHDL :vhsic(very high speed integrated circuit)hardware descriptiong language,也就是超高速集成電路硬件描述語言,vhdl語言是一種用于電路設(shè)計的高級語言。它在80年代的后期出現(xiàn)。最初是由美國國防部開發(fā)出來供美軍用來提高設(shè)計的可靠性和縮減開發(fā)周期的一種使用范圍較小的設(shè)計語言。但是,由于它在一定程度上滿足了當(dāng)時的設(shè)計需求,于是他在1987年成為ansi/ieee的標(biāo)準(zhǔn)(ieee std 1076-1987)。1993年更進一步修訂,變得更加完備,成為ansi/ieee的ansi/ieee std 1076-1993標(biāo)準(zhǔn)。目前,大多數(shù)的cad廠商出品的eda軟件都兼容了這種標(biāo)準(zhǔn)。它的應(yīng)用主要是應(yīng)用在數(shù)字電路的設(shè)計中。目前,它在中國的應(yīng)用多數(shù)是fpga/cpld/epld的設(shè)計中。當(dāng)然在一些實力較為雄厚的單位,它也被用來設(shè)計asic。

VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式、描述風(fēng)格以及語法是十分類似于一般的計算機高級語言。VHDL的程序結(jié)構(gòu)特點是將一項工程設(shè)計,或稱設(shè)計實體(可以是一個元件,一個電路模塊或一個系統(tǒng))分成外部(或稱可視部分,及端口)和內(nèi)部(或稱不可視部分),既涉及實體的內(nèi)部功能和算法完成部分。在對一個設(shè)計實體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計就可以直接調(diào)用這個實體。這種將設(shè)計實體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計的基本點。與其他的硬件描述語言相比,VHDL具有更強的行為描述能力。從而決定了他成為系統(tǒng)設(shè)計領(lǐng)域最佳的硬件描述語言。強大的行為描述能力是避開具體的器件結(jié)構(gòu),從邏輯行為上描述和設(shè)計大規(guī)模電子系統(tǒng)的重要保證。

VHDL豐富的仿真語句和庫函數(shù),使得在任何大系統(tǒng)的設(shè)計早期就能查驗設(shè)計系統(tǒng)的功能可行性,隨時可對設(shè)計進行仿真模擬。VHDL語句的行為描述能力和程序結(jié)構(gòu)決定了他具有支持大規(guī)模設(shè)計的分解和已有設(shè)計的再利用功能。符合市場需求的大規(guī)模系統(tǒng)高效,高速的完成必須有多人甚至多個開發(fā)組共同并行工作才能實現(xiàn)。對于用VHDL完成的一個確定的設(shè)計,可以利用EDA工具進行邏輯綜合和優(yōu)化,并自動的把VHDL描述設(shè)計轉(zhuǎn)變成門級網(wǎng)表。VHDL對設(shè)計的描述具有相對獨立性,設(shè)計者可以不懂硬件的結(jié)構(gòu),也不必管理最終設(shè)計實現(xiàn)的目標(biāo)器件是什么,而進行獨立的設(shè)計。

2              設(shè)計方案2.1設(shè)計要求
  • 進行正常的時、分、秒計時功能,二十四小時制計時

  • 由數(shù)碼管顯示24h60min60s

  • 設(shè)置時間

  • 整點報時

  • 鬧鐘功能
2.2設(shè)計實現(xiàn)功能

該數(shù)字電子鐘能夠?qū)崿F(xiàn)時、分、秒計時功能;校準(zhǔn)時和分的功能;校準(zhǔn)時間時秒清零的功能;整點報時的功能;

2.3模塊設(shè)計

圖1.模塊總設(shè)計圖

2.3.1計時模塊

秒計數(shù)是由一個六十進制的計數(shù)器構(gòu)成,生成元器件如下


圖2

Clk:驅(qū)動秒計時器的時鐘信號Clr:校準(zhǔn)時間時清零的輸入端En:使能端Sec0[3..0] sec1[3..0]:秒的高位顯示,低位顯示Co:進位輸出端,作為分的clk輸入

仿真圖如下:

圖3

圖4

2.3.2分計數(shù)分計數(shù)器是由六十進制的計數(shù)器構(gòu)成,生成元器件如下

圖5

Clk:設(shè)置分輸入和秒進位的或輸入    En:使能輸入    Min1[3..0]  min0[3..0]:分的高位顯示,低位顯示    Co:向時的進位輸出

仿真圖如下:

圖6

2.3.3時計數(shù) 時計數(shù)器是由二十四進制的計數(shù)器構(gòu)成,生成元器件如下

圖7

Clk:設(shè)置時間輸入和分進位輸入的或en:使能端h1[3..0] h0[3..0]:時的高位顯示和低位顯示

仿真圖如下:

圖8

2.3.4設(shè)置時間模塊 按鍵去抖動,生成元器件如下

圖9

Clk:256hz頻率輸入Reset:接GNDDin:接按鍵Dout:輸出傳給按鍵選擇器

仿真圖如下:

圖10

按鍵選擇器,生成元器件如下

圖11

Clk:16hz輸入Key1:按鍵調(diào)分的輸入Key2:按鍵調(diào)時的輸入Key3:按鍵秒清零的輸入Led1:輸出信號給分元器件Led2:輸出信號給時元器件Led3:輸出清零信號給秒元器件

仿真圖如下:

圖12

2.3.5整點報時模塊

圖13

Clk1:接512hzClk2 clk:En:使能輸入M1[3..0]  m0[3..0]:接分的高位輸出和低位輸出S1[3..0] s0[3..0]:接秒的高位輸出和低位輸出Speaker:連接蜂鳴器

仿真圖如下:

圖14

2.3.6顯示時間模塊 模八的器件控制八個數(shù)碼管顯示的循環(huán),生成元器件如下

圖15

Clk:輸入
Clr:接GND
En:使能端
Y[2..0]:輸出接數(shù)碼管三個接受端

仿真圖如下:

圖16

2.3.7控制數(shù)碼管八選一的器件控制數(shù)碼管的亮或不亮,生成元器件如下

圖17

Sel【2..0】:連接模八器件M7[3..0]  m6[3..0]:連接秒的高位和低位輸出M5[3..0]:接vcc(顯示橫)M4[3..0]  m3[3..0]:接分的高位和低位輸出M2[3..0]:接vcc(顯示橫)M1[3..0]  m0[3..0]:連接時的高位低位輸出Y[3..0]:輸出給數(shù)碼管顯示

仿真圖如下:

圖18



2.3.8數(shù)碼管顯示器 數(shù)碼管顯示器件,生成元器件如下

圖19

Num[3..0]:接收八選一的輸出信號Y[6..0]:驅(qū)動數(shù)碼管顯示

仿真圖如下:

圖20

2.3.9分頻模塊 分頻器生成的元器件如下:

圖21

Clk:時鐘輸入
Clk512:512hz給響鈴模塊
Clk1:1hz輸出給秒計數(shù)器
Clk16:16hz輸出給按鍵選擇器
Clk256:256hz輸出給按鍵抖動

仿真圖如下:

圖22

2.3.10鬧鐘模塊 比較器,比較當(dāng)時顯示時間與設(shè)置的鬧鐘時間是否相等,如相等,輸出信號給蜂鳴器。生成元器件如下:

圖23

Clk clk1:使能輸入
H0[3..0] h1[3..0]:鬧鐘設(shè)置時間的分輸入
H3[3..0]  h2[3..0]:鬧鐘設(shè)置時間的時輸入
S0[3..0] s1[3..0]:現(xiàn)在時間的分的輸入
S2[3..0] s3[3..0]:現(xiàn)在時間的時的輸入
Y:輸出信號給蜂鳴器

3 系統(tǒng)設(shè)計

完成了數(shù)字鐘各個模塊的仿真驗證工作后,接下來把模塊有機地結(jié)合起來就構(gòu)成了一個完整的數(shù)字鐘。這里要完成的工作即是編寫數(shù)字鐘的頂層設(shè)計代碼,將各個模塊連接起來。

3.1 數(shù)字鐘系統(tǒng)模塊框圖

用quartuse ii 對系統(tǒng)工程進行綜合以后,點擊RTL_VIWER系統(tǒng)可以自動生成設(shè)計的系統(tǒng)原理圖(RTL視圖)。

圖3

4 硬件設(shè)計

前面我們的硬件描述語言已經(jīng)把整個設(shè)計的做完,功能仿真也進行完畢了。但是我們的硬件設(shè)計的核心器件還沒有定下來。采用器件(EP4CE6E22C8)對工程進行綜合編譯,可以看到資源占用報告。

4.1  電源接口電路設(shè)計

電源接口電路采用了兩種供電的方式,滿足不同的情況下使用。(1)Micro Usb供電,取電方便,用智能手機的充電線或者充電寶均可取電;(2)排針供電,但是必須要實驗室直流電源通過排線接入5V電源。

電路中使用D1用來防反接,防止電源接反;R1使用的是自恢復(fù)保險絲,當(dāng)后面電路意外短路的時,電阻急劇增大,形成高阻狀態(tài),防止燒壞后面電路的器件,當(dāng)短路情況消失后,電阻減少,形成低阻狀態(tài),從而不需要人工干預(yù),有效地保護電路LED作為一個電源指示燈,當(dāng)電源接好并且K1開關(guān)打開時電源指示燈常亮。

4.2 電源系統(tǒng)設(shè)計

FPGA芯片需要用到3種電源供電,所以電路中設(shè)計3種電源轉(zhuǎn)換電路

(1)5V電源轉(zhuǎn)33V,E5、E6用來濾波儲能,C3、C6用來濾出高頻電源噪聲

(2)5V電源轉(zhuǎn)2.5V,外部加的濾波電容功能同上。

(3)3V電源轉(zhuǎn)1.2V,外部的電容功能同上。

4.3 JTAG端口和FPGA配置電路設(shè)計

程序的下載,采用通用的JTAG方式下載程序,由于FPGA掉電易失,所以需要掛一個存儲器。電路中用的是EPCS16S18N,設(shè)計PCB板的時候需要注意的地方,就是有些管腳需要上拉電阻。

4.4 數(shù)碼管電源擴展電路

此次設(shè)計的數(shù)碼管電路采用動態(tài)掃描的方式來顯示。由于電路中有8個數(shù)碼管,如果不采用動態(tài)掃描電路,那么將會用到60多個I/O口,不利用PCB布線且也浪費了FPGA芯片的I/O口。由于閃爍的頻率在大于40HZ后,人眼就無法識別閃爍了,這樣,在程序中設(shè)置每個數(shù)碼管的點亮?xí)r間大于40HZ就會實現(xiàn)眼睛被欺騙的結(jié)果,數(shù)碼管常亮。在使用數(shù)碼管動態(tài)掃描電路的時候,一定要注意驅(qū)動電流的選擇,如果不增加電流擴展電路,那么最終的結(jié)果就是數(shù)碼管的顯示很暗又或者顯示不穩(wěn)定,電路中每個公共信號都采用一個NPN三極管來擴展電流,增加驅(qū)動能力。

4.5  數(shù)碼管電路

電路里面的使用了8個上圖所示的數(shù)碼管,采用共陰極的接法,程序中按照8個數(shù)碼管從高到低位分時選擇seg_en_x的管腳,點亮選擇的數(shù)碼管,由于分時選擇的速度很快,遠(yuǎn)遠(yuǎn)大于人眼能夠識別的頻率,從而看上去數(shù)碼管都是亮的。

4.6  指示燈顯示電路

電路設(shè)計上留了4個不同顏色的燈,均通過FPGA芯片的IO口直接供電,高電平,點亮對應(yīng)的燈,這4種燈具有以下的功能:LED3(鬧鐘設(shè)置模式指示燈)、LED4(日期設(shè)置模式指示燈)、LED5(時間調(diào)整模式指示燈)、LED6(正常顯示模式下指示燈)。

結(jié)  論

通過這次課設(shè)實訓(xùn),在硬件方面,使我們對EDA試驗箱有了很多的了解,彌補了我們的知識的缺陷,同時對EDA試驗箱內(nèi)部的工作原理,以及EDA試驗箱各個實驗?zāi)J降墓δ芎茏饔糜辛艘欢ǖ牧私猓瑢W(xué)習(xí)了硬件引腳綁定過程,以及綁定的一些基本常識,并動手完成了綁定,這樣不僅拓寬我們的知識面,增強動手能力和實踐能力,同時還培養(yǎng)我們的分析和解決實際問題的能力。
在軟件方面,我們通過分組在軟件Max+plus2上獨立完成老師給我們的實訓(xùn)題目——電子鐘。從開始分析點鐘原理,在定義底層文件名稱,編寫底層文件程序,然后鏈接各個模塊,到最終完成測試,并運行成功,這些加強了我們的分析問題的能力,提高了我們編程的能力,同時還培養(yǎng)了我們獨立完成任務(wù)和查閱資料刪選資料的能力,雖然完成的軟件在實際運用中還有很多不足,比如軟件運行的環(huán)境有限,程序的效率不高,在老師的要求上也不能全部到達(dá)預(yù)期的最好效果,等等一些問題,這都需要我們以后更深層次的加以修改,使其更加簡單更加方便更加通俗易懂。


              電子日歷一路編來可謂是坎坎坷坷,但大家都沒有放棄,積極主動的找老師、找同學(xué)幫忙解決難題。后來,又重新分析原理,重復(fù)操作,遇到困難馬上向老師提問,及時解決問題,這樣的效果很明顯。
在這次實訓(xùn)中,我深深的感受到上課聽講的重要性,課設(shè)中遇到的很多問題都是老師上課講解的一些難點,自己沒有很好的領(lǐng)悟的地方。每個學(xué)生對老師課堂上講的內(nèi)容的接收都是不一樣的,通過向老師請教,同學(xué)討論,最后才得以解決問題,實訓(xùn)才能得以成功。
              從整體看這次實訓(xùn)是很成功的,讓我們都有很大的收獲,同時也非常感謝在實訓(xùn)過程中給予我們很大幫助的老師,在老師耐心細(xì)心的指導(dǎo)下,我才能很好的完成實訓(xùn)認(rèn)務(wù)。



附錄

PCB圖



原理圖

  1. 代碼
  2. /*=====================================================
  3. *****************************************************
  4. design name                  :wipe_key_shake
  5. use                                              :按鍵消抖模塊
  6. engineer                  :
  7. version                                :V0.1
  8. change note               :
  9. V0.1 首次建立    :
  10. ****************************************************

  11. *****************************************************
  12. 功能說明:
  13.             
  14. *****************************************************

  15. *****************************************************
  16. 端口信號說明:
  17. in  clk               :50M時鐘輸入
  18. in  rst_n             :復(fù)位信號輸入

  19. in  mode_key          :模式按鍵輸入
  20. in  move_key          :移位按鍵輸入
  21. in  add_key           :數(shù)值加鍵輸入
  22. in  switch_key        :顯示選擇按鍵輸入

  23. out speaker           :喇叭端口

  24. out seg_en            :數(shù)碼管使能端
  25. out seg_data          :數(shù)碼管數(shù)據(jù)端
  26. *****************************************************
  27. ========================================================*/

  28. module clock
  29. (
  30.               input        clk        ,              
  31.               input        rst_n      ,            


  32.                
  33.               input        mode_key   ,        
  34.               input        move_key   ,        
  35.               input        add_key    ,         
  36.               input        switch_key ,

  37.               output       speaker    ,
  38.             
  39.               output [7:0] seg_en     ,
  40.               output [6:0] seg_data    //從高到低位abcdefg
  41. );


  42. //========================================================
  43. //*****************按鍵模塊定義***************************
  44. wire filter_mode_key;
  45. wire filter_move_key;
  46. wire filter_add_key;
  47. wire filter_switch_key;
  48. //========================================================


  49. //========================================================
  50. //*****************模式設(shè)置模塊定義***********************
  51. wire [1:0] mode;
  52. //========================================================

  53. //========================================================
  54. //*****************位置調(diào)整模塊定義***********************
  55. wire [2:0] move_site;
  56. //========================================================

  57. //========================================================
  58. //*****************時鐘運行模塊定義***********************
  59. wire [3:0] second_u;
  60. wire [3:0] second_d;
  61. wire [3:0] minute_u;
  62. wire [3:0] minute_d;


  63. wire [3:0] hour_u;  
  64. wire [3:0] hour_d;  

  65. wire [3:0] date_u;
  66. wire [3:0] date_d;  
  67. wire [3:0] month_u;
  68. wire [3:0] month_d;
  69. wire [3:0] year_u;  
  70. wire [3:0] year_d;  
  71. wire [3:0] year_h;  
  72. wire [3:0] year_k;  
  73. //========================================================


  74. //========================================================
  75. //*****************時間調(diào)整模塊定義***********************
  76. wire [3:0]  adjust_second_u;  
  77. wire [3:0]  adjust_second_d;  
  78. wire [3:0]  adjust_minute_u;  
  79. wire [3:0]  adjust_minute_d;  
  80. wire [3:0]  adjust_hour_u;      
  81. wire [3:0]  adjust_hour_d;      

  82. wire [3:0]  adjust_date_u;      
  83. wire [3:0]  adjust_date_d;      
  84. wire [3:0]  adjust_month_u;   
  85. wire [3:0]  adjust_month_d;   
  86. wire [3:0]  adjust_year_u;      
  87. wire [3:0]  adjust_year_d;      
  88. wire [3:0]  adjust_year_h;      
  89. wire [3:0]  adjust_year_k;   
  90. //========================================================

  91. //========================================================
  92. //*****************鬧鐘調(diào)整模塊定義***********************
  93. wire [3:0] alarm_second_u;
  94. wire [3:0] alarm_second_d;
  95. wire [3:0] alarm_minute_u;


  96. wire [3:0] alarm_minute_d;
  97. wire [3:0] alarm_hour_u;
  98. wire [3:0] alarm_hour_d;     
  99. //========================================================

  100. //========================================================
  101. //*****************鬧鐘判斷模塊定義***********************
  102. //無   
  103. //========================================================

  104. //========================================================
  105. //*****************閏年判斷模塊定義**********************
  106. wire  leap_year_en;
  107. //========================================================

  108. //========================================================
  109. //*****************數(shù)碼管數(shù)值選擇模塊定義*****************
  110. wire [3:0] num8;
  111. wire [3:0] num7;
  112. wire [3:0] num6;
  113. wire [3:0] num5;
  114. wire [3:0] num4;
  115. wire [3:0] num3;
  116. wire [3:0] num2;
  117. wire [3:0] num1;           
  118. //========================================================

  119. //========================================================
  120. //*****************數(shù)碼管譯碼與動態(tài)掃描模塊定義***********
  121. //無           
  122. //========================================================



  123. //========================================================
  124. //*****************按鍵模塊例化***************************
  125. key_module U1
  126. (


  127.               .clk                (clk              ),              
  128.               .rst_n              (rst_n            ),            
  129.                                  
  130.               .mode_key           (mode_key         ),        
  131.               .move_key           (move_key         ),        
  132.               .add_key            (add_key          ),         
  133.               .switch_key         (switch_key       ),      
  134.                                  
  135.               .filter_mode_key    (filter_mode_key  ),
  136.               .filter_move_key    (filter_move_key  ),
  137.               .filter_add_key     (filter_add_key   ),  
  138.               .filter_switch_key  (filter_switch_key)
  139. );
  140. //========================================================


  141. //========================================================
  142. //*****************模式設(shè)置模塊例化***********************
  143. mode_module U2
  144. (
  145.               .clk       (clk            ),
  146.               .rst_n     (rst_n          ),
  147.                         
  148.               .mode_key  (filter_mode_key),
  149.               .mode      (mode           )
  150. );
  151. //========================================================


  152. //========================================================
  153. //*****************位置調(diào)整模塊例化***********************
  154. move_site_module U3
  155. (
  156.               .clk       (clk            ),
  157.               .rst_n     (rst_n          ),
  158.                         
  159.               .mode      (mode           ),
  160.               .move_key  (filter_move_key),


  161.                         
  162.               .move_site (move_site      )
  163. );

  164. //========================================================


  165. //========================================================
  166. //*****************時鐘運行模塊例化***********************
  167. clock_run U4
  168. (
  169.               .clk             (clk            ),
  170.               .rst_n           (rst_n          ),
  171.                               
  172.               .mode            (mode           ),
  173.               .leap_year_en    (leap_year_en   ),
  174.                               
  175.               .adjust_second_u (adjust_second_u),
  176.               .adjust_second_d (adjust_second_d),
  177.    .adjust_minute_u (adjust_minute_u),
  178.               .adjust_minute_d (adjust_minute_d),
  179.    .adjust_hour_u   (adjust_hour_u  ),
  180.               .adjust_hour_d   (adjust_hour_d  ),

  181.               .adjust_date_u   (adjust_date_u  ),
  182.               .adjust_date_d   (adjust_date_d  ),
  183.    .adjust_month_u  (adjust_month_u ),
  184.               .adjust_month_d  (adjust_month_d ),
  185.    .adjust_year_u   (adjust_year_u  ),
  186.               .adjust_year_d   (adjust_year_d  ),
  187.               .adjust_year_h   (adjust_year_h  ),
  188.               .adjust_year_k   (adjust_year_k  ),

  189.               .second_u        (second_u       ),
  190.               .second_d        (second_d       ),
  191.    .minute_u        (minute_u       ),
  192.               .minute_d        (minute_d       ),
  193.    .hour_u          (hour_u         ),


  194.               .hour_d          (hour_d         ),

  195.               .date_u          (date_u         ),
  196.               .date_d          (date_d         ),
  197.    .month_u         (month_u        ),
  198.               .month_d         (month_d        ),
  199.    .year_u          (year_u         ),
  200.               .year_d          (year_d         ),
  201.               .year_h          (year_h         ),
  202.               .year_k          (year_k         )
  203. );
  204. //========================================================


  205. //========================================================
  206. //*****************時間調(diào)整模塊例化***********************
  207. clock_adjust U5
  208. (
  209.               .clk               (clk             ),
  210.               .rst_n             (rst_n           ),
  211.                                 
  212.               .mode              (mode            ),
  213.               .move_site         (move_site       ),
  214.               .leap_year_en      (leap_year_en    ),
  215.               .add_key           (filter_add_key  ),
  216.                                 
  217.               .second_u          (second_u        ),
  218.               .second_d          (second_d        ),
  219.    .minute_u          (minute_u        ),
  220.               .minute_d          (minute_d        ),
  221.    .hour_u            (hour_u          ),
  222.               .hour_d            (hour_d          ),

  223.               .date_u            (date_u          ),
  224.               .date_d            (date_d          ),
  225.    .month_u           (month_u         ),
  226.               .month_d           (month_d         ),
  227.    .year_u            (year_u          ),


  228.               .year_d            (year_d          ),
  229.               .year_h            (year_h          ),
  230.               .year_k            (year_k          ),
  231.                                 
  232.               .adjust_second_u   (adjust_second_u ),
  233.               .adjust_second_d   (adjust_second_d ),
  234.               .adjust_minute_u   (adjust_minute_u ),
  235.               .adjust_minute_d   (adjust_minute_d ),
  236.               .adjust_hour_u     (adjust_hour_u   ),  
  237.               .adjust_hour_d     (adjust_hour_d   ),  
  238.                                 
  239.               .adjust_date_u     (adjust_date_u   ),  
  240.               .adjust_date_d     (adjust_date_d   ),  
  241.               .adjust_month_u    (adjust_month_u  ),
  242.               .adjust_month_d    (adjust_month_d  ),
  243.               .adjust_year_u     (adjust_year_u   ),  
  244.               .adjust_year_d     (adjust_year_d   ),  
  245.               .adjust_year_h     (adjust_year_h   ),  
  246.               .adjust_year_k     (adjust_year_k   )
  247. );

  248. //========================================================


  249. //========================================================
  250. //*****************鬧鐘調(diào)整模塊例化***********************
  251. alarm_clock_adjust U6
  252. (
  253.               .clk             (clk           ),
  254.               .rst_n           (rst_n         ),
  255.                                  
  256.               .mode            (mode          ),
  257.               .move_site       (move_site     ),
  258.                               
  259.               .add_key         (filter_add_key),
  260.                               
  261.               .alarm_second_u  (alarm_second_u),
  262.               .alarm_second_d  (alarm_second_d),


  263.               .alarm_minute_u  (alarm_minute_u),
  264.               .alarm_minute_d  (alarm_minute_d),
  265.               .alarm_hour_u    (alarm_hour_u  ),
  266.               .alarm_hour_d    (alarm_hour_d  )
  267. );
  268. //========================================================


  269. //========================================================
  270. //*****************鬧鐘判斷模塊定義例化*******************
  271. alarm_judge U7
  272. (
  273.               .clk             (clk            ),
  274.               .rst_n           (rst_n          ),
  275.                               
  276.               .second_u        (second_u       ),
  277.               .second_d        (second_d       ),
  278.               .minute_u        (minute_u       ),
  279.               .minute_d        (minute_d       ),
  280.               .hour_u          (hour_u         ),
  281.               .hour_d          (hour_d         ),
  282.                               
  283.               .alarm_second_u  (alarm_second_u ),
  284.               .alarm_second_d  (alarm_second_d ),
  285.               .alarm_minute_u  (alarm_minute_u ),
  286.               .alarm_minute_d  (alarm_minute_d ),
  287.               .alarm_hour_u    (alarm_hour_u   ),
  288.               .alarm_hour_d    (alarm_hour_d   ),
  289.                               
  290.               .speaker         (speaker        )

  291. );
  292. //========================================================


  293. //========================================================
  294. //*****************閏年判斷模塊塊例化*********************



  295. leap_year_judge U8
  296. (
  297.               .clk           (clk          ),
  298.               .rst_n         (rst_n        ),
  299.                            
  300.               .mode          (mode         ),
  301.                            
  302.               .year_u        (year_u       ),
  303.               .year_d        (year_d       ),
  304.               .year_h        (year_h       ),
  305.               .year_k        (year_k       ),
  306.                            
  307.               .adjust_year_u (adjust_year_u),
  308.               .adjust_year_d (adjust_year_d),
  309.               .adjust_year_h (adjust_year_h),
  310.               .adjust_year_k (adjust_year_k),
  311.                            
  312.               .leap_year_en  (leap_year_en )
  313. );

  314. //========================================================


  315. //========================================================
  316. //*****************數(shù)碼管數(shù)值選擇模塊例化*****************
  317. tube_num_select U9
  318. (
  319.               .clk             (clk              ),
  320.               .rst_n           (rst_n            ),
  321.                                              
  322.               .switch_key      (filter_switch_key),                                                                                   

  323.                                                                      
  324.               .mode            (mode             ),
  325.               .move_site       (move_site        ),
  326.                                                
  327.               .second_u        (second_u         ),
  328.               .second_d        (second_d         ),


  329.               .minute_u        (minute_u         ),
  330.               .minute_d        (minute_d         ),
  331.               .hour_u          (hour_u           ),
  332.               .hour_d          (hour_d           ),
  333.                                                
  334.               .date_u          (date_u           ),
  335.               .date_d          (date_d           ),
  336.               .month_u         (month_u          ),
  337.               .month_d         (month_d          ),
  338.               .year_u          (year_u           ),
  339.               .year_d          (year_d           ),
  340.               .year_h          (year_h           ),
  341.               .year_k          (year_k           ),
  342.                                 
  343.               .adjust_second_u (adjust_second_u  ),
  344.               .adjust_second_d (adjust_second_d  ),
  345.               .adjust_minute_u (adjust_minute_u  ),
  346.               .adjust_minute_d (adjust_minute_d  ),
  347.               .adjust_hour_u   (adjust_hour_u    ),
  348.               .adjust_hour_d   (adjust_hour_d    ),

  349.               .adjust_date_u   (adjust_date_u    ),
  350.               .adjust_date_d   (adjust_date_d    ),
  351.               .adjust_month_u  (adjust_month_u   ),
  352.               .adjust_month_d  (adjust_month_d   ),
  353.               .adjust_year_u   (adjust_year_u    ),
  354.               .adjust_year_d   (adjust_year_d    ),
  355.               .adjust_year_h   (adjust_year_h    ),
  356.               .adjust_year_k   (adjust_year_k    ),
  357.                                 
  358.               .alarm_second_u  (alarm_second_u   ),
  359.               .alarm_second_d  (alarm_second_d   ),
  360.               .alarm_minute_u  (alarm_minute_u   ),
  361.               .alarm_minute_d  (alarm_minute_d   ),
  362.               .alarm_hour_u    (alarm_hour_u     ),
  363.               .alarm_hour_d    (alarm_hour_d     ),
  364.                                 
  365.               .num8                         (num8                         ),


  366.               .num7            (num7             ),
  367.               .num6            (num6             ),
  368.               .num5            (num5             ),
  369.               .num4            (num4             ),
  370.               .num3            (num3             ),
  371.               .num2            (num2             ),
  372.               .num1            (num1             )
  373. );

  374. //========================================================

  375. //========================================================
  376. //*****************數(shù)碼管譯碼與動態(tài)掃描模塊例化***********
  377. nixie_tube U10

  378. (
  379.    .clk      (clk     ),
  380.    .rst_n    (rst_n   ),
  381.                         
  382.               .num8     (num8    ),
  383.               .num7     (num7    ),
  384.               .num6     (num6    ),
  385.               .num5     (num5    ),
  386.               .num4     (num4    ),
  387.               .num3     (num3    ),
  388.               .num2     (num2    ),
  389.               .num1     (num1    ),
  390.               .seg_en   (seg_en  ),
  391.               .seg_data (seg_data)  //從高到低位abcdefg
  392.             
  393. );
  394. //========================================================


  395. endmodule
復(fù)制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:1 發(fā)表于 2019-3-6 02:45 | 只看該作者
好資料,51黑有你更精彩!!!
回復(fù)

使用道具 舉報

板凳
ID:1 發(fā)表于 2019-3-6 02:45 | 只看該作者
好資料,51黑有你更精彩!!!
回復(fù)

使用道具 舉報

地板
ID:424438 發(fā)表于 2019-6-18 22:33 | 只看該作者
程序在quartus ||里面運行錯誤誒
回復(fù)

使用道具 舉報

5#
ID:833077 發(fā)表于 2021-4-7 14:21 | 只看該作者
好資料,51黑有你更精彩!!!
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三区国产 | 免费在线观看成人av | 亚洲国产精品一区二区三区 | 久草网在线视频 | 日韩精品一区二区三区在线观看 | av手机在线免费观看 | 国产午夜精品一区二区三区嫩草 | 久久成人一区 | 一区二区不卡高清 | 精品国产一区二区三区久久影院 | av片在线免费看 | 久久99久久99久久 | 欧美精品片 | 国产精品精品久久久 | 成人在线视频免费观看 | 性一交一乱一透一a级 | 91亚洲欧美 | 久久91| 亚洲欧美在线一区 | 超碰天天| 欧美综合一区二区三区 | 国产精品不卡视频 | 一区视频在线免费观看 | 国产精品一二三区 | 亚洲高清免费 | 成人一区二区三区在线观看 | 日韩精品在线观看视频 | 亚洲精品免费在线观看 | 国产又爽又黄的视频 | 欧美日韩专区 | 亚洲精品68久久久一区 | 国产一区二区自拍 | 成人免费视频观看视频 | 二区在线视频 | 国户精品久久久久久久久久久不卡 | 国产精品三级 | 黄色操视频 | av一区二区三区在线观看 | 伊人精品视频 | 欧美一级毛片免费观看 | aaa综合国产 |