很多SOC系统中,同时有多种总线互联方式,比如AXI/APB并存,或者AHB/APB并存,甚至三者同时并存于同一个系统。 我的理解,在功能上,一个总线应该就够了,比如AXI肯定能够满足AHB和APB的应用需求。 所以,为什么在同一个系统中,只实现一种高级别的总线格式,这样既可以资源开销,有可能降低系统的复杂度。 特别对于大系统的FPGA验证,很难在一片FPGA中放下所有资源,而FPGA片间的连线资源很少。 因此,较为单一的总线结构可以减少模块与模块间的接口数量,更利于多FPGA的验证。 不知道这么理解是否正确? 请指教。 此致
vongy
(2012-1-08 15:57:14)
这个应该是根据系统架构和成本来确定你到底到使用哪种BUS。 比如UART或SPI这样的低速device,只使用低功耗的APB就行了,当然也可以选择使用AXI,但是完全没有必要,这些device根本跑不了那么快。 另外,SOC很多IP都是重用的, 如果是AXI的系统,但有几个IP是AHB的,有时修改接口可能并不划算(时间,引用新的BUG等),这样只需要AXI2AHB Bridge就可以了
ieangel
(2012-1-08 16:10:30)
回 vongy: 之所以有这个问题, 是目前在做一个很复杂的SOC架构设计。 FPGA目前无法放得下这么大的一个系统,因此需要从系统总线上切开两块,放到两个FPGA里验证。 但前一个架构版本里,一般的IP都“同时”具有两个总线接口:AXI/APB。 其中APB的互联就由100多根线,AXI又有500多根线,根本无法实现。 所以,我在考虑能不能把APB的接口Remove掉。 但不确定会不会因此导致AXI效率的大幅度降低,或者其他的难以预料的问题。 按照你的意思,我的理解是完全可以把APB接口Remove掉的?
vongy
(2012-1-08 21:25:44)
[i=s] 本帖最后由 vongy 于 2012-1-8 21:27 编辑 不太理解您的意思,既然是从AXI总线上切开,直接把总线拉过去把IP挂到上面不行吗, 可能只需要在另一颗FPGA在多做一个Decoder. 除非是其它控制信号连接太多也没有办法放在一颗FPGA里。 另外,我不建议将APB拿掉,如果你有这么多IP,都拿掉还是要花很多时间的。对于APB的东西,应该全部都是挂在bridge上的,而bridge单独做为系统的slave,为什么还会有这么多线要连出来呢 我还没有搞过两颗FPGA这种项目,纯属个人理解,有了解决方案希望能共享啊
![](http://bbs.eetop.cn/images/smilies/default/smile.gif)
cenarius
(2012-1-10 16:16:54)
Lowpower啊,都用AXI总线,你的手机不就很快没电了么
zhang2000
(2012-1-10 21:19:11)
系统里面 有响应快和慢的外设 为了不影响系统性能和执行效率 当然要把外围控制器 分成不同的总线协议来处理
eaglelsb
(2012-1-12 11:03:54)
synopsys有个软件,叫Certify,是专门针对多FPGA平台综合的,你可以了解下看看,有没有办法解决互联线过少的问题,我自己没用过,只听过介绍。
jdpeng6202
(2012-2-01 23:44:44)
好帖子!!!!!!!!!
proud_li
(2012-2-18 16:31:46)
如果有UART, 挂在APB上,我都闲他工作慢了, 还挂在AXI上,我不吐血啊?!
RNA2012
(2012-2-19 16:06:31)
都用AXI的话反而大了,并不是所有场合都需要最高级的bus。至于设计里有很多冗余的接口那就有点奇怪了。如果没有连接的话综合工具应该可以优化掉。
lifes
(2012-3-02 09:54:56)
正在学习AXI,受教
lifes
(2012-3-02 10:03:00)
正在学习AXI,受教
shuli198349
(2012-3-10 00:59:30)
当然你要把所有ip都挂到axi上肯定是可行的,纯技术上。 但是你要说服老板我这个i2c实现function部分用了50个dff,axi接口用了300个dff,你觉得老板会答应? 而且,你还要说服老板,因为axi要跑300MHz。所以我的I2C要跑300MHz,否者还要花费300个dff来做synchronization,老板就疯了。 如果出于划分fpga造成的问题,我的原则是用同一套bus,如axi的系统尽量不要跨fpga。因为axi本来就不是用来做芯片间连线的。如果实在放不下,在不改架构的前提下一种比较简单的做法是做一个axi转fifo的module,因为axi的信号实在是太多了,fifo可以做的比较简单一点,data+push、pop+full/empty这些就可以了,可以节省一些fpga的io。
chenjin19850101
(2012-3-10 14:53:32)
很HAO ~谢谢
chenjin19850101
(2012-3-10 14:54:08)
YIQIXUEXIZHONG~谢谢
tommyluc
(2012-3-10 16:15:28)
高級的BUS比較浪費POWER
kinglea
(2012-3-10 16:16:24)
好贴,学习~~
gateslee
(2012-3-10 22:23:53)
1、AXI总线的ARBITER和DECODER会导致单条AXI总线结构的资源会随着其总线上MASTER端口和SLAVE端口的增加成几何级增长。因此好得SOC架构中不应在带宽最高的AXI总线上放置低速SLAVE设备。 简言之,8x8的AXI总线综合后的资源要比4x4的大的多得多得多。 2、由于众多低速接口IP的带宽较低,因此大多都是AHB或APB接口。若将APB接口SLAVE放置在AXI接口上,需要增加协议转换桥,这又是增加了一定的多余资源。
GIOOIG
(2012-6-08 16:41:28)
实战技术贴,学习了
icghost
(2012-6-12 14:24:53)
接口不同的速度造成的,在项目中经常见到多个bus共存的情形,需要考虑到performance以及power的权衡,以及开发难易度,现在很多IP都是直接买的VIP,通过不同的桥转换
zincumc
(2012-9-24 19:41:48)
STUDY