ZYNQ 系列 01 | PL 實現按鍵控制 LED(1)

注:本篇文章由【開源騷客:OpenSoc】公眾號首發,現轉載至頭條號。

新的開始,這一篇文章,就算是使用 Vitis 開發 ZYNQ 的第一篇文章吧。

計劃把 ZYNQ 開發寫成一個系列,所使用的的軟件版本為 Vitis 2019.2,硬件平臺為 EBAZ4205 礦機板。

最新的軟件平臺配最便宜的硬件平臺,哈哈哈!

軟件版本可以說是最新的,選擇最新,意味著這系列文章過幾年後,依然不過時。硬件平臺,可以算是在 ZYNQ 開發板裡面最便宜的,最便宜,意味著大多數都買得起!

作為第一篇文章,暫時先不涉及 ZYNQ 的 PS 部分,以傳統 FPGA 的方式來做個小實驗,在 PL 端實現按鍵控制 LED。

當然這個小實驗也可以作為驗證下 EBAZ4205 轉接板的好壞。

1.準備工作

EBAZ4205 礦機板本身,在 PL 端是沒有焊接晶振的,但留出了使用晶振的位置。所以單純使用 PL 端進行開發的話,咱們得先把板子上的晶振焊上。


ZYNQ 系列 01 | PL 實現按鍵控制 LED(1)

PL晶振原理圖部分

在 X5 這個位置,我焊了一個3225封裝的 50M 晶振,L29的位置焊了一個 0R 電阻,R1372 焊了一個 33R 的電阻,C364 的位置焊了一個100nF 的電容,改動的地方就這幾個。

這裡需要注意的是,L29在背面,當時還找了挺久的一會,沒電感,直接用0R電阻代替了,如果想更狠一點,用焊錫直接把 L29 連上也行!

2.Vivado 創建工程

對於 vivado 創建工程的步驟,就不詳細介紹了。寫這些步驟,截圖太多,效率太低了。之後還是計劃對這系列的文字版教程,錄個配套的視頻,在視頻裡面,跟著做,來得更直接。

代碼如下:

ZYNQ 系列 01 | PL 實現按鍵控制 LED(1)

工程代碼

其功能,最終就是實現按鍵按一次,LED 的狀態反轉一下,當然內部也有按鍵的消抖。

相關的引腳約束信息如下:

ZYNQ 系列 01 | PL 實現按鍵控制 LED(1)

引腳約束信息

3.讓工程編譯的速度更快些

在 TCL 輸入框中輸入 set_param general.maxThreads 8,可以讓編譯的速度提升,vivado 默認的線程數是2。

ZYNQ 系列 01 | PL 實現按鍵控制 LED(1)

ZYNQ 系列 01 | PL 實現按鍵控制 LED(1)

我總共花的時間是 1分半鐘 還不到,大家可以自行比較一下在設置了最大線程的狀態下,與沒有設置之前的編譯時間會快多少。這裡我就不演示了。

這一點設置非常有意義哦,大家千萬別小看了它。

另外一點,礦機板默認是沒有 X5 這個晶振的,那沒有這個晶振,如何來實現本文中同樣的功能呢?

下一篇文章,將講解從 ZYNQ 的 PS 端引出時鐘給 PL 端使用,敬請關注!


分享到:


相關文章: