NVDLA系列之C-model:include<110>

//cmod/include/nvdla_ness_header/nvdla_ram_addr_ADDR_WIDTH_12_BE_1_iface.h

nvdla_ram_addr_ADDR_WIDTH_12_BE_1_iface.h

// ================================================================
// NVDLA Open Source Project
// 
// Copyright(c) 2016 - 2017 NVIDIA Corporation.  Licensed under the
// NVDLA Open Hardware License; Check "LICENSE" which comes with 
// this distribution for more information.
// ================================================================

// File Name: nvdla_ram_addr_ADDR_WIDTH_12_BE_1_iface.h

#if !defined(_nvdla_ram_addr_ADDR_WIDTH_12_BE_1_iface_H_)
#define _nvdla_ram_addr_ADDR_WIDTH_12_BE_1_iface_H_

#include <stdint.h>

typedef struct nvdla_ram_addr_ADDR_WIDTH_12_BE_1_s {
    
    
    uint16_t addr ; 
    uint8_t hsel ; 
} nvdla_ram_addr_ADDR_WIDTH_12_BE_1_t;

#endif // !defined(_nvdla_ram_addr_ADDR_WIDTH_12_BE_1_iface_H_)

这是一个C/C++头文件,文件名为 nvdla_ram_addr_ADDR_WIDTH_12_BE_1_iface.h。该头文件定义了一个名为 nvdla_ram_addr_ADDR_WIDTH_12_BE_1_t 的结构体类型,用于表示具有12位地址宽度和1位激活选择的RAM地址。

以下是文件的主要内容和结构:

  1. 头文件保护宏:#if !defined(_nvdla_ram_addr_ADDR_WIDTH_12_BE_1_iface_H_)#endif 用于确保头文件在同一编译单元中只被包含一次,以防止重复定义。

  2. 结构体类型定义:该文件定义了一个名为 nvdla_ram_addr_ADDR_WIDTH_12_BE_1_t 的结构体类型,它包含以下成员变量:

    • addr:一个 uint16_t 类型的成员,用于表示12位地址。
    • hsel:一个 uint8_t 类型的成员,用于表示激活选择。

根据文件名和内容,该头文件用于定义一个用于表示RAM地址的数据结构 nvdla_ram_addr_ADDR_WIDTH_12_BE_1_t,这种数据结构在NVDLA的硬件或软件实现中用于管理和控制RAM地址。

//cmod/include/nvdla_ness_header/nvdla_ram_addr_ADDR_WIDTH_8_BE_1_iface.h

nvdla_ram_addr_ADDR_WIDTH_8_BE_1_iface.h

// ================================================================
// NVDLA Open Source Project
// 
// Copyright(c) 2016 - 2017 NVIDIA Corporation.  Licensed under the
// NVDLA Open Hardware License; Check "LICENSE" which comes with 
// this distribution for more information.
// ================================================================

// File Name: nvdla_ram_addr_ADDR_WIDTH_8_BE_1_iface.h

#if !defined(_nvdla_ram_addr_ADDR_WIDTH_8_BE_1_iface_H_)
#define _nvdla_ram_addr_ADDR_WIDTH_8_BE_1_iface_H_

#include <stdint.h>

typedef struct nvdla_ram_addr_ADDR_WIDTH_8_BE_1_s {
    
    
    uint8_t addr ; 
    uint8_t hsel ; 
} nvdla_ram_addr_ADDR_WIDTH_8_BE_1_t;

#endif // !defined(_nvdla_ram_addr_ADDR_WIDTH_8_BE_1_iface_H_)

这是一个C/C++头文件,文件名为 nvdla_ram_addr_ADDR_WIDTH_8_BE_1_iface.h。该头文件定义了一个名为 nvdla_ram_addr_ADDR_WIDTH_8_BE_1_t 的结构体类型,用于表示具有8位地址宽度和1位激活选择的RAM地址。

以下是文件的主要内容和结构:

  1. 头文件保护宏:#if !defined(_nvdla_ram_addr_ADDR_WIDTH_8_BE_1_iface_H_)#endif 用于确保头文件在同一编译单元中只被包含一次,以防止重复定义。

  2. 结构体类型定义:该文件定义了一个名为 nvdla_ram_addr_ADDR_WIDTH_8_BE_1_t 的结构体类型,它包含以下成员变量:

    • addr:一个 uint8_t 类型的成员,用于表示8位地址。
    • hsel:一个 uint8_t 类型的成员,用于表示激活选择。

根据文件名和内容,该头文件用于定义一个用于表示RAM地址的数据结构 nvdla_ram_addr_ADDR_WIDTH_8_BE_1_t,这种数据结构在NVDLA的硬件或软件实现中用于管理和控制RAM地址。

//cmod/include/nvdla_ness_header/nvdla_ram_data_valid_DATA_WIDTH_1024_ECC_SIZE_1_iface.h

nvdla_ram_data_valid_DATA_WIDTH_1024_ECC_SIZE_1_iface.h

// ================================================================
// NVDLA Open Source Project
// 
// Copyright(c) 2016 - 2017 NVIDIA Corporation.  Licensed under the
// NVDLA Open Hardware License; Check "LICENSE" which comes with 
// this distribution for more information.
// ================================================================

// File Name: nvdla_ram_data_valid_DATA_WIDTH_1024_ECC_SIZE_1_iface.h

#if !defined(_nvdla_ram_data_valid_DATA_WIDTH_1024_ECC_SIZE_1_iface_H_)
#define _nvdla_ram_data_valid_DATA_WIDTH_1024_ECC_SIZE_1_iface_H_

#include <stdint.h>

typedef struct nvdla_ram_data_valid_DATA_WIDTH_1024_ECC_SIZE_1_s {
    
    
    uint64_t data [16] ; 
} nvdla_ram_data_valid_DATA_WIDTH_1024_ECC_SIZE_1_t;

#endif // !defined(_nvdla_ram_data_valid_DATA_WIDTH_1024_ECC_SIZE_1_iface_H_)

这是一个C/C++头文件,文件名为 nvdla_ram_data_valid_DATA_WIDTH_1024_ECC_SIZE_1_iface.h。该头文件定义了一个名为 nvdla_ram_data_valid_DATA_WIDTH_1024_ECC_SIZE_1_t 的数据结构类型。根据文件名和定义,这个数据结构似乎用于表示具有以下特征的RAM数据:

  • 数据宽度(DATA_WIDTH)为 1024 位。
  • 使用 1 位的ECC(Error Correction Code)进行错误检测和纠正。

数据结构本身包含一个 data 数组,其中包含了 16 个 64 位的数据元素。这些数据元素用于存储 1024 位的RAM数据,同时还包括用于ECC的附加信息。

这种类型的数据结构通常用于与硬件接口交互,表示RAM数据及其有效性和纠正信息。

//cmod/include/nvdla_ness_header/nvdla_ram_rd_addr_iface.h

nvdla_ram_rd_addr_iface.h

// ================================================================
// NVDLA Open Source Project
// 
// Copyright(c) 2016 - 2017 NVIDIA Corporation.  Licensed under the
// NVDLA Open Hardware License; Check "LICENSE" which comes with 
// this distribution for more information.
// ================================================================

// File Name: nvdla_ram_rd_addr_iface.h

#if !defined(_nvdla_ram_rd_addr_iface_H_)
#define _nvdla_ram_rd_addr_iface_H_

#include <stdint.h>

typedef struct nvdla_ram_rd_addr_s {
    
    
    uint16_t addr ; 
    uint8_t re ; 
} nvdla_ram_rd_addr_t;

#endif // !defined(_nvdla_ram_rd_addr_iface_H_)

这是一个C/C++头文件,文件名为 nvdla_ram_rd_addr_iface.h。该头文件定义了一个名为 nvdla_ram_rd_addr_t 的数据结构类型。这个数据结构似乎用于表示RAM读取地址信息。

具体来说,nvdla_ram_rd_addr_t 包含两个成员:

  • addr:一个 16 位的整数,用于表示RAM读取的地址。
  • re:一个 8 位的整数,表示读取使能信号(Read Enable)或其他控制信息。

这种类型的数据结构通常用于与硬件接口交互,以指定要从RAM中读取数据的地址和读取操作的控制参数。实际用途和详细规范需要查看头文件的上下文或相关文档来确定。

cmod/include/nvdla_ness_header/nvdla_ram_rd_data_128B_iface.h

// ================================================================
// NVDLA Open Source Project
// 
// Copyright(c) 2016 - 2017 NVIDIA Corporation.  Licensed under the
// NVDLA Open Hardware License; Check "LICENSE" which comes with 
// this distribution for more information.
// ================================================================

// File Name: nvdla_ram_rd_data_128B_iface.h

#if !defined(_nvdla_ram_rd_data_128B_iface_H_)
#define _nvdla_ram_rd_data_128B_iface_H_

#include <stdint.h>

typedef struct nvdla_ram_rd_data_128B_s {
    
    
    uint64_t data [16] ; 
} nvdla_ram_rd_data_128B_t;

#endif // !defined(_nvdla_ram_rd_data_128B_iface_H_)

这是一个C/C++头文件,文件名为 nvdla_ram_rd_data_128B_iface.h。该头文件定义了一个名为 nvdla_ram_rd_data_128B_t 的数据结构类型。这个数据结构似乎用于表示从RAM中读取的数据,每个数据结构包含一个包含128字节数据的数组。

具体来说,nvdla_ram_rd_data_128B_t 包含一个成员:

  • data:一个包含16个64位整数的数组,总共128字节的数据。

这种类型的数据结构通常用于与硬件接口交互,以接收从RAM中读取的数据。实际用途和详细规范需要查看头文件的上下文或相关文档来确定。

cmod/include/nvdla_ness_header/nvdla_ram_rd_valid_port_RADDR_12_RDATA_1024_iface.h

// ================================================================
// NVDLA Open Source Project
// 
// Copyright(c) 2016 - 2017 NVIDIA Corporation.  Licensed under the
// NVDLA Open Hardware License; Check "LICENSE" which comes with 
// this distribution for more information.
// ================================================================

// File Name: nvdla_ram_rd_valid_port_RADDR_12_RDATA_1024_iface.h

#if !defined(_nvdla_ram_rd_valid_port_RADDR_12_RDATA_1024_iface_H_)
#define _nvdla_ram_rd_valid_port_RADDR_12_RDATA_1024_iface_H_

#include "nvdla_ram_addr_ADDR_WIDTH_12_BE_1_iface.h"
#include "nvdla_ram_data_valid_DATA_WIDTH_1024_ECC_SIZE_1_iface.h"

typedef struct nvdla_ram_rd_valid_port_RADDR_12_RDATA_1024_s {
    
    
    nvdla_ram_addr_ADDR_WIDTH_12_BE_1_t nvdla_ram_addr_ADDR_WIDTH_12_BE_1;
    nvdla_ram_data_valid_DATA_WIDTH_1024_ECC_SIZE_1_t nvdla_ram_data_valid_DATA_WIDTH_1024_ECC_SIZE_1;
} nvdla_ram_rd_valid_port_RADDR_12_RDATA_1024_t;
#endif // !defined(_nvdla_ram_rd_valid_port_RADDR_12_RDATA_1024_iface_H_)

这是一个C/C++头文件,文件名为 nvdla_ram_rd_valid_port_RADDR_12_RDATA_1024_iface.h。该头文件定义了一个名为 nvdla_ram_rd_valid_port_RADDR_12_RDATA_1024_t 的数据结构类型。

这个数据结构 nvdla_ram_rd_valid_port_RADDR_12_RDATA_1024_t 包含两个成员:

  1. nvdla_ram_addr_ADDR_WIDTH_12_BE_1:这是另一个数据结构 nvdla_ram_addr_ADDR_WIDTH_12_BE_1_t 的实例。它用于表示RAM的地址,通常是一个12位的地址。

  2. nvdla_ram_data_valid_DATA_WIDTH_1024_ECC_SIZE_1:这是另一个数据结构 nvdla_ram_data_valid_DATA_WIDTH_1024_ECC_SIZE_1_t 的实例。它用于表示从RAM读取的数据,通常是一个1024位(128字节)的数据。

根据文件名和数据结构的命名,可以推断出这个数据结构用于表示从某个RAM(随机存储器)读取的数据和相应的地址。这种类型的数据结构通常用于与硬件接口交互,以接收从RAM中读取的数据并包含相关的地址信息。具体用途和详细规范需要查看头文件的上下文或相关文档来确定。此外,该头文件还包含了其他头文件 nvdla_ram_addr_ADDR_WIDTH_12_BE_1_iface.hnvdla_ram_data_valid_DATA_WIDTH_1024_ECC_SIZE_1_iface.h,它们定义了用于RAM地址和数据的更详细的信息。

cmod/include/nvdla_ness_header/nvdla_ram_rd_valid_port_RADDR_8_RDATA_1024_iface.h

// ================================================================
// NVDLA Open Source Project
// 
// Copyright(c) 2016 - 2017 NVIDIA Corporation.  Licensed under the
// NVDLA Open Hardware License; Check "LICENSE" which comes with 
// this distribution for more information.
// ================================================================

// File Name: nvdla_ram_rd_valid_port_RADDR_8_RDATA_1024_iface.h

#if !defined(_nvdla_ram_rd_valid_port_RADDR_8_RDATA_1024_iface_H_)
#define _nvdla_ram_rd_valid_port_RADDR_8_RDATA_1024_iface_H_

#include "nvdla_ram_addr_ADDR_WIDTH_8_BE_1_iface.h"
#include "nvdla_ram_data_valid_DATA_WIDTH_1024_ECC_SIZE_1_iface.h"

typedef struct nvdla_ram_rd_valid_port_RADDR_8_RDATA_1024_s {
    
    
    nvdla_ram_addr_ADDR_WIDTH_8_BE_1_t nvdla_ram_addr_ADDR_WIDTH_8_BE_1;
    nvdla_ram_data_valid_DATA_WIDTH_1024_ECC_SIZE_1_t nvdla_ram_data_valid_DATA_WIDTH_1024_ECC_SIZE_1;
} nvdla_ram_rd_valid_port_RADDR_8_RDATA_1024_t;
#endif // !defined(_nvdla_ram_rd_valid_port_RADDR_8_RDATA_1024_iface_H_)

这是一个C/C++头文件,文件名为 nvdla_ram_rd_valid_port_RADDR_8_RDATA_1024_iface.h。该头文件定义了一个名为 nvdla_ram_rd_valid_port_RADDR_8_RDATA_1024_t 的数据结构类型。

这个数据结构 nvdla_ram_rd_valid_port_RADDR_8_RDATA_1024_t 包含两个成员:

  1. nvdla_ram_addr_ADDR_WIDTH_8_BE_1:这是另一个数据结构 nvdla_ram_addr_ADDR_WIDTH_8_BE_1_t 的实例。它用于表示RAM的地址,通常是一个8位的地址。

  2. nvdla_ram_data_valid_DATA_WIDTH_1024_ECC_SIZE_1:这是另一个数据结构 nvdla_ram_data_valid_DATA_WIDTH_1024_ECC_SIZE_1_t 的实例。它用于表示从RAM读取的数据,通常是一个1024位(128字节)的数据。

根据文件名和数据结构的命名,可以推断出这个数据结构用于表示从某个RAM(随机存储器)读取的数据和相应的地址信息。这种类型的数据结构通常用于与硬件接口交互,以接收从RAM中读取的数据并包含相关的地址信息。具体用途和详细规范需要查看头文件的上下文或相关文档来确定。此外,该头文件还包含了其他头文件 nvdla_ram_addr_ADDR_WIDTH_8_BE_1_iface.hnvdla_ram_data_valid_DATA_WIDTH_1024_ECC_SIZE_1_iface.h,它们定义了用于RAM地址和数据的更详细的信息。

cmod/include/nvdla_ness_header/nvdla_ram_wr_port_WADDR_12_WDATA_512_BE_1_iface.h

// ================================================================
// NVDLA Open Source Project
// 
// Copyright(c) 2016 - 2017 NVIDIA Corporation.  Licensed under the
// NVDLA Open Hardware License; Check "LICENSE" which comes with 
// this distribution for more information.
// ================================================================

// File Name: nvdla_ram_wr_port_WADDR_12_WDATA_512_BE_1_iface.h

#if !defined(_nvdla_ram_wr_port_WADDR_12_WDATA_512_BE_1_iface_H_)
#define _nvdla_ram_wr_port_WADDR_12_WDATA_512_BE_1_iface_H_

#include <stdint.h>

typedef struct nvdla_ram_wr_port_WADDR_12_WDATA_512_BE_1_s {
    
    
    uint16_t addr ; 
    uint8_t hsel ; 
    uint64_t data [8] ; 
} nvdla_ram_wr_port_WADDR_12_WDATA_512_BE_1_t;

#endif // !defined(_nvdla_ram_wr_port_WADDR_12_WDATA_512_BE_1_iface_H_)

这是一个C/C++头文件,文件名为 nvdla_ram_wr_port_WADDR_12_WDATA_512_BE_1_iface.h。该头文件定义了一个名为 nvdla_ram_wr_port_WADDR_12_WDATA_512_BE_1_t 的数据结构类型。

这个数据结构 nvdla_ram_wr_port_WADDR_12_WDATA_512_BE_1_t 包含三个成员:

  1. addr:这是一个16位的整数,用于表示RAM(随机存储器)的写入地址。

  2. hsel:这是一个8位的整数,表示写操作是否有效或其他控制信息。

  3. data:这是一个包含8个64位整数的数组,用于表示要写入RAM的数据。每个64位整数表示512位数据。

根据文件名和数据结构的命名,可以推断出这个数据结构用于表示要写入某个RAM的数据以及写入的地址信息。这种类型的数据结构通常用于与硬件接口交互,以便将数据写入RAM。具体用途和详细规范需要查看头文件的上下文或相关文档来确定。

cmod/include/nvdla_ness_header/nvdla_sdp2pdp_iface.h

// ================================================================
// NVDLA Open Source Project
// 
// Copyright(c) 2016 - 2017 NVIDIA Corporation.  Licensed under the
// NVDLA Open Hardware License; Check "LICENSE" which comes with 
// this distribution for more information.
// ================================================================

// File Name: nvdla_sdp2pdp_iface.h

#if !defined(_nvdla_sdp2pdp_iface_H_)
#define _nvdla_sdp2pdp_iface_H_

#include <stdint.h>
#ifndef _sdp2pdp_struct_H_
#define _sdp2pdp_struct_H_

typedef struct sdp2pdp_s {
    
    
    uint16_t data [16]; 
} sdp2pdp_t;

#endif

union nvdla_sdp2pdp_u {
    
    
    sdp2pdp_t sdp2pdp;
};
typedef struct nvdla_sdp2pdp_s {
    
    
    union nvdla_sdp2pdp_u pd ; 
} nvdla_sdp2pdp_t;

#endif // !defined(_nvdla_sdp2pdp_iface_H_)

这是一个C/C++头文件,文件名为 nvdla_sdp2pdp_iface.h。该头文件定义了一个名为 nvdla_sdp2pdp_t 的数据结构类型。

这个数据结构 nvdla_sdp2pdp_t 包含一个成员:

  1. data:这是一个包含16个16位整数的数组,用于表示数据。每个16位整数用于存储数据。

根据文件名和数据结构的命名,可以推断出这个数据结构用于SDP(Single Data Processor)到PDP(Pixel Data Processor)之间的数据传输。SDP和PDP通常是深度学习加速器中的处理单元,用于神经网络推理等任务。这种类型的数据结构通常用于表示要从SDP传输到PDP的数据。具体用途和详细规范需要查看头文件的上下文或相关文档来确定。

cmod/include/nvdla_ness_header/nvdla_wt_info_update_iface.h

// ================================================================
// NVDLA Open Source Project
// 
// Copyright(c) 2016 - 2017 NVIDIA Corporation.  Licensed under the
// NVDLA Open Hardware License; Check "LICENSE" which comes with 
// this distribution for more information.
// ================================================================

// File Name: nvdla_wt_info_update_iface.h

#if !defined(_nvdla_wt_info_update_iface_H_)
#define _nvdla_wt_info_update_iface_H_

#include <stdint.h>

typedef struct nvdla_wt_info_update_s {
    
    
    uint16_t wt_kernels ; 
    uint16_t wt_entries ; 
    uint16_t wmb_entries ; 
} nvdla_wt_info_update_t;

#endif // !defined(_nvdla_wt_info_update_iface_H_)

这是一个C/C++头文件,文件名为 nvdla_wt_info_update_iface.h。该头文件定义了一个名为 nvdla_wt_info_update_t 的数据结构类型。

这个数据结构 nvdla_wt_info_update_t 包含三个成员:

  1. wt_kernels:这是一个16位整数,表示权重核心(Weight Kernels)的数量。

  2. wt_entries:这是一个16位整数,表示权重条目(Weight Entries)的数量。

  3. wmb_entries:这是一个16位整数,表示权重管理缓冲区(Weight Management Buffer)的条目数量。

根据文件名和数据结构的命名,可以推断出这个数据结构用于权重信息的更新。这些信息通常与深度学习模型的权重相关,用于神经网络推理等任务。这种类型的数据结构通常用于表示有关权重的信息,例如权重核心的数量、权重条目的数量以及权重管理缓冲区的大小。具体用途和详细规范需要查看头文件的上下文或相关文档来确定。

猜你喜欢

转载自blog.csdn.net/lincolnjunior_lj/article/details/134996904