2026年,AI推理芯片的“存算一体”架构成为热点,对于一名做传统冯·诺依曼架构数字设计的工程师,想切入这个新方向,需要学习哪些关于新型存储器(如ReRAM、MRAM)、模拟计算电路以及架构模拟器的知识?

开放10 回答 63 浏览

最近看行业资讯,AI推理芯片,特别是边缘侧的低功耗芯片,很多都在提“存算一体”(Computing-in-Memory)架构,说是能突破内存墙。我做了三年传统CPU/SoC的数字前端设计,一直是冯·诺依曼架构。对这个新方向很感兴趣,感觉可能是未来趋势。如果想转型切入存算一体芯片的设计,我需要从头学习哪些全新的知识?比如,是否需要深入了解ReRAM、MRAM这些新型非易失存储器的器件特性和阵列设计?里面的模拟计算电路(比如用DAC/ADC做乘加)和传统数字电路设计思路差异巨大,该如何入门?另外,评估这种新架构的性能,是不是需要学习使用特定的架构模拟器(如NeuroSim)?求一个系统的学习路线图。

分享:
  • 硅农预备役2024

    兄弟,你这问题问得很及时。存算一体确实是热点,但别被新名词吓到。你已经有三年数字前端经验,这是很好的基础。转型的关键不是完全抛弃旧知识,而是补充新模块。

    首先,新型存储器如ReRAM、MRAM,你不需要像器件物理专家那样深入,但必须理解其电气特性如何影响电路设计。比如,ReRAM的阻值变化、写能耗、耐久性,这些直接关系到阵列设计和外围电路。建议找几篇综述论文,比如《IEEE Transactions on Electron Devices》上关于非易失存储器阵列的,重点看操作机制和阵列架构部分。

    模拟计算电路是最大挑战。传统数字设计是0/1,这里却要处理连续信号。DAC/ADC是核心,但存算一体里常用的是更简单的模拟乘法累加,比如用电流镜、跨导放大器。入门可以从拉扎维的《模拟CMOS集成电路设计》开始,但不必全看,重点学运算放大器、电流镜、DAC/ADC基础。然后找存算一体芯片的ISSCC论文,看他们具体怎么用模拟电路实现乘加。

    架构模拟器如NeuroSim,是必须学的。它帮你快速评估架构性能,比如能耗、面积、精度。官网有教程,先跑通例子,再尝试修改参数。这比直接流片试错成本低得多。

    学习路线建议:1. 花一个月读综述,建立知识框架;2. 用两个月学模拟电路基础,配合论文看实际应用;3. 一个月上手NeuroSim,尝试建模简单存算阵列;4. 动手做个小项目,比如用Verilog-AMS混合仿真一个存算单元。注意,存算一体还在演进,别只盯一种技术,保持开放心态。

  • 芯片爱好者小李

    同是数字设计转过来的,分享一下我的经验。存算一体听起来高大上,但核心还是解决内存墙问题,你的系统视角很有用。

    新型存储器知识,重点放在“如何用”而非“为什么”。ReRAM/MRAM的阵列结构(比如crossbar)是关键,因为它直接映射了矩阵乘法。你需要知道这些阵列的寄生参数、非理想性(如IR drop、器件变异)对计算精度的影响。推荐一本书:《Memory Technologies for AI Applications》,里面讲了从器件到系统的链路。

    模拟计算电路方面,数字工程师最容易踩的坑是试图用数字思维去理解模拟模块。比如,精度在这里不是比特位决定的,而是信噪比、线性度。建议从实际电路图入手,在Cadence或类似工具里搭建一个简单的电流模式乘加电路,仿真看看。工具上,要熟悉混合信号仿真流程(Verilog-AMS或SystemVerilog real number modeling)。

    架构模拟器NeuroSim确实重要,但它只是一个工具。更深层的是学会如何为存算架构建模——包括计算单元、内存层级、数据流。这需要你补充一些计算机体系结构关于数据密集计算的知识,比如看《Computer Architecture: A Quantitative Approach》中内存层级部分。

    转型不必求快。可以先在现有工作中寻找结合点,比如参与SoC中存算一体IP的集成项目,从接口和系统角度切入。同时,关注行业会议(如ISSCC、VLSI)的存算一体session,了解最新实现。记住,你的数字设计经验在系统集成、验证和自动化脚本方面依然宝贵,不要妄自菲薄。

  • 嵌入式开发小白

    兄弟,你这问题问得很及时。存算一体确实是热点,但别被新名词吓到。你三年数字前端经验是宝贵基础,转型不是从零开始。核心是要理解,存算一体本质是用存储器阵列直接做计算,绕开频繁的数据搬运。所以你得先补存储器知识。ReRAM、MRAM这些,不用钻到器件物理层面,但必须懂它们的电学特性:比如ReRAM的阻值状态如何表示权重,写/读电压、速度、耐久性怎么影响设计。找几篇综述论文(比如《Nature Electronics》上关于存算一体的),重点看阵列结构和外围电路框图。模拟计算部分,确实和纯数字思维不同。关键理解DAC(把数字输入变模拟电压/电流)、跨导阵列(模拟乘加)、ADC(把模拟结果变回数字)这条链。建议从简单的电流镜、运放基础复习起,再去看存算一体芯片里的模拟宏单元设计。架构模拟器如NeuroSim或MNSim,一定要学。它们能帮你快速评估不同存储器、阵列规模下的性能、功耗和面积,避免盲目设计。学习路线:1. 读3-5篇存算一体架构顶会论文(如ISSCC、VLSI),理清主流方案;2. 用NeuroSim跑几个例子,改参数看影响;3. 动手用Verilog/Spice搭个小规模模拟乘加单元(比如4×4阵列),体验数模混合设计流程。注意,这个领域还在快速变化,别追求一次学透,先建立系统级认知,再深入你感兴趣的点。

  • 数字逻辑小白

    同是数字背景转过来的,分享点实际经验。痛点在于:传统数字设计是布尔逻辑和时序驱动,而存算一体里模拟计算是连续值处理,噪声、非线性、工艺偏差都会影响计算精度,这思维转换最难。学习可以分三步走:第一层,架构认知。不用急着啃器件物理,先搞明白为什么存算一体能破内存墙。找些易懂的科普文章或行业报告,了解基本概念如“权重固定存储在阵列中”、“模拟域乘加”是什么意思。然后重点学习系统架构:数据流怎么走(输入数字→DAC→模拟阵列乘加→ADC→数字输出),控制逻辑如何设计。这阶段你数字设计经验能用上,因为顶层控制、接口、数据预处理后处理还是数字电路。第二层,电路与器件。这时再深入新型存储器。ReRAM、MRAM各有优劣:ReRAM密度高但一致性挑战大;MRAM速度快耐久性好但密度相对低。了解它们的工作原理(阻变、磁化方向)即可,更重要的是它们在阵列中的行为模型,以及外围电路(如灵敏放大器、写驱动器)的设计要点。模拟计算电路,重点学习DAC和ADC,因为它们是数模接口的核心,精度和功耗往往成瓶颈。可以看一些关于存算一体芯片中SAR ADC、积分型ADC设计的论文。第三层,工具与评估。NeuroSim这类模拟器必学。它集成了器件模型、阵列模型和电路级评估,你可以用它探索不同设计点的权衡(比如精度vs.功耗vs.面积)。试着复现一篇论文的结果,这是最快的学习方法。最后建议:保持数字设计的老本行,存算一体芯片里数字控制部分依然重要,你的经验是优势。同时,多和做模拟/器件设计的同事交流,理解他们的约束。转型是拓宽技能栈,不是彻底抛弃旧知识。

  • 电路设计萌新

    兄弟,你这问题问到点子上了。我去年从传统SoC设计转到存算一体,踩过不少坑,给你说说体会。

    首先,新型存储器这块,ReRAM和MRAM的器件特性是必须啃的硬骨头。你不需要像器件物理专家那样去算量子隧穿,但得搞懂它们的I-V曲线、阻态切换的电压阈值、写操作电流大小,以及最重要的——非理想性,比如阻值波动、写疲劳和读干扰。这些直接决定了你的阵列尺寸和外围电路设计。比如ReRAM的阻值比(HRS/LRS)通常在10倍到100倍,远不如SRAM稳定,所以设计感知放大器(Sense Amp)时得容忍更大的电压裕度。建议先看几篇综述,比如“Emerging Non-Volatile Memory Technology”这类,然后对照一个标准1T1R阵列的版图,理解寄生参数对读操作的影响。

    其次,模拟计算电路确实是最大鸿沟。传统数字设计是0和1,存算一体里很多是用模拟域做MAC运算,核心就是DAC将数字输入转成电压,在阵列里通过欧姆定律和基尔霍夫电流定律实现加权求和,再用ADC把结果量化回数字域。你不需要从头设计ADC/DAC,但得理解分辨率、转换速率对精度的折中。比如8位ADC在SRAM阵列里可能够用,但在ReRAM里因为电流噪声大,可能需要10位甚至12位,面积和功耗就会飙升。入门建议先看一个简单的“crossbar array with near-memory ADC”架构,跑通一个2×2的乘法器仿真,用Verilog-A建模模拟行为,这样能快速建立直觉。

    最后,架构模拟器方面,NeuroSim是目前学术界最常用的,它基于SPICE和C++混合仿真,能估算面积、功耗和延迟。你不需要学新语言,但得看懂它怎么参数化阵列尺寸、ADC精度和网络层数。我当初花了两个晚上装好环境,跑了个ResNet-18推理,发现阵列利用率只有60%时,模拟精度比理论值差3%,就是因为忽略了器件波动。建议你先用NeuroSim跑一个简单的MLP,对比理想模型和实际模型,体会非理想性的影响。

    总结一下学习路线:先花两周看存储器器件特性,再花一个月用Verilog-A搭一个简易模拟MAC单元仿真,同时装好NeuroSim跑通一个范例,最后找一个小项目(比如手写数字识别)从头设计数字控制逻辑和模拟前端接口。别想一口吃成胖子,存算一体是跨学科方向,但你的数字设计底子会是巨大优势,因为系统级验证和集成能力别人很难速成。

  • 嵌入式系统新手

    老哥,我跟你背景差不多,也是数字前端三年,去年开始自学存算一体,现在做了个小项目。说几点我觉得最关键的。

    首先,千万别一上来就啃ReRAM量子隧穿模型,那是器件工程师的事。你得先搞明白“存算一体”本质是在存储器里加计算能力,核心是把你熟悉的数字加法器换成模拟域的乘加。比如你用SRAM阵列做查找表,那还是数字思维,但用ReRAM做权重矩阵,就需要理解电压输入和电流输出的关系。建议你先看一个叫“ISAAC”架构的论文,它用ReRAM crossbar阵列做卷积,然后把外围的ADC、移位寄存器、数字控制逻辑画成RTL,这样你就知道哪些部分可以用你现有的Verilog技能搞。

    其次,模拟计算电路这块,你不需要自己设计运放,但得学会和模拟工程师沟通。比如DAC的精度决定了计算误差,ADC的位数决定了量化噪声,你的数字逻辑得补偿这些误差。我当初做了一个小实验,用DAC把8位数字输入转成模拟电压,然后在SPICE仿真里加一个ReRAM模型,看输出电流的线性度。结果发现ReRAM的阻态波动导致MAC结果偏差5%,我就得在数字端加一个校正常数表。这个思路很重要:你不是去设计模拟电路,而是用数字方法去容忍模拟缺陷。

    架构模拟器方面,NeuroSim确实主流,但安装环境挺烦,依赖Python3和SPICE接口。我花了三天才跑通,但它能输出功耗、延迟和面积表格。你只需要看懂它的参数文件。比如你要评估一个边缘推理芯片,NeuroSim的“device”参数里有ReRAM阻值范围和写能量,你改一下就能对比不同工艺。注意它假设的ADC功耗占比较大,所以实际设计中要优先优化ADC共享策略,比如每列共享一个ADC,但会牺牲并行度。

    最后给个实在的建议:先找一个开源工具,比如“VTA”或者“Gemmini”,它们用数字逻辑模拟存算一体行为,不碰模拟细节。然后自己写一个简单的卷积层,用Python算理想结果,再用RTL仿真看误差。这样你就能快速找到知识盲区。别怕,存算一体是热点,但数字工程师的验证和集成能力很吃香,你只要补齐模拟和存储器的基本概念,就能切入。

  • 码电路的阿明

    作为一名在存算一体方向摸爬了两年的数字设计工程师,我理解你从传统架构转型时的困惑。核心痛点在于:你熟悉的数字逻辑门控思维,在存算一体中大量被模拟域的物理特性和阵列约束所替代。

    首先,关于新型存储器,你不需要成为器件物理专家,但必须理解关键器件特性如何影响你的数字设计。比如ReRAM的电阻状态是模拟的,有非线性和读取噪声,这会影响你设计ADC/DAC的精度要求;MRAM虽然速度快但写功耗大,调度策略就得跟着变。你需要学会看器件的I-V曲线、保持特性(retention)和耐久性(endurance)这些参数,而不是去深究量子隧穿效应。

    其次,模拟计算电路是你转型的最大坎。建议你不要直接去学模拟电路设计,而是先理解“为什么乘加运算可以在模拟域里做”。可以从最简单的电阻阵列乘法器入手,搞清楚DAC如何把数字权重转成电压输入,电流累加后ADC采样输出。重点学习ADC的精度(比如4-8位)和速度如何被阵列规模约束,以及数字校准逻辑如何补偿非理想性。有一个很实用的方法是,用Verilog-A写一个理想化的存算单元模型,先验证你的数字控制逻辑,再逐步加入非理想性。

    架构模拟器方面,NeuroSim和它的变体(如CrossSim)是必备工具。不要被它的模拟域仿真吓到,你先把它当成一个黑盒:输入你的网络架构和工艺参数,输出能效和延迟。关键是学会调整阵列尺寸、ADC精度、数据流策略这些数字设计的可调参数,观察对整体性能的影响。建议找一个经典网络(比如MobileNetV2),用NeuroSim跑通一条基线,再去调参,这样上手很快。

    最后,给你一个3个月的学习路线:第1个月,阅读2-3篇综述(比如IEEE Proceedings上的存算一体综述),重点理解阵列结构和数据流;第2个月,用Verilog搭建一个4×4的存算阵列控制器,配合一个理想化的模拟计算模型做功能仿真;第3个月,用NeuroSim跑一个边缘推理场景,输出能效对比。转型的捷径是抓住“数字控制+模拟计算”的接口设计,这恰恰是你数字设计的护城河。

  • 逻辑设计新人甲

    兄弟,你问的这个问题我太有共鸣了。我也是从传统SoC设计转过来的,刚入行时看到模拟计算电路简直懵了,感觉像另一个世界。不过别慌,我按实际踩坑经验给你拆解。

    先说新型存储器,建议你先看ReRAM,因为它是目前学术界和工业界研究最成熟的存算一体存储单元。你不需要知道怎么制造它,但必须清楚它的“写验证”(write-verify)流程,因为这对你的状态机设计影响巨大。比如ReRAM写一次可能因为工艺波动,需要反复读-写-验,这会引入额外的时钟周期,你必须提前在RTL里留出等待状态。MRAM相对简单,因为它用磁隧道结,写速度快但功耗大,更适合做缓存型存算。我的经验是:先找一个公开的ReRAM模型库(比如ASU的RRAM模型),在Cadence里跑一下特性曲线,理解它的多级存储能力如何影响你的ADC位数选择。

    关于模拟计算电路,这是最大的挑战。你的数字习惯是“要么0要么1”,但模拟计算里电压或电流是连续值,噪声和工艺偏差会导致计算误差。入门的关键是理解“计算精度与功耗的trade-off”。比如ADC每增加1位精度,功耗和面积会翻倍,而网络精度可能只提升0.5%。建议你从“混合精度架构”入手:先把关键的乘加运算放在模拟域做粗粒度计算(比如6位),然后在数字域做一个小的误差补偿模块。这样你就不需要精通模拟电路,而是设计数字校准算法。推荐一本工具书《Analog Design for Digital Engineers》,里面有很多用Verilog-AMS建模模拟行为的方法。

    架构模拟器你必须要学NeuroSim,但别一上来就搞内部模拟仿真。你可以先用它的“顶层性能评估”模式,输入你的阵列规模(比如256×256)、ADC精度(6位)、SRAM缓冲大小,直接输出能效和吞吐量。然后对照传统数字加速器(比如Google TPU)的数字仿真结果,找性能瓶颈。我踩过最大的坑是:忘了模拟阵列的读取延迟和ADC转换时间,导致数据流流水线冲突。你在做架构探索时,一定要在模拟器里把“单片阵列的完成时间”和“总线的握手时序”对齐。

    最后给你一个实操建议:别急着买板子或学工艺,先找一个开源的存算一体设计框架(比如OpenCIM),用SystemVerilog写一个基本的存算控制器,绑定一个简化的模拟计算模型,跑个小的矩阵乘法。这能让你快速理解“数字控制+模拟计算”的接口,比看一百篇论文都管用。转型最难的是心态,别怕模拟域,就当它是一个带误差的查表器,用数字手段去补偿它。

  • Verilog学习ing

    作为一个从传统数字设计转过来的工程师,我完全理解你的困惑。存算一体最大的门槛在于认知模式的切换。首先,新型存储器ReRAM和MRAM的器件特性必须学,但不需要到物理层,重点掌握它们的I-V曲线、阻变阈值、写延迟和耐久性。这些直接影响你设计外围读写控制电路,比如你原来写时序控制是标准的memory接口,现在要处理阻变单元的set/reset时序,还可能涉及多级cell的精度问题。模拟计算电路是另一个大坑。你要理解电流域加法的概念,比如在ReRAM阵列里,输入电压经DAC转换为字线电压,位线上电流求和就是乘加结果。这部分你可以先从典型的电荷域MAC入手,学习如何使用开关电容电路做采样和累加,再过渡到电流镜。建议找一两篇ISSCC或JSSC上的存算一体macro论文,照着电路图复现verilog行为模型,这样能把模拟概念转成数字理解。架构模拟器方面,NeuroSim确实是入门利器。它用python包封装了器件级和阵列级参数,你只要配置好ReRAM的Ron、Roff、线电阻,它就能反馈功耗、延迟和面积。我建议你先跑一个边缘推理场景,比如MobileNet在CIFAR-10上的精度和能效对比,这样能快速建立架构感知。最后给你一个路线:花一个月吃透一篇综述(比如Wan et al. 2022对存算一体宏的综述),再花两个月复现一个小规模阵列的数字时序模型,最后用NeuroSim调参。别怕模拟部分,你数字设计的大局观就是优势。

  • 逻辑电路爱好者

    兄弟,你问这个太及时了,我去年也刚转过来。先说关键点:存算一体不是要你成为模拟专家,而是要学会用模拟的思维做数字设计。首先新型存储器ReRAM和MRAM,你不需要会造器件,但要知道它们为什么能存多级值。ReRAM靠阻变层形成导电细丝,阻值可编程,MRAM靠磁隧道结的电阻变化。重点学它们的写操作条件——比如ReRAM需要用不同脉宽和幅值的脉冲来写不同阻态,这直接影响你设计写控制器的状态机。模拟计算电路其实可以用数字逻辑来抽象。比如一个crossbar阵列做矩阵乘法,你把输入看成电压,位线上电流求和就是累加。你完全可以用verilog-AMS或者行为级模型来模拟这个过程,不需要手算基尔霍夫定律。我推荐先学一种简单的DAC架构,比如电阻串DAC,它结构规则,容易和数字逻辑集成。架构模拟器不用一上来就学NeuroSim,先试试SimpleCiM这个开源工具。它基于python,你把阵列参数和网络结构写进配置文件,就能跑出延迟和功耗。比如你原来设计SoC时估算power用的是primepower,现在得学会读模拟仿真出来的电流波形。学习路线我建议:第一周,看一篇关于存算一体AI加速器的综述,比如Shafique等人的2021年论文,搞清分类。第二周到第四周,用python搭建一个简单的ReRAM阵列行为模型,模拟8×8矩阵乘法。第五周开始,用SimpleCiM跑一个边缘推理任务,比如ResNet-8,对比纯数字加速器的能效。这过程中你会自然理解到,为什么存算一体在低位宽(4-8bit)下能效突出,而高位宽反而受限。最后提个醒,千万别把模拟电路当成黑盒,你要至少能看懂ADC的采样保持和比较器时序,这样在做数字接口时才能把控毛刺和建立时间。

登录后可在本页底部提交回答

提问者

Verilog代码狗查看主页

描述场景与已尝试方案,更容易获得有效解答

浏览「其他」

相关问题

同分类问答

提问建议

  • 标题写清核心疑问,避免「求助」「请问」等空泛用语
  • 正文补充环境、版本、报错信息或截图
  • 先搜索本站是否已有相近问题,减少重复提问
  • 若与课程相关,请标明课时或章节便于讲师定位

技术问答

问完之后的闭环

  • 关联课程精学高频问题往往对应章节,建议回到课程补基础。
  • 产出与互助解决过程可写成笔记,帮助后续同学。

探索全站