新型分层电路LUT模型

AI助手已提取文章相关产品:

一种用于SOI技术快速原型的新型分层电路LUT 模型

摘要—本文提出了一种新的查找表(LUT)方法,以减少 大规模逻辑和混合信号仿真的仿真时间及运行时内存需求。在 所提出的方法中,首次将包含多个器件的电路替换为一个称为 电路查找表的LUT模型。该替换显著降低了运行时内存需求。 同时,该替换还减少了仿真过程中每次牛顿‐拉夫森迭代所需的 插值步骤数,从而显著缩短了仿真时间。采用所提出的方法, 仿真速度比传统的基于器件的LUT模型提高了两倍。此外,该 方法还实现了运行时内存需求降低25%。

索引术语—查找表,电路查找表,器件LUT,运行时间内存,仿 真速度,全耗尽型绝缘体上硅。

一、引言

SILICON 绝缘体上硅(SOI)相较于体CMOS技术具有 多项优势,例如更低的寄生电容、在相同VDD下更高的性 能、更低的漏电流以及更少的功耗。因此,当工艺节点发 展到45纳米以上以实现更高集成度时,SOI成为设计电路 的热门选择[1]。然而,由于SOI器件行为复杂,其建模更 具挑战性。紧凑模型包含大量方程,因而模型开发需要大 量工作。缺乏精确的紧凑模型会阻碍设计者在技术开发初 期阶段进行电路仿真。此外,面向器件的仿真器(如 TCAD)并不适用于电路仿真。在这种情况下,采用查找 表(LUT)方法在短时间内建立模型的优势成为一个极具 吸引力的选择。LUT模型已在微波频率[8]–[10]和工艺偏 差[11],[12]方面得到验证。然而,基于LUT的模型在精度 与内存需求之间的权衡仍是一个问题[13]。

在传统的基于查找表的方法[2]–[6]中,对于具有 n 个终端的器件,其中一个终端被视为参考终端,其余终端 的 I − V和 Q − V数据存储在查找表中。在仿真过程 中,每次牛顿‐拉夫逊迭代所需的插值次数(记为 m)由 公式(1)给出。

$$
m= 2(n − 1) \tag{1}
$$

例如,考虑一个具有四个端子的体硅MOSFET。如果以源极为参考端子,则需要对IG DC, IB DC, ID DC,QG, QB和 QD进行插值,其中电流和电荷是根据端子电荷的 瞬时值计算得出的。

在使用上述查找表方法(下文称为器件LUT)进行电 路仿真时,有两个重要问题需要解决:(a) 内存需求, (b) 仿真时间。当电路中包含不同尺寸的器件时,内存需 求尤其值得关注,因为每个器件都需要其独立的查找表。 此外,随着器件数量的增加,仿真时间也会增加,因为在 计算函数及其导数时所涉及的插值次数也随之增加。

本文首次提出了一种用于电路仿真的电路查找表方法, 与器件LUT 方法相比,该方法具有更低的内存需求和更高 的仿真速度。此外,我们还展示了一种“分层”方法,其 中电路的一部分采用电路查找表 方法处理,而其余部分则 采用器件LUT 方法处理。使用28纳米全耗尽型绝缘体上 硅器件在Cadence仿真器中验证了所提出的查找表方法。

本文的结构如下。在第二节中,简要回顾了device LUT 。第三节介绍了circuit LUT的概念。在第四节中,用circuit LUTs表示存储器应用中最常用的电路。在第四节 中,通过SRAM块的仿真验证了所提方法的优势。

II. 器件LUT 方法

在FDSOI NMOS器件(图1(a))的器件LUT方法中, 将器件的一个端子作为参考节点,并将其他端子的 I − V 和 Q − V数据存储在查找表中(见图1(b))。我们将从 直流仿真(或测量)获得的 I − V数据称为静态模块, 而Q‐V数据从小信号y参数获得器件的动态模块(见图1(c))。图2显 示了用于准备查找表的仿真设置。记录 I − V数据时, 所有交流源均设为零。对于 Q−V数据,使用小信号y参 数,并将直流源设置为确定的偏置值 Q(V ∗ 2, V ∗ 3, V ∗ 4)。 例如,与端子2相关的电荷 Q2通过公式(2)计算。

$$
Q2(V ∗ 3, V ∗ 4)− Q2(V 0 3, V 0 4) = \int_{V_0^2}^{V_ ^2} C22(V_ ^2 , V_0^3 , V_0^4)\partial V2 + \int_{V_0^3}^{V_ ^3} C23(V_ ^2 , V_ ^3 , V_0^4)\partial V3 + \int_{V_0^4}^{V_ ^4} C24(V_ ^2 , V_ ^3 , V_*^4)\partial V4 \tag{2}
$$

其中 $ C22 = \frac{Im{y22}}{\omega} $,$ C23 = \frac{Im{y23}}{\omega} $ 和 $ C24 = \frac{Im{y24}}{\omega} $

在公式(1)中, V2、 V3和 V4是相对于作为参考的源 极的栅极、漏极和背栅电压。 V 0 2 、 V 0 3 和 V 0 4 分别表示n 沟道晶体管的V 2 , V 3 , V 4的最小值。

示意图0

示意图1

III. 电路查找表 方法

在电路LUT 方法中,包含多个器件的电路用一个等 效查找表集表示。与器件LUT类似,电路LUT 有一个参 考端子,其他端子通过两个模块(静态和动态)连接到参 考端子。用于

示意图2

示意图3

静态和动态模块的查找表集分别包含 I−V数据(来自直 流仿真)和Q‐V数据(来自小信号y参数)。

例如,考虑由device LUT和电路查找表 表示的 CMOS反相器,如图3所示。以VSS为参考,静态和动态 模块分配给其余三个端子,如图3(c)所示。图4显示了用 于生成电路查找表 的查找表集的仿真设置。 I −V数据由 直流仿真生成, Q−V数据由第二节中公式(2)给出的小 信号y参数生成。

以上述CMOS反相器为例,两个device LUT被一个 circuit LUT替代,因此由于使用一个表而不是两个表,内 存需求减少。此外,在仿真期间,每次牛顿‐拉夫逊迭代 所需的插值次数从十二次减少到六次,从而减少了仿真时 间。仿真时间(T)取决于(3)中给出的各种因素。

$$
T= f(N_C , I_T , m, d, k,[t]) \tag{3}
$$

在(3)中, $ N_C $表示电路中的节点总数,用于确定求解 基尔霍夫定律的矩阵大小, $ I_T $ 表示仿真过程中执行的迭 代总数, $ m $表示每次迭代的插值次数, $ d $表示多维插值 的独立变量个数, $ k $表示插值算法的阶数,[t]表示加法、 减法、乘法和除法等每种算术运算所用时间的数组。通过

示意图4

该方法减少了每次迭代的插值次数(m),而 NC、k、d和[ t]在器件LUT和电路查找表中保持不变。假设 IT在器件 LUT和电路查找表中的数值相近,则仿真时间的减少与每 次迭代的插值次数的减少直接相关。

IV. 静态随机存取存储器电路的电路查找表建议集

在本节中,我们提出了一套完整的电路LUT,这些查 找表将用于静态随机存取存储器(SRAM)的建模与仿真。 我们针对两种不同情况讨论了电路LUT的概念:(1)没 有中间节点的电路,如反相器、锁存器和预充电电路; (2)具有中间节点的电路,如与非门和或非门。对于具 有多个中间节点的电路,如SRAM单元、灵敏放大器和写 驱动器,则通过电路LUTs与器件LUTs的组合来表示。器 件LUT是为28纳米FDSOI技术 [7] 开发的,并用于生成 电路LUT。

A. 无任何中间节点电路的电路查找表

没有任何中间节点的电路是指所有节点均连接到电源 或被视为输入或输出端子的电路,例如CMOS反相器、锁 存器和预充电电路。与FDSOI NMOS器件类似,此类电 路的电容(Im{y} ω )随频率保持不变,如图5所示。因此, 此种情况下电路查找表circuit LUT的建立过程与器件 LUTdevice LUT类似。静态模块的 I − V数据通过直流仿 真提取,动态模块的Q−V数据则由小信号y参数生成,如 公式(2)所示。

CMOS反相器的电路查找表在第三节中进行了介绍。 通过用一个等效的电路 LUT 替代两个device LUT,插值 步骤数从12减少到6,从而显著提升了性能,如表 I 所示。 峰值内存占用减少了16%,仿真时间减少了45%。性能的 提升是在传播延迟的最大相对误差为0.03%的情况下实现 的,该误差是相对于device LUT而言的。图 6 显示了使用 紧凑模型、device LUT和circuit LUT在28纳米SOI技术下 CMOS反相器的瞬态仿真结果。图 7 显示了输入端为频率 1 GHz的大信号正弦波时反相器的输出。两种device的仿真结果

器件 LUT 电路 LUT 改进(%)
峰值内存 消耗量(MB) 49 41 16
仿真时间(秒) 0.49 0.27 45

示意图5

示意图6

LUT和电路查找表 与紧凑模型的匹配最大相对误差分别为0.003%和0.007%,验证了模型在微波频率下的有效性。 基于LUT的模型的主要误差来源是电荷计算中的误差。动 态模块的Q‐V数据通过两个步骤计算:(1)首先在不同 的偏置点提取小信号y参数的虚部(C);(2)通过对C 进行数值积分,计算不同偏置点处的端子电荷(Q)。理想情况下,端子电荷Q对端子电压的偏导数应返回与步骤 1中提取的相同的C值。然而,由于数值方法的原因,存在 微小差异。在给定的偏置点下,该差异非常小,但在各个 偏置点上的差异累积导致仿真结果的误差增大。

锁存电路是反馈电路的一个简单示例,也是6T SRAM单元的基本元件。图8展示了以VSS为参考端子时, 使用电路查找表表示的锁存电路。通过将四个器件LUT替 换为一个单一的circuitLUT,插值步骤数从24减少到6,从 而使仿真时间减少了70%(表II)。表II显示,使用电路 查找表可使运行时内存需求降低18%。这是因为两个查找 表集(NMOS和PMOS)被合并所致。

示意图7 全耗尽型绝缘体上硅 device LUT(b) circuit LUT)

器件 LUT 电路 LUT 改进 (%)
峰值内存 消耗量(MB) 50 41 18
仿真时间(秒) 1.13 0.29 70

示意图8

由一组电路查找表替代。通过在仿真结果中引入可忽略的 误差,实现了性能的提升。图9显示了使用器件LUT 和电 路查找表 对锁存器进行瞬态仿真得到的结果,其上升时 间的最大相对差异为0.1%。

图10所示预充电电路的电路查找表 已建立。VDD被 用作参考端子。通过将三个器件LUT替换为一个电路查找 表,每次牛顿‐拉夫逊迭代的插值步骤数从18减少到6。在 表III中报告了使用电路查找表 所取得的性能提升。采用 我们的新方法,运行时内存需求减少了2%,仿真速度提 升了65%。图11显示了使用

示意图9 使用FDSOI 器件LUT,(b) 使用电路LUT。)

器件 LUT 电路 LUT 改进(%)
峰值内存 消耗量(MB) 42 41 2
仿真时间(秒) 0.81 0.28 65

示意图10

一种用于SOI技术快速原型的新型分层电路LUT 模型

B. 带有中间节点的电路的电路查找表

在我们提出的LUT方法中,当一个节点既不连接到任何电源,也不被视为输入或输出端子时,该电路被视为具有中间节点的电路。例如,如图12所示,与非门的所有端子(除了中间节点x)均连接至电源、输入或输出。此种情况下电路查找表circuit LUT的构建过程以与非门为例进行说明。由于存在中间节点x,这种情况下电路查找表 circuit LUT的实现相比反相器更具挑战性。与CMOS反相器类似,与非门的电路查找表circuit LUT在每个端子上均包含一个静态模块和一个动态模块。VSS作为参考端子。为建模与非门的电路查找表circuit LUT,VDD固定在一个电压电平(本例中为1.1伏)。因此,静态模块和动态模块对VDD的依赖性是

示意图11 晶体管级原理图 (b) 电路查找表 (c)LUT的静态和动态模块)

在我们的电路查找表方法中,省略了与非门的I−V。静态模块的数据通过直流仿真提取并存储在查找表集中。然而,此情况下的动态模块与CMOS反相器的动态模块不同,如下所述。

基于查找表的模型的动态模块是从第二节中定义的小信号y参数的虚部(Im{y})推导而来的。因此,推导电路查找表 中与非门动态模块的第一步是观察 Im{y}随频率的变化关系。例如,我们考虑 Im{yi,OUT},它被定义为在终端i(i = A、B、OUT和VDD)处施加单位值小信号电压时,在OUT端产生的小信号电流。图13显示了在给定偏置点下 Im{yi,OUT}随频率的变化情况。如图13(a)所示,当i=VDD时, Im{yi,OUT} ω不随频率变化而保持恒定。这种行为与反相器类似,VDD与VSS之间的动态模块可通过第三节中描述的反相器类似方法获得。然而,当i= A、B和OUT时,由于中间节点x不在交流地, Im{yi,OUT} ω与频率呈现出非线性关系。在这种情况下,我们需要一个子电路来设计动态模块。图13(b)展示了能够提供与与非门相似y参数的最简单RC电路。这引导我们设计出如图13(c)所示的动态模块的大信号模型,其中包含三个非线性元件 IX、 Q1X和 Q2X。

大信号元件 Q2X 是端子电压(VA、 VB 和 VOUT)的函数,而 IX 和 Q1X 则是端子电压以及动态模块中所有元件上的电势( VC 和 VR)的函数,如公式 (4) 所示。

$$
IX= f1(VA, VB, VOUT)VR \tag{4a}
$$
$$
Q1X= f2(VA, VB, VOUT, VC) \tag{4b}
$$
$$
Q2X= f3(VA, VB, VOUT) \tag{4c}
$$

其中 VC是元件 Q1X两端的电压, VR是图13(c)中所示 元件 Q2X两端的电压。流入动态模块的电流由(5)给出。

$$
Idynamic= \frac{\partial Q1X}{\partial t} = IX+ \frac{\partial Q2X}{\partial t} \tag{5a}
$$

or

$$
p1a \frac{\partial VA}{\partial t} + p1b \frac{\partial VB}{\partial t} + p1out \frac{\partial VOUT}{\partial t} + p1c \frac{\partial VC}{\partial t} = IX+ p2a \frac{\partial VA}{\partial t} + p2b \frac{\partial VB}{\partial t} + p2out \frac{\partial VOUT}{\partial t} \tag{5b}
$$

其中

$$
p1k = \frac{\partial Q1X}{\partial V_j},\quad p2j = \frac{\partial Q2X}{\partial V_j}
$$

其中 j = A、B 和 OUT,k =A、B、C 和 OUT。

动态模块在输出端子与VSS之间的小信号等效电路如 图13(d)所示。 I X 的小信号分量仅用一个电流源表示,因为在直流条件下,(4a)中的 V R 值为零,导致 I X 对V A 、 V B 和 V OU T 的偏导数均为零。该动态模块的小信号y参数由(5)推导得出,并由(6)给出。

(a)

(b)

示意图12 Im{y}/ω随频率变化显示了与非门的y参数与频率之间的非线 性关系 (b) 最简单的RC电路,用于在给定偏置点下匹配与非门的y参数行 为 (c) 动态模块在输入/输出端子与VSS之间的大信号模型 (d) 动态模块在 输出端子与参考端子之间的小信号等效。)

$$
y_{out,A}= \frac{s^2 r p_{2a} p_c + s p_{1a}}{s r p_c +1} \tag{6a}
$$
$$
y_{out,B} = \frac{s^2 r p_{2b} p_c + s p_{1b}}{s r P_c +1} \tag{6b}
$$
$$
y_{out,out} = \frac{s^2 r p_{2out} p_c + s(p_{1out} + p_c)}{s r p_c +1} \tag{6c}
$$

在(6)中,通过将(6)中描述的行为与通过与非门的交流仿真获得的小信号y参数进行匹配,得到 rpc 、 p1a 、 p1b 、 p1out + pc 、 p2a 、 p2b 和p2out 的值。然后,基于(5),利用曲线拟合方法从小信号参数中获得动态模块各组成部分 I X 、 Q1X 和 Q2X 的大信号查找表。对于部分耗尽型SOI( PDSOI)器件,采用[7]中描述的分段拟合方法进行曲线拟合。[7]中描述的适用于两个独立变量的拟合方法被扩展到与非门的三个独立变量( VA、 VB和 VOUT)。在不同的偏置点下, IX、 Q1X和 Q2X的值被计算并存储在查找表集中。输入端口处的动态模块采用与输出端子所述相似的方法进行设计。

上述讨论的一个电路查找表在电路仿真中使用两输入与非门时可替代四个器件查找表。该与非门的两个 NMOS器件尺寸不同,而两个PMOS器件尺寸相同。因此,采用器件LUT设计的与非门需要三组不同的查找表。引入电路查找表后,三组查找表被一组取代,从而使运行时内存需求减少了12%。通过用与非门的器件LUT替换为电路查找表,每次牛顿‐拉夫逊迭代所需的插值次数从24次减少到14次,从而将仿真时间缩短了36%,如表IV所示。图 14显示了使用器件LUT和电路查找表对与非门进行仿真的瞬态仿真结果比较。电路查找表的结果与器件LUT的结果吻合,下降时间的最坏情况误差为1.3%。

另一个具有一个中间节点的电路示例是或非门。或非门的设计和小信号y参数与与非门相似。或非门的电路查找表 可以采用与或非门相同的方法来实现。

器件 LUT 电路 LUT 改进(%)
峰值内存 消耗量(MB) 52 46 12
仿真时间(秒) 1.08 0.69 36

示意图13

C. 通过电路查找表和器件LUT的组合表示具有多个中间节点的电路

由于存在较大误差,避免了对具有多个中间节点的电路 (如SRAM单元、灵敏放大器和写驱动器)采用单一等效电路查找表表示

示意图14 全耗尽型绝缘体上硅器件查找表;(b) 电路 LUT与器件LUT的组合)

器件 LUT 电路 LUT 改进 (%)
峰值内存 消耗量(MB) 56 47 16
仿真时间(秒) 1.06 0.5 53

示意图15

仿真结果。采用曲线拟合方法计算具有中间节点的电路 LUTs的电荷,随着中间节点数量的增加,误差也随之增大。因此,这些电路由器件LUT和电路LUT的组合来表示。图15展示了在我们的新方法中SRAM单元的表示方式。6T SRAM单元的晶体管级设计被一个锁存器的电路查找表和两个访问晶体管的器件LUT所替代。通过这种替换,每次牛顿‐拉夫逊迭代中的插值步骤数从36减少到18。表 V显示了我们的新方法在SRAM单元读取仿真中实现的仿真性能提升。运行时内存需求减少了16%,仿真速度提高了53%。图16展示了仅使用器件LUT和使用电路查找表的 SRAM单元读取仿真结果。与器件LUT相比,所提出的模型在读取访问时间上的最大可忽略误差为0.07%。

示意图16 使用九个器件LUT,(b) 使用两个电路查找表和三个器件LUT的组合)

器件 LUT 电路 LUT 改进 (%)
峰值内存 消耗量(MB) 63 51 19
仿真时间(秒) 1.73 0.95 45

示意图17

图17展示了由我们提出的新型基于LUT的方法表示的灵敏放大器的传统结构。晶体管级模型被两个电路LUTs(锁存器和反相器)以及三个device LUTs所替代。灵敏放大器中锁存器内的N型MOS管的体区和源极处于不同电位电势。因此,与SRAM单元不同,为灵敏放大器考虑的锁存器的circuit LUT具有五个端子,其中NMOS器件的体区被用作参考端子。为了在相同的 d值(如式(3)中所述)下比较device LUT和circuit LUT的仿真速度,VDD固定在一个电压电平(本例中为1.1 V)。通过我们提出的新方法表示,在每次牛顿‐拉夫逊迭代中需要执行的插值次数从使用device LUT时的54次减少到在灵敏放大器仿真期间的32次。表VI总结了性能提升:运行时内存需求减少了19%,仿真速度提高了45%,仅带来0.4%的最坏情况误差。图18显示了使用device LUT和circuit LUT的灵敏放大器的瞬态仿真结果。

图19显示了写驱动电路,该电路能迅速将其中一条位线从预充电电平放电至低于SRAM单元的写裕度。在我们表示写驱动电路的新方法中,首先推导出写驱动器的一个子电路(图19(b))的电路查找表 。该子电路由一个反相器和一个NMOS器件组成。

示意图18 仅用器件LUT表示的写驱动电 路。(b) 写驱动器的一个子电路用电路查找表表示。(c) 通过组合电路查 找表和器件LUT表示的写驱动电路。)

器件 LUT 电路 LUT 提升 (%)
峰值内存 消耗量(MB) 59 50 15
仿真时间(秒) 1.6 0.8 50

示意图19

电路查找表是通过遵循第四节A部分中反相器所采用的步骤推导得出的,并在写驱动器的设计中使用了两次。图 19(c)展示了采用我们的新方法表示的写驱动器,该方法将八个器件LUT替换为两个相同的电路查找表和两个器件LUT。这种替换使得仿真过程中的插值步骤数从48减少到24。因此,运行时内存需求减少了15%,仿真时间减少了50%。器件LUT与电路查找表的仿真性能比较如表七所示。该改进的最大误差仅为0.4%。图20显示了使用器件LUT和电路查找表对写驱动器进行仿真所得到的仿真结果的对比。

其他一些逻辑电路,如异或门以及具有两个以上输入的门,具有多个中间节点

示意图20

示意图21 通过电路查找表和器件LUT的组合表示n输入与非门。上拉网络的表示: (b) 对于一个额外输入使用器件LUT,对于(c)两个输入和(d)三个输入使用电路查找表。)

并且可以由电路LUTs和器件LUTs的组合来表示。当使用与非门实现异或门时,采用两输入与非门的电路LUTs。异或门也可以使用传输管逻辑进行设计。图21展示了使用电路LUTs表示的基于传输管逻辑的异或门。circuit LUT和device LUT分别用于表示反相器和传输晶体管。类似地, n输入与非门也可以由circuit LUT和device LUT的组合来表示。图22(a)显示了通过使用2输入与非门的circuit LUT以及晶体管的器件LUT来表示n输入与非门的方法。两个器件LUTs,一个用于上拉,另一个用于下拉,连接到2输入与非门以增加额外的输入。多个上拉晶体管可以用一个circuit LUT表示,如图22(c,d)所示。为了限制集成和插值所需的维度数量,单个circuit LUT所能表示的上拉晶体管最大数目被限制为3。

在A节和B节中,我们讨论了生成电路查找表的过程。即使是从布局生成的电路LUTs,该过程也保持相同。对于传统晶体管级电路仿真器而言,每次布局发生变化时都必须重复进行仿真。同样,如果某个电路模块的内部布局发生改变,则其电路LUT只需生成一次并可重复使用。位于电路LUT外部的互连寄生效应将采用传统布局提取工具相同的方式进行提取。

五、存储器模块的仿真

第IV节中为不同电路推导出的电路查找表用于完整 SRAM模块的仿真。该SRAM模块的行地址和列地址大小分别为N和 M。该模块可多次使用,以实现对更大规模 SRAM模块的仿真。图23所示的SRAM模块已用于读取仿真。6T SRAM单元、灵敏放大器以及预充电电路的电路查找表已在第IV节中讨论。行和列译码器采用第IV节中讨论的反相器和与非门的电路查找表设计而成。2到4译码器的实现如图23(b)所示。该2到4译码器再次用于设计4到 16译码器,如图23(c)所示。

器件LUT和电路LUT的数量随着 M和 N值的增加而增加。该模块中使用的6T SRAM单元数量等于位数 2(M+N)。仿真 SRAM模块时使用了一个灵敏放大器、 2M+ 1个预充电电路和 2(M+1)个传输晶体管。此外,使用两个解码器(行和列)来解码存储器地址。具有 N个输入和 2N个输出的行译码器在实现时需要 N+ 2N个反相器和$\sum_{i=1}^{N} 2^{2N-i+1}$个与非门。类似地,具有 M个输入和 2M个输出的列译码器需要 M+ 2M个反相器和 $\sum_{i=1}^{M} 2^{2M-i+1}$个与非门。仅使用器件 LUT设计的解码器,每个反相器使用2个LUT模型,每个与非门使用4个LUT模型。

(a)

示意图22 SRAM 模块用于仿真 (b) 使用与非门设计的 2 到 4 译码器 (c) 由 2 到 4 译码器构成的 4 到 16 译码器)

器件LUT 电路查找表 器件LUT 电路查找表
6T SRAM单元 灵敏放大器 预充电电路 传输晶体管 行译码器
列译码器
2M+N 1
2N+ 1 2M+1
1
1
6(2M+N)
9 3(2N+ 1)
2M+1 2(N+2N)
+4 N ∑ i=1 22N−i+1
2(M+2M)
+4 M ∑ i=1 22M−i+1
3(2M+N)
5 2N+ 1 2M+1
N+2N
+ N ∑ i=1 22N−i+1
M+2M
+ M ∑ i=1 22M−i+1
36(2M+N)
54 54(2N+ 1) 6(2M+1) 12(N+2N)
+24 N ∑ i=1 22N−i+1
12(M+2M)
+24 M ∑ i=1 22M−i+1
18(2M+N)
32 6(2N+ 1) 6(2M+1) 6(N+2N)
+14 N ∑ i=1 22N−i+1
6(M+2M)
+14 M ∑ i=1 22M−i+1

每个与非门的LUT模型。因此,行译码器设计中使用的器件LUT总数为$2(N+2^N)+4\sum_{i=1}^{N} 2^{2N-i+1}$。采用电路 LUT实现的解码器需要为每个反相器提供一个LUT模型,以及为每个与非门提供一个LUT模型。因此,行译码器设计中使用的电路LUT总数为$N+ 2^N+\sum_{i=1}^{N} 2^{2N-i+1}$。对于列译码器也可得出类似的结论。表VIII总结了本讨论的结果。表VIII比较了SRAM模块在采用器件LUT和电路 LUT方法实现时,仿真过程中所使用的LUT模型数量。该表还比较了在整个SRAM模块仿真期间每次牛顿‐拉夫逊迭代所需执行的相应插值次数。

电路LUT方法在不同 M和 N值下所实现的仿真性能提升如表IX所示。该表格比较了仿真

M N 运行时内存使用量(MB) 仿真时间(秒)
器件LUT 电路查找表
2 2 124 92
4 4 124.2 92.1
8 2 124.3 92.1
8 4 124.5 92.3
8 8 124.8 92.5

示意图23

示意图24

在使用器件LUT和电路LUT对SRAM模块进行仿真时的性能表现。使用电路LUT后,仿真速度相较于器件LUT提高了两倍。运行时内存需求也观察到有25%的改善。图24显示了每次迭代的插值次数变化对仿真时间的影响。影响仿真时间的不同参数已在(3)中引入。 NC、 IT和 m的值在 (3)中引入,其值取决于SRAM模块中的位数。如第三节所述,仿真时间与每次迭代的插值次数直接相关,这一点可以从图24中看出。器件LUT 和电路LUT 的仿真时间之比遵循它们每次迭代的插值次数之比。

图23展示了使用电路查找表和器件LUT对一个16位 SRAM模块进行读模式仿真得到的仿真结果。图中显示了解码器输出(字线)随输入数据数组的变化情况以及灵敏放大器数据线的变化情况。电路查找表的仿真结果与器件LUT相比,最大时序误差为1.7%。在基于电路查找表的仿真中,静态功耗与基于器件LUT的仿真与动态功耗的差异为2.1%。误差的主要来源是使用与非门设计的解码器。在与非门的电路 LUT中,端子电荷通过曲线拟合方法计算,相比数值积分方法会产生更大的误差。

作为另一个示例,考虑图26(a)所示的只读存储器 (ROM)电路,以演示电路查找表的概念。一个8X3 ROM使用器件查找表和电路LUTs进行仿真。3到8解码器采用反相器和三输入与非门的电路LUTs设计而成。ROM的另一部分实现了三个函数$f_2= \sum(2, 3, 4)$、 $f_1= \sum(0, 1,2,6)$ 和 $f_0= \sum(0, 1,5,7)$。每个函数均使用器件查找表和电路LUTs实现。除了反相器的电路LUT外,还使用图26(d)所示的另一个电路LUT来表示上拉网络。该概念已在IV.C中讨论过,用于实现三输入与非门。同样的概念也被用于创建具有公共字线的下拉晶体管的电路 LUT(图26(c))。在此示例中,使用电路LUTs后,每次牛顿‐拉夫逊积分所需的插值次数从354次减少到242次。

示意图25 使用器件LUT和电路LUT仿真8X3 ROM,(b) 当字线连接到单 个晶体管时使用器件LUT,(c) 电路LUT表示具有公共字线的两个晶体管, (d) 电路LUT用于表示上拉网络。)

示意图26

器件 LUT 电路 LUT 改进 (%)
峰值内存 消耗量(MB) 81 68 16
仿真时间(秒) 71 52 27

用于基于器件LUT方法的快速仿真。在[6]中采用多元插值技术结合动态规划,以提高基于器件LUT方法的仿真速度。这些技术可用于电路查找表模型,以进一步提升仿真性能。

VI. 结论

本文提出了一种利用查找表对电路进行建模的新方法,称为电路LUT。电路LUT 可减少仿真时间及运行时内存需求。文中采用电路LUT 对反相器、锁存器、与非门、 SRAM单元、灵敏放大器、预充电电路和写驱动电路等不同电路进行建模,并报告了该新方法的优势。接着,本文通过使用器件LUT和电路LUT对SRAM模块进行仿真,比较了其仿真性能参数、运行时内存需求以及仿真速度。采用电路LUT后,仿真速度提高了两倍,内存占用减少了25%。结果表明,在每次牛顿‐拉夫逊迭代中,插值次数能够代表器件LUT和电路LUT的仿真速度。

您可能感兴趣的与本文相关内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值