0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何用XSCT通過(guò)APB接口來(lái)讀GT的寄存器

Hack電子 ? 來(lái)源:Hack電子 ? 2023-12-08 10:32 ? 次閱讀

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

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

Example的步驟如下:

Create block design + Add bridge IP。

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

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

增加一個(gè)AXI smart connect從CIPS到APB接口。

Create wrapper,Block design如下框圖。

Note:如果是APB3,是4 Bytes地址,更適合通過(guò)VIO或者是Fabric 接口來(lái)訪問(wèn)。

wKgZomVygHGAYYsXAAMHglQEZhA875.jpg

從Address editor可以看到地址是0xA4000000,比如對(duì)地址為0xC3C來(lái)說(shuō),對(duì)應(yīng)AXI地址為0xA40000000 + (0xC3C *4) = 0xA40030F0.

wKgZomVygHGAYkKpAAExUlJzXbE728.jpg

Crate wrapper,實(shí)現(xiàn)完成,就可以export hardware

wKgaomVygHGAVHE3AAITRrP1aXk586.jpg

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

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

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

Copy到xsct,執(zhí)行完read_reg 32,就會(huì)在工程目錄下看到32個(gè)寄存器導(dǎo)出到output1.txt,起始地址和寄存器數(shù)可以修改.

同樣下面的example 2,是用來(lái)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
}


審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5268

    瀏覽量

    119640
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8353

    瀏覽量

    150508
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2848

    瀏覽量

    87839
  • AXI
    AXI
    +關(guān)注

    關(guān)注

    1

    文章

    127

    瀏覽量

    16556
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    寄存器是什么?怎么操作寄存器點(diǎn)亮LED燈?

    寄存器,是集成電路中非常重要的一種存儲(chǔ)單元,通常由觸發(fā)組成。在集成電路設(shè)計(jì)中,寄存器可分為電路內(nèi)部使用的寄存器和充當(dāng)內(nèi)外部接口
    的頭像 發(fā)表于 07-21 16:59 ?3724次閱讀
    <b class='flag-5'>寄存器</b>是什么?怎么操作<b class='flag-5'>寄存器</b>點(diǎn)亮LED燈?

    帶像素掩摸寄存器的像素處理單元的工作和結(jié)構(gòu)

    帶像素掩摸寄存器的像素處理單元的工作和結(jié)構(gòu):
    發(fā)表于 06-11 13:17 ?8次下載
    帶像素<b class='flag-5'>讀</b>掩摸<b class='flag-5'>寄存器</b>的像素處理單元的工作和結(jié)構(gòu)

    寄存器內(nèi)容的源代碼

    寄存器內(nèi)容的源代碼 我的環(huán)境是WINXP+MASM5.0通過(guò)編譯生成可執(zhí)行文件,雙擊,提示寫入文件成功,按任意鍵推出。在程序的同一目錄下的TEMP.TXT中已經(jīng)寫入了:
    發(fā)表于 02-09 14:40 ?6次下載

    寄存器尋址方式

    寄存器尋址方式   寄存器尋址是對(duì)由指令選定的工作寄存器(R0--R7)進(jìn)行/寫,由指令操作碼字節(jié)的最低3位指明所尋址的工作寄存器
    發(fā)表于 03-14 15:29 ?2723次閱讀

    寄存器,寄存器是什么意思

    寄存器,寄存器是什么意思 寄存器定義  寄存器是中央處理內(nèi)的組成部分。寄存器是有限存貯容量
    發(fā)表于 03-08 14:26 ?2.2w次閱讀

    數(shù)據(jù)寄存器,數(shù)據(jù)寄存器是什么意思

    數(shù)據(jù)寄存器,數(shù)據(jù)寄存器是什么意思 數(shù)據(jù)寄存器數(shù)據(jù)寄存器包括累加AX、基址寄存器BX、計(jì)數(shù)
    發(fā)表于 03-08 14:38 ?1.2w次閱讀

    寄存器與移位寄存器

    寄存器與移位寄存器:介紹寄存器原理和移位寄存器的原理及實(shí)現(xiàn)。
    發(fā)表于 05-20 11:47 ?0次下載

    如何使用寄存器級(jí)&寫控制基于PXI平臺(tái)的FPGA

    如何使用寄存器級(jí)&寫控制基于PXI平臺(tái)的FPGA
    發(fā)表于 10-16 15:20 ?14次下載
    如何使用<b class='flag-5'>寄存器</b>級(jí)<b class='flag-5'>讀</b>&寫控制基于PXI平臺(tái)的FPGA

    如何使用寄存器級(jí)&寫控制基于PXI平臺(tái)的FPGA

    如何使用寄存器級(jí)&寫控制基于PXI平臺(tái)的FPGA
    發(fā)表于 10-19 08:48 ?12次下載

    寄存器變量

    C語(yǔ)言中使用關(guān)鍵字register來(lái)聲明局部變量為寄存器變量。寄存器變量的值會(huì)被存放在CPU的寄存器中,每當(dāng)需要使用它們時(shí),CPU就可以直接使用,而無(wú)須再
    發(fā)表于 06-03 10:13 ?2295次閱讀

    移位寄存器的原理

    移位寄存器按照不同的分類方法可以分為不同的類型。 如果按照移位寄存器的移位方向來(lái)進(jìn)行分類, 可以分為左移移位寄存器、移位寄存器和雙向移位寄存器
    發(fā)表于 07-15 09:38 ?7.4w次閱讀
    移位<b class='flag-5'>寄存器</b>的原理

    UART寄存器介紹與中斷操作詳解

    簡(jiǎn)介 UART核提供了一個(gè)Avalon存儲(chǔ)映射(Avalon-MM)的接口,這個(gè)接口使得Avalon-MM的主要周邊設(shè)備(例如Nios II處理
    的頭像 發(fā)表于 08-25 16:46 ?1.6w次閱讀
    UART<b class='flag-5'>寄存器</b>介紹與中斷操作詳解

    ARM通用寄存器及狀態(tài)寄存器詳解

    筆者來(lái)聊聊ARM通用寄存器以及狀態(tài)寄存器的認(rèn)識(shí)與理解。
    的頭像 發(fā)表于 01-06 14:58 ?6676次閱讀

    CPSR寄存器和APSR寄存器的組成

    程序狀態(tài)寄存器的作用就是反映處理的狀態(tài)信息。在程序運(yùn)行期間我們可以通過(guò)查看程序狀態(tài)寄存器的狀態(tài)位來(lái)進(jìn)行程序的分支跳轉(zhuǎn)處理,或者我們可以設(shè)置
    的頭像 發(fā)表于 10-20 11:38 ?4030次閱讀
    CPSR<b class='flag-5'>寄存器</b>和APSR<b class='flag-5'>寄存器</b>的組成

    接口的控制與狀態(tài)寄存器什么作用

    的行為并獲取硬件的狀態(tài)信息。 接口的控制與狀態(tài)寄存器的作用 在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,硬件設(shè)備與軟件之間的交互是通過(guò)一系列的接口來(lái)實(shí)現(xiàn)的。這些
    的頭像 發(fā)表于 10-17 10:42 ?130次閱讀