一种基于单极性忆阻器的完备非易失逻辑实现方法及其应用与流程

文档序号:18124797发布日期:2019-07-10 09:50阅读:1812来源:国知局
一种基于单极性忆阻器的完备非易失逻辑实现方法及其应用与流程

本发明属于新型计算技术领域,具体涉及一种基于单极性忆阻器的完备非易失逻辑实现方法及其应用。



背景技术:

存算一体的非易失逻辑可以避免信息处理过程中数据的频繁传输,有效缓解冯诺依曼瓶颈问题,是一种极具发展前景的新型计算架构。忆阻器作为一种具有记忆效应的阻变开关,其电阻能够在撤电之后稳定地保持,因此具备天然的非易失特性。如果将忆阻器的高、低电阻分别代表逻辑“0”和“1”,则可以自然地实现非易失逻辑运算。除了非易失特性之外,忆阻器的结构简单、与cmos工艺兼容、阻变速度快、尺寸小、集成密度高等特点,使其在实现逻辑运算时有着不可比拟的优势。

如果按照电学操作极性划分,忆阻器可以分为单极性忆阻器和双极性忆阻器。对于单极性忆阻器而言,高、低阻态之间的相互转变可以在相同的电压极性下发生;而对于双极性忆阻器而言,只有施加相反的电压极性才能实现高、低阻态之间的相互转变。由于双极性忆阻器更加常见,电学性质更加稳定,目前关于非易失逻辑的研究大多是利用双极性忆阻器来实现,但是由于双极性忆阻器自身操作极性等限制使其在实现逻辑运算时存在完备性较差、操作复杂、实现功能简单等问题,而利用单极性忆阻器实现非易失逻辑有着一些独特的优势。例如,单极性忆阻器有着很高的开关比;在阵列中可以与二极管串联构成1d1r结构抑制泄漏电流,从而具有极高的集成密度;由于只需要一种极性的电压即可实现阻变操作,可以极大地降低外围控制电路的复杂度。因此,基于单极性器件的非易失逻辑有着极大的发展前景和空间。目前,关于利用单极性忆阻器实现非易失逻辑的研究报道仍处于较为空白的阶段。因此,充分利用单极性忆阻器的特点实现高效完备的非易失逻辑并发掘合适的应用显得十分必要和关键。



技术实现要素:

为了解决当前基于忆阻器实现非易失逻辑完备性差、功能单一等问题,本发明提供一种基于单极性忆阻器的完备非易失逻辑实现方法及高效异或逻辑应用实例,能够有效缓解当前利用忆阻器实现非易失逻辑存在的可重构性和完备性差、效率偏低和功能简单等问题。

本发明的一个目的在于提出一种基于单极性忆阻器的完备非易失逻辑实现方法。

基于两个输入变量p,q的基本布尔逻辑一共有16种,即:真(true),假(false),p,q,非p(notp),非q(notq),异或(xor),同或(xnor),或(or),或非(nor),与(and),与非(nand),实质蕴涵(imp),反实质蕴涵(rimp),负实质蕴涵(nimp),反负实质蕴涵(rnimp)。在利用单极性忆阻器实现基本非易失布尔逻辑时,单个单极性忆阻器即为一个基本逻辑单元。单极性忆阻器端口及阻变i-v特性如图1所示,将施加在单极性忆阻器两端t1,t2的电平分别用来表示两个输入变量,将忆阻器的最终电阻状态z表示输出变量。其中,高阻态代表逻辑变量“0”,低阻态代表逻辑变量“1”。很明显,忆阻器最终的电阻z由器件的初始电阻z’和两端的电压信号t1,t2共同决定。在进行逻辑运算之后,运算结果以阻值的形式原位地存储在单极性忆阻器内部,因此可以自然地实现非易失逻辑。这里,假设单极性忆阻器的阻变条件完全对称,即阻变时对应的正、负阈值电压大小完全相同,符号相反。将单极性忆阻器由高阻态转变为低阻态的阈值电压大小定义为“vset”,将单极性忆阻器由低阻态转变为高阻态的阈值电压大小定义为“vreset”。根据单极性忆阻器的阻变特点,可以得到:“vset>vreset”。因此,这两个阈值电压可以通过幅值很容易地区分开来,那么对应地,输入变量“1”的定义方式可以分为两种:一种是将电平“vop,s”作为输入变量“1”,称为“方式一”;另一种是将电平“vop,r”作为输入变量“1”,称为“方式二”。其中,电平“vop,s”满足可以使单极性忆阻器由高阻态转变为低阻态,即“vop,s>vset”;电平“vop,r”满足可以使单极性忆阻器由低阻态转变为高阻态,即“vreset<vop,r<vset”。输入逻辑变量“0”用接地(零电平“ground”)来表示。

上述基于单极性忆阻器实现非易失逻辑对输入、输出变量的定义如下表所示:

为了实现相应功能,在执行逻辑运算之前往往需要将器件初始化到某一固定的电阻状态,初始化步骤也需要用到上述两种电平,其中电平“vop,s”可以将单极性忆阻器初始化为低阻态,即“z’=1”;电平“vop,r”可以将单极性忆阻器初始化为高阻态,即“z’=0”。

当采用方式一,即电平“vop,s”作为输入变量“1”时:若单极性忆阻器初始状态z’为高阻态,即“z’=0”,且t1t2=“10”或“01”时,此时器件两端电压差达到了由高阻态向低阻态转变的条件,因此单极性忆阻器最终状态为低阻态,即输出“z=1”,而t1t2=“00”或“11”时,由于器件两端电压差为零,因此单极性忆阻器保持原来的高阻态不变,即输出“z=0”,上述过程恰好与异或逻辑(xor)功能相对应,即“z=t1xort2”;若单极性忆阻器初始状态z’为低阻态,即“z’=1”,无论t1t2=“00”,“01”,“10”还是“11”,单极性忆阻器最终的输出仍保持初始态不变,即“z=1”。因此,采用方式一,即将电平“vop,s”作为输入变量“1”对应的逻辑表达式为:

z=true·z’+(t1xort2)·notz’(1)

当采用方式二,即电平“vop,r”作为输入变量“1”时:若单极性忆阻器初始状态z’为低阻态,即“z’=1”,只有用电平“vop,r”作为输入变量“1”,并使得t1t2=“10”或“01”时,此时器件两端电压差达到了由低阻态向高阻态转变的条件,因此单极性忆阻器最终状态为高阻态,即输出“z=0”,而t1t2=“00”或“11”时,由于器件两端电压差为零,因此单极性忆阻器保持原来的低阻态不变,即输出“z=1”。上述过程恰好与同或逻辑(xnor)功能相对应,即“z=t1xnort2”;若单极性忆阻器初始状态z’为高阻态,即“z’=0”,无论t1t2=“00”,“01”,“10”还是“11”,单极性忆阻器最终的输出仍保持初始态不变,即“z=0”。因此,采用方式二,即将电平“vop,r”作为输入变量“1”对应的逻辑表达式为:

z=(t1xnort2)·z’+false·notz’(2)

施加在忆阻器两端t1,t2的电平信号可以映射为输入变量p和q。例如,如果“t1=p,t2=q且z’=0”,采用方式一,即将电平“vop,s”作为输入变量“1”对应的逻辑表达式(1)可进一步表示为式(3)。同理,如果“t1=p,t2=q且z’=1”,采用方式二,即将电平“vop,r”作为输入变量“1”对应的逻辑表达式(2)可进一步表示为式(4)。

z=true·0+(pxorq)·1=pxorq(3)

z=(pxnorq)·1+false·0=pxnorq(4)

可以看出,式(3)和(4)分别正是异或(xor)和同或(xnor)功能的逻辑表达式。

更进一步,将上述方程式沿时间维度迭代,其中每一步的输出结果z都作为下一步的初始状态z’,通过对每一步表达式的t1,t2进行特定的输入,所有的16种基本布尔逻辑功能都可以通过单个单极性忆阻器在3步内(包括初始化)实现。

若采用方式一,即将电平“vop,s”作为输入变量“1”,可实现10种基本布尔逻辑,具体操作步骤如下:

真(true)逻辑。第一步:t1=1,t2=0。

p逻辑。第一步:初始化操作,t1=vop,r,t2=0,使得z’=0;第二步:t1=p,t2=0。

q逻辑。第一步:初始化操作,t1=vop,r,t2=0,使得z’=0;第二步:t1=q,t2=0。

非p(notp)逻辑。第一步:初始化操作,t1=vop,r,t2=0,使得z’=0;第二步:t1=p,t2=1。

非q(notq)逻辑。第一步:初始化操作,t1=vop,r,t2=0,使得z’=0;第二步:t1=q,t2=1。

异或(xor)逻辑。第一步:初始化操作,t1=vop,r,t2=0,使得z’=0;第二步:t1=p,t2=q。

或(or)逻辑。第一步:初始化操作,t1=vop,r,t2=0,使得z’=0;第二步:t1=p,t2=0;第三步:t1=q,t2=0。

与非(nand)逻辑。第一步:初始化操作,t1=vop,r,t2=0,使得z’=0;第二步:t1=p,t2=1;第三步:t1=q,t2=1。

实质蕴涵(imp)逻辑。第一步:初始化操作,t1=vop,r,t2=0,使得z’=0;第二步:t1=p,t2=1;第三步:t1=q,t2=0。

反实质蕴涵(rimp)逻辑。第一步:初始化操作,t1=vop,r,t2=0,使得z’=0;第二步:t1=p,t2=0;第三步:t1=q,t2=1。

若采用方式二,即将电平“vop,r”作为输入变量“1”,也可实现10种基本布尔逻辑,具体操作步骤如下:

假(false)逻辑。第一步:t1=1,t2=0。

p逻辑。第一步:初始化操作,t1=vop,s,t2=0,使得z’=1;第二步:t1=p,t2=1。

q逻辑。第一步:初始化操作,t1=vop,s,t2=0,使得z’=1;第二步:t1=q,t2=1。

非p(notp)逻辑。第一步:初始化操作,t1=vop,s,t2=0,使得z’=1;第二步:t1=p,t2=0。

非q(notq)逻辑。第一步:初始化操作,t1=vop,s,t2=0,使得z’=1;第二步:t1=q,t2=0。

同或(xnor)逻辑。第一步:初始化操作,t1=vop,s,t2=0,使得z’=1;第二步:t1=p,t2=q。

或非(nor)逻辑。第一步:初始化操作,t1=vop,s,t2=0,使得z’=1;第二步:t1=p,t2=0;第三步:t1=q,t2=0。

与(and)逻辑。第一步:初始化操作,t1=vop,s,t2=0,使得z’=1;第二步:t1=p,t2=1;第三步:t1=q,t2=1。

负实质蕴涵(nimp)逻辑。第一步:初始化操作,t1=vop,s,t2=0,使得z’=1;第二步:t1=p,t2=1;第三步:t1=q,t2=0。

反负实质蕴涵(rnimp)逻辑。第一步:初始化操作,t1=vop,s,t2=0,使得z’=1;第二步:t1=p,t2=0;第三步:t1=q,t2=1。

因此,将方式一、方式二两种定义方式结合,可以在单个器件中3步内实现完备的16种基本布尔逻辑,如图2所示。相比于现有的基于忆阻器的非易失逻辑实现方法,本发明提出的利用单极性忆阻器实现基本布尔逻辑功能时在面积、效率和完备性等方面都表现出十分明显的优势,高度的逻辑完备性有利于更加高效地实现复杂的逻辑功能。需要特别指出,异或(xor)逻辑在算术运算等应用中发挥着关键作用,因此能够高效实现这种逻辑十分关键。对于现有的利用忆阻器实现非易失逻辑的方法来说,实现异或(xor)逻辑往往需要较多的步骤或器件数目,而本发明提出的利用单极性忆阻器在实现异或(xor)逻辑只需要单个器件、两步(包括初始化步骤)即可完成,因此具有很大的优势。

本发明的另一个目的在于提出基于单极性忆阻器的高效异或逻辑应用实例。

在利用单个单极性忆阻器高效执行完备基本布尔逻辑功能的优势基础上,可以利用由单极性忆阻器构成的单极性忆阻十字交叉阵列实现一些更加复杂、实用的逻辑功能,从而寻找到合适的应用场景。异或(xor)逻辑是一种常见且十分重要的基本逻辑门,现有的基于忆阻器的非易失逻辑实现方法在执行异或(xor)逻辑时往往需要较多步骤或器件,导致运算效率偏低,并占用较大面积。本发明提出的基于单极性忆阻器的非易失逻辑运算实现异或(xor)逻辑时在器件数目、步骤数等方面都有着其它忆阻逻辑实现方法所不可比拟的优势,因此本发明提出的基于单极性忆阻器的非易失逻辑实现方法十分适合实现有异或(xor)逻辑参与的逻辑运算,特别是可以并行进行的大量异或(xor)逻辑运算。

汉明距离是一种计算特征距离的简单有效的方法,在通信编码、机器学习等领域有着广泛应用,它可以表示为具有相同长度的两个字符串在对应位置上字符不同的数目,而异或(xor)逻辑恰好可以用于比较两个输入变量是否不同:如果两个输入变量相同,即输入变量为“00”或“11”时,输出结果为“0”;如果两个输入变量不同,即输入变量为“01”或“10”时,输出结果为“1”。因此,对于两个n位二进制字符串“anan-1…ai…a2a1”和“bnbn-1…bi…b2b1”,汉明距离等于“axorb”运算结果中“1”的个数。在利用单极性忆阻十字交叉阵列实现汉明距离的计算时,需要用到阵列中对角线上的单极性忆阻器并行执行异或(xor)逻辑运算。常见的忆阻器在制备完成后电阻状态为极高的阻态,需要对器件施加一个较大的软击穿电压才能进行之后正常的阻变操作,这一过程成为“forming”过程,一般来说,“forming”过程用到的电压“vform”要比之后正常的阻变操作电压“vop,s”大,即“vform>vop,s”。在进行汉明距离计算时,阵列中除对角线上的用于计算的单极性忆阻器进行软击穿即“forming”操作之外,其余单极性忆阻器不进行“forming”操作。之后按照上述实现异或(xor)逻辑的方法(第一步:初始化操作,t1=vop,r,t2=0,使得z’=0;第二步:t1=p,t2=q)对用于计算的器件同时进行操作,执行异或(xor)逻辑运算的结果以电阻的形式存储在对角线的单极性忆阻器中,只需读出“1”的个数即可得出汉明距离。在整个运算过程中,由于不用于计算的单极性忆阻器未进行“forming”操作,因此所施加的电压幅值不足以使这些器件的阻值发生改变,在计算过程中不会受到任何干扰,保证了并行读取过程结果的正确性。本发明提出的利用单极性忆阻阵列实现汉明距离计算的方法具备简单、高效的优势,在未来有很大的应用前景。

异或加密解密是一种保证信息安全的简单有效的方法。异或(xor)逻辑有一个特点:如果对某一对象连续执行两次异或(xor)操作,输出结果将返回至原来的初始值,即如果“axorb=c”,那么“cxorb=a”,上述特点正是基于异或(xor)逻辑进行对称加密解密的基本原理。在密码学中,加密前的信息被称为明文,加密后的信息被称为暗文,密钥用于加密明文或解密密文。对于基于异或(xor)的对称加密解密来说,加密和解密使用的密钥是相同的。在加密时,“明文xor密钥=暗文”;在解密时,“暗文xor密钥=明文”。为了保证安全性,密钥必须是随机生成的。由于忆阻器本身在阻变时存在固有的随机性,原本需要借助于软件生成的密钥也可以利用忆阻器产生。密钥根据单极性忆阻器不同次阻变循环(cycle-to-cycle)的高阻态的随机性来产生。具体来说,器件在第i次阻变循环时的高阻态阻值(rhrs,i)与上一次循环的高阻态阻值(rhrs,i-1)进行比较,其中i≥1。如果“rhrs,i-rhrs,i-1≥0”,则密钥的第i位是“1”,否则第i位为“0”。利用由n×n个单极性忆阻器组成的单极性忆阻十字交叉阵列中对角线上的单极性忆阻器并行执行异或逻辑运算就能实现对称加密解密,其中n为二进制数的位数。在单极性忆阻十字交叉阵列中,除对角线上的单极性忆阻器在制备完成后进行软击穿即“forming”操作之外,其余单极性忆阻器不进行“forming”操作,其中“forming”过程用到的电压vform比之后阻变操作电压vop,s大。进行加密前,首先对对角线上的单极性忆阻器同时进行初始化操作,即对这些单极性忆阻器的一端t1同时施加初始化电平vop,r,另一端t2同时接地,将它们同时初始化至高阻态;随后,一步并行执行异或逻辑运算,采用方式一,vop,s作为输入变量“1”,将明文和密钥分别输入到对角线上的单极性忆阻器的两端,执行异或逻辑运算的结果以电阻的形式存储在对角线上的单极性忆阻器中,并行读出得到加密结果,即暗文;同样地,解密时,将对角线上的单极性忆阻器初始化为高阻态后,将暗文和密钥分别输入到这些单极性忆阻器的两端,执行异或逻辑运算的结果以电阻的形式存储在对角线上的单极性忆阻器中,并行读出得到解密结果,即重新得到明文。

因此,整个加密解密过程完全在单极性忆阻阵列中进行,不需要软件的辅助,可以节省开销。本发明提出的基于单极性忆阻器高效实现异或(xor)逻辑和忆阻器固有随机性的硬件加密解密方法在信息安全领域具有很大的应用潜力。

另外,异或(xor)逻辑还是构建常用算术逻辑功能不可缺少的基本逻辑门。由于单极性忆阻器具有高效实现所有基本布尔逻辑功能,特别是异或(xor)逻辑的先天优势,我们可以利用本发明提出的基于单极性忆阻器的非易失逻辑实现方法来执行特定的算术逻辑运算功能,如加法器、乘法器等,能够大大提高逻辑运算效率。基于此,由一个或多个单极性忆阻器可组成各种非易失布尔逻辑运算电路,实现丰富的运算功能。

本发明的优点:

本发明提供一种利用单极性忆阻器实现非易失布尔逻辑的方法。单个单极性忆阻器即为一个基本的逻辑单元,通过对输入变量“1”进行两种方式的定义,利用单个单极性忆阻器可在3步内实现完备的16种布尔逻辑功能,这在现有的基于忆阻器实现非易失逻辑方法中是很难做到的,在面积、效率、完备性等方面都具有很大优势,高的逻辑完备性能够有助于实现更加复杂的逻辑功能。异或(xor)逻辑在算术运算等领域发挥着重要的作用,而利用现有的基于忆阻器的非易失逻辑的实现方法在实现异或(xor)逻辑时往往需要较多步骤或较多器件,造成效率偏低,并带来较大的面积开销,本发明提出的基于单极性忆阻器实现异或(xor)逻辑只需要单个器件通过2步(包括初始化)即可完成,大大提高了效率,节省了面积。更进一步,基于这种异或(xor)逻辑实现的高效性,本发明提供的利用单极性忆阻阵列实现包含异或(xor)逻辑门的运算功能,如:汉明距离、对称加密解密和常见算术运算等应用,其中,加密解密用到的密钥可以利用忆阻器固有的参数涨落随机产生,实现了整个加密解密过程的硬件化,增加了安全性,降低了软件开销,以上这些应用实例都充分发挥了本发明提出的基于单极性忆阻器实现非易失逻辑的完备性和高效性。

附图说明

图1为本发明利用的单极性忆阻器端口及阻变i-v特性示意图。

图2为本发明提出的在对两种输入变量“1”的定义方式下,利用单极性忆阻器实现16种完备布尔逻辑功能的步骤图,其中,(a)为采用方式一即将电平“vop,s”作为输入变量“1”实现的10种基本布尔逻辑功能;(b)为采用方式二即将电平“vop,r”作为输入变量“1”实现的10种基本布尔逻辑功能。

图3为本发明提出的基于单极性忆阻器实现基本布尔逻辑功能的一个实施例实现与非(nand)逻辑的步骤示意图,其中(a)为步骤1:施加初始化电压“t1=vop,r,t2=0”将单极性忆阻器初始化为高阻态,并将电平“vop,s”作为输入变量“1”;(b)为步骤2:将“t1=p,t2=1”分别施加在器件两端,实现非p逻辑(notp);(c)为步骤3:将“t1=q,t2=1”分别施加在器件两端,实现与非逻辑(pnandq)。

图4为本发明基于单极性忆阻器异或(xor)逻辑门高效实现汉明距离计算的一个实施例对两个16位二进制数“1111001100101100”和“0010100110101001”进行汉明距离计算的单极性忆阻阵列示意图和实验结果图,其中,(a)为16×16单极性忆阻十字交叉阵列示意图,在进行汉明距离计算时用到对角线1上的16个单极性忆阻器;(b)为实验得到的16位异或运算结果,其中高电流(低电阻)代表逻辑“1”,低电流(高电阻)代表逻辑“0”,运算结果为“1101101010000101”,得出汉明距离为8。

图5为本发明基于单极性忆阻器异或(xor)逻辑门高效实现对称加密解密计算的一个实施例对大写字母“p”的ascii码“01010000”进行加密解密的单极性忆阻阵列示意图和实验结果图,密钥“00000111”利用忆阻器的固有随机性通过硬件生成,其中,(a)为8×8单极性忆阻十字交叉阵列示意图,在进行加密或解密时用到对角线1上的8个单极性忆阻器;(b)为实验得到的加密结果,即暗文“01010111”;(c)为实验得到的解密结果,即明文“01010000”;(b)和(c)中高电流(低电阻)代表逻辑“1”,低电流(高电阻)代表逻辑“0”。

图6为本发明基于单极性忆阻器异或(xor)逻辑门高效实现算术运算的一个实施例利用异或(xor)逻辑门和与非(nand)逻辑门实现1位二进制全加器的步骤示意图,其中,(a)-(h)分别对应实施例四中的步骤1至步骤8,图中加粗标黑的器件为当前步骤所需要使用的目标器件。

具体实施方式

下面结合附图,通过具体实施例,进一步阐述本发明。

实施例一

以实现与非(nand)逻辑功能为例,对基于单极性忆阻器实现基本布尔逻辑功能的具体步骤进行说明。实现与非(nand)逻辑功能共需要三步,其中包含一步初始化和两步逻辑运算,如图3所示。步骤1:通过施加初始化电压“t1=vop,r,t2=0”将单极性忆阻器初始化为高阻态,即“z’=0”,之后开始逻辑运算步骤,实现与非(nand)时,采用方式一,即将电平“vop,s”作为输入变量“1”;步骤2:将“t1=p,t2=1”分别施加在器件两端,实现非p逻辑(notp);步骤3:将“t1=q,t2=1”分别施加在器件两端,实现与非逻辑(pnandq)。表达式(5)-(7)分别给出了每一步对应的逻辑表达式:

zstep1=0(5)

zstep2=true·zstep1+(t1xort2)·notzstep1

=true·0+(pxor1)·1=notp(6)

zstep3=true·zstep2+(t1xort2)·notzstep2

=true·notp+(qxor1)·p=pnandq(7)

类似地,其它基本的布尔逻辑功能也可以按照上述方法来实现。

实施例二

此处举例来具体说明如何利用单极性忆阻十字交叉阵列实现汉明距离的计算。计算两个16位二进制数“1111001100101100”和“0010100110101001”的汉明距离时,需要对两者执行异或(xor)运算,即“1111001100101100xor0010100110101001”,得到结果为二进制数“1101101010000101”,其中二进制结果中“1”的个数(8)即为两者的汉明距离。如图4(a)所示,实现上述过程需要一个16×16的单极性忆阻十字交叉阵列,在实现过程中只用到阵列中任一对角线上的16个单极性忆阻器,这里选取对角线1用来说明操作方法。将对角线上的16个单极性忆阻器按照从左下到右上的方向依次命名为u16,u15,…u3,u2,u1;其中,单极性忆阻器ui(1≤i≤16)的上、下两端分别命名为ti,1,ti,2。在进行汉明距离计算时,阵列中除对角线1上的16个单极性忆阻器进行软击穿即“forming”操作之外,其余单极性忆阻器不进行“forming”操作。在进行异或逻辑运算之前,首先对角线1上的单极性忆阻器u16,u15,…u3,u2,u1同时进行初始化操作,即对16个单极性忆阻器u16,u15,…u3,u2,u1的一端t16,1,t15,1,…t3,1,t2,1,t1,1同时施加初始化电平“vop,r”,另一端t16,2,t15,2,…t3,2,t2,2,t1,2同时接地,将它们同时初始化至高阻态,即“z’=0”。随后,即可以一步并行执行异或(xor)逻辑运算,采用方式一,即将“vop,s”作为输入变量“1”,具体操作为:将待比较的两个16位二进制数“1111001100101100”和“0010100110101001”分别输入到16个单极性忆阻器u16,u15,…u3,u2,u1的两端,即令“t16,1,t15,1,…t3,1,t2,1,t1,1=1111001100101100”,且同时“t16,2,t15,2,…t3,2,t2,2,t1,2=0010100110101001”,执行异或(xor)逻辑运算的结果以电阻的形式存储在对角线1的这16个单极性忆阻器中,只需读出“1”的个数即可得出汉明距离,如图4(b)所示。

实施例三

此处举例来具体说明如何利用单极性忆阻十字交叉阵列实现对称加密解密。其中,密钥根据单极性忆阻器不同次阻变循环(cycle-to-cycle)的高阻态的随机性来产生。具体来说,器件在第i次阻变循环时的高阻态阻值(rhrs,i)与上一次循环的高阻态阻值(rhrs,i-1)进行比较,其中i≥1。如果“rhrs,i-rhrs,i-1≥0”,则密钥的第i位是“1”,否则第i位为“0”。

ascii码是使用最广泛的字符集之一,这里对大写字母“p”的ascii码“01010000”进行加密解密,使用的密钥为“00000111”。完成8位二进制数的异或(xor)运算需要一个8×8的单极性忆阻十字交叉阵列,由于都是执行并行异或(xor)运算,整个逻辑操作过程与计算汉明距离基本相同。如图5(a)所示,在加密或解密时,只需用到阵列中任一对角线上的8个单极性忆阻器,这里选取对角线1用来说明操作方法。将对角线上的8个单极性忆阻器按照从左下到右上的方向依次命名为u8,u7,…u3,u2,u1;其中,单极性忆阻器ui(1≤i≤8)的上、下两端分别命名为ti,1,ti,2。阵列中除对角线1上的8个单极性忆阻器进行软击穿即“forming”操作之外,其余单极性忆阻器不进行“forming”操作。在对大写字母“p”的ascii码“01010000”进行加密之前,首先对角线1上的单极性忆阻器u8,u7,…u3,u2,u1同时进行初始化操作,即对8个单极性忆阻器u8,u7,…u3,u2,u1的一端t8,1,t7,1,…t3,1,t2,1,t1,1同时施加初始化电平“vop,r”,另一端t8,2,t7,2,…t3,2,t2,2,t1,2同时接地,将它们同时初始化至高阻态,即“z’=0”。随后,即可以一步并行执行异或(xor)逻辑运算,采用方式一,即将“vop,s”作为输入变量“1”,具体操作为:将明文“01010000”和密钥“00000111”分别输入到8个单极性忆阻器u8,u7,…u3,u2,u1的两端,即令“t8,1,t7,1,…t3,1,t2,1,t1,1=01010000”,且同时“t8,2,t7,2,…t3,2,t2,2,t1,2=00000111”,执行异或(xor)逻辑运算“01010000xor00000111”的结果“01010111”(大写字母“w”的ascii码)以电阻的形式存储在对角线1的这8个单极性忆阻器中,用时只需并行读出即可,如图5(b)所示。同样地,解密过程也按照上述过程进行,在将对角线上的8个单极性忆阻器初始化为高阻态后,将暗文“01010111”和密钥“00000111”分别输入到8个单极性忆阻器的两端,执行“01010111xor00000111”,可重新得到明文,即大写字母“p”的ascii码“01010000”,如图5(c)所示。

实施例四

在这里,以基于异或(xor)逻辑和与非(nand)逻辑门构建的1位二进制全加器为例进行具体说明。对于1位二进制全加器,有3个输入变量(加数a、被加数b和来自低位的进位ci)和2个输出变量(本位和s和向高位的进位co)。基于异或(xor)逻辑和与非(nand)逻辑门的1位二进制全加器的逻辑表达式可以写成:

整个运算需要用到5个单极性忆阻器,通过8步来实现。其中,5个单极性忆阻器包含在一个2(行)×3(列)的阵列中;5个单极性忆阻器分别命名为器件a,器件b,器件c,器件d和器件e;器件a,器件b和器件c位于阵列中的第一行,它们的底端通过同一位线bl1连接在一起;器件d和器件e位于阵列中的第二行,它们的底端通过同一位线bl2连接在一起;器件a和器件d位于阵列中的第一列,它们的顶端通过同一字线wl1连接在一起;器件b和器件e位于阵列中的第二列,它们的顶端通过同一字线wl2连接在一起;器件c位于阵列中的第三列,它的顶端与字线wl3连接。实现步骤如图6所示。在进行逻辑运算之前,步骤1是对字线wl1,字线wl2和字线wl3施加电平“vop,r”,同时使位线bl1和位线bl2接地,使得所有单极性忆阻器初始化为高阻态,然后进行逻辑运算操作(步骤2-8);步骤2:将输入变量“a”施加在器件a的一端wl1,输入变量“b”施加在器件a的另一端bl1,执行异或运算输出结果存储在器件a中;步骤3:对字线wl1施加读取电平“vread”,同时位线bl1接地,即将存储在器件a中的的结果读出,并将其转换为电平信号用作后续的输入信号;步骤4:将变量“a”输入到字线wl1,输入到字线wl2,“ci”输入到位线bl1,“1”(“vop,s”)输入到位线bl2,使得运算结果(即“s”),分别存储在器件b,器件d和器件e中;步骤5:将变量“b”输入到字线wl1,将变量“ci”输入到字线wl2,同时“1”(“vop,s”)输入到位线bl2,使得运算结果分别存储在器件d和器件e当中;步骤6:对位线bl2施加读取电平“vread”,同时字线wl1和字线wl2接地,即将分别存储在器件d和器件e中的运算结果读出,并将其转换为电平信号用作后续的输入信号;步骤7:将输入变量施加在器件c的一端wl3,输入变量“1”(“vop,s”)施加在器件c的另一端bl1,运算结果存储在器件c当中;步骤8:将输入变量施加在器件c的一端wl3,输入变量“1”(“vop,s”)施加在器件c的另一端bl1,运算结果(即“co”)存储在器件c当中。至此,两个输出变量,本位和“s”和向高位的进位“co”都已计算出并分别以阻值的形式存储在器件b和器件c当中,需要时只需施加读取电压读出即可。在整个逻辑运算过程中,由于异或(xor)逻辑和与非(nand)逻辑都将电平“vop,s”作为输入变量“1”,因此输入逻辑变量“1”的定义保持不变,从而降低了信号控制的复杂度。需要特别指出的是,由于代表输入、输出变量的物理量不同,因此在逻辑级联时需要将以电阻形式存在的输出转变为电平的形式才能用作下一步的输入信号,因此步骤3和步骤6是执行信号转换,需要读出输出的电阻状态并将其转换为电压信号,作为下一步的逻辑输入。

与其它基于忆阻器的非易失逻辑实现方法相比,本发明提出的基于单极性忆阻器的非易失逻辑实现方法具备更高的完备性和效率,也更加节省面积,因此可以应用于多种场合,为高效非易失逻辑功能实现提供了新的技术方案。

最后需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换和修改都是可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1