日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > > ZYNQ


如何使用新版本的vivado去打開舊版本的vivado工程

李家俊同學(xué)給大家介紹了一下如何使用新版本的vivado去打開舊版本的vivado工程。

對(duì)于舊版本的vivado工程或者是ise工程,更新到新版本的vivado環(huán)境下有兩種方法:

1、直接用新版本vivado打開原有工程文件,進(jìn)行IP核更新;2、拷貝原有工程設(shè)計(jì)文件、約束文件、IP核文件夾至新建新版本vivado空白工程文件下,進(jìn)行更新。

1、在舊版本vivado基礎(chǔ)上直接升級(jí)

我們先來介紹一下如何直接使用新版本打開舊版本工程并且進(jìn)行升級(jí)。直接使用新版本vivado打開vivado的工程文件。對(duì)于新版本vivado一般在打開舊版本工程時(shí)都會(huì)自動(dòng)進(jìn)行更新默認(rèn)自動(dòng)更新就好。打開工程之后,需要對(duì)舊版本工程的IP核進(jìn)行升級(jí)操作。點(diǎn)擊Reports->Report IP Status查看IP核被鎖狀態(tài)進(jìn)行升級(jí)。選中所有IP核進(jìn)行升級(jí)。
點(diǎn)擊確定。
保持默認(rèn)不使用核容器,(Core Container沒有用過,我都是默認(rèn)不使用)。升級(jí)完成之后的界面如圖所示。

如何使用新版本的vivado去打開舊版本的vivado工程

debug步驟:

在需要debug的輸入輸出端口列表前加 (* mark_debug = “true” *)。

在編譯通過后,進(jìn)行綜合生成網(wǎng)表等文件,點(diǎn)setup debug進(jìn)行添加。

保存,xdc中應(yīng)該有約束了,原理圖里也有ila_core 模塊,直接進(jìn)行實(shí)現(xiàn)即布局布線。

在線調(diào)試:生成比特后下載,run trigger。

注意:在有多個(gè)debug端口時(shí),會(huì)引入1個(gè)以上ila_core,每一個(gè)ila_core 的時(shí)鐘域都是獨(dú)立的,且在每一個(gè)ila_core中各個(gè)端口的時(shí)鐘域是一樣的。

1、設(shè)置信號(hào)抓取標(biāo)記

將需要測(cè)試的端口前標(biāo)記上(*mark_debug = “1”*)或者(*mark_debug = “true”*)

注意:這里最好將需要測(cè)試的端口信號(hào)打一拍再進(jìn)行測(cè)試,因?yàn)檩斎胼敵龆丝诘尿?qū)動(dòng)單元類型往往是不一樣的,比如兩個(gè)紅框之間的rgmii_txd信號(hào)它的驅(qū)動(dòng)單元類型就是ODDR,這將影響布線到此處的邏輯分析儀ila的探針的連接,具體的我也不清楚應(yīng)該是驅(qū)動(dòng)能力不匹配之類的,反正最好實(shí)現(xiàn)的時(shí)候會(huì)報(bào)錯(cuò)。如果不打拍則在后續(xù)設(shè)置setup debug的時(shí)候就要注意去除不符合驅(qū)動(dòng)類型的信號(hào)。

2、建立debug文件

添加完debug標(biāo)記后,進(jìn)行編譯、綜合,沒有問題則可以查看當(dāng)前原理圖(其實(shí)也可以不用看,這里只是為了對(duì)比ila模塊)然后點(diǎn)擊Set Up Debug對(duì)剛剛添加的信號(hào)進(jìn)行設(shè)置。

設(shè)置的信號(hào)有幾個(gè)需要注意的地方:

1、關(guān)于時(shí)鐘域的選擇,如圖紅框部分,這些時(shí)鐘需要選擇free clock,所謂free clock(按照我自己的理解,也可能不準(zhǔn)確)就是系統(tǒng)一上電就能運(yùn)行的時(shí)鐘,并且不會(huì)因?yàn)閺?fù)位以外的條件停振,比如有些時(shí)鐘為了節(jié)省功耗,僅在需要進(jìn)行數(shù)據(jù)交換時(shí)振動(dòng),在其他時(shí)刻保持低電平,但是這種時(shí)鐘就不是free clock。

2、注意選擇具有符合標(biāo)準(zhǔn)驅(qū)動(dòng)單元的信號(hào),這里右側(cè)紅框中都是可以的,但是對(duì)于DDR型的驅(qū)動(dòng)信號(hào)就會(huì)出錯(cuò)。

3、同一個(gè)時(shí)鐘域的信號(hào)都在同一個(gè)ila模塊下,即有幾個(gè)時(shí)鐘域就會(huì)有幾個(gè)ila模塊。

這里需要注意:

1、是選擇采樣深度,會(huì)占用一定的FPGA資源,所以如果設(shè)計(jì)系統(tǒng)簡單就可以選擇多一點(diǎn),可以看到較長時(shí)鐘周期內(nèi)存儲(chǔ)的信號(hào)變化。

2、選擇上后,可以進(jìn)行高級(jí)設(shè)置操作(選了也沒用上==)。

可以看到這里的summary是4個(gè)時(shí)鐘域和之前選擇一致。

這是兩張?jiān)韴D,后者的紅框框部分是添加的4個(gè)ila模塊,中間藍(lán)色圓框部分是debug hub,即連接FPGA和jtag的部分。

在底部Debug窗口可以看到各個(gè)ila模塊的時(shí)鐘選擇。

對(duì)于debug hub時(shí)鐘域的選擇查看可以通過tcl命令也可以點(diǎn)擊原理圖連線的方式,在左側(cè)會(huì)有連接顯示,這里看到是連接到了ila3模塊上,這樣不太好,因?yàn)槿绻鹖la3的時(shí)鐘沒選擇對(duì)就會(huì)導(dǎo)致整個(gè)debug hub在后面下載比特時(shí)無法被檢測(cè)到,就算其他ila的時(shí)鐘對(duì)了也白瞎。因?yàn)橛?jì)算機(jī)是通過jtag返回?cái)?shù)據(jù)的,而jtag又靠著debug hub 連接fpga的ila。

3、完善XDC文件,實(shí)現(xiàn)電路

修改完成之后,依然需要保存修改,看到這里沒有保存約束文件在214行。

保存之后xdc增加了ila模塊的對(duì)應(yīng)約束。

這里對(duì)應(yīng)debug hub 的連接時(shí)鐘。

之前說了debug hub時(shí)鐘保持默認(rèn)的缺點(diǎn),這里通過tcl命令進(jìn)行修改,通過查看ug908文檔可以知道推薦的debug hub時(shí)鐘在100Mhz左右,且至少在JTAG下載速率的2.5倍以上,采樣定理嘛,一般jtag速率默認(rèn)15Mhz,查看代碼中時(shí)鐘生成部分,發(fā)現(xiàn)CLK_OUT2也就是mac的用戶側(cè)時(shí)鐘就是100Mhz,所以我們選擇debug hub時(shí)鐘為100Mhz。

修改完成后,查看xdc確認(rèn)已經(jīng)修改了(其實(shí)也可以直接通過xdc

修改,但是直接修改xdc軟件可能會(huì)提示綜合過期,讓重新綜合,而通過tcl則可以直接進(jìn)行后面的步驟)。

我們?cè)俅尾榭丛韴D,可以看到debug hub的時(shí)鐘域已經(jīng)修改。

4、生成比特流文件,進(jìn)行板級(jí)調(diào)試并抓取信號(hào)

直接生成比特文件。

相比較之前的工程版本遷移時(shí)的下載界面,紅框部分多出了后綴為ltx的文件,即邏輯分析儀的探針文件。

下載完成后會(huì)彈出4個(gè)dashboard對(duì)應(yīng)著4個(gè)不同時(shí)鐘域的ila模塊,可是沒有信號(hào),這時(shí)可以點(diǎn)擊+號(hào)進(jìn)行添加。

ctrl+a選中所有進(jìn)行添加。

添加完信號(hào)后注意右下角的觸發(fā)條件設(shè)置,同樣點(diǎn)擊+號(hào)設(shè)置需要添加的信號(hào),這里選則的是幀起始標(biāo)志sop,并且選擇觸發(fā)條件的關(guān)系為或,同時(shí)觸發(fā)值設(shè)置為1’b1,之后再點(diǎn)擊三角型的 run trigger符號(hào)即可。

這里lower部分已經(jīng)有波形了。

放大看所有的信號(hào)。

這里發(fā)現(xiàn)沒有前導(dǎo)碼是因?yàn)檫@里的4字節(jié)數(shù)據(jù)已經(jīng)是進(jìn)了mac之后經(jīng)過了8轉(zhuǎn)32的數(shù)據(jù)了已經(jīng)去掉了前導(dǎo)碼和CRC。但是upper client沒有數(shù)據(jù),原來是沒有ping都沒有發(fā)怎么有?

結(jié)果發(fā)現(xiàn)ping了也沒有,好氣。

注意之前設(shè)置的觸發(fā)條件,是或關(guān)系,于是lower的sop信號(hào)在當(dāng)前的1024個(gè)鐘內(nèi)比其他的sop先觸發(fā),而各個(gè)sop的間隔周期大于我們?cè)O(shè)置的采樣深度1024,所以無法同時(shí)顯示,刪除lower觸發(fā)條件后就有了,當(dāng)然lower又沒有了。

這邊按照同樣的步驟,添加觀察信號(hào)、添加設(shè)置觸發(fā)條件、點(diǎn)擊run trigger,就能看到波形了,注意放大后的紅框部分,有了前導(dǎo)碼,按單字節(jié)應(yīng)該是 55 55 55 d5的順序而這里由于是rgmii只是半字節(jié),所以是 5 5 5 5 5 5 5 d。

對(duì)ila3按同樣的步驟操作當(dāng)我們點(diǎn)擊run trigger的時(shí)候會(huì)發(fā)現(xiàn)出現(xiàn)unable to arm ila core的錯(cuò)誤,這就是時(shí)鐘域的問題,由于我們選擇的是rgmii_rx_clk這是由phy提供的,但是ila3即例化時(shí)的client對(duì)應(yīng)的phy沒有插網(wǎng)線,所以也沒有時(shí)鐘,自然無法arm ila core。


這里特意為了對(duì)比不同時(shí)鐘域的選擇對(duì)于ila的影響,其實(shí)也可以將lower upper client的ila時(shí)鐘域都設(shè)置成用戶側(cè)即CLK_OUT2因?yàn)檫@個(gè)時(shí)鐘一直存在,這樣即使ila3對(duì)應(yīng)的模塊的網(wǎng)口沒有插網(wǎng)線,在dashboard上顯示也會(huì)有全0 的數(shù)據(jù),就和ila0 一樣,可以翻到前面去看看,這里的lower upper client的ff_rx_data[31:  0]來自三個(gè)獨(dú)立的例化模塊,但是也可以放到同一個(gè)時(shí)鐘域。表達(dá)的不太好實(shí)踐一下就能知道了。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
關(guān)閉