0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

AMBA总线中APB interconnect的介绍

jf_GctfwYN7 来源:芯时代青年 2024-01-13 10:09 次阅读

之前的两篇文章给大家介绍了APB协议相关的知识点,并结合实际的代码给大家讲解了一下APB slave的设计。并说明了一下APB slave mux这个模块。

上一篇文章提到:通常而言,APB的interconnect模块只能连接一个master,多个Slave。因此继续管它叫interconnect感觉差了点意思。所以一般就叫它slave mux了。巧的是前几天有个同事碰到了需要多个APB master的情况。本人便帮忙调研APB是否真的只能是一主多从的结构。没想到还真搜到了一些公司的设计,是支持多主多从的APB Interconnect,这种情况下确实是名副其实的Interconnect了。

首先解释一下什么是Interconnect,顾名思义,互联。起作用是把不同的组件连接在一起,包括但不限于:

处理器和处理器

处理器和Memory

处理器和Cache

Cache和Cache

IO设备等

对于SoC工程师,把互联理解成一个开关即可。它用来管理并指挥所连接的设备之间的通信

1、一主多从的APB Interconnect

这种情况下Interconnect和mux没有本质区别,所以很多情况下直接叫它APB mux或者APB slave mux。具体到实际的SoC设计中大概长下面这样子,可以看到它只有一个Master,AHB2APB的转接桥。同时有多个Slave模块。这也是我们在SoC中最常遇到的情况。

7693a46a-b136-11ee-8b88-92fbcf53809c.jpg

我们看一下这个Interconnect的内部具体长什么样子,如下图所示,可以看到主要逻辑就是译码器+MUX。 对于Master-->Slave的信号而言,PENABLE、PWRITE、PWDATA、PADDR信号直接由Master给所有的Slave。而PSELx信号有SLave数量这么多组,其逻辑应该是PSELx = PSEL & dec[ x] & en[ x];译码器根据PADDR选择拉高某个SLAVE的dec信号,也就是最多选中其中的某一个Slave。此外下面这个图中有一个默认slave,当没有任何slave被选择的话,则会选中默认的slave,用来应对地址越界的错误情况。该Slave默认的PRDATA默认为0,PSLVERR默认为1。 对于Slave-->Master的信号而言,PREADY、PRDATA、PSLVERR由MUX进行选择,从指定的Slave传给Master。

76a7c620-b136-11ee-8b88-92fbcf53809c.jpg

1.1、Decoder

译码器模块对每一笔传输进行地址译码,给每一个Slave相应的PSEL信号。Decode逻辑非常简单,就是根据当前的PADDR选中某一个Slave,如下图所示。这个模块功能更加丰富,地址映射可以静态的配置(工作的时候不能配置),实际上大部分的SoC设计中,地址映射应该是完全固定死的,无法更改的。这个是FPGA提供的IP,所以相对更灵活一点。

76c40dda-b136-11ee-8b88-92fbcf53809c.jpg

1.2、Multiplexor

该模块基于MUX提供的PSELX信号,从多个Slave中选择合适的PRDATA、PREADY、PSLVERR信号,设计很简单,就不多讲解了,直接看图:

76e05c7e-b136-11ee-8b88-92fbcf53809c.jpg

2、多主多从的APB Interconnect

上面这套东西和我上一篇文档的APB slave mux其实没有本质区别,也非常的好理解。但是如果实际的需求真的需要多个Master怎么办呢?虽然APB官方没有提供这种设计示例,但实际上当然是可以实现的。我们只需要在一主多从的Interconnect的基础上增加一个Arbiter mux即可:

76f824d0-b136-11ee-8b88-92fbcf53809c.jpg

当然这种情况下,只支持一对一的访问,所以实际上效率还是比较低的。仲裁方式可以使用固定优先级仲裁,也可以使用Round Robin仲裁。

2.1、Arbiter Mux

顾名思义,Arbiter+MUX。Master to Slave Multiplexor对多个PSEL进行仲裁,然后选择其中的一个PSELX,基于这个PSELX,选择合适的PADDR、PWRITE、PSELX、PENABLE给Single Master Interconnect模块。 相应的,Slave to Master Multiplexor将PRDATA、PREADY、PSLVERR路由到相对应的Master。从而完成整个传输流程。下图这些向右的箭头实际上是双向的。Master和Slave互相交互,完成传输过程。

770b9a10-b136-11ee-8b88-92fbcf53809c.jpg

770b9a10-b136-11ee-8b88-92fbcf53809c.jpg

这篇文章给大家讲解了APB Interconnect这个模块。除了官方说的一主多从,实际上我们也可以实现多主多从的Interconnect。当然这个模块实际用的很少很少,大家可以根据实际需求决定是否要使用该模块。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18288

    浏览量

    222167
  • 通信
    +关注

    关注

    18

    文章

    5706

    浏览量

    134405
  • AMBA总线
    +关注

    关注

    0

    文章

    34

    浏览量

    9486

原文标题:深入理解AMBA总线 — APB interconnect的补充

文章出处:【微信号:IC修真院,微信公众号:IC修真院】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    什么是APB协议/总线APB总线入门

    上一篇文章简单讲解了什么是AMBA总线,简单来说,AMBA总线是一系列协议。定义了适用于不同场景的总线家族。今天我们就来将
    的头像 发表于 01-02 11:37 962次阅读
    什么是<b class='flag-5'>APB</b>协议/<b class='flag-5'>总线</b>?<b class='flag-5'>APB</b><b class='flag-5'>总线</b>入门

    ARM总线协议AMBAAHB、APB的区别与联系

    , ASB, APB);Qchannel文章目录1 AMBA总线2 AHB2.1 一个典型的基于AHB的微控制器2.2 AHB总线互联结构:中心选择器连接master与slave2.3
    发表于 02-09 07:46

    AMBAAPB、AHB简介

    STM32菜鸟学习手册——1、AMBAAPB、AHB简介芯片上总线标准种类繁多,而由ARM公司推出的AMBA片上总线受到了广大IP开发商和
    发表于 02-17 07:18

    AMBA AHB总线APB总线资料合集

    使用的是 SystemVerilog 描述。2、AMBA APB总线信号接口介绍前面分析了AHB总线协议。接下来分析
    发表于 04-07 10:03

    AMBAAPB总线协议详解

    1、漫谈AMBA总线-APB首先考虑一下以下的场景:概念1: 主机(Master)订单的发起只能由水果店发起,所以水果店在这条水果运输总线里面运输水果占有主动地位。类比:在
    发表于 06-07 16:14

    基于AMBA APB总线NandFlash控制器的设计

    介绍了基于AMBA APB总线NandFlash控制器的设计,首先简单介绍了NandFlash的一些特点,然后详细
    发表于 11-03 15:22 54次下载

    APB总线的应用框图及接口信号

    APB(AdvancedPeripheralBus)是AMBA(AdvancedMicrocontrollerBusArcheticture)总线体系的一部分。相较于AMBA
    发表于 11-17 11:54 1.2w次阅读
    <b class='flag-5'>APB</b><b class='flag-5'>总线</b>的应用框图及接口信号

    基于AMBA总线介绍

    3.0:增加了AXI协议(了解);AMBA4.0:ACE协议(了解) 本文主要介绍AMBA2.0 (Advanced Microcontroller Bus Architecture,先进微控制
    的头像 发表于 05-19 14:22 1876次阅读
    基于<b class='flag-5'>AMBA</b><b class='flag-5'>总线</b><b class='flag-5'>介绍</b>​

    浅述AMBA-APB总线

    1 APB介绍 高级外设总线APB) 是高级微控制器总线架构 (AMBA) 协议系列的一部分
    的头像 发表于 07-23 10:04 1950次阅读
    浅述<b class='flag-5'>AMBA-APB</b><b class='flag-5'>总线</b>

    介绍AMBA2.0总线

    3.0:增加了AXI协议(了解);AMBA4.0:ACE协议(了解) 本文主要介绍AMBA2.0 (Advanced Microcontroller Bus Architecture,先进微控制
    的头像 发表于 09-06 09:53 2770次阅读
    <b class='flag-5'>介绍</b><b class='flag-5'>AMBA</b>2.0<b class='flag-5'>总线</b>

    AMBA总线那些事之APB

    之前老李问过大家想看哪方面的知识,有不少同学提议老李写写总线,特别是AMBA总线,所以老李决定从这期开始开始一个AMBA总线
    的头像 发表于 05-04 14:53 1911次阅读
    <b class='flag-5'>AMBA</b><b class='flag-5'>总线</b>那些事之<b class='flag-5'>APB</b>

    AMBA总线apb简介

    APB(Advanced Peripheral Bus),外围总线的意思。该总线协议是ARM公司提出的AMBA总线结构之一,几乎已成为一种标
    发表于 06-05 15:10 1147次阅读
    <b class='flag-5'>AMBA</b><b class='flag-5'>总线</b>—<b class='flag-5'>apb</b>简介

    AMBA总线那些事之APB协议入门

    咱们首先来介绍AMBA(Advanced Microcontroller Bus Architecture)家族中最简单的协议APB -- Advanced Peripheral Bus。
    发表于 06-05 15:30 1292次阅读
    <b class='flag-5'>AMBA</b><b class='flag-5'>总线</b>那些事之<b class='flag-5'>APB</b>协议入门

    关于AMBA APB总线的知识点介绍

    AMBA APB总线可以用在低带宽和不需要高性能的外设上(即低速且低频率的外设);可以将APB视作AHB的二级总线;   ·低功耗(
    发表于 11-29 15:19 319次阅读
    关于<b class='flag-5'>AMBA</b> <b class='flag-5'>APB</b><b class='flag-5'>总线</b>的知识点<b class='flag-5'>介绍</b>

    AMBA总线APB slave设计介绍

    上篇文章给大家介绍APB协议相关的知识点,本篇文章通过一个实际的APB slave的设计帮助大家巩固对APB的掌握。 APB slave设
    的头像 发表于 01-13 10:15 324次阅读
    <b class='flag-5'>AMBA</b><b class='flag-5'>总线</b>中<b class='flag-5'>APB</b> slave设计<b class='flag-5'>介绍</b>