好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

MicroBlaze如何与ZynqSoC和平共存.doc

11页
  • 卖家[上传人]:豆浆
  • 文档编号:25629804
  • 上传时间:2017-12-16
  • 文档格式:DOC
  • 文档大小:703.50KB
  • / 11 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • MicroBlaze 如何与 Zynq SoC 和平共存由 技术编辑 于 星期三, 04/02/2014 - 17:07 发表作者:Bill Kafig, Praveen Venugopal, 赛灵思公司赛灵思 Zynq-7000 All Programmable SoC 已具有很强的板载处理能力但是 Zynq 应用处理单元(APU)中强大的双 Cortex-A9 处理器和相关外设的存在并不妨碍您在同一封装中添加一个或多个 MicroBlaze 处理器,只要能让应用受益就好为什么要给处理功能已经很强大的解决方案添加 MicroBlaze 呢?首先就是可靠性的问题单线程会大幅提高可靠性您可以针对计算密集型任务为每个 Cortex-A9 都布置一个线程,而且能根据需要为其它线程实例化任何数量的 MicroBlaze 处理器其次,您可将任何杂务交给 MicroBlaze 去完成,让处理功能强大的 Cortex-A9 去执行最需要它的工作,充分发挥其用武之地,从而节省数个关键的工作周期下面这个例子能反映以上两种情况设想一下,一个任务需要长期高强度计算,同时还要监控用户输入这里,MicroBlaze 可管理用户输入(频率较低、计算强度不高 ),并写入APU 存储器空间,这样 APU 闲置时(也就是完成了处理任务时 )就能看看接下来需要处理什么信息。

      一旦您决定在基于 Zynq 的设计中添加一个 MicroBlaze 处理器,马上就会发现一些问题首要问题就是 APU 如何与 MicroBlaze 通信,哪些处理器系统(PS) 资源可供 MicroBlaze使用包括 ZC702 和 Zedboard 等在内的许多开发板将许多外设直接映射到与处理系统相连的引脚可编程逻辑(PL)中,这些引脚不能直接访问 MicroBlaze处理系统还包含多种不同定时器和中断资源有什么办法能从 MicroBlaze 领域访问这些资源吗?PS 与 PL 之间的接口处理器系统和可编程逻辑紧密结合,这意味着 Cortex-A9、窥探控制单元(SCU) 、PS 外设、时钟管理及其它功能与可编程逻辑之间存在多个紧密的集成连接事实上,PS 和 PL 之间共有 6 种不同类型的互联,您可将这些互联类型彼此结合使用此外,许多路径是对称的,也就是说 PC 能启动到 PL 的连接,而 PL 也能启动到 PS 的连接图 1:PL 中 PS 和 MicroBlaze 的边界是一片雷区吗?二者能否共享资源?赛灵思公司目前提供的应用指南、用户指南和白皮书等大量资料均介绍了作为设计“核心”的 Zynq-7000 APU 如何利用可编程逻辑来访问存储器、基于 PL 的外设和硬芯片外设( 如PCIe 模块、BRAM、DSP48 和千兆位级收发器等)。

      要分析 MicroBlaze 如何成为其自身领域的主导,逻辑上的第一步就是看看 6 个接口变量,首先从通用、高性能和加速器一致性端口这三类 AXI 接口入手PS 有两个连接到 PL 的主 AXI 通道和两个由 PL 启动的从通道 (图 2)这里的“主”是指AXI 通道为发起方,能启动数据交换,而“从”在只能用于响应到达的数据主 AXI 通道通常用来与 PL 中的外设通信从 AXI 通道负责响应 PL 的请求,其中可能包括MicroBlaze 处理器所执行的事务处理这些 AXI 通道连接到 PS 的中央互联,可路由到许多资源此外,还有 4 个高性能(64 位宽)AXI 通道连接点从 PS 角度来说,所有这 4 个通道均为从通道,连接至 PS 中的存储器接口子系统 (图 3)这 4 个通道的目的就是让 PS 中的主设备启动 DDR 存储器事务处理这种存储器互联和 DDR 存储器控制器是所有资源到 DDR 存储器的门户虽然 Cortex-A9处理器的优先级通常高于从 AXI 连接,但 4 个 AXI 连接中每个都有一个“现在为我服务”信号,能让发出该请求的通道获得优先级未断言该信号时,架构、采用循环机制确定哪个请求方有权访问特定类型存储器。

      加速器一致性端口(ACP)是另一种 PL 的 32 位 AXI PS 从连接ACP 的独特之处在于它直接连接到 SCU 中SCU 的任务就是确保 L1、L2 和 DDR 存储器之间的一致性采用ACP,您能访问 PS 中的每个 Cortex- A9 处理器的高速缓存存储器,而不必担心与主存储器中的数据同步问题(硬件会自动处理好这个问题)该功能不仅可大幅降低设计负担,而且还能显著加速处理器与 PL 之间的数据传输图 2:到处理系统中央互联的简化连接图 3:到 DDR 存储器控制器和片上存储器 (OCM)的简化连接除了 AXI 链接之外,可扩展多路输入输出 (EMIO)信号也可用于路由许多 PS 的硬外设直至PL,以便访问封装引脚只有 54 个封装引脚直接连接到 PS,不过 PS 的硬外设可使用的引脚数量大大超过 54 个EMIO 是 PS 硬外设和 PL 之间的通道这些 I/O 信号可直接路由到 PL 可用的封装引脚,而您也可利用这些引脚与 PL 中兼容的外设进行通信PS 和 PL 之间另外的各种杂项信号可以分为 5 个基本类:时钟与复位、中断信号、事件信号、空闲 AXI 与 DDR 存储器信号,以及 DMA 信号。

      时钟与复位:PS 为 PL 提供 4 个独立的可编程频率通常这些时钟之一用于 AXI 连接每个时钟域都有自己的域复位信号,可重设与该域关联的任何器件 中断信号:PS 中的通用中断控制器(GIC)负责收集所有可用源的中断,包括 PS 外设的所有中断源和可编程逻辑的 16 个“外设”类型中断此外,还有 4 个连接到 CPU(IRQ0、 IRQ1、FIQ0 和 FIQ1)的直接中断来自 PS 外设的共 28 个中断可提供给 PL 事件信号:这些“带外”异步信号说明 PS 的特殊情况PS 提供一系列信号用于表明哪个 CPU 进入待机模式,哪个 CPU 执行了 SEV(“发送事件”)指令PS 可用事件信号从WFE(“等待事件”) 状态中唤醒 空闲 AXI 与 DDR 存储器信号:PS 的空闲 AXI 信号用来指示 PL 中没有未处理的 AXI 事务处理该信号由 PL 驱动,是用来启动 PS 总线时钟关断功能的条件之一,确保所有 PL总线器件均处于闲置状态DDR 紧急/仲裁信号用来向 PS DDR 存储器控制器的 4 个 AXI端口 DDR 仲裁表示关键的存储器处于紧张状况 DMA 信号:PS 的直接存储器访问(DMA)模块通过一系列“请求和确认”信号与 PL 从设备通信。

      图 4:硬件设计实例方框图访问 DDR 存储器我们下面来分析一个设计实例,该实例涵盖了典型 MicroBlaze 用户可能涉及的几个常见的需求,比如如何访问 DDR 存储器;如何使用 PS IOP 中的外设;如何在 MicroBlaze 和PS 之间传输数据块;如何在 MicroBlaze 和 PS 之间实现事件同步等图 4 给出了解决每种问题的方法(分别标识为 1、2、3、4)访问 DDR 存储器最简单方法就是通过 4 个高性能(HP)AXI 接口的一个或多个连接( 方框图右上方)4 个 64 位宽端口可供可编程逻辑访问您首先必须启用一个端口,然后连接AXI 到端口MicroBlaze 采用 AXI4-Lite 接口,而 HP 端口则应用作全 AXI4 连接所幸的是,赛灵思设计工具可自动弥补,无需任何手动修改就确保实现成功连接方框图中①显示了该连接这类连接的优势在于创建起来非常简单,而 DDR 存储器对设计来说就是常规存储器而不足之处在于,AXI-Lite 不支持突发模式,而且只有 32 位宽,因此会丧失不少性能还可通过其它方法将基于 PL 的外设连接到 DDR 存储器,比如采用 DMA 控制器,同样也可采用 HP 端口。

      虽然这种连接机制更复杂,但能提高大数据块的传输性能在 PS 中启用 UART 和三重定时器 /计数器(TTC)M_AXI_GP0 连接的 BRAM 控制器位于PL 中,但从概念上说是 PS 设计的组成部分 (实际上也是 PS 设计的一部分) MicroBlaze 作为设计的另一部分采用 BRAM 提供 64KB 的整合代码和数据空间,供MicroBlaze 专用显然,我们能连接这些端口到 PS 的 HP 端口以访问 DDR 存储器,不过这样做会让实现工作变得更复杂有 3 个连接到 MicroBlaze 的标准外设:一个是负责接收 TTC 的 PWM 波形输入并将其解释为中断源和接收的 UART 字符中断的中断控制器;一个是负责驱动 ZC702 开发板上 8个 LED 的 GPIO,第三个是用于连接到 PS 所连接的同一 BRAM 的 B 侧的 BRAM 控制器此外还有两个连接:一个是到 S_AXI_GP0 的连接,用于实现 PS 内部外设的寻址;另一个到高性能端口的连接,可让 MicroBlaze 访问 DDR 存储器部分外设、数据块和同步到 PS S_AXI_GP0 端口的连接是访问可编程系统 IOP 模块的关键(图中的②) 。

      S 代表这是一个从端口,也就是接受 PL 中的组件启动的事务处理在 MicroBlaze 和 S_AXI_GP0 端口之间建立连接时,IOP 模块可从 0xE000_0000 扩展到 0xE02F_FFFF,这意味着MicroBlaze 地址空间中的其它外设都不能重叠于这段地址,而这段地址将供处理器共享与此同时,许多机制均支持 MicroBlaze 和 PS 之间的数据块传输往返 DMA 和 DDR 以及 DMA 和片上存储器 (OCM)就是两个可能性另一种就是在设计实例中实现的机制,其使用双端口 BRAM(图中的③)PS 为 BRAM 控制器一侧主设备,而 MicroBlaze 则为其另一侧主设备软件负责管理分区和共享 BRAM 存储器空间的使用,因为两侧都有权对存储器的全部内容进行全面读取和写入最终问题涉及如何在 MicroBlaze 和 PS 之间同步事件PS 包括大量定时器,您能对 PL 中任意数量的定时器实例化设计实例中采用了一个 TTC 外设中的一个通道来生成 100 毫秒的脉冲信号(图中的④) 这里的关键是要认识到 TTC 生成的波形能从 PS 以外访问,但TTC 中断只能在 PS 以内可用。

      您可用波形本身作为 MicroBlaze 中断,从而规避这个问题此外,您也可采用硬件定时器(AXI 定时器或用户编码的定时器)为 PS 和 MicroBlaze 提供中断图 5:独立软件域和重叠项与任何嵌入式设计一样,您要考虑的不光是硬件实现问题,还要考虑软件支持对本例而言,要考虑两个处理器的重叠区域(如图 5 所示)就硬件而言,要把系统视为两个相互交叉的嵌入式设计:PS 和 MicroBlaze我们的参考设计可让 PS 为其自身和 MicroBlaze 生成时钟信号并提供中断MicroBlaze 可使用这些信号,但不能影响或对其修改PS 和 PL 共用 PS 的 IOP 模块、DDR 存储器与控制器以及常见的双端口 BRAM从地址映射角度看,IOP 地址固定在硬件中,不能修改 MicroBlaze 和 Cortex-A9 必须对外设使用相同的地址技术参考手册在这方面做了详细说明,非常具有参考价值技术参考手册分两部分对解决设计中的外设问题进行了阐述这部分中的所有寄存器都列出了地址和简介,管理两个处理器之间的资源则是用户要开展的一项任务,要避免数据冲突,避免资源不足等图 6:Cortex-A9 应用和 MicroBlaze 应用流程图采用 DDR 存储器及其控制器比较简单,因为 DDR 存储器控制器能管理冲突问题,而且。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.