【2023集创赛】芯原杯一等奖作品:基于芯原DSP核的智能语音SoC设计
本文为2023年第七届全国大学生集成电路创新创业大赛(“集创赛”)芯原杯一等奖作品分享,参加极术社区的【有奖征集】分享你的2023集创赛作品,秀出作品风采,分享2023集创赛作品扩大影响力,更有丰富电子礼品等你来领!
团队介绍
参赛单位:东南大学
队伍名称:一口气全队
指导老师:黄见秋
参赛队员:黎颖,李欣欣,甘云汉
总决赛奖项:一等奖
项目概述
本项目旨在设计一款基于芯原DSP (数字信号处理器)核ZSPNano的智能语音识别SoC芯片,基于芯原自主半导体IP搭建的技术平台,可以快速设计出满足不同应用的SoC产品,实现自主可控国产SoC芯片,帮助缩短产品的上市时间。该SoC芯片采用芯原公司自主研发的DSP核作为主控芯片,集成了高性能的语音信号采集、处理、识别等功能模块,实现语音信号的采集、处理和识别功能,将能够支持基于深度神经网络模型的智能语音识别算法和传统的语音识别算法。同时,该芯片还具备低功耗、低延迟、高精度等特点,适用于各种智能语音识别场景,可广泛应用于智能音箱、车载语音系统、语音翻译、智能家居、智能安防、智能手表、智能音箱等场景。该项目旨在为用户提供一种更加高效、便捷、安全的本地语音识别解决方案,推动智能语音识别技术的发展。
本项目的设计和开发基于ZSPNano的语音处理SoC设计平台和现有系统框架完成,配合现有DSP核、语音处理单元、存储器、I2C、I2S、PDM麦克风、WDT等功能模块,设计了能够满足系统需求的AMBA总线,实现音频数据输入输出、音频的数据处理与关键字判断识别、低功耗设计与综合。我们设计的基于芯原DSP核ZSPNano的智能语音识别SoC芯片包括以下内容:
- 基于Design Spec规定的memory mapping,完成了AHB Bus的设计
- 基于Design Spec规定的memory mapping,完成了APB Bus及AHB2APB Bridge的设计。
- 完成了必要的功能验证及结果输出
- 基于系统环境验证可靠,完成了低功耗及其唤醒的实现,其中包含低功耗软件实现与MFCC硬件加速实现。
- 完成了对低功耗实现的验证与评估
硬件概述
在本项目中,硬件设计主要包含两部分,一部分是AMBA总线系统的设计,包括AHB总线矩阵以及AHB转APB桥;另一部分是语音梅尔倒谱系数(Mel-scaleFrequency Cepstral Coefficients,下文以MFCC代替)提取硬件电路,包括硬件基2蝶形FFT运算单元、梅尔滤波器组以及离散余弦变换(DCT)运算单元等数字系统构成。
我们的AMBA总线设计如下图所示

MFCC硬件设计如下图所示,该MFCC硬件包含5大模块:预处理模块、(512点)傅里叶变换模块、梅尔滤波器组、对数运算模块以及离散余弦变换模块,对其进行封装后,将总体模块根据数据流连接,并将输入输出寄存器组和控制寄存器映射到APB总线上。

为了实现对硬件电路的自动化验证,我们编写了一套从MATLAB定点化模型的输出输出到Verilog仿真模型的数据对比测试代码,分别在每一个计算模块的testbench中加入这些数据源输入、硬件输出捕获以及输出与MATLAB模型对比的task实现自动化仿真,并将出错的数据地址显示在终端中,以便轻松检查电路的设计是否有错误以及快速定位错误位置。
软件概述
在本项目中,系统流程如下图所示,分为初始化,sleep,ZSP_nano wake,system wake,结束(回到sleep)四个状态。
其中初始化状态对i2c和PDM进行初始化;
sleep状态根据赛题要求,仅开启PDM时钟,ZSPNano进入低功耗状态并保持;
倘若PDM读取中断且读满1帧数据,就由sleep状态进入ZSP_nano wake状态进行唤醒;
在ZSP_nano wake状态中,经过三层判断:第一层通过“短时能量、短时过零率双门限端点检测法”判断读取数据是否为有效;第二层通过MFCC特征提取,判断处理数据是否为语音;第三层通过关键词唤醒方法判断是否为“Hi Verisilicon”。倘若判定结果为否,则返回sleep状态,对任意一层皆适用;倘若前两层判断为是则进入下一层,最后一层判断为是则进入system wake状态唤醒。
system wake状态会开启外设时钟和i2s初始化并输出正弦波。在输出完后重新回到sleep状态。如此,一次完整的低功耗唤醒流程结束。

参赛感悟与总结
首先,非常感谢集创赛给了我们这样一个可以在实践中学习SoC设计的机会,也非常感谢指导老师的有力支持。
其次,我觉得我们团队是幸运的,不仅仅是我们的付出得到了肯定,更重要的是,在长达8个月的赛程中,我们信赖彼此,相互支持,共同成长,收获了珍贵的友谊、回忆,这些并肩作战的日子想必在遥远的以后也依然温热。
在赛程的每个阶段,我们都分工明确,每一个队员都能够在完成自己负责的部分的基础上,进行深入的思考:如何优化才能提高识别速度?有没有更多更好实现低功耗的方法?在通过讨论提出更好的方法后,我们能够将其落地实现。这些积极负责的态度也是我们团队能够走到最后的原因吧。
最后,衷心祝愿屏幕前的朋友能够找到志同道合的伙伴,享受比赛过程中挑战困难带来的快乐 o((>ω< ))o
参加极术社区的【有奖征集】分享你的2023集创赛作品,秀出作品风采,分享2023集创赛作品扩大影响力,更有丰富电子礼品等你来领!
相关文章:
【2023集创赛】芯原杯一等奖作品:基于芯原DSP核的智能语音SoC设计
本文为2023年第七届全国大学生集成电路创新创业大赛(“集创赛”)芯原杯一等奖作品分享,参加极术社区的【有奖征集】分享你的2023集创赛作品,秀出作品风采,分享2023集创赛作品扩大影响力,更有丰富电子礼品等…...
代理IP与Socks5代理在跨界电商、爬虫、游戏和网络安全中的应用
在数字化时代,网络工程师们需要不断应对各种技术挑战,以满足跨界电商、爬虫、游戏和网络安全领域的需求。本文将聚焦于代理IP和Socks5代理,探讨它们在这些领域中的重要应用和影响。 1. 代理IP:跨越地域的电商战略 跨界电商已经成…...
DDS信号发生器Verilog波形发生器FPGA
名称:DDS信号发生器Verilog波形发生器 软件:Quartus 语言:Verilog 要求: 1.可产生正弦波,锯齿波,三角波,方波4种波形,频率可调 2.具有波形选择、起动、停止功能。 代码下载&…...
基于springboot实现二手交易平台管理系统演示【项目源码】分享
基于springboot实现二手交易平台管理系统演示 java简介 Java语言是在二十世纪末由Sun公司发布的,而且公开源代码,这一优点吸引了许多世界各地优秀的编程爱好者,也使得他们开发出当时一款又一款经典好玩的小游戏。Java语言是纯面向对象语言之…...
一个链接分享自制的产品图册
在商业中我们都需要一本产品册展现自家的产品特点,方便更多的人群挑选产品。但是纸质版的消费量最大,还不好存放和管理。不妨试试制作一本电子版的产品图册,无论是新手还是有经验者都能轻松上手 接下来给大家分享这款网站---FLBOOK在线制作…...
2023工博会 | 上海添力网络营销公司 | 助力工业品线上推广
2023年9月23日,为期五天的工博会正式落下帷幕。本届工博会不仅有数量,更加有质量,国内外企业纷纷拿出看家本领,围绕着“绿色低碳”、“数字化转型”、“数字经济”、“科技创新”、“智能制造”等主题进行推陈出新。 本次工博会也…...
React实现多图片预览功能、预览图上下张切换(实战示例)
前言 在React项目中,展示和预览多张图片是一种常见的需求。本篇帖子将介绍如何使用React和antd库来实现这一功能,并探讨如何在预览模态框中切换到前一张或后一张图片。 背景 我们将以一个OCR图像列表展示的示例来演示代码的运用。假设我们有一个OCR系…...
【NLP的Python库(04/4)】:Flair
一、说明 Flair是一个现代的NLP库。从文本处理到文档语义,支持所有核心 NLP 任务。Flair使用现代转换器神经网络模型来完成多项任务,并结合了其他Python库,可以选择特定的模型。其清晰的API和注释文本的数据结构,以及多语言支持&a…...
Vue框架学习大纲
Vue.js 是一个构建用户界面的框架,尤其是单页面应用。以下是一些主要基于 Vue 2.x 的版本必须了解的 Vue.js基本知识点和特性: Vue 实例: 创建一个 Vue 实例是开始使用 Vue 的第一步。 var vm new Vue({// 选项 });数据绑定: Vue 提供了非常直观的数据绑…...
利用PPT导出一张高清图的方法,office与WPS只需要使用一个即可,我使用的是office。
利用PPT导出一张高清图的方法,office与WPS只需要使用一个即可,我使用的是office。 1,PPT的功能拓展来解决导出高清图片方法1.1,PPT功能拓展—>安装插件: 2,各种方法导出图片效果显示:2.1&…...
2023年【四川省安全员B证】最新解析及四川省安全员B证模拟考试
题库来源:安全生产模拟考试一点通公众号小程序 四川省安全员B证最新解析考前必练!安全生产模拟考试一点通每个月更新四川省安全员B证模拟考试题目及答案!多做几遍,其实通过四川省安全员B证模拟考试题很简单。 1、【多选题】5.5kW…...
某瑞集团安全技术研发岗位面试
本文由掌控安全学院 - sbhglqy 投稿 一、自我介绍 阿吧阿吧,不多说 二、就ctf比赛经历方面提些问题 面试官:ctf打了多久了 我:两三年了。 面试官:得过什么奖项没有 我:本科的时候得过一个校一等奖。 面试官&#x…...
学习笔记|ADC反推电源电压|扫描按键(长按循环触发)|课设级实战练习|STC32G单片机视频开发教程(冲哥)|第十八集:ADC实战
文章目录 1.ADC反推电源电压测出Vref引脚电压的意义?手册示例代码分析复写手册代码Tips:乘除法与移位关系为什么4096后面还有L 2.ADC扫描按键(长按循环触发)长按触发的实现 3.实战小练1.初始状态显示 00 - 00 - 00,分别作为时,分,…...
2020 款凯迪拉克 XT5 车发动机加速异响
故障现象 一辆2020款凯迪拉克XT5车,搭载LSY发动机,累计行驶里程约为8万km。车主反映,加速时发动机有明显异响。 故障诊断 接车后试车,起动发动机,发动机怠速运转平稳;打开发动机室盖,能够听到轻…...
【AI视野·今日CV 计算机视觉论文速览 第255期】Wed, 27 Sep 2023
AI视野今日CS.CV 计算机视觉论文速览 Wed, 27 Sep 2023 (showing first 100 of 103 entries) Totally 100 papers 👉上期速览✈更多精彩请移步主页 Daily Computer Vision Papers Generating Visual Scenes from Touch Authors Fengyu Yang, Jiacheng Zhang, Andre…...
Java应用生产Full GC或者OOM问题如何定位
1 引言 生产应用服务频繁Full GC却无法释放内存,甚至可能OOM,这种情况很有可能是内存泄露或者堆内存分配不足,此时需要dump堆信息来定位问题,查看是哪些地方内存泄漏。 Dump文件也称为内存转储文件或内存快照文件,是…...
Data processing flow
1. 找出第一年的address,有lat和long,自动生成 csv_log_lat_county.ipynb import csv from geopy.geocoders import Nominatim from geopy.exc import GeocoderTimedOutgeolocator Nominatim(user_agent"my-app") data_csv r"D:/year…...
CAP理论与BASE理论
分布式领域CAP理论: Consistency(一致性), 数据一致更新,所有数据变动都是同步的Availability(可用性), 好的响应性能Partition tolerance(分区容错性) 可靠性定理:任何分布式系统只可同时满足二点,没法三者兼顾。忠告࿱…...
DRM全解析 —— ADD_FB2(3)
接前一篇文章:DRM全解析 —— ADD_FB2(2) 本文参考以下博文: DRM驱动(四)之ADD_FB 特此致谢! 上一回围绕libdrm与DRM在Linux内核中的接口: DRM_IOCTL_DEF(DRM_IOCTL_MODE_ADDFB2,…...
【Java】SpringMVC ResponseBodyAdvice详解
目录 1. ResponseBodyAdvice 2. supports方法 3. beforeBodyWrite方法 4. 实践 1. ResponseBodyAdvice Spring MVC的ResponseBodyAdvice是Spring 4.1版本中引入的一个接口,它允许在Controller控制器中ResponseBody修饰的方法或ResponseEntity执行之后ÿ…...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...
C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
C/C++ 中附加包含目录、附加库目录与附加依赖项详解
在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...
MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...
