vivado Mark debug 方式添加測試端口

     在線調試,可以用ila,也可以用debug。平時我都用的ila或者chipscope。但是在block開發方式下,module裏面不能含有IP核,否則add module失敗。當然也可以把module封裝成IP核,然後在block中添加。自己開發的時候,又懶得把所有模塊封裝成IP核,耗時,麻煩。這樣想要添加測試信號的時候,就需要用到debug。

     在使用chipscope的時候,有的信號可能你在端口列表中根本找不到,添加(*keep= “true”*)也不行,這裏就可以凸顯mark_debug 的優勢。用mark_debug 就能觀測到改信號。

1 、 在代碼中添加(* mark_debug="true" *) 語句

2、在block design 時,在信號上右鍵  ------  debug 

     在使用debug 的時候,有一個問題很頭疼。比如我這次添加了3個信號,等會想去掉一個,或者添加一個。首先,綜合然後才能打開添加debug的界面;其次,每次新打開debug,代碼中所有的debug都會有,而不是上次添加多的,還需要自己一個個找,如果代碼中debug的信號特別多,添加/刪除 信號很麻煩。

    其實,第一次採用debug界面生成,後面直接修改XDC文件就可以了,下面是我嘗試添加了兩個信號,已經生成的bit文件。

上圖,紅色方框圈起來的是後來自己新添加的信號。後期添加,就按照這樣,每組4條指令添加即可。第一組是位寬爲1 的信號,第二組是位寬爲8的信號。

上圖中各標號說明:

1:probe 15 ,緊接上面的編號往下續的

2:probe 15 ,緊接上面的編號往下續的

3:標識該測試信號的位寬爲1

4:probe 15 ,緊接上面的編號往下續的

5:測試的信號。注意和後面“7”對比,不僅僅是位寬拼接的不同,這裏比“7”中也多了一個ssd_rd_judge_0_XXX。o_ssd_m_tready和其他module相連,這裏在使用o_ssd_m_tready這個信號 的時候,要標識是哪個模塊的數據。所以這裏使用了

ssd_rd_judge_0_o_ssd_m_tready (注意ssd_rd_judge_0 是模塊block界面上面的名字)

6:標識該測試信號的位寬爲8

7:測試的信號。和“5”的不同不僅僅是位寬拼接,在信號說明的時候,沒有RAID_CTRL_0.那是因爲,這裏的信號沒有和其他模塊相連。 多位拼接按照固定格式來就可以了。

8: 額外說明一點:多數據拼接的時候不要有換行,有的時候換行會報錯。然後把換行去掉,所有的都寫爲一行,就沒有錯誤了。自動生成的XDC文件中也有換行的,不知道爲什麼自己添加的就不行。

上面的描述,我都是在block中,右鍵debug看的信號。代碼內部的在這裏沒用到。代碼內部的,應該是design_1_i/module_name/signal   這類格式。信號索引按照module一層層往下找。可以參考自動生成的xdc文件格式來續。

 

 

 

 

 

 

 

 

 

 

     

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章