工作3年,一直在做传统的数字IC前端设计(CPU/SoC中的一些模块)。最近看到很多公司在招聘存算一体(Computing-in-Memory)芯片的设计工程师,感觉这是未来的一个热点方向。但我对RRAM、MRAM这些新型非易失存储器的特性,以及如何设计近存/存内计算的架构完全不了解。想请教一下,如果想向这个方向转型,需要系统补充哪些基础知识?有没有推荐的学习路径或者开源项目可以参考?
2026年,芯片行业‘存算一体’架构兴起,对于传统数字IC设计工程师,想切入这个领域需要学习哪些关于新型存储器(如RRAM)和近存计算架构的知识?
提问
回答 10

兄弟,你这问题问到点子上了。我去年刚从数字前端转去做存算一体,也是从一脸懵开始的。首先别慌,你3年的数字设计经验是宝贵的,尤其是对时序、面积、功耗的把握,这是底层相通的。
你需要补充的知识可以分两块:新型存储器本身,以及计算架构。
对于RRAM/MRAM这些,你不需要成为器件物理专家,但必须理解它们的电学特性如何影响你的“电路设计”。比如,RRAM的阻值范围、SET/RESET电压和电流、耐久性、保持时间,这些参数直接决定了你设计多值存储(MLC)的可靠性、外围电路(比如灵敏放大器)的复杂度和功耗。建议找几篇综述论文,比如《IEEE Transactions on Electron Devices》上关于RRAM阵列建模的,先建立概念。
更关键的是架构。存算一体的核心是把计算(通常是向量矩阵乘)嵌入到存储阵列里,利用欧姆定律和基尔霍夫定律在模拟域完成计算。所以,你需要理解模拟计算的基本原理,以及它如何映射到你的存储阵列上。比如,一个典型的存内计算单元,是用字线电压代表输入,用忆阻器电导代表权重,在比特线上积分出电流结果。这里面有大量的非理想因素:器件波动、线电阻、噪声……你的数字设计思维要切换到“容忍不精确”和“模拟-数字混合设计”的模式。
学习路径上,我建议三步走:1. 基础补课:Coursera上找找非易失存储器导论课,或者看Simon Wong的《Emerging Memories》这本书。2. 论文跟进:重点看ISSCC、VLSI、DAC这几个会议里Computing-in-Memory的session,从最近的架构论文看起,不懂的术语再往回查。3. 动手实践:现在有一些开源工具链,比如清华大学发布的“MNSIM”仿真框架,可以帮你对存算一体架构进行性能和功耗建模。虽然不能流片,但能让你对整体数据流和权衡有感觉。
最后提醒一点,这个领域还在快速演变,没有标准答案。保持学习,你的数字设计经验在定义数据路径、控制逻辑和接口时依然大有可为。

同是数字前端转过来的,分享一下我的学习心得,可能更偏重“如何上手”。
我觉得最大的转变是从“标准单元库+同步设计”的思维,转向“器件-电路-架构”协同优化的思维。在存算一体里,存储器的特性(比如RRAM的写能耗高、读速度快)直接决定了架构怎么设计。
你需要具体学习这些内容:
1. 存储器阵列的基本操作:怎么编解码、怎么读写。特别是感知放大器(Sense Amplifier)的设计,在存内计算里它被用来读模拟电流/电压,精度和速度是关键。
2. 数模混合信号设计基础:因为存内计算通常在模拟域做乘加,然后需要ADC把结果转回数字。你需要了解ADC的基本类型(如SAR、Flash)及其在功耗、面积、精度上的折衷。这是传统数字工程师很少接触的。
3. 架构层面的数据流:数据怎么从外部搬进来,怎么映射到阵列上,部分和怎么累加,怎么处理非线性激活。这需要你懂一些常见的计算模式,比如卷积、全连接层的具体计算过程。推荐的学习资源:
– 论文:从经典综述看起,比如《Proceedings of the IEEE》上的“In-Memory Computing with Resistive Switching Devices”。
– 课程:MIT OpenCourseWare 的 “Circuits and Electronics” 可以帮你补模拟电路基础,如果觉得太深,至少把运算放大器和ADC部分搞懂。
– 实践:关注一些大学(如清华、UCSB)和公司(如Mythic、Syntiant)公开的技术报告或博客。Github上可以搜“CIM”或“processing-in-memory”找一些RTL或模型代码,虽然不多,但可以参考。转型建议:如果可能,在公司内部找相关项目参与,哪怕只是做外围的数字控制部分。这是最快的学习方式。这个领域很缺既懂数字设计又懂存储器和架构的人,你的背景有优势。

兄弟,你这问题问得很及时。存算一体确实是热点,但别被新名词吓到。你做了三年传统数字IC前端,这其实是你的优势。你的痛点可能是觉得要重新学一堆存储器物理原理,其实不然。
首先,你需要补充的核心知识有两块:一是新型存储器的电学特性,二是如何用这些特性做计算。对于RRAM/MRAM,你不需要像器件工程师那样懂物理制造,但必须理解它们作为电路元件的关键特性:比如RRAM的阻值可变、非易失、写能耗、耐久性、器件波动性。这些特性直接决定了你在架构设计时能怎么用、要规避什么。建议找几篇综述论文,比如《Nature Electronics》上关于存内计算的,先建立概念。
其次,近存/存内计算架构的本质,是把计算放到数据所在的地方,减少数据搬运的能耗。你的CPU/SoC模块设计经验很有用,因为你需要设计的是存算阵列周围的数字控制逻辑、数据流调度、以及与传统处理器(比如你熟悉的CPU核)的接口和协同。这部分和你以前做模块设计是相通的,只是现在“模块”变成了一个能计算的存储器阵列。
学习路径上,我建议三步走:1. 理论铺垫:看综述,理解核心概念和挑战。2. 工具实践:用仿真工具玩起来。比如,可以用CrossSim或NeuroSim这类存算一体仿真平台(有开源版本),它们能帮你建模RRAM阵列,仿真神经网络映射后的性能功耗。你不用从头造轮子,先学会用工具评估架构。3. 上手项目:关注一些开源项目,比如MIT的“MAGNet”或者一些大学发布的存算一体加速器设计(例如基于FPGA原型验证的)。从理解别人的RTL代码开始,尝试修改。
注意一个常见的坑:别一开始就钻到器件物理的细节里。你的目标是成为能用这些器件做系统设计的工程师,而不是研发器件的。重点放在“如何用电路和架构抽象这些器件特性”以及“系统级权衡”上。

同是数字前端转过来的,分享一下我的学习心得。我觉得最大的转变是从“纯数字”思维,转向接受“模拟/混合信号”的不确定性。
你需要学的知识可以分层来看。底层是器件级:理解RRAM这类忆阻器,它的核心是阻值随电历史变化,这可以用来直接存储权重并做模拟域的乘加运算。关键参数包括:ON/OFF阻值比、线性度、对称性、波动和噪声。这些非理想特性会直接影响计算精度,架构设计时必须考虑补偿或容忍。
中间是电路级:学习基本的存算单元(1T1R)和阵列结构。怎么给阵列施加电压/电流来实现读写和计算(比如向量矩阵乘法)。这里会涉及模拟电路知识,比如灵敏放大器(Sense Amplifier)——用来读出模拟计算结果并转为数字信号。这部分你可能需要补一补,但不需要像模拟IC工程师那么深,重点是理解其功能、精度和速度限制。
顶层是架构和系统级:这是你发挥数字设计优势的地方。包括:设计存算阵列上方的数字控制器(调度计算流)、设计数据编码/解码电路、设计校准电路来对抗器件漂移、以及设计整个存算加速核与主机CPU的接口(如AXI)。你的SoC经验在这里能直接复用。
推荐路径:先快速过一下《CMOS超大规模集成电路设计》里关于存储器和数据转换的章节,建立基础。然后,强烈推荐在Google Scholar上跟踪几个大牛组的最新论文,比如Shouyi Yin(尹首一)、王绍迪、H.-S. Philip Wong等。看论文时,重点看他们的架构框图和数据通路。
开源资源方面,可以看看“DNN+NeuroSim”的联合仿真框架,或者一些大学在GitHub上发布的基于Verilog的存算阵列模型。先跑通例子,再尝试修改参数看看对系统指标的影响。
最后提醒一点,存算一体现在应用最火的是AI推理加速(因为神经网络计算主要是乘加)。你可以结合一个具体的应用场景(比如图像识别)来学习,这样目标更明确。

兄弟,你这问题问到点子上了。我去年刚从传统数字前端转去做存算一体,也是从一脸懵开始的。首先别慌,你3年的数字设计经验是宝贵的,存算一体芯片里控制逻辑、数据通路、接口这些还是需要传统数字设计的,你不是从零开始。
你需要恶补的第一块是存储器本身。RRAM、MRAM、PCM这些,和SRAM/DRAM完全不是一个路数。你得理解它们的物理原理(比如RRAM的阻变是离子迁移),这决定了它们的特性:非易失、模拟特性(多级阻态)、写速度慢、功耗不对称、耐久性有限等等。这些特性直接影响了架构设计。我建议找几篇综述论文精读,比如《Nature Electronics》上关于存内计算的综述,先把各种存储器的优缺点和适用场景搞明白。
第二块是近存/存内计算架构。这分两个层面:一是系统层面,数据怎么摆布,计算任务怎么映射到存算单元上,这和传统冯·诺依曼架构的思考方式很不同。二是电路层面,这是最核心的。比如用RRAM做存内计算,常利用它的交叉阵列结构和欧姆定律、基尔霍夫定律直接做模拟域的乘加运算。你需要学习模拟电路的基础知识了,比如运放、ADC/DAC,因为存内计算很多是模拟计算,结果需要数字化。
学习路径的话,我自己的经验是:1. 先补半导体存储器原理和模拟电路基础(拉扎维的书可以翻翻关键章节)。2. 上YouTube或B站找一些大学教授(比如清华、斯坦福的)关于存内计算的讲座,直观。3. 深入研究几个经典架构,比如ISAAC、PRIME等。4. 动手是关键!强烈推荐MIT的‘Mythic’或者一些大学开源的基于FPGA的存算一体仿真平台,虽然不能完全模拟器件特性,但能帮你理解架构和算法映射。
注意一个大坑:别一开始就钻进器件的物理模型出不来。我们做设计的,重点是理解器件抽象后的电学模型(IV特性、统计模型)对架构和电路设计的影响。转型期会很痛苦,因为知识跨度大,但想想未来,值得冲。

同是数字前端转方向的来聊聊。我的切入角度可能更偏‘如何快速上手项目’,毕竟公司招人是要干活的。
首先明确,存算一体领域现在也分很多方向。有做基于新型非易失存储器(如RRAM)的,也有做基于成熟SRAM/DRAM进行近存计算优化的。从你的背景看,也许从后者切入更平滑。很多公司在做的‘近存计算’,比如把计算单元嵌入到SRAM宏里(Bit-Serial计算等),或者设计3D堆叠下的高速接口,这里面大量的工作还是数字RTL设计,只是内存访问模式变了。你可以先从这个方向找机会。
如果你铁了心要搞RRAM/ MRAM这类新型存储器的存内计算,那需要补充的知识栈确实不一样。除了楼上说的,我特别强调两点:
1. 混合信号设计思维。存算一体芯片本质是数模混合芯片。数字工程师需要深刻理解模拟模块(存算阵列、ADC/DAC)的约束。比如,模拟计算精度有限、受噪声影响大,这要求你在设计数字校准电路、纠错电路、数据编码方式上动脑筋。你需要学习系统级建模工具(如MATLAB/Simulink)来评估整个混合信号系统的性能,而不仅仅是写RTL。
2. 软硬件协同与算法映射。存算一体芯片通常为特定算法(如DNN推理)优化。你必须懂你要加速的算法(比如CNN的卷积、矩阵乘),并知道如何把它高效地映射到存算阵列上。这涉及到数据流、并行度、数据复用等设计。建议学习一些基础的机器学习算法,并尝试用TensorFlow/PyTorch写点代码,理解计算图。
开源项目方面,可以关注UC Berkeley的‘DNN+NeuroSim’框架,它是一个集成了器件、电路和架构的仿真平台。还有Princeton的‘MNSIM’仿真器。虽然不能直接流片,但对于学习评估设计权衡至关重要。
最后建议,多读ISSCC、VLSI Symposium上的存算一体论文,这是前沿技术的风向标。看论文时,重点看他们的架构创新点是如何围绕存储器的特性展开的,以及他们用什么电路技术解决了器件的哪些缺陷(如变异、噪声)。转型不易,但机会很多,加油!

兄弟,你这问题问到点子上了。存算一体确实是未来几年的热点,尤其是AI推理场景下,能效比优势巨大。你做了三年传统数字前端,基础是很好的,转型有优势。
首先别被那些新名词吓到,核心还是数字电路设计。你需要补充的是存储器相关的知识。建议从两个层面入手:
第一,理解器件特性。RRAM、MRAM这些,你不需要像器件工程师那么深,但要搞明白它们的电气特性怎么影响你的设计。比如RRAM,它有高阻态和低阻态,用来表示0和1,但它的读写电压、速度、耐久性和传统SRAM完全不同。你得知道这些参数,才能设计外围电路。找几篇综述论文看看,了解基本原理和当前技术水平就够了。
第二,学习架构思想。存算一体的核心是把计算单元放到存储器阵列里或者旁边,减少数据搬运。你需要理解几种主流架构,比如数字存内计算(用存储器阵列做查表或者逻辑运算)、模拟存内计算(用存储器电导值做乘加运算)。我建议你先从数字式的入手,和你现在的知识衔接更平滑。
学习路径的话,可以先看几篇ISSCC或VLSI上的存算一体芯片论文,重点看架构图和数据通路。然后,强烈推荐关注一些开源项目,比如Princeton大学的DNN+NeuroSim仿真平台,或者一些大学开源的基于FPGA的存算一体验证平台。自己动手搭个简单的模拟乘加单元,感受一下。
最后提醒一点,这个领域还在快速发展,选公司时要看他们具体做哪种技术路线,是研究性质的还是接近产品化的,这要求的知识深度不一样。

同是数字前端转过来的,分享一下我的学习过程,比较实操。
痛点很明确:传统设计关心的是逻辑和时序,现在要关心器件非理想特性和模拟/混合信号电路了。
第一步,恶补基础。不用从头学半导体物理,但建议快速过一下《CMOS数字集成电路设计》里存储器章节,和《模拟CMOS集成电路设计》里放大器、ADC/DAC的基础知识。因为很多存内计算(尤其是模拟域)的读出电路需要这些。
第二步,聚焦RRAM。因为目前业界用RRAM做存算一体最多。你需要弄明白:1)它的IV特性,怎么实现编程和擦除;2)它的非理想特性,比如电导值波动、器件间差异、耐久性有限,这些“坑”会直接影响你设计的架构要不要加纠错、怎么校准。这些知识看器件公司的技术白皮书最快。
第三步,理解系统架构。找一两篇经典的存算一体架构论文精读,比如Google的那篇关于TPU结合RRAM的,或者斯坦福的ISAAC架构。把里面的数据流图、控制器怎么工作的、怎么解决器件非理想性的方法(比如多值存储、脉冲编码)搞清楚。自己试着用Verilog描述一个高度简化的控制器。
关于开源资源,除了Princeton的,可以看看MIT的“Mythic”公司的技术博客(虽然公司倒了但资料有启发),还有Chipyard框架里有没有相关例子。另外,多逛一下arXiv,搜“CIM”或“computing in memory”,跟踪最新进展。
转型初期,建议瞄准那些做数字存内计算或者近存计算(Near-Memory Computing)的岗位,这些对纯数字背景更友好。纯模拟存内计算的门槛会高很多。

兄弟,你这问题问到点子上了。我去年刚从数字前端转去做存算一体,踩了不少坑。首先得明确,存算一体不是要你变成存储器专家,而是理解怎么用这些新器件做计算。
核心要补两块:一是新型存储器的器件特性。RRAM、MRAM这些和SRAM/DRAM根本不一样,你得懂它们的IV特性、耐久性、写延迟/能耗、器件变异(variation)有多大。别看几个参数,关键是想明白这些非理想性对电路设计意味着什么——比如RRAM的阻值连续可调,但漂移严重,这直接影响你设计多值存储(multi-level cell)时的校准电路。
二是近存/存内计算的架构思想。传统冯·诺依曼架构是“取指-译码-执行-访存”,存算一体是把计算挪到数据所在的地方。你得学几种典型架构:比如基于SRAM的存内计算(用模拟计算做乘累加),基于RRAM的存内计算(用欧姆定律和基尔霍夫定律做矩阵乘),还有近存计算(把计算单元紧贴内存,用宽接口怼数据)。
学习路径建议:先看几篇经典综述,比如《Computing-in-Memory: A Architecture Perspective》和《A Review of Non-Volatile Memory-Based In-Memory Computing》。然后找个开源项目动手,比如MIT的“MAGNet”(基于RRAM的存内计算加速器框架)或者“SIMBA”(近存计算芯片的RTL代码)。最好能自己用Verilog写个简单的存内计算单元,比如用SRAM模拟位线计算乘累加,体验下模拟和数字混合设计的挑战。
注意:存算一体很多设计是模拟/混合信号电路,数字工程师容易低估模拟设计的难度。建议和模拟设计同事多聊,理解他们的设计约束。另外,这个领域论文很多但量产少,选方向时多关注工业界实际落地需求,别光追学术热点。

同是数字前端转过来的,分享一下我的学习心得。
我觉得转型的关键不是死磕器件物理,而是建立“以存储为中心”的设计思维。传统数字设计关心的是逻辑功能、时序和面积,而存算一体设计关心的是数据搬运的能耗、存储密度和计算并行度。
具体要学的知识可以分三步走:
第一步,理解新型存储器的宏观特性。不需要深入物理机制,但要掌握RRAM/MRAM的这几个实用特性:它们是非易失的(掉电数据不丢),写操作比读慢且耗能高,器件有工艺变异和随机性。这些特性直接影响架构设计——比如你会倾向于设计“读多写少”的计算任务,并且需要加入纠错或校准电路。
第二步,学习存算一体的典型计算模式。最重要的是矩阵向量乘法(MVM)的硬件实现,因为这是神经网络推理的核心。要明白怎么用RRAM的交叉阵列(crossbar)通过电压乘电导实现乘加运算,以及这种模拟计算带来的精度问题(噪声、非线性等)。
第三步,掌握混合信号设计的基本概念。存算一体芯片很多是数字模拟混合的,你需要了解ADC/DAC的作用(把数字信号转模拟,计算完再转回来),理解模拟电路的设计约束(比如匹配性、噪声容限)。
推荐资源:Coursera上有些存内计算入门课程,比如“In-Memory Computing”。开源项目可以看看“NeuroSim”,这是一个评估存算一体加速器的仿真平台,能帮你理解从器件到架构的整个链条。
一个小建议:先别急着深入RRAM器件物理,那是个深坑。从架构和系统级入手,理解怎么用这些存储器构建高效计算系统,这样更容易和你的数字设计背景结合。同时多关注业界动态,比如知存科技、千芯科技这些国内公司的技术路线,了解实际产品需要什么技能。
发表回答
登录后可在本页底部提交回答
