一种快速单磁通量子RSFQ电路布局方法和装置与流程

文档序号:22879206发布日期:2020-11-10 17:36阅读:189来源:国知局
一种快速单磁通量子RSFQ电路布局方法和装置与流程
本文涉及集成电路的自动设计技术,尤指一种快速单磁通量子rsfq电路布局方法和装置。
背景技术
:基于约瑟夫森结的超导电路已经逐渐进入人们的视野,其中,超导数字快速单磁通量子[快速单磁通量子(rapidsinglefluxquantum,rsfq)]电路技术有着广阔的发展前景。已经有实验证明rsfq电路可在高达770ghz的工作频率下工作,并在功耗、散热方面有着巨大优势,这使得rsfq电路有望实现未来大规模、高性能和低功耗的计算机系统。虽然rsfq电路的eda(电子设计自动化)工具已经取得了许多进展,但是现有的自动版图设计工具多针对特定的电路设计方案开发,难以广泛应用,导致很多电路版图仍由手工完成,大大影响了rsfq电路设计效率,限制了超导电路的进一步发展。rsfq电路的版图设计与其单元库、传输线和时钟方案密不可分,尤其是时钟方案和单元库设计与布局算法密切相关。在目前的rsfq电路中,较常使用的时钟方案多基于0偏斜同步时钟方案和并发流时钟方案,以及各自的改进方案,单元库则有很多种设计。在使用0偏斜同步时钟方案的rsfq电路中,时钟网络多以h树的形式实现,如图1所示,时钟信号几乎同时到达逻辑单元,能够保证较高的工作频率。但是同步时钟网络将使用大量的布线资源,导致版图区域的很大部分用于实现时钟网络,使得芯片面积大大增加。而使用并发流时钟方案的rsfq电路则以多级流水线结构实现,信号由左向右流经网络,时钟网络占用资源较少。并发流时钟方案允许电路实现高速操作并能有效降低版图面积。但是,由于rsfq电路根据信号脉冲的有无进行逻辑判断,因此必须追求信号同时到达逻辑单元,否则将导致电路工作频率降低甚至无法正确工作,这就是时钟相位同步约束。技术实现要素:本申请实施例提供了一种快速单磁通量子rsfq电路布局方法和装置,能够保证时钟相位同步,并取得紧凑的布局结果,大大提高rsfq电路设计效率。本申请实施例提供了一种快速单磁通量子rsfq电路布局方法,所述方法可以包括:读入待布局rsfq电路的门级网表及单元库信息,并依据所述门级网表及单元库信息解析所述rsfq电路的逻辑单元列表和线网列表;识别所述rsfq电路中逻辑单元及除时钟线网以外的数据线网的逻辑级别,并根据所述逻辑级别的识别结果在线网内插入dff缓冲器,根据dff缓冲器的插入结果识别最终逻辑级别;根据所述最终逻辑级别生成逻辑单元按列放置的初始布局模式;采用模拟退火算法对所述初始布局模式进行优化,以最小化布局总线长,并在所述模拟退火算法终止迭代时输出布局结果。在本申请的示例性实施例中,所述门级网表可以包括:所述rsfq电路中的逻辑单元及线网连接关系;所述单元库信息可以包括:所使用的逻辑单元的以下任意一种或多种信息:名称、类型、长度、宽度以及引脚信息;所述逻辑单元列表中的每个列表元素为一个逻辑单元,可以包括每个逻辑单元的以下任意一种或多种信息:名称、类型、宽度、长度、引脚列表以及逻辑级别;所述线网列表中的每个列表元素为一条线网,可以包括所述线网的以下任意一种或多种信息:名称、端点数量、源端点列表、宿端点以及逻辑级别。在本申请的示例性实施例中,所述识别所述rsfq电路中逻辑单元及除时钟线网以外的数据线网的逻辑级别可以包括:遍历所述rsfq电路中的全部输入引脚,将所述全部输入引脚的逻辑级别设置为0;由所述全部输入引脚开始进行宽度优先探索(bfs),识别所述全部输入引脚连接的后续线网及逻辑单元的逻辑级别;其中,每探索到一级后续线网及逻辑单元,将探索到所述线网及逻辑单元的逻辑级别加1。在本申请的示例性实施例中,所述根据所述逻辑级别的识别结果在线网内插入dff缓冲器可以包括:遍历所述rsfq电路的所有逻辑单元,并识别每个逻辑单元的所有输入路径;如果所有输入路径中任意一个或多个输入路径所属线网的逻辑级别与所述逻辑单元的逻辑级别不同,则在逻辑级别较小的输入路径上插入一个或多个dff缓冲器,使得所有输入路径的逻辑级别与所述逻辑单元的逻辑级别相同;如果所述逻辑单元的输出引脚对应的线网的逻辑级别大于所述逻辑单元的逻辑级别加1,则在所述逻辑单元的输出引脚后插入dff缓冲器。在本申请的示例性实施例中,所述根据所述dff缓冲器插入结果来识别最终逻辑级别可以包括:识别插入dff缓冲器后的rsfq电路中逻辑单元和线网的逻辑级别,根据所有输入路径的逻辑级别与所述逻辑单元的逻辑级别相同判断dff缓冲器的插入结果是否正确;如果所述dff缓冲器插入正确,则将识别出的插入dff缓冲器后的rsfq电路中逻辑单元和线网的逻辑级别确定为最终逻辑级别;如果所述dff缓冲器插入不正确,则进行dff缓冲器插入修正。在本申请的示例性实施例中,所述根据所述最终逻辑级别生成逻辑单元按列放置的初始布局模式可以包括:将每个逻辑单元按照相应的最终逻辑级别放入所属的逻辑门列;其中,位于同一个逻辑门列内的逻辑单元上下之间的间隔设置为1;在每一个逻辑门列中,逻辑单元从纵坐标1开始放置,并以1的间隔依次放置;当每一个逻辑门列放置完成后,获得所述初始布局模式。在本申请的示例性实施例中,在采用模拟退火算法对所述初始布局模式进行优化之前,所述方法还可以包括:采用贪婪随机搜索策略对所述初始布局模式中的每个逻辑门列进行多次扰动操作,并计算平均扰动代价;根据所述平均扰动代价生成模拟退火过程的初始温度。在本申请的示例性实施例中,所述采用模拟退火算法对所述初始布局模式进行优化可以包括:81、使用多种列内扰动操作对当前布局模式进行扰动,以产生新的布局模式;对每个逻辑门列依次进行扰动,并设置为一个完整的扰动子模式;82、在每个温度下,按照预设的扰动子模式扰动多次;在每次扰动后根据预设的接受函数确定是否接受此次扰动;如果接受此次扰动,则将布局模式由当前的布局模式变换到新的布局模式;如果拒绝此次扰动,则保持当前的布局模式不变;83、根据预设的温度冷却系数关系式进行温度冷却,将冷却后的温度与预设的最小温度值相比较,当冷却后的温度到达预设的最小温度值时输出布局结果,所述模拟退火算法终止迭代;当冷却后的温度未到达预设的最小温度值时,返回步骤82。在本申请的示例性实施例中,所述方法还可以包括:根据以下方案计算每种布局模式下所述rsfq电路的全部线网的总线长:根据第一预设关系式计算所述rsfq电路的每条线网的线长,并根据第二预设关系式以及每条线网的线长计算所述rsfq电路的全部线网的总线长。本申请实施例还提供了一种快速单磁通量子rsfq电路布局装置,可以包括处理器和计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令被所述处理器执行时,实现上述任意一项所述的快速单磁通量子rsfq电路布局方法。本申请实施例可以包括:读入待布局rsfq电路的门级网表及单元库信息,并依据所述门级网表及单元库信息解析rsfq电路的逻辑单元列表和线网列表;识别rsfq电路中逻辑单元及除时钟线网以外的数据线网的逻辑级别,并根据逻辑级别的识别结果在线网内插入dff缓冲器,根据dff缓冲器的插入结果识别最终逻辑级别;根据最终逻辑级别生成逻辑单元按列放置的初始布局模式;采用模拟退火算法对所述初始布局模式进行优化,以最小化布局总线长,并在所述模拟退火算法终止迭代时输出布局结果。通过该实施例方案,保证了rsfq电路的时钟相位同步,并取得了紧凑的布局结果,大大提高了rsfq电路设计效率。本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的其他优点可通过在说明书以及附图中所描述的方案来实现和获得。附图说明附图用来提供对本申请技术方案的理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。图1为相关技术中的h树同步时钟网络示意图;图2为本申请实施例的rsfq电路布局方法流程图;图3为本申请示例性实施例的rsfq电路示意图;图4为本申请示例性实施例的插入dff缓冲器后的电路示意图;图5为本申请示例性实施例的初始布局模式示意图;图6(a)为本申请实施例的逻辑门列示意图;图6(b)为本申请实施例的将逻辑单元放置到逻辑门列内一个全新空位置的示意图;图6(c)为本申请实施例的将逻辑单元随机向上或向下移动一个单位长度的示意图;图6(d)为本申请实施例的将逻辑单元进行镜像翻转的示意图;图6(e)为本申请实施例的将两个高度相等的逻辑单元直接交换的示意图;图6(f)为本申请实施例的将两个高度不等的逻辑单元进行交换并消除可能存在的违规的示意图;图7为本申请实施例的rsfq电路布局装置示意图。具体实施方式本申请描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本申请所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。本申请包括并设想了与本领域普通技术人员已知的特征和元件的组合。本申请已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本申请中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本申请实施例的精神和范围内。本申请实施例提供了一种快速单磁通量子rsfq电路布局方法,如图2所示,所述方法可以包括步骤s101-s104:s101、读入待布局rsfq电路的门级网表及单元库信息,并依据所述门级网表及单元库信息解析所述rsfq电路的逻辑单元列表和线网列表;s102、识别所述rsfq电路中逻辑单元及除时钟线网以外的数据线网的逻辑级别,并根据所述逻辑级别的识别结果在线网内插入dff缓冲器,根据所述dff缓冲器插入结果来识别最终逻辑级别;s103、根据所述最终逻辑级别生成逻辑单元按列放置的初始布局模式;s104、采用模拟退火算法对所述初始布局模式进行优化,以最小化布局总线长,并在所述模拟退火算法终止迭代时输出布局结果。在本申请的示例性实施例中,为了实现采用并发流时钟方案的rsfq电路的自动布局,本申请实施例提出了一种考虑时钟相位同步约束的单元布局方法。该方法可以将单元布局过程分为两步:第一步,使用bfs算法获取各逻辑单元数据输入路径的逻辑级别,并在逻辑级别较小的路径上插入合适数量的dff缓冲器,从而保证数据信号达到单元的时钟相位相同;第二步,完成逻辑单元的详细布局,使用模拟退火算法最小化布局模式的总线长,首先将各逻辑单元放入所属的逻辑门列,然后使用多种(如4种)逻辑门列内扰动操作进行布局扰动,从而避免产生相位混乱。在本申请的示例性实施例中,该方法在保证时钟相位同步的条件下,使用模拟退火算法最小化总线长,取得了紧凑的布局结果。该方法使用c++语言设计和实现,在linux平台上运行,并可通过skill接口集成到cadence设计环境中。在本申请的示例性实施例中,本方法实施例使用c++语言在linux/unix环境下开发并实现,实现的程序可以以电路的门级网表、单元库信息为输入,然后使用该方法实施例对待布局的rsfq电路实施逻辑单元布局。在本申请的示例性实施例中,该方法实施例可以主要分为三个步骤:输入文件解析、dff缓冲器插入、逻辑单元详细布局,下面分别进行介绍。1.输入文件解析1.1读入单元库信息程序读入以配置文件形式提供的单元库信息,包括单元库中各逻辑单元的名称、类型、长度、宽度、引脚信息等,可以保存在instliblist中。1.2解析门级网表信息程序读入待布局rsfq电路的门级网表,解析rsfq电路中全部的逻辑单元(可以包括输入输出(io)),将所有逻辑单元的逻辑级别(level)设置为-1,保存在instlist中;同时解析每个线网包含的逻辑单元引脚信息,并区分线网中的源端点和宿端点,并将所有线网的逻辑级别(level)设置为-1,保存在netlist中。在本申请的示例性实施例中,所述门级网表可以包括:所述rsfq电路中的逻辑单元及线网连接关系;所述单元库信息可以包括:所使用的逻辑单元的以下任意一种或多种信息:名称、类型、长度、宽度以及引脚信息等;所述逻辑单元列表中的每个列表元素为一个逻辑单元,可以包括每个逻辑单元的以下任意一种或多种信息:名称、类型、宽度、长度、引脚列表以及逻辑级别等;所述线网列表中的每个列表元素为一条线网,可以包括所述线网的以下任意一种或多种信息:名称、端点数量、源端点列表、宿端点以及逻辑级别等。2.dff缓冲器插入在本申请的示例性实施例中,该阶段可以识别所述rsfq电路中逻辑单元及除时钟线网以外的数据线网的逻辑级别,并根据所述逻辑级别的识别结果在线网内插入dff[d触发器(d-flip-flop,dff)]缓冲器,根据所述dff缓冲器的插入结果来识别最终逻辑级别。2.1逻辑级别定义在本申请的示例性实施例中,可以定义路径的逻辑级别a为从电路输入引脚沿数据信号路径j达到逻辑单元a的逻辑深度,路径的逻辑级别laj与所属线网相关;可以定义逻辑单元的逻辑级别la为逻辑单元a最长输入路径上的路径逻辑级别,即la=max(la1,...,lak),k为可以达到逻辑单元a的路径总数(时钟线网除外)。为保证并发流时钟的相位同步,必须保证所有到达单元i的路径逻辑级别相同,即la=la1=la2=...=lak,路径的逻辑级别的调整可以通过插入dff缓冲器实现。2.2识别初始逻辑级别在本申请的示例性实施例中,所述识别所述rsfq电路中逻辑单元及除时钟线网以外的数据线网的逻辑级别可以包括:遍历所述rsfq电路中的全部输入引脚,将所述全部输入引脚的逻辑级别设置为0;由所述全部输入引脚开始进行宽度优先探索(bfs),识别所述全部输入引脚连接的后续线网及逻辑单元的逻辑级别;其中,每探索到一级后续线网及逻辑单元,将探索到所述线网及逻辑单元的逻辑级别加1。在本申请的示例性实施例中,可以首先遍历电路中所有的输入引脚,并设置输入引脚的逻辑级别为0;对于每一个输入引脚(不包括时钟信号输入引脚),可以构造一个逻辑单元探索队列,叫作bfsqueue,将该输入引脚加入bfsqueue,然后可以使用bfs对该输入引脚连接的后续线网及逻辑单元进行探索,并确定后续线网及逻辑单元的逻辑级别,具体步骤可以包括(1)-(5):(1)取出bfsqueue中的第一个逻辑单元,记currentinst=bfsqueue.front();(2)对currentinst的所有引脚进行遍历,记当前遍历到的引脚为currentpin;(3)如果currentpin为逻辑单元的输出引脚,记该输出引脚所连接的线网为currentnet,更新currentnet的逻辑级别,即currentnet.level=max(currentinst.level+1,currentnet.level);(4)遍历currentnet的所有宿端点(即线网所连接的逻辑单元的输入引脚),设置当前宿端点为currenttargetpin,更新currenttargetpin所属的逻辑单元nextinst的逻辑级别,即nextinst.level=max(currentnet.level,nextinst.level);并将nextinst压入探索队列,即bfsqueue.push(nextinst);(5)直至bfsqueue为空。在本申请的示例性实施例中,如图3所示,对rsfq电路的每一个输入遍历完成后,可以获得初始rsfq电路所有逻辑单元(包括io)及线网(不包括时钟线网)的逻辑级别。如表1所示,为逻辑单元及线网的逻辑级别。表1逻辑单元/io逻辑级别线网逻辑级别ca-10net011aa0net021ba0net031sa3net042ca3net053xor01net063xor12and01and122.3dff缓冲器插入在本申请的示例性实施例中,所述根据所述逻辑级别的识别结果在线网内插入dff缓冲器可以包括:遍历所述rsfq电路的所有逻辑单元,并识别每个逻辑单元的所有输入路径;如果所有输入路径中任意一个或多个输入路径所属线网的逻辑级别与所述逻辑单元的逻辑级别不同,则在逻辑级别较小的输入路径上插入一个或多个dff缓冲器,使得所有输入路径的逻辑级别与所述逻辑单元的逻辑级别相同;如果所述逻辑单元的输出引脚对应的线网的逻辑级别大于所述逻辑单元的逻辑级别加1,则在所述逻辑单元的输出引脚后插入dff缓冲器。在本申请的示例性实施例中,可以遍历所有逻辑单元(包括io),识别该逻辑单元的所有输入路径(不包括时钟网络),如果输入路径的逻辑级别(即所属线网的逻辑级别)不同,则在逻辑级别较小的输入路径上插入适当数量的dff缓冲器,使得所有输入路径的逻辑级别与逻辑单元的逻辑级别相同;如果该逻辑单元的输出引脚对应的线网逻辑级别大于单元逻辑级别加1,则可以在该输出引脚后插入dff缓冲器。2.4识别最终逻辑级别在本申请的示例性实施例中,所述根据所述dff缓冲器插入结果来识别最终逻辑级别可以包括:识别插入dff缓冲器后的rsfq电路中逻辑单元和线网的逻辑级别,根据所有输入路径的逻辑级别与所述逻辑单元的逻辑级别相同判断dff缓冲器的插入结果是否正确;如果所述dff缓冲器插入正确,则将识别出的插入dff缓冲器后的rsfq电路中逻辑单元和线网的逻辑级别确定为最终逻辑级别;如果所述dff缓冲器插入不正确,则进行dff缓冲器插入修正。在本申请的示例性实施例中,可以使用上述的第2.2节中的方法识别插入dff缓冲器后的电路中逻辑单元和线网的逻辑级别,检查dff缓冲器插入结果是否正确,如果dff缓冲器插入正确,则确定每个逻辑单元(包括io和dff缓冲器)的最终逻辑级别,用来指导详细布局;否则进行dff缓冲器的插入修正。图3所示的初始电路进行dff缓冲器插入后的电路如图4所示。3.逻辑单元详细布局在本申请的示例性实施例中,针对rsfq电路的流水线结构,本申请实施例提出了一种基于模拟退火算法的按列布局算法。该详细布局方案可以将逻辑单元按逻辑级别分列放置,并提出了4种列内逻辑单元扰动操作;模拟退火算法则以最小化总线长为目标,力求获得紧凑的布局结果。由于部分逻辑单元的时钟引脚位于逻辑单元上/下侧,同一逻辑门列内相邻逻辑单元上下之间至少保留一个单位长度的布线空间,以避免出现布局违规。3.1详细布局流程在本申请的示例性实施例中,首先对布局的流程实施例作简单介绍,逻辑单元的详细布局可以仅考虑逻辑门列的生成,详细布局过程可以包括初始布局生成方式、布局评估函数、扰动操作、接受函数、初始温度设置及温度冷却系数等,本申请实施例给出一种完整的详细布局过程实施例,可以包括以下步骤1-5:1、根据逻辑单元的逻辑级别将每个逻辑单元放入所属的逻辑门列,生成初始布局模式p0;2、采用贪婪随机搜索策略进行10次扰动子模式的扰动,即依次对每个逻辑门列进行扰动操作10次。每次扰动可以由当前布局模式pi产生新的布局模式pj,计算扰动代价δcost=costj-costi,如果δcost<0,由布局模式pi变换到布局模式pj,否则保持布局模式pi不变;此外,累计δcostsum+=δcost;3、设逻辑门列总数为colnum,计算平均扰动代价生成模拟退火过程的初始温度布局进入模拟退火阶段;4、在每个温度下,可以进行扰动子模式的扰动1000次。每次可以由当前布局模式pi产生新的布局模式pj,根据预设的接受函数accept(i,j)决定是否接受此次扰动,如果接受此次扰动,则布局模式可以由pi变换到pj,否则保持布局模式pi不变。5、可以通过温度冷却系数关系式进行温度冷却,如果温度冷却到达预设的最小温度值,则终止模拟退火算法,输出此时的布局结果;否则返回步骤4。3.2产生初始布局模式在本申请的示例性实施例中,所述根据所述最终逻辑级别生成逻辑单元按列放置的初始布局模式可以包括:将每个逻辑单元按照相应的最终逻辑级别放入所属的逻辑门列;其中,位于同一个逻辑门列内的逻辑单元上下之间的间隔设置为1;在每一个逻辑门列中,逻辑单元从纵坐标1开始放置,并以1的间隔依次放置;当每一个逻辑门列放置完成后,获得所述初始布局模式。在本申请的示例性实施例中,dff缓冲器插入完成后,将每个逻辑单元按最终逻辑级别放入所属的逻辑门列,同一列逻辑门列内逻辑单元的上下间隔可以设置为1。在每一个逻辑门列中,逻辑单元可以从纵坐标1开始放置,然后以1的间隔依次放置。初始放置完成后,可以得到如图5所示的初始布局p0,最大的逻辑门列高度确定为版图高度,每列宽度为该逻辑门列中最大的逻辑单元的宽度。3.3布局模式评估在本申请的示例性实施例中,所述方法还可以包括:根据以下方案计算每种布局模式下所述rsfq电路的全部线网的总线长:根据第一预设关系式计算所述rsfq电路的每条线网的线长,并根据第二预设关系式以及每条线网的线长计算所述rsfq电路的全部线网的总线长。在本申请的示例性实施例中,本申请实施例中的详细布局算法以最小化总线长为目标,由于rsfq电路中多为多端线网,使用单树干斯坦纳树线长作为线网长度的估计值,第k条线网的线长估计值可以由第一预设关系式,即下述的式(1)给出;评估函数则为全部线网总线长,在布局模式pi下,布局代价可以由第二预设关系式,即下述的式(2)给出。在本申请的示例性实施例中,第一预设关系式包括:第二预设关系式包括:在本申请的示例性实施例中,第一预设关系式中(xj,xj)为线网第j个端点的横、纵坐标,为线网全部端点坐标的均值,xmax,xmin,ymax,ymin为线网端点坐标的最值;第二预设关系式中n为rsfq电路中线网总数,costi为布局模式pi下rsfq电路中线网总数。3.4布局模式转移机制在本申请的示例性实施例中,在采用模拟退火算法对所述初始布局模式进行优化之前,所述方法还可以包括:采用贪婪随机搜索策略对所述初始布局模式中的每个逻辑门列进行多次扰动操作,并计算平均扰动代价;根据所述平均扰动代价生成模拟退火过程的初始温度。在本申请的示例性实施例中,布局模式转移机制用于生成新的布局模式,可以包括布局扰动操作及接受函数,布局扰动操作用于产生新的布局模式,接受函数则用于判定是否接受新的布局模式。为避免引起并发流时钟相位混乱,本申请实施例的扰动操作只在逻辑门列内进行,不会将逻辑单元进行列间交换;同时,扰动过程中不允许布局违规现象出现。对于图6(a)所示的某一确定逻辑门列,可以进行以下4种逻辑门列的列内扰动操作,以参与扰动的逻辑单元数目区分为两类(设置进行第一类扰动操作的概率为0.6,进行第二类扰动操作的概率为0.4):第一类,单个逻辑单元扰动。在列内随机选定一个逻辑单元,进行以下三种操作:(i)将逻辑单元放置到列内一个全新空位置(与上下相邻逻辑单元间隔至少为1),如图6(b)所示;(ii)将该逻辑单元随机向上或向下移动一个单位长度,如图6(c)所示;(iii)将该逻辑单元进行镜像翻转,如图6(d)所示。三种操作依次进行,只有在前一项操作无法完成时方可进行下一项操作,以确保完成一次扰动操作(但未必会被接受函数所接受)。第二类,两个逻辑单元扰动。在列内随机选定两个逻辑单元,将两个逻辑单元的位置进行交换:如果两个逻辑单元高度相等,则将两个逻辑单元直接交换,如图6(e)所示;如果两个逻辑单元高度不等,则需消除交换之后有可能出现的布局违规,消除违规可以通过整体平移两个逻辑单元之间的逻辑单元完成,如图6(f)所示。在本申请的示例性实施例中,可以对每列逻辑门列依次进行扰动,并可以设置为一个完整的扰动子模式,在模拟退火过程中,可以以该扰动子模式为单位进行扰动操作。在扰动子模式的每次扰动操作完成后,可以由预设的接受函数判定是否接受本次扰动操作,所使用的接受函数可以为:在本申请的示例性实施例中,random(0,1)为0-1之间变化的随机值,t为模拟退火过程中的温度值(如初始温度t0),如果accept(i,j)大于零,则表示接受此次布局扰动,由布局模式pi变换到布局模式pj;否则,拒绝此次布局扰动,保持布局模式pi不变。3.5模拟退火进度表在本申请的示例性实施例中,所述采用模拟退火算法对所述初始布局模式进行优化可以包括步骤(1)-(3):(1)使用多种列内扰动操作对当前布局模式进行扰动,以产生新的布局模式;对每个逻辑门列依次进行扰动,并设置为一个完整的扰动子模式;(2)在每个温度下,按照预设的扰动子模式扰动多次;在每次扰动后根据预设的接受函数确定是否接受此次扰动;如果接受此次扰动,则将布局模式由当前的布局模式变换到新的布局模式;如果接受此次扰动,则保持当前的布局模式不变;(3)根据预设的温度冷却系数关系式进行温度冷却,将冷却后的温度与预设的最小温度值相比较,当冷却后的温度到达预设的最小温度值时输出布局结果,所述模拟退火算法终止迭代;当冷却后的温度未到达预设的最小温度值时,返回步骤(2)。在本申请的示例性实施例中,可以首先进行10次扰动子模式的扰动,用来确定适应性初始温度,以适应不同的rsfq电路规模。设初始温度其中为前10次子模式扰动中每次扰动代价的平均值。在进行前10次子模式扰动时,可以使用贪婪随机搜索过程:对于每次扰动操作,当δcost<0时接受此次扰动,当δcost≥<0可以拒绝此次扰动。在本申请的示例性实施例中,在完成贪婪随机搜索后,进入模拟退火过程,为了取得更好的退火效果,温度冷却系数可以满足下式(即预设的温度冷却系数关系式):在本申请的示例性实施例中,在根据预设的温度冷却系数关系式进行温度冷却时,可以根据不同的温度情况将当前温度t乘以上述的温度系数α从而实现降温,例如,如果当前温度t满足则下一温度tnext=t×α=0.95t;如果当前温度满足则下一温度tnext=t×α=0.99t;如果当前温度满足则下一温度tnext=t×α=0.95t。在本申请的示例性实施例中,将计算出的新的温度值t代入前述的接受函数,便可以确定当次扰动是否接受。在本申请的示例性实施例中,在每个温度下,可以进行扰动子模式的扰动1000次(即对每列逻辑门列可以依次进行扰动1000次);每次扰动操作可以由预设的接受函数判断是否接受。当温度下降到最小值(本申请实施例可以设置为10-3)时,模拟退火算法可以终止,获得最终的逻辑单元布局结果。本申请实施例还提供了一种快速单磁通量子rsfq电路布局装置1,如图7所示,可以包括处理器11和计算机可读存储介质12,所述计算机可读存储介质12中存储有指令,当所述指令被所述处理器11执行时,实现上述任意一项所述的快速单磁通量子rsfq电路布局方法。在本申请的示例性实施例中,上述的任意方法实施例中的实施例均可以适用于该装置实施例。本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1