您好,登錄后才能下訂單哦!
FPGA設計中如何正確使用 in_system_ibert ,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
在ISI定制中,需要選擇所使用的串行收發器的位置,如下:
對應的IP端口處也會出現相應的端口,例如上圖選擇了2個Quad,也就是8個通道的串行收發器,那么對應的drp接口就有8個。
但這個對應關系讓人很迷惑,具體的通道和drp端口信號是如何對應的呢?
如果有著嚴格的對應關系,那么數據手冊或者其他形式有必要給出必要的說明,而不是讓用戶去猜測!人們常常犯著經驗主義的錯誤,認為既然讓你選擇了Quad和通道,那么就應該對應連接?我在拿不準的時候也聽過如此的論調,并信以為然,這花費了我很多的時間去尋找對應關系,并最終一無所獲,當你使用了大量的通道,例如幾十個,那么這種對應關系的尋找會更加消耗你的時間,特別是當項目中需要被測眼圖的transceiver一方,有著混亂的通道使用!不管是什么原因,為了原理圖布線方面也好,或者是任性使用,例如:如下定義的rx:
input [31:0] rx;
每4位使用一個Quad,也就是4個通道,對應關系如下:rx[0] 對應通道x1y39 rx[1] 對應通道x1y38 rx[2] 對應通道x1y37 rx[3] 對應通道x1y36
rx[4] 對應通道x1y35 rx[5] 對應通道x1y34 rx[6] 對應通道x1y33 rx[7] 對應通道x1y32
看起來已經有點意思了,這種還是倒過來約束的,還行,能接受。如果是下面這種對應關系:rx[0] 對應通道x1y36 rx[1] 對應通道x1y37 rx[2] 對應通道x1y38 rx[3] 對應通道x1y39
rx[4] 對應通道x1y32 rx[5] 對應通道x1y33 rx[6] 對應通道x1y34 rx[7] 對應通道x1y35
這就必須譴責了。如果有幾十個通道,你說怎么玩吧,如果in_system_ibert又需要嚴格的通道對應關系,那么信號的連接將變得十分不直觀,讓接盤開發者面臨青筋暴裂的危險。
還是去看數據手冊吧,那么一個不起眼的IP核,拿不準的時候也需要閱讀數據手冊!如果有現場支持工程師,這種問題也不要問了,因為他很可能自家的數據手冊都沒有閱讀,就按照慣性思維告訴你,如果不需要嚴格通道對應,人家IP核讓你選擇干嘛,然后你深信不疑,胡亂猜測,呃呃呃,gt1對應x1y39,或者gt1對應x1y0,白白浪費時間,項目做到最后,還對自己隱隱懷疑。或者最后結果沒有問題,還以為,自己的運氣是好的,選擇是對的,并輸出文檔,告訴隊友,就得這樣干,我試過!!!
來看數據手冊:The ISI core has no transceiver location constraints, nor are any attributes updated for selected transceivers. The selected transceiver information is only used to create an ISI template and group/display the selected transceiver in the Serial IO analyzer after downloading the bit file.
翻譯一下:
ISI內核沒有收發器位置約束,也沒有為所選收發器更新任何屬性。所選的收發器信息僅用于創建ISI模板,并在下載bit文件后在串行IO分析器中分組/顯示所選的收發器。
很明顯了,沒有位置約束,所選擇的收發器信息僅僅用于創建例化模板。告訴你有多少個gt,你接進去就完事了。
總結:最接近真理的地方在數據手冊上,我們(除了制定者,設計者)外都是閱讀者,各色各樣的閱讀者容易忽略部分信息,或者根據慣性思維來判斷,因此,帶著問題去數據手冊尋找答案。
由于這個IP沒有提供例子程序,所以要正確無誤地使用這個IP,還有一定的疑惑點?這個時候誰也別問,因為你可能問的人也只是聽說過,或者見過,真正手把手體驗過,實踐過的人,也許很難精確遇到。如果你問了,他們會告訴你,把drp接口連接上去就好了,然后你看看你自己的應用場景,已經定制好的aurora,或者jesd,srio等等,我了個去,怎么沒有drp端口,如何和in-system-ibert的drp接口連接? 當你找不到drp接口的時候,他們也許又會告訴你,在ip核內部有,引出來?你若懷疑,甚至還怪你資歷不夠的意思?
我來告訴你,IP核是不要輕易改動的,或者說不要改動,如果你找不到drp接口,可以嘗試看看數據手冊,或者試試去掉某些選項,或者添加某些選項,但我建議還是看看收據手冊,數據手冊會有那個接口的描述,你會得到答案。
這里就已經可能解決很多疑惑了,但是還不夠,沒有個示例來參考,又沒有例子工程,我會不放心我連接的對不對,或者說對這個IP核使用的對不對,因為我一旦例化進去,并生成bit流,工程大了會消耗大量的時間,怎么辦呢?
為了提高成功率還是要找到一個這個ip核使用的例子程序來研究研究,這里建議可以使用transceiver IP,內部有例化in-system-ibert的選項,你勾選之后隨便生成一個例子程序,就可以看到這個ip核到底怎么使用的,照葫蘆畫瓢,是最直接的方式。
例如:
生成例子程序:
對著程序看看如何無誤地使用in-system-ibert,并且如何配合VIO IP核來使用,都可以清晰地看到解決辦法!
這些都是需要自己去發現的,而不是去問xxx。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。