王 彬, 方 芳, 王 伟, 任福继
(1.合肥工业大学 计算机与信息学院,安徽 合肥 230601; 2.情感计算与先进智能机器安徽省重点实验室,安徽 合肥 230601)
忆阻器是一种新型的无源元件,它具有纳米级尺寸、非线性以及记忆功能等特点,在模型分析、电路设计、神经突触等方面具有广阔的应用前景。传统的电路基本元件包括电阻、电感和电容,忆阻器则成为继电阻、电容和电感之后的第4种基本电路元件[1]。忆阻器的理论最初由蔡少棠在1971年提出[2],之后很长一段时间仍然停留在理论研究阶段,直到2008年惠普实验室制造出第一个物理忆阻器[3]。随着进一步研究发现,忆阻器是一种纳米级器件,具有独特的I-V磁滞曲线和开关机制,并有能力记住其断电前的状态,它具有低功率、非易失性和开关特性,与CMOS电路有良好的兼容性,因此CMOS电路设计中忆阻器应用研究占比不断攀升。尽管忆阻器潜在的应用领域广阔,但是由于制造纳米级器件的成本和技术阻力,忆阻器尚未在当今市场上使用。
本文提出在数字电路中使用忆阻器并且通过控制施加电压的时间制备可调电阻器的设计方案。方案模型在Simulink平台上得到验证,且在平台上的实验结果表明,相比于传统数控可编程电阻器,基于忆阻器的可调电阻器在阻值连续性、阻值精度等多方面均有明显改善。
惠普实验室在2008年找到了一种基于金属氧化物的两端可逆电阻开关材料,发现该结构和1971年蔡少棠提出的忆阻器具有类似的伏安特性曲线,存在明显的滞回特性。同年5月,惠普实验室在《自然》杂志上发表了文章《The Missing Memristor Found》[4],并在忆阻器及忆阻系统研讨会上,展示了世界首个3D忆阻器混合芯片。
鉴于忆阻器天然的记忆功能,众多科研工作者首先想到的是用于非易失性随机存储器,这也是惠普实验室发现忆阻器材料的初衷;基于忆阻器的存储器设计技术,被称为电阻RAM(RRAM),RRAM利用忆阻器件的电阻效应永久性地存储数据。研究表明,忆阻器作为非易失性存储器工作[5-6]有高密度、高速度特点,与标准存储器技术相比,它具有非易失性、良好的可扩展性、有效的无泄漏电流等优点。人脑中数以亿计的神经元通过神经突触和其他神经元连接,传统电子元器件很难模拟神经功能单元。忆阻器的行为机制与大脑里的神经突触非常相似[7],文献[8]利用忆阻器成功构造出简单神经网络,一定程度上减轻了使用传统硬件设计人脑神经网络的复杂度。在Nueromorphic系统中,集成了忆阻器的微单元被用来模拟突触,使得每个设备都可以和整个系统中的其他设备交互[9-10]。此外忆阻器在信号处理、图像处理、模式识别和算术运算等方面具有巨大的应用潜力。文献[11-12]提出了基于忆阻器的新型滤波器设计;文献[13]讨论了忆阻器在图像处理上的应用。
由于忆阻器尚未商品化,仍处于实验室阶段,目前市场上买不到忆阻器实物,只能通过计算机仿真或搭建实际电路来模拟忆阻器。忆阻器常见模型包括忆阻器实验室有源模型、忆阻器仿真器、忆阻器Spice模型[14]、忆阻器模拟电路实现等。
惠普二氧化钛忆阻器模型是一种典型的金属-氧化物-金属混合结构,它由2块金属铂(Pt)夹着一片二氧化钛(TiO2)薄膜(约5 nm厚)构成,二氧化钛薄膜分为掺杂区域和非掺杂区域,结构如图1所示。
图1 惠普忆阻器等效模型
假设掺杂区域的宽度为w,二氧化钛薄膜的宽度为D(约10 nm)。当w=D时,忆阻器阻值最小,规定其对应阻值为Ron;当w=0时,二氧化钛薄膜无掺杂,即忆阻器处于高阻状态,规定其对应阻值为Roff。整个忆阻器模型可以看成2个可变电阻串联,整体阻值与分界面的位置w(t)/D相关,忆阻器整体电阻可以表示为:
(1)
尽管(1)式对任意值的Ron、Roff都有效,但实际上掺杂二氧化钛薄膜的电阻明显小于非掺杂薄膜,因此有:
ΔR=(Roff-Ron)≈Roff
(2)
对一个有单一忆阻器和单一电压源的理想电路,根据基尔霍夫定律有:
(3)
边界条件q(0)=0,解得:
(4)
(5)
其中,i(t)为t时刻流过忆阻器的电流;q(t)为t时间内流经忆阻器的总电荷量;Q0=D2/(uDRon),uD为常数[15];η为常数[15]。
由等效模型可知,当掺杂区的长度w(t)=0时,M(q)=Ron,此时阻值很低,为低阻态;掺杂区的长度w(t)=D时,M(q)=Roff,此时阻值很高,为高阻态。
生活中常见的可调电阻主要有变阻器、电阻箱、程控电阻3类。变阻器多用于精度要求不高的场合,最大的诟病是不能方便地确定其具体阻值。电阻箱通过多组高精度电阻的串并联得到不同的阻值,使用时需要设置挡位,操作繁琐,且阻值连续性依赖于内置电阻数量,阻值精度又依赖于内质电阻规格。可编程电阻网络是程控电阻的常用方案,具有数字化、可编程、电阻可任意组合等特点,广泛应用于产品老化检测试验和汽车仪表的检验过程等。
可编程电阻网络是程控电阻的关键,组成电阻网络的方法很多,可采用8421BCD码方式,也可以采用二进制权值网络,连接方式上可以采用串联方式或并联方式。典型的电阻网络如图2所示。
可编程电阻网络的主控制器一般采用单片机[16]或FPGA[17]控制,本质上都是控制J1~JN开关的闭合与否。用FPGA来控制电阻网络即用软件的方式设计硬件,设计过程中可以方便地进行各种仿真验证。通过外部电路或仿真文件输入1个预置值,若输入的数值为370 Ω,输出的阻值大小则可以表示为R=200+100+50+20,即需将这些电阻接入,相应的继电器J6、J7、J8、J9断开,其余继电器闭合,对应的二进制编码为0000011110。通过程序控制电阻的接入,维护起来更加方便,但是阻值精度受限于电阻网络节点的数量。
图2 串联电阻网络
忆阻器仿真模型包括忆阻器实验室有源模型、忆阻器仿真器、忆阻器Spice模型和忆阻器模拟电路等。本文构建忆阻器Simulink模型,主要是出于简化模型的考虑(本文涉及的忆阻器模型并不需要考虑流经模型的电荷量)。
Simulink是Matlab下的一个组件,用来对动态系统进行建模、仿真、分析,除了集成数学、力学、电学、信号处理等多学科模块外,还允许用户自行定制模块[18]。根据第2节对惠普忆阻器的理论基础和数学模型的分析,构建忆阻器的Simulink模型,如图3所示。
图3 忆阻器Simulink仿真模型
构建的忆阻器Simulink仿真模型需要检验是否具有忆阻器特性(即独特的I-V磁滞曲线),只有仿真模型完全符合忆阻器特性才能够在设计可变电阻器模型中使用。忆阻器模型的设置参数见表1所列。
表1 模型参数
忆阻器模型在振幅1.0 V、频率1 Hz信号源下的I-V曲线如图4所示。
图4 忆阻器模型I-V曲线
从图4可以看出,模型表现出独特的滞后环,表明电压源反置后模型阻值已呈现出相反变化,符合忆阻器记性特性。因此本文建立的忆阻器模型可以用于进一步的忆阻器行为研究和电路应用分析。
忆阻器的基本特性包括有能力记住其断电前的状态,因此忆阻器可以用于设计精密电阻器。
本文构建的忆阻器Simulink设计可调电阻器模型存在如下2个问题:
(1) 施加正向电压还是反向电压,即根据目标阻值控制施加电压源的极性。正向电压导致二氧化钛薄膜掺杂区面积减小,电阻偏向Roff;反向电压增大二氧化钛薄膜掺杂区面积,电阻向Ron方向移动。
(2) 判断忆阻器模型是否到达预置电阻值(可调电阻器期望电阻值)并且及时切断电压源。
本文提出的解决方法如下:
(1) 从电路角度来说,在纳米级忆阻器物理器件中可以通过高频正弦信号读取忆阻器电阻值,这也是非易失性存储器(SPICE模型)的常用方法,然后根据忆阻器阻值和目标忆阻阻值的差别控制选择器切换施加电压源的电源极性。从Simulink模型角度来说,忆阻器模型具有记忆性,比较预置阻值与忆阻器模型当前的电阻值(即施加信号V(t)、i(t)的除法器结果),根据比较结果控制转换器切换到正向信号挡位或反向信号挡位,从而实现施加信号极性的控制。
(2) 从电路角度来说,在纳米级忆阻器物理器件中,需要反复使用高配正弦信号读取忆阻器电阻值,直到等于或一定条件下接近预置电阻值,再由控制器切断外部电源。从Simulink模型角度来说,判断忆阻器模型是否到达目标忆阻电阻值,首先通过除法器模块由施加的电源电压(信号强度)和流过忆阻器模型的电流(即模型输出端口对应的i(t))得到忆阻模型对应的阻值,然后使用比较器模块比较计算后的模型阻值与目标忆阻阻值,最后通过反馈电路控制信号源的连接状态。
基于忆阻器的可变电阻器等效电路原理图如图5所示,Simulink模型设计图如图6所示。
基于忆阻器的可调电阻器模型由Memristor模块(3.2节构建的忆阻器Simulink模型)和外围模块(比较器、切换器、控制器和反馈模块等)组成。切换器负责内置阈值(忆阻器模型初始电阻)与接收到的预置电阻值的比较以及信号源的切换(+1.0 V电压源或-1.0 V电压源),对应等效电路原理图的signal电路模块。除法器模块计算模型实时阻值,反馈模块通过比较模型实时阻值和预置电阻、控制信号源的连接状态,对应等效电路原理图的res-compare电路模块。To Workspace1模块用于将Memristor阻值回传到Matlab控制台。
综上可知,基于忆阻器的可调电阻器模型由信号源选择模块、忆阻器模块、忆阻器电阻计算与阈值比较模块、反馈控制模块组成,通过对外部信号(电源)施加时间的持续性控制,实现忆阻器阻值指向性的增加或减少直到到达预置电阻值或无限接近预置电阻值。
图5 基于忆阻器的可调电阻器等效电路原理
图6 基于忆阻器的可变电阻器模型
数控可编程电阻器主控制器一般采用单片机或FPGA实现。FPGA采用软件的方式设计硬件,方便仿真和参数对比,因此本文采用FPGA实现数控可编程电阻器,进而与基于忆阻器的可调电阻器模型进行精度对比。FPGA端主控制器程序基于ISE14.7集成软件环境,Verilog语言实现,ISIM仿真环境。忆阻器模型和基于忆阻器的可调电阻器模型设计均在MatlabR2014a平台和Simulink8.3工具箱完成。
由3.1节的分析可知,FPGA在程控电阻器中主要是控制可编程电阻网络,相关信号的波形图如图7所示。
图7 ISIM仿真结果
图7包括时钟信号、控制信号、电阻阻值权重、输出有效信号、预置电阻值和实际电阻值,其中预置电阻值设为410 Ω,valid信号有效后,控制信号为0000011111。实际得到的电阻值等于控制信号与电阻阻值权重的乘积和,即380 Ω。
ISIM仿真实验进一步说明了采用单片机或FPGA控制器的传统可编程电阻网络具有数字化、可编程、电阻可任意组合的特点,但是阻值连续性和阻值精度严重依赖电阻网络的规模。如本文实验使用的电阻网络权重分别为10 000、5 000、2 000、1 000、500、200、100、50、20、10,既不能精确到小数级阻值精度,阻值连续性也很差。
本文在基于忆阻器的可变电阻器Simulink模型中添加To Workspace组件,能够将忆阻器参数导出到Matlab工作区,实现了忆阻器阻值的实时记录,方便记录忆阻器阻值调整后的最终状态。不同预置电阻值下,采用FPGA主控制器的程控电阻网络有效阻值与可调电阻器阻值见表2所列。
表2 实验方案阻值精度对比 Ω
虽然表2基于忆阻器的可调电阻器模型阻值误差均为0,但这并不意味着基于忆阻器的可调电阻器模型不存在阻值误差。出现这个问题的主要原因是本文采用的程控电阻网络规模太小,阻值误差本身很大,与基于忆阻器的可调电阻器不在一个量级,无法直观地对比。如预置电阻值1.780 1 Ω,模型有效值1.780 099 Ω,精度误差大约在0.000 001 Ω。
基于忆阻器的可调电阻器实时计算模型阻值和目标阻值,并通过反馈电路控制信号源的状态,从物理实现的角度来说,这本身就存在一定的系统误差,受到模型阻值的计算速度和切断输入源的操作时间制约。
本文提出了可以在数字电路中加入忆阻器并且通过控制施加电压的时间得到一种可调电阻器的设计方案,并给出忆阻器Simulink模型和基于忆阻器的可调电阻器Simulink模型设计图以及模型对应的等效电路原理图。实验数据表明,与传统程控可编程电阻器相比,本文提出的模型在灵活性、阻值连续性和阻值精度上均有显著改善。
基于忆阻器的可变电阻器建模旨在说明该模型的可行性和在高频、射频电路中潜在的应用价值。