x
x

FPGA研发之道(19)- “背靠大树好乘凉”--总线(下)

发布时间:2014-12-4 15:39    发布者:看门狗
关键词: FPGA
作者:阿昏豆

    如果说在PC时代,垄断PC江湖的是WINTEL(微软和英特尔),那么在移动互联网时代,最具有这个潜质的就是谷歌的andriod操作系统和ARM芯片。基于ARM公司授权的各型ARM处理器,基本上在各型嵌入式终端设备占据了垄断地位。“背靠大树好乘凉”,因此,用于作为ARM处理做片上系统互联的AMBA总线标准亦成为业界应用最广泛的标准。

AMBA总线事实上为三个总线标准的合集,分别是AHB、ASB、APB。ASB已逐渐被AHB所取代,现在使用最广泛的为AHB和APB总线,以及最新的扩展AXI总线。实际上,现今系统设计中,经常会借鉴AHB或APB总线标准,用于设计各种IP和片内模块之间的互联。首先来说AHB和APB总线,一家公司为什么会退出有两种类型总线,这是因为AHB一般认为其具备更高的性能和总线吞吐能力,而APB为低速总线,用于连接低速外设。两种总线互补,能够在性能和功耗方面进行互补。

1.jpg

  如上图所示 :AHB总线与APB总线在一个嵌入式系统中的应用场景。 分别用于连接低速设备和高速设备。下表列举其一些主要的差别。

AHBAPB
多个主设备,多个从设备一个主设备(总线桥),多个从设备
读写周期不固定,由从设备返回hready信号标示操作完成。读写周期固定,两个周期完成
支持突发传输,传输类型由主设备 不支持突发传输
信号较多且复杂。信号简单。

作为单次传输来说,AHB与APB的主要区别在AHB周期不固定,操作完成标示由从设备返回hready标示,而APB周期固定。作为burst传输来说,AHB支持增量和回环两种方式的突发。举例说,增量就是挨个地址自加,如总线宽度为32,地址每次自加4(字节)。而回环,比如当前地址为0xA4,而回环突发操作位0xA4, 0xA8, 0xAC, 0xA0。这种突发方式对于一些cache读写内存是非常有用的,这样可以把0xA0-0xA15十六个内存地址一次性读出。如果设计一条这样的cache line,地址0xA0-0xA15其高位地址一致,便于匹配,这样这16个字节可以通过一次突发就能全部填满。(即回环这种设计与处理器的cache结构是相关的,现在的cache line有逐渐扩大的趋势,一般64字节也较为常见)。

由于支持多个主设备和多个从设备进行交互,那么对于多个主设备之间就存在竞争。(从设备之间存在竞争否?从设备之间是通过地址区分的,被动接受主设备的访问,不会存储竞争的问题。)因此如何解决竞争,那就需要仲裁,即主设备谁需要访问总线,则发起HBUSREQ,而仲裁器收到HBUSREQ,返回给相应主设备HGRANT。此时该设备才能访问总线。除此之外AHB还有其他一些信号,用于辅助整个系统的传输,感兴趣的同志,可以看一下AMBA的总线规范。值得一提的是,作为一个总线规范,其提供了全集的解决方案,而作为实现部分,只需要在满足规范的前提下,实现必要的功能即可,例如AHB总线中规定,其突发最大可1K字节,但是作为一个从设备,不一定需要支持这么大的操作,即实现功能可在总线框架内进行裁剪,选择实现支持的类型即可。

FPGA内部设计中,经常有多个主设备访问同一从设备的例子,例如内部多个模块都需要访问外部存储器,其实现方式有多种,通过AHB的连接架构,可以实现一个标准、可扩展的接口单元,用于访问外部存储器。并且可以作为IP使用。AHB从设备只需要根据需要,支持某些burst传输即可。

2.jpg

    随着SOC(片上系统的发展),对于高带宽、低延时的总线需求更加迫切,ARM公司适时退出AXI(AMBA3.0)作为扩展。

3.jpg

4.jpg

上图分别是AXI接口的读写操作,分别可以看出,对于AXI总线来说,其有5组独立的总线,分别是写地址,写数据,写响应,读地址,读数据信号。地址和数据信号分开,每组都有自己的控制信号。

每个通道中间没有时序关联,如何进行操作的?举例来说明,例如读数据操作,实际上,主设备向从设备中写了一个读的命令,包括读地址,burst大小,方式等。收到后从设备按照相应的命令读取相应大小的数据,传回主设备,其操作可以简化的看做两个缓冲区类型的操作,主设备将读命令写入从设备的命令缓冲区,从设备取出后,根据命令将相应的数据返回给主设备的接收缓冲区中。这种操作的好处显而易见,能够最大限度的减少总线的开销,因此其读与读操作之间独立,不用等待读回,就可以发送下一次的读信号。写操作的流程亦然。

对FPGA设计来说,例如xilinx的接口IP(DDR例化时的接口),都已支持AXI的接口。FPGA工程师熟悉相应的总线接口信号和特点,对于技术方案选择,IP使用和验证,都是非常重要的。尽量在设计中选择标准总线接口,对于设计复用,模块共享来说,则是必由之路。而模块(IP)复用的益处随着设计不断增大将会不断显现。

PS:如要学习上述三种总线,推荐AMBA的手册,百度/谷歌各大搜索引擎均提供免费下载链接。
本文地址:https://www.eechina.com/thread-134692-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

  • Microchip视频专区
  • EtherCAT®和Microchip LAN925x从站控制器介绍培训教程
  • MPLAB®模拟设计器——在线电源解决方案,加速设计
  • 让您的模拟设计灵感,化为触手可及的现实
  • 深度体验Microchip自动辅助驾驶应用方案——2025巡展开启报名!
  • 贸泽电子(Mouser)专区

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表