• 方案介紹
  • 附件下載
  • 相關推薦
申請入駐 產業(yè)圖譜

8位流水燈設計Verilog代碼Quartus仿真

6小時前
187
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

2-24011F94642310.doc

共1個文件

名稱:8位流水燈設計Verilog代碼Quartus仿真

軟件:Quartus

語言:Verilog

代碼功能:

8位流水燈設計要求:

1.設計能帶8個LED發(fā)光管發(fā)光,并按照要求輪流發(fā)光,產生流水燈的流動效果。

2.應具有5種以上不同風格的流動閃亮效果。

3.有起動、停止控制鍵。

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

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

設計文檔:

流水燈設計報告

1.?EDA簡介

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

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

2.?流水燈功能

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

3.?LED簡介

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

4.?LED的硬件電路設計

下圖為LED的電路設計,一共8個LED,采用共陽極設計,LED的陰極接FPGA芯片,陽極通過一個1K歐姆的電阻連接到3.3V的電源上,電阻的作用是限流,防止流經LED的電流過大將LED損壞。當FPGA接口輸出低電平時,LED導通,燈亮,當FPGA輸出高電平時,LED燈滅。

5.?程序設計

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

上圖中,fenping為分頻模塊,LED_ctrl為LED控制模塊,左側灰色箭頭為系統(tǒng)輸入信號。右側灰色箭頭為LED輸出信號。

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

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

程序編譯無誤后新建WVF仿真文件進行仿真,仿真圖如下所示:

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

6.?總結

通過這次LED流水燈設計,我掌握了QuartusII軟件的基本功能,學會了在QuartusII軟件下進行Verilog代碼編寫、調試和仿真的過程。并且通過這次實驗,我也更加了解了Verilog代碼的設計方法,對語法有了更深入的了解。當然,我也知道我設計的這個LED流水燈功能比較簡單,在實際工程設計中,功能遠遠比這個復雜,我還要多多學習軟件的使用的代碼的設計方法,為今后的學習和工作打下基礎。

部分代碼展示:

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

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

  • 2-24011F94642310.doc
    下載

相關推薦