zoukankan      html  css  js  c++  java
  • PYNQ---ARM部分与可编程逻辑部分通信

    方法一  利用数组的物理地址进行传递

    下方单元格中的代码显示了一个非常简单的数据移动代码段,可用于与可编程逻辑共享数据。

    我们利用Python numpy包来操纵ARM处理器上的缓冲区,

    然后可以将缓冲区指针发送到可编程逻辑以共享数据。

    我们不假定加载了什么可编程逻辑设计,因此这里我们仅分配所需的内存空间,

    并表明它可以作为numpy数组进行操作并包含缓冲区指针属性

    然后可以将该指针传递给可编程逻辑硬件。

    import numpy as np
    import pynq
    
    def get_pynq_buffer(shape, dtype):
        """ Simple function to call PYNQ's memory allocator with numpy attributes
    
        """
        return pynq.allocate(shape, dtype)

    通过上面的简单包装器,我们可以访问可由numpy方法和可编程逻辑共享的内存。

    buffer = get_pynq_buffer(shape=(4,4), dtype=np.uint32)
    buffer

       

     为了将缓冲区指针发送到可编程逻辑,我们使用其物理地址,这是可编程逻辑将需要使用此共享缓冲区进行通信的地址。

    pl_buffer_address = hex(buffer.physical_address)

    方法二 异步集成

    PYNQ还利用Python asyncio模块通过事件(即中断)与可编程逻辑设备进行通信。

  • 相关阅读:
    SoundTouch
    80211
    netsh wlan
    jest--cmd
    必须精通nuxt了,不可变,to thi
    bili实际的ssr
    vscode 调试vuetify
    【Java】 第四章 异常处理 Notes learn Ma
    Windows 下的符号链接 小示例
    Java 第一二章 配置基础 与 java 数据类型
  • 原文地址:https://www.cnblogs.com/kyshan/p/13286117.html
Copyright © 2011-2022 走看看