CN115809633A - 端口位置确定方法、装置、电子设备和可读存储介质 - Google Patents
端口位置确定方法、装置、电子设备和可读存储介质 Download PDFInfo
- Publication number
- CN115809633A CN115809633A CN202211643793.XA CN202211643793A CN115809633A CN 115809633 A CN115809633 A CN 115809633A CN 202211643793 A CN202211643793 A CN 202211643793A CN 115809633 A CN115809633 A CN 115809633A
- Authority
- CN
- China
- Prior art keywords
- module
- port
- target modules
- modules
- layout
- 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.)
- Pending
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本申请提供一种端口位置确定方法、装置、电子设备和可读存储介质,该方法包括获取相邻的至少两个目标模块的模块信息;其中,模块信息包括模块中的执行器件以及模块的端口;获取至少两个目标模块的布局限制条件;其中,布局限制条件用于限制每个目标模块的执行器件在对应模块的第一限制区域内以及限制每相邻两个目标模块的端口在模块连接的第二限制区域内;根据至少两个目标模块的模块信息和布局限制条件确定每相邻的两个目标模块的端口位置,从而在实现端口位置的自动化确定基础上,使得规划得到的端口位置为最佳端口位置,进而在极大提高端口位置确定效率,减少人力投入和工作量的基础上,也提高端口位置的确定准确性。
Description
技术领域
本申请涉及芯片设计技术领域,具体而言,涉及一种端口位置确定方法、装置、电子设备和计算机可读存储介质。
背景技术
在高性能芯片设计中,因为芯片的规模太大,电子设计自动化(Electronicdesign automation,EDA)工具无法对芯片做整体的布局布线,通常的解决办法是将芯片按功能划分成多个小型硬模块。
在芯片划分成多个小型硬模块基础上,每个模块的输入端口和输出端口在模块边界上的位置直接影响到该端口的信号路径和模块内部的器件摆放,从而影响芯片的效率和线路资源。
目前的芯片设计,通常是根据经验假定一个大概顺序来确定模块的输入端口和输出端口的位置,然后在布局,布线完成以后,根据全芯片的时序检查结果来对端口位置进行调整,这样的方式使得端口位置确定效率低下,并且在全芯片设计完成之后对端口进行调整使得工作量庞大。
发明内容
本申请实施例的目的在于提供一种端口位置确定方法、装置、电子设备和可读存储介质,用以解决目前芯片设计通过设计者经验假定端口位置,在布局,布线完成以后,根据全芯片的时序检查结果来对端口位置进行调整方式带来的效率低下以及工作量庞大的问题。
第一方面,本发明提供一种端口位置确定方法,该方法包括:获取相邻的至少两个目标模块的模块信息;其中,模块信息包括模块中的执行器件以及模块的端口;获取至少两个目标模块的布局限制条件;其中,布局限制条件用于限制每个目标模块的执行器件在对应模块的第一限制区域内以及限制每相邻两个目标模块的端口在模块连接的第二限制区域内;根据至少两个目标模块的模块信息和布局限制条件确定每相邻的两个目标模块的端口位置。
上述设计的端口位置确定方法,本方案首先获取相邻的至少两个目标模块的模块信息,然后获取至少两个目标模块的布局限制条件,最后根据至少两个目标模块的模块信息和布局限制条件确定每两个相邻模块的端口位置,由于每两个相邻模块的端口通过布局限制条件限制在模块连接的第二限制区域内,使得在对两个目标模块内的执行器件位置规划变化时,目标模块的端口位置虽然也随着执行器件位置变化而变化,但目标模块的端口始终被限制在第二限制区域内,从而在实现端口位置的自动化确定基础上,使得规划得到的端口位置为最佳端口位置,进而在极大提高端口位置确定效率,减少人力投入和工作量的基础上,也提高端口位置的确定准确性。
在第一方面的可选实施方式中,根据所述至少两个目标模块的模块信息和布局限制条件确定每相邻的两个目标模块的端口位置,包括:根据布局限制条件,将每个目标模块的执行器件限制在对应模块的第一限制区域内;根据布局限制条件,将每相邻两个目标模块的端口限制在模块连接的第二限制区域内;对至少两个目标模块进行布局规划,获得布局规划完成的每相邻的两个目标模块的端口位置。
在第一方面的可选实施方式中,根据布局限制条件将每相邻两个目标模块的端口限制在模块连接的第二限制区域内,包括:获取预先配置的至少一组锚定缓冲器;其中,每组锚定缓冲器包括多个锚定缓冲器,不同的相邻两个目标模块对应不同组锚定缓冲器,相同组的每个锚定缓冲器与对应相邻两个目标模块的一个端口对应;根据布局限制条件,将每组锚定缓冲器限制在对应相邻的两个目标模块连接的第二限制区域内。
在第一方面的可选实施方式中,其中,每组锚定缓冲器与对应相邻两个目标模块之中的其中一个目标模块的所有输入端口和输出端口对应。
在第一方面的可选实施方式中,其中,每组锚定缓冲器与对应相邻两个目标模块之中的其中一个目标模块的所有输入端口对应,以及与对应相邻两个目标模块之中的另一个目标模块的所有输入端口对应。
在第一方面的可选实施方式中,对至少两个目标模块进行布局规划,获得布局规划完成的每相邻的两个目标模块的端口位置,包括:对每组锚定缓冲器的位置进行布局规划,获得规划完成的每组锚定缓冲器中每个锚定缓冲器的位置信息;根据每组锚定缓冲器中每个锚定缓冲器的位置信息确定对应相邻两个目标模块的端口位置。本实施方式通过给每个端口预埋对应的锚定缓冲器,并将锚定缓冲器限制在第二限制区域内,在优化后即可通过锚定缓冲器的位置信息来确定对应的端口的位置,从而自动化地实现端口位置的确定,提高芯片设计的端口位置的确定效率,极大地减少设计人员的工作量。
在第一方面的可选实施方式中,其中,每个锚定缓冲器均设置有防止优化的防优化属性。本实施方式通过在配置锚定缓冲器时,对配置的锚定缓冲器设置防优化属性,从而使得不会对配置的锚定缓冲器进行优化,进而避免优化带来的端口位置缺失的情况。
在第一方面的可选实施方式中,根据布局限制条件将每相邻两个目标模块的端口限制在模块连接的第二限制区域内,包括:获取每相邻两个目标模块的每个端口的端口标识;其中,不同端口具有的标识不同;根据每个端口的端口标识,将每相邻两个目标模块的所有端口限制在对应模块连接的第二限制区域内。
在第一方面的可选实施方式中,对至少两个目标模块进行布局规划,获得布局规划完成的每相邻的两个目标模块的端口位置,包括:对每相邻两个目标模块中的每个端口标识的位置进行布局规划,获得规划完成的每个端口标识的位置信息;根据每个端口标识的位置信息确定对应端口的位置。本实施方式通过给每个端口设置对应的端口标识,并将端口标识限制在第二限制区域内,在优化后端口标识的位置信息即为对应的端口的位置,从而自动化地实现端口位置的确定,提高芯片设计的端口位置的确定效率,极大地减少设计人员的工作量。
在第一方面的可选实施方式中,获取相邻的至少两个目标模块的模块信息,包括:获取顶层布局规划得到的多个逻辑模块;其中,每个逻辑模块包括逻辑模块位置、大小以及逻辑模块中的执行器件和端口;根据多个逻辑模块的模块位置获取至少两个相邻的逻辑模块作为目标模块。
在第一方面的可选实施方式中,在根据至少两个目标模块的模块信息和布局限制条件确定每相邻的两个目标模块的端口位置之后,该方法还包括:计算每个端口位置的端口延时;根据每个端口位置的延时确定对应端口的时序约束。本实施方式在确定每相邻的两个目标模块的端口位置基础上,计算每个端口位置的端口延时;根据每个端口位置的延时确定对应端口的时序约束,由于确定的端口位置较为准确,从而产生比较准确的端口时序收敛约束。
第二方面,本发明提供一种端口位置确定装置,该装置包括获取模块和确定模块;该获取模块,用于获取相邻的至少两个目标模块的模块信息;其中,所述模块信息包括模块中的执行器件以及模块的端口;以及,获取所述至少两个目标模块的布局限制条件;其中,所述布局限制条件用于限制每个目标模块的执行器件在对应模块的第一限制区域内以及限制每相邻两个目标模块的端口在模块连接的第二限制区域内;该确定模块,用于根据所述至少两个目标模块的模块信息和布局限制条件确定每相邻的两个目标模块的端口位置。
上述设计的端口位置确定装置,本方案首先获取相邻的至少两个目标模块的模块信息,然后获取至少两个目标模块的布局限制条件,最后根据至少两个目标模块的模块信息和布局限制条件确定每两个相邻模块的端口位置,由于每两个相邻模块的端口通过布局限制条件限制在模块连接的第二限制区域内,使得在对两个目标模块内的执行器件位置规划变化时,目标模块的端口位置虽然也随着执行器件位置变化而变化,但目标模块的端口始终被限制在第二限制区域内,从而在实现端口位置的自动化确定基础上,使得规划得到的端口位置为最佳端口位置,进而在极大提高端口位置确定效率,减少人力投入和工作量的基础上,也提高端口位置的确定准确性。
在第二方面的可选实施方式中,该确定模块,具体用于根据布局限制条件,将每个目标模块的执行器件限制在对应模块的第一限制区域内;根据布局限制条件,将每相邻两个目标模块的端口限制在模块连接的第二限制区
域内;对至少两个目标模块进行布局规划,获得布局规划完成的每相邻的两5个目标模块的端口位置。
在第二方面的可选实施方式中,该确定模块,还具体用于获取预先配置的至少一组锚定缓冲器;其中,每组锚定缓冲器包括多个锚定缓冲器,不同的相邻两个目标模块对应不同组锚定缓冲器,相同组的每个锚定缓冲器与
对应相邻两个目标模块的一个端口对应;根据布局限制条件,将每组锚定缓0冲器限制在对应相邻的两个目标模块连接的第二限制区域内。
在第二方面的可选实施方式中,该确定模块,还具体用于对每组锚定缓冲器的位置进行布局规划,获得规划完成的每组锚定缓冲器中每个锚定缓冲器的位置信息;根据每组锚定缓冲器中每个锚定缓冲器的位置信息确定对应相邻两个目标模块的端口位置。
5在第二方面的可选实施方式中,该确定模块,还具体用于获取每相邻两个目标模块的每个端口的端口标识;其中,不同端口具有的标识不同;根据每个端口的端口标识,将每相邻两个目标模块的所有端口限制在对应模块连接的第二限制区域内。
在第二方面的可选实施方式中,该确定模块,还具体用于对每相邻两个0目标模块中的每个端口标识的位置进行布局规划,获得规划完成的每个端
口标识的位置信息;根据每个端口标识的位置信息确定对应端口的位置。
在第二方面的可选实施方式中,该获取模块,具体用于获取顶层布局规划得到的多个逻辑模块;其中,每个逻辑模块包括逻辑模块位置、大小以及逻辑模块中的执行器件和端口;根据多个逻辑模块的模块位置获取至少两个相邻的逻辑模块作为目标模块。
在第二方面的可选实施方式中,该装置还包括计算模块,用于计算每个5端口位置的端口延时;该确定模块,还用于根据每个端口位置的延时确定对应端口的时序约束。
第三方面,本申请提供一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时执行第一方面、第一方面中任一可选的实现方式中的所述方法。
0第四方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时执行第一方面、第一方面中任一可选的实现方式中的所述方法。
第五方面,本申请提供了一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得计算机执行第一方面、第一方面中任一可选的实现方5式中的所述方法。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
0为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例
中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的端口位置确定方法的第一流程图;
图2为本申请实施例提供的芯片多个逻辑模块的结构示例图;
图3为本申请实施例提供的一种相邻目标模块的结构示例图;
图4为本申请实施例提供的另一种相邻目标模块的结构示例图;
图5为本申请实施例提供的端口位置确定方法的第二流程图;
图6为本申请实施例提供的锚定缓冲器的位置确定示意图;
图7为本申请实施例提供的端口位置确定装置的结构示意图;
图8为本申请实施例提供的电子设备的结构示意图。
图标:700-获取模块;710-确定模块;720-计算模块;8-电子设备;801-处理器;802-存储器;803-通信总线。
具体实施方式
下面将结合附图对本申请技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本申请的技术方案,因此只作为示例,而不能以此来限制本申请的保护范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。
在本申请实施例的描述中,技术术语“第一”“第二”等仅用于区别不同对象,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量、特定顺序或主次关系。在本申请实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在本申请实施例的描述中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
在本申请实施例的描述中,术语“多个”指的是两个以上(包括两个),同理,“多组”指的是两组以上(包括两组),“多片”指的是两片以上(包括两片)。
在本申请实施例的描述中,技术术语“中心”“纵向”“横向”“长度”“宽度”“厚度”“上”“下”“前”“后”“左”“右”“竖直”“水平”“顶”“底”“内”“外”“顺时针”“逆时针”“轴向”“径向”“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请实施例和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请实施例的限制。
在本申请实施例的描述中,除非另有明确的规定和限定,技术术语“安装”“相连”“连接”“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;也可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请实施例中的具体含义。
在高性能芯片设计中,因为芯片的规模太大,电子设计自动化(Electronicdesign automation,EDA)工具无法对芯片做整体的布局布线,通常的解决办法是将芯片按功能划分成多个小型硬模块。其中,该EDA工具指的是芯片设计辅助软件、可编程芯片辅助设计软件、系统设计辅助软件等三类,可对芯片自动布局布线、电路设计仿真等,该多个小型硬模块可理解为多个小型功能模块,每个模块执行对应的一个功能。
在芯片划分成多个小型硬模块基础上,每个模块的输入端口和输出端口在模块边界上的位置直接影响到该端口的信号路径和模块内部的器件摆放,从而影响芯片的效率和线路资源。
本发明人发现,目前的芯片设计,通常是根据经验假定一个大概顺序来确定模块的输入端口和输出端口的位置,然后在布局,布线完成以后,根据全芯片的时序检查结果来对端口位置进行调整,这样的方式使得端口位置确定效率低下,并且在全芯片设计完成之后对端口进行调整使得工作量庞大。
基于上述问题,本发明人设计一种端口位置确定方法、装置、电子设备和可读存储介质,通过将相邻两个目标模块融合为一个模块,然后将每个目标模块的执行器件限制在各自的模块区域(第一限制区域)中,将相邻两个目标模块的端口限制在模块连接的第二限制区域内,从而通过EDA工具根据上述限制自动地对相邻两个目标模块的端口进行布局规划,进而确定相邻两个目标模块的端口位置,有效地提高模块端口位置的确定效率,极大地减少芯片的模块的端口位置规划的工作量。
基于上述思路,本申请提供一种端口位置确定方法,该方法可应用于计算设备中,该计算设备包括但不限于计算机、服务器等,如图1所示,该方法可通过如下方式实现,包括:
步骤S100:获取相邻的至少两个目标模块的模块信息。
步骤S110:获取至少两个目标模块的布局限制条件。
步骤S120:根据至少两个目标模块的模块信息和布局限制条件确定每两个相邻模块的端口位置。
在上述实施方式中,相邻的至少两个目标模块是指芯片划分的多个逻辑模块中处于相邻状态的至少两个逻辑模块,其中,芯片划分的多个逻辑模块可通过顶层布局规划得到,该顶层布局规划可规划处出芯片的多个逻辑模块、每个逻辑模块的位置、大小以及每个逻辑模块中的执行器件和端口。作为一种可能的示例,如图2所示,通过顶层布局规划可以得到如图2所示的多个逻辑模块,分别为Block A、Block B、Block C、Block D、Block E、Block F、Block H、Block G。
在上述基础上,本方案可选择相邻的至少两个逻辑模块作为目标模块,即本方案可对相邻的两个逻辑模块的端口位置进行确定,例如,依照前述示例,本方案对相邻的Block H和Block G的端口位置进行确定;另外,本方案还对相邻的两个以上的逻辑模块的端口位置进行确定,例如,本方案可对相邻的Block E、Block H和Block G的端口位置进行确定,从而确定Block E与Block H之间的端口位置以及Block H与Block G之间的端口位置。其中,该目标模块的选择可通过人工选择的方式实现。
在上述实施方式中,目标模块的模块信息可包括目标模块中的执行器件以及端口,其中,该执行器件具体可为执行该目标模块对应功能所需的器件,例如,电路器件、数字逻辑门等等;该端口指的是目标模块的输入端口以及输出端口,该输出端口是用于向相邻的目标模块输出信号的端口,该输入端口是用于接收该相邻的目标模块输出的信号的端口。例如,在Block H和Block G作为目标模块基础上,该Block G的输入端口是指接收BlockH传输信号的端口,该Block G的输出端口是指向Block H输出信号的端口;同理,Block H的输入端口是指接收Block G传输信号的端口,Block H的输出端口是指向Block G输出信号的端口。
在上述实施方式中,本方案还可获取至少两个目标模块的布局限制条件,其中,该布局限制条件用于限制每个目标模块的执行器件在对应模块的第一限制区域内,以及限制每相邻两个目标模块的端口在模块连接的第二限制区域内,其中,该第一限制区域可表征的是每个目标模块的模块区域,该第二限制区域可表征的是相邻目标模块的连接区域。
如图3所示,例如,依照前述的举例,在Block H和Block G为目标模块基础上,该布局限制条件可限制Block H中的执行器件在Block H模块区域内,限制Block G中的执行器件在Block G模块区域,然后限制Block H模块和Block G模块的端口在AB虚线区域(第二限制区域)范围内。
如图4所示,再例如,在Block E、Block H和Block G为目标模块基础上,该布局限制条件可限制Block E中的执行器件在Block E模块区域内,限制Block H中的执行器件在Block H模块区域内,限制Block G中的执行器件在Block G模块区域,然后限制Block H模块和Block G模块的端口在AB虚线区域(第二限制区域)范围内,Block E模块和Block H模块的端口在CD虚线区域(第二限制区域)范围内。
在上述基础上,本方案根据至少两个目标模块的模块信息和布局限制条件确定每两个相邻模块的端口位置。
上述设计的端口位置确定方法,本方案首先获取相邻的至少两个目标模块的模块信息,然后获取至少两个目标模块的布局限制条件,最后根据至少两个目标模块的模块信息和布局限制条件确定每两个相邻模块的端口位置,由于每两个相邻模块的端口通过布局限制条件限制在模块连接的第二限制区域内,使得在对两个目标模块内的执行器件位置规划变化时,目标模块的端口位置虽然也随着执行器件位置变化而变化,但目标模块的端口始终被限制在第二限制区域内,从而在实现端口位置的自动化确定基础上,使得规划得到的端口位置为最佳端口位置,进而在极大提高端口位置确定效率,减少人力投入和工作量的基础上,也提高端口位置的确定准确性。
在本实施例的可选实施方式,作为一种可能的实施方式,对于步骤S120本方案可根据布局限制条件,将每个目标模块的执行器件限制在对应模块的第一限制区域内;以及根据布局限制条件,将每相邻两个目标模块的端口限制在模块连接的第二限制区域内,然后对至少两个目标模块进行布局规划,获得布局规划完成的每两个相邻模块的端口位置。
作为一种可能的实施方式,本方案可以通过给端口预埋锚定缓冲器的方式来确定相邻两个目标模块的端口位置,具体地,如图5所示,可包括如下步骤:
步骤S500:获取预先配置的至少一组锚定缓冲器。
步骤S510:根据布局限制条件,将每组锚定缓冲器限制在对应相邻的两个目标模块连接的第二限制区域内。
步骤S520:对每组锚定缓冲器的位置进行布局规划,获得规划完成的每组锚定缓冲器中每个锚定缓冲器的位置信息。
步骤S530:根据每组锚定缓冲器中每个锚定缓冲器的位置信息确定对应相邻两个目标模块的端口位置。
在上述实施方式中,锚定缓冲器即anchor buffer,其本身没有逻辑功能,其具有对信号施力往下传的作用,本方案可提前给每相邻两个目标模块配置一组锚定缓冲器,每组锚定缓冲器包括多个锚定缓冲器,每个锚定缓冲器与对应相邻两个目标模块的一个端口对应。
具体地,作为一种可能的实施方式,每组锚定缓冲器与对应相邻两个目标模块之中的其中一个目标模块的所有输入端口和输出端口对应。依照前述举例,在Block H和Block G为目标模块基础上,可设计一组锚定缓冲器,该组锚定缓冲器可与Block H的所有输入端口和输出端口对应,或该组锚定缓冲器可与Block G的所有输入端口和输出端口对应,其中,该组锚定缓冲器中每个锚定缓冲器可与其中一个端口对应。例如,作为一种具体的示例,Block H的输入端口包括201、202、203,Block H的输出端口包括204、205和206,在此基础上,该组锚定缓冲器可包括anchor buffer 201、anchor buffer202、anchorbuffer203、anchor buffer204、anchor buffer205、anchor buffer206,从而分别与输入端口201、202以及203、输出端口204、205以及206对应。
作为又一种示例,在Block E、Block H和Block G为目标模块基础上,本方案可设计两组锚定缓冲器,第一组锚定缓冲器可与Block E的所有输入端口和输出端口对应,第二组锚定缓冲器可与Block G的所有输入端口和输出端口对应,其中,不同组的锚定缓冲器对应不同的相邻两个目标模块。例如,作为一种具体的示例,Block E的输入端口和输出端口包括101、102、103,Block G的输入端口和输出端口包括301、302以及303,在此基础上,第一组锚定缓冲器可包括anchor buffer 101、anchor buffer102以及anchor buffer103,第二组锚定缓冲器可包括anchor buffer 201、anchor buffer202以及anchor buffer203。另外,这里需要说明的是,当端口名称类似的情况下,本方案可以模块、端口的方式来对锚定缓冲器进行命名,从而对相似名称的端口对应的锚定缓冲器进行区分。
作为又一种可能的实施方式,每组锚定缓冲器与对应相邻两个目标模块之中的其中一个目标模块的所有输入端口对应,以及与对应相邻两个目标模块之中的另一个目标模块的所有输入端口对应。例如,作为一种具体的示例,在Block H和Block G为目标模块基础上,Block H的输入端口包括201、202、203,Block G的输入端口包括301、302、303,在此基础上,该组锚定缓冲器可包括anchor buffer 201、anchor buffer202、anchor buffer203、anchor buffer301、anchor buffer302、anchor buffer303;当为三个相邻目标模块的情况也类似,在这里不再赘述。
通过上述方式,本方案以一组锚定缓冲器来表征对应相邻两个目标模块的端口,然后将该组锚定缓冲器限制在对应相邻的两个目标模块连接的第二限制区域内,例如,依照前述举例,本方案将anchor buffer 201、anchor buffer202、anchor buffer203、anchorbuffer204、anchor buffer205、anchor buffer206均限制在AB区域内。这里需要说明的是,此时的AB区域可划分在两个目标模块的连接线周围,例如,如图6所示的,连接线周围的矩形区域。
在上述基础上,本方案对每组锚定缓冲器的位置进行布局规划,具体可采用EDA工具对每组锚定缓冲器的位置进行布局规划。EDA工具可自动对相邻两个目标模块中的执行器件进行规划摆放,从而寻找出相邻两个目标模块中的执行器件的最优摆放方式,而执行器件的处于不同位置会带动对应端口的锚定缓冲器处于第二限制区域的不同位置,从而获得在EDA工具确定的执行器件最优摆放方式下,该组锚定缓冲器在第二限制区域中的位置信息,即获得规划完成的每组锚定缓冲器中每个锚定缓冲器的位置信息。这里需要说明的是,本方案除了采用EDA工具进行布局规划以外,还可以采用目前芯片设计的任何一种工具进行布局规划,其可根据实际应用场景进行适应性调整。
在获得每个锚定缓冲器的位置信息基础上,由于每个锚定缓冲器与一个端口对应,因此,即可根据每个锚定缓冲器的位置信息确定对应的端口的位置,进一步地,由于两个相邻目标模块中,其中一个目标模块的输入端口肯定与另一个目标模块的输出端口相对,因此,根据锚定缓冲器确定的端口位置即可确定相邻目标模块的对应端口位置。例如,如图6所示,本方案确定anchor buffer 201为如图6所示的位置,该anchor buffer 201与Block H模块的输入端口201对应,因此,即可确定Block H模块与anchor buffer 201相对的M位置即为该Block H模块的输入端口201的位置,与该M位置相对的Block G模块的边界位置即为该输入端口201相对于的Block G模块的输出端口位置。其中,这里需要说明的是当具有三个或三个以上相邻的目标模块时,每相邻两个目标模块的端口位置确定方式均采用上述方式,因此,在这里不再赘述。
具体地,作为一种可能的实施方式,本方案可以如图6所示的两个相邻模块的左下角为原点,从而即可获得anchor buffer 201的坐标位置,进而通过anchor buffer 201的坐标位置确定Block H模块的输入端口201的坐标位置以及Block G模块中与输入端口201相对的输出端口的位置坐标。
在本实施例的可选实施方式中,由于EDA工具在一些情况下会对锚定缓冲器进行优化,例如,在信号传输线路中一次性存在多个锚定缓冲器,EDA工具会判定不需要如此多的锚定缓冲器施力,从而会删除一些数量的锚定缓冲器从而进行优化。因此,为了防止本方案配置的锚定缓冲器被EDA工具进行优化,本方案还可在配置锚定缓冲器时,对配置的锚定缓冲器设置防优化属性,从而使得EDA工具不会对配置的锚定缓冲器进行优化,进而避免优化带来的端口位置缺失的情况。
上述设计的实施方式,本方案通过给每个端口预埋对应的锚定缓冲器,并将锚定缓冲器限制在第二限制区域内,在EDA工具优化后即可通过锚定缓冲器的位置信息来确定对应的端口的位置,从而自动化地实现端口位置的确定,提高芯片设计的端口位置的确定效率,极大地减少设计人员的工作量。
在本实施例的可选实施方式中,本方案除了通过给端口预埋锚定缓冲器的方式来确定相邻两个目标模块的端口位置以外,还可以每个端口设置对应的端口标识,从而将端口标识限制在第二限制区域内的方式实现端口位置的确定。
具体地,本方案可提前给每相邻两个目标模块的其中一个目标模块的所有输入端口和输出端口均设置对应的端口标识,不同的端口具有不同的端口标识,在此基础上,本方案也通过EDA工具对相邻两个目标模块的执行器件进行布局规划,从而在得到执行器件最优摆放位置下,端口标识的位置,而获得的端口标识的位置即为对应端口的位置。作为一种具体的示例,Block H的输入端口包括201、202、203,Block H的输出端口包括204、205和206,在此基础上,可设定端口标识Block H 201、Block H 202、Block H203、Block H 204、Block H 205、Block H 206,从而分别与输入端口201、202以及203、输出端口204、205以及206对应,后续的规划方案与前述采用锚定缓冲器的方式类似,在这里不再赘述,最后,本方案规划获得的端口标识的位置信息即为对应端口的位置。其中,这里需要说明的是当具有三个或三个以上的目标模块时,每相邻两个目标模块的端口位置确定方式均采用上述方式,因此,在这里不再赘述。
上述设计的实施方式,本方案通过给每个端口设置对应的端口标识,并将端口标识限制在第二限制区域内,在EDA工具优化后端口标识的位置信息即为对应的端口的位置,从而自动化地实现端口位置的确定,提高芯片设计的端口位置的确定效率,极大地减少设计人员的工作量。
在本实施例的可选实施方式中,本方案在获得每相邻两个模块的端口位置之后,可计算每个端口位置的端口延时,然后根据每个端口位置的端口延时确定对应端口的时序约束。具体地,在前述采用预埋的描述缓冲器方式情况下,本方案可根据计算出每个端口的信号源头到预埋的锚定缓冲器的输入,锚定缓冲器的输出到信号终点的延时,然后根据该延时计算每个信号在相邻两个目标模块的每个目标模块中的延时比例,从而根据每个目标模块的延时比例确定每个目标模块的端口时序约束,从而产生比较准确的端口时序收敛约束。
图7出示了本申请提供一种端口位置确定装置的示意性结构框图,应理解,该装置与图1和图6中执行的方法实施例对应,能够执行前述的方法涉及的步骤,该装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。该装置包括至少一个能以软件或固件(firmware)的形式存储于存储器中或固化在装置的操作系统(operatingsystem,OS)中的软件功能模块。具体地,该装置包括:获取模块700和确定模块710;该获取模块700,用于获取相邻的至少两个目标模块的模块信息;其中,该模块信息包括模块中的执行器件以及模块的端口;以及,获取至少两个目标模块的布局限制条件;其中,布局限制条件用于限制每个目标模块的执行器件在对应模块的第一限制区域内以及限制每相邻两个目标模块的端口在模块连接的第二限制区域内;该确定模块710,用于根据所述至少两个目标模块的模块信息和布局限制条件确定每相邻的两个目标模块的端口位置。
上述设计的端口位置确定装置,本方案首先获取相邻的至少两个目标模块的模块信息,然后获取至少两个目标模块的布局限制条件,最后根据至少两个目标模块的模块信息和布局限制条件确定每两个相邻模块的端口位置,由于每两个相邻模块的端口通过布局限制条件限制在模块连接的第二限制区域内,使得在对两个目标模块内的执行器件位置规划变化时,目标模块的端口位置虽然也随着执行器件位置变化而变化,但目标模块的端口始终被限制在第二限制区域内,从而在实现端口位置的自动化确定基础上,使得规划得到的端口位置为最佳端口位置,进而在极大提高端口位置确定效率,减少人力投入和工作量的基础上,也提高端口位置的确定准确性。
在本实施例的可选实施方式中,该确定模块710,具体用于根据布局限制条件,将每个目标模块的执行器件限制在对应模块的第一限制区域内;根据布局限制条件,将每相邻两个目标模块的端口限制在模块连接的第二限制区域内;对至少两个目标模块进行布局规划,获得布局规划完成的每相邻的两个目标模块的端口位置。
在本实施例的可选实施方式中,该确定模块710,还具体用于获取预先配置的至少一组锚定缓冲器;其中,每组锚定缓冲器包括多个锚定缓冲器,不同的相邻两个目标模块对应不同组锚定缓冲器,相同组的每个锚定缓冲器与对应相邻两个目标模块的一个端口对应;根据布局限制条件,将每组锚定缓冲器限制在对应相邻的两个目标模块连接的第二限制区域内。
在本实施例的可选实施方式中,该确定模块710,还具体用于对每组锚定缓冲器的位置进行布局规划,获得规划完成的每组锚定缓冲器中每个锚定缓冲器的位置信息;根据每组锚定缓冲器中每个锚定缓冲器的位置信息确定对应相邻两个目标模块的端口位置。
在本实施例的可选实施方式中,该确定模块710,还具体用于获取每相邻两个目标模块的每个端口的端口标识;其中,不同端口具有的标识不同;根据每个端口的端口标识,将每相邻两个目标模块的所有端口限制在对应模块连接的第二限制区域内。
在本实施例的可选实施方式中,该确定模块710,还具体用于对每相邻两个目标模块中的每个端口标识的位置进行布局规划,获得规划完成的每个端口标识的位置信息;根据每个端口标识的位置信息确定对应端口的位置。
在本实施例的可选实施方式中,该获取模块700,具体用于获取顶层布局规划得到的多个逻辑模块;其中,每个逻辑模块包括逻辑模块位置、大小以及逻辑模块中的执行器件和端口;根据多个逻辑模块的模块位置获取至少两个相邻的逻辑模块作为目标模块。
在本实施例的可选实施方式中,该装置还包括计算模块720,用于计算每个端口位置的端口延时;该确定模块710,还用于根据每个端口位置的延时确定对应端口的时序约束。
根据本申请的一些实施例,如图8所示,本申请提供一种电子设备8,包括:处理器801和存储器802,处理器801和存储器802通过通信总线803和/或其他形式的连接机构(未标出)互连并相互通讯,存储器802存储有处理器801可执行的计算机程序,当计算设备运行时,处理器801执行该计算机程序,以执行时执行前述实现方式中执行的方法,例如步骤S100到步骤S120:获取相邻的至少两个目标模块的模块信息;获取至少两个目标模块的布局限制条件;根据至少两个目标模块的模块信息和布局限制条件确定每两个相邻模块的端口位置。
本申请提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行前述执行的方法。
其中,存储介质可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory,简称EPROM),可编程只读存储器(Programmable Red-Only Memory,简称PROM),只读存储器(Read-OnlyMemory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
本申请提供一种计算机程序产品,该计算机程序产品在计算机上运行时,使得计算机执行前述的方法。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围,其均应涵盖在本申请的权利要求和说明书的范围当中。尤其是,只要不存在结构冲突,各个实施例中所提到的各项技术特征均可以任意方式组合起来。本申请并不局限于文中公开的特定实施例,而是包括落入权利要求的范围内的所有技术方案。
Claims (14)
1.一种端口位置确定方法,其特征在于,所述方法包括:
获取相邻的至少两个目标模块的模块信息;其中,所述模块信息包括模块中的执行器件以及模块的端口;
获取所述至少两个目标模块的布局限制条件;其中,所述布局限制条件用于限制每个目标模块的执行器件在对应模块的第一限制区域内以及限制每相邻两个目标模块的端口在模块连接的第二限制区域内;
根据所述至少两个目标模块的模块信息和布局限制条件确定每相邻的两个目标模块的端口位置。
2.根据权利要求1所述的方法,其特征在于,所述根据所述至少两个目标模块的模块信息和布局限制条件确定每相邻的两个目标模块的端口位置,包括:
根据所述布局限制条件,将每个目标模块的执行器件限制在对应模块的第一限制区域内;
根据所述布局限制条件,将每相邻两个目标模块的端口限制在模块连接的第二限制区域内;
对所述至少两个目标模块进行布局规划,获得布局规划完成的每相邻的两个目标模块的端口位置。
3.根据权利要求2所述的方法,其特征在于,所述根据所述布局限制条件将每相邻两个目标模块的端口限制在模块连接的第二限制区域内,包括:
获取预先配置的至少一组锚定缓冲器;其中,每组锚定缓冲器包括多个锚定缓冲器,不同的相邻两个目标模块对应不同组锚定缓冲器,相同组的每个锚定缓冲器与对应相邻两个目标模块的一个端口对应;
根据所述布局限制条件,将每组锚定缓冲器限制在对应相邻的两个目标模块连接的第二限制区域内。
4.根据权利要求3所述的方法,其特征在于,其中,每组锚定缓冲器与对应相邻两个目标模块之中的其中一个目标模块的所有输入端口和输出端口对应。
5.根据权利要求3所述的方法,其特征在于,其中,每组锚定缓冲器与对应相邻两个目标模块之中的其中一个目标模块的所有输入端口对应,与对应相邻两个目标模块之中的另一个目标模块的所有输入端口对应。
6.根据权利要求3所述的方法,其特征在于,所述对所述至少两个目标模块进行布局规划,获得布局规划完成的每相邻的两个目标模块的端口位置,包括:
对每组锚定缓冲器的位置进行布局规划,获得规划完成的每组锚定缓冲器中每个锚定缓冲器的位置信息;
根据每组锚定缓冲器中每个锚定缓冲器的位置信息确定对应相邻两个目标模块的端口位置。
7.根据权利要求6所述的方法,其特征在于,其中,每个锚定缓冲器均设置有防止优化的防优化属性。
8.根据权利要求2所述的方法,其特征在于,所述根据所述布局限制条件将每相邻两个目标模块的端口限制在模块连接的第二限制区域内,包括:
获取每相邻两个目标模块的每个端口的端口标识;其中,不同端口具有的标识不同;
将每相邻两个目标模块的所有端口标识限制在对应模块连接的第二限制区域内。
9.根据权利要求8所述的方法,其特征在于,所述对所述至少两个目标模块进行布局规划,获得布局规划完成的每相邻的两个目标模块的端口位置,包括:
对每相邻两个目标模块中的每个端口标识的位置进行布局规划,获得规划完成的每个端口标识的位置信息;
根据每个端口标识的位置信息确定对应端口的位置。
10.根据权利要求1-9中任一项所述的方法,其特征在于,所述获取相邻的至少两个目标模块的模块信息,包括:
获取顶层布局规划得到的多个逻辑模块;其中,每个逻辑模块包括逻辑模块位置、大小以及逻辑模块中的执行器件和端口;
根据多个逻辑模块的模块位置获取至少两个相邻的逻辑模块作为所述目标模块。
11.根据权利要求1-9中任一项所述的方法,其特征在于,在所述根据所述至少两个目标模块的模块信息和布局限制条件确定每相邻的两个目标模块的端口位置之后,所述方法还包括:
计算每个端口位置的端口延时;
根据每个端口位置的延时确定对应端口的时序约束。
12.一种端口位置确定装置,其特征在于,所述装置包括获取模块和确定模块;
所述获取模块,用于获取相邻的至少两个目标模块的模块信息;其中,所述模块信息包括模块中的执行器件以及模块的端口;以及,获取所述至少两个目标模块的布局限制条件;其中,所述布局限制条件用于限制每个目标模块的执行器件在对应模块的第一限制区域内以及限制每相邻两个目标模块的端口在模块连接的第二限制区域内;
所述确定模块,用于根据所述至少两个目标模块的模块信息和布局限制条件确定每相邻的两个目标模块的端口位置。
13.一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至11中任一项所述的方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211643793.XA CN115809633A (zh) | 2022-12-20 | 2022-12-20 | 端口位置确定方法、装置、电子设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211643793.XA CN115809633A (zh) | 2022-12-20 | 2022-12-20 | 端口位置确定方法、装置、电子设备和可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115809633A true CN115809633A (zh) | 2023-03-17 |
Family
ID=85486313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211643793.XA Pending CN115809633A (zh) | 2022-12-20 | 2022-12-20 | 端口位置确定方法、装置、电子设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115809633A (zh) |
-
2022
- 2022-12-20 CN CN202211643793.XA patent/CN115809633A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110377922B (zh) | 保持时间违例修复方法、装置及设备 | |
JP2003162556A5 (zh) | ||
US20120137263A1 (en) | Timing closure in chip design | |
CN109783956B (zh) | 基于区域划分的最大跳变时间违例修复方法及系统 | |
JP2006227762A (ja) | 半導体集積回路の設計方法、および半導体集積回路の設計装置 | |
CN109558471A (zh) | 栅格地图的更新方法、装置、存储介质和系统 | |
US7836421B2 (en) | Semiconductor layout design apparatus and method for evaluating a floorplan using distances between standard cells and macrocells | |
US8108814B2 (en) | Dummy metal insertion processing method and apparatus | |
JP5680466B2 (ja) | 並列処理システム及び並列処理システムの動作方法 | |
US8196083B1 (en) | Incremental placement and routing | |
CN115809633A (zh) | 端口位置确定方法、装置、电子设备和可读存储介质 | |
CN106650137B (zh) | 一种加速标准单元增量布局合理化的方法 | |
US8381149B2 (en) | Timing analysis apparatus, timing analysis method, and timing analysis program | |
US9965581B1 (en) | Fanout optimization to facilitate timing improvement in circuit designs | |
JP7062793B2 (ja) | 回路配線記憶方法、fpgaシステムおよび記憶媒体 | |
US8453077B2 (en) | Circuit designing method and circuit designing system | |
JPH09223744A (ja) | Vlsiチップへの回路の配置方法 | |
US10885243B1 (en) | Logic partition reporting for integrated circuit design | |
US10719654B2 (en) | Placement and timing aware wire tagging | |
US10831953B1 (en) | Logic partition identifiers for integrated circuit design | |
CN108829840B (zh) | 一种电子围栏地图构建方法及装置 | |
US6986119B2 (en) | Method of forming tree structure type circuit, and computer product | |
US20200004715A1 (en) | Information processing apparatus, control method of information processing, and non-transitory computer-readable storage medium for storing program | |
CN106443732B (zh) | 一种基于gps的路径图绘制方法和系统 | |
CN117422042B (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 |