0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用深度学习加速芯片设计

MATLAB 来源:MATLAB 作者:MATLAB 2022-11-10 10:44 次阅读

实现自主可控的芯片设计已经成为我国社会和行业发展的热点,而伴随着对芯片功能性和稳定性与日俱增的要求,芯片设计也变得越来越复杂,如何快速和便捷地进行设计空间的探索也变得越来越具有挑战性!

今天我们有幸邀请到来自上海交通大学信息工程专业的卢凌峰和李江川两位同学,来分享他们在参与 MATLAB 学生创新项目(MathWorks Excellence in Innovation Projects)时是如何利用深度学习来加速锁相环设计的。GitHub 上也有他们分享的代码和数据,可以下载哦:https://github.com/lulf0020/Behavior-modeling-of-PLL

同时,如果是对芯片设计这个话题感兴趣,也可以参加我们 11 月 22/24 日晚上 7-8 点的小迈步之 MATLAB助力芯片设计系列讲座!作为入门级讲座,我们会使用丰富的实际操作案例来介绍如何在各领域使用 MATLAB 与 Simulink 实现芯片设计应用,欢迎来听!

以下是他们的分享——

锁相环(Phase Lock Loop, PLL)被称为芯片的“心脏”!它利用外部晶

振作为参考时钟,通过闭环控制输出一个稳定的更高频率的时钟,以供芯片的时序电路使用。心脏的正常跳动很大程度上决定着一个人能否健康地生活,而设计一个稳定的 PLL 则成为保障一个芯片能正常运行的重要前提!

2021 年,我们选修了杨宇红老师主讲的校企合作课程《工程实践与科技创新》,作为课程的一部分,我们需要在课程期间完成一个实践项目。MathWorks 的学生创新项目是由其在全球一线工程师们结合当前行业需求和最新技术发展趋势所确立的一些研究和实践课题,涉及 5G、大数据、工业 4.0、人工智能自动驾驶机器人无人机计算机视觉、可持续发展及可再生能源等各个领域。我们决定在其中选择一个项目并在 3 个月之内完成。

为什么选择“基于深度学习技术进行锁相环行为级建模” 项目?

这个项目的实用性以及新颖性吸引了我们!对锁相环进行行为级建模,可以节省设计过程中的时间成本。具体来说,通过深度学习建立锁相环的行为级模型之后,我们可以输入器件参数直接得到锁相环的性能表现,而不需要经过冗长的仿真测试环节。

另外,在选择这个项目之前,我们曾经在学校的机器学习课程中接触过神经网络的基础知识,也曾在暑期实习过程中,对很多的神经网络进行了调研,并实战过利用 YOLO 算法来做目标识别。一定的知识储备使得我们更加有底气选择这个项目。

在项目中遇到什么问题?是如何解决的?

数据集和模型是开展深度学习的两个关键因素。在这个项目中,我们遇到的两个主要问题包括数据集的收集和模型建立:

问题一:如何高效的收集数据集?

问题二:怎样建立有效的深度学习模型?

下面就给大家详细介绍一下我们是如何解决这两个问题的。

问题一:如何高效的收集数据集?

在这个项目中,没有现成的数据集可供我们使用。项目开始前,MathWorks出题工程师 Pragati Tiwary 对于题目细节给我们做了深入地解释。他告诉我们 MATLAB 的混合信号工具箱(Mixed-Signal Blockset)里所提供的N分频锁相环参考模型给我们提供了一种可以通过仿真来建立数据集的手段。

该模型(如下图示)包含了五个模块:鉴相器,电荷泵,环路滤波器,压控振荡器和分频器。我们需要做的是不断改变这五个模块的参数,看看会对锁相环输出信号的频率、锁定时间以及相位噪声产生什么样的影响。

a029acec-601b-11ed-8abf-dac502259ad0.png

图一 N 分频锁相环参考模型

混合信号工具箱除了提供参考模型,还提供了测试平台。利用这个平台,我们可以便捷地对各种不同参数下的锁相环模型的输出信号进行监测,记录下所需要的输出结果。

项目初期,我们遇到的主要问题是数据集的收集效率低下。为了获得一组数据,我们每次都需要手动更改模型各个模块的参数设置,再对进行一次仿真测试,最后需要手动记录测试平台的输出结果,十分费时。

这时,Pragati 给我们提供了耐心的指导,他告诉我们如何对锁相环模型进行批量的数据导入、仿真以及数据导出。在他的帮助下,我们将 Simulink 与 MATLAB 配合使用,由 MATLAB 程序调整模型参数并控制 Simulink 模型进行批量的仿真和测试。我们将模型中需要测试的参数设置为变量,这样就可以通过更改变量值的方式来更改仿真模型的参数值。

但是,我们随后发现一些涉及到模型结构的参数,比如环路滤波器的阶数,是无法简单地通过改变变量值的方式来进行修改的。正当我们一筹莫展时,却惊喜地发现锁相环中通常所采用的二阶,三阶和四阶环路滤波器的电路形式具有相似性。于是,我们统一采用了四阶环路滤波电路的模型,只是在设置参数时,通过将对应的电容电阻设为0,来模拟断路和短路,以实现更低阶数的环路滤波器。至此,我们实现了仿真模型参数的快速更改。

a0416058-601b-11ed-8abf-dac502259ad0.png

图二 二阶、三阶和四阶环路滤波器(从左到右)

对输出结果,我们也希望能够像仿真模型的参数一样,实现通过程序自动记录。但我们经过测试后发现,测试平台的最终输出结果无法导出,而只能导出中间结果。于是我们只好自动导出中间结果,再根据相应输出结果的计算方法,通过中间结果求解出我们所需要的最终结果。

最终,我们建立起了 MATLAB 和 Simulink 配合仿真和测试的全流程:通过生成在一定范围内的随机数,对仿真模型的参数值进行更改;使用MATLAB的控制指令进行模型的仿真和测试,Simulink会在仿真结束后将记录的中间结果回传到 MATLAB,最后根据回传的中间结果计算我们关注的输出结果并记录。在设定了程序执行的循环次数后,就能够实现无监管下的数据收集工作,在一定程度上提高了数据集的建立效率。

问题二:怎样建立有效的深度学习模型?

深度学习一般被用于复杂信息的特征提取以及预测量的回归或拟合标定。譬如在卷积神经网络模型设计中就包含较多的卷积层和池化层等用于图片特征信息的提取。而在我们的项目中,实际需要的特征值大多已经在项目信息中给出。

通过实验,我们发现仅两层的前馈式神经网络就可以较好地实现对输入参数到输出参数映射关系的建模,于是我们采用了神经网络中结构较简单的前馈式神经网络。

MATLAB 提供了一个深度学习工具箱,你可以从零开始构建想要的神经网络模型,也可以在工具箱所提供的参考神经网络模型上进行修改。该工具箱可以从 TensorFlow 和 Caffe 导入模型,并支持对 DarkNet-53、ResNet-50、NASNet、SqueezeNet 等较为热门的预训练模型进行迁移学习。

我们要给大家安利的是深度学习工具箱里所提供的 Neural Network Fitting APP。这个APP提供了如下图所示的神经元节点数可选的两层前馈式神经网络。这个神经网络以经典的非线性激活函数sigmoid作为隐藏层神经元的激活函数,而在输出层则采用了线性的输出函数;以均方差值(MSE)作为训练指标,并且可以对训练的结果进行回归度分析。在这个 APP 的基础上,通过人为地对训练数据、测试数据以及训练完成的模型进行一些数据处理,就大致满足了我们的需求。

a076fa10-601b-11ed-8abf-dac502259ad0.png

图三 Neural Network Fitting APP

不得不提的是,我们建立的模型一开始的拟合效果并不好,于是我们尝试了数据预处理、增加神经节点、调整各个数据集的比例等方式,最后得到了一个还不错的拟合效果。

在前馈式神经网络这一模型主体上,一个良好的数据预处理形式可以使得整体神经网络具有更好的拟合效果。对于数量级相差较大的数据,我们使用对数函数辅助进行归一化,使得其数据分布尽可能实现均匀且有区分度,不会有过多的差异数据聚集在数据轴上的几个点附近而导致欠拟合或过拟合。

在模型训练过程中,数据集会被划分为训练集、测试集和验证集三个部分。其中,训练集和测试集会用于模型的训练过程,而验证集主要用于模型最终性能的评估。在训练过程中,我们注意到,仅仅保证训练集和测试集占总体数据集大小的比例是不够的,测试集最好具有一定的绝对数量,否则其反映出来的模型拟合程度可能无法反应出模型实际的拟合程度。在这个项目中,大约需要 >200 个样本的测试集才能保证其用于训练的模型拟合程度数据较为可靠,使模型训练进程能有效推进下去。

结语:努力学习 + 勇敢尝试 = 成功

时光荏苒,现在我们一个已经在上海三菱电梯工作,一个正在备战考研,但这段跨时差跨语言的项目经历是很难忘的。我们最大的收获不仅是通过项目实践巩固了所学的知识、体会到创新的重要性,还通过和 MathWorks 的工程师在线上用英语沟通和交流开阔了眼界和提高了胆量。在此,非常感谢 MATLAB 学生创新项目给我们提供了实践的机会,感谢《工程实践与科技创新》课程的主讲老师杨宇红老师与 MathWorks 的 Pragati Tiwary 及许悦伊博士给我们提供的帮助和指导!

P.S.:卢凌峰和李江川两位同学参加的 Behavior Modeling of PLL 是 MathWorks 为同学们提供的二百余个 MATLAB 学生创新项目(Excellence in Innovation Projects)项目之一。

最后,如果是对芯片设计这个话题感兴趣,也可以参加我们 11 月 22/24 日晚上 7-8 点的小迈步之 MATLAB助力芯片设计系列讲座!作为入门级讲座,我们会使用丰富的实际操作案例来介绍如何在各领域使用 MATLAB 与 Simulink 实现芯片设计应用,欢迎来听!

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • matlab
    +关注

    关注

    182

    文章

    2963

    浏览量

    230147
  • 芯片设计
    +关注

    关注

    15

    文章

    1001

    浏览量

    54811
  • 深度学习
    +关注

    关注

    73

    文章

    5492

    浏览量

    120975

原文标题:“AI+”学生项目分享 | 利用深度学习加速芯片设计

文章出处:【微信号:MATLAB,微信公众号:MATLAB】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    NPU在深度学习中的应用

    设计的硬件加速器,它在深度学习中的应用日益广泛。 1. NPU的基本概念 NPU是一种专门针对深度学习算法优化的处理器,它与传统的CPU和G
    的头像 发表于 11-14 15:17 284次阅读

    Pytorch深度学习训练的方法

    掌握这 17 种方法,用最省力的方式,加速你的 Pytorch 深度学习训练。
    的头像 发表于 10-28 14:05 142次阅读
    Pytorch<b class='flag-5'>深度</b><b class='flag-5'>学习</b>训练的方法

    GPU深度学习应用案例

    GPU在深度学习中的应用广泛且重要,以下是一些GPU深度学习应用案例: 一、图像识别 图像识别是深度学习
    的头像 发表于 10-27 11:13 326次阅读

    FPGA加速深度学习模型的案例

    FPGA(现场可编程门阵列)加速深度学习模型是当前硬件加速领域的一个热门研究方向。以下是一些FPGA加速
    的头像 发表于 10-25 09:22 140次阅读

    AI大模型与深度学习的关系

    AI大模型与深度学习之间存在着密不可分的关系,它们互为促进,相辅相成。以下是对两者关系的介绍: 一、深度学习是AI大模型的基础 技术支撑 :深度
    的头像 发表于 10-23 15:25 367次阅读

    深度学习GPU加速效果如何

    图形处理器(GPU)凭借其强大的并行计算能力,成为加速深度学习任务的理想选择。
    的头像 发表于 10-17 10:07 153次阅读

    FPGA做深度学习能走多远?

    ,共同进步。 欢迎加入FPGA技术微信交流群14群! 交流问题(一) Q:FPGA做深度学习能走多远?现在用FPGA做深度学习加速成为一个热
    发表于 09-27 20:53

    利用Matlab函数实现深度学习算法

    在Matlab中实现深度学习算法是一个复杂但强大的过程,可以应用于各种领域,如图像识别、自然语言处理、时间序列预测等。这里,我将概述一个基本的流程,包括环境设置、数据准备、模型设计、训练过程、以及测试和评估,并提供一个基于Matlab的
    的头像 发表于 07-14 14:21 1897次阅读

    深度学习中的时间序列分类方法

    时间序列分类(Time Series Classification, TSC)是机器学习深度学习领域的重要任务之一,广泛应用于人体活动识别、系统监测、金融预测、医疗诊断等多个领域。随着深度
    的头像 发表于 07-09 15:54 704次阅读

    深度学习与nlp的区别在哪

    深度学习和自然语言处理(NLP)是计算机科学领域中两个非常重要的研究方向。它们之间既有联系,也有区别。本文将介绍深度学习与NLP的区别。 深度
    的头像 发表于 07-05 09:47 812次阅读

    深度学习与传统机器学习的对比

    在人工智能的浪潮中,机器学习深度学习无疑是两大核心驱动力。它们各自以其独特的方式推动着技术的进步,为众多领域带来了革命性的变化。然而,尽管它们都属于机器学习的范畴,但
    的头像 发表于 07-01 11:40 1184次阅读

    深度解析深度学习下的语义SLAM

    随着深度学习技术的兴起,计算机视觉的许多传统领域都取得了突破性进展,例如目标的检测、识别和分类等领域。近年来,研究人员开始在视觉SLAM算法中引入深度学习技术,使得
    发表于 04-23 17:18 1237次阅读
    <b class='flag-5'>深度</b>解析<b class='flag-5'>深度</b><b class='flag-5'>学习</b>下的语义SLAM

    为什么深度学习的效果更好?

    导读深度学习是机器学习的一个子集,已成为人工智能领域的一项变革性技术,在从计算机视觉、自然语言处理到自动驾驶汽车等广泛的应用中取得了显著的成功。深度
    的头像 发表于 03-09 08:26 594次阅读
    为什么<b class='flag-5'>深度</b><b class='flag-5'>学习</b>的效果更好?

    什么是深度学习?机器学习深度学习的主要差异

    2016年AlphaGo 击败韩国围棋冠军李世石,在媒体报道中,曾多次提及“深度学习”这个概念。
    的头像 发表于 01-15 10:31 1019次阅读
    什么是<b class='flag-5'>深度</b><b class='flag-5'>学习</b>?机器<b class='flag-5'>学习</b>和<b class='flag-5'>深度</b><b class='flag-5'>学习</b>的主要差异

    GPU在深度学习中的应用与优势

    学习中究竟担当了什么样的角色?又有哪些优势呢?一、GPU加速深度学习训练并行处理GPU的核心理念在于并行处理。在深度
    的头像 发表于 12-06 08:27 1206次阅读
    GPU在<b class='flag-5'>深度</b><b class='flag-5'>学习</b>中的应用与优势