基于闪存的多值逻辑电路设计

设计基于闪存的多值逻辑电路

摘要

闪存晶体管作为非易失性内存技术的选择,当前闪存密度的增加满足了日益增长的存储需求。提高闪存密度的关键特性之一是能够对闪存晶体管编程,使其具有多个阈值电压电平。这一特性最近已被用于实现多值数字电路。然而,由于使用多个阈值电压电平导致延迟增加,因而表现出一定局限性。本研究中,我们提出了一种利用闪存晶体管实现多值数字电路的电路方案。所采用的闪存晶体管在实现中只需两个阈值电压。结果,我们获得了更高的值,显著改善了延迟,并且写入耐久性也更好。我们通过电路仿真评估了设计方法学,并与CMOS标准单元基础方法以及之前报道的基于闪存的三值逻辑实现进行了比较。在超过20种设计中,我们报告了在延迟(23%更低)、功耗(5%更低)、能量(26%更低)和物理面积(4%更低)方面的改进,相比于CMOS标准单元基础实现。这是显著的,因为在所有品质因数(延迟、面积、功耗和能量)上超越既定的标准单元设计方法是很困难的。与三值基于闪存的设计相比,我们的设计速度快3.15倍,而功耗和能量消耗更高。本文提出的设计方法针对高性能应用场景,不同于以低功耗和低速为目标的TLC基础方法。此外,所提出的接近方法可以扩展到使用更多负载值来实现多值逻辑,正如我们在文中所做的那样。

关键点 :多值逻辑电路设计;数字设计基础;逻辑使用闪存作为存储;低功耗;高速;三级多值逻辑

1. 引言

闪存晶体管有四个端子(漏极、栅极、源极和衬底),其中包含一个埋入的浮栅层,该层由位于沟道与控制栅之间的介电材料隔离,称为浮栅。当闪存晶体管被编程时,浮栅用作存储区来捕获电子。对闪存晶体管进行编程会增加其阈值电压。闪存晶体管也可以被“擦除”,这会导致其参考电压回到擦除状态的电压水平。闪存晶体管通过使用闪存隧道氧化物(FLOTOX)结构进行编程和擦除。

在这里,有两种方法用于实现多值逻辑电路。第一种方法在[2]中提出,使用闪存晶体管,其中三个阈值电压等级用于实现三值逻辑功能。在[2]中,实现三值逻辑功能的结构被称为三值逻辑簇(TLC)。人们可以通过使用四个阈值电压等级(或更多)来实现四值或更高值的基于闪存的数字电路。然而,增加阈值电压等级的数量会导致闪存器件的写入耐久性显著下降。

基于理想化的多值逻辑电路实现的三值近似方法,本文提出了一种新方法,该方法基于多值逻辑。在该实现中,不再使用多个阈值电压等级来实现多值逻辑,而是仅将闪存晶体管编程到两个阈值电压等级:擦除阈值电压等级(我们设为VT0)和编程阈值电压等级(我们设为VT1)。这具有许多优点,例如:使用两个而不是在更宽的VT范围内产生更多的冗余结果,从而改善设计的速度,同时利用单级单元的优势,改善写入耐久性和读/写扰动,相比多级单元所采用的方法以及本文提出的方法进行了概括,优雅地扩展到具有四个或更多值的多值逻辑,且没有VT减少和速度惩罚,与[2]中的方法相比。

本文提出了一种多值逻辑闪存设计方法。该电路结构采用一种简单的多值逻辑闪存簇(MVFC)来实现多值逻辑功能。MVFC中闪存器件的阈值电压被控制以实现不同的逻辑功能。该结构实现了组合逻辑功能,并且完全兼容在数字设计中广泛使用的标准CMOS设计方法。在这篇论文中,我们将我们的MVFC设计方法与之前提出的三值闪存设计方法[2]进行了比较。我们的基于MVFC的设计方法能够实现具有更多取值的多值逻辑功能。然而,我们还实现了基本的多值逻辑功能,并与[2]中提出的工作进行了比较。

市场对高密度、小型化闪存的需求推动了闪存技术的进步。闪存器件的工艺节点已按比例缩小至CMOS技术的最小特征尺寸。当前的存储器件已在300mm晶圆上制造,其最小特征尺寸与CMOS技术的最小特征尺寸相似。在本文中,我们仅使用45nm技术探索我们的设计方法,因为低于45nm的闪存技术节点的电气特性不易获得。

我们评估了延迟、功耗、能量和物理面积的实现,并将结果与CMOS标准单元设计方法进行了比较。平均而言,在20个随机设计中,我们的多值闪存簇(MVFC)基础设计方法相较于CMOS标准单元设计方法,实现了23%的延迟降低、5%的功耗降低、26%的能量降低以及4%的物理面积减少。此外,我们的设计运行速度是TLC基础设计的3.15倍,其中功率和能量随着在功率和能量上的增加。多值闪存簇基础设计的面积利用率与TLC基础设计相比是相似的。多值闪存簇比TLC基础设计快17%更大。在TLC和多值闪存簇之间,设计者有一种方式来探索在延迟、功率和能量的设计之间的权衡。

本文的主要贡献如下:提出一种基于闪存的设计方法来实现2到4值的多值逻辑功能。本文提出的MVFC基础电路方法在延迟(0.77倍CMOS)、功率(0.95倍CMOS)、能量(0.96倍CMOS)和物理面积(0.74倍CMOS)方面实现了显著改进。对于一种新的电路方法论来说,在所有这些指标上击败CMOS标准单元是罕见的。MVFC在本文中提出,其运行速度是TLC的3.1倍,代价是功率(7.9倍TLC功率)和能量(2.5倍TLC能量)。不同于在[2]中针对高功耗/能量应用优化的TLC基础设计方法,多值闪存簇设计方法适用于对速度有要求的应用。通过精确控制闪存晶体管的阈值电压,所提出的设计方法具备在工厂、现场执行性能微调(修调)以及便于实施工程变更单(ECO)的能力。

本文的其余部分组织如下。第2节讨论了一些先前的工作。第3节描述了我们的多值闪存簇(MVFC)实现方案。第4节讨论了实验和结果。我们在第5节中进行总结。

2. 先前工作

基于闪存的三值数字电路设计方法[2, 7, 8]最近被提出,并展示了与流行的基于CMOS标准单元的设计方法相比具有吸引力的结果。这些基于闪存的数字电路设计方法解决了使用闪存晶体管实现二进制逻辑和三值逻辑的问题。

在[2]中,作者使用了一种称为三值逻辑簇(Ternary Logic Cluster, TLC)的结构,该结构使用多个阈值电压等级来实现三值逻辑功能。尽管这种方法有好处,但使用多个阈值电压等级也存在一些缺点。其中一个问题是使用多个阈值电压等级会降低写入耐久性,因为对闪存晶体管进行编程变得更加困难,并且需要更长的电源电压调整过程,从而降低了器件的写入耐久性。另一个问题是读取和写入干扰,因为阈值电压等级彼此接近,因此一次读取或写入操作可能会改变相邻单元的阈值电压,影响电路的正常工作。最后,使用多个阈值电压等级在电源电压和地之间会降低施加到闪存晶体管上的电源电压值,这会降低晶体管导通时流过的电流,导致延迟增加。此外,TLC结构在[2]中使用了类似NAND的闪存下拉堆栈,每个变量需要两个串联的闪存晶体管。因此,一个四变量的TLC需要八个串联的晶体管。长串联堆栈增加了设计的复杂性,并可能增加延迟。

在[7]的作者提出了一种基于闪存的设计方法,用于实现二进制逻辑电路。在其实现中,他们使用了一个闪存簇(FC)。该FC由一个类似NAND闪存的下拉堆栈阵列组成。每个堆栈包含六个闪存晶体管(每个变量对应一个晶体管)。我们的工作相比之前的实现在延迟上更低,因为我们仅在串联中使用了四个闪存晶体管。使用存储器下拉堆栈会增加MVFC设计的功耗达32%,相比FC。在[8]中,作者将[7]中的设计方法应用于更复杂的14设计,这些设计更为完整。

3. 方法

3.1 概述

本文重点介绍多值闪存簇(MVFC)的电路设计。但在描述MVFC的电路结构之前,我们将简要概述如何使用MVFC网络将设计映射到基于闪存的设计中。我们的MVFC结构在具有任意数量输入和输出的二进制多值逻辑电路中实现GpA函数,其中p为输入数,且p=4。然而,我们选择二进制多值逻辑电路,以便与[2]中的性能进行比较。在这篇论文中,每个MVFC实现了一个二进制逻辑函数GpA,其中p是输入数,且p是输出数。我们的仿真结果显示,当p=4且n=2时,取得了最佳结果。在描述映射过程后,我们描述了MVFC结构、MVFC单元的配置以及MVFC编程。

3.2 闪存基础设计转换

多值闪存簇实现q输出(多值)函数,最多有p个多值输入(GpAq)。因此,要使用MVFC单元实现一个完整的数字设计,我们需要使用GpAq类型的函数来表示该数字设计。这是从一个与技术无关的逻辑网表开始,并将逻辑节点分组到集群中完成的。这些逻辑集群被定义为逻辑群集。

输入变量的数量和输出数量决定了多值闪存簇(MVFC)的实现方式。注意,与技术无关的二进制逻辑表示二进制逻辑,因此,我们需要将二进制逻辑函数转换为多值逻辑函数(即多值逻辑函数,或多值逻辑函数中的二进制逻辑函数)。将二进制逻辑函数转换为多值逻辑功能的步骤如下,并在附近通过关于映射一种与技术无关的网络新设计的讨论。

3.3 多值逻辑电平转换设计

在本节中,我们展示如何将一个二进制逻辑函数转换为一个多值逻辑函数(在我们的实现中为三值逻辑函数)。我们通过两个步骤执行此转换。第一步是使用互连的MVFC网络实现完整的14设计,第二步是识别在14设计和适当配置其作为(三值逻辑接口的MVFC单元。

在本文中,我们需要将逻辑集群中的二进制函数转换为三值逻辑函数,以便使用我们的MVFC单元实现。在我们的实现中,我们将每个具有u个二进制输入(其中有2u个二进制最小项)的二进制逻辑函数转换为一个具有v个输入的三值逻辑函数(其中有3v个三值最小项)。这是通过将2u个二进制最小项映射到3v个三值最小项来完成的。由于不存在u>0且v>0使得2u = 3v的情况,我们必须将2u个二进制最小项映射到大于2u的3v个三值最小项。然而,这会导致未使用的三值最小项。这个问题完全可以避免,如果我们实现具有k个值的多值逻辑,其中k=2。在这种情况下,将一个二进制函数映射到一个多值函数是直接的,可以通过在每个w值的多位数字中对w个二进制位进行编码来完成。如前所述,我们实现三值逻辑设计的原因是为了与[2]中提出的工作进行比较,该文讨论了一种三值电路设计方法。

从锁存级视角来看,将一个二进制逻辑设计转换为格雷码设计的过程如图1所示。图1(a)显示了一个二进制逻辑网络的2个互连逻辑节点。我们通过分组执行转换过程,将逻辑节点分组为包含不超过3个二进制输入和2个二进制输出的逻辑集群。表示这个逻辑集群的逻辑函数是F3A2。回想一下,为了高效地将一个二进制逻辑函数映射到三值逻辑门中,该二进制逻辑函数的输入和输出数量应为3的倍数。这些用于逻辑的节点在图1中用点表示,而它们在闪存控制器中的映射则用图1中的圆圈表示。

每个闪存控制器实现一个三值逻辑函数GpA,其中p=3^m且n=3。我们的仿真结果显示当m=6、n=3时(即p=4且n=3),取得了最佳结果。

在讨论将三值逻辑转换为基于多值闪存簇(MVFCs)的二进制逻辑网络时,我们关注的是二进制接口,因为基于MVFCs的设计实现了系统中各部分的二进制交互,并且需要与二进制逻辑进行接口。我们的基于MVFCs的设计方法天然地通过二进制接口与二进制逻辑连接,而无需额外设计专用电路来将二进制信号编码为多值信号。这减少了设计开销、设计复杂度以及面积利用率。图2展示了我们在实现中所使用的MVFCs类型。在图中,我们用实线表示二进制信号,用虚线表示多值(即三值)信号。用于我们逻辑设计的MVFCs具有如图2所示类型的输入和输出接口。我们在基于多值的闪存设计中使用了具有三值输入和二进制输出类型的MVFCs,以及具有二进制输入和多值输出类型的MVFCs。其余用于我们设计中的MVFCs具有如图2所示的三值输入和输出类型。

请注意,一个多值闪存簇可以具有二进制和三值输入(或输出)的混合,以便实现那些部分输入(或输出)为二进制、其余输入(或输出)为三值的集群。

3.4 多值闪存集群电路设计

本文提出的基于闪存的设计方法将多值逻辑函数(在我们的实现中为三值逻辑函数)转换为多值闪存簇(MVFCs)。图3展示了多值闪存簇的结构。多值闪存簇是动态电路结构,用于实现多值逻辑函数GpAq,其中p表示输入数,且p为输入数量,q表示输出数量。需注意,多值逻辑函数GpAq是等价于二进制逻辑函数Fmn,其中p = 2^m且q = 2^n。每个MVFC由一个类似NAND闪存的下拉堆栈阵列构成(每个堆栈实现多值逻辑函数GpAq的一个立方体)。这些下拉堆栈根据其输出进行分组。我们称这些组为多值逻辑阵列(MVLA)。由于MVFC是动态电路,其输出通过Prechg电路预放电到VDD。Prechg电路由受时钟信号(clk)驱动的下拉NMOS晶体管组成。Prechg电路将MVFC的主要输出预放电,如图3所示。MVFC的主要输入驱动MVLA。此外,时钟信号(clk)也驱动Prechg和评估晶体管中的预充电和评估晶体管。在我们的实现中,MVFC的主要输出数量为2(q=2),主要输入数量为4(p=4)。MVFC还包括编程逻辑,该逻辑用于对结构中的闪存晶体管进行编程以实现所需的函数GpAq。

如前所述,每个多值闪存簇由一组MVLA组成,其中MVLAμ生成函数GpAq的第μ个输出最小项。例如,让三个三值输入立方体(表示为p0的输入和p1的输入)为010,111,100,001;001,100,010,001;和100,010,010,100,生成输出010,100,其中μ是该输出的十进制编码。在这种情况下,MVLA5由三个下拉堆栈组成,其中每个堆栈实现上述提到的两种功能之一。MVLAμ中实现的立方体数量称为每阵列立方体数(CPAμ)。CPAμ的值由逻辑函数GpAq决定。在我们的MVFC基础设计方法中,当向MVFC施加输入脉冲时,仅一个MVLA被激活,因为输入最小项不共享于不同的MVLA之间。最后,输出2n到3q-1未被使用,因此,我们不实现MVLC(2n)到MVLC(3q-1)。在我们的多值闪存簇设计应用方法中,我们仅实现了MVLA单元作为MVLC0、MVLC1和MVLC7,如图3所示,适用于n=3。

3.5 多值逻辑阵列

延迟随着MVLA的增加而增加,因为立方体数量也随之增加。这种增加是由于在使用导线评估方法对MVLAi进行评估时,互连电容的增加所导致的。通过将实现于每个MVLAi中的下拉栈拆分,MVLAi的延迟得到了改善。这些下拉栈捆被组织成有限数量的下拉栈(如图4所示)。这些捆被称为多值逻辑块(MVLB)。

MVLB的电路细节在第3.6节中介绍。每个MVLB中最大下拉栈的数量称为每捆立方体数(CPB)。在实现过程中,我们发现参数化扫描CPB=3可得到最佳结果。CPB是一个针对所有基于MVFC设计的固定全局参数。例如,假设MVLAi具有(CPAi×CPB)个立方,则MVLAi中MVLB的数量为(CPAi×CPB)。注意MVLB中的

3.6 多值逻辑块电路绑定

在图5中,我们展示了电路细节,作为一个NAND。该NAND门可以指定为——具有公共输入、以及公共输出。

图5中所示的输入逻辑在FC区域底部的设计包含类似NAND闪存的下拉堆栈。这些堆栈在线-或配置中产生相同的输出。每个下拉堆栈实现一个立方体,以实现函数GpAq。每个NAND中的最大立方体数量和可实现的NMOS是CPB,这是一个电气确定的参数,用于提高多值闪存簇设计的质量(功耗、延迟和面积)。如图5所示,每个NAND中的每个堆栈由作为闪存晶体管的flash transistors和一个常规的NMOS晶体管组成,如图5(d)所示。多值输入函数GpAq通过单表示法实现。例如,由于我们实现的是三值逻辑,我们将输入a, b, c和d分别用它们的字面量a, a1, a2表示输入a,b, b0, b1和b2表示输入b,c和d也类似处理。对于每个输入,只有与其值对应的字面量与输入值相连。我们将在第3.7节中通过一个示例解释下拉堆栈的配置。闪存晶体管用于编程实现立方体,而常规NMOS晶体管则用于评估和编程目的。共享的常规PMOS晶体管

如图5所示,在输入逻辑块顶部作为Prechg的预备状态保留,适用于MVLA的预充电晶体管。当它turns on时,输入上拉MVLAout_i在预充电阶段(低相位时钟信号)被激活。EN0到ENq-1这两条线在评估期间通过NAND堆栈下拉接地,例如在它们评估时,作为一个特殊目的在编程期间保持。

常规NMOS晶体管(Sj=i)如图5所示,位于每个堆栈的顶部,用于实现编程目的。在常规操作中,它们用作评估晶体管,且在预充电阶段(低相位时钟)关闭,在评估阶段(高相位时钟)仅在评估期间导通。以这种方式,它们允许下拉堆栈用于评估MVLA。

NMOS晶体管(Sj=i)在NAND闪存堆栈的编程期间被使用。编程将在第3.8节中详细讨论。

在图5中,内部的输出点位于所示区域,该区域生成MVFC的最终输出。每个MVLB具有专用的输出逻辑,当其中一个下拉堆栈中的立方体实现的值被激活时,该输出逻辑被激活。当输出被激活时,输入会上拉至对应的预放电输出线,从而生成最终输出。图5顶部显示的水平线代表MVFC中的最终单热输出线之一。这些输出线横跨整个MVFC,如图3所示。如第3.4节所述,这些输出线是预放电

其中NMOS晶体管在MVFC中的Prechg电路的顶部部分如图3所示。该上拉电路使用PMOS晶体管作为充电装置,当NAND驱动时对上拉节点进行充电。例如,如果当前NAND是MVLA5的一部分,则生成的二进制编码将由NAND为<010;100>。因此,上拉的漏极连接到上拉节点的PMOS晶体管在示例中,当NAND为MVLA5时,则其二进制编码输出被上拉至高电平,由NAND决定为<010/100>。由于最显著的输出位是o1和12,该上拉的漏极连接到两个PMOS晶体管的漏极,即晶体管的源极分别连接到o1和12(给定分别为最显著输出位)。这在图5中进行了说明。这些PMOS晶体管的栅极由类似NAND闪存的下拉堆栈的缓冲输出驱动,如图5所示。这些PMOS晶体管的尺寸被设计为能够驱动相当于3个MLVC的等效输入电容。

3.7 多值逻辑块配置

不同于在[2]中提出的TLC基础方法,该方法使用三个阈值电压等级,我们基于MVFC的设计使用两个阈值电压等级。图6显示了(在左侧),施加到MVLC中闪存器件栅极的输入电压。在右侧,该图显示了用于配置MVLC中闪存晶体管的阈值电压等级。MVLC通过首先确定函数GpAq的哪些输入立方体由每个MVLA实现来进行配置。MVLAμ实现所有产生其输出向量(其十进制编码为μ)的立方体。然后每个MVLA被拆分为基于该MVLA实现的立方体数量的一组MVLB。函数GpAq的输入立方体通过配置多值逻辑块(见图5)中对应输入立方体的堆栈内闪存晶体管的VT来实现。表1显示了每个文字对应的各个闪存晶体管的配置。MVLC中的闪存晶体管可以被配置为实现文字001、010、100和111。剩余的文字在表1中显示为不支持。例如,图5实现了三值立方体a3b1c2d0的编码。注意到晶体管F的栅极由字线驱动,其编程方式为使阈值电压低于接地(见图6)。该阈值电压被称为擦除阈值电压。因此,该晶体管对于输入值的任何变化都是无关的。换句话说,该晶体管对于输入值的变化是无关的,并实现了多值文字111 for d。事实上,被编程为阈值电压0的闪存晶体管总是由其输入驱动,仅仅因为它们不能悬空。现在,晶体管Fa0、Fb0和Fc0被编程为具有介于电源电压和接地之间的电压EL1(见图6)。这意味着这些器件仅在它们的栅极信号为高电平时才导通。晶体管Fa0、Fb0和Fc0分别由信号A1、B0和C1驱动。因此,图5中的网络实现了立方体abc的编码为010,001,010,111。

线性器与或名称 输入 001 VT1 x0
010 VT1 x1
100 VT1 x2
011 不支持 N/A
110 不支持 N/A
101 不支持 N/A
111 VT1 x0
000 Invalid N/A

表1:闪存晶体管配置Fx for each Minterm/Cube Literal.

图5中所示的堆栈结构实现了电路中的立方体100,010,001,100。请注意,其所有晶体管都被编程为VT1阈值,这就是为什么它实现了GpAq的p输入空间中的一个最小项。最后,图5中最右边的堆栈实现了立方体010,111,100,010。
3.8 编程多值NAND闪存簇结构

图5显示了NAND电路结构,包括输入逻辑和输出逻辑部分。输入逻辑是唯一包含闪存晶体管且需要编程的部分。输出部分不包含闪存晶体管,因此不需要编程。

在一个多值闪存簇中,所有闪存晶体管共享一个公共衬底。因此,多值闪存簇中的闪存晶体管将一起被擦除。通过驱动MVFC的pmu节点至高电压,并使每个闪存晶体管的源极和漏极终端处于浮空状态来实现擦除。通过关断Sj=i晶体管并将信号ENi浮空,从而使每栈中闪存晶体管的源极和漏极终端处于浮空状态。所有晶体管的栅极均驱动至VDD。该操作导致MVFC中所有闪存晶体管被擦除,并将其阈值电压重置为VT0。

对于编程,假设Fb=0和Fb=1需要进行编程。在此情况下,字线由编程电压驱动足够长的时间。晶体管Sj=0和Sj=1通过驱动EN0和EN1而导通。当ENi被驱动后,线路EN0和EN1被驱动至VDD,而其余的ENi线路则处于浮空状态。这将禁用除第一个和第二个NAND堆栈之外的所有MVLB的编程。之后,输入信号(即A0、A1、A2、B2、C0、C1、C2、D0、D1和D2)被驱动为高电平以通过选通路径,同时公共衬底被连接至VDD。编程脉冲的持续时间根据最终期望的VT值来确定。这导致Fb=0和Fb=1被编程到所需的VT(VT1),而在MVLB中的晶体管之后其阈值电压变为擦除电压(VT0)并保持该状态。

3.9 多值闪存簇的逻辑最小化

我们使用Express-V-MV [7] 来最小化逻辑函数(GpAq),以在多值闪存簇中实现(即将GpA视为具有p个输入和q个输出)。函数GpAq的输入最小项(¥3¶£)针对每个输入单独使用Express-V-MV进行最小化。我们确保Express-V-MV不会生成表1中所示的任何不支持的输入文字。如果不支持的文字被生成,它们会被拆分(例如,一个文字101可以导致一个立方体被拆分为两个立方体,一个带有文字100,另一个带有文字001)。结果得到的最小化覆盖用于配置多值闪存簇。

4. 实验

在本文中,我们比较了我们的MVFC基础设计方法与CMOS标准化基础和TLC基础[2]设计方法。在本节中,我们首先介绍用于评估我们提出的设计方法的仿真环境。然后,我们详细介绍我们的实验并讨论结果。

4.1 仿真环境

在我们的实验中,我们使用闪存设计流程(MVFC和TLC)评估基于闪存的设计,并使用CMOS标准单元设计流程评估基于CMOS的设计。在这三种设计流程中,我们采用基于闪存和CMOS的方法实现了相同的基准电路,并比较了设计方法得出的结果。我们在45nm工艺技术下实现了这些设计方法。

在基于CMOS的设计方法中,我们使用Synopsys Design Compiler [10] 综合并映射基准电路。我们使用45纳米Nangate FreePDK45开源库 [11, 12] 实现CMOS基础设计。映射设计随后使用HSPICE电路模拟器,基于Synopsys [10],采用45nm PTM模型卡 [13] 实现。版图面积通过计算总和得出。

对于基于闪存的设计方法,我们使用自定义脚本togen生成电路。我们还使用HSPICE来仿真基于闪存的电路。基于闪存的设计中的互补金属氧化物半导体器件采用45纳米PTM模型卡进行建模,而闪存器件使用的模型卡片是我们使用模型卡片回归从器件测量结果(针对制造的45纳米闪存器件获得)生成的,如[2]中所述。对于基于闪存的设计方法,我们验证了正确的逻辑操作通过详尽的仿真。我们使用Cadence Virtuoso生成多值数字电路的定制布局。我们的MVFCs布局采用来自国际技术路线图(ITRS)汇编的闪存设备设计规则。基于闪存的设计布局面积比标准CMOS设计所用的面积更准确。

我们生成了20个随机设计用于评估多变量逻辑电路的设计方法。这些设计实现具有6个输入和3个输出的二进制逻辑函数,并在第3.3节中如前所述转换为多值设计(在本文中为三值设计)。本文提出的多值闪存簇中的逻辑功能在输入为4(p=4)和2(u=2)时的最大值。每个MVLB中最大立方体数量(CPB)在本文中使用的数量为3。我们的MVLC设计中用于闪存晶体管的阈值电压为VT0 = -0.5V和VT1 = 0.5V。每个基于闪存的设计都通过进行详尽的电路仿真验证了其正确性。

4.2 结果与分析

延迟表示能量消耗,延迟、开关活动、功耗、延迟、功率、能量以及物理面积在20种随机生成的函数中使用我们的多值闪存簇(MVFC)实现方式与基于CMOS的实现方式进行比较。表中所示的延迟是电路中任何主要转换所经历的最大延迟。由于基于闪存的实现是动态的,

设计 Dmax Ratio Pav Ratio Energy Ratio CellArea Ratio
Thres00 0.73 0.92 0.68 0.99
Thres01 0.71 0.87 0.62 0.86
Des02 0.77 0.95 0.74 0.93
Des03 0.69 1.01 0.70 0.89
Des04 0.79 1.03 0.82 0.97
Des05 0.71 0.89 0.64 0.94
Des06 0.88 0.89 0.79 0.96
Des07 0.77 0.98 0.76 0.99
Des08 0.78 0.93 0.73 0.96
Des09 0.80 0.84 0.68 0.93
Des10 0.83 1.05 0.88 0.92
Des11 0.77 1.04 0.80 0.90
Des12 0.79 0.97 0.77 0.90
Des13 0.83 1.04 0.87 1.02
Des14 0.73 0.90 0.66 0.93
Des15 0.91 1.05 0.96 1.02
Des16 0.80 0.90 0.72 1.02
Des17 0.69 0.95 0.66 1.02
Des18 0.75 0.91 0.69 1.02
Des19 0.70 0.97 0.68 1.01
平均 0.77 0.95 0.74 0.96
Stddev 0.06 0.07 0.09 0.05

表2:延迟、功耗、能量和多值三元逻辑电路在CMOS标准基础上实现的面积比较

增加后,延迟如所示,具体延迟值见表中。如表格所示,基于闪存的数字电路的延迟范围为至,而CMOS标准单元电路的延迟为,平均延迟为。表显示了实现该数字电路时的功耗比较,当使用我们的多值逻辑比较器与CMOS标准单元电路相比时,功耗降低了%。

我们还分析了在三值实现中能量的使用情况,并将其与CMOS标准单元库进行比较实现。平均而言,多值闪存簇基础三值数字电路的能量利用率约为CMOS标准单元基础实现的0.74倍。此外,平均而言,使用MVFC基础设计方法实现的数字电路使用0.96倍的CMOS工艺实现一个基于CMOS的设计。图7,展示了实现多值闪存簇的“Des00”的代表性布局。一般来说,对于一种新的电路设计方法来说,建立一个以延迟、面积、功耗和能量为指标的基准设计是重要的,因此这些结果具有重要意义。

多值闪存簇显示出在改进方面比TLC [2] 有所提高。多值闪存簇的延迟是TLC延迟的0.32倍。这种延迟改进源于其功率耗散和能量方面的增加。平均而言,多值闪存簇比TLC节省了其功率消耗和2.5倍的能量消耗。多值闪存簇的物理面积略大(slightly larger)物理面积较大,相比TLC。TLC可用于功率和能量受限的设计,这些设计可以容忍更大的延迟。多值闪存簇可用于延迟敏感的设计,并在延迟、面积、功率和能量方面改善了标准单元设计。

表中的列出了各项结果的标准差。该标准差表明,三相设计的相对结果在延迟上变化为6%,功率上变化为9%,能量上变化为7%,物理面积上变化为5%。这些指标中的噪声小于可改进的程度。

针对延迟和能量进行了特别优化。

基于闪存的数字电路具有调节其延迟、功率和能量特性的能力。这是通过在制造后电路中偏移闪存晶体管的VT来实现的。这种基于闪存的数字电路的VT精度提供了巨大优势,超过了传统CMOS标准电路在工厂加速、老化缓解和执行售后ECOs时的表现。图8显示了基于闪存的数字设计的平均延迟、功率和能量,随着其阈值电压被扫描。图8中的延迟是评估和预充电延迟之和。请注意,偏移阈值电压水平必须限制在一个范围内,以确保电路的正确操作。图8中显示的结果是在验证电路正确操作后提取的。

5. 结论

本文介绍了使用闪存晶体管来实现多值数字电路的方案。我们展示了在基于闪存的多值数字电路中所采用的电路拓扑设计细节。我们的HSPICE仿真结果表明,在平均20种设计的情况下,与传统的CMOS标准设计相比,我们的方法在延迟方面改善了23%(更低),功耗降低了5%(更低),能量节省了26%(更低),面积减少了4%(更低)特性。当在平均20种设计上进行评估时,我们的方法在多值、基于闪存的应用中表现出更优的性能。

【四轴飞行器】非线性三自由度四轴飞行器模拟器研究(Matlab代码实现)内容概要:本文围绕非线性三自由度四轴飞行器模拟器的研究展开,重点介绍了基于Matlab的建模与仿真方法。通过对四轴飞行器的动力学特性进行分析,构建了非线性状态空间模型,并实现了姿态与位置的动态模拟。研究涵盖了飞行器运动方程的建立、控制系统设计及数值仿真验证等环节,突出非线性系统的精确建模与仿真优势,有助于深入理解飞行器在复杂工况下的行为特征。此外,文中还提到了多种配套技术如PID控制、状态估计与路径规划等,展示了Matlab在航空航天仿真中的综合应用能力。; 适合人群:具备一定自动控制理论基础和Matlab编程能力的高校学生、科研人员及从事无人机系统开发的工程技术人员,尤其适合研究生及以上层次的研究者。; 使用场景及目标:①用于四轴飞行器控制系统的设计与验证,支持算法快速原型开发;②作为教学工具帮助理解非线性动力学系统建模与仿真过程;③支撑科研项目中对飞行器姿态控制、轨迹跟踪等问题的深入研究; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注动力学建模与控制模块的实现细节,同时可延伸学习文档中提及的PID控制、状态估计等相关技术内容,以全面提升系统仿真与分析能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值