• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

8位流水燈設(shè)計(jì)Verilog代碼Quartus仿真

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

2-24011F94642310.doc

共1個(gè)文件

名稱(chēng):8位流水燈設(shè)計(jì)Verilog代碼Quartus仿真

軟件:Quartus

語(yǔ)言:Verilog

代碼功能:

8位流水燈設(shè)計(jì)要求:

1.設(shè)計(jì)能帶8個(gè)LED發(fā)光管發(fā)光,并按照要求輪流發(fā)光,產(chǎn)生流水燈的流動(dòng)效果。

2.應(yīng)具有5種以上不同風(fēng)格的流動(dòng)閃亮效果。

3.有起動(dòng)、停止控制鍵。

4.有流動(dòng)閃亮效果選擇設(shè)置鍵,流動(dòng)風(fēng)格分手動(dòng)選擇和自動(dòng)循環(huán)兩種模式。

FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com

設(shè)計(jì)文檔:

流水燈設(shè)計(jì)報(bào)告

1.?EDA簡(jiǎn)介

EDA是Electronic design automation的縮寫(xiě),意為電子設(shè)計(jì)自動(dòng)化。EDA技術(shù)是以計(jì)算機(jī)為工具,設(shè)計(jì)者在EDA軟件平臺(tái)上,融合應(yīng)用電子技術(shù)、計(jì)算機(jī)技術(shù)、信息處理及智能化技術(shù)的最新成果,進(jìn)行電子產(chǎn)品的自動(dòng)設(shè)計(jì)。EDA技術(shù)的出現(xiàn),極大地提高了電路設(shè)計(jì)的效率和可操作性。

利用EDA工具,電子設(shè)計(jì)師可以從概念、算法、協(xié)議等開(kāi)始設(shè)計(jì)電子系統(tǒng),大量工作可以通過(guò)計(jì)算機(jī)完成,并可以將電子產(chǎn)品從電路設(shè)計(jì)、性能分析到設(shè)計(jì)出IC版圖或PCB版圖的整個(gè)過(guò)程的計(jì)算機(jī)上自動(dòng)處理完成。隨著集成電路規(guī)模越來(lái)越大,EDA的應(yīng)用不僅僅限于布線(xiàn)和數(shù)值仿真,高層次的數(shù)字設(shè)計(jì)又催生了硬件描述語(yǔ)言Verilog和VHDL。在本設(shè)計(jì)中,我們使用的EDA軟件為QuartusII,使用的硬件描述語(yǔ)言為Verilog。Quartus II 是Altera公司推出的綜合性CPLD/FPGA開(kāi)發(fā)軟件,軟件支持原理圖、VHDL、VerilogHDL等多種設(shè)計(jì)輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整PLD設(shè)計(jì)流程。

2.?流水燈功能

流水燈指一組燈在控制系統(tǒng)的控制下按照設(shè)定的順序和時(shí)間來(lái)發(fā)亮和熄滅,形成一定的視覺(jué)效果。本設(shè)計(jì)的流水燈功能為:使用8個(gè)LED發(fā)光,并按照要求輪流發(fā)光,產(chǎn)生流水燈的流動(dòng)效果;流水燈具有5種以上不同風(fēng)格的流動(dòng)閃亮效果;有起動(dòng)、停止控制鍵;有流動(dòng)閃亮效果選擇設(shè)置鍵,流動(dòng)風(fēng)格分手動(dòng)選擇和自動(dòng)循環(huán)兩種模式。

3.?LED簡(jiǎn)介

發(fā)光二極管,簡(jiǎn)稱(chēng)為L(zhǎng)ED,是一種常用的發(fā)光器件,通過(guò)電子與空穴復(fù)合釋放能量發(fā)光。發(fā)光二極管與普通二極管一樣是由一個(gè)PN結(jié)組成,也具有單向?qū)щ娦?。?dāng)給發(fā)光二極管加上正向電壓后,從P區(qū)注入到N區(qū)的空穴和由N區(qū)注入到P區(qū)的電子,在PN結(jié)附近數(shù)微米內(nèi)分別與N區(qū)的電子和P區(qū)的空穴復(fù)合,產(chǎn)生自發(fā)輻射的熒光。不同的半導(dǎo)體材料中電子和空穴所處的能量狀態(tài)不同。當(dāng)電子和空穴復(fù)合時(shí)釋放出的能量多少不同,釋放出的能量越多,則發(fā)出的光的波長(zhǎng)越短。常用的是發(fā)紅光、綠光或黃光的二極管。發(fā)光二極管可高效地將電能轉(zhuǎn)化為光能,在現(xiàn)代社會(huì)具有廣泛的用途,如照明、平板顯示、醫(yī)療器件等。

4.?LED的硬件電路設(shè)計(jì)

下圖為L(zhǎng)ED的電路設(shè)計(jì),一共8個(gè)LED,采用共陽(yáng)極設(shè)計(jì),LED的陰極接FPGA芯片,陽(yáng)極通過(guò)一個(gè)1K歐姆的電阻連接到3.3V的電源上,電阻的作用是限流,防止流經(jīng)LED的電流過(guò)大將LED損壞。當(dāng)FPGA接口輸出低電平時(shí),LED導(dǎo)通,燈亮,當(dāng)FPGA輸出高電平時(shí),LED燈滅。

5.?程序設(shè)計(jì)

根據(jù)功能要求,代碼分為2個(gè)模塊設(shè)計(jì),一個(gè)是分頻模塊,一個(gè)是LED控制模塊。分頻模塊實(shí)現(xiàn)將系統(tǒng)時(shí)鐘50MHz分頻到4Hz的功能。LED控制模塊實(shí)現(xiàn)流水燈控制的功能,其中LED控制模塊的時(shí)鐘來(lái)源于分頻模塊輸出的4Hz。兩個(gè)模塊連接圖如下所示:

上圖中,fenping為分頻模塊,LED_ctrl為L(zhǎng)ED控制模塊,左側(cè)灰色箭頭為系統(tǒng)輸入信號(hào)。右側(cè)灰色箭頭為L(zhǎng)ED輸出信號(hào)。

分頻模塊使用系統(tǒng)時(shí)鐘50M,通過(guò)計(jì)數(shù)進(jìn)行分頻,50MHz計(jì)數(shù)6250000后信號(hào)翻轉(zhuǎn)一次,就可以得到4Hz信號(hào),具體代碼如下:

LED控制模塊完成LED的主要控制功能,首先設(shè)計(jì)一個(gè)計(jì)數(shù)器,計(jì)數(shù)1~40,這是因?yàn)?個(gè)LED燈,一共5種不同模式,因此計(jì)數(shù)40,作為自動(dòng)控制時(shí)的計(jì)數(shù)信號(hào)。然后再通過(guò)5個(gè)撥碼開(kāi)關(guān)(SW1~SW5)分別控制5個(gè)不同的計(jì)數(shù)器,作為手動(dòng)控制時(shí)的計(jì)數(shù)信號(hào)。LED手動(dòng)或者自動(dòng)控制通過(guò)auto_key按鍵切換。最后根據(jù)計(jì)數(shù)值控制每個(gè)模式下LED的變化方式即可。具體代碼如下:

程序編譯無(wú)誤后新建WVF仿真文件進(jìn)行仿真,仿真圖如下所示:

上圖可以看到,自動(dòng)和手動(dòng)模式切換功能正確,5種流水燈模式變化正確。因此流水燈功能正確。

6.?總結(jié)

通過(guò)這次LED流水燈設(shè)計(jì),我掌握了QuartusII軟件的基本功能,學(xué)會(huì)了在QuartusII軟件下進(jìn)行Verilog代碼編寫(xiě)、調(diào)試和仿真的過(guò)程。并且通過(guò)這次實(shí)驗(yàn),我也更加了解了Verilog代碼的設(shè)計(jì)方法,對(duì)語(yǔ)法有了更深入的了解。當(dāng)然,我也知道我設(shè)計(jì)的這個(gè)LED流水燈功能比較簡(jiǎn)單,在實(shí)際工程設(shè)計(jì)中,功能遠(yuǎn)遠(yuǎn)比這個(gè)復(fù)雜,我還要多多學(xué)習(xí)軟件的使用的代碼的設(shè)計(jì)方法,為今后的學(xué)習(xí)和工作打下基礎(chǔ)。

部分代碼展示:

//?8位流水燈設(shè)計(jì)要求:
//?1.設(shè)計(jì)能帶8個(gè)LED發(fā)光管發(fā)光,并按照要求輪流發(fā)光,產(chǎn)生流水燈的流動(dòng)效果。
//?2.應(yīng)具有5種以上不同風(fēng)格的流動(dòng)閃亮效果。
//?3.有起動(dòng)、停止控制鍵。
//?4.有流動(dòng)閃亮效果選擇設(shè)置鍵,流動(dòng)風(fēng)格分手動(dòng)選擇和自動(dòng)循環(huán)兩種模式
module?liushui_led(
input?clk_50M,//50M信號(hào)
input?start_key,//起動(dòng)、停止控制鍵
input?SW1,//手動(dòng)效果選擇設(shè)置鍵1
input?SW2,//手動(dòng)效果選擇設(shè)置鍵2
input?SW3,//手動(dòng)效果選擇設(shè)置鍵3
input?SW4,//手動(dòng)效果選擇設(shè)置鍵4
input?SW5,//手動(dòng)效果選擇設(shè)置鍵5
input?auto_key,//手動(dòng)選擇和自動(dòng)循環(huán)兩種模式設(shè)置鍵,為1為自動(dòng),為0為手動(dòng)
output?[7:0]?LED//LED
);
wire?clk_4Hz;//4Hz
//分頻模塊,50MHz分頻到4Hz
fenping?i_fenping(
.?clk_50M(clk_50M),
.?start_key(start_key),//起動(dòng)、停止控制鍵
.?clk_4Hz(clk_4Hz)
);

點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=584

  • 2-24011F94642310.doc
    下載

相關(guān)推薦