首页 / 专利库 / 人工智能 / 关联性分析 / 行为合成电子设计自动化工具的β-TO-B应用服务提供商

行为合成电子设计自动化工具的β-TO-B应用服务提供商

阅读:155发布:2021-10-30

专利汇可以提供行为合成电子设计自动化工具的β-TO-B应用服务提供商专利检索,专利查询,专利分析的服务。并且一种B-TO-B应用服务提供商,包含一具有单芯片系统设计者所用的EDA选用方案的互联网web 网站 和web 服务器 。这种web网站容许 硬件 描述语言的 电子 设计上传至前端EDA设计环境。web服务器内部主控的状态模型模拟工具对该设计进行测试验证。这种工具仅在B-TO-B应用服务提供商的安全环境中执行。经验证方案随后通过按次付费的互联网下载返回给客户,并处于准备由后端EDA工具处置和按照路径发送的形式。这种经验证设计方案还可下载至用于与其他设计相交换的其他方面,或者可由科技图书馆提供。所创造的知识产权可重新利用、销售、共享、交换,或者可从利润集中的信息中心高效、方便地分布。,下面是行为合成电子设计自动化工具的β-TO-B应用服务提供商专利的具体信息内容。

1.一种B-TO-B应用服务提供商,具有软件工具环境,该软件工具环境按次付费 提供给单芯片系统设计者用于创造独特的知识产权,其特征在于,包括:
一互联网web网站,可供至少一个单芯片系统设计者访问,并且能够受理硬件描 述语言(HDL)的电子设计的上传;
一EDA选用方案,由该互联网web网站所主控,提供一前端电子设计自动化(EDA) 工具,并经过连接以接收所述HDL;以及
一预订控制器,在通过互联网下载返回对所述电子设计的模拟验证推导结果情 况下对所述单芯片系统设计者提供票据;
其中,所述EDA选用方案的用户以按次付费方式被收取创造独特知识产权的费 用。
2.如权利要求1所述的B-TO-B应用服务提供商,其特征在于,EDA选用方案包括 一电子设计自动化(EDA)计算机程序,用以:
生成一电子电路设计;
将所述电子电路设计分区为其组成区和协议设计;
以硬件描述语言(HDL)对所述组成区块和协议设计进行编码;
对所述组成区块和协议设计的运作调度及资源分配利用高阶合成(HLS);
运作调度及资源分配完成后,对所述组成区块和协议设计进行技术无关的布尔 逻辑优化,以生成一中间设计;
对所述中间设计进行技术映射,就所述电子电路设计的硬件实施选择特定器 件;
将所述特定器件置于半导体芯片中各位置;以及
安排所述特定器件的一组互连路径;
其中,技术映射步骤包括下列分步骤:
将一原始电路设计分区为一组对应的逻辑树;
将所述对应的逻辑树组排序成一有序线性列表,使得驱动另一有序树的各树-T 先于所述其他有序树,并且使得驱动所述树-T的各有序树先于所述树-T;
在所述有序线性列表中向前移动,同时对多个匹配于一技术库单元的网络节点 计算一组Pareto优化负载/到达曲线;以及
在所述有序线性列表中向后移动,同时利用各个所述网络节点的所述Pareto优 化负载/到达曲线组和一电容性负载来选择具有最短信号到达时间的技术库单元其中 最佳的一个;
其中,仅考虑与输入对应的网络节点,而任何电容性负载均预先确定。
3.如权利要求1所述的B-TO-B应用服务提供商,其特征在于,EDA选用方案包括 一电子设计自动化(EDA)计算机程序,用以:
将一原始电路设计分区为一组对应的逻辑树;
以一等效且不具内部节点的简化树来替代各个所述逻辑树;
分析所述原始电路中从树的叶部到其根部的各个路径;
计算各个所述路径的传递延迟;以及
将所计算的延迟标注于所述简化树的对应弧线上。
4.如权利要求3所述的B-TO-B应用服务提供商,其特征在于,电子设计自动化 (EDA)计算机程序进一步提供:
将所述原始电路设计的传递延迟与一输入信号滞后率的关联性标注于所述简化 树的对应叶部。
5.如权利要求3所述的B-TO-B应用服务提供商,其特征在于,所述电子设计自 动化(EDA)计算机程序进一步提供:
将所述逻辑树任何叶部的任何电容性负载值复制到所述简化树的对应叶部。
6.如权利要求3所述的B-TO-B应用服务提供商,其特征在于,所述电子设计自 动化(EDA)计算机程序进一步提供:
将位于该逻辑树顶端输出门的负载/延迟响应曲线复制到所述简化树的根部。
7.如权利要求3所述的B-TO-B应用服务提供商,其特征在于,所述电子设计自 动化(EDA)计算机程序进一步提供:
将整个延迟计算分解成为一简单的边缘权重最长路径,其通过一资源的抽象时 序模型内部。
8.如权利要求3所述的B-TO-B应用服务提供商,其特征在于,所述电子设计自 动化(EDA)计算机程序进一步提供:
利用使电路边界对接的复杂模型树与位于内部但未使电路边界对接的简易模型 树两者的组合来计算电子设计的时序延迟。
9.如权利要求3所述的B-TO-B应用服务提供商,其特征在于,所述电子设计自 动化(EDA)计算机程序进一步提供:
将一原始电路设计分区为一组对应的逻辑树;
将所述对应的逻辑树组排序成一有序线性列表,使得驱动另一有序树的各树-T 先于所述其他有序树,并且使得驱动所述树-T的各有序树先于所述树-T;
在所述有序线性列表中向前移动,同时为多个匹配于一技术库单元的网络节点 计算一组Pareto优化负载/到达曲线;以及
在所述有序线性列表中向后移动,同时利用各个所述网络节点的所述Pareto优 化负载/到达曲线组和一电容性负载来选择具有最短信号到达时间的所述技术库单元 其中最佳的一个;
其中,仅考虑与门输入对应的网络节点,而任何电容性负载均预先确定。
10.如权利要求3所述的B-TO-B应用服务提供商,其特征在于,所述电子设计自 动化(EDA)计算机程序进一步提供:
生成一电子电路设计;
将所述电子电路设计分区为其组成区块和协议设计;
以硬件描述语言(HDL)对所述组成区块和协议设计进行编码;
对所述组成区块和协议设计的运作调度及资源分配利用高阶合成(HLS);
运作调度及资源分配完成后,对所述组成区块和协议设计进行技术无关的布尔 逻辑优化,以生成一中间设计;
对所述中间设计进行技术映射,就所述电子电路设计的硬件实施选择特定器 件;
将所述特定器件置于半导体芯片中各位置;以及
安排所述特定器件的一组互连路径;
其中,技术映射步骤包括下列分步骤:
将一原始电路设计分区为一组对应的逻辑树;
将所述对应的逻辑树组排序成一有序线性列表,使得驱动另一有序树的各树-T 先于所述其他有序树,并且使得驱动所述树-T的各有序树先于所述树-T;
在所述有序线性列表中向前移动,同时对多个匹配于一技术库单元的网络节点 计算一组Pareto优化负载/到达曲线;以及
在所述有序线性列表中向后移动,同时利用各个所述网络节点的所述Pareto优 化负载/到达曲线组和一电容性负载来选择具有最短信号到达时间的技术库单元其中 最佳的一个;
其中,仅考虑与门输入对应的网络节点,而任何电容性负载均预先确定。
11.如权利要求10所述的B-TO-B应用服务提供商,其特征在于:
所述利用高阶合成的步骤,是每当调度个别运作时应用时序分析、并可被调用 多次以使单一运作得到调度这种步骤。
12.如权利要求10所述的B-TO-B应用服务提供商,其特征在于:
技术映射步骤将所述电子电路设计的抽象布尔逻辑门映射到技术库当中的标准 单元。
13.如权利要求3所述的B-TO-B应用服务提供商,其特征在于,所述电子设计自 动化(EDA)计算机程序进一步提供
通过下列步骤将表示程序序列的硬件描述语言文本转换成用作后续运作调度及 技术分配的控制流程图
将表示一程序序列的硬件描述语言文本简化为控制流程图;
由所述控制流程图构建单一热位的有限状态机;以及
在电子电路自动化系统内进行运作调度前,预测所述单一热位的有限状态机的 运作时序;
其中在所述硬件描述语言文本与最终合成的设计之间保持每次循环的时序一致 性。
14.如权利要求13所述的B-TO-B应用服务提供商,其特征在于:
简化步骤包括对一语法分析树的一步接一步的简化;
其中,识别特定的语法分析树结构,并构建对应的分支图。
15.如权利要求14所述的B-TO-B应用服务提供商,其特征在于:
简化步骤从构建具有复位节点和带简单自身循环的接合节点的简图开始;
其中实施一“always”结构。
16.如权利要求15所述的B-TO-B应用服务提供商,其特征在于:
简化步骤通过将一程序应用于任何被注记于任何弧线上的语法分析树叙述式靠 将所述简图转换成更复杂的控制流程图来继续;
其中一具有叙述式的弧线被消除,并且被至少两个新弧线和至少一个新节点所 替代。
17.如权利要求16所述的B-TO-B应用服务提供商,其特征在于:
简化步骤靠以递归方式将所述程序应用于所有所述注记于所有所述弧线的语法 分析树叙述式来继续;
其中对所有可分解的叙述式处理。
18.如权利要求17所述的B-TO-B应用服务提供商,其特征在于:
简化步骤靠将任何带标示区块的名称存储于列表中来继续,该列表将该名称映 射到“end”节点;
其中所述“end”节点为任何Verilog“disable”叙述式提供一目的地。
19.如权利要求17所述的B-TO-B应用服务提供商,其特征在于:
简化步骤靠将递归计数器变量引入一“repeat”循环的条件内来继续;
其中使所述递归计数器变量在进入所述循环前初始化,且每当该循环被执行时 递增。
20.如权利要求17所述的B-TO-B应用服务提供商,其特征在于:
简化步骤靠对“repeat”循环、“while”循环或“for”循环将一条件式附加 在一新节点“iter”的两输出弧线上来继续。
21.如权利要求17所述的B-TO-B应用服务提供商,其特征在于:
简化步骤靠消除无法由“reset”节点向前行进到达的弧线和节点来继续。
22.如权利要求17所述的B-TO-B应用服务提供商,其特征在于:
简化步骤靠将不包含进一步的图形结构的分支弧线集合折叠在一起、而且使任 何条件语法分析树重新标注于该控制流程图上来继续。
23.如权利要求17所述的B-TO-B应用服务提供商,其特征在于:
简化步骤靠检测是否存在任何并非对生成多余的分支而是对所述控制流程图不 具任何影响的条件式、若存在所述条件式便不应用简化过程、并按其本身状态标注 所述条件式来继续。
24.如权利要求17所述的B-TO-B应用服务提供商,其特征在于:
简化步骤靠消除其条件式不可能为真的任何无效分支来继续。
25.如权利要求17所述的B-TO-B应用服务提供商,其特征在于:
简化步骤靠使其输入弧线和输出弧线未被作为状态标记的简单节点的输入弧线 和输出弧线合并来继续。
26.如权利要求17所述的B-TO-B应用服务提供商,其特征在于,进一步包括:
简化步骤完成后对所述控制流程图的修剪,以容纳所述硬件描述语言文本的 Verilog“disable”叙述式。
27.如权利要求17所述的B-TO-B应用服务提供商,其特征在于,进一步包括:
简化步骤完成后对所述控制流程图的修剪,以容纳所述硬件描述语言文本内的 “goto”叙述式。
28.如权利要求13所述的B-TO-B应用服务提供商,其特征在于:
构建所述单一热位的有限状态机的步骤包括将所述控制流程图各状态节点映射 到对应的单一状态触发器;
其中任何触发器输出为真时给出相应状态。
29.如权利要求16所述的B-TO-B应用服务提供商,其特征在于:
构建所述单一热位的有限状态机的步骤靠构建一MAP表来继续;
其中所述控制流程图的任何弧线均映射到所述有限状态机的一对应输出端口。
30.如权利要求29所述的B-TO-B应用服务提供商,其特征在于:
构建所述单一热位的有限状态机的步骤靠构建一电路来继续,该电路由一组主 要输入及状态触发器所驱动,并驱动一MAP(C)。
31.如权利要求30所述的B-TO-B应用服务提供商,其特征在于:
构建所述单一热位的有限状态机的步骤包含利用下列模拟的程序:

说明书全文

                     技术领域

发明涉及电子设计自动化,具体来说,涉及互联网上按次付费提供的行为合 成工具。

                     现有技术说明

近年来已大幅增加芯片的运用。数百万个逻辑的随应用不同的集成电路 (ASIC)正运用于任何类型的应用,其中包括移动电话、网络设备、数字影碟(DVD)播 放机等。然而,此类复杂系统的设计者用的是源自1980年代中期而且过时的电子设 计自动化(EDA)工具和方法;当时芯片规模介于50k至100k个逻辑门。目前,设计团 队正在花费过度的时间试图使许多部分的工具能够共同运作。此等问题连同人短 缺和产品周期缩短等问题,正逐渐扩大设计需求与传统技术能力之间的差距。

此类缺乏效率的工具意谓着在产品生命期更短的商场中需要更长的设计时间。 大量的ASIC发展努力需要更多的设计工程师,而设计工程师的人力供给非常缺乏。

典型的EDA工具目前正妨碍朝向单芯片系统(SoC)设计的转变。需要新的架构和 新一代的逻辑合成技术,相较于现存的工具,其更为快速且具有较强大的功能。设 计者必须转向更高程度的抽象化,以在处理数以百万计的逻辑门暂存器转移(RTL)和 架构层面的设计时,能够克服复杂度和验证等问题。

典型的EDA销售/传播工具同样有许多问题。需要以新的方式在设计者需要时能 够将高等EDA工具提供给他们,并且唯有当此类高等工具确实被使用时才向客户收取 费用。目前的互联网已为EDA工具的行销和传播提供新的方式。

EDA工具必须提供给所有的前端设计阶段,例如架构、RTL、数据路径和逻辑 等。架构上的合成可使实际系统层面的设计达到十倍大的容量。由于可以达到全面 优化的缘故,较快的运作时间将可得到较佳的品质可靠度(QoR)。需要一种使编码和 设计时间减少二至五倍的新式EDA工具。

                     发明概述

简而言之,本发明实施例中,B-TO-B应用服务提供商包含提供给单芯片系统设 计者使用且具有EDA选用方案的互联网web网站以及web服务器。此种web网站容许硬 件描述语言中的电子设计被上传至前端EDA设计环境内。由web服务器内部所主控的 状态模型的模拟工具可测试和验证设计。此种工具仅在B-TO-B应用服务提供商的安 全环境下执行。经过验证的解决方案随后经由互联网而被下载回到客户,并以使用 次数进行收费,其在形式上可由后端EDA2工具加以安置并按照路径发送。此类经过验 证的设计解决方案亦可被下载到其它所在,以便和其它设计进行交换,或可提供于 科技图书馆。创造出来的知识产权可以重新利用、销售、共享、交换,或可由营利 的中央情报交换中心进行有效率且便利的传播。

                     附图简要说明

图1是本发明B-TO-B应用服务提供商实施例的功能框图,其包含的web网站和web 服务器具有提供单芯片系统设计者所用的EDA选用方案;

图2是本发明电子设计自动化方法实施例的流程图

图3是本发明时序分析方法实施例的流程图;

图4A、图4B和图4C是表示从电路转变为逻辑树和简化树结构的示意图;

图5是表示一包含一组输入边界复杂模型时序弧(arcs)、一组内部简化模型时序 弧以及另一组输出边界复杂模型时序弧这种设计的示意图;

图6是电子设计自动化通常图形匹配问题的示意图;

图7是一电路图及其所对应二部(bipartite)图形的示意图;

图8是技术映射(mapping)中第一步骤的示意图,其将网络图分区为树状结构集 合;

图9是表示经过分解的技术库的示意图;

图10是表示位于右边的电路树状结构以及位于左边的仅两个图案树状结构需要 匹配于该电路树状结构各个部分的示意图;

图11是本发明替代选择方法实施例的示意图;

图12是表示将电路分区为树状结构并将该等树状结构排序成符合基本规则的列 表的示意图;

图13是一例说明控制信号如何支配临界时序路径的示意图;

图14是Verilog序列区“begin…end”叙述式的示意图,该叙述式在源节点 (source node)-S与汲节点(sink node)-T之间被转换成控制流程图弧线-A;

图15是一例具有全部选项的“if”叙述式及其控制流程图简化的示意图;

图16A至图16D是表示Verilog中各种类型循环及其所对应流程控制图简化的示意 图;

图17是一适合左边高阶合成的简易Verilog HDL文本和右边则对应于下一个文本 的完整简化控制流程图的示意图;

图18是图示用于构建功能MAP程序的示意图;

图19A至图19D是表示种种片段结构式的示意图,单一热位(one-hot)FSM可利用 表1中程序通过该片段结构式加以构建;

图20是表示Verilog文本样本、其控制流程图和其最终单一热位FSM之间对应关 系的示意图。

                     本发明详细说明

图1是本发明互联网系统实施例的示意图,其以标号100来表示。系统100包含销 售高阶合成(HLS)服务及知识产权的B-TO-B应用服务提供商104所用的互联网连线 102。此类应用服务提供商104具有搭配有微软公司(Microsoft)商业软件例如 WINDOWS-NT、IIS和ASP的web服务器106,以主控用户端网页浏览器的访问。以使用 次数收费的电子设计自动化(EDA)工具108被安装于web服务器而成为软件应用程序。 任何的用户及客户系以用户端110和浏览器112来表示。设计师以硬件描述语言(HDL) 所制作的电子设计可经由互联网102加以上传,以通过EDA工具108进行模拟和设计的 验证。一旦完成后,验证结果会被下载回到位置后端处理114和绕径(route)后端处 理116。

EDA工具108系由预订模组118所支持,该模组向用户收取当次的使用费,并容许 上传或下载设计。HDL转换模组120可将HDL转换成流程控制(CF)图。运作调度模组 122可将各个HDL叙述式映射到正确的CF图节点。资源分配模组124可依照调度需求而 使硬件处于优化状态。一组用户工具126被纳入用以协助用户浏览、了解和使用web 网站。用户的设计例如在上传后和下载时会存放在数据库128。

在高阶合成的调度阶段当中,B-TO-B应用服务提供商104最好包含进行中的数字 设计的时序分析。抽象时序模型可表示元件的位阶层的时序,其不具有传统的完整 时序分析所造成的不利复杂性。可获得各调度确定的时序结果的快速且精确的估 计。此等估计随后可用于判断是否有任何调度确定应予以排除。

高阶合成(HLS)可使电子设计自动化(EDA)系统内数字系统设计的某些分支工作 成为自动化。系统设计师从设计和验证需被执行整体算法开始;例如,利用C++语 言、专门化语言或记录系统。最后得到的设计规格会被分区为机板、芯片和区块。 各区块为单独的处理,其拥有各自的流程。在现代的大型芯片设计中,存在有数十 至数百个此种区块。典型的区块可代表整个过滤、队列和通道等阶段。一旦芯片被 分区为其组成区块后,任何需要通信协议的区块均必须加以构建。此类协议系利用 区块间一个循环接着一个循环的方式进行通信。

所谓的“调度”和“分配”系一次应用于一个区块。调度处理122系指定诸如加 法和乘法等运算到有限状态机(FSM)状态中。此FSM系描述被合成区块所执行的算法 内的控制流程。某些运作会被定在特定状态,并且代表和其它区块间的联系。此 等输入/输出运作不可从一个状态转移到另一状态或重新调度,因为如此做可能会妨 碍区块至区块的通信协议。

然而,某些运作可从某一状态转移到另一状态。将具有很多运作的状态转移到 具有很少运作的状态,其可让运作能够更平均地分享到硬件资源。时序问题有时可 通过使某些运作在状态中转移而得到解决,其中该运作会致使时序问题延迟到不存 在此问题的状态。

分配处理124可将经过调度的FSM运作映射到特定的硬件资源。例如,三个加法 运作可被调度为仅需要一个单独的加算器(adder)。构建适当的加算器后,运作即可 被指定到该加算器。然而,当给定的位宽度和函数其中一个以上的硬件资源成为必 须时,即可能会产生复杂的情况。此时,各运作需使用何种资源即必须加以确定。 需要考量的因素包括:乘法成本、无意义时序路径的形成、暂存器的指定,甚至小 型运作需使用到大量的资源。硬件资源可用于多种功能。计算整个处理所需要的一 组最少的资源非常困难却值得。有时,可能存在替代的实施。总是可以选择符合整 体时序限制条件和缩减逻辑门计数的实施。资源分配同时包含将资源映射到逻辑门 阶层的实施。

分配工作包括计算暂存器组以及将数据指定到暂存器以供稍后运用。例如,暂 时变量可在大量运作过程中用于存储中间结果。然而,此等暂时变量的内容可在不 同状态中分享共用的暂存器。该内容仅在单独状态中会被用到。因此,将需要被存 储的数据指定到该等存储元件即可节省硬件。然而,若数据值可形成互斥的集合或 可共用存储体,则暂存器和存储体的分配将会很复杂。数据值经常会驱动函数资 源,而其本身亦经常由函数资源生成。将数据有效地指定到存储体将可降低多工处 理的成本和延迟。若暂存器和功能性硬件之间有任何互动,则会使分配工作更复 杂。

完成调度和分配后,接着进行和技术无关的--即布尔逻辑(Boolean)--优化。电 路设计包含在线路图(netlist)中相连的总体“与”门(And gate)和“或”门(OR gate)。技术无关的优化可将线路图中的逻辑门数目减到最少。抽象化的布尔逻辑门 有助于以布尔逻辑算术为基础的高度数学化处理。例如,布尔逻辑等式AB+AC=A(B+C) 可用于简化其所对应的逻辑门网络。

经过布尔逻辑优化后即进行技术映射,电路的抽象布尔逻辑门系被映射至来自 技术库的标准元件。标准函数库元件包括简易的及(AND)、或(OR)或非(NOT)以及更 复杂的函数。例如,完全加算器、“与”-“或”-反向逻辑门和乘算器。技术库逻 辑门可在许多驱动强度、延迟、输入负载当中取得。技术映射演变为更复杂的原因 在于存在许多方式来映射个别的布尔逻辑门,而且各种方式有其独特的优点。

技术映射有时可通过为电路逻辑门构建式特制的逻辑门布局加以避免,而不用 从预先构建和预先设定特性的元件函数库中选取元件。然而此种方法并不常用于自 动化合成。

技术映射后进行元件定位的布局工作和线路绕径,芯片上各元件的实体位置被 建立(定位),而使各元件相互连接的必要线路亦完成安排(绕径)。在应用服务提供 商104端,设计的知识产权可下载给用户以供定位和绕径用。

图2是表示本发明电子设计自动化(EDA)方法实施例,在此概略以标号200来表 示。EDA方法系从设计算法步骤202开始。在步骤204,系统设计被分区为区块和协议 设计。在步骤206,Verilog或其它类型的硬件描述语言(HDL)编码完成。高阶合成 (HLS)步骤208包含运作调度步骤210以及资源分配步骤212。每当个别的运作被调度 时即运用时序分析,并可被呼叫许多次以使单一运作被调度。接着进行与技术无关 的(布尔逻辑)优化步骤214。举例而言,技术映射步骤216可将电路的抽象布尔逻辑 门映射到来自于技术库的元件。定位步骤218系将逻辑门定位于芯片上的实体区域, 绕径步骤220则以导线使该等逻辑门彼此连接。

时序分析的步骤系由状态图、一组资源、技术库以及至少部分已经调度和分配 的运作开始,其判断以整体来看的设计是否符合其时序需求。此电路总延迟必须使 得有效的数据能够在每一个时脉终了时被锁存到目的暂存器内。调度系统可用于构 建真实的时间表,并在设计完成后生成较可能符合时序的分配电路。

时序问题必须立即且有效率地加以响应,因为其将会在调度单一设计的过程中 被询问多次。举例而言,在列表调度算法中,设计的转移会依序个别予以考虑。对 于各转移而言,构建一组“ready”运作。这种就绪运作即具有转移来源状态中可取 得输入数据的运作。此等运作其中之一是利用某一判断标准加以选择;例如最紧急 的列为优先,同时从就绪列表中被删除,并指定到目前的转移未使用到的资源,而 后其结果数据被加入可用的数据集合。其它取决于其结果的运作随后可加入就绪列 表中。此过程会持续进行,直到就绪列表中不存在任何运作,或没有资源可供执行 就绪列表上的运作,或者就绪列表上的运作无法被调度在目前的转移为止。此项工 作会持续进行,直到所有的时序弧均已被考虑,以及所有运作均已调度为止。若无 法利用给定的资源来排定设计的时程,则时序处理即告终止。

每当个别的运作被调度后即必须完成时序分析。若第一个供作选择的运作-转移 -资源调度重元组(tuple)未被接受,则时程分析程序必须重复执行,直到有一个组 合被接收为止。每当考虑一项运作的调度组合时,时序分析程序必须能够估算所有 设计资源的时序。

此外,位阶层时序模型必须为位真值(bit-true),其正相反于集总的逐个位 (bitwise)。当描述各式资源的延迟特性时,各资源所附带的单数或单独的负载/延 迟函数并不足够。延迟或负载/延迟函数必须附带资源的各个输出。

组合式资源所用的快速且精确的位阶层时序模型可被构建,因为代表组合逻辑 的图形始终可以被分区为树状结构的集合。逻辑树系以其节点来表示逻辑门和终 端,而其弧线则代表连线。电子驱动器始终位于其所驱入的逻辑树的逻辑门下方, 例如远离根部(root),或者位于逻辑树根部,而其所驱入的逻辑门则位于另一逻辑 树。逻辑树终端系代表其连接于位在逻辑树外的逻辑门。当网络中的逻辑门呈扇形 散开成两个以上时,最大逻辑树根部即为此种逻辑门的输出终端。此时,所有其它 的树均变成支树(subtree)。

图3示出本发明时序分析方法,在此以总标号300来表示。方法300从步骤302开 始,此步骤将电路设计分区为对应的逻辑树。一旦电路被分区为逻辑树后,即可在 步骤304构建一个简洁的模型。逻辑树被不具内部节点的等效树所替代,即于步骤 306中所示者。相较于原始树,此等等效树往往在实质上比较简单。在步骤308,原 始电路的时序会沿着各个从树的叶部到根部的路径被分析。各路径的传递延迟会被 计算。在步骤310,此等经过计算的延迟会被标示在简化树对应的弧线。在步骤312 中,原始电路的传递延迟与输入信号的滞后率(slew rate)的任何关联性会被标注在 对应的简化树的叶部。输出逻辑门(例如位在逻辑树顶端)的负载/延迟响应曲线会在 步骤316被复制到简化树的根部。

某些如滞后和负载关联性等边缘效应可能会包含于本发明实施例的路径延迟 中。然而此等额外的时间仅需针对其终端位在整体资源边界的树加以计算。在步骤 318,整个延迟计算因而被分解成简单的边缘权重最长路径,其通过资源抽象时序模 型的内部。相较于计算电路各元件的滞后率和延迟,上述方法可获得较快速的时序 分析。

图4A、图4B和图4C示出由电路400转移成逻辑树410和简化树420。在图4B中,逻 辑门系以树的节点来表示。“与”门(AND-gate)的符号为向上指的山形(^),“或” 门的符号则为向下指的山形(v)。在图4C中,节点完全被去除。在本发明实施例的后 续步骤中,简化树420将加上注解,其可为电路中的延迟问题提供快速的解答(图 4A)。虚线所包围的部分系表示支树。

图5示出设计500,其包括一组位于输入边界的复杂模型弧线502、一组位于内部 的简化模型弧线504,以及另一组位于输出边界的复杂模型弧线506。在模型内利用 经过简化的传递延迟模型可能会失去一些精确度,但在实际情况下,此等不精确度 影响不大。若精确度的丧失是一项问题,则在外加的内部弧线上可利用更复杂的模 型。具简化模型的弧线系以虚线来表示。

当代表电路的所有逻辑树均已映射到简化树后,即可抛弃原始资源电路图。所 有相关的时序信息将会被保留在简化树的网络中。如此即可利用资源模型和图形移 动算法(graph-traversal algorithm)来分析一连串资源的时序,其中资源模型包围 在简化树网络内,而图形行进算法可计算到达时间。相较于传统方法,简化模型时 序分析图行进可为分析加快一个数量级的速度。

图6参照一总体图形匹配问题600,其中包括两个图形,一个为样式图形602 G1 =(v1,e1),另一个为目标图形604 G2=(v2,e2)。其目的在于寻找从样式图形元素 到目标图形元素间一对一的映射606。支图G2定义为匹配节点,必须与G1同形 (isomorphic)。在此示出此种匹配的实例,匹配的节点及弧线包围在封装608内。

图7示出电路702及其所对应的二部图形704。基本上,逻辑门被转换成节点,连 线被转换成弧线。特殊的技术映射匹配问题不同于更一般化的匹配问题。从电路中 抽取出的图形系导向于二部图形,例如G=(v1,v2,e),其中“e”边缘将v1元素连接 于v2元素,但绝不会有元素从v1到v1或从元素v2到v2。例如,边缘系为有序配对, 其具有方向性。v2中的节点代表逻辑门,而v1中的节点代表电路线路。二部导向图 形的图形匹配系使得网络节点仅能够映射到网络节点,逻辑门节点仅能够映射到逻 辑门节点,而同形性(isomorphism)则用以维持边缘的方向性。在二部图形704中代 表逻辑门的节点有类型之分,例如及(AND(^))、或(OR(v))和非(NOT(!))。此等形成 同形性结构的一部份。G1中X型节点系映射到G2中X型节点。

现有技术通常仅针对树进行匹配。导向非环式图形(DAG)可用于表示某些类型的 多输出逻辑门,因此组合逻辑电路可以DAG来表示。换言之,只要其不包含环形即可 以DAG来表示。同时,DAG必须完整构建,并且要避免包含环形的无意义路径。

图8示出技术映射的第一个步骤,其将线路图形802分区为树804-808的集合,即 DAG。然后,各树804-808可当作个别的映射问题加以运作。最简单规划系利用树, 但扩充到DAG并不困难。总之,树被定义的方式系使得其根部和叶部均为网络节点, 而不是逻辑门节点。根部和叶部节点可在必要时加以多次复制,否则其将必须在各 树间共用。树804-808应尽可能地大,例如最大化的树。在DAG的任何扩充当中,DAG 输出终端的数目必须限制为两个或更少。否则,匹配的计算会变得过于复杂。

典型的技术库包含一些代表基本元素的元件。函数库内的组合单元具有布尔逻 辑(Boolean)函数。挑选出的二部导向图形系为各元件所构建。此等图形当中的每一 个图形会附带有以小型基本类型符号系统所表示的元件的布尔逻辑函数。双输入 NAND门和反相器系为一种方便的基本类型符号系统。函数库内各元件系以树(或DAG) 来表示,其仅包含网络节点、双输入NAND门和NOT门。符号系统的选择并不是关键, 只要其较为简单且具逻辑完备性即可。所有布尔逻辑函数可以仅包含符号系统的单 位的网络来表示。

如上所述分解函数库示于图9。元件名称列于左行。中间行列出映射的布尔逻辑 函数。如右行所列者,各元件系以一或一个以上的样式树来表示。

任何提供于技术映射处理的电路设计通常系表示成简易逻辑门的网络,逻辑门 的例子包括NAND、AND、NOR、OR、XOR和NOT等逻辑门。各网络可仅利用函数库-树逻 辑门类型和扇入(fan-in)而被转换为功能性等效的网络。对于图9中的函数库范例而 言,电路将会被转换为仅包含反相器和双输入NAND门的等效电路。然后,将其映射 到二部导向图形,例如和函数库样式图形相同的形式。完成后即可进行图形匹配。 函数库元件和被映射电路两者均以相同的图形形式来表示。

电路的树系个别的匹配问题。任何匹配结果最好能够通过将匹配样式树列表附 加于各网络节点N来进行编码。此列表系代表一组其根部匹配于N的样式树。下列伪 代码进行上述实施,而此列表被称作匹配(N)。

Let R be the root of a circuit tree T. Let S be a set comprising initially only of R. While(S is nonempty){ Let N be an element of S.Remove N from S. For(all members P of the set of pattern trees in the library) if(matches(root(P),N)){ add M to matchings(N). } } if(N is not a leaf node of T){ Let G be the driver of N. Add all drivers ofG to S. } }

存在一些利用样式匹配算法来实施树匹配测试的方式。举例而言,若根部匹配 时,递归算法可辨识出电路树匹配于样式树,且所有电路树的支树均映射于匹配对 中的所有样式树的支树。支树映射必须为电路支树到样式支树的一对一映射,其中 电路支树必须准确映射到样式树的一个支树。样式树的各支树必须通过电路树的某 支树加以映射,例如通过“onto”映射。若非如此,电路树其中一个以上的支树可 能会被映射到样式树的单独支树,或者根本没有映射到样式树的某一个支树。

若某一个支树对支树的匹配失败,则另一个匹配可能会成功。逻辑树可为非对 称的。样式树的支树的有序列表的所有变换均会相对于电路树的支树的有序列表进 行测试。若所有变换均失败,则放弃整个匹配的尝试。若有任何成功的变换,则匹 配即被找到。

下列伪代码系实施一个匹配算法。所有命名的节点均为网络节点。逻辑门节点 系为网络节点驱动器。在if叙述式中所指称的列表“U”系为线路N的驱动器的列 表,例如驱动网络节点N的逻辑门G的驱动器。“M”为样式树网络节点,“N”为电 路树网络节点。

If(M is a leaf node){ Return true. {else if(N is a leaf node){ Return false. }else if(the type of the driver of M is the same as the type of the driver of N) { For(all permutations P of the list of drivers of the driver of M){ Temp=true; Let U be the list of drivers of the driver of N. For(all elements p of P,and u of U,in order) if(matches(p,U)is false){ Temp=false; Go to Continue. } } Continue: if(Temp){ (P,U)is a successful one-to-one onto mapping. Return true. } } if you get to this point there is no one-to-one and onto mapping. Return false. }else{ Return false. }

依此方式,此种算法随着技术库单元的增加而逐渐变得昂贵,其复杂度亦以指 数形式增加。此类算法速度可加以提升,但上述算法对于目前大部分的技术库而言 已足够快速。

匹配步骤可生成从电路网络节点到样式树根部节点的一对多映射。此类映射的 候选元件系为选取网络节点做为其参数并回传样式树列表的函数。电路的一种实施 成为一组网络节点,而其中一个候选组被选取。被选取的网络节点组通常会小于整 组网络节点,因为某些网络节点会“埋藏”在拥有内部网络节点的样式内。

图10示出位于右边的电路树1002,以及位于左边用以匹配电路树各部分所需要 的两种样式树1004和1006。样式树到一段电路树网络节点的各种可能匹配方式系以 虚线表示。因此,若选取如图所示六个匹配的适当子集,则整体电路可仅以四个逻 辑门加以“涵盖”。换言之,电路树可被分解成四个组成的逻辑门类型。如图所示 六个匹配的子集可生成多余或不完整的涵盖。具有挑战性的地方在于选取可缩短延 迟和多余量并可涵盖的匹配子集。

图11示出本发明涵盖选择方法的实施例,在此以总标号1100来表示。在步骤 1102中,电路被分区为逻辑树。步骤1104中,利用拓扑分类算法来排定该等逻辑树 的次序,其中可利用深度优先图形行进算法。某一排序规则表明,逻辑树“T”必须 在其所驱动逻辑树的所有叶部“L”前,而且其必须排列在所有驱动逻辑树“T”的 所有叶部“L”后。此逻辑树有序列表称为“O”。

在步骤1106中,计算匹配于技术库元素的数个网络节点当中的每一个节点的一 组Pareto最佳负载/到达曲线的同时会在有序线性列表中快速前进。在步骤1108中, 利用该等网络节点的一组Pareto最佳负载/到达曲线和电容性负载来选取一个具有最 短信号到达时间的最佳技术库单元的同时会在有序线性列表中快速倒退。唯有对应 于逻辑门输入的网络节点会予以考虑,而任何电容性负载始终均预定。

图12示出代表电路的逻辑树“T”以及一个有序列表。在有序列表“O”中的第 一个逻辑树1201被任意选择标示为“A”。其它逻辑树1202-1209被标示为“B”到 “J”。满足规则的逻辑树拓扑排序系为A、H、G、J、B、C、F、E、D。由于逻辑树 A、J和H位于输入边界,没有其它逻辑树可驱动逻辑树A、J或H当中的任一个。因 此,在该规则下可容许将逻辑树A放置在有序列表“O”的首位。逻辑树A、H、G、 J、B、C、F、E、D的排列容许各树依照没有任何树存有仍须被计算的输入树的次序 来加以计算。

在输入边界,可假设信号到达逻辑树A叶部的时间。它们表示电路的组合部分的 主要输入端,而此等信号到达时间可从电路环境或用户限制条件获得。逻辑树A的各 个叶部没有候选的匹配。负载/延迟曲线可附加在逻辑树A的各个叶部。此种负载/延 迟曲线系任何伴随逻辑树L所代表的主要输入端的假设性驱动器的负载/延迟曲线。

逻辑树A的根部系为其输出线路。至少有一个来自于技术库的候选元件必须匹 配,否则处理过程必须终止。逻辑树A根部的负载/延迟曲线集合可加以计算;例 如,利用如下具递归程序的算法:

Given net node N with candidate matching set C. Initialize the aggregate load/delay curve of N. For(each element c of C){ For(each leafnode X of c){ Let Y be the net node of T corresponding to X. Recursively compute the aggregate load/delay curve at Y. Look up the load associated with X in the library, and compute the signal arrival time at X, based on the load and the load/delay curve at X. } The arrival times at each of the leaves of c are now known. Compute the arrival time at N as a function of load and the electrical characteristics of the library element that c represents. Add the curve so computed to the aggregate load/arrival curve of N. }

在效果上,此算法会扫瞄匹配的候选节点N,并在假设“c”会被选取的情况 下,为各候选的“c”计算到达“c”输入端的时间。然后可由“c”的已知特征计算 位于节点N的负载/到达曲线,从而计算出位于“c”输入端的信号到达时间。所产生 的负载/到达曲线集合系代表所有可能匹配于节点N的元件。

负载/到达曲线集合表示式可变得更有效率。在任何负载上,存在有特定元件 “c”的单独最佳延迟。“c”的所有其它成员无法以更佳的方式匹配于和该负载相 同的到达时间。因此,位于N的负载/到达曲线最好系为将负载映射到“c”最佳成员 的函数。此函数可通过选取负载/延迟曲线集合的片段最小值而生成。优化的逻辑门 选择需要根据特定的电容性负载。例如,最佳的逻辑门G2的负载范围系从零负载到 崩溃点。最佳系指其信号到达时间为最短(延迟最少)。对于逻辑门G2而言,最佳的 负载范围系从崩溃点到无限大。位于节点N的曲线集合可用于寻找电容性负载被驱动 时的到达时间和映射于节点N的最佳逻辑门。

当以逻辑树有序列表开始时,仅由主要输入端所驱动的逻辑树系为第一个需要 考量的逻辑树。后续的所有逻辑树若非由主要输入端来驱动,则是由已经处理完成 的逻辑树来驱动。如此可保证每一个依序被考量到的逻辑树T系由主要输入端或已先 处理完成的逻辑树所驱动。当考量到逻辑树T时,各个位于逻辑树T输入端的驱动器 将会有一个已知的Pareto最佳负载/到达曲线。电路的每一个主要输出端的Pareto优 化负载/到达曲线均会被计算。

最后一个步骤系选择各输出端O的负载。首先,可任意选择此负载,只要其落在 负载/到达曲线集合的范围内即可。位于输出端O的曲线集合会映射到到达时间和最 佳逻辑门G两者,以驱动输出端O。设定负载系指定为驱动输出端O而应选择的函数库 逻辑门G。

根部为输出端O的逻辑树可从函数库逻辑门G开始绕行。输入端的电容为已知, 因为技术库中的函数库逻辑门G为已知元件。如此即可简单查询驱动其各个输入端的 最佳逻辑门。此过程会重复进行直到涵盖整个逻辑树T为止。

若涵盖过程以反向方式应用在逻辑树的有序列表,则不会有逻辑树被考量,除 非其所驱动的所有逻辑树均已被涵盖。逻辑树根部门的负载会予以考虑。涵盖过程 会持续进行,直到所有逻辑树均已被涵盖为止。至此,技术映射处理过程即告完 成。

总之,选择过程会扫过逻辑树的有序列表。首先向前进行,然后再向后进行。 在进行前向传递时,各个匹配于函数库元件的网络节点的Pareto优化负载/到达曲线 会被计算。在进行后向传递时,利用负载/到达曲线和负载值来选择最佳逻辑门,用 以驱动被考量的各节点。唯有对应于逻辑门输入端的节点会予以考量。因此,负载 值始终为已知而能够完成处理。

存在若干有助于了解和实施的背景资源。Keutzer的“利用DAG匹配进行技术结 合及局部优化(Technology Binding and Local Optimization by DAG)”1987年 IEEE第24届设计自动化会议的会议报告(第341页)已详细说明利用匹配逻辑树和动态 编程的基本概念。该论文述及在选择问题中所运用的匹配逻辑树和区域优化规划方 法,其将区域予以优化,但并未用到负载/到达曲线。此外,上述方法仅使用前向传 递,而非同时使用前向和后向两种传递方式。另一种利用延迟/区域曲线的匹配逻辑 树的改良已详细说明于Chaudhary的“延迟限制条件下技术映射最小区域所用的趋近 优化匹配算法(A Near Optimal Matching Algorithm for Technology Mapping Minimizing Area Under Delay Constraints)”(1994年IEEE第29届设计自动化会 议)。然而,在此研究当中,Pedram利用区域/延迟曲线,因而无法计算不同负载的 效应,此为重要的区别。

图13系说明控制信号如何能够主导临界时序路径的范例。控制信号以虚线来表 示,临界时序路径信号则以粗线来表示。电路1300中包含控制FSM 1302。临界信号 传递时序路径会存在于一组输入端口1304与一组输出端口1306之间。电路1300包含 若干由控制FSM 1302所控制的多路复用器1308-1312,并且包含若干加算器1314- 1316,以及若干锁存器1318-1321。状态信号1322系由控制FSM 1302来输入。多路复 用器1308-1312和锁存器1318-1321系依赖一组由控制FSM 1302所输出控制信号1324- 1333。因此,信号从输入端到输出端的波浪式通行主要系取决于何时发出及确定控 制信号1324-1333。个别的逻辑门传递延迟较不重要。

控制流程图系为一种描述原始码HDL描述当中的控制流程导向图,其中存在从 HDL描述到单独控制流程图的直接映射。同时存在从该控制流程图到有限状态机的直 接映射,例如“气泡图”。直经映射亦可从单独控制流程图到“单一热位”(“one- hot”)FSM电路。因此,控制FSM可由两个和任何后续所构建的调度无关的步骤生 成。关键在于控制FSM时序能够在调度当中被确定。

总之,控制流程图G包含以导向弧线加以连接的节点“V”。在图14中,控制流 程图G中的节点“V”标注“复位(reset)”。此节点代表控制流程图G内的起始点。 依照定义,“复位”节点可以不具输入弧线而仅有一输出弧线。控制流程图G中的其 它所有节点均可被标示为状态节点或不加以标示。此等节点必须拥有至少一输入弧 线和至少一输出弧线。

如图15所示,弧线可以状态和动作来标示。此等状态和动作包括语法分析树或 语法分析树列表,并且类似于FSM的状态和动作。状态标示可揭示控制分支例如 “if”的走向。动作标示则在控制流程沿着标示为动作的弧线行进时,用以描述将 产生何种运作。

“接合节点”系为拥有一个以上输入弧线的节点,例如图15中的“if”节点。 “分岔节点”系为拥有一个以上输出弧线的节点,例如图15中的“if”节点。亦可 运用其它对应于通常编程结构的名称或标示,例如“begin”,“loop”和 “end”。

控制流程图G通常系由语法分析树经过语法分析的HDL文本一步接着一步简化构 建而成。辨识出特定的语法分析树结构后,随即可构建对应的G分支图。虽然在此于 各式不同的HDL和Verilog构造式名称范例中使用Verilog,但映射可针对VHDL以及其 它基于命令式模拟并容许存在边缘事件的HDL。

现请参照图14,从语法分析树P 1400转换到控制流程图G 1402的单独过程系从 简图1404开始,该简图拥有一复位节点1406和一具简单自身循环1410的接合节点 1408。Verilog中,利用“always”关键字可形成一处理,接续是简单或复合的“叙 述式(statement)”。“statement”系暂时标注在自身循环弧线1410上而做为其动 作或运作。在没有分支的地方则没有“条件式(condition)”标示。

简图G 1404可通过将程序应用到注记于弧线上的叙述式而被转换成更复杂的控 制流程图G 1402。例如,一段具有叙述式的弧线可为两段以上的弧线和两个以上的 节点所替代。而后,新的弧线以较为简单的叙述式及/或条件式来修饰。新的节点亦 可以类似方式加以标注。此程序会以递归方式持续进行,直到不存在任何可分解的 叙述式为止。标注于新弧线上的叙述式和条件式系为叙述式语法分析树的特殊支 树。

举例而言,Verilog当中一连串的复合叙述式具有Backus-Naur形式(BNF)的合成 定义:

Sequential-statement∷=begin*end

       ‖begin label:*end

因此,典型的Verilog处理过程可以表示成“叙述式1”和“叙述式2”,即如图 14中的叙述式1400。

在图14中,Verilog序列区块“begin…end”叙述式可被转换成介于源节点S与 汲节点T之间的控制流程图弧线-A。弧线-A系从汲节点T断线,序列区块语法分析树P 则从弧线-A 1412删除。两个新的节点1414和1416被构建,即“开始(begin)”和 “终止(end)”。弧线-A 1412箭头端系连接于“begin”节点1414。构建新的弧线-B  1418时,其箭尾端连接于“begin”节点1414,而其箭头端则连接于“end”节点 1416。构建新的弧线-C 1420时,其箭尾端连接于“end”节点1416,而其箭头端则 连接于“循环(loop)”节点1422。所有序列区块(例如逻辑树P支树)均接附于弧线-B 1418而当作语法分析树1424的有序列表。

对于已标示的区块而言,区块名称必须存放于映射到“end”节点的列表中。此 节点可成为Verilog“失效(disable)”叙述式的跳跃目标。

Verilog条件式“if…else”和“case…endcase”两者处理方式大致相同。 Verilog当中“if…else”叙述式系以关键字“if”为启始,后紧接着函数E,若条 件式为真,则执行叙述式S1,若条件式为假,则执行选项关键字“else”及其叙述 式S2。图15显示“if”叙述式范例,其中包括所有选项和其控制流程图简化过程。

“if”叙述式的简化过程系通过引入分岔节点1506和接合节点1508,并使弧线 1510和1512连接于该等节点,以及使接合处连接于汲节点T的新弧线1514。条件 “cond”及其布尔逻辑否定“!cond”被标注于条件化弧线1510和1512。如此可强调 出各个分支所要采用的条件。可能不会有任何叙述式关连于逻辑上为真或假的分 支;此时,弧线上不会有任何标注。逻辑上为真(S1)或假(S2)的分支叙述式分别会 被标注到逻辑上为真和假的弧线1510和1512上。状况叙述式系以类似方式加以处 理。差异在于条件式可包含预设值,而且分支的个数可为两个以上。预设值为所有 其它条件式逻辑总和的逻辑否定。

Verilog中的循环可为数种形式当中的任一种。此等形式显示于图16A至图16D, 图中另显示该等形式的对应控制流程图简化过程。为使循环能够运作确实,可能需 要构建额外的语法分析树。在重复循环中,会引进新的变量重复计数。重复计数的 值必须在进入循环前加以初始化,而每当循环执行一次时即递增。在“repeat… while”或“for…loop”循环中,条件必须附加在标示为“iter”节点的两输出弧 线上。

无穷循环的简化结果会形成不具输入弧线的汲节点T。此表示,在简化无穷循环 后,控制流程图在语句构造上不正确。然而,此为暂时情况,其可通过删除所有从 复位节点进行前向传递且未能到达的弧线和节点而予以纠正。此项删除动作系在控 制流程图完全被简化后才完成;例如,在HDL文本的所有控制流程结构均已经过简化 后。

修剪的动作必须在简化后进行的理由在于verilog的“disable”叙述式可强制 离开无穷循环。此离开动作(在Verilog当中)会进行到汲节点T的后续节点。效果 上,Verilog中的“di sable”叙述式会跳往标示为“begin-end”区块的终止节点 (end node)。若“disable”叙述式标注于从源节点S到汲节点T的弧线A上,则 “disable”叙述式将会通过中断从节点T到弧线A的路径而被简化。对应于失效区块 的终止节点E会在将区块名称映射到其所对应的终止节点的列表中被查询。此列表系 于标示区块的简化过程中被构建。弧线A的箭尾端系连接于节点E。通过增加一个单 独的节点并将其标示为一个状态,即可简化形式为“@(posedge clock)”的事件控 制叙述式。对于控制流程没有直接影响的叙述式将不会被简化,而会被标注于其个 别的弧线上。

适用于高阶合成的Verilog HDL文本1702样本范例示意图于图17的左方。图17的 右方图示对应于该文本且已完全简化的控制流程图1704。一旦控制流程图1704完全 被构建后,需要某一基本的修剪,以便在不改变流程图语意的情况下能够提高后续 步骤的效率。无法从复位节点到达的任何节点及弧线均可删除。不具有进一步图形 结构的分支弧线集合可以折叠在一起,而且条件语法分析树可重新标注于控制流程 图上。图形结构包括循环、状态和失效限制。在其它情况下,条件式来自于该等分 裂可被察觉到的只是形成多余的分支而对控制流程图没有任何影响。在上述情况 下,不会进行简化动作,而条件式会被标注为其所处的状态。任何其条件在逻辑上 不可能为真的无效分支--例如输出分岔节点的弧线--可删除。简单的节点--例如未 被标示为状态且具有一个输入弧线和一个输出弧线的节点--可被删除,并将其输入 弧线和输出弧线合并在一起。

单一热位(one-hot)FSM的状态系以一元码加以编码。所有状态均以二元数字来 表示,其中该二元数字唯独有一个位为真。单一热位码范例包括0001、0010、0100 和1000。除了单一“热位”为1之外,其它所有位均为0。此码可反转而不会丧失其 单一热位的性质;例如反转为1110、1101、1011和0111。

由于控制流程图的各状态节点可以一对一映成的方式映射到单一状态的触发器 (flip-flop),因而单一热位FSM可从控制流程图当中提取出来。单一热位FSM被构建 成具有和控制流程图中状态节点一样多的触发器。各触发器“F”均被指定到一个状 态节点。当触发器的输出为1时,推断系处于对应状态。

MAP表被构建,其将控制流程图弧线映射到FSM输出端口,而且为一对一的映 射。FSM上被构建的输出端口和控制流程图中的弧线一样多。MAP表的功能系将弧线 映射到FSM输出端口。一个位置--MAp(A)--将控制流程图弧线A映射映成到FSM输出引 线。反向函数--PAM--系用于将FSM输出引线映射到其所对应的控制流程图弧线。 FLOP函数则是将状态节点映射到触发器。

图18可协助说明构造MAP函数的程序。将复位弧线映射到FSM 1804后成为控制流 程图1802。复位节点输出弧线被指定到另一未经指定的输出引线P。名称为 “reset”的输入引线被构建并直接连接到引线P。MAP(A)被设定映射到引线P。接着 考量控制流程图1802的所有状态节点。各状态节点均有一输入弧线和输出弧线,例 如节点“N”的“C”弧线和“D”弧线。节点N被指定到未经指定的触发器F,MAP(C) 被指定到触发器F的D-引线,而MAP(D)则被指定到触发器F的Q-引线。FLOP(N)系设定 于触发器F。此过程会重复进行,直到所有状态节点均已被指定为止。而后,状态节 点和复位的所有输入弧线和输出弧线均存在于MAP。

下一个步骤系观察行进到状态节点的弧线。假设C为此弧线。MAP(C)连接到状态 触发器的D-引线。电路被构建,其系以主要输入端和状态触发器所驱动,而该电路 可驱动MAP(C)。如表一所示递归程序可用于构造此电路。

表一:递归程序   Procedure cct(c)   T=PAM(c);       N={the node at the feather end of C}       If(N is a state node){                  Connect T to the Q pin of FLOP(N).       }else if(N is a join node with K in-arcs){                G=a new k-input OR gate                Connect the output of G to T.                for(each in-arc A of N){                       Let P=MAP(A).                       If(P is null){                             construct a new output pin named P.                             set MAP(A)=P.                             call cct(A).                         }                       connect P to an unconnected inpu pin of G.                }       }else if(N is a fork node){             Construct a new 2-input AND gate G.             Connect the output of G to T.             Let A be the in-arc of N.             Let P=MAP(A).             If(P is null){                   Construct a new output pin named P.                   Set map(A)=P                   Call cct(A).         }             Connect one input of G to P             Make the other input of G a primary status input             Corresponding to the branch condition                   That is annotated onto A.       }else if(N is the reset node){              Connect P to the reset input.       }else{            Let A be the in-arc of N.            Let P=MAP(A).            If(P is null){       Construct a new output pin named P.                    Set map(A)=P                    Call cct(A).         }            Connect P to T.       }       end

图19A至图19D显示各式不同的片段结构,一个完整的单一热位FSM可利用此等结 构并配合表一所示程序加以构建。“或”门(OR-gate)和触发器系以和其关连的节点 加以命名。“与”门(AND-gate)系以和其关连的弧线加以命名。分支弧线A和B所伴 随的条件系视为主要输入端cond(A)和cond(B)而加以处理。所有分支条件式均予以 假设其于别处已经过计算。

图20显示Verilog文本样本2002的图2004和单一热位FSM 2006。连接于简易、非 状态、非分岔、非接合和非复位等节点的弧线的多余输出端均已被分解。为简单明 了起见,某些控制输出端已被删除。

若干优良的一般性参考数据已经出版发行,其有助于构建本发明具体实施例。 举例而言,De Micheli“数字电路合成及优化(Synthesis and Optimization of Digital Circuits)”(McGraw-Hill于1994年出版)已说明时序调度、分配及其它和 高阶逻辑合成有关的技术样态。B.Gregory等人美国专利第5,661,661号揭示暂存器 和锁存器的推断,其说明类似于控制流程图的HDL和内建表示式的使用方法。D. Knapp和M.Winslett“数据路径硬件制式正规模型(A Prescriptive Formal Model for Data-Path Hardware)”(IEEE计算机辅助设计会报,1992年二月,第158-184页) 说明类似于控制流程图的结构和功能的数据路径和硬件的表示式,该等表示式可用 于暂存器的推断、时序调度和分配,其为该等表示式主要功能的必要子集,当设计 被用户或其它代理者以手动编辑“切断”后,此必要子集可提供为修正所有上述功 能所需要的信息。D.Knapp于D.A.Edwards所编“VLSI及计算机架构设计方法论” (1998年由Elsevier出版)中“局部结构的合成(Synthesis from Partial Structure)”一文说明一种用于构建类似于在本文中说明的控制流程图的硬件描述 语言,此种描述语言亦可用于推断暂存器以及推断其它结构和状态信息。D.Knapp 和A.C.Parker于1985年由Elsevier所出版的CHDL-85会议报告中“设计信息统一化 表示式(A Unified Representation for Design Information)”一文中说明在此所 使用的控制流程图的较早版本以及其它关于设计的结构、状态及实体设计图的表示 式。

尽管本发明是参照较佳具体实施例加以说明的,但本领域技术人员可在不背离 本发明实质和保护范围的情况下很方便了解其他可替代在此所揭示技术内容的应 用。因此本发明应仅由下列权利要求所限定。

                      本发明背景

高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈