ZU+MPSOC器件在汽車(chē)電子、工業(yè)控制、機(jī)器視覺(jué)、智能安防、智慧城市等行業(yè)中已經(jīng)有著廣泛的應(yīng)用,三年前在做一個(gè)ZCU106開(kāi)發(fā)板的TRD(Target Reference Design)向用戶自研板卡移植HDMI設(shè)計(jì)時(shí),遇到了一些問(wèn)題,我翻出之前的筆記整理成文,與大家分享。
當(dāng)時(shí)使用的Vivado版本為2018.3,因此通篇描述都是基于Vivado 2018.3的操作。
首先,ZCU106開(kāi)發(fā)板的TRD參考設(shè)計(jì)在Wiki上都是以tcl腳本形式提供的,需要我們執(zhí)行腳本創(chuàng)建工程,我選用的參考設(shè)計(jì)源文件為rdf0428-zcu106-vcu-trd-2018-3\pl\scripts\vcu_audio_proj.tcl,選用這個(gè)設(shè)計(jì)的原因是這個(gè)設(shè)計(jì)包含HDMI TX、HDMI RX、Audio,可以完整地檢驗(yàn)客戶的HDMI硬件設(shè)計(jì)是否正確。創(chuàng)建工程的步驟如下:
1. 打開(kāi)Vivado 2018.3 GUI或者打開(kāi)Vivado 2018.3 tcl command prompt,在tcl命令行的部分輸入命令打開(kāi)vcu_audio_proj.tcl文件的存放目錄文件夾;

ZCU106 TRD文件目錄
2. source vcu_audio_proj.tcl,創(chuàng)建工程,此時(shí)vcu_audio_proj.tcl會(huì)調(diào)用vcu_audio_bd.tcl;
3. 然后我們?cè)诖蛴⌒畔⒅锌梢钥吹饺缦洛e(cuò)誤,原因是vcu_audio_proj.tcl中的路徑定義問(wèn)題;

TRD tcl腳本執(zhí)行錯(cuò)誤信息

路徑定義命令
4. 解決辦法為把vcu_audio_proj.tcl和vcu_audio_bd.tcl拷貝到向上一級(jí)目錄,讓vcu_audio_proj.tcl中的路徑定義生效即可;拷貝后的路徑如下:

拷貝腳本后目錄
5. 使用Vivado 2018.3 GUI或者Vivado 2018.3 tcl command prompt打開(kāi)新的vcu_audio_proj.tcl路徑位置,source vcu_audio_proj.tcl創(chuàng)建工程;
6. 此時(shí)建議備份ZCU106的TRD工程,下一步有用;
接下來(lái)我們把設(shè)計(jì)移植到用戶自己設(shè)計(jì)的硬件板卡,我的操作步驟如下:
1. 在工程設(shè)置中把Project Device從ZCU106修改為客戶的PN,我的設(shè)計(jì)中使用的是XCZU4EV-1FBVB900I;然后Vivado會(huì)提示需要Upgrade IP;

upgrade IP
2. 點(diǎn)擊Report IP Status,upgrade所有IP;
3. Upgrade IP之后會(huì)出現(xiàn)連線報(bào)錯(cuò),是因?yàn)閂ivado upgrade IP的時(shí)候VCU block里面的時(shí)鐘沒(méi)有upgrade正確,請(qǐng)參考ZCU106 TRD工程把VCU里面的clk_wiz_0配置為差分輸入、不要reset端口、兩路輸出時(shí)鐘、clk_out2連接好,并且連接在block design中丟失的信號(hào)連接;

信號(hào)連接丟失

需要修改的block design信號(hào)連接

需要修改的clk_wiz輸入時(shí)鐘配置

需要修改的clk_wiz輸出時(shí)鐘配置

需要修改的reset端口
4. 然后我們?nèi)?zhí)行Block Design的Validate,可以通過(guò),但是在綜合之前產(chǎn)生block design的輸出文件時(shí)會(huì)遇到frame_buffer的錯(cuò)誤如下,這個(gè)錯(cuò)誤是因?yàn)楣こ搪窂匠^(guò)了260個(gè)字符,需要把工程拷貝到某個(gè)盤(pán)符的根目錄下;

frame buffer錯(cuò)誤信息
5. 這時(shí)候整個(gè)設(shè)計(jì)可以綜合完,我們需要根據(jù)用戶的硬件原理圖設(shè)計(jì)修改管腳位置約束、電平標(biāo)準(zhǔn)約束等信息;如果所有約束都修改完后編譯遇到GTH的參考時(shí)鐘無(wú)法布線成功,是因?yàn)閎lock design中vid_phy_controller中參考時(shí)鐘的位置和用戶在硬件上的管腳、器件自身的位置關(guān)系等不一致;
[DRC RTSTAT-1] Unrouted nets: 3 net(s) are unrouted. The problembus(es) and/or net(s) are vcu_audio_i/gt_refclk_buf/ibufds_gt/U0/IBUF_OUT[0],vcu_audio_i/vid_phy_controller/inst/gt_usrclk_source_inst/gtrefclk0_in[0], and vcu_audio_i/vid_phy_controller/inst/gt_usrclk_source_inst/gtrefclk1_in[0].
以ZU4EV-FBVB900封裝為例,結(jié)合用戶的原理圖設(shè)計(jì)、ZU+ MPSOC EV系列的GTH位置關(guān)系,決定了block design中的連線和vid_phy_controller中的配置:
在用戶的原理圖中,TX_REFCLK_P/N和HDMI_RX_CLK_P/N和HDMI的數(shù)據(jù)線都是放在GTH BANK225,TX_REFCLK_P/N接BANK225的REFCLK1,HDMI_RX_CLK_P/N接BANK225的REFCLK0,因此在vid_phy_controller的配置中我們要選擇GT Starting Channel Location中要選擇X0Y8,TX Ref Clock Selection選擇GTREFCLK1,RX Ref Clock Selection選擇GTREFCLK0;
在用戶的原理圖中,DRU_CLK_P/N從GTH BANK224的MGTREFCLK1進(jìn)入,根據(jù)ZU4EV-FBVB900封裝的GTH位置關(guān)系,BANK224處于BANK225的North位置,所以在vid_phy_controller的配置中NI-DRU Ref Clock Selection選擇GTNORTHREFCLK1;

block design中的信號(hào)連接關(guān)系

video_phy_controller中的配置信息

ZU+MPSOC EV GTH Location

用戶原理圖設(shè)計(jì)
6. 但是在MAP階段會(huì)遇到如下錯(cuò)誤,原因是這個(gè)設(shè)計(jì)使用的LUT超出了ZU4EV芯片的總量;可以使用 set_param drc.disableLUTOverUtilError 1命令讓設(shè)計(jì)向下編譯,如果不用audio部分,也可以刪除掉block design里面的audio部分;刪除audio部分之后這個(gè)設(shè)計(jì)在ZU4EV是可以放下的;

MAP錯(cuò)誤信息
7. 若上一步使用刪除block design中的audio部分,block design中還有有一些信號(hào)線連接丟失,需要自己手動(dòng)連接;

刪除audio模塊后手動(dòng)連線

刪除audio模塊后手動(dòng)連線
8. 此時(shí)編譯又遇到了URAM占用量超過(guò)ZU4EV器件總量的報(bào)錯(cuò),原因是TRD設(shè)計(jì)中VCU的默認(rèn)配置為encoder和decoder都是4Kx60fps分辨率,且encoder buffer全部使用URAM實(shí)現(xiàn),ZU4EV沒(méi)有這么多的URAM,可以修改URAM的資源實(shí)現(xiàn)方式來(lái)編譯通過(guò);也可以減小分辨率以減少URAM占用;

VCU配置信息
最后,強(qiáng)調(diào)一下HDMI的時(shí)鐘結(jié)構(gòu),請(qǐng)參考Xilinx官方文檔PG235、PG236。

HDMI時(shí)鐘結(jié)構(gòu)圖
審核編輯:湯梓紅
-
HDMI
+關(guān)注
關(guān)注
34文章
1863瀏覽量
158430 -
移植
+關(guān)注
關(guān)注
1文章
406瀏覽量
29143 -
Vivado
+關(guān)注
關(guān)注
19文章
844瀏覽量
70361
發(fā)布評(píng)論請(qǐng)先 登錄
ZU+系列MPSoC的外圍接口詳細(xì)分析
MPSoC可擴(kuò)展集成電源參考設(shè)計(jì)包括BOM及框圖
請(qǐng)問(wèn)Zynq Ultrascale + MPSOC本身是否存在問(wèn)題?
Altera FPGA_CPLD設(shè)計(jì) (基礎(chǔ)篇 + 高級(jí)篇)掃描版
ZU7EV板卡設(shè)計(jì)資料第526篇:基于ZU7EV的FMC 通用PCIe卡
基于ZU+系列MPSoC芯片的USB3.0/2.0接口硬件設(shè)計(jì)
開(kāi)源硬件-TIDA-01480.12-適用于 Xilinx Zynq? UltraScale+? ZU2CG?ZU5EV MPSoC 的集成電源 PCB layout 設(shè)計(jì)
開(kāi)源硬件-TIDA-01480.16-適用于 Xilinx Zynq? UltraScale+? ZU2CG?ZU5EV MPSoC 的集成電源 PCB layout 設(shè)計(jì)
開(kāi)源硬件-TIDA-01480.05-適用于 Xilinx Zynq? UltraScale+? ZU2CG?ZU5EV MPSoC 的集成電源 PCB layout 設(shè)計(jì)
開(kāi)源硬件-TIDA-01480.08-適用于 Xilinx Zynq? UltraScale+? ZU2CG?ZU5EV MPSoC 的集成電源 PCB layout 設(shè)計(jì)
開(kāi)源硬件-TIDA-01480.09-適用于 Xilinx Zynq? UltraScale+? ZU2CG?ZU5EV MPSoC 的集成電源 PCB layout 設(shè)計(jì)
開(kāi)源硬件-TIDA-01480.02-適用于 Xilinx Zynq? UltraScale+? ZU2CG?ZU5EV MPSoC 的集成電源 PCB layout 設(shè)計(jì)

ZU+MPSOC HDMI設(shè)計(jì)移植案例分享?
評(píng)論