精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

ISE工程升級到Vivado及板級信號調試

FPGA技術江湖 ? 來源:網絡交換FPGA ? 2023-01-30 09:11 ? 次閱讀

本次操作包括:工程的版本遷移,板級測試時信號的抓取。

ISE工程轉到Vivado2018.2環境下

版本遷移的操作想必大家已經做過不少了,其中包括從ISE轉換到vivado與vivado老版本遷移到新版本。鄭智海同學給大家介紹了一下如何把工程從ISE遷移到vivado中。

首先我們拿到的是一個ISE的工程,當然是不能夠直接用Vivado軟件打開的,所以我們要進行第一步操作,將工程導入進去:

打開Vivado2018.2后,點”Creat Project”后,再點擊Imported Project,勾選ISE后,尋找到ISE工程所放在的位置進行添加,記得添加的是后綴為.xise的文件,因為之前我點的是別的形式,就一直添加不了,這個小問題要注意。操作如下列圖步驟所示。

91c8350e-a005-11ed-bfe3-dac502259ad0.png

選擇好后點擊Next鍵繼續,并選擇好自己的工程目錄。

91e91576-a005-11ed-bfe3-dac502259ad0.png

Project_1就是我想將工程建在此文件夾中。

920e624a-a005-11ed-bfe3-dac502259ad0.png

勾選ISE之后,選擇ISE所在文件目錄。

922cb38a-a005-11ed-bfe3-dac502259ad0.png

選擇好ISE工程之后就算成功將ISE導入vivado2018.2了,也就算完成了第一步工作。

923c4c32-a005-11ed-bfe3-dac502259ad0.png

926590c4-a005-11ed-bfe3-dac502259ad0.png

如上面兩張圖所示,進入vivado2018.2頁面后,會顯示出這個界面,此時你的IP核在這里是處于過期的狀態,因為在ise里的ip核到了vivado中不一定適用,不同軟件中的ip核是不兼容的,這里很簡單,只需手動升級,即選中ip核并點擊右鍵,有一個upgrade up代表升級,點擊之后會出現下面界面:

9277d6ee-a005-11ed-bfe3-dac502259ad0.png

點擊ok后進行generate后,ip核就會自動更新完成:

9290ed78-a005-11ed-bfe3-dac502259ad0.png

完成ip核更新后,還有一個重要的問題是此時的約束文件的格式是ucf(代表的是ise的約束文件格式),但vivado是不支持這種格式的,我們需要將ucf轉成xdc格式。這里我想介紹兩種方法:逐行代碼手動修改與圖形界面配置修改。

1、手動更改

根據ucf的約束管腳,對應著寫一個xdc文件。

92b0b888-a005-11ed-bfe3-dac502259ad0.png

逐行修改就是根據上圖的轉換規則,一行一行地把代碼改成xdc形式。下面放上部分一行行修改后的代碼。

92c58b8c-a005-11ed-bfe3-dac502259ad0.jpg

92d3d1ba-a005-11ed-bfe3-dac502259ad0.jpg

2. 圖形界面配置管腳

而通過圖形界面修改就方便得多,鼠標點點即可。在完成synthesis之后,打開implement選項:

92fc14e0-a005-11ed-bfe3-dac502259ad0.png

930b70fc-a005-11ed-bfe3-dac502259ad0.jpg

在I/O Ports窗口展開管腳,對于每個輸入輸出信號,在Site欄選擇對應的管腳,注意確保Fixed欄處于勾選狀態,I/O Std常選擇LVCMOS25。設置好后,Implemented Design窗口標題欄會顯示一個*號,表示設置發生了更改。按Ctrl+S快捷鍵保存設置,會彈出窗口如圖,提示保存constraints文件會導致綜合與實現過期。也就是說,修改了管腳分配設置后,需要重新進行綜合、實現操作。

隨后會彈出保存新文件的窗口,選擇Create a new file并輸入文件名,點擊OK即可。

9323df2a-a005-11ed-bfe3-dac502259ad0.jpg

此時約束文件就已經生成,保存之后就可以在vivado的約束部分看到自己的xdc了。個人認為如果ucf文件不是特別多的話可以手動更改,如果很多的話可能就需要在tcl輸入對應的腳本去更改,這個我就還沒嘗試過。

板級測試時信號的抓取

1、添加調試的信號

添加信號抓取要先進行synthesis操作,然后open synthesis,點擊Set up debug。

9344765e-a005-11ed-bfe3-dac502259ad0.png

在這之前,你就應該想好你要debug哪些信號,抓哪些信號去看波形,當你想用ila抓取哪些信號時,你就可以在代碼前標記出(*mark_debug = "true"*)或者(*mark_debug = "1"*).因為標記了之后,你點擊set up Debug之后就可以在信號列表中找到相應的信號。

9362dd42-a005-11ed-bfe3-dac502259ad0.png

9378d340-a005-11ed-bfe3-dac502259ad0.jpg

上圖是我所標記的部分信號,當然我們需要對代碼的功能進行分析,你才好判斷。這里還要提及一點,盡量不要抓頂層的信號,因為頂層的信號往往是沒有經過處理的信號,這樣子很有可能ila是抓不出來波形的。

93948324-a005-11ed-bfe3-dac502259ad0.png

那么對于我的工程主要是rgmii轉gmii,即是一個4位數據轉換成8位數據,再對接受的8位數據進行一個CRC的校驗,那么我們當然是想抓接收到4位的數據和接收8位的數據,這樣你就有了目的,可以在代碼中尋找到輸入或者輸出位寬是4的數據,再找位寬為8的數據,進行mark debug。

93a0b1d0-a005-11ed-bfe3-dac502259ad0.png

如圖就是告訴你可以選擇對應的信號進行標記,并且可以選擇他們的時鐘域,之后可以對你選擇的信號給予一定的值進行觸發。

93cd70e4-a005-11ed-bfe3-dac502259ad0.png

93e0f29a-a005-11ed-bfe3-dac502259ad0.png

你在代碼里標記之后,就會在列表中出現對應信號,這里需要注意的地方有以下幾個點:

A.Clock Domain

這個地方是時鐘域的選擇,這個是非常講究的,有時候你抓不到波形的原因就是因為參考時鐘太慢,信號往往是從一個快時鐘域下來的,你拿慢時鐘去抓,就抓不到,而且時鐘域選擇不當在布局布線的過程往往都會報錯。報錯的原因是因為你所選的時鐘和ila所連接的距離太遠,布局布線太困難,這時候你需要更改你的時鐘域。這里再說一個概念叫free clock,free clock是要求上電無條件運行的時鐘,一般直接用晶振時鐘,是比較穩定的時鐘,給予電路永久的一種時鐘。所以在選擇時鐘的時候我們都需要考慮去選擇free clock。

B.Driver cell

對于DDR型的驅動信號在布局布線過程中往往都會失敗的,像圖中的IDDR和ODDR,他們是一種原語,由一個時鐘輸入,下降沿數據由輸入時鐘的本地反轉來計時的,反饋到I/O塊的所有的時鐘被完全復用,總之在加入debug的時候,要把這兩種DDR型的驅動信號刪除。個人感覺如果在這些信號再接一個IBUF,再將輸出試著添加debug,有可能能成功。

C.ila的個數問題

94032a54-a005-11ed-bfe3-dac502259ad0.png

94198a2e-a005-11ed-bfe3-dac502259ad0.png

當你選擇了幾個時鐘域,你就會對應有幾個ila,如果你選的時鐘都是一樣的,那么你就只有一個ila。

如上圖所示,是我最終留下來的信號,并將它們的時鐘都選擇了clk_out2,通過代碼里的clk_gen模塊可以知道clk_out2的時鐘是100MHZ,這里選擇100MHZ還有一個原因是debug hub也應該選擇在100MHZ,至少在JTAG下載速率的2.5倍以上,而JTAG一般默認在15MHZ,所以我們選擇clk_out2也是OK的,個人感覺時鐘域的選擇還是要在clk_gen給出的選擇里挑選,這樣的時鐘一般都是free clock,時鐘域選擇的越多,ila越多,布局布線的困難往往就會更大,所以個人覺得要控制ila的數量,不然很容易出錯。還有就是采樣深度的選擇,如果你的信號不多的話可以默認1024,不然也會占用一定的FPGA資源,不過感覺影響也不大。還有Capture control和Advance trigger兩個感覺也是可勾選也可以不勾選。

944e2bd0-a005-11ed-bfe3-dac502259ad0.jpg

之后我們看到,由于我們只選擇了一個時鐘域out2,所以它給我們分配了一個ila0以及1個時鐘域。之后就點擊finish就可以了。完成之后還需要進行保存,保存之后xdc就會自動添加ila和debug hug的部分,將你所需要檢測的信號與ila上的探頭進行連接:

945ad196-a005-11ed-bfe3-dac502259ad0.png

在這里你可以檢查自己的xdc是否是準確的,管腳對應探頭的位置,同時可以看到u_ila_0已經例化,并寫在了xdc里面。

94673936-a005-11ed-bfe3-dac502259ad0.jpg

2、修改調試信號的時鐘域

需要注意的是最后一行的debug_hub的時鐘,由于我只選擇了一個時鐘域out2,那么hub的時鐘就是默認為out2(雖然它顯示的是Clk_user),當有多個ila的時候,hub的時鐘往往默認的都會出問題,可能它會與其他的ila時鐘默認連接,如果此時的ila時鐘為0的話,那么就會出問題。例如現在有兩個ila_0和ila_1,分別對應兩個時鐘clk_out1,clk_out2,然后同時連在一個hub上,默認下,hub的clk是連到ila_1的clk_out2上,這對ila_0就有問題,不同的時鐘域,將會導致hub不工作。所以我們可以對hub的時鐘進行更改:

94763f9e-a005-11ed-bfe3-dac502259ad0.png

a. 直接在xdc上進行更改

可以直接在xdc上進行更改,如上圖可以在get_nets后面的內容進行更改,比如我需要改為clk_gen里引出的clk_2,那么我們可以寫為get_nets clk_gen/CLK_OUT2,保存即可。不過修改之后的xdc可能還要需要重綜合,因為會顯示綜合過期,比較麻煩,所以我們可以用tcl命令去更改,就可以直接省去這一步,所以tcl的腳本還是很給力的,之后還要多加學習這方面。

94aa674c-a005-11ed-bfe3-dac502259ad0.png

b.采用tcl進行更改或者圖形界面更改

直接在tcl的path里輸入命令后,xdc就會被自動更改。我們可以打開綜合設計里的Schematic里去查看代碼所生成的電路情況,包括各個走線的情況,可以找到對應生成的hub和如下圖的ila_0。

94b29e1c-a005-11ed-bfe3-dac502259ad0.png

可以看到u_ila_0中有引出的探頭,與所測的信號相連接。

94cb5330-a005-11ed-bfe3-dac502259ad0.png

94ec2ca4-a005-11ed-bfe3-dac502259ad0.png

把圖縮小,可以看到整體的情況,標藍色的線就是ila_0和hub的clk共同連接到模塊gen_clk所引出的CLK_OUT2上,同時可以看出hub的輸入與輸出都是緊緊與ila_0相連接的,在我們分析debug哪些信號的的時候,可以觀察Schematic,判斷各個總線所連接的情況,往往比讀代碼更要直觀。

9512947a-a005-11ed-bfe3-dac502259ad0.png

如上圖所示,我們還可以打開vivado頁面的Debug,里面會有生成好的ila和hub,包括探頭所連接的信號,還有他們的時鐘域。這里還應該注意到有一個Unassigned Debug Nets,這個就是你有在代碼里標注mark debug信號,但在最終選擇debug信號列表里刪除了,它可能是DDR的驅動信號,或者是你不需要看的信號。倒不是很重要,就是可以注意一下,所以說有很多地方都可以檢測你的ila生成的是否正確。每次更改debug的時候都記得要保存,同時還應該檢查xdc是否刪除干凈并生成了新的ila。

在抓信號的的時候我曾經出現過這種狀況,后來發現是xdc里有未刪除干凈的ila_1,這些問題都是需要注意的。

到這就完成了mark debug的工作,然后直接布局布線,并生成比特流,如果沒有問題那就能正常的生成比特流了。

3、生成比特流文件并下載抓取信號

95222d68-a005-11ed-bfe3-dac502259ad0.png

953bc110-a005-11ed-bfe3-dac502259ad0.png

完成比特流生成后,點擊Open Hardware Manager后,再點擊Auto Connect之后右鍵點擊Program Device.第一行是我們比特流生成的文件,第二行則是我們邏輯分析儀的探頭文件,也就是ltx文件。

954eaa46-a005-11ed-bfe3-dac502259ad0.png

95695e5e-a005-11ed-bfe3-dac502259ad0.png

9578c4c0-a005-11ed-bfe3-dac502259ad0.png

9586992e-a005-11ed-bfe3-dac502259ad0.png

959cff34-a005-11ed-bfe3-dac502259ad0.png

95c0f9f2-a005-11ed-bfe3-dac502259ad0.png

如上圖所示,要在Waveform中添加相應你想看到的信號,才會在ila窗口出現波形,同時要在右下角添加觸發信號,例如ctl,或者是mac里的dval(這些算是觸發信號,抓的時候要一同帶上,是用來指示當前數據有效的信號)我剛開始沒有在waveform的頁面添加想看的信號,只在右下角添加了觸發信號ctl,然后怎么樣也看不到波形,以為自己哪里出了問題,后來才發現沒有添加想看的信號。

95e3cc70-a005-11ed-bfe3-dac502259ad0.jpg

這里很重要的一點是在選號觸發條件之后(三個ctl都是等于1的時候觸發),一定要記得更改觸發條件,一開始我選擇的是AND(即當三個同時為1的時候才滿足觸發條件),導致我的信號都是0

如圖所示,我所添加的信號都為0,就是因為觸發條件沒選對。后來我將AND改為OR,只要他們三個有一個為1,那么就滿足了觸發條件,之后點擊run進行觸發:

95f17ab4-a005-11ed-bfe3-dac502259ad0.png

如圖所示,當client的信號ctl拉高的時候,rgmii_rxd開始接收到4位二進制的有效數據,之后從CCD模塊的rxd_o里接收到了8位二進制的有效數據。

9605b056-a005-11ed-bfe3-dac502259ad0.png

如圖5變成了55,f變成了ff,同時ff前面還帶著一個d5,f前帶著一個d,那么d5就算是前導碼,然后是目的地址,源地址,那么半字節就是d。總之我們得到我們最終想要的波形,就算是成功了。當然我們注意到lower和upper的信號都是0。

962edfe4-a005-11ed-bfe3-dac502259ad0.jpg

應該是Zedboard板子的網口只插上了1口,可能client剛好對應在1口上,所以不是信號傳輸有什么問題,是網口沒接上。

當然還應該可以添加更多的信號進行debug,還需要不斷地去嘗試,不過最主要的信號還是需要找出來debug的,這也需要對工程的代碼有一定的了解,借助Schematic網圖進行不斷地分析。

9644fd1a-a005-11ed-bfe3-dac502259ad0.jpg

總結

這里我還想說的就是,有一段時間我一直出現這種狀況,無論是改變debug信號,還是更改他們的時鐘域,最終Program device后都會出現沒有debug cores的情況,感覺很迷,最后我重新將這個ISE工程又導入一個新的文件,重新操作后就解決了,可能有時候一直弄不出來的話,可以考慮重新建工程,或者重新將工程導入。

再總結一下這次調試所遇到的一些問題

1、ere are no debugs core.

2、布線出現問題

3、A clock has stopped. Uable to arm ILA core

4. The debug hub core was notdetected.

5. Device is programmed with adesign that has no supported debug core(s) in it.

這些大部分還是時鐘域的問題,時鐘域導致了debug失敗,所以在選擇時鐘域方面,我還要多加嘗試。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 信號
    +關注

    關注

    11

    文章

    2779

    瀏覽量

    76626
  • 調試
    +關注

    關注

    7

    文章

    572

    瀏覽量

    33897
  • ISE
    ISE
    +關注

    關注

    1

    文章

    100

    瀏覽量

    36477
  • Vivado
    +關注

    關注

    19

    文章

    808

    瀏覽量

    66322
  • UCF
    UCF
    +關注

    關注

    0

    文章

    9

    瀏覽量

    9610

原文標題:ISE工程升級到Vivado及板級信號調試

文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術江湖】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    STM32CubeMX版本升級由6.2.1升級到6.3.0后原工程重新編譯code文件變大什么原因?

    STM32CubeMX版本升級由6.2.1升級到6.3.0后原工程重新編譯code文件變大什么原因
    發表于 04-02 07:31

    從Z-Stack版本1.3升級到1.4(中)

    從Z-Stack版本1.3升級到1.4(中)歡迎研究ZigBee的朋友和我交流。。。
    發表于 08-12 21:14

    是否可以從Xilinx ISE 10.1升級到Xilinx ISE 11.1而無需付費?

    我們目前在計算機上安裝了Xilinx ISE 10.1,但我們需要CORDIC v4.0,它是新型Xilinx ISE 11.1的一部分。是否可以從Xilinx ISE 10.1升級到
    發表于 11-16 11:48

    是否可以將ISE升級到版本12.4并保留相同的許可證?

    你好,我有一個Virtex6 Ml605主板,我一直在使用12.1版的ISE設計套裝。我想知道是否可以將ISE升級到版本12.4并保留相同的許可證?謝謝以上來自于谷歌翻譯以下為原文hello, i
    發表于 11-26 15:01

    可以重新安裝Vivado/ISE 14.6然后使用Win10重新訪問Virtex-5設計嗎?

    我有兩張標有“Vivado Design Suite 2013.2”和“ISE Design Suite 14.6”的光盤,我之前在Virtex-5設計上使用過Win7。最近將操作系統升級到
    發表于 12-29 13:53

    升級到Vivado 2017.4.1沒有安裝新設備

    大家好,今天我將Vivado升級到2017年的Update 1,以便訪問XC7S25,XC7A12和XC7A25設備。據我所知,更新成功完成; 2017.4是我唯一的Vivado版本,安裝程序在重新
    發表于 12-29 11:14

    labview怎么從2015升級到2017

    labview怎么從2015升級到2017?
    發表于 03-15 16:31

    玩轉Zynq連載5——基于Vivado的在線板調試概述

    階段:將在線調試的IP核集成設計工程中,完成編譯并生成調試的下載配置文件。●分析階段:使用
    發表于 05-24 15:16

    請問SP601可以升級到LX45嗎?

    SP601可以升級到LX45嗎?常見問題解答不明確:6.我可以升級到更大或更快的設備嗎?答:是的,您可以但這樣做會使Xilinx保修失效,并且不會提供對電路的支持。通常,CS324
    發表于 08-22 10:27

    VivadoISE的開發流程以及性能差異

    。System Generator 的用戶也會注意 MATLAB/Simulink 在版本 2012b 中所作的接口升級(這和 ISE Viv
    發表于 01-08 17:07

    MounRiver升級到1.82,固件升級后提示錯誤怎么解決?

    如題。芯片是CH582. 一直用得好好的。今天MounRiver升級到1.82,問我要不要升級WCH-link固件。我隨便說要(嚴重錯誤!!)。固件升級調試時出現如下提示:馬上要交功
    發表于 09-29 07:16

    MounRiver在下載配置里要我升級到2.7版本,在調試時要我升級到2.3版本?

    當前版本為2.3的時候,進入下載配置:當前版本為2.3的時候,進行調試:在下載配置里,將版本升級到2.7以后,進行調試:從2.7恢復2.3以后,不能
    發表于 10-08 06:46

    iphone4升級5.1.1教程_iphone4如何升級到ios5

    iphone4如何升級到ios5?iphone4升級到ios5.1.1教程,iphone4怎么升級到ios5,小編在這里為大家介紹了iphone4升級到ios5的方法
    發表于 09-18 09:48 ?5w次閱讀
    iphone4<b class='flag-5'>升級</b>5.1.1教程_iphone4如何<b class='flag-5'>升級到</b>ios5

    如何升級Vivado工程腳本

    Vivado可以導出腳本,保存創建工程的相關命令和配置,并可以在需要的時候使用腳本重建Vivado工程。腳本通常只有KB級別大小,遠遠小于工程
    發表于 08-02 10:10 ?1798次閱讀

    Vivado工程升級信號調試方案

    本次操作包括:工程的版本遷移,測試時信號的抓取。
    的頭像 發表于 02-09 09:36 ?2303次閱讀