基于Cortex-M3的IP软核实现神经网络加速的SoC设计 (0)准备工作

基于Cortex-M3的IP软核实现神经网络加速的SoC设计 (0)准备工作

关键字:神经网络加速,SoC,ARM处理器,Designstart

<0>简介

最近人工智能比较火,但是网上有关神经网络加速的硬件电路设计相关博文比较少,大多是软件实现和算法讲解,因此我想分享一下自己琢磨和实现的一个简单的前馈神经网络加速器以及基于Cortex-M3处理器软核完成的SoC设计。这个SoC系统内包括RAM、ROM、IO等基本外设和一个前馈神经网络专用的加速电路外设,可以实现不同拓扑结构的前馈神经网络加速。在进行神经网络加速时,可以通过编写处理器程序配置相应的外设寄存器来控制加速器的行为,以达到对不同拓扑结构的前馈神经网络加速的目的。

<1>需要的准备

verilog或者VHDL的硬件描述语言的能力,
MCU开发的基本知识,例如C语言、外设操作等,
数字电路设计的相关知识,
Cortex-M3处理器软核可以从ARM官网通过Designstart得到,
最好准备一个FPGA用以实现和调试。

<2>整体结构

由于Cortex-M3是一个MCU上常用的处理器,因此我所设计的系统基于MCU中处理器配置外设寄存器的控制思路实现,这种思路下会有一些弊端,但好处是比较容易实现,具体分析在以后的博文中介绍。
其中主要涉及到总线控制、中断、外设等内容的软硬件设计,基于Cortex-M3软核的系统大体结构如下。基于Cortex-M3的IP软核实现神经网络加速的SoC设计 (0)准备工作_第1张图片

<3>废话

在我学习的过程中从各种技术博客中得到了很多帮助,相比于看论文,博客显得更柔和一些,没有那么生硬,所以也想通过博客分享一些知识。
另外这个系统叫SoC,实际是一个类似MCU结构的电路系统,不过ARM官方都将M3和M0的系统叫SoC,那就叫SoC吧。

你可能感兴趣的:(神经网络加速)