教学网站开发背景,西安官网seo诊断,中国联通与腾讯设立合作,企业自助建站系统怎么建该系列为神经网络硬件加速器应用中涉及的模块接口部分#xff0c;随手记录#xff0c;以免时间久了遗忘。
一 背景 我们知道#xff0c;在FPGA做神经网络应用加速时#xff0c;涉及到权重参数的存储和加载。通常在推理过程中#xff0c;会将权重参数存储在外部DDR或片上S…该系列为神经网络硬件加速器应用中涉及的模块接口部分随手记录以免时间久了遗忘。
一 背景 我们知道在FPGA做神经网络应用加速时涉及到权重参数的存储和加载。通常在推理过程中会将权重参数存储在外部DDR或片上SRAM上。但是对于一些大的网络模型往往片上RAM受限而无法完全保存权重因此需要将权重放置在外部DDR或者PSRAM等外部存储器中等具体需要的时候从片外load进片上然后计算完丢弃重新load下一批次权重。 这里就涉及到当我们的应用固化后片外DDR存储器权重加载问题通常包括集中方法一是上电后通过PCIE/UART/SD卡等load进DDR另一种方法是将权重和FPGA bit文件一并打包存储在FLASH中上电后从FLASH中加载至片外DDR或者直接load进片上SRAM。 为了简化设计这里采用第二种方法将FPGA位流和权重等用户数据打包存入Flash配置芯片中。
二 方案设计 FPGAXC7A50T 配置芯片MX25L6433F Flash
为了简化设计这里采用第二种方法将FPGA位流和权重等用户数据打包存入Flash配置芯片中。 简单讲就是通过VIVADO的工具将用户数据和FPGA bit进行打包生成mcs,同时注意需要将用户数据存储在程序空间之外。上电后通过SPI_Loader将Flash中的用户数据加载至外部DDR即可。
架构分析 SPI接口部分没有什么新意和常规读写FLASH一样用户接口为了方便直接采用AXI协议进行控制方便与标准总线互通。 另外由于涉及对FLASH读控制操作需要配置FLASH管脚需要调用STARTUPE2原语用于对CCLK进行设置用于该时钟。
调用方法