数字IC实践项目(9)—SNN加速器的设计和实现(tiny_ODIN)

数字IC实践项目(9)—基于Verilog的SNN加速器

  • 写在前面的话
    • 项目整体框图
    • 完整电路框图
  • 项目简介和学习目的
    • 软件环境要求
  • Wave&Coverage
  • Timing,Area & Power
  • 总结

写在前面的话

项目介绍:
SNN硬件加速器是一种专为脉冲神经网络(Spiking Neural Networks)设计的硬件加速器。脉冲神经网络模拟了生物大脑中神经元之间的工作方式,通过离散的脉冲信号传递信息。SNN硬件加速器可以加速脉冲神经网络模型的训练和推理过程,提高神经网络的效率和能耗表现。

通过在硬件级别优化脉冲神经网络的计算,SNN硬件加速器可以实现更快的推理速度和更低的能耗,适用于诸如智能感知、边缘计算和神经形态学计算等领域。

本项目是对经典SNN的复现,是从开源的ODIN SNN处理器进行调整而来tinyODIN。是一款低成本的脉冲神经网络(SNN)处理器,简化为最简单的交叉阵列形式。tinyODIN内嵌了256个12位漏积分-放电(LIF)神经元和64k个4位突触,tinyODIN中没有现象学的Izhikevich神经元模型,也没有在线学习突触。

重要性:
SNN(脉冲神经网络)硬件加速器在人工智能和神经形态学计算方面具有重要性,其重要性体现在以下几个方面:

  1. 高效能耗比:SNN硬件加速器可以针对脉冲神经网络的特性进行优化,实现更高的能耗效率。由于神经元的活动是以脉冲的形式进行传递,因此专门针对这种模式设计的硬件可以显著降低能耗,提高能效比。
  2. 实时处理能力:脉冲神经网络通常用于处理实时感知和决策任务,例如视觉处理和运动控制。SNN硬件加速器的并行计算和快速响应特性,使其能够满足实时处理的需求,对于嵌入式系统和边缘计算等领域尤为重要。
  3. 神经形态学研究:对于神经形态学和神经科学研究来说,SNN硬件加速器提供了一种高度可定制和可调节的平台,有助于模拟大规模神经网络的活动,加深对大脑功能的理解,并促进人工智能与生物学的交叉研究。

对于找工作的帮助:

  1. 就业竞争力增强: SNN硬件加速器是人工智能领域的前沿技术之一,掌握其设计将使数字IC专业学生在求职市场上具备更强的竞争力。公司在人工智能芯片设计、边缘计算、物联网等领域都需要数字IC工程师具备相关技能,因此拥有SNN硬件加速器的设计经验将使学生更容易获得相关职位。
  2. 加深理论与实践结合: SNN硬件加速器的设计涉及到神经形态学计算原理、硬件架构优化等多个领域的知识。通过掌握SNN硬件加速器的设计,学生能够将所学的理论知识与实践相结合,加深对数字集成电路设计和人工智能的理解,并且能够在实际项目中应用所学的知识。
  3. 开拓创新思维: SNN硬件加速器的设计是一个创新的领域,需要工程师具备创新思维和解决问题的能力。掌握SNN硬件加速器的设计将培养学生的创新能力,激发他们在数字IC领域中提出新的设计理念和解决方案的能力,这对于找工作时的项目经验展示和职业发展都非常有帮助。

项目整体框图

项目整体框图如下,以SNN硬件突触和片上SRAM为核心,搭配SPI外围模块完成权重配置和事件输入,处理器采用了时间多路复用的方式,实现了一个包含256个神经元和64k个突触的交叉架构。
每个神经元和突触的状态和参数分别存储在1 kB 和32 kB的单口同步存储器中。

  • 控制器负责神经元和突触更新逻辑的时间多路复用
  • 调度器则处理来自输入AER总线的内部和外部事件

在这里插入图片描述

完整电路框图

整个电路结构如下,主要分为六个部分,分别为:

  1. aer_out:事件输出端口,用于处理地址和SNN突触触发结果。
  2. spi_slave:spi配置端口,用于设置全局寄存器、SNN突触权重以及事件配置等命令,支持双向读写。
  3. controller:SNN内部主控制模块。
  4. scheduler:事件分发模块,用于处理Bus数据和内部事件。
  5. synaptic_core:SNN突触阵列,存储突触状态,分时复用,降低SNN突触例化数量。
  6. neuron_core:LIF模型

在这里插入图片描述

项目难度:⭐⭐⭐⭐⭐
项目推荐度:⭐⭐⭐⭐
项目推荐天数:14~21天

项目简介和学习目的

基于开源项目完成rtl前仿到icc2布局,感兴趣的同学可以私信我,整个项目还有很多可以优化改进的地方,大家可以在完成学习的基础上进行改进,希望可以帮助大家更好的完成求职!

软件环境要求

整个项目对于初学者要求较高,完成复现需要花费较长的时间搭建软件环境,这里建议大家按需完成学习,循序渐进,可以从神经网络、SNN硬件加速器、RTL代码以及综合等方面进行展开。

要求的软件和EDA环境:
(1)操作系统要求:
Centos
(2)EDA 软件要求:
VCS2018,DC2018,ICC2 2018
(3)硬件要求:
电脑运行内存 >= 16Gb(便于综合)

项目学习目的:
(1)熟练掌握复杂项目的工程管理;
(2)熟悉 Verilog HDL仿真、综合工具以及了解数字IC设计工具及流程;
(3)学习SNN网络的基本结构和基础原理;
(4)学习SNN硬件加速器;
(5)熟练掌握Verilog语法和验证方法;

Wave&Coverage

配置SNN突触权重后,通过SPI完成事件输入,在Aerout ACk上可以采样到LIF单元对应状态。
在这里插入图片描述
整个项目的Coverage如下:
在这里插入图片描述

Timing,Area & Power

基于tsmc 40nm工艺完成综合,以下为相关报告。

Timing:
在这里插入图片描述
Area:
在这里插入图片描述

power:
在这里插入图片描述

icc2布局如下:
ps:手动粗糙布局,也没有对应SRAM的IP,图一乐。
在这里插入图片描述

总结

项目涵盖了SNN硬件加速器的基础理论,Verilog实现和仿真和测试所需脚本和环境配置。
需要搭建完整的软件和硬件环境,相对先前列出的开源和初级项目来说,整体难度稍高,适合作为前期的提升项目。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/277878.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

三、传输层拥塞控制、差错控制

3.1 概述和传输层服务 传输服务和协议: 为运行在不同主机上的应用进程提供逻辑通信; 传输协议运行在端系统-发送方:将应用层的报文分成报文段,然后传递给网络层;接收方:将报文段重组成报文,然后传递给应用…

泽众云真机-机型支持ADB调试功能即将上线

最近云真机平台在线客服,收到很多咨询关于ADB调试功能,什么时候能更新?据小编所知,正在升级之中,有一块专门为了解决ADB调试功能提前准备,升级网络硬件设备,目前平台的功能已开发完成&#xff0…

2024/3/15 记录简版抖音部署遇到的问题

1、Centos连不上网 参考这一篇:虚拟机 CentOS 有线连接图标直接消失,网络连接不上,网络连接失败的解决方案(亲测有效)_centos网络图标不见了-CSDN博客 2、SQLyog连接不到docker中的mysql 原因是对密码有加密过程 &a…

asp.net 作业星软件系统

asp.net 作业星软件系统 用户功能:分教师和家长(学生) 注册登录:登录部分是用户名密码,以及教师和家长(学生)的勾选; 注册包括用户名密码确认密码再次确认密码(与上方输入的密码比对)身份班级设置找回账号的问题和答案…

第三篇 - 概述- IAB受众和技术标准 - IAB视频广告标准《数字视频和有线电视广告格式指南》

第三篇 - 概述- IAB受众和技术标准​​​​​​​ - 我为什么要翻译介绍美国人工智能科技公司IAB技术标准系列(2) 本文目录 一、IAB技术实验室简介 二、概述及IAB受众 三、资源- IAB倡导的相关视频广告技术标准 四、案例分享-介绍一家数字化营销服务…

如果网络不好 如何下载huggingface上的模型

很多朋友网络不太好,有时候上不了huggingface这样的国外网站; 或者网络流量不太够,想要下载一些stable diffusion模型,或者其他人工智能的大模型的时候,看到动辄几个G的模型文件,不太舍得下载;…

【JavaSE】类与对象

前言 Java是一门纯面向对象的语言,在面向对象的世界里,一切都为对象。它是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。类与对象是我们学习面向对象最基础的知识,是面向对象实现的基石,可见它是有多么重…

Linux环境开发工具之yum

前言 前面我们已经对基本的指令和权限进行了介绍,本期开始我们将介绍常用的开发工具。例如:软件包管理器yum。 本期内容介绍 Linux上安装软件的方式 什么是yum yum的相关操作 yum的本地配置和yum源 一、Linux上安装软件的方式 在介绍Linux上如何安装一…

Stable Diffusion 安装教程

一、安装准备 1.电脑需要安装python环境 2.下载SD的安装包 二、安装python 1.python安装,python包下载地址:Download Python | Python.org 2.运行exe下载包 3.然后下一步,选择目录后再下一步 安装完成 4.打开终端 输入python,…

MongoDB从0到1:高效数据使用方法

MongoDB,作为一种流行的NoSQL数据库。从基础的文档存储到复杂的聚合查询,从索引优化到数据安全都有其独特之处。文末附MongoDB常用命令大全。 目录 1. 引言 MongoDB简介 MongoDB的优势和应用场景 2. 基础篇 安装和配置MongoDB MongoDB基本概念 使…

打破数据孤岛,TDengine 与 Tapdata 实现兼容性互认证

当前,传统行业正面临着数字化升级的紧迫需求,但海量时序数据的处理以及数据孤岛问题却日益突出。越来越多的传统企业选择引入时序数据库(Time Series Database,TSDB)升级数据架构,同时,为了克服…

vue3 el-form中嵌套el-tabale 对输入动态校验

简单案例 <el-form :model"Form" :rules"rules" ref"FormRef" class"formDiv"><el-table :data"Form.copyWriters" style"width: 100%"><el-table-column label"文案链接"><temp…

ISIS默认层级实验简述

ISIS被划分为三个层级&#xff1a;Level 1、Level 2和Level 1-2。 默认情况下&#xff0c;ISIS路由器属于level 1-2,是指同时支持Level 1和Level 2的路由器。路由器既可以在同一个自治系统内部进行路由选择&#xff0c;也可以将路由信息传递到其他自治系统。 实验拓扑图&#…

DDos攻击如何被高防服务器有效防范?

德迅云安全-领先云安全服务与解决方案提供商 什么是DDos攻击&#xff1f; DDos攻击是一种网络攻击手段&#xff0c;旨在通过使目标系统的服务不可用或中断&#xff0c;导致无法正常使用网络服务。DDos攻击可以采取多种方式实施&#xff0c;包括洪水攻击、压力测试、UDP Flood…

【C语言】字符函数与字符串函数以及内存函数 { 超详细攻略,一篇学会 }

今日分享&#xff1a;字符、字符串函数和内存函数 内存函数就是对内存进行操作的函数 字符串函数就是对字符串进行操作的函数 字符函数就是对字符进行操作的函数 str前缀的函数是字符串函数&#xff0c;头文件string.h mem前缀的函数是内存函数&#xff0c;头文件stdlib.h 字符…

verilog 从入门到看得懂---verilog 的基本语法数据和运算

笔者之前主要是使用c语言和matab 进行编程&#xff0c;从2024年年初开始接触verilog&#xff0c;通过了一周的学习&#xff0c;基本上对verilog 的语法有了基本认知。总统来说&#xff0c;verilog 的语法还是很简单的&#xff0c;主要难点是verilog是并行运行&#xff0c;并且强…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:TabContent)

仅在Tabs中使用&#xff0c;对应一个切换页签的内容视图。 说明&#xff1a; 该组件从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 支持单个子组件。 说明&#xff1a; 可内置系统组件和自定义组件&#xff0c;支…

浏览器同源策略及跨域问题

同源策略&#xff1a;同源策略是一个重要的安全策略&#xff0c;它用于限制一个源的文档或者它加载的脚本如何能与另一个源的资源进行交互。它能帮助阻隔恶意文档&#xff0c;减少可能被攻击的媒介。 同源策略的作用&#xff1a;保护浏览器中网站的安全&#xff0c;限制ajax只…

0基础 三个月掌握C语言(11)

字符函数和字符串函数 为了方便操作字符和字符串 C语言标准库中提供了一系列库函数 接下来我们学习一下这些函数 字符分类函数 C语言提供了一系列用于字符分类的函数&#xff0c;这些函数定义在ctype.h头文件中。这些函数通常用于检查字符是否属于特定的类别&#xff0c;例如…

【教学类-34-10】20240313 春天拼图(Midjounery生成线描图,4*4格拼图块)(AI对话大师)

作品展示&#xff1a; 背景需求&#xff1a; 利用华文彩云空心字&#xff08;粗胖字体。凑满9个拼图&#xff09;制作了3*3的拼图块 【教学类-34-09】20240310华文彩云学号拼图&#xff08;3*3格子浅灰底图 深灰拼图块&#xff09;&#xff08;AI对话大师&#xff09;-CSDN博…