CN112162884A - 流水线寄存器的位置确定方法、装置、介质与电子设备 - Google Patents
流水线寄存器的位置确定方法、装置、介质与电子设备 Download PDFInfo
- Publication number
- CN112162884A CN112162884A CN202011095661.9A CN202011095661A CN112162884A CN 112162884 A CN112162884 A CN 112162884A CN 202011095661 A CN202011095661 A CN 202011095661A CN 112162884 A CN112162884 A CN 112162884A
- Authority
- CN
- China
- Prior art keywords
- node
- determining
- pipeline register
- distance
- pipeline
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000015654 memory Effects 0.000 claims description 22
- 230000005540 biological transmission Effects 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 230000003993 interaction Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008054 signal transmission Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003631 expected effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1405—Saving, restoring, recovering or retrying at machine instruction level
- G06F11/1407—Checkpointing the instruction stream
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本公开提供一种流水线寄存器的位置确定方法、流水线寄存器的位置确定装置、计算机可读存储介质与电子设备,涉及集成电路技术领域。该流水线寄存器的位置确定方法包括:获取流水线上的第一节点和第二节点的位置;根据所述第一节点和第二节点的位置,以及距离比例条件,确定至少一个直线区域;在所述直线区域中确定流水线寄存器的位置。本公开可以在进行流水线寄存器的摆放时,准确且高效的确定流水线寄存器的摆放位置。
Description
技术领域
本公开涉及集成电路技术领域,尤其涉及一种流水线寄存器的位置确定方法、流水线寄存器的位置确定装置、计算机可读存储介质与电子设备。
背景技术
随着芯片设计的迅速发展,芯片所实现的功能越来越复杂的同时,芯片工程师的工作量也呈指数上升。在规模较大的芯片中,往往存在着大量的信号交互。当两个或多个距离较远的模块间需要进行信号交互时,常常会通过引入流水线寄存器,来满足长距离的信号传输。
现有技术中,在确定流水线寄存器的位置时,通常会进行大量的工作,来引导特定工具摆放流水线寄存机,以满足对时序的要求。但是,在流水线寄存器的数量较多时,可能会出现摆放流水线寄存器效果不好的情况,因此,还需要芯片后端工程师通过人为引导的方式,来确定流水线寄存器的位置,并进行摆放。这种方式工作量较大时,不仅需要较高的人力成本,还难以保证最终流水线寄存器的摆放效果,且效率较低。
因此,如果准确、有效的确定流水线寄存器的摆放位置,是现有技术亟待解决的问题。
发明内容
本公开提供了一种流水线寄存器的位置确定方法、流水线寄存器的位置确定装置、计算机可读存储介质与电子设备,进而至少在一定程度上改善现有技术中流水线寄存器摆放效率低、效果差的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的第一方面,提供一种流水线寄存器的位置确定方法,包括:获取流水线上的第一节点和第二节点的位置;根据所述第一节点和第二节点的位置,以及距离比例条件,确定至少一个直线区域;在所述直线区域中确定流水线寄存器的位置。
根据本公开的第二方面,提供一种流水线寄存器的位置确定装置,包括:位置获取模块,用于获取流水线上的第一节点和第二节点的位置;区域确定模块,用于根据所述第一节点和第二节点的位置,以及距离比例条件,确定至少一个直线区域;位置确定模块,用于在所述直线区域中确定流水线寄存器的位置。
根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述流水线寄存器的位置确定方法。
根据本公开的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述流水线寄存器的位置确定方法。
本公开的技术方案具有以下有益效果:
根据上述流水线寄存器的位置确定方法、流水线寄存器的位置确定装置、计算机可读存储介质与电子设备,获取流水线上的第一节点和第二节点的位置;根据第一节点和第二节点的位置,以及距离比例条件,确定至少一个直线区域;在直线区域中确定流水线寄存器的位置。一方面,本示例性实施例提出一种新的确定流水线寄存器位置的方法,通过第一节点与第二节点的位置,以及距离比例条件,确定直线区域,并在该直线区域内确定流水线寄存器的位置,由于该直线区域是基于特定的距离比例条件确定的,当寄存器放置在该直线区域内的位置时,可以满足两个节点的时序要求,保证其信号交互的效果;另一方面,相比于现有技术中直接确定一个位置点,本示例性实施例可以确定符合要求的直线区域,流水线寄存器可以摆放在该直线区域内的多个位置,为流水线寄存器的摆放提供了多样性,且当出现流水线寄存器与其他存储器发生重叠或冲突时,基于该直线区域,能够对其位置进行有效、便捷的调整;再一方面,本示例性实施例确定流水线寄存器的位置的方法,过程较为简单,无需芯片工程师通过人为方式,确定每个待摆放的寄存器的位置,自动化程度较高,且确定的位置准确、有效。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本示例性实施方式的电子设备的示意图;
图2示出相关技术中一种确定流水线寄存器的位置的方法;
图3示出本示例性实施方式的一种流水线寄存器的位置确定方法的流程图;
图4示出本示例性实施方式的一种流水线寄存器的位置确定方法的子流程图;
图5示出本示例性实施方式的一种流水线寄存器的位置确定的示意图;
图6示出本示例性实施方式的另一种流水线寄存器的位置确定方法的子流程图;
图7示出本示例性实施方式的另一种流水线寄存器的位置确定的示意图;
图8示出本示例性实施方式的一种流水线寄存器的位置确定装置的结构框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
本公开的示例性实施方式提供一种用于实现流水线寄存器的位置确定方法的电子设备。该电子设备至少包括处理器和存储器,存储器用于存储处理器的可执行指令,处理器配置为经由执行可执行指令来执行流水线寄存器的位置确定方法。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为***、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“***”。
下面参照图1来描述根据本公开的这种示例性实施例的电子设备100。图1显示的电子设备100仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图1所示,电子设备100以通用计算设备的形式表现。电子设备100的组件可以包括但不限于:上述至少一个处理单元110、上述至少一个存储单元120、连接不同***组件(包括存储单元120和处理单元110)的总线130、显示单元140。
其中,存储单元存储有程序代码,程序代码可以被处理单元110执行,使得处理单元110执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,处理单元110可以执行图3、图4或图6所示的步骤等。
存储单元120可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)121和/或高速缓存存储单元122,还可以进一步包括只读存储单元(ROM)123。
存储单元120还可以包括具有一组(至少一个)程序模块125的程序/实用工具124,这样的程序模块125包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线130可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备100也可以与一个或多个外部设备170(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备100交互的设备通信,和/或与使得该电子设备100能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口150进行。并且,电子设备100还可以通过网络适配器160与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器160通过总线130与电子设备100的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备100使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开示例性实施例的方法。
在相关技术的一种流水线寄存器的位置确定方法中,通常是引导后端APR(AutoPlace and Route,自动摆放标准单元和布线)工具对流水线寄存器进行摆放的。但是,采用这种方式进行摆放的流水线寄存器可能难以达到预想的效果,因此,还需要芯片后端工程师使用特定方式或功能,例引导标准单元摆放到特定位置的方式等,对流水线寄存器进行摆放或调整。
具体的,流水线寄存器摆放位置的具体设计方法,以一级流水线寄存器进行举例说明,如图2所示,模块1的端口D1,坐标为(x1,y1),模块2的端口D2,坐标为(x2,y2),当模块1与模块2之间存在信号交互,需要在模块1与模块2之间设置流水线寄存器时,通常可以将流水线寄存器的位置,设置在模块1的端口D1,与模块2的端口D2的中间,以同时满足两边端口的时序要求。设一级流水线寄存器摆放位置的坐标为P(x,y),则:
然而,在实际应用中,可能会出现某些特殊情况,例如在上述确定的寄存器的摆放位置P处恰好需要设置一RAM(Random Access Memory,随机存取存储器),此时,为了避免重叠造成的冲突,流水线寄存器会被APR工具移动到其他位置,而新的位置可能无法同时满足两边模块端口的时序要求,影响信号的交互效果。另外,当存在大量需要进行摆放的流水线寄存器时,仅通过芯片后端工程师人为,摆放到特定位置的方式,进行流水线寄存器的摆放,自动化程度较低,不仅增加了人力成本,准确性较低,且难以保证每个端口的时序要求。
基于上述问题,本示例性实施例提出一种新的流水线寄存器的位置确定方法,以对流水线寄存器进行有效、准确的摆放。
下面对本公开示例性实施方式的流水线寄存器的位置确定方法和流水线寄存器的位置确定装置进行具体说明。
图3示出了本示例性实施方式中一种流水线寄存器的位置确定方法的流程,包括以下步骤S310~S330:
步骤S310,获取流水线上的第一节点和第二节点的位置。
在电路芯片设计中,一个芯片上通常可以包括多个模块,模块可以用于单独命名并独立地完成某些功能所需的程序或子程序,其具有两个基本的特征:外部特征和内部特征,外部特征是指模块跟外部环境联系的接口,即其他模块或程序调用该模块的方式,可以包括输入/输出参数、引用的全局变量、以及模块的功能等;内部特征是指模块的内部环境具有的特点,即该模块的局部数据和程序代码。在实际应用中,为了提高***的性能和运行速度,保障数据的快速传输,当两个或多个距离较远的模块之间存在信号交互时,可以基于流水线的原理,将信号交互的处理过程分解为若干个子过程,每个子过程由一个专门的寄存器来执行相应的指令或功能,即可以在模块的端口之间引入流水线寄存器来实现远距离模块的信号交互。在步骤S310中,流水线上的第一节点的位置和第二节点的位置,可以分别表示芯片上信号的传输路径上,进行信号交互的两个模块的端口的位置,例如,图1所示,第一节点的位置可以是指模块1的端口D1的坐标位置,第二节点的位置可以是指模块2的端口D2的坐标位置。在本示例性实施例中,第一节点和第二节点的位置可以直接从***中获取,或者从对应的模块信息中获取等。
步骤S320,根据第一节点和第二节点的位置,以及距离比例条件,确定至少一个直线区域。
步骤S330,在直线区域中确定流水线寄存器的位置。
当需要在两个模块之间设置流水线寄存器时,如相关技术所述,常常设置在两个模块的端口中间,但是当与其他存储器的位置发生冲突时,移动该流水线寄存器却往往会影响两个端口的时序要求,即不能有效、准确的在多样化的应用场景中确定流水线寄存器的位置。基于此,本示例性实施例,可以根据第一节点和第二节点的位置,确定满足距离比例条件的,可以用于摆放流水线寄存器的一个直线区域,进而在该直线区域中确定具体的位置。
距离比例条件是指第一节点到需要确定的流水线寄存器的距离,与第二节点到该流水线寄存器的距离的比例条件。该距离比例条件可以是一个距离比例值,例如0.5或1.0;也可以是多个距离比例值,例如0.5、1.0和1.5等;还可以是一个距离比例区间,例如[0.5,1.0]。在本示例性实施例中,距离比例条件可以通过芯片工程师进行预先设置,也可以通过模块端口的延迟值进行确定等。当确定了第一节点和第二节点位置,以及距离比例条件后,可以根据第一节点与流水线寄存器与第二节点与流水线寄存器的距离关系,建立特定的方程,得到至少一个直线区域。由于,求解得到的直线区域是在上述距离比例条件下求解得到的区域,因此,在该直线区域中的任意位置摆放流水线寄存器都可以满足要求。在本示例性实施例中,直线区域内可以摆放一个或多个流水线寄存器,例如在确定的一直线区域内可以摆放两个一级流水线寄存器。另外,当在直线区域中确定流水线寄存器的位置后,如果在该位置还存在其他与该流水线发生重叠或冲突的器件或存储器,例如RAM(Random AccessMemory,随机存取存储器)、ROM(Read-Only Memory,只读存储器)等,可以将流水线寄存器移动至该直线区域的其他位置。或者为了避免上述情况的发生,在确定流水线寄存器之前,可以先获取芯片中各器件或存储器的位置,进一步的,在直线区域内确定除障碍器件之外的区域,确定流水线寄存器的位置。
需要说明的是,当存在多级流水线寄存器时,本示例性实施例还可以根据不同级流水线寄存器的距离约束条件确定不同的直线区域,以对应确定多级流水线寄存器的摆放位置。
在一示例性实施例中,如图4所示,上述步骤S320,可以包括以下步骤:
步骤S410,设置位置变量,位置变量表示流水线寄存器的位置;
步骤S420,根据第一节点和第二节点的位置,以及距离比例条件,建立关于位置变量的方程,使第一距离与第二距离的比例满足距离比例条件,第一距离为位置变量与第一节点的曼哈顿距离,第二距离为位置变量与第二节点的曼哈顿距离;
步骤S430,求解方程的解集,解集包括至少一个直线区域。
在本示例性实施例中,根据第一节点和第二节点的位置,以及距离比例条件构建方程,并对其进行解析,得到对应的直线区域。下面进行举例说明,如图5所示,首先,可以对摆放流水线寄存器的位置P,设置一位置变量,以坐标(x,y)表示,第一节点表示第一模块的端口D1,以坐标(x1,y1)表示,第二节点表示第二模块的端口D2,以坐标(x2,y2)表示。
考虑到,在实际的芯片数字后端的设计中,布线通常需要按照水平方向或垂直方向设置,而不允许以斜向或其他非直线等方式进行走线,因此,当需要以最短距离进行布线时,第一节点到流水线寄存器位置的距离,以及第二节点到流水线寄存器位置的距离均为曼哈顿距离。因此,端口D1到流水线寄存器的距离可以表示为:D1=|x-x1|+|y-y1|,端口D2到流水线寄存器的距离可以表示为:D2=|x-x2|+|y-y2|,根据距离比例条件,端口D2到流水线寄存器的距离为端口D1到流水线寄存器的距离的K倍,即K*D1=D2,建立如下方程:
K(|x-x1|+|y-y1|)=|x-x2|+|y-y2| (1)
对上述方程进行求解,可以得到以下函数:
位置变量(x,y)的取值范围可以表示为:min(x1,x2)<x<min(x1,x2),min(y1,y2)<y<max(y1,y2),即确定的直线区域并不是无线延伸的,直线区域内的任意一点坐标均在以端口D1和端口D2为对角线建立的矩形区域内。
需要说明的是,如果x1=x2,或者y1=y2,则需要对x2(或x1),或者y2(或y1)进行修正处理,使A或B不会出现以0作为除数的情况。
基于上述对方程(1)的求解,得到的函数(2),可以看出能够满足两个端口要求的流水线寄存器的坐标不止一个点,而是一直线区域L。在该直线区域内的任意位置摆放流水线寄存器,都可以满足其时序的要求。
在一示例性实施例中,上述距离比例条件可以包括至少一个比例约束值,其中,采用不同的比例约束值,求解方程得到的解集为不同的直线区域。
特别的,比例约束条件可以是至少一个比例约束值,根据一比例约束值,根据上述求解得到的函数(2),可以唯一的确定一条直线,而不同的比例约束值可以确定不同的直线,例如当K=0.5、K=1.0、K=1.5时,可以分别得到三条相互平行的直线,进一步的,可以在对应的直线上确定流水线寄存器的位置。
在一示例性实施例中,上述流水线寄存器的位置确定方法还可以包括:根据流水线的延迟约束条件确定距离比例条件。
在实际应用中,多个模块或寄存器之间进行信号交互时,信号的传输会存在一定的延迟性。本示例性实施例在确定距离比例条件时,可以基于流水线的延迟约束条件,例如根据模块端口到流水线寄存器的最大延迟时间,确定距离比例条件;或者模块端口到流水线寄存器的最小延迟时间,确定距离比例条件;再或者,根据模块端口到流水线寄存器的最大延迟时间,以及最小延迟时间,共同确定距离比例条件,例如对最大延迟时间与最小延迟时间进行加权平均计算,根据平均延迟时间确定距离比例条件等。
进一步的,在一示例性实施例中,如图6所示,上述根据流水线的延迟约束条件确定距离比例条件,可以包括以下步骤:
步骤S610,根据流水线的延迟约束条件确定第一延迟最大值与第二延迟最大值,第一延迟最大值为流水线寄存器与第一节点之间传输信号所允许的最大延迟时间,第二延迟最大值为流水线寄存器与第二节点之间传输信号所允许的最大延迟时间;
步骤S620,通过第一延迟最大值与第二延迟最大值的比例确定距离比例条件。
为了更准确的确定流水线寄存器的位置,本示例性实施例可以基于最大延迟时间确定延迟约束条件。具体的,可以先确定信号从流水线寄存器传输到第一节点时所允许的最大延迟时间,即第一延迟最大值,以及信号从流水线寄存器传输到第二节点时所允许的最大延迟时间,即第二延迟最大值,然后基于第一延迟最大值和第二延迟最大值的比例确定距离比例条件,表示为:
其中,K表示延迟约束条件,DP2表示流水线寄存器与第二节点之间传输信号所允许的最大延迟时间,DP1表示流水线寄存器与第一节点之间传输信号所允许的最大延迟时间。
在一示例性实施例中,上述流水线寄存器的位置确定方法还可以包括:
从流水线的时序约束信息中获取延迟约束条件。
其中,时序约束信息可以是指,预先设定的用于对电路时序设计进行要求的信息,例如SDC(Synopsys Design Constraint,时序约束文件),其可以包括多种约束条件,例如主时钟的约束、时序例外、或者输入/输出延时等等。本示例性实施例可以从时序约束信息中确定延迟约束条件,以确定距离比例条件。
在一示例性实施例中,上述步骤S330可以包括以下步骤:
从直线区域中排除随机存取存储器所在的位置,并在剩余区域中确定流水线寄存器的位置。
RAM作为与中央处理器进行支教交换数据的内部存储器,在实际应用中,可能会设置在两个模块的端口之间,为了避免重叠或冲突,本示例性实施例在确定直线区域后,可以先从直线区域中排除RAM所在的位置,并在其他直线区域中确定流水线寄存器的位置,例如图7所示,在端口D1和端口D2之间,根据距离比例条件,确定一直线区域L,RAM处于该直线区域的N点处,则流水线寄存器的位置可以确定在直线区域L上,除N以外的位置,如图7中所示的P点位置等。
综上,本示例性实施方式中,获取流水线上的第一节点和第二节点的位置;根据第一节点和第二节点的位置,以及距离比例条件,确定至少一个直线区域;在直线区域中确定流水线寄存器的位置。一方面,本示例性实施例提出一种新的确定流水线寄存器位置的方法,通过第一节点与第二节点的位置,以及距离比例条件,确定直线区域,并在该直线区域内确定流水线寄存器的位置,由于该直线区域是基于特定的距离比例条件确定的,当寄存器放置在该直线区域内的位置时,可以满足两个节点的时序要求,保证其信号交互的效果;另一方面,相比于现有技术中直接确定一个位置点,本示例性实施例可以确定符合要求的直线区域,流水线寄存器可以摆放在该直线区域内的多个位置,为流水线寄存器的摆放提供了多样性,且当出现流水线寄存器与其他存储器发生重叠或冲突时,基于该直线区域,能够对其位置进行有效、便捷的调整;再一方面,本示例性实施例确定流水线寄存器的位置的方法,过程较为简单,无需芯片工程师通过人为方式,确定每个待摆放的寄存器的位置,自动化程度较高,且确定的位置准确、有效。
本公开的示例性实施方式还提供一种流水线寄存器的位置确定装置。如图8所示,该流水线寄存器的位置确定装置800可以包括:位置获取模块810,用于获取流水线上的第一节点和第二节点的位置;区域确定模块820,用于根据第一节点和第二节点的位置,以及距离比例条件,确定至少一个直线区域;位置确定模块830,用于在直线区域中确定流水线寄存器的位置。
在一示例性实施例中,区域确定模块,包括:位置设置单元,用于设置位置变量,位置变量表示流水线寄存器的位置;方程建立单元,用于根据第一节点和第二节点的位置,以及距离比例条件,建立关于位置变量的方程,使第一距离与第二距离的比例满足距离比例条件,第一距离为位置变量与第一节点的曼哈顿距离,第二距离为位置变量与第二节点的曼哈顿距离;解集求解单元,用于求解方程的解集,解集包括至少一个直线区域。
在一示例性实施例中,距离比例条件包括至少一个比例约束值;其中,采用不同的比例约束值,求解方程得到的解集为不同的直线区域。
在一示例性实施例中,流水线寄存器的位置确定装置还包括:条件确定模块,用于根据流水线的延迟约束条件确定距离比例条件。
在一示例性实施例中,条件确定模块,包括:延迟值确定单元,用于根据流水线的延迟约束条件确定第一延迟最大值与第二延迟最大值,第一延迟最大值为流水线寄存器与第一节点之间传输信号所允许的最大延迟时间,第二延迟最大值为流水线寄存器与第二节点之间传输信号所允许的最大延迟时间;比例条件确定单元,用于通过第一延迟最大值与第二延迟最大值的比例确定距离比例条件。
在一示例性实施例中,流水线寄存器的位置确定装置还包括:条件获取模块,用于从流水线的时序约束信息中获取延迟约束条件。
在一示例性实施例中,位置确定模块,包括:位置确定单元,用于从直线区域中排除随机存取存储器所在的位置,并在剩余区域中确定流水线寄存器的位置。
上述装置中各模块的具体细节在方法部分实施方式中已经详细说明,未披露的细节内容可以参见方法部分的实施方式内容,因而不再赘述。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为***、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“***”。
本公开的示例性实施方式还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤,例如可以执行图3、图4、或图6中任意一个或多个步骤。
本公开的示例性实施方式还提供了一种用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施方式。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施方式仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。
Claims (10)
1.一种流水线寄存器的位置确定方法,其特征在于,包括:
获取流水线上的第一节点和第二节点的位置;
根据所述第一节点和第二节点的位置,以及距离比例条件,确定至少一个直线区域;
在所述直线区域中确定流水线寄存器的位置。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一节点和第二节点的位置,以及距离比例条件,确定至少一个直线区域,包括:
设置位置变量,所述位置变量表示所述流水线寄存器的位置;
根据所述第一节点和第二节点的位置,以及距离比例条件,建立关于所述位置变量的方程,使第一距离与第二距离的比例满足所述距离比例条件,所述第一距离为所述位置变量与所述第一节点的曼哈顿距离,所述第二距离为所述位置变量与所述第二节点的曼哈顿距离;
求解所述方程的解集,所述解集包括至少一个所述直线区域。
3.根据权利要求2所述的方法,其特征在于,所述距离比例条件包括至少一个比例约束值;
其中,采用不同的比例约束值,求解所述方程得到的解集为不同的所述直线区域。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述流水线的延迟约束条件确定所述距离比例条件。
5.根据权利要求4所述的方法,其特征在于,所述根据所述流水线的延迟约束条件确定所述距离比例条件,包括:
根据所述流水线的延迟约束条件确定第一延迟最大值与第二延迟最大值,所述第一延迟最大值为所述流水线寄存器与所述第一节点之间传输信号所允许的最大延迟时间,所述第二延迟最大值为所述流水线寄存器与所述第二节点之间传输信号所允许的最大延迟时间;
通过所述第一延迟最大值与所述第二延迟最大值的比例确定所述距离比例条件。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
从所述流水线的时序约束信息中获取所述延迟约束条件。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述在所述直线区域中确定流水线寄存器的位置,包括:
从所述直线区域中排除随机存取存储器所在的位置,并在剩余区域中确定所述流水线寄存器的位置。
8.一种流水线寄存器的位置确定装置,其特征在于,包括:
位置获取模块,用于获取流水线上的第一节点和第二节点的位置;
区域确定模块,用于根据所述第一节点和第二节点的位置,以及距离比例条件,确定至少一个直线区域;
位置确定模块,用于在所述直线区域中确定流水线寄存器的位置。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的方法。
10.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011095661.9A CN112162884A (zh) | 2020-10-14 | 2020-10-14 | 流水线寄存器的位置确定方法、装置、介质与电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011095661.9A CN112162884A (zh) | 2020-10-14 | 2020-10-14 | 流水线寄存器的位置确定方法、装置、介质与电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112162884A true CN112162884A (zh) | 2021-01-01 |
Family
ID=73866826
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011095661.9A Withdrawn CN112162884A (zh) | 2020-10-14 | 2020-10-14 | 流水线寄存器的位置确定方法、装置、介质与电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112162884A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020004929A1 (en) * | 2000-07-04 | 2002-01-10 | Seiko Osaki | Method of designing a layout of an LSI chip, and a computer product |
US20070220522A1 (en) * | 2006-03-14 | 2007-09-20 | Paul Coene | System and method for runtime placement and routing of a processing array |
US20110032265A1 (en) * | 2009-01-29 | 2011-02-10 | Baumer Innotec Ag | Pipelined computing device for connecting contour elements from image data |
CN103632001A (zh) * | 2013-11-27 | 2014-03-12 | 中国人民解放军国防科学技术大学 | 基于缓冲单元复用的保持时间时序优化方法 |
US20140143531A1 (en) * | 2012-11-19 | 2014-05-22 | Qualcomm Technologies, Inc. | Automatic pipeline stage insertion |
US20180150584A1 (en) * | 2016-11-30 | 2018-05-31 | International Business Machines Corporation | Placement clustering-based white space reservation |
-
2020
- 2020-10-14 CN CN202011095661.9A patent/CN112162884A/zh not_active Withdrawn
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020004929A1 (en) * | 2000-07-04 | 2002-01-10 | Seiko Osaki | Method of designing a layout of an LSI chip, and a computer product |
US20070220522A1 (en) * | 2006-03-14 | 2007-09-20 | Paul Coene | System and method for runtime placement and routing of a processing array |
US20110032265A1 (en) * | 2009-01-29 | 2011-02-10 | Baumer Innotec Ag | Pipelined computing device for connecting contour elements from image data |
US20140143531A1 (en) * | 2012-11-19 | 2014-05-22 | Qualcomm Technologies, Inc. | Automatic pipeline stage insertion |
CN103632001A (zh) * | 2013-11-27 | 2014-03-12 | 中国人民解放军国防科学技术大学 | 基于缓冲单元复用的保持时间时序优化方法 |
US20180150584A1 (en) * | 2016-11-30 | 2018-05-31 | International Business Machines Corporation | Placement clustering-based white space reservation |
Non-Patent Citations (1)
Title |
---|
杨正强: "网格型时钟自动综合的研究与实现", 《中国优秀硕士学位论文全文数据库信息科技辑(月刊)》, no. 12, pages 135 - 49 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110471409B (zh) | 机器人巡检方法、装置、计算机可读存储介质及机器人 | |
JP2018081693A (ja) | スキーマで表される必要条件を用いた自動プロセス制御ハードウェア工学 | |
EP4286234A1 (en) | Method and apparatus for starting unmanned vehicle, electronic device, and computer-readable medium | |
CN113872811A (zh) | 操作变更方法、广域网控制***、电子设备及存储介质 | |
CN107885661A (zh) | 移动应用的终端兼容性测试方法和***、设备、介质 | |
KR20200018236A (ko) | 인공 지능 칩에 적용되는 산출 방법 및 인공 지능 칩 | |
CN114417780B (zh) | 状态同步方法、装置、电子设备及存储介质 | |
CN111124409A (zh) | 基于Sketch的业务页面生成方法、装置、设备和存储介质 | |
WO2024104189A1 (zh) | 车辆定位方法、装置、电子设备、存储介质 | |
CN112162884A (zh) | 流水线寄存器的位置确定方法、装置、介质与电子设备 | |
CN112590929A (zh) | 自动驾驶车辆方向盘的校正方法、装置、电子设备和介质 | |
CN115544622B (zh) | 城乡参与式三维规划设计平台、方法、设备及存储介质 | |
CN113129366A (zh) | 单目slam初始化方法、装置及电子设备 | |
CN110825461A (zh) | 数据处理方法和装置 | |
CN110162880B (zh) | 光电缆敷设方法、装置、设备和介质 | |
CN111027196B (zh) | 一种电力设备的仿真分析任务处理方法、装置及存储介质 | |
CN114724115A (zh) | 障碍物定位信息生成方法、装置、设备和计算机可读介质 | |
CN113378505B (zh) | 一种走线布局调整方法、装置、电子设备及存储介质 | |
CN110070479B (zh) | 图像变形拖拽点定位方法和装置 | |
CN112667119A (zh) | 测点批量关联方法、装置、电子设备和计算机可读介质 | |
CN116028427B (zh) | 参数的配置***、方法及存储介质 | |
CN111176718A (zh) | 脚本上线方法、装置、存储介质及电子设备 | |
CN113791391B (zh) | 一种干扰特征参数识别方法、装置、存储及设备 | |
CN114881546B (zh) | 一种确定资源消耗的方法和装置 | |
CN113961006B (zh) | 一种机器人补位的方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210101 |
|
WW01 | Invention patent application withdrawn after publication |