取消
显示结果 
搜索替代 
您的意思是: 
Highlighted
978 次查看
注册日期: ‎01-08-2020

用DMA讀取DDR

大家好

使用 : ZYNQ 7020

我的目的是要  讓我設計的IP讀取 80萬筆 25bit 資料 運算

資料是由圖像轉成 binary 數據 存成 text檔  數據如附件

參考了其他的做法

用PS端把數值寫進DDR,再用DMA把值讀取出來

 

block design.png

看了範例程式

xaxidma_example_simple_intr.c 還是沒理解

我想先把數據讀出來觀察

應該如何改寫程式?

謝謝

 

 

 

 

 

0 项奖励
19 条回复19
Highlighted
Xilinx Employee
Xilinx Employee
967 次查看
注册日期: ‎06-19-2019

回复: 用DMA讀取DDR

你可以先用axis fifo实现内存到fifo之间的数据搬运。然后把axis fifo替换成你自己的IP就行。

代码上两者没有什么区别。

------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------
0 项奖励
Highlighted
866 次查看
注册日期: ‎01-08-2020

回复: 用DMA讀取DDR

我改用 xsct 外部數據導入DDR

dow -data {D:\data2.bin} 0x10000000

Successfully downloaded D:/data2.bin  

成功導入後 要在哪裡看位址和數據?

謝謝

0 项奖励
Highlighted
Moderator
Moderator
813 次查看
注册日期: ‎07-01-2019

回复: 用DMA讀取DDR

debug界面中找一下memory,输入你想观察的地址空间就能看到

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
0 项奖励
Highlighted
806 次查看
注册日期: ‎01-08-2020

回复: 用DMA讀取DDR

請問是這個介面嗎 沒有地方輸入
我使用的是 SDK 2018.2

 註解 2020-05-12 171328.png註解 2020-05-12 171328.png

0 项奖励
Highlighted
Moderator
Moderator
785 次查看
注册日期: ‎07-01-2019

回复: 用DMA讀取DDR

尝试一下关掉重开,在Window->Show View中可以找到

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
0 项奖励
Highlighted
760 次查看
注册日期: ‎01-08-2020

回复: 用DMA讀取DDR

註解 2020-05-12 200614.png

已經重啟了,還是其他設定問題  或是有其他方法看

0 项奖励
Highlighted
Moderator
Moderator
753 次查看
注册日期: ‎07-01-2019

回复: 用DMA讀取DDR

是在debug条件下打开的吗?你发的图上加号是灰的,debug下这个符号是绿的,可以点击

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
0 项奖励
Highlighted
518 次查看
注册日期: ‎01-08-2020

回复: 用DMA讀取DDR

導入數據後像圖中這樣,有什麼辦法一次25bits的把它讀取出來嗎?

謝謝

ddrdata.png

0 项奖励
Highlighted
Moderator
Moderator
511 次查看
注册日期: ‎07-01-2019

回复: 用DMA讀取DDR

即使是DMA的非对齐传输,也要以一个字节为最小单位,是没法按25bit读出的,你可以用一些程序完成32bit到25bit的转换

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
0 项奖励
Highlighted
502 次查看
注册日期: ‎01-08-2020

回复: 用DMA讀取DDR

轉換部分有什麼可以參考的程序嗎?

0 项奖励
Highlighted
Moderator
Moderator
405 次查看
注册日期: ‎07-01-2019

回复: 用DMA讀取DDR

不知道你需要连续存储25bit的需求是什么?完全可以padding成32bit,高7bit数据可丢弃,这样从AXI总线做数据读写很方便。

如果一定要32bit转25bit的话,需要你自己设计RTL模块实现此功能

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
0 项奖励
Highlighted
369 次查看
注册日期: ‎01-08-2020

回复: 用DMA讀取DDR

我轉成32bit了 但沒辦法用 dow -data  寫進去

 Context does not support memory write. Unsupported command

我的block design接法 和上面那張圖一樣

0 项奖励
Highlighted
Moderator
Moderator
365 次查看
注册日期: ‎07-01-2019

回复: 用DMA讀取DDR

XSCT中输入targets看下标记*号的是哪个设备?是不是指定到PL侧了,可以用tar 2来指定CPU,进而使用dow -data指令

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
0 项奖励
Highlighted
292 次查看
注册日期: ‎01-08-2020

回复: 用DMA讀取DDR

照你的方式成功輸入了
後續將DDR數值搬出來

想請問xaxidma_example_simple_intr中

Status = XAxiDma_SimpleTransfer(&AxiDma,(UINTPTR) TxBufferPtr,
MAX_PKT_LEN, XAXIDMA_DMA_TO_DEVICE); 是指 DMA到 device嗎?還是DDR到device

在address editor  ,process system中的 axi_dma   0x4040_0000 是指哪裡?

 

0 项奖励
Highlighted
Moderator
Moderator
268 次查看
注册日期: ‎07-01-2019

回复: 用DMA讀取DDR

1. 从DDR读数据转换成流数据发送给下游设备,也就是DMA到Device

2. 0x4040_0000是用户分配的AXI DMA基地址,CPU通过访问此地址配置AXI DMA的寄存器。

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
0 项奖励
Highlighted
250 次查看
注册日期: ‎01-08-2020

回复: 用DMA讀取DDR

所以範例程式中AXI DMA的寄存器已經配置好了嗎?
還是需要另外寫
0 项奖励
Highlighted
Moderator
Moderator
248 次查看
注册日期: ‎07-01-2019

回复: 用DMA讀取DDR

system.mss中有参考例程,你可以参考一下里面函数的写法,用户只需要根据自己需求修改传输长度、源地址、目的地址等,初始化配置代码里也有的 。

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
0 项奖励
Highlighted
196 次查看
注册日期: ‎01-08-2020

回复: 用DMA讀取DDR

我是跑xaxidma_example_simple_intr
修改传输长度 32
dow -data 起始地址 0x01100000
目的地址沒改
給value 還有Xil_DCacheFlushRange((UINTPTR)TxBufferPtr, MAX_PKT_LEN); 都註解掉
但ILA 沒有讀到值 No stream
0 项奖励
Highlighted
61 次查看
注册日期: ‎01-08-2020

回复: 用DMA讀取DDR

圖片右邊為 我要輸入的32bit值  左邊是輸入進DDR

想請問 位址 01100020 開始 30303030 當中的3,還有後面的 0A0D 要怎麼去除

我希望回傳TDATA的值就是第1筆第2筆依序下去 是要轉成 .hex嗎?

還想問 A D 跟3  有代表甚麼意思嗎 

AD.png

0 项奖励