AXI4匯流排實現PS PL的float型別資料傳輸

2021-10-22 04:48:26 字數 1851 閱讀 7097

float資料傳輸時可能有些小誤差,屬於正常現象。

#include

#include

"platform.h"

#include

"xparameters.h"

#include

"xil_printf.h"

#include

"xil_cache.h"

#include

"xtest.h"

intmain()

printf

("initialize the device\n");

int status=

xtest_cfginitialize

(&hlsconv,exampleptr);if

(status!=xst_success)

/* int status=xtest_initialize(&hlsconv, xpar_test_0_device_id);

if(status!=xst_success)

*/xil_dcacheflushrange

((u32)a,50*

sizeof

(float))

;// cache

xil_dcacheflushrange

((u32)b,50*

sizeof

(float))

;xtest_set_a

(&hlsconv,

(u32)a)

;// 關聯

xtest_set_b

(&hlsconv,

(u32)b)

;xtest_start

(&hlsconv)

;// start

while

(xtest_isdone

(&hlsconv)==0

);// done

xil_dcacheinvalidaterange

((u32)b,50*

sizeof

(float))

;for

(int i=

0;i<

50;i++

)printf

("%f\n"

,b[i]);

print

("hello world\n\r");

cleanup_platform()

;return0;

}

執行結果:有點小bug

xtest_lookupconfig和xtest_cfginitialize,前兩個資料出錯,出錯資料一直相同,暫時懶得找原因了。

用xtest_initialize,前乙個資料出錯,出錯資料不變。

深入AXI4匯流排 五 AXI4的兄弟協議

知乎使用者ljgibbs授權 本系列我想深入探尋 axi4 匯流排。不過事情總是這樣,不能我說想深入就深入。當前我對 axi匯流排的理解尚談不上深入。但我希望通過一系列文章,讓讀者能和我一起深入探尋 axi4。宣告1 部分時序圖以及部分語句來自 arm amba 官方手冊 有的時候感覺手冊寫得太好了...

AXI4的IP的輸入配置

前面一篇驗證中驗證了axi中的data reg out是輸出快取器。這裡再引入乙個slv reg2作為slv reg1的輸入輸出配置暫存器。這裡先實現乙個簡單的功能 當slv reg2為16 hffff時,slv reg1作為輸入口,否則slv reg1作為輸出口 輸入輸出相對主機而言,方便區分 1...

AXI4設計重點002 易出錯的位址非對齊讀操作

1 axi讀操作 位址不對齊 以rdata axi mst位寬為128bit為例,如果master想讀取7dw 1dw為4byte 的資料,從位址0x4開始讀取,來自master埠的axi訊號如下所示,此時為位址非對齊的讀操作。此時master想讀取位址為0x4,0x8,0xc,0x10,0x14,...