xxdd 发表于 2021-1-30 20:21:32

有没有人用过microblaze,读写一次外设,要20个时钟周期时,有无办法加速?

用的microblaze mcs做测试,通过LMB IO接口访问外设,测试代码如下

仿真发现,连续读写的间隔时间为20个时钟周期,假如是100M时钟周期,那么带宽就只有5M*4=20MB带宽了
请问一下有没有什么办法进一步提高效率呢?

之前调用Xil_out32函数访问外设,速度会更慢,要40个周期才能访问一次,修改为指针后,速度直接快了一倍
还有没有什么进一步提高效率的方法,大家出出注意,非常感谢!

zxq6 发表于 2021-1-30 21:40:53

dma可不可以?

yyts 发表于 2021-1-30 22:21:38

试试用memcpy能快多少

wye11083 发表于 2021-1-30 23:03:29

指定os优化等级。

xxdd 发表于 2021-1-31 01:57:18

wye11083 发表于 2021-1-30 23:03
指定os优化等级。

谢谢大神提点,修改优化等级后,一次读写由20个时钟周期缩短到了7个时钟周期,提高了接近3倍

xxdd 发表于 2021-1-31 01:59:02

zxq6 发表于 2021-1-30 21:40
dma可不可以?

硬件dma当然是最快的,就是麻烦一点
本来也是只是传输少量数据,就不想上DMA了
页: [1]
查看完整版本: 有没有人用过microblaze,读写一次外设,要20个时钟周期时,有无办法加速?