自定时电路的函数式分析方法

自定时电路设计中的函数式方法

摘要

自定时电路具有无竞争的独特特性。这类电路设计的主要问题之一是自定时分析(元件切换)以及大型电路的构建。在传统方法中,计算复杂度极高,以至于无法分析大多数重要的实际电路。在功能方法中,我们提出了一种分层方法:在较低层次分析元件的逻辑功能,在顶层分析模块间关系。此处的计算复杂度接近于电路规模的线性函数。该方法解决了自定时电路设计的一个主要问题——能够分析任意规模的电路。所提出方法的有效性已通过开发的软件得到验证。

引言

自定时电路(ST电路)属于异步速度无关[1]电路,这类电路的正常运行独立于元件的延迟。术语“速度无关”是针对具有单一初始状态的闭合电路定义的。对于实际开发而言,似乎在[2, 3]中提出的术语“自定时电路”更为方便,因为它允许电路以开放的形式表示。

这些特性提供了独特效应。它们提供的正常工作范围最广,该范围仅由元件切换的物理(而非电路设计)可能性决定,这是同步电路无法实现的。ST电路在低供电电压下的正确性使得能够创建具有低功耗的电路。故障安全特性使其成为可能以获得包括自测试和自修复在内的高可靠性电路。

俄罗斯的ST电路及CAD工具的实际开发工作由 В.И. 瓦尔沙夫斯基的团队[2, 3]率先开展。他们开发了基于完整状态下的状态转移图方法(TD)的ST电路分析子系统TRANAL[3],该系统可对并行性阶数高达6的小规模电路进行分析。

为了增加被分析电路的规模,В.И. 瓦尔沙夫斯基团队开发了变化图事件方法(CD)[4]和分析子系统TRASPEC,但仅适用于分布电路[5] (表1)。

CAD Tool 微流水线 控制队列 (来自[5]的图10)时间,sec 微流水线 控制队列 (来自[5]的图10)内存 /+或 – 磁盘交换 异步 开关 (来自[5]的图9)时间,sec 异步 开关 (来自[5]的图9)内存,千字节
TRANAL VERDECT 180 300 400 千字节 /+ 2 兆字节 /– 0.9 9 122 9 122 千字节
TRASPEC 1 100 千字节 /– 0.38 100 千字节

在[5, 6]中指出了为所有ST电路类实现CD的复杂性和必要性。

在俄罗斯,ST电路的创建与分析所使用的实用方法和工具由IPIRAN的专家们进行开发。最初,在CD基础上开发了大型TRANAL(BTRAN)和ASYAN [7]子系统。这使得被分析电路的并行性程度最高可达24(表2)。

随后开发了基于CD的子系统ASPECT。它为设计所有ST电路类别提供了支持(表3)。

达到的复杂度水平可以被视为不使用层次化分析的分析程序的极限。进一步降低时间成本

*本研究由俄罗斯基础研究基金会根据研究项目 编号 13-07-12068 ofi_m)资助。978‐1‐4673‐7776‐8/15/$31.00 ©2015 IEEE

CAD 工具 Parallelism 电路级别 状态内存,吉字节 每小时状态数,10^6
TRANAL BTRAN 5-6 12 16 模 单元 0.64 0.3
ASYAN 18 24 模块 48 200

2. 经典分析的问题

基于电路状态和元件切换事件对方案的半模性(自定时)属性进行的经典分析,我们将其进一步称为事件驱动方法。

第一种分析方法(TD [1])的目的是识别方案中的冲突(潜在竞争)。没有冲突的电路被称为semimodular。TD 方法中的计算问题源于状态数量相对于元件数量的指数依赖,以及与电路中并行度相关的问题。设 N ‐ 激发态元件数量(并行度)。

根据 TD 构造规则,该状态将生成 N 个后续状态,每个状态中有 N–1 个元件处于激发态。这些状态中的每一个又会产生 N‐1 个跟随器,每个跟随器中有 N–2 个激发态元件。因此,我们看到计算量对并行度存在阶乘依赖。例如,如果 N = 10,这是完全可能的,则生成的状态数将超过 360 万。

CD方法能够以更紧凑的方式提交方案的作品,描述的不是完整的状态,而仅仅是元件发生变化的输出。该方法基于对等效TD的分析。由于需要在现有的并行度下分析方案的所有可达状态,因此计算困难虽然有所减少,但仍然很大。

事件方法的共同点是,方案应以封闭形式表示,以保证其自生性,同时分析仅从一个给定的初始状态开始。这两种情况都需要人为构造,并阻碍了电路的传统设计。

出于实际目的,有必要分析电路在真实运行中的所有状态,即进行完整分析。关于完备性的计算 [9]表明,在事件驱动方法中,要保证满足此条件,可以向输入22I+M发送集合,其中I为数据输入的数量,M为存储变量的数量,且这些集合必须按特定顺序排列。这意味着需要构建一个非常复杂的电路,从而增加用于分析的方程数量。

上述计算困难限制了事件方法的应用:对于TD,仅适用于包含二三十个元件的电路;对于CD,则可稍多一些。

事件方法将方案作为一个整体进行分析。在实践中,大型电路是分部分设计的,使用这些方法时,必须反复地组装和拆分方案的各个部分。由于电路规模庞大,通常无法对最终方案进行完整的分析,因此无法保证其半模性。

分析任意规模电路的唯一方法是采用分层方法,该方法基于对复合电路各部分的先前分析,保证复合电路的自定时。在事件驱动方法中,尚未提出这种方法。

接下来描述了一种功能方法 [9],该方法主要利用ST电路,并能够解决上述问题。

3. 功能方法在分析中的应用

功能方法的特点:
1) 分析元件方程,不计算电路状态0和1。
2) 我们考虑在实际开发中更为自然的开环方案。
3) 考虑ST电路[3]的特性:ST编码数据、两相工作规范(分离工作相和中间相——间隔)、信号指示以及其他特性。

在事件驱动方法中,延迟无关性准则是半模性。该准则是一种数学抽象,仅间接地与电路的实际参数相关。但半模性的结果——缺乏竞争和故障安全具有直接的实际意义。这些结果可以构成ST电路定义和构建的基础。因此,针对ST电路设计的实际需求,提出了以下定义[9]。

ST电路是一种开环结构,对于所有实际的初始状态和工作过程中可达到的状态,具有两个特性:对于所有有限元件延迟均不存在竞争,且关于元件输出的恒定粘连至0和1具有故障安全特性。

在片上实现时,自定时可能依赖于线路延迟。因此,在功能逻辑级设计中,定义中所述的特性是必要条件,必须通过工程解决方案来保证。线路延迟问题需要额外的拓扑分析,此处不予考虑。

功能方法中的自定时分析包括在所有层次上针对每个模块分别检查电路的两个属性。为了进行分析,必须指定电路的输入和输出(具有属性)其ST类型:相位信号(控制、指示)、数据信号(双稳态单元的输出)以及一些辅助信号。通过这种方式,开环电路可以在层次结构的任何层级上表示。

通过信号可指示性来确保故障安全条件。可指示性是[3]中引入的一个概念,它意味着在每个相位中,电路的输入或内部信号的任何变化都应反映在相位输出的变化上。如果相位输出未能响应信号变化,则失去了可指示性,在发生恒定粘连的情况下将无法检测到——电路将继续错误运行。

因此,对于自定时分析,需要检查两个要求:信号的指示性和不存在竞争。这两个要求必须针对每个模块进行检查。较低层次模块的分析和高层级的分析以不同的方式进行。在较低层次上,使用模块的逻辑方程描述;在高层级上,则使用模块间关系以及较低层次分析的结果。

3.1 低层级分析

首先,在较低层次上对每个信号的指示性进行检查(针对所有电路输入和内部元件的所有输出)。该检查通过直接方法进行。首先计算模块相位输出的正常值,然后对每一个指示粘连被模拟,并执行相位输出的新计算。正常值与“粘连”值的比较显示了信号指示性。

为了确保完备性,在进行计算时,电路的信息输入端不发送数值0和1,而是发送可接受二进制值的独立变量。因此,电路所有可能的信息输入值都被考虑在内。在计算过程中识别出的存储单元也会被分配一些独立变量。

根据独立变量计算相位输出不存在显著的计算难题,因为其计算复杂度接近于方程数量的线性定律。

下一步是识别可能的竞争。此步骤基于开环电路的定理[3],该定理指出:两相组合电路是自定时的当且仅当它是指示性的(即所有内部信号都在相位输出上被指示)。这意味着在组合可指示ST电路中不存在竞争。

因此,必须在存储元件(双稳态单元,BSC)及相关信号中寻找潜在的竞争。可能导致竞争的信号是双稳态单元输出。而竞争本身可能出现在接收双稳态单元输出的那些元件上。这些元件将被称为双稳态单元跟随器。

分析中有两种情况竞争。第一种方法涉及锁定双稳态单元跟随器。相位信号也与双稳态单元输出一起连接到跟随器。所有这些信号都应按照特定的时序规则进行变化:在双稳态单元输入发生变化的期间,相位信号应禁止(锁定)对象输出的变化。在这种情况下,问题归结为对该时序规则的验证。可以通过元件之间的关系,即采用结构方法进行检查。必须确保锁定信号直接馈送到跟随器,而被锁定的信号则通过其他元件传递。

竞争分析中的第二种情况是缺少锁存器。在这种情况下,需要检查作为双稳态单元跟随器的元件在相应阶段是否存在竞争。

在完成对较低层次模块的分析后,应准备一些数据并将其添加到该模块上层接口中。

分析的计算复杂度在较低层次接近于电路元件数量的线性定律。过程并行性对计算没有明显影响。

3.2. 高层次分析

任何较高层次的电路描述应仅包含在较低层次已成功测试的模块。分析仅针对模块间关系及其接口描述进行。与之前一样,需要检查信号指示性和竞争存在性。在测试过程中,本质上使用了指示性的传递性 [3]。

为每个相位信号创建该信号所指示的信号列表。检查从电路的输入到输出进行。在检查过程中,每个模块在其相位输入上获得指示列表。通过合并得到的列表和接口参数,形成输出模块的指示列表。该过程在电路的相位输出处结束。

检查竞争的方式与在较低层次上的验证类似。所有必要的信息都来自模块间关系和接口描述。

最后,在顶层的最后一步将是准备一些信息并将它写入被分析电路的接口,以供更高一级使用。

所提出的层次化分析方法已通过软件[10]实现并进行了测试。在中等复杂度电路(4位ST微核,表3)上的程序测试证明了该方法的高效率(表3)。

在层次结构的任一上层进行包含所有状态和转换的完整分析仅需零点几秒到百分之几秒。对所有电路模块的总分析时间为0.84秒。对同一微控制器进行一次性事件驱动分析,仅考虑一个初始状态和一种输入值组合(无法保证完备性)时耗时7秒。

4. 结论

现有的经典(事件驱动)ST‐电路设计方法无法解决实际开发中出现的许多问题。功能方法已成为克服这些实际困难的一种途径。

设计具有实际规模的自定时电路的主要挑战之一是自定时分析。事件驱动方法需要完全披露电路,即研究其所有元件的方程。如果电路规模增大,计算复杂度会急剧增加,从而无法对实际重要电路进行必要完备性的分析。

在功能方法中,我们开发了一种对ST电路进行层次化分析的方法。其计算复杂度在模块和信号数量上实际上是线性的。该过程解决了设计ST电路中的一个主要问题,即对任意规模的电路进行分析,这一问题极大地阻碍了ST电路的发展。

单元类型——容量 并行性 BTRAN ASYAN ASPECT
二进制计数器 – 4 / 1 0.01 0.12 0.02
移位寄存器 – 4 / 4 0.21 0.97 0.02
微核 – 4 / 47 0.53 0.02
算术逻辑单元 – 64 / 293 0.14
除法器 – 16 / 330[8] 1588
除法器 – 64 / 1024[8] 27360
分析时间,min*)

*)用于输入和触发器的单一状态 可以通过使用硬件‐软件工具和并行编程来实现,但这些设施相当有限。转向层次化分析是解决此问题的根本方案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值