马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 林间醉梦 于 2017-3-20 09:59 编辑
各位大侠晚上好,在学习vivado过程当中遇到一些问题特来版上请教: 大致流程如这位仁兄差不多,不过他用的是ISE,而我的是vivado,链接如下:
https://forums.xilinx.com/t5/%E7%BB%BC%E5%90%88%E6%8A%80%E6%9C%AF%E8%AE%A8%E8%AE%BA/%E6%B1%82%E5%8A%A9-%E5%A4%96%E9%83%A8%E9%80%BB%E8%BE%91%E5%92%8CMicroBlaze%E4%BA%A4%E6%8D%A2%E6%95%B0%E6%8D%AE/m-p/301099/highlight/true#M534
我现在正在使用Digulent 的Arty Development Kit,目前正在做一些学习验证,现在想把本地端的自己产生的数据先存入DDR3,然后由MicroBlaze从DDR3中把数据通过以太网发到计算机中。
我现在的进度是MicroBlaze已经能够从DDR3中读取数据,并且能够通过TCP协议(用Lwip协议栈)发到计算机上,计算机端我用java写了个程序接收数据,数据也能够正常的收到了。
数据这块是用的AXI_MUSTER_burst这个自定义IP,就是自己创建的全功能AXI总线接口模块,定义的是master方式。 目前进展如下: 通过自己建立AXI_LITE_SLAVE的IP通过操作寄存器方式可以和miacoblaze进行指令交互,类似一些开始开始,传输完成等等指令,采用的是axi4_lite。 现在想数据传输采用的axi4协议,根据指令要求将数据写入到DDR3当中,然后写完成后通过指令通知microblaze写完成了,Microblaze就可以读取数据之后通过网口上传,但是目前执行该模块后外部逻辑倒是可以正常测试即写入DDR3之后再读出来,但是Microblaze那边却不运行,即microblaze好像挂掉了,怀疑是不是两个master(一个是microblaze另一个就是axi_master这个模块)因为没有仲裁导致axi_master一直占用axi4总线导致的。 大致框图贴一下吧:
相关axi_master_burst、microblaze与ddr3的连接框图如下:
目前处于将所有模块都加上后竟然一直无法编译过去,一直处于Initializing Design阶段不懂,所以想问一下大神门我这个思路是否正确,或者应该是什么样子的,跪谢啦先!
补充:通过microblaze向DDR3中写的数据可以通过外部逻辑读出且数据正确,经过测试外部逻辑通过axi接口写到DDR3中的数据在Microblaze侧读出的数据不对,还是ddr3中的默认数据,外部逻辑写入和读出没有问题,读写的地址也对,但是软核那边自己读写时正确的,感觉两则之间地址分配没有在一个地方啊,继续查找原因! |