在下述的內容中,小編將會基于FPGA開發(fā)板去點亮LED燈,如果FPGA開發(fā)板相關的開發(fā)是您想要了解的焦點之一,不妨和小編共同閱讀這篇文章哦。
一、如何基于FPGA開發(fā)板點亮LED燈
使用用戶手冊,了解硬件資源,這個示例中需要用到按鍵和LED燈:
1、按鍵
在沒有按鍵按下時,輸出高電平(紅色);當按鍵按下的時候,被按下的按鍵端會輸出低電平(藍色)。
2、LED燈
當 FPGA 輸出低電平時,LED 點亮,當 LED 輸出高電平時,沒有電位差,LED 燈熄滅。
需要實現的功能是,當按下按鍵時(key_in=0,PIN_M16管腳),LED燈要被點亮(led_out=0,PIN_A2管腳)。對于復雜電路還是需要畫波形來理清思路。這里波形應該是key與led波形一致。
打開quartus,新建工程。
編寫.v文件,代碼如下:
將.v文件添加到文件目錄下,右鍵Files文件夾選擇添加.v文件,添加完成后可以在Files下看到添加的.v文件:
點擊如圖所示的圖標,可以檢查語法是否有錯,綜合器將代碼解釋為電路的形式。綠色表示通過。
點擊RTL viewer可以查看設計的硬件電路結構,和我們設計所表達的意思相同
Testbench是測試電路功能和性能的腳本。在線邏輯分析雖然好用但是每次修改代碼都需要綜合一次,而使用testbench做仿真的速度就很快,所以一開始就應該編寫testbench以便后面大型電路的驗證。
編寫.v文件
tb_led模塊中,首先定義初始的輸入信號為低電平(一般時序電路使用非阻塞賦值<=),延遲10個時間單位(ns)產生隨機數0或1賦值給輸入,就完成了輸入信號的波形設計。根據上一節(jié)中實例化的講解,第2-5行和第14-19行完成的功能是將上一個led.v文件中l(wèi)ed模塊與tb_led模塊相連。這樣隨機生成的輸入信號就被加到led模塊上,并得到輸出led_out,通過驗證led_out與我們期望的輸出是否一致,就知道我們的設計是否正確。
和之前的操作一樣,將這個tb_led.v文件添加到Files文件下。然后在quartus的菜單欄中找到assignments-setting,如圖所示。
二、采用FPGA點亮LED燈的優(yōu)缺點
(一)優(yōu)點
FPGA的優(yōu)點如下:
(1) FPGA由邏輯單元、RAM、乘法器等硬件資源組成,通過將這些硬件資源合理組織,可實現乘法器、寄存器、地址發(fā)生器等硬件電路。
(2) FPGA可通過使用框圖或者Verilog HDL來設計,從簡單的門電路到FIR或者FFT電路。
(3) FPGA可無限地重新編程,加載一個新的設計方案只需幾百毫秒,利用重配置可以減少硬件的開銷。
(4) FPGA的工作頻率由FPGA芯片以及設計決定,可以通過修改設計或者更換更快的芯片來達到某些苛刻的要求(當然,工作頻率也不是無限制的可以提高,而是受當前的IC工藝等因素制約)。
(二)缺點
FPGA的缺點如下:
(1) FPGA的所有功能均依靠硬件實現,無法實現分支條件跳轉等操作。
(2) FPGA只能實現定點運算。
總結:FPGA依靠硬件來實現所有的功能,速度上可以和專用芯片相比,但設計的靈活度與通用處理器相比有很大的差距。
以上所有內容便是小編此次為大家?guī)淼乃薪榻B,如果你想了解更多有關它的內容,不妨在我們網站或者百度、google進行探索哦。