0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Xilinx Zynq小試FPGA開發(fā)流程

h1654155149.6853 ? 來源:電子工程世界 ? 2023-03-14 16:13 ? 次閱讀

Xilinx Zynq系列是帶有ARM Cortex-A系列CPU核的FPGA,前幾年流落到二手市場上的“礦板”就以Zynq 7010為核心,可以說是最廉價(jià)的Zynq實(shí)驗(yàn)平臺(tái)了。淘個(gè)這樣的板子,再另外找個(gè)Xilinx的JTAG就可以玩FPGA和ARM Linux. 因?yàn)橥娴娜硕?,網(wǎng)上有資料,還有別人做過的擴(kuò)展板可以參考。本壇大佬們早就玩過了。我三年前就買了一塊,但一直是閑置狀態(tài),直到現(xiàn)在才想來搞搞。

這塊EBAZ4025板子接上12V電源就可以工作了,有RJ45網(wǎng)口,板子上有焊盤可以自己焊上TF卡座、UART接口、JTAG口,就相當(dāng)于一個(gè)完整的ARM Linux板子(板載DDR3 SDRAM 256MB,NAND Flash 128MB),還有若干FPGA I/O引出來到雙列排針座,方便自己分配用途。

EBAZ4025通電以后上面的Linux就啟動(dòng)了,通過UART連接可以看到uboot和Linux輸出的信息。我是要把它作為FPGA開發(fā)來用的,所以先直接焊上JTAG排針連接調(diào)試器,電腦軟件可以識(shí)別到JTAG 掃描鏈上有兩個(gè)設(shè)備,一個(gè)是FPGA,一個(gè)是ARM CPU。

Zynq的內(nèi)部分為兩個(gè)系統(tǒng),一個(gè)叫PS,就是ARM CPU以及外設(shè),包括DDR內(nèi)存控制器、DMA等等這些ARM運(yùn)行依賴的部件;另一個(gè)系統(tǒng)叫PL,就相當(dāng)于傳統(tǒng)的FPGA. 這兩部分之間有很多種方式可以通信,就可以比結(jié)合FPGA和ARM的各自優(yōu)點(diǎn)來處理復(fù)雜的任務(wù)了。

Zynq 7000系列的IO引腳也分為PS和PL各自管理的的,PS部分引腳有固定的用途,和開發(fā)FPGA時(shí)寫引腳約束不同。根據(jù)礦板的電路圖了解到,兩個(gè)LED是連接到PL部分的,而UART直接接的是PS的MIO。

2debaba4-c23a-11ed-bfe3-dac502259ad0.png

學(xué)習(xí)Zynq的開發(fā)可以參考網(wǎng)上的教程。這玩意門檻稍微高一點(diǎn),先得下載Vivado安裝,為了開發(fā)ARM的程序還要安裝SDK,都是很龐大的軟件。如果熟悉了的話Vivado操作起來也很快,但頭幾次么……

先創(chuàng)建一個(gè)工程,選擇器件型號(hào),這和其它FPGA開發(fā)思路是一樣的。

2e5c2564-c23a-11ed-bfe3-dac502259ad0.png

按照教程,然后是Create Block Design

2e6d7d14-c23a-11ed-bfe3-dac502259ad0.png

添加IP——ZYNQ7 Processing System. 這種圖形化的block design方式我最初學(xué)FPGA的時(shí)候就用,直觀容易理解。

2e7ec808-c23a-11ed-bfe3-dac502259ad0.png

加上這個(gè)IP之后框圖上就出現(xiàn)了一個(gè)模塊,代表PS部分。

2eaff64e-c23a-11ed-bfe3-dac502259ad0.png

在圖上雙擊這個(gè)ZYNQ Processing System模塊,就打開配置窗口,進(jìn)行時(shí)鐘、IO、內(nèi)存等設(shè)置了。這些需要根據(jù)礦板上的資源和連接關(guān)系來定。

首先這里有個(gè)PS部分的結(jié)構(gòu)圖,可以了解有那些片上外設(shè)可以供CPU用的。第一個(gè)實(shí)驗(yàn)為了讓程序能打印輸出,需要用UART。

2ecdfab8-c23a-11ed-bfe3-dac502259ad0.png

看看時(shí)鐘配置,默認(rèn)的輸入時(shí)鐘33.333MHz 和礦板一致,就不用調(diào)整了。CPU和DDR的時(shí)鐘頻率用默認(rèn)的不會(huì)有問題。PS部分給PL部分提供的時(shí)鐘是實(shí)驗(yàn)需要的,默認(rèn)輸出一個(gè)50MHz。

2ee76f3e-c23a-11ed-bfe3-dac502259ad0.png

DDR的配置,需要根據(jù)實(shí)際板子上的芯片調(diào)整一下,128M x16-bit. 我不確定SDK編寫的程序是要在DDR內(nèi)存中運(yùn)行還是PS的片上RAM中運(yùn)行,所以DDR還是要配置的。

2ef6a7ba-c23a-11ed-bfe3-dac502259ad0.png

MIO的配置,是為了要給UART分配引腳。根據(jù)電路圖,UART是連接在A16和F15這兩個(gè)腳的,查Xilinx手冊得知是PS_MIO24和PS_MIO25,就在MIO Configuration中配置使用UART1(因?yàn)閁ART0沒有MIO 24,25的映射)。

2f1c396c-c23a-11ed-bfe3-dac502259ad0.png

配置好之后Run Block Automation,自動(dòng)生成必要的接口。

2f2e043a-c23a-11ed-bfe3-dac502259ad0.png

教程上說配置好之后要連一根線,把FCLK_CLK0和M_AXI_GP0_ACLK連起來。前者是Zynq PS輸出的時(shí)鐘(內(nèi)部PLL從晶振給的時(shí)鐘生成,可以給PL用),后者我理解是AXI總線的時(shí)鐘。這里并不使用總線,我覺得不連也沒關(guān)系。

2f45593c-c23a-11ed-bfe3-dac502259ad0.png

接下來,按照教程說的是要Create HDL Wrapper,注意對話框中選擇允許用戶修改,不然自己編輯的會(huì)被覆蓋掉。

2f53a5f0-c23a-11ed-bfe3-dac502259ad0.png

做這一步的目的是把PS外面再包上一層,這樣就方便加入自己編寫的邏輯了。下面我要編寫一點(diǎn)邏輯來點(diǎn)LED,就直接加到 system_wrapper.v 里面去。

注意Create HDL Wrapper之后,系統(tǒng)的層次結(jié)構(gòu)變化了,頂層名稱從design_1變成了design_1_wrapper。

2fa21e74-c23a-11ed-bfe3-dac502259ad0.png

由于礦板的PL是沒有帶晶振的(有空焊盤沒裝),要看FPGA跑起來的效果需要外接時(shí)鐘信號(hào)到排針上面。實(shí)際在已經(jīng)創(chuàng)建的PS模塊上,F(xiàn)CLK_CLK0就是一個(gè)時(shí)鐘信號(hào),現(xiàn)在我要把它給PL用,還需要?jiǎng)?chuàng)建一個(gè)port把它引出來,不然頂層看不到。

2fd193e8-c23a-11ed-bfe3-dac502259ad0.png

在圖上創(chuàng)建輸出port, 命名叫PS_CLK0, 連接到時(shí)鐘信號(hào)上。保存之后,design_1.v文件(自動(dòng)生成的)并沒有體現(xiàn)新的輸出端口。于是我嘗試一下“Generate Block Design”操作,看看是否更新。

2fe5bd32-c23a-11ed-bfe3-dac502259ad0.png

結(jié)果這樣是能重新產(chǎn)生design_1.v的:

3009d852-c23a-11ed-bfe3-dac502259ad0.png

然后我就在頂層的design_1_wrapper.v里面加自己的東西了:先加上兩個(gè)輸出口給礦板上的紅綠LED。

302c4dd8-c23a-11ed-bfe3-dac502259ad0.png

再寫一個(gè)計(jì)數(shù)器,利用PS引出的時(shí)鐘計(jì)數(shù),讓LED能閃起來。

306b0f32-c23a-11ed-bfe3-dac502259ad0.png

這樣第一個(gè)實(shí)驗(yàn)工程的邏輯就設(shè)計(jì)完了,可以進(jìn)行FPGA綜合、實(shí)現(xiàn)和生成二進(jìn)制碼的流程了。

307b1c92-c23a-11ed-bfe3-dac502259ad0.png

這里還缺少一件事情:礦板上的 LED6 (W13, W14引腳)是連接在FPGA IO上的,不是PS MIO,因此是像普通FPGA那樣分配引腳的方式。而DDR、MIO則是固定引腳,不需要自己選。假如LED是接在MIO上,那么我們就要用軟件去選擇GPIO訪問來點(diǎn)亮了,不屬于FPGA邏輯部分。

在綜合之后,可以查看design,然后手工分配LED使用的引腳。也可以直接寫一個(gè)約束文件(.xdc)把引腳約束用Tcl命令寫上去。

308c1e98-c23a-11ed-bfe3-dac502259ad0.png

在最后Generate bitstream 生成bit文件之前看一下報(bào)告,確認(rèn)引腳的分配是生效了的。

最后得到了.bit文件,就可以連接好JTAG之后,打開Hardware Manager, 將生成的design_1_wrapper.bit下載到FPGA中了。這個(gè)操作和Xilinx Spartan/Artix系列是相似的。

30abac90-c23a-11ed-bfe3-dac502259ad0.png

若此時(shí)看到了LED閃爍,說明PL部分的邏輯是工作的了。

此外,下載bit文件之后,從UART終端看到的Linux打印信息還在活動(dòng),說明PL部分的重配置沒有影響PS的運(yùn)行。關(guān)于PL和PS的關(guān)系我的了解還不夠多。

如果單純把Zynq當(dāng)成FPGA來用,不使用PS部分,也是可以的。注意,這樣也就不能用PS提供的時(shí)鐘了,需要從PL的引腳輸入時(shí)鐘信號(hào)。開發(fā)工具用Vivado和ISE都可以,我另外進(jìn)行過嘗試。





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • ARM技術(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    22

    瀏覽量

    7255
  • UART接口
    +關(guān)注

    關(guān)注

    0

    文章

    124

    瀏覽量

    15199
  • FPGA開發(fā)板
    +關(guān)注

    關(guān)注

    10

    文章

    120

    瀏覽量

    31426
  • JTAG口
    +關(guān)注

    關(guān)注

    0

    文章

    6

    瀏覽量

    1739

原文標(biāo)題:多少“礦板”吃灰中:Zynq學(xué)習(xí)筆記——“礦板”小試FPGA開發(fā)流程

文章出處:【微信號(hào):電子工程世界,微信公眾號(hào):電子工程世界】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    AnDAPT為Xilinx Zynq平臺(tái)FPGA和SoC設(shè)備推出完整電源解決方案

    AnDAPT支持為Xilinx Zynq所有的UltraScale+和Zynq-7000 FPGA/SoC供電,包括采用集成、靈活和高效AmP電源管理IC的應(yīng)用定義用例。
    發(fā)表于 05-18 09:48 ?1129次閱讀
    AnDAPT為<b class='flag-5'>Xilinx</b> <b class='flag-5'>Zynq</b>平臺(tái)<b class='flag-5'>FPGA</b>和SoC設(shè)備推出完整電源解決方案

    Xilinx Zynq-7010(兼容 7020)嵌入式開發(fā)板-Z-turn Board產(chǎn)品介紹

    Z-turn Board 是深圳市米爾科技有限公司推出的一款以 Xilinx Zynq-7010(兼容 7020)作為主處理器的嵌入式開發(fā)板。Z-turn Board 采用 Xilinx
    發(fā)表于 03-27 17:05

    用于 Xilinx FPGA Zynq 7 的電源解決方案

    描述該參考設(shè)計(jì)采用多種 TPS54325 和其他 TI 電源器件,是適用于 Xilinx Zynq FPGA 的全套電源解決方案。輸入電壓達(dá)到 12V 后,該參考解決方案可提供 Zynq
    發(fā)表于 04-14 09:46

    基于Zynq的嵌入式開發(fā)流程

    基于Zynq的嵌入式開發(fā)流程Xilinx Zynq SoC 是集成了FPGA和硬核處理器的特殊S
    發(fā)表于 08-23 08:15

    面向Xilinx Zynq FPGA應(yīng)用的PMP9335參考設(shè)計(jì)

    描述PMP9335專為使用 TPS84A20 和 TPS84320 的 Xilinx Zynq FPGA 應(yīng)用而設(shè)計(jì)。此設(shè)計(jì)使用外部計(jì)時(shí)器將開關(guān)頻率同步到 300 kHz。它還采用受控的加電和斷電
    發(fā)表于 09-19 07:37

    基于Xilinx Zynq SoC的“小傻瓜(Snickerdoodle)”開發(fā)套件

    今天向大家推薦一款基于Xilinx Zynq SoC的低價(jià)開發(fā)板,這款開發(fā)板命名為“小傻瓜(Snickerdoodle)”,是位于美國舊金山的設(shè)計(jì)工作室krtkl
    發(fā)表于 02-08 18:04 ?290次閱讀

    用于 Xilinx FPGA Zynq 7 的電源解決方案

    該參考設(shè)計(jì)采用多種 TPS54325 和其他 TI 電源器件,是適用于 Xilinx Zynq FPGA 的全套電源解決方案。輸入電壓達(dá)到 12V 后,該參考解決方案可提供 Zynq
    發(fā)表于 02-11 09:39 ?3103次閱讀
    用于 <b class='flag-5'>Xilinx</b> <b class='flag-5'>FPGA</b> <b class='flag-5'>Zynq</b> 7 的電源解決方案

    FPGA開發(fā)流程詳細(xì)解析

    1. FPGA 開發(fā)流程: 電路設(shè)計(jì)與設(shè)計(jì)輸入 ;仿真驗(yàn)證:利用Xilinx集成的仿真工具足矣 ;邏輯綜合:利用XST(Xilinx Syn
    發(fā)表于 01-12 03:59 ?1w次閱讀

    從賽靈思FPGA設(shè)計(jì)流程看懂FPGA設(shè)計(jì)

    不斷 從賽靈思FPGA設(shè)計(jì)流程看懂FPGA設(shè)計(jì) 1.XILINX ISE傳統(tǒng)FPGA設(shè)計(jì)流程
    發(fā)表于 02-20 20:32 ?1.6w次閱讀
    從賽靈思<b class='flag-5'>FPGA</b>設(shè)計(jì)<b class='flag-5'>流程</b>看懂<b class='flag-5'>FPGA</b>設(shè)計(jì)

    使用Xilinx SDK進(jìn)行Zynq裸金屬應(yīng)用程序開發(fā)

    Zynq-7000 AP SoC硬件和軟件開發(fā)流程中,用于嵌入式軟件開發(fā)的工具就是Xilinx SDK。
    的頭像 發(fā)表于 05-31 08:40 ?2383次閱讀

    基于Xilinx Zynq SoC的“小傻瓜(Snickerdoodle)”開發(fā)套件

    CrowdSupply眾籌網(wǎng)站上完成了眾籌,籌集的資金是其目標(biāo)的兩倍多。這款定價(jià)55美元的開發(fā)板可謂是功能強(qiáng)大,性價(jià)比很高。 圖1“小傻瓜(Snickerdoodle)”開發(fā)板 這款開發(fā)板是基于
    發(fā)表于 04-18 14:24 ?1622次閱讀

    ZYNQ7020的PS端的基本開發(fā)流程

    這篇文章記錄ZYNQ7020的PS端的基本開發(fā)流程,關(guān)于PL端的開發(fā)流程,參考之前文章,這里放個(gè)超鏈接。
    的頭像 發(fā)表于 07-24 18:12 ?7060次閱讀

    用于Xilinx FPGA Zynq7的電源解決方案

    電子發(fā)燒友網(wǎng)站提供《用于Xilinx FPGA Zynq7的電源解決方案.zip》資料免費(fèi)下載
    發(fā)表于 09-05 16:50 ?4次下載
    用于<b class='flag-5'>Xilinx</b> <b class='flag-5'>FPGA</b> <b class='flag-5'>Zynq</b>7的電源解決方案

    面向Xilinx Zynq FPGA應(yīng)用的多路降壓20W電源參考設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《面向Xilinx Zynq FPGA應(yīng)用的多路降壓20W電源參考設(shè)計(jì).zip》資料免費(fèi)下載
    發(fā)表于 09-06 11:34 ?4次下載
    面向<b class='flag-5'>Xilinx</b> <b class='flag-5'>Zynq</b> <b class='flag-5'>FPGA</b>應(yīng)用的多路降壓20W電源參考設(shè)計(jì)

    xilinx ZYNQ7000系列基本開發(fā)流程之PS端

    ZYNQ 芯片分為 PL 和 PS, PS 端的 IO 分配相對是固定的,不能任意分配,雖然 PS 端的 ARM 是硬核,但是在 ZYNQ 當(dāng)中也要將 ARM 硬核添加到工程當(dāng)中才能使用,FPGA
    的頭像 發(fā)表于 08-11 09:36 ?8643次閱讀
    <b class='flag-5'>xilinx</b> <b class='flag-5'>ZYNQ</b>7000系列基本<b class='flag-5'>開發(fā)</b><b class='flag-5'>流程</b>之PS端