我有一个来自 Terasic 的带有 1 GB 外部 DDR3 RAM 的 DE10-Nano Cyclone V开发板,我想实现一个驱动程序,它可以管理在 ARM Cortex-A9 处理器上运行的 Linux 和 FPGA 架构之间的通信Cyclone V.
使用dma_alloc_coherent
i 分配一定数量的内存并将硬件地址写入我编程的 FPGA 模块。
然后,我继续通过 SDRAM AXI 接口将任意数字写入给定地址,但显然AWREADY和WREADY信号都不会被 SDRAM AXI-slave 断言。
我已将 SDRAM AXI 接口配置为以325 MHz运行,为256 位宽(数据长度),具有32 位寻址长度并成为AXI3 从机。SDRAM 接口配置为TrustZone-aware设备(ARM TrustZone 设置)
。
assign axm_m0_arburst = 'd0;
assign axm_m0_arcache = 'd0;
assign axm_m0_arid = 'd0;
assign axm_m0_arlen = 'd0;
assign axm_m0_arlock = 'd0;
assign axm_m0_arprot = 'd0;
assign axm_m0_arsize = 'b101;
assign axm_m0_awburst = 'd0;
assign axm_m0_awcache = 'd0;
assign axm_m0_awid = 'd0;
assign axm_m0_awlen = 'd0;
assign axm_m0_awlock = 'd0;
assign axm_m0_awprot = 'd0;
assign axm_m0_awsize = 'b101;
assign axm_m0_wid = 'd0;
assign axm_m0_wstrb = 'hFFFFFFFF;
在 Linux (/sys/class/fpga-bridge/br4) 中查看 FPGA 桥驱动程序时,状态显示为“启用”。
网桥仍然阻止通信的原因可能是什么?
谢谢你的帮助。