当前位置:首页 >> 行业资讯

木纹MicroBlaze如何与ZynqSoC

发布时间:2020-09-17 来源:行业资讯 点击:0

MicroBlaze如何与Zynq SoC和平共存 - FPGA/CPLD - 电子工程

我们下面来分析一个设计实例,该实例涵盖了典型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)就是两个可能性。另一种就是进口量占全年总需求量的 64%在设计实例中实现的机制,其使用双端口BRAM(图中的③)。PS为BRAM控制器一侧主设备,而MicroBlaze则为其另一侧主设备。软件负责管理分区和共享BRAM存储器空间的使用,因为两侧都有权对存储器的全部内容进行全面读取和写入。

最终问题涉及如何在MicroBlaze和PS之间同步事件。PS包括大量定时器,您能对PL中任意数量的定时器实例化最难忘的是刚成立品牌时有几次难以承受压力极近崩溃。设计实例中采用了一个TTC外设中的一个通道来生成100毫秒的脉冲信号(图中的④)。这里的关键是要认识到TTC生成的波形能从PS以外访问,但TTC中断只能在PS以内可用。您可用波形本身作为MicroBlaze中断,从而规避这个问题。此外,您也可采用硬件定时器(AXI定时器或用户编码的定时器)为PS和MicroBlaze提供中断。


梅州哪里有白癜风治疗医院
咸阳白癜风医院电话
中卫有没有医院治疗白癜风

上一篇:木纹运20被曝到云贵高原试飞定型试飞或到最后

下一篇:木纹因欠债还钱产生纠纷男子聚众行凶纵火焚车

相关阅读