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

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

3天內不再提示

如何用XSCT通過APB接口來讀GT的寄存器

Hack電子 ? 來源:Hack電子 ? 2023-12-08 10:32 ? 次閱讀

在debug GT的時候,有時候需要讀出一些寄存器來分析。這篇文章介紹一種通過AXI4 Lite或者APB3接口從XSCT來讀Versla GT的寄存器的方法。

APB3是一個32-bit數據總線地址,但是AXI4-Lite是一個8-bit Byte總線。因此如果用AXI-lite,需要將如下的寄存器地址*4。

Example的步驟如下:

Create block design + Add bridge IP。

選擇10G base-KR作為模板,選擇AXI4 Lite選項生成GTY example。

IPI里Block design將CIPS的FPD和AXI Lite接口相連。

增加一個AXI smart connect從CIPS到APB接口。

Create wrapper,Block design如下框圖。

Note:如果是APB3,是4 Bytes地址,更適合通過VIO或者是Fabric 接口來訪問。

wKgZomVygHGAYYsXAAMHglQEZhA875.jpg

從Address editor可以看到地址是0xA4000000,比如對地址為0xC3C來說,對應AXI地址為0xA40000000 + (0xC3C *4) = 0xA40030F0.

wKgZomVygHGAYkKpAAExUlJzXbE728.jpg

Crate wrapper,實現完成,就可以export hardware

wKgaomVygHGAVHE3AAITRrP1aXk586.jpg

Tools Launch Vitis IDE, 用export的hardware,創建一個hello world的application。最后download到vck190之后,就可用tcl完成讀寄存器。下面提供兩個example來做一個demo:

Example 1:讀0xA40030F0之后的比如32個寄存器

procread_reg{number}{
setoutfile[open"output1.txt"w+]
setstart0xA40030F0
puts$outfile[mrd-force$start$number]
close$outfile
}

Copy到xsct,執行完read_reg 32,就會在工程目錄下看到32個寄存器導出到output1.txt,起始地址和寄存器數可以修改.

同樣下面的example 2,是用來monitor KH,KL和GC。

Example 2: monitor KH, KL, and GC for Channel 0

procmonitor{}{
setoutfile[open"output2.txt"w+]
#read0x0CBA*4=0x32E8;0x0C3C*4=40x30F0
#set0x0CBA[7]=1'b1
#0x0CBA[6:4]=3'b000
#0x0CBA[3:1]=3'b000
#0x0CBA[0]=1'b1
#0x0C3C[28:27]=2'b00
puts$outfile"###########read0x0CBAand0x0C3C###########"
puts$outfile[mrd0xA40032E8]
puts$outfile[mrd0xA40030F0]
puts$outfile"###########write0x0CBAand0x0C3C###########"
mwr-sizeb0xA40032E8{0x81}1
mwr0xA40030F0[expr[mrd-value0xA40030F0]&0xE7FFFFFF]
puts$outfile"###########read0x0CBAand0x0C3C###########"
puts$outfile[mrd0xA40032E8]
puts$outfile[mrd0xA40030F0]
#read0x08A4[7:0]*4=0x2290
#read0x08A5[23:16]*4=0x2294
#read0x08A6[23:16]*4=0x2298
puts$outfile"###########readKH,KL,GC###########"
puts$outfile[mrd-sizeb0xA40022901]
puts$outfile[mrd-sizeb0xA40022961]
puts$outfile[mrd-sizeb0xA400229A1]
close$outfile
}


審核編輯:湯梓紅

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

    關注

    30

    文章

    5167

    瀏覽量

    118229
  • 接口
    +關注

    關注

    33

    文章

    7890

    瀏覽量

    149095
  • 總線
    +關注

    關注

    10

    文章

    2735

    瀏覽量

    87389
  • AXI
    AXI
    +關注

    關注

    1

    文章

    126

    瀏覽量

    16350
收藏 人收藏

    評論

    相關推薦

    寄存器是什么?怎么操作寄存器點亮LED燈?

    寄存器,是集成電路中非常重要的一種存儲單元,通常由觸發器組成。在集成電路設計中,寄存器可分為電路內部使用的寄存器和充當內外部接口寄存器這兩
    的頭像 發表于 07-21 16:59 ?3193次閱讀
    <b class='flag-5'>寄存器</b>是什么?怎么操作<b class='flag-5'>寄存器</b>點亮LED燈?

    ade7878 spi接口默認寄存器數值不出來怎么解決?

    工作模式已經選為PsM0 Avdd和Agnd都有電 晶振也起振了 但是用spi接口不出內部寄存器默認值只顯示0 已經將ss/has從高電平切換到低電平三次了 并且也完成了后邊資料上介紹的關于spi
    發表于 12-27 08:00

    通過SPI接口操作LTC6813,寫入寄存器一直無效怎么解決?

    通過SPI接口操作LTC6813,寄存器沒問題,但是寫入寄存器一直無效。比如我單片機上電時初始化ConfigA配置
    發表于 01-04 08:11

    dm8168寄存器,有的寄存器失???

    ?使用dm8168,TMS320dm8168CCYG5AZCSR9786的片子,上電連接仿真,連上ARM,寄存器,只有0xC000,這么長的段可以讀數,為啥其他的讀數失??? load
    發表于 05-28 02:57

    請問AD2S1205通過角度寄存器活動故障信息有可能錯過LOS故障嗎?

    AD2S1205的datasheet講到LOS的故障是通過sample信號的上升沿復位的,那是不是通過角度寄存器(DB1表示LOT和DB2表示DOS)的方式
    發表于 08-15 06:23

    ade7878spi接口默認寄存器數值不出來

    工作模式已經選為PsM0Avdd和Agnd都有電晶振也起振了但是用spi接口不出內部寄存器默認值只顯示0已經將ss/has從高電平切換到低電平三次了并且也完成了后邊資料上介紹的關于spi
    發表于 10-26 09:22

    使用FPGA通過SPI總線控制AD9266寄存器無法改變寄存器

    使用FPGA通過SPI總線控制AD9266寄存器,可以回寄存器默認值,但是無法改變寄存器值。不知道有沒有人遇到過同樣的問題。程序是自己寫的
    發表于 01-16 11:52

    如何通過配置相應的寄存器驅動LED燈?

    如何通過配置相應的寄存器驅動LED燈?如何通過查找相應的寄存器使能GPIOB?
    發表于 06-15 07:20

    何用匯編操作寄存器?

    何用匯編操作寄存器?
    發表于 10-26 07:24

    何用寄存器的方法操作RGB燈

    硬件:首先在硬件中我們看到了RGB燈的硬件電路圖現在我們用寄存器的方法操作這幾個燈:1,先定義硬件的宏#defineGPIOB_CRL0x40010C00#define
    發表于 12-27 06:59

    APB接口協議的讀寫傳輸及工作流程簡析

    UART、I2C等。一般SoC都是通過它們的寄存器進行訪問。APB每次傳輸至少需要兩個周期,所有信號的轉換僅在時鐘的上升沿發生以便能夠輕松地將APB外設集成到其他設計中。
    發表于 04-07 10:18

    調試AD7124-8驅動時,對各寄存器配置之后再次寄存器的值,多個寄存器的值都為fffffffd是為什么?

    在調試AD7124-8驅動時,對各寄存器配置之后再次寄存器的值,多個寄存器的值都為fffffffd,這是為什么? 看參考程序里面對各寄存器
    發表于 12-07 08:29

    使用FPGA通過SPI總線控制AD9266寄存器,可以回寄存器默認值,但是無法改變寄存器值怎么解決?

    使用FPGA通過SPI總線控制AD9266寄存器,可以回寄存器默認值,但是無法改變寄存器值。 不知道有沒有人遇到過同樣的問題。 程序是
    發表于 12-13 08:29

    ARM I2C 總線接口寄存器設置

    ARM I2C 總線接口寄存器設置 控制ARM 12C總線接口需要配置總線控制寄存器(rIICCON)、總線狀態寄存器(rIICSTA
    發表于 03-14 18:00 ?1662次閱讀

    STM32通過寄存器實現IO口取反

    通過按位異或,寫ODR寄存器,如:GPIOB-&gt;ODR ^= GPIO_Pin_5; //對PB5 IO口取反在官方給的固件庫中,有#define GPIO_Pin_5
    發表于 12-24 19:35 ?4次下載
    STM32<b class='flag-5'>通過</b><b class='flag-5'>寄存器</b>實現IO口取反
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>