忆阻器全称为记忆电阻,最早提出忆阻器这个概念的是华裔科学家蔡少棠教授[1-2],其在研究电荷、电流、电压和磁通量之间的关系时[3],推断除了电阻、电容和电感器件之外,应该还有第四种基本电路元件,表示电荷与磁通量之间的关系.这种基本电路元件的效果,就是其电阻会随着通过的电流量而改变,而且就算电流停止了,其电阻仍然会停留在之前的值,直至通过了反向电流阻值才会改变为原来的值.2008年惠普实验室宣布其设计的Pt/TiO2/Pt三明治叠层结构器件是忆阻器,即世界上首个忆阻器实物诞生[4].忆阻器工艺与传统互补金属氧化物半导体(CMOS)技术兼容,且具有低功耗、体积小、存算一体化等优势,被认为在未来极有可能广泛应用于非易失性存储器[5]、非易失性逻辑运算、类脑神经形态计算[6]等领域.王兴培等[7]完成了具有最小操作脉冲的基于忆阻器的逻辑电路的合成,刘功智等[8]提出了基于混合CMOS忆阻器逻辑电路的超前进位加法器,刘功智等[9]基于MRL逻辑提出了一种改进的多功能模块,文献[10]完成了基于忆阻器的无晶体管组合逻辑电路的设计与比较分析.目前的三值逻辑主要是使用CMOS管和FET,1980年代开始使用CMOS对三值逻辑进行研究[11].但使用CMOS的三值逻辑电路需要更多的CMOS和逻辑门,这导致电路面积的增大和能耗的增加.由于忆阻器功耗低、体积小且与CMOS工艺兼容,学者开始对忆阻器实现逻辑进行研究.王晓媛等[12]利用二值忆阻器和CMOS设计了三值MRL逻辑电路.钟悦航等[13]提出基于MAGIC的三值基本逻辑电路.但文献[12]的三值MRL逻辑电路的设计与实现中三值基本逻辑门的输出信号存在一些误差;文献[13]中设计的三值基本逻辑门进行级联时会导致输出波形失真.这里针对以上两个问题进行相应的改进设计,对于第一个问题采用更换不同阈值电压的MOS管及修改忆阻器参数的方式进行改进,对于第二个问题采用在每一级电路间增加电压跟随器的方法进行改进.1 忆阻器模型分析近年来,研究者们提出了一些忆阻器的二值逻辑实现方法,有忆阻器比值逻辑和忆阻器辅助逻辑等.文献[14-15]对MRL设计方法进行扩展,实现了三值与逻辑和三值或逻辑.为了设计逻辑电路,采用Knowm公司提出的忆阻器模型和器件库[16].该忆阻器模型是平均亚稳态开关忆阻器模型(mean metastable switch memristor model),其将忆阻器描述为亚稳态开关的集合,每一个开关可以处于两种状态的任意一种,并在给定的时间内根据所施加的电压计算开关切换状态的概率.根据忆阻器状态X,其电导为G(X)=X/RON+(1-X)/ROFF;流过忆阻器的电流为i=Gxv=X/RON+(1-X)/ROFFv;忆阻器状态改变的快慢由dX/dt描述,具体为dXdt=1τ1+e-β(V-VON)-1(1-X)-1-1+e-β(V+VOFF)-1X,式中:v为忆阻器两端的电压VTE-VBE;RON和ROFF分别为忆阻器的两个阻值;VON和VOFF分别为忆阻器状态切换时的阈值电压;τ为忆阻器的时间常数;β=1/(Tk/e),其中,T为热力学温度,k为玻尔兹曼常数,e为单个电子的电量.在仿真过程中,在忆阻器两端连接正弦电压源,设置电压源的幅值为0.5 V,频率为100 Hz.观察其伏安特性曲线为“8”字型的捏滞回线且经过坐标原点,如图1(a)所示,其阻态随电压的变化如图1(b)所示.10.13245/j.hust.240301.F001图1忆阻器的性能特性2 基础逻辑门的电路设计与仿真2.1 三值逻辑与门和或门根据三值逻辑关系,三值逻辑与门和或门真值如表1所示.基于忆阻器MRL逻辑,设计的与门电路和或门电路如图2所示.下面分析三值逻辑与门和或门的电路设计原理.10.13245/j.hust.240301.T001表1三值逻辑与门和或门真值表输入1输入2与门输出或门输出00000101020210011111121220022112222210.13245/j.hust.240301.F002图 2三值逻辑与门和或门电路a.VIN1=VIN2两个输入端电压相等,因此电路各处电压相等,输出端与输入端电压相等,所以输入值与输出值一致.b.VIN1VIN2与门:输入端口1的电压大于输入端口2的电压,因此电流从输入端口1流向输入端口2.与输入端口1相连的忆阻器M1加上了反向电压,为高阻状态,与输入端口2相连的忆阻器M2加上了正向电压,为低阻状态.可以求得VTAND=ROFFVIN2+RONVIN1RON+ROFF,假设RON≪ROFF,则有VTAND≈VIN2,所以当输入为(VIN1,VIN2)={(2,1),(2,0),(1,0)}时,VTAND={1,0,0}.或门:输入端口1的电压大于输入端口2的电压,故电流从输入端口1流向输入端口2.忆阻器M1加上了正向电压,为低阻状态,忆阻器M2加上了反向电压,为高阻状态.可以求得VTOR=RONVIN2+ROFFVIN1RON+ROFF,若假设RON≪ROFF,则有VTOR≈VIN1,故当(VIN1,VIN2)={ (2,1),(2,0),(1,0)}时,VTOR={2,2,1}.c.VIN1VIN2与门:输入端口1的电压小于输入端口2的电压,电流从端口2流向端口1.M2加上了反向电压,为高阻状态,M1加上了正向电压,为低阻状态.可以求得VTAND=RONVIN2+ROFFVIN1RON+ROFF,若假设RON≪ROFF,则有VTAND≈VIN1,故当(VIN1,VIN2)={(0,1),(0,2),(1,2)}时,VTOR={0,0,1}.或门:输入端口1的电压小于输入端口2的电压,电流从端口2流向端口1.M2加上了正向电压,为低阻状态,M1加上了反向电压,为高阻状态.可以求得VTOR=RONVIN1+ROFFVIN2RON+ROFF,若假设RON≪ROFF,则有VTOR≈VIN2,故当(VIN1,VIN2)={(0,1),(0,2),(1,2)}时,VTOR={1,2,2}.2.2 三值逻辑与门的仿真在LTspice中搭建如图2(a)所示的电路,将忆阻器的参数设置为Ron=100 Ω,Roff=10 kΩ,并连接信号源进行仿真测量,得到图3中的波形结果,图中:Vin1和Vin2为输入信号源的波形;Vout为输出波形.10.13245/j.hust.240301.F003图 3三值逻辑与门仿真波形图可以看出:设计的电路输出与输入逻辑基本符合三值与门逻辑,图中输出存在跳变的时间点,原因是此时逻辑门两端的输入也产生了跳变,故为正常现象.由仿真软件中的功耗分析可知逻辑与门的功耗主要处在25 μW和98 μW两个状态,可以算得平均功耗约为31.8 μW.2.3 三值逻辑或门的仿真在LTspice中搭建如图2(b)所示的电路,并连接信号源进行仿真测量,得到图4中的波形结果,其中Vin1和Vin2为输入信号源的波形,Vout为输出波形.10.13245/j.hust.240301.F004图 4三值逻辑或门仿真波形图与三值逻辑与门类似,输出波形有跳变属于正常现象,且电路输出逻辑符合三值或门逻辑.由仿真软件中的功耗分析可知逻辑或门的功耗主要处在24 μW和98 μW左右两个状态,计算可得平均功耗为32.4 μW左右.2.4 三值逻辑非门的设计与仿真三值逻辑非门一般指标准三值反相器STI.STI的输入输出逻辑关系为VSTI=2-VIN,其中:VIN为输入信号;VSTI为输出信号.根据逻辑关系,STI门电路如图5所示.STI门由两个耗尽型NMOS管与两个相同的忆阻器构成,NMOS管M2的阈值电压应该要大于M1管的阈值电压.10.13245/j.hust.240301.F005图5STI门电路文献[12]将M1和M2的阈值电压Vth分别设置为0.25 V和0.75 V,用电源电压VCC=1 V表示为逻辑2.这样当输入电压为0 V时,两个NMOS管都处于截止状态,相当于开路,此时输出电压可视作VCC,对应逻辑2;当输入电压为2 V时,两个NMOS管均处于导通状态,视为短路,此时输出端视作接地,对应逻辑0;当输入电压为1 V时,NMOS管M1导通,M2不导通,M1视为短路而M2视为开路,此时电路相当于两个阻值相同且都为ROFF的电阻串联分压,输出电压为VCC/2,视作输出逻辑1.但是当输入逻辑1时输出逻辑存在误差,即输出电压VSTI=ROFF2ROFF+RM1VCCVCC/2.若将管M1认为导通状态,视为短路,则应满足VgsVth.而实际上Vgs=VIN-VSTIVth,故M1不能导通从而导致VSTI输出电压偏高,对于文献[12]中将M1的Vth设置为0.25 V,实际上当输入为0.5 V即逻辑1时,VSTI输出为0.75 V,难以判断其输出逻辑(此时M2管的漏极电压即M1管的源极电压为0.25 V,Vgs=Vth则处在临界的状态).因此对电路进行了改进,把接地端的忆阻器的ROFF进行修改适当减小,该值越接近接VCC端的忆阻器ROFF的一半,得到的结果就越接近理想值,同时将M1管的Vth设置为0.4 V,成功解决了这个问题.STI门的结果如图6所示,相比于文献[12],STI门的输出结果更加准确.由此可知:相较于传统二值数字逻辑电路中的逻辑门,基于二值忆阻器实现的三值逻辑门具有更低的功耗,三值信号相较于传统的二值信号也具有更高的信息密度,并且忆阻器在非易失性阻变期间,具有更好的存储能力.10.13245/j.hust.240301.F006图6STI门仿真波形图3 三值乘法器设计与仿真利用忆阻器实现乘法器是忆阻复杂逻辑中重要的组成部分.文献[17]中忆阻交叉阵列中的一行存储单元根据不同的功能被划分为多个区域,可以用来模拟矩阵乘法.利用文献[18]的译码器,用改进的三值基本逻辑门设计了如图7所示的三值译码器,然后设计了三值乘法器.该译码器将一路信号输入转化为三路信号输出,3个输出通道同一时刻只能有一个可以为逻辑2,其余通道输出0.同样地,可以理解为,输入信号的逻辑值代表要使能的通道号,使能则将该位置为逻辑2.例如,输入0,则0通道使能,A0=2;输入1,则1通道使能,A1=2;输入2,则2通道使能,A2=2.10.13245/j.hust.240301.F007图7三值译码器该乘法器可以在一行或一列中进行并行运算.而乘法运算的方式仍然采用部分乘积算法,这会导致单次乘法运算的延时比较长.文献[19]提出了一种快速加法器和近似计算存内架构,该架构利用所提出的快速加法器以损失一定的精度为前提提高了乘法器的运算速度.采用文献[20]的半串行加法器结构进行半串行乘法的运算.乘法器输入为乘数和被乘数,输出为进位输出和积数输出.令A和B分别表示乘数和被乘数,C和P分别表示进位输出与积数输出.下面是乘法器设计的真值表,如表2所示.10.13245/j.hust.240301.T002表2乘法器输入输出真值表ABCP000001000200100011011202200021022211设计的三值乘法器采用了三值译码器(TDecoder),输入信号A和B分别通过2个三值译码器得到6路信号A0,A1,A2,B0,B1和B2,且这6路信号只能为0或2.根据真值表和卡诺图可以得出逻辑表达式为:C=1⋅A2⋅B2;P=2⋅(A2B1+A1B2)+1⋅(A1B1+A2B2).乘法器电路的进位和积数输出可以在同一个电路中进行仿真.根据C和P的逻辑表达式,在LTspice中搭建如图8所示的电路图,图中:A和B分别为三值乘法器的乘数和被乘数;C和P分别为进位与积数.除了2个译码器(TDecoder),还用了6个与门(TAND)和3个或门(TOR).10.13245/j.hust.240301.F008图8乘法器电路可以给定输入信号推导设计过程.假如输入信号A和B同时为逻辑2,则A2=B2=2,A0=A1=B0=B1=0.tand1~tand4分别输出逻辑2,0,0和0.故tand5输出C=1⋅2⋅2=1,tor3输出P=2⋅(2⋅0+0⋅2)+1⋅(0+2⋅2)=1,最终得到C=1,P=1,证明电路设计结果正确.其他输入信号与输出信号的关系推导过程类似.根据图8搭建一位三值乘法器电路,对电路进行仿真得到如图9所示的仿真结果,其中:Vin1和Vin2分别为输入信号A和B;VC和VP分别为C和P输出信号.由于三值乘法器电路级联的过程中前一级的输出阻抗和后一级的输入阻抗不匹配,因此级联会导致输出结果失真.通过减小前一级门电路的忆阻器ROFF,并在三值基本逻辑门的输出端增加一个电压跟随器,从而解决了这个问题.乘法器增加电压跟随器前的波形如图10所示.10.13245/j.hust.240301.F009图9乘法器仿真波形图10.13245/j.hust.240301.F010图10增加跟随器前的乘法器波形增加电压跟随器前的功耗为21.955 μW,增加电压跟随器后的功耗为32.661 μW,对比发现增加了电压跟随器后输出波形有明显改善,但电路的功耗和面积开销也会有所增加.通过测量,所设计的三值乘法器功耗为32.66 μW,而文献[21]中的三值乘法器功耗为548.20 μW,文献[22]中的三值乘法器功耗为35.23 μW.对比可知:本研究的功耗比文献[21]的功耗低94.04%,比文献[22]功耗低7.29%.另外,本文的乘法器延时约为0.095 μs,与忆阻器主流编程延时相比有所改善,处于同一量级.4 结语为了降低传统数字逻辑电路的功耗并提高数字逻辑电路的单线信息密度,采用LTspice对Knowm公司的忆阻器模型进行了仿真验证.利用该Knowm忆阻器的SPICE模型设计出与门、或门、非门电路,并进行了仿真验证与功耗分析.用基于忆阻器三值基本逻辑门设计了三值乘法器电路,并进行仿真验证与功耗分析,且将其与一些已报道的三值乘法器电路进行比较,所设计的乘法器在功耗与延时方面表现更优.当电路在多级逻辑门级联时,波形有时会产生误差或失真.对此采用了两种改进的方法:第一种方法是修改前一级的忆阻器参数,波形变好,但会增加电路的功耗;第二种方法是在输出阻抗较小的逻辑门输出端再增加一个电压跟随器,电路输出波形有所改善.
使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,
确定继续浏览么?
复制成功,请在其他浏览器进行阅读
复制地址链接在其他浏览器打开
继续浏览