在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 29935|回复: 48

[讨论] 基于AXI4总线接口的MIG(挂DDR3)讨论

[复制链接]
发表于 2015-3-29 00:15:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
小弟刚开始鼓捣DDR3条子,老板的一个任务就是尝试使用AXI4总线完成DDR3的控制。如今学习一月有余,想贴出自己对这个问题的一些看法。希望各位走过路过的大侠小侠,抑或是同道中人能够跳出来指正小弟的。以期望相互学习,共同进步!    首先,功能描述:基于Xilinx 7系列690的FPGA开发一个DDR3控制器。要求,基于AXI4总线!根据小弟的理解,果断把老板的话翻译为:就是要我使用软件生成一个MIG核,然后,在MIG核上选择挂AIX4总线。这些,我只要读懂AXI4总线的接口,编写Master部分的控制器,然后直接实现功能即可。
    于是乎,小弟就开始玩命的干活了(摸的办法,谁让是打工仔呢)。首先,我先搞了一个MIG核进入我的工程,然后我打开了example design进行了研读。我的妈呀,通过参考ug586文档,苦逼的读程序。结果吧,搞出来了一个整体设计方案,其实就是我要把traffic gen 改成自己想要实现的功能就行。不过我面对的接口是AXI4_wrapper文件。这时候,尼玛,搞的有点晕了,遇到了点问题,总结如下:
    1.大家搞过ddr条子都知道,比如说我的4G的DDR3,位宽为64,地址位=rank+bank+col+row=29.尼玛,这就是说我的地址宽度如果是29就好了。可是这里我对着axi4总线设置地址宽度时出现了点问题,就是,尼玛选择的是32位宽的。那这两边怎么统一啊。然道mig 偷偷的帮我把活干完了,我直接睡觉就好了?!感觉,不可能啊!所以,求路过的大侠大哥大嫂们指点一二!跪拜ing!
    再进一步,发现axi4总线地址算法会根据选择的模式算法有所不同。这样问题出来了:mig它说使用了AIX那个接口了吗?是AXI4,还是AXI-lite,还是axi4-stream???搞不懂,求讨论,求指导!
    2,好家伙,搞不懂地址这边,那尼玛数据这边总可以吧。经过小弟的巴拉巴拉的啃代码,发现这里要基于一个原则:ddr3条子的内外位宽一样就行了。比如说我设置的控制:ddr的时钟频率比为:1:4.我条子burst length=8。那就是说(dq_width=64)8*64*1=512bit.那mig 那边也一此要过来512吧。而aix4过来的数据又是32位的宽度,尼玛我又蒙了。感觉我可以设置axi的一次burst发出的数据量也等于512.不知道这么理解行不行,求讨论,拍砖,也可以!
    3.example design里的文件axi_wrapper.v真的是axi4总线的描述吗,我怎么觉得惶惶的呢,读了程序,感觉倒是像那么回事。可是,咳,求证实!
    小弟发此贴,抛砖引玉,求各位在此讨论一二,大家有机会一起想想,如果能共同进步就更好了!
 楼主| 发表于 2015-3-29 00:16:58 | 显示全部楼层
自己先顶一个!求不沉! 如果嫌表述不!够完整,可以说,必定详细描述
发表于 2015-3-29 12:56:20 | 显示全部楼层
个人见解,axi总线挂ddr3,适合计算机总线架构,就是用处理器来操作,不太适合逻辑自己操作。对于那种高速采集系统,我宁愿自己写更高效的仲裁器,axi如果要做内存地址map,时序开销有点大
 楼主| 发表于 2015-3-29 22:36:34 | 显示全部楼层
回复 3# glace12123     大侠你好,我其实是在AXI4 总线下挂ddr3,实现一个fifo的功能,最后封装起来,对外提供两个接口:一个是读接口,一个是写接口。这么看的话,请问,你怎么看待这个功能。个人感觉还不如直接对ddr接口写控制。可老板偏要让我用axi4,所以我现在也弄不清为什么要这么做,这么做有什么优势?!求指导!
发表于 2015-3-30 21:40:55 | 显示全部楼层
回复 4# Y.R.Wan

你先要搞清楚axi4是什么,是ARM的计算机内部总线,如果不做成SOC的架构(有处理器和复杂总线桥),真看不出axi有什么优势,那种先给地址再给数据的axi_lite,效率完全不如地址数据同时给的intel总线,我是这么认为。。。。
发表于 2015-3-30 22:26:43 | 显示全部楼层
个人见解,axi总线挂ddr3,适合计算机总线架构,就是用处理器来操作,不太适合逻辑自己操作。对于那种高速采集系统,我宁愿自己写更高效的仲裁器,axi如果要做内存地址map,时序开销有点大
 楼主| 发表于 2015-3-30 23:15:45 | 显示全部楼层
回复 6# 约瑟叔叔


   谢谢您的回复。我再好好想想!
 楼主| 发表于 2015-3-30 23:30:37 | 显示全部楼层
回复 5# glace12123

    首先,谢谢大侠的回复。我确实对AXI总线了解不深。在我看资料后的总体感觉是:它是SOC系统中各个ip之间互联的一种总线协议,这样我们今后的设计活动中,只要掌握一种总线就可以了。当然,这些都是虚话。具体到我的fifo设计里,我这样理解的:
    1.我其实想使用两个ip 核(mig+axi接口)来连接两个ddr3.一片读,一片写,设计成乒乓操作。因为ddr3在读或者只写的情况下,效率很高。这时候我需要通过axi接口传数据,其中我了解到我可以使用axi-steram总线的方法来提高我的传输能力(因为它只需要给出数据就行,不用地址)。
    2.如果可以成功使用了axi总线,那么我们今后的项目可以直接方便的使用axi总线,项目的兼容性和继承性方面可能会更加好;
    3.实际上,我个人感觉,老板让我干这个,可能是想尝试一下这个总线到底怎么样!
    再次感谢您的回复,我明天将和老板谈一谈,到时候,肯定会有一些疑问,还望大侠多多赐教!
 楼主| 发表于 2015-3-30 23:35:38 | 显示全部楼层
那个大侠,能告诉我,MIG 核上进行customize的时候选择的AXI Interface具体是什么类型的总线?是AXI4,axi4-lite,还是AXI4-steam。偷个懒,明天看完程序,再过来和你们对比下我的分析对不对!
 楼主| 发表于 2015-3-31 23:22:44 | 显示全部楼层
有谁知道AXI4-stream相关的ip核怎么用吗?比如说axi4-stream date mover等等,如果我要拿axi4-stream 来用,它能和mig结合在一起吗(貌似mig上的接口是不是axi4-stream)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-29 06:31 , Processed in 0.028095 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表