做cpa的博客網(wǎng)站類型博客網(wǎng)
1、之前寫過(guò)一篇關(guān)于ZYNQ系列通用的PS側(cè)與PL側(cè)通過(guò)AXI-HP通道的文檔,下面是鏈接。
FPGA----ZCU106基于axi-hp通道的pl與ps數(shù)據(jù)交互(全網(wǎng)唯一最詳)_zcu106調(diào)試_發(fā)光的沙子的博客-CSDN博客大家好,今天給大家?guī)?lái)的內(nèi)容是,基于AXI4協(xié)議的采用AXI-HP通道完成PL側(cè)數(shù)據(jù)發(fā)送至PS側(cè)(PS側(cè)數(shù)據(jù)發(fā)送至PL側(cè)并沒(méi)有實(shí)現(xiàn),但是保留了PL讀取PS測(cè)數(shù)據(jù)的接口)本實(shí)驗(yàn)完成了,PL側(cè)自定義數(shù)據(jù)傳輸?shù)絇S側(cè),并在PS側(cè)寫加軟件,完成了PL側(cè)傳入數(shù)據(jù)的求和功能,發(fā)揮了整個(gè)SoC的功能,為后續(xù)PL側(cè)加速計(jì)算,PS側(cè)數(shù)據(jù)分析奠定了基礎(chǔ)。_zcu106調(diào)試https://blog.csdn.net/qq_37912811/article/details/128097813?spm=1001.2014.3001.5501但當(dāng)時(shí)只是實(shí)現(xiàn)了PL側(cè)向PS側(cè)寫入數(shù)據(jù)的功能。而本次給大家?guī)?lái)完整的PS側(cè)與PL側(cè)讀寫數(shù)據(jù)完整實(shí)驗(yàn)原理以及實(shí)現(xiàn)方法。
需要注意的是,本次實(shí)驗(yàn)數(shù)據(jù)接口均采用Xilinx的通用AXI4協(xié)議,還有不會(huì)的同學(xué)趕緊去學(xué)習(xí)。此外,Xilinx為方便用戶調(diào)試AXI4協(xié)議,還提供了AXI Verification IP本次實(shí)驗(yàn)會(huì)講到他的使用方法。
2、實(shí)驗(yàn)軟硬件:Vivado、zynq UltraScale+系列板卡
3、實(shí)驗(yàn)步驟:
①依據(jù)上文1中提到的AXI-HP文章,在Block Design中搭建ARM側(cè)的設(shè)計(jì),編寫相應(yīng)的數(shù)據(jù)生成Verilog文件,然后進(jìn)行仿真。然后在Vivado的SIMULATIN時(shí),可以發(fā)現(xiàn)一個(gè)現(xiàn)象,就是可以進(jìn)行正常的寫操作,即FPGA可以向ARM寫數(shù)據(jù)。但是在進(jìn)行讀操作時(shí),即FPGA讀取ARM側(cè)數(shù)據(jù)的仿真時(shí),ARM側(cè)應(yīng)當(dāng)發(fā)送的rvalid信號(hào)時(shí)鐘不能拉高。我一直以為是我代碼的問(wèn)題,我還特意去Xilinx社區(qū)問(wèn)了一下。下面是帖子鏈接。這也是為什么我去年只做了寫操作的教程,沒(méi)有做讀操作的教程。
Xilinx Customer Communityhttps://support.xilinx.com/s/question/0D54U00007BtXHuSAN/the-zcu106-board-uses-axihp-protocol-to-complete-the-communication-between-ps-and-plthe-write-function-is-normal-but-the-read-function-is-abnormal?language=zh_CN
相信大家在做FPGA的時(shí)候都會(huì)看一些網(wǎng)上的視頻教程,比如B站黑金的教程,還會(huì)下載對(duì)應(yīng)的程序,但是人家的視頻都是針對(duì)特定板子開(kāi)發(fā)的,對(duì)于我們這種使用Xilinx官方板子的開(kāi)發(fā)者來(lái)說(shuō),代碼啥的都需要再改改。就比如說(shuō)他的AXI-HP通道讀寫DDR操作,我看完以后,我甚至以為是Vivado出現(xiàn)BUG了,因?yàn)樗腂lock Design中設(shè)置好AXI-HP通道后生成HDL wrapper竟然會(huì)有DDR接口,而我用的ZCU106根本不會(huì)生成這個(gè)DDR接口,只有AXI接口。大家有興趣的可以自行下載一下,下面是視頻鏈接以及代碼鏈接。
【35】ALINX Zynq MPSoC XILINX FPGA視頻教程 SDK 裸機(jī)開(kāi)發(fā)—PL讀寫PS端DDR之Vivado創(chuàng)建過(guò)程_嗶哩嗶哩_bilibili1. 課程內(nèi)容本套視頻教程是ALINX公司基于Xilinx Zynq UltraScale+ MPSoC系列FPGA原創(chuàng)的視頻教程,內(nèi)容包含 裸機(jī)開(kāi)發(fā)、Linux基礎(chǔ)開(kāi)發(fā)、Linux驅(qū)動(dòng)開(kāi)發(fā)、Vitis HLS開(kāi)發(fā)、Vitis AI開(kāi)發(fā)五大部分,詳細(xì)講述MPSoc系列FPGA芯片的各個(gè)部分開(kāi)發(fā)的相關(guān)內(nèi)容,視頻基于ALINX公司自主設(shè)計(jì)的FPGA開(kāi)發(fā)板進(jìn)行講解,理論結(jié)合實(shí)踐,讓大家可以充分理解開(kāi)發(fā)的, 視頻播放量 2747、彈幕量 3、點(diǎn)贊數(shù) 19、投硬幣枚數(shù) 8、收藏人數(shù) 65、轉(zhuǎn)發(fā)人數(shù) 8, 視頻作者 ALINX官方, 作者簡(jiǎn)介 ,相關(guān)視頻:【03】ALINX Zynq MPSoC XILINX FPGA視頻教程 SDK 裸機(jī)開(kāi)發(fā)—MPSoC開(kāi)發(fā)之Vitis工程創(chuàng)建流程,【02】ALINX Zynq MPSoC XILINX FPGA視頻教程 SDK 裸機(jī)開(kāi)發(fā)—MPSoC開(kāi)發(fā)之Vivado工程創(chuàng)建流程,【ALINX】FPGA ZYNQ視頻教程——AX7010/AX7020教程——FPGA實(shí)驗(yàn)篇,【37】ALINX Zynq MPSoC XILINX FPGA視頻教程 SDK 裸機(jī)開(kāi)發(fā)—PS與PL交互之BRAM讀寫Vivado創(chuàng)建過(guò)程,【01】ALINX Zynq MPSoC XILINX FPGA視頻教程 Linux基礎(chǔ)開(kāi)發(fā)—Petalinux定制Linux系統(tǒng),【12】ALINX Zynq MPSoC XILINX FPGA視頻教程 SDK 裸機(jī)開(kāi)發(fā)—PS端UART讀寫例程,【ALINX】FPGA ZYNQ視頻教程——AX7010/AX7020教程——SDK實(shí)驗(yàn)篇,【01】ALINX Zynq MPSoC XILINX FPGA視頻教程 SDK 裸機(jī)開(kāi)發(fā)—MPSoC架構(gòu)介紹,【31】ALINX Zynq MPSoC XILINX FPGA視頻教程 SDK 裸機(jī)開(kāi)發(fā)—自定義IP之Vivado創(chuàng)建流程,【63】ALINX Zynq MPSoC XILINX FPGA視頻教程 SDK 裸機(jī)開(kāi)發(fā)—AD9280以太網(wǎng)傳輸及上位機(jī)顯示波形實(shí)驗(yàn)https://www.bilibili.com/video/BV1UY4y1L7wb/?spm_id_from=333.788
- AX7010資料鏈接:
- 2017.4版 鏈接:https://pan.baidu.com/s/1xr3D1EED4zb1eyJHYTGRHg?
- 提取碼:3z1y?
- 軟件包鏈接:
- 2017.4版 鏈接:https://pan.baidu.com/s/1RiolZAHIi8hCskJJGrmSjg?
- 提取碼:1w8y?
- ZYNQ視頻鏈接:https://pan.baidu.com/s/11_oHUzEOZlBXWLllCdTf6A?
- 提取碼:3au6
- ubuntu16鏈接:
- 鏈接:https://pan.baidu.com/s/19TurvpRlmWdEb8Yo_QatIg?pwd=tpcx?
- 提取碼:tpcx?
最后我得出的結(jié)論是,zynq UltraScale+系列板卡(ZCU系列),在Vivado中進(jìn)行仿真時(shí),rvalid信號(hào)確實(shí)不會(huì)自動(dòng)拉高,只有在上板子之后他才會(huì)被拉高。那么問(wèn)題來(lái)了,每次生成bit文件時(shí)間那么長(zhǎng),總不能每次都浪費(fèi)吧?為了解決這個(gè)問(wèn)題,我們可以使用Xilinx提供的AXI協(xié)議調(diào)試IPAXI Verification IP。由于調(diào)試的AXI-HP接口,因此,下面以FPGA為主機(jī),ARM為從機(jī)進(jìn)行測(cè)試(ARM為從機(jī),即設(shè)置AXI Verification IP為從機(jī)即可)。
②在block design中搜索axi vip然后添加
?③配置axi vip模塊
?上面的設(shè)置依據(jù)大家的具體情況設(shè)定即可,要想調(diào)試出的AXI接口直接可以上板使用,最好的方法是:先在block design中配置好ARM,然后生成HDL wrapper,查看HDL wrapper中的verilog文件的ARM的每個(gè)端口配置,然后依據(jù)這個(gè)設(shè)置axi vip配置即可。
配置好axi vip后,將下面這三根線引出,然后配追地址,需要注意的是,axi vip只有2M,因此不能大量讀寫數(shù)據(jù)。寫的時(shí)候要看清楚地址,下面這個(gè)偏移起始地址是44A0_0000,但是我寫的代碼是從0000_0000開(kāi)始的,仍然可以正常使用,具體原因不清楚。
?④編寫自己的數(shù)據(jù)生成代碼已經(jīng)AXI接口代碼,可以去我上面提供的鏈接里面下載,也可以查看我之前的文章,自行編寫。
⑤配置axi vip仿真文件。雖然上面添加了axi vip模塊,但這并不代表可以直接進(jìn)行仿真了,還需要添加一些仿真文件。
- 添加自定義的testbench.sv文件(sv文件哈,system verilog文件)
- 打開(kāi)axi vip的設(shè)計(jì)例程
- ?打開(kāi)例子工程文件夾:x:\xxxx\xx\axi_vip_0_ex\imports,將這些文件夾復(fù)制到與testbench.sv同一個(gè)目錄下,如:D:\vavado_project\AXI_VIP_SLAVE\AXI_VIP_SLAVE.srcs\sim_1\new
- 更改testbench.sv文件
- ??回到vivado界面,打開(kāi)TCL Console面板,輸入:get_ips *vip*命令,然后復(fù)制出現(xiàn)IP名稱,我這里是design_1_axi_vip_0_0。
- ?回到Vivado界面可以看到,會(huì)自動(dòng)出現(xiàn)一個(gè)引用文件,雙擊打開(kāi)
- ?將復(fù)制的IP名稱貼入紅框部分的陰影部分,_pkg以及_slv_t都不改
- ?修改下面紅框部分,這是system Verilog語(yǔ)法,目的是找到axi vip這個(gè)模塊
- ?這樣就配置好了,直接在Vivado中進(jìn)行simulink即可。
- 需要注意的是,如果配置axi vip為主機(jī),那么需要修改axi_vip_0_mst_stimulus.sv文件,將下面這段代碼注釋掉即可,不然會(huì)報(bào)錯(cuò)。
?以上內(nèi)容參考了知乎大神帖子,下面是傳送門?????
【VIVADO IP】AXI Verification IP - 知乎0 前言本文記錄關(guān)于VIVADO IP核【AXI Verification IP】的部分使用和配置方式,主要參考IP手冊(cè)【PG267】和【 芯選】關(guān)于IP的介紹。IP內(nèi)功能較為豐富,這里僅對(duì)使用到的部分進(jìn)行記錄,如果有錯(cuò)誤的地方還請(qǐng)?zhí)嵝?。AX…https://zhuanlan.zhihu.com/p/526968284
⑥直接進(jìn)行上板調(diào)試即可,這里給大家一個(gè)PS與PL交互的思路:
?4、我們完成了基于SoC(ARM+FPGA架構(gòu))的電力系統(tǒng)電磁仿真SDK,需要合作可以聯(lián)系作者郵箱!
?