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
    +关注

    关注

    175

    文章

    2924

    浏览量

    228470
  • 芯片设计
    +关注

    关注

    15

    文章

    901

    浏览量

    54422
  • 深度学习
    +关注

    关注

    73

    文章

    5240

    浏览量

    119936

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

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

收藏 人收藏

    评论

    相关推荐

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

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

    深度学习的由来 深度学习的经典算法有哪些

    深度学习作为机器学习的一个分支,其学习方法可以分为监督学习和无监督学习。两种方法都具有其独特的
    发表于 10-09 10:23 365次阅读
    <b class='flag-5'>深度</b><b class='flag-5'>学习</b>的由来 <b class='flag-5'>深度</b><b class='flag-5'>学习</b>的经典算法有哪些

    一文详解机器学习深度学习的区别

    深度学习这几年特别火,就像5年前的大数据一样,不过深度学习其主要还是属于机器学习的范畴领域内,所以这篇文章里面我们来唠一唠机器
    发表于 09-06 12:48 1344次阅读
    一文详解机器<b class='flag-5'>学习</b>和<b class='flag-5'>深度</b><b class='flag-5'>学习</b>的区别

    深度学习服务器怎么做 深度学习服务器diy 深度学习服务器主板用什么

    深度学习服务器怎么做 深度学习服务器diy 深度学习服务器主板用什么  随着人工智能的飞速发展,
    的头像 发表于 08-17 16:11 551次阅读

    深度学习框架和深度学习算法教程

    深度学习框架和深度学习算法教程 深度学习是机器学习
    的头像 发表于 08-17 16:11 727次阅读

    深度学习框架的作用是什么

    深度学习框架的作用是什么 深度学习是一种计算机技术,它利用人工神经网络来模拟人类的学习过程。由于
    的头像 发表于 08-17 16:10 1179次阅读

    深度学习框架区分训练还是推理吗

    深度学习框架区分训练还是推理吗 深度学习框架是一个非常重要的技术,它们能够加速深度
    的头像 发表于 08-17 16:03 1036次阅读

    深度学习框架是什么?深度学习框架有哪些?

    深度学习框架是什么?深度学习框架有哪些?  深度学习框架是一种软件工具,它可以帮助开发者轻松快速
    的头像 发表于 08-17 16:03 1792次阅读

    什么是深度学习算法?深度学习算法的应用

    什么是深度学习算法?深度学习算法的应用 深度学习算法被认为是人工智能的核心,它是一种模仿人类大脑
    的头像 发表于 08-17 16:03 1492次阅读

    深度学习算法简介 深度学习算法是什么 深度学习算法有哪些

    深度学习算法简介 深度学习算法是什么?深度学习算法有哪些?  作为一种现代化、前沿化的技术,
    的头像 发表于 08-17 16:02 6854次阅读

    如何加速深度学习AI应用

    深度学习 AI 应用是解锁生产力新时代的关键,人类的创造力能够通过机器得到提高与增强。我们致力于将大量培训数据和海量数学运算用于全面训练每个神经网络。训练可使用大规模批处理功能离线进行,历时数天。经过训练的网络要投入部署,那就面临严格得多的时限要求。
    发表于 08-04 11:29 409次阅读

    AI、机器学习深度学习的区别及应用

    深度学习和神经网络的区别在于隐藏层的深度。一般来说,神经网络的隐藏层要比实现深度学习的系统浅得多,而深度
    发表于 07-28 10:44 331次阅读
    AI、机器<b class='flag-5'>学习</b>和<b class='flag-5'>深度</b><b class='flag-5'>学习</b>的区别及应用

    利用深度学习模型最大限度地提高外显子组测序分析的准确性

    使用 NVIDIA Parabricks ,通过深度学习加速整个外显子组分析,降低 70% 的成本
    的头像 发表于 07-05 16:30 315次阅读
    <b class='flag-5'>利用</b><b class='flag-5'>深度</b><b class='flag-5'>学习</b>模型最大限度地提高外显子组测序分析的准确性

    GPU引领的深度学习

    早期的机器学习以搜索为基础,主要依靠进行过一定优化的暴力方法。但是随着机器学习逐渐成熟,它开始专注于加速技术已经很成熟的统计方法和优化问题。同时深度
    的头像 发表于 05-09 09:58 573次阅读

    智造之眼丨深度学习应用

    智造之眼®科学设计深度学习各应用流程,在尽量简化前期准备工作的基础上为客户提供稳定且准确的深度学习解决方案。
    的头像 发表于 05-04 16:55 478次阅读
    智造之眼丨<b class='flag-5'>深度</b><b class='flag-5'>学习</b>应用