CN114117980B - 芯片设计方法、芯片设计模块、电子设备和介质 - Google Patents
芯片设计方法、芯片设计模块、电子设备和介质 Download PDFInfo
- Publication number
- CN114117980B CN114117980B CN202210082916.0A CN202210082916A CN114117980B CN 114117980 B CN114117980 B CN 114117980B CN 202210082916 A CN202210082916 A CN 202210082916A CN 114117980 B CN114117980 B CN 114117980B
- Authority
- CN
- China
- Prior art keywords
- port
- intermediate node
- buffer
- module
- design
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/337—Design optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/02—System on chip [SoC] design
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
提供芯片设计方法、芯片设计模块、电子设备和非暂时性存储介质。芯片设计方法包括:确定在待设计芯片中的多个端口中具有连接关系的第一端口和第二端口,其中在所述第一端口处设置有与所述第一端口相连接的第一缓冲器,且在所述第二端口处设置有与所述第二端口相连的第二缓冲器;将第一中间节点和第二中间节点相连接,其中所述第一中间节点位于所述第一端口与所述第一缓冲器的连接线上,所述第二中间节点位于所述第二端口与所述第二缓冲器的连接线上;断开所述第一端口与所述第一中间节点的连接且断开所述第二端口与所述第二中间节点的连接;执行芯片后端物理设计并得到设计结果参数。
Description
技术领域
本申请涉及集成电路制造领域,且更具体地涉及芯片设计方法、芯片设计模块、电子设备和非暂时存储介质。
背景技术
随着集成电路制造工艺进入纳米级别,芯片的速度和集成度不断上升,超大规模高性能计算的芯片往往集成了数十亿计的晶体管,这就导致了数字集成电路系统的复杂性不断增加,电路设计复杂度也不断提高。对于系统级芯片而言(System-on-a-Chip,SoC),组成SOC的功能模块的种类和数量也不断增加,系统中各个模块之间的数据交互也越来越复杂。
在后端物理设计中,如何快速、高效地实现物理设计也将面临更多的挑战。
发明内容
为解决上述技术问题,本专利提出一种模块化的接口优化方案。
根据本申请的一个方面,提供一种芯片设计方法,其特征在于,所述方法包括:确定在待设计芯片中的多个端口中具有连接关系的第一端口和第二端口,其中在所述第一端口处设置有与所述第一端口相连接的第一缓冲器,且在所述第二端口处设置有与所述第二端口相连的第二缓冲器;将第一中间节点和第二中间节点相连接,其中所述第一中间节点位于所述第一端口与所述第一缓冲器的连接线上,所述第二中间节点位于所述第二端口与所述第二缓冲器的连接线上;断开所述第一端口与所述第一中间节点的连接且断开所述第二端口与所述第二中间节点的连接;执行芯片后端物理设计并得到设计结果参数。
在一个实施例中,所述第一端口和与所述第一端口相连接的电路和所述第二端口与所述第二端口相连接的电路位于第一模块中。
在一个实施例中,所述第一端口和与所述第一端口相连接的电路是从与所述第一模块不同的第二模块中复制而来的。
在一个实施例中,所述方法还包括:在等价性检查过程中,将所述第一中间节点与所述第二中间节点断开,且连接所述第一端口与所述第一中间节点且连接所述第二端口与所述第二中间节点。
在一个实施例中,所述方法还包括记录所述断开的连接关系,其中,根据所述断开的连接关系来执行如下所述步骤:在等价性检查过程中,将所述第一中间节点与所述第二中间节点断开,且连接所述第一端口 与所述第一中间节点且连接所述第二端口与所述第二中间节点。
在一个实施例中,所述方法还包括:在完成芯片设计之后,移除所述第一缓冲器和所述第二缓冲器。
在一个实施例中,所述第一缓冲器用于缓冲到达所述第一端口的数据,所述第二缓冲器用于缓冲到达所述第二端口的数据。
在一个实施例中,在与所述第一端口或第二端口相距预定距离的位置处设置有与所述第一端口或第二端口相连的所述第一缓冲器或所述第二缓冲器。
在一个实施例中,所述预定距离小于设置的最大距离。
根据本申请的另一个方面,提供一种芯片设计模块,其特征在于,所述模块包括:在待设计芯片中的多个端口中具有连接关系的第一端口和第二端口;在所述第一端口处设置有与所述第一端口相连接的第一缓冲器;在所述第二端口处设置有与所述第二端口相连的第二缓冲器。
在一个实施例中,在芯片设计过程中:将第一中间节点和第二中间节点相连接,其中所述第一中间节点位于所述第一端口与所述第一缓冲器的连接线上,所述第二中间节点位于所述第二端口与所述第二缓冲器的连接线上;断开所述第一端口与所述第一中间节点的连接且断开所述第二端口与所述第二中间节点的连接;执行芯片后端物理设计并得到设计结果参数。
在一个实施例中,所述第一端口和与所述第一端口相连接的电路和所述第二端口与所述第二端口相连接的电路位于第一模块中。
在一个实施例中,所述第一端口和与所述第一端口相连接的电路是从与所述第一模块不同的第二模块中复制而来的。
在一个实施例中,在等价性检查过程中:所述第一中间节点与所述第二中间节点断开,且所述第一端口与所述第一中间节点连接且所述第二端口与所述第二中间节点连接。
在一个实施例中,所述断开的连接关系被记录,其中,在等价性检查过程中:根据记录的所述断开的连接关系,所述第一中间节点与所述第二中间节点断开,所述第一端口与所述第一中间节点连接且所述第二端口与所述第二中间节点连接。
在一个实施例中,在完成芯片设计之后,移除所述第一缓冲器和所述第二缓冲器。
在一个实施例中,所述第一缓冲器用于缓冲到达所述第一端口的数据,所述第二缓冲器用于缓冲到达所述第二端口的数据。
在一个实施例中,在与所述第一端口或第二端口相距预定距离的位置处设置有与所述第一端口或第二端口相连的所述第一缓冲器或所述第二缓冲器。
在一个实施例中,所述预定距离小于设置的最大距离。
根据本申请的另一方面,提供一种电子设备,包括:存储器,用于存储指令;处理器,用于读取所述存储器中的指令,并执行根据本申请的各个实施例所述的方法。
根据本申请的另一方面,提供 一种非暂时存储介质,其上存储有指令,其中,所述指令在被处理器读取时,使得所述处理器执行根据本申请的各个实施例所述的方法。
根据本申请的各个实施例,提出一种模块化的接口优化方案,可以在模块内直接分析并优化跨模块路径的时序。在优化跨模块路径的同时,能够最大限度的利用接口约束,使得设计更合理。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了相关技术中芯片物理设计示意图。
图2示出了根据本公开实施例的芯片设计模块的结构的示意图。
图3A示出了根据本公开实施例的芯片设计方法的示意流程图。
图3B示出了根据本公开实施例的如图3A所示的初始化设计后的模块的方框图。
图4示出了根据本申请的实施例的芯片设计方法的流程图。
图5示出了适于用来实现本申请实施方式的示例性计算机系统的框图。
图6示出了根据本公开的实施例的非暂时性计算机可读存储介质的示意图。
具体实施方式
现在将详细参照本申请的具体实施例,在附图中例示了本申请的例子。尽管将结合具体实施例描述本申请,但将理解,不是想要将本申请限于描述的实施例。相反,想要覆盖由所附权利要求限定的在本申请的精神和范围内包括的变更、修改和等价物。应注意,这里描述的方法步骤都可以由任何功能块或功能布置来实现,且任何功能块或功能布置可被实现为物理实体或逻辑实体、或者两者的组合。
物理设计复杂度随着工艺提升而不断提高,复杂设计有多达十亿以上的晶体管。受性能驱动的设计(如CPU、显卡)电路规模不断增大,而手持移动类设计、嵌入式医疗、航天通信类产品在对功能要求提升的同时,对功耗的限制也更加严格,产品推向市场的被时间周期不断缩短,这使得对芯片的物理设计的设计效率以及一次投片成功率要求也越来越高。
芯片物理设计需要完成版图设计,而版图设计要解决的基本问题包括:决定功能模块的位置(通过布图规划(floorplan)与布局(placement)实现);在芯片规定的边界范围内将模块有效的连接起来(即,布线(routing))。由此,物理设计一般分为几个步骤,包括功能划分、布图规划、标准单元布局、时钟树综合、信号布线、时序收敛(时序约束的验证与优化)等。
具体的,对于功能模块划分的步骤,是将大的设计划分为小的子设计(即,将电路整体划分为多个模块),例如,可以按照功能进行模块划分。在相关技术的物理设计过程中,对于存在数据连接交互的两个功能模块,即便是很少量的交互逻辑也需要在对这两个的模块分别进行物理设计,并在这两个模块各自物理设计完成之后才能分析诸如接口时序等信息,这将限制芯片设计、芯片分析的效率,不必要地增加了芯片设计周期。
具体地,图1示出了相关技术中芯片物理设计示意图,如图1所示,假设模块I与模块II之间存在数据连接交互,例如,模块I中的器件FF1(flipflop,触发器)的输出端口A连接至模块II中的器件FF2的输入端口C,即存在由器件FF1至器件FF2的数据连接交互。可以理解的是,上述模块I与模块II中各自还包括其他的器件,例如,图1中示意性地示出了模块II还包括器件FF3以及端口B,以及示出了时钟CLK。换句话说,模块I与模块II中可以包括其他未示出的器件。
在相关技术中,为了实现对模块I中的器件FF1的输出端口至模块II中的器件FF2的输入端口之间的数据连接进行诸如连接时序等方面的设计分析,需要首先对模块I和模块II分别进行物理设计,得到设计后的模块I和设计后的模块II。接着,在完成模块I和模块II的物理设计之后,连接器件FF1的输出端口至器件FF2的输入端口之间的连线以进行设计分析过程。
可以将图1中示出的基于经过物理设计的模块I与经过物理设计的模块II之间的分析过程称为顶层分析设计。在相关技术中的这种顶层分析设计过程中,由于是在这两个模块各自物理设计完成之后才进行分析诸如接口时序等信息,这将限制芯片设计的效率。作为示例,假如在各自物理设计完成之后分析以上FF1与FF2的接口时序时发现存在设计缺陷,则需要重新调整模块I以及模块II的物理设计,这必然增加芯片设计时间。另外,跨模块I和II的接口的时序设计受过多的约束,但这是不必要的。
为解决以上描述的技术问题,本公开的一些实施例提供了一种芯片设计方法,用于提高物理设计的设计效率和设计质量,可以在模块内直接分析并优化跨模块路径的时序。在优化跨模块路径的同时,能够最大限度地利用接口约束,使得设计更合理。具体地,在本文中涉及的芯片泛指各种类型的集成电路结构,诸如微处理器、存储器、逻辑器件、模拟器件等,在此不作限制。可以理解的是,除非另有定义,本文中使用的所有术语具有与本公开所属领域的普通技术人员共同理解的相同含义。
为了更清楚地说明根据本公开实施例的芯片设计方法的技术方案,提供图2,用于示出根据本公开实施例的芯片设计模块210的结构的示意图。
该模块210包括:在待设计芯片中的多个端口中具有连接关系的第一端口211和第二端口212,例如图2中的端口A和端口C;在第一端口211处设置有与第一端口211相连接的第一缓冲器221;在第二端口212处设置有与第二端口212相连的第二缓冲器222。
其中,这里的具有“连接关系”的各个端口可以在顶层设计时事先确定并记录从而设计该模块210中的各个端口。
当然,在该模块210中还可以包括与第一端口211和第一缓冲器221相连接的第一触发器231,在图2中示意地示出了一个第一触发器231,但是实际上还可以包括其他触发器或器件,在此不做限制。在该模块210中还可以包括与第二端口212和第二缓冲器222相连接的第二触发器232,在图2中示意地示出了一个第二触发器232,但是实际上还可以包括其他触发器或器件,在此不做限制。
当然,如图2所示的整体物理设计模块的示意图中还可以包括两个或多个设计模块,每个设计模块都包含与相邻设计模块连接的端口,有些设计模块之间有着复用性,同时模块之间也存在某种逻辑连接关系。
图2的这种芯片设计模块210的目的是将例如图1所示的原本是跨模块相连接的两个芯片、芯片I和芯片II之间的两个端口A和C相连接的连接关系、转换为如图2所示的在一个模块内部的两个端口相连接的两个缓冲器之间的连接关系。
如此,可以使得后续进行物理设计时,将原本的模块的外部端口之间的路径变为同一模块内的端口相连接的缓冲器之间的路径,利用了模块内部的路径的更高的优化权重,使得能够在完成物理设计之后最大限度地优化了原本的模块的外部端口之间的路径的时序。
也就是说,第一端口211和与第一端口211相连接的电路231(例如触发器231)和第二端口212与第二端口212相连接的电路232(例如触发器232)位于第一模块210中,而不是分别位于两个单独的模块中(如图1所示的那样)。
在一个实施例中,第一端口 211和与第一端口 211相连接的电路231是从与第一模块210不同的第二模块250中复制而来的,例如,从图2所示的芯片II中的端口251以及触发器FF1 271复制而来。当然,图2所示的第二模块250也可以包括缓冲器261。
如此,复用多个设计模块,一个设计模块与另一设计模块之间的路径可以完全在同一个设计模块中解决,即,使得两个设计模块及其芯片接口的芯片设计可以在同一设计模块内一次性完成,提高了芯片设计的效率。
在本实施例中,复制之后,还对第一端口211和第二端口 212添加了2个缓冲器,以用于缓冲到达端口的数据。具体地,第一缓冲器221用于缓冲到达第一端口211的数据,第二缓冲器222用于缓冲到达第二端口212的数据。
其中在与第一端口或第二端口相距预定距离的位置处设置有与第一端口或第二端口相连的第一缓冲器或第二缓冲器。预定距离小于设置的最大距离。该预定距离可以被设置得使得缓冲器与相连接的端口靠近。最好缓冲器与端口的距离是固定的。这样可以尽可能少地避免端口与缓冲器之间的线的物理特性导致后续的物理设计不准确的情况。也就是说,设计缓冲器的目的可以让缓冲器缓存的数据尽可能地与相应的端口处的数据情况相同。
图2还示出了其他端口B、D和缓冲器以及触发器FF3和FF4,其操作方式和特点可以与上述端口A、C和缓冲器以及触发器FF1和FF2类似,在此不详细描述。
以下将结合图3A和图3B来描述根据本公开实施例的芯片设计方法的实施过程。图3A示出了根据本公开实施例的芯片设计方法的示意流程图,图3B示出了根据本公开实施例的如图3A所示的初始化设计后的模块的方框图。
如图3A所示,模块设计流程300开始。在步骤310处,进行初始化设计。
在此,在步骤311处,可以事先分析顶层设计,以便确定具有连接关系的各个端口。在此,可以在分析顶层关系之后将具有连接关系的端口及其相连接的电路从各个模块中复制到同一模块中。也可以记录具有连接关系的各个端口,以便在将具有连接关系的端口及其相连接的电路从各个模块中复制到同一模块中根据记录的连接关系确定后续的连接相应的缓冲器等步骤。
在步骤312处,在具有连接关系的端口处插入缓冲器,且断开端口与缓冲器之间的连接,记录被断开的连接关系,同时连接各个缓冲器,如此取消部分接口约束。
具体地,图3B示出了从图2演变而来的仅第一模块210以及其中的第一端口 211和第二端口212;第一缓冲器221和第二缓冲器222;第一触发器231和第二触发器232。第一中间节点X1位于第一端口211与第一缓冲器221的连接线上,第二中间节点X2位于第二端口212与第二缓冲器222的连接线上。
如图3A所示,在芯片设计过程的步骤312中:将第一中间节点X1和第二中间节点X2相连接;断开第一端口211与第一中间节点X1的连接和第二端口212与第二中间节点X2的连接。
注意,上述的“连接”可以根据前述的端口与端口之间的“连接关系”来进行。上述的“断开”步骤也可以被通过脚本文件来记录,以便后续在需要的时候恢复被断开的连接关系。例如,断开第一端口211与第一中间节点X1的连接和第二端口212与第二中间节点X2的连接之后,将会改变设计原有的逻辑,逻辑等价性检查会失败。而如果用脚本文件记录断开的连接关系,可以在做等价性检查的时候,还原被断开的连接,保证设计操作前后逻辑等价性一致。
另外,由于在将第一中间节点X1和第二中间节点X2相连接且断开第一端口211与第一中间节点X1的连接和第二端口212与第二中间节点X2的连接之后,将原本的模块的外部端口之间的路径变为同一模块内的端口相连接的缓冲器之间的路径,利用了模块内部的路径的更高的优化权重,使得能够在完成物理设计之后最大限度地优化了原本的模块的外部端口之间的路径的时序。
然后,如图3A所示,在将第一中间节点X1和第二中间节点X2相连接且断开第一端口211与第一中间节点X1的连接且断开第二端口212与第二中间节点X2的连接之后,继续执行芯片后端物理设计的布图规划步骤320、时钟树综合步骤330、绕线步骤340、优化步骤350并得到设计结果参数。
这里的芯片后端物理设计的流程主要包括但不仅限于以下几个步骤:布图规划、时钟树综合、绕线、优化,为了让设计更快满足时序要求,设计师会在物理设计的各个流程上加不同的约束条件,针对不同的时序路径也有不同的优化权重。
在图3B中,端口 211到触发器FF1 231的时序路径可被定义为in2reg,称为输入接口路径;而触发器FF2 232到第二端口 212的时序路径可被定义为reg2out,称为输出接口路径;触发器FFx到FFy(x、y取1、2、3或4,或在其他实施例中,取其他数值)的时序路径可被定义为reg2reg,称为内部路径;其中在PR物理设计中,通常reg2reg的内部路径的优化权重大于in2reg或reg2out的优化权重,而in2reg和reg2out的优化权重一样。
由于将原本的模块的外部端口之间的路径(in2reg、reg2out)变为同一模块内的端口相连接的缓冲器之间的路径(reg2reg),提升了这种路径的优化权重,使得能够在完成物理设计之后最大限度地优化了原本的模块的外部端口之间的路径的时序。而且,放松in2reg或reg2out约束,能够使得布线设计更合理,因为在布线设计中并非所有端口都需要约束这么严,尤其是in2reg或reg2out的端口约束。
另外,在芯片物理设计中,所有输入/输出延时可以被约束为时钟周期的50%,或被约束为固定的约束值,本实施例中可以由工具根据时序结果来自由调整,充分利用设计资源。
步骤320、330、340、350均可以采用现有技术中已有的芯片物理设计方式,因此,在此不详细描述。
在步骤360中,在等价性检查过程中,可以根据先前记录的被断开的连接关系来还原这些连接关系,即将第一中间节点与第二中间节点断开,且第一端口与第一中间节点连接且第二端口与第二中间节点连接,以保证设计操作前后逻辑等价性一致。在完成芯片设计之后,也可以移除第一缓冲器和第二缓冲器,以便在实际流片时不会包括芯片设计时为了设计而加入的缓冲器。
当然,上述说明的各个步骤可以根据实际芯片设计中增加一些步骤或减少或简化一些步骤。
根据本申请的各个实施例,提出一种模块化的接口优化方案,可以在模块内直接分析并优化跨模块路径的时序。在优化跨模块路径的同时,能够最大限度的利用接口约束,使得设计更合理,其具体特点包括:与端口相连的缓冲器被固定在接口附近,此操作可以保证跨模块的路径不被改变;断开连接的同时可以用脚本文件记录原有连接关系,使得还原操作简单,方便,不出错;原来的接口路径变为内部路径,优化权重提升,带入芯片设计中,完成芯片设计,可以最大限度的优化跨模块路径的时序;所有输入/输出延时约束可以设置为时钟周期的50%,或约束为固定的约束值,可以由工具根据时序结果来自由调整,充分利用设计资源;放松in2reg或reg2out约束,使得设计更合理,因为在设计中并非所有端口都需要约束这么严;复用多个设计模块,一个设计模块与另一设计模块之间的路径可以完全在同一个设计模块中解决,即,使得两个设计模块及其芯片接口的芯片设计可以在同一设计模块内一次性完成,提高了芯片设计的效率。
图4示出了根据本申请的实施例的芯片设计方法的流程图。
如图4所示的芯片设计方法400包括:步骤401,确定在待设计芯片中的多个端口中具有连接关系的第一端口和第二端口,其中在第一端口处设置有与第一端口相连接的第一缓冲器,且在第二端口处设置有与第二端口相连的第二缓冲器;步骤402,将第一中间节点和第二中间节点相连接,其中第一中间节点位于第一端口与第一缓冲器的连接线上,第二中间节点位于第二端口与第二缓冲器的连接线上;步骤403,断开第一端口与第一中间节点的连接且断开第二端口与第二中间节点的连接;步骤404,执行芯片后端物理设计并得到设计结果参数。
如此,可以使得后续进行物理设计时,将原本的模块的外部端口之间的路径变为同一模块内的端口相连接的缓冲器之间的路径,利用了模块内部的路径的更高的优化权重,使得能够在完成物理设计之后最大限度地优化了原本的模块的外部端口之间的路径的时序。
在一个实施例中,第一端口和与第一端口相连接的电路和第二端口与第二端口相连接的电路位于第一模块中。
在一个实施例中,第一端口和与第一端口相连接的电路是从与第一模块不同的第二模块中复制而来的。
如此,复用多个设计模块,一个设计模块与另一设计模块之间的路径可以完全在同一个设计模块中解决,即,使得两个设计模块及其芯片接口的芯片设计可以在同一设计模块内一次性完成,提高了芯片设计的效率。
在一个实施例中,方法400还包括:在等价性检查过程中,将第一中间节点与第二中间节点断开,且连接第一端口与第一中间节点且连接第二端口与第二中间节点。
在一个实施例中,方法400还包括记录断开的连接关系,其中,根据断开的连接关系来执行如下步骤:在等价性检查过程中,将第一中间节点与第二中间节点断开,且连接第一端口与第一中间节点且连接第二端口与第二中间节点。
如此可以在做等价性检查的时候,还原被断开的连接,保证设计操作前后逻辑等价性一致。
在一个实施例中,方法400还包括:在完成芯片设计之后,移除第一缓冲器和第二缓冲器。
在一个实施例中,第一缓冲器用于缓冲到达第一端口的数据,第二缓冲器用于缓冲到达第二端口的数据。
在一个实施例中,在与第一端口或第二端口相距预定距离 的位置处设置有与第一端口或第二端口相连的第一缓冲器或第二缓冲器。
在一个实施例中,预定距离小于设置的最大距离。
这样可以尽可能少地避免端口与缓冲器之间的线的物理特性导致后续的物理设计不准确的情况。也就是说,设计缓冲器的目的可以让缓冲器缓存的数据尽可能地与相应的端口处的数据情况相同。
根据本申请的各个实施例,提出一种模块化的接口优化方案,可以在模块内直接分析并优化跨模块路径的时序。在优化跨模块路径的同时,能够最大限度的利用接口约束,使得设计更合理,其具体特点包括:与端口相连的缓冲器被固定在接口附近,此操作可以保证跨模块的路径不被改变;断开连接的同时可以用脚本文件记录原有连接关系,使得还原操作简单,方便,不出错;原来的接口路径变为内部路径,优化权重提升,带入芯片设计中,完成芯片设计,可以最大限度的优化跨模块路径的时序;所有输入/输出延时约束可以设置为时钟周期的50%,或约束为固定的约束值,可以由工具根据时序结果来自由调整,充分利用设计资源;放松in2reg或reg2out约束,使得设计更合理,因为在设计中并非所有端口都需要约束这么严;复用多个设计模块,一个设计模块与另一设计模块之间的路径可以完全在同一个设计模块中解决,即,使得两个设计模块及其芯片接口的芯片设计可以在同一设计模块内一次性完成,提高了芯片设计的效率。
图5示出了适于用来实现本申请实施方式的示例性计算机系统的框图。
计算机系统可以包括处理器(H1);存储介质(H2),耦合于处理器(H1),且在其中存储计算机可执行指令,用于在由处理器执行时进行本申请的实施例的各个方法的步骤。
处理器(H1)可以包括但不限于例如一个或者多个处理器或者或微处理器等。
存储介质(H2)可以包括但不限于例如,随机存取存储器(RAM)、只读存储器(ROM)、快闪存储器、EPROM存储器、EEPROM存储器、寄存器、计算机存储介质(例如硬碟、软碟、固态硬盘、可移动碟、CD-ROM、DVD-ROM、蓝光盘等)。
除此之外,该计算机系统还可以包括数据总线(H3)、输入/输出(I/O)总线(H4),显示器(H5)以及输入/输出设备(H6)(例如,键盘、鼠标、扬声器等)等。
处理器(H1)可以通过I/O总线(H4)经由有线或无线网络(未示出)与外部设备(H5、H6等)通信。
存储介质(H2)还可以存储至少一个计算机可执行指令,用于在由处理器(H1)运行时执行本技术所描述的实施例中的各个功能和/或方法的步骤。
在一个实施例中,该至少一个计算机可执行指令也可以被编译为或组成一种软件产品,其中一个或多个计算机可执行指令被处理器运行时执行本技术所描述的实施例中的各个功能和/或方法的步骤。
图6示出了根据本公开的实施例的非暂时性计算机可读存储介质的示意图。
如图6所示,计算机可读存储介质620上存储有指令,指令例如是计算机可读指令610。当计算机可读指令610由处理器运行时,可以执行参照以上描述的各个方法。计算机可读存储介质包括但不限于例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。例如,计算机可读存储介质620可以连接于诸如计算机等的计算设备,接着,在计算设备运行计算机可读存储介质620上存储的计算机可读指令610的情况下,可以进行如上描述的各个方法。
当然,上述的具体实施例仅是例子而非限制,且本领域技术人员可以根据本申请的构思从上述分开描述的各个实施例中合并和组合一些步骤和装置来实现本申请的效果,这种合并和组合而成的实施例也被包括在本申请中,在此不一一描述这种合并和组合。
注意,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
本公开中的步骤流程图以及以上方法描述仅作为例示性的例子并且不意图要求或暗示必须按照给出的顺序进行各个实施例的步骤。如本领域技术人员将认识到的,可以按任意顺序进行以上实施例中的步骤的顺序。诸如“其后”、“然后”、“接下来”等等的词语不意图限制步骤的顺序;这些词语仅用于引导读者通读这些方法的描述。此外,例如使用冠词“一个”、“一”或者“该”对于单数的要素的任何引用不被解释为将该要素限制为单数。
另外,本文中的各个实施例中的步骤和装置并非仅限定于某个实施例中实行,事实上,可以根据本申请的概念来结合本文中的各个实施例中相关的部分步骤和部分装置以构思新的实施例,而这些新的实施例也包括在本申请的范围内。
以上描述的方法的各个操作可以通过能够进行相应的功能的任何适当的手段而进行。该手段可以包括各种硬件和/或软件组件和/或模块,包括但不限于硬件的电路、专用集成电路(ASIC)或处理器。
可以利用被设计用于进行在此描述的功能的通用处理器、数字信号处理器(DSP)、ASIC、场可编程门阵列信号(FPGA)或其他可编程逻辑器件(PLD)、离散门或晶体管逻辑、离散的硬件组件或者其任意组合而实现或进行描述的各个例示的逻辑块、模块和电路。通用处理器可以是微处理器,但是作为替换,该处理器可以是任何商业上可获得的处理器、控制器、微控制器或状态机。处理器还可以实现为计算设备的组合,例如DSP和微处理器的组合,多个微处理器、与DSP核协作的微处理器或任何其他这样的配置。
结合本公开描述的方法或算法的步骤可以直接嵌入在硬件中、处理器执行的软件模块中或者这两种的组合中。软件模块可以存在于任何形式的有形存储介质中。可以使用的存储介质的一些例子包括随机存取存储器(RAM)、只读存储器(ROM)、快闪存储器、EPROM存储器、EEPROM存储器、寄存器、硬碟、可移动碟、CD-ROM等。存储介质可以耦接到处理器以便该处理器可以从该存储介质读取信息以及向该存储介质写信息。在替换方式中,存储介质可以与处理器是整体的。软件模块可以是单个指令或者许多指令,并且可以分布在几个不同的代码段上、不同的程序之间以及跨过多个存储介质。
在此公开的方法包括用于实现描述的方法的动作。方法和/或动作可以彼此互换而不脱离权利要求的范围。换句话说,除非指定了动作的具体顺序,否则可以修改具体动作的顺序和/或使用而不脱离权利要求的范围。
上述功能可以按硬件、软件、固件或其任意组合而实现。如果以软件实现,功能可以作为指令存储在切实的计算机可读介质上。存储介质可以是可以由计算机访问的任何可用的切实介质。通过例子而不是限制,这样的计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光碟存储、磁碟存储或其他磁存储器件或者可以用于携带或存储指令或数据结构形式的期望的程序代码并且可以由计算机访问的任何其他切实介质。如在此使用的,碟(disk)和盘(disc)包括紧凑盘(CD)、激光盘、光盘、数字通用盘(DVD)、软碟和蓝光盘,其中碟通常磁地再现数据,而盘利用激光光学地再现数据。
因此,计算机程序产品可以进行在此给出的操作。例如,这样的计算机程序产品可以是具有有形存储(和/或编码)在其上的指令的计算机可读的有形介质,该指令可由处理器执行以进行在此描述的操作。计算机程序产品可以包括包装的材料。
软件或指令也可以通过传输介质而传输。例如,可以使用诸如同轴电缆、光纤光缆、双绞线、数字订户线(DSL)或诸如红外、无线电或微波的无线技术的传输介质从网站、服务器或者其他远程源传输软件。
此外,用于进行在此描述的方法和技术的模块和/或其他适当的手段可以在适当时由用户终端和/或基站下载和/或其他方式获得。例如,这样的设备可以耦接到服务器以促进用于进行在此描述的方法的手段的传送。或者,在此描述的各种方法可以经由存储部件(例如RAM、ROM、诸如CD或软碟等的物理存储介质)提供,以便用户终端和/或基站可以在耦接到该设备或者向该设备提供存储部件时获得各种方法。此外,可以利用用于将在此描述的方法和技术提供给设备的任何其他适当的技术。
其他例子和实现方式在本公开和所附权利要求的范围和精神内。例如,由于软件的本质,以上描述的功能可以使用由处理器、硬件、固件、硬连线或这些的任意的组合执行的软件实现。实现功能的特征也可以物理地位于各个位置,包括被分发以便功能的部分在不同的物理位置处实现。而且,如在此使用的,包括在权利要求中使用的,在以“至少一个”开始的项的列举中使用的“或”指示分离的列举,以便例如“A、B或C的至少一个”的列举意味着A或B或C,或AB或AC或BC,或ABC(即A和B和C)。此外,措辞“示例的”不意味着描述的例子是优选的或者比其他例子更好。
可以不脱离由所附权利要求定义的教导的技术而进行对在此描述的技术的各种改变、替换和更改。此外,本公开的权利要求的范围不限于以上描述的处理、机器、制造、事件的组成、手段、方法和动作的具体方面。可以利用与在此描述的相应方面进行基本相同的功能或者实现基本相同的结果的当前存在的或者稍后要开发的处理、机器、制造、事件的组成、手段、方法或动作。因而,所附权利要求包括在其范围内的这样的处理、机器、制造、事件的组成、手段、方法或动作。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (20)
1.一种芯片设计方法,其特征在于,所述方法包括:
确定在待设计芯片中的多个端口中具有连接关系的第一端口和第二端口,其中在所述第一端口处设置有与所述第一端口相连接的第一缓冲器,且在所述第二端口处设置有与所述第二端口相连的第二缓冲器;
将第一中间节点和第二中间节点相连接,其中所述第一中间节点位于所述第一端口与所述第一缓冲器的连接线上,所述第二中间节点位于所述第二端口与所述第二缓冲器的连接线上;
断开所述第一端口与所述第一中间节点的连接且断开所述第二端口与所述第二中间节点的连接;
执行芯片后端物理设计并得到设计结果参数。
2.根据权利要求1所述的方法,其特征在于,所述第一端口和与所述第一端口相连接的电路和所述第二端口与所述第二端口相连接的电路位于第一模块中。
3.根据权利要求2所述的方法,其特征在于,其中所述第一端口和与所述第一端口相连接的电路是从与所述第一模块不同的第二模块中复制而来的。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:在等价性检查过程中,将所述第一中间节点与所述第二中间节点断开,且连接所述第一端口与所述第一中间节点且连接所述第二端口与所述第二中间节点。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括记录断开的连接关系,其中,根据所述断开的连接关系来执行如下步骤:在等价性检查过程中,将所述第一中间节点与所述第二中间节点断开,且连接所述第一端口与所述第一中间节点且连接所述第二端口与所述第二中间节点。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:在完成芯片设计之后,移除所述第一缓冲器和所述第二缓冲器。
7.根据权利要求1所述的方法,其特征在于,其中所述第一缓冲器用于缓冲到达所述第一端口的数据,所述第二缓冲器用于缓冲到达所述第二端口的数据。
8.根据权利要求1所述的方法,其特征在于,其中在与所述第一端口或第二端口相距预定距离的位置处设置有与所述第一端口或第二端口相连的所述第一缓冲器或所述第二缓冲器。
9.根据权利要求8所述的方法,其特征在于,所述预定距离小于设置的最大距离。
10.一种芯片设计模块,其特征在于,所述模块包括:
在待设计芯片中的多个端口中具有连接关系的第一端口和第二端口;
在所述第一端口处设置有与所述第一端口相连接的第一缓冲器;
在所述第二端口处设置有与所述第二端口相连的第二缓冲器,
其中,在芯片设计过程中:
将第一中间节点和第二中间节点相连接,其中所述第一中间节点位于所述第一端口与所述第一缓冲器的连接线上,所述第二中间节点位于所述第二端口与所述第二缓冲器的连接线上;
断开所述第一端口与所述第一中间节点的连接且断开所述第二端口与所述第二中间节点的连接;
执行芯片后端物理设计并得到设计结果参数。
11.根据权利要求10所述的模块,其特征在于,所述第一端口和与所述第一端口相连接的电路和所述第二端口与所述第二端口相连接的电路位于第一模块中。
12.根据权利要求11所述的模块,其特征在于,其中所述第一端口和与所述第一端口相连接的电路是从与所述第一模块不同的第二模块中复制而来的。
13.根据权利要求11所述的模块,其特征在于,在等价性检查过程中:所述第一中间节点与所述第二中间节点断开,且所述第一端口与所述第一中间节点连接且所述第二端口与所述第二中间节点连接。
14.根据权利要求10所述的模块,其特征在于,所述断开的连接关系被记录,其中,在等价性检查过程中:根据记录的所述断开的连接关系,所述第一中间节点与所述第二中间节点断开,所述第一端口与所述第一中间节点连接且所述第二端口与所述第二中间节点连接。
15.根据权利要求10所述的模块,其特征在于,其中,在完成芯片设计之后,移除所述第一缓冲器和所述第二缓冲器。
16.根据权利要求10所述的模块,其特征在于,其中所述第一缓冲器用于缓冲到达所述第一端口的数据,所述第二缓冲器用于缓冲到达所述第二端口的数据。
17.根据权利要求10所述的模块,其特征在于,其中在与所述第一端口或第二端口相距预定距离的位置处设置有与所述第一端口或第二端口相连的所述第一缓冲器或所述第二缓冲器。
18.根据权利要求17所述的模块,其特征在于,所述预定距离小于设置的最大距离。
19.一种电子设备,包括:
存储器,用于存储指令;
处理器,用于读取所述存储器中的指令,并执行如权利要求1-9中任一项所述的方法。
20.一种非暂时存储介质,其上存储有指令,
其中,所述指令在被处理器读取时,使得所述处理器执行如权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210082916.0A CN114117980B (zh) | 2022-01-25 | 2022-01-25 | 芯片设计方法、芯片设计模块、电子设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210082916.0A CN114117980B (zh) | 2022-01-25 | 2022-01-25 | 芯片设计方法、芯片设计模块、电子设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114117980A CN114117980A (zh) | 2022-03-01 |
CN114117980B true CN114117980B (zh) | 2022-06-07 |
Family
ID=80360818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210082916.0A Active CN114117980B (zh) | 2022-01-25 | 2022-01-25 | 芯片设计方法、芯片设计模块、电子设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114117980B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1278933A (zh) * | 1997-11-17 | 2001-01-03 | 西加特技术有限责任公司 | 采用crc用于芯片上存储器中数据完整性的方法和装置 |
CN107544934A (zh) * | 2017-09-07 | 2018-01-05 | 龙迅半导体(合肥)股份有限公司 | 一种USB Type‑C线缆的双向信号调节芯片及USB Type‑C线缆 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2373595B (en) * | 2001-03-15 | 2005-09-07 | Italtel Spa | A system of distributed microprocessor interfaces toward macro-cell based designs implemented as ASIC or FPGA bread boarding and relative common bus protocol |
US7420835B2 (en) * | 2006-11-30 | 2008-09-02 | Taiwan Semiconductor Manufacturing Co. Ltd. | Single-port SRAM with improved read and write margins |
CN101227297B (zh) * | 2007-12-21 | 2010-06-02 | 清华大学 | 用于设计片上网络的一种服务质量保证方法 |
CN104598405B (zh) * | 2015-02-03 | 2018-05-11 | 杭州士兰控股有限公司 | 扩展芯片及可扩展的芯片系统及控制方法 |
CN105846809B (zh) * | 2016-03-24 | 2019-05-14 | 深圳市明微电子股份有限公司 | 一种缓冲电路及缓冲芯片 |
CN109905306B (zh) * | 2019-01-30 | 2021-05-18 | 北京深蓝同创科技有限公司 | 一种低成本多主总线通信控制系统 |
CN110555269B (zh) * | 2019-09-02 | 2023-04-18 | 飞腾信息技术有限公司 | 片上系统的顶层时钟树结构 |
CN111221752B (zh) * | 2020-01-02 | 2021-07-23 | 飞腾信息技术有限公司 | 一种soc中模块接口时序的优化方法 |
CN213635383U (zh) * | 2020-12-24 | 2021-07-06 | 芯天下技术股份有限公司 | 一种电荷泵电路及flash芯片 |
-
2022
- 2022-01-25 CN CN202210082916.0A patent/CN114117980B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1278933A (zh) * | 1997-11-17 | 2001-01-03 | 西加特技术有限责任公司 | 采用crc用于芯片上存储器中数据完整性的方法和装置 |
CN107544934A (zh) * | 2017-09-07 | 2018-01-05 | 龙迅半导体(合肥)股份有限公司 | 一种USB Type‑C线缆的双向信号调节芯片及USB Type‑C线缆 |
Also Published As
Publication number | Publication date |
---|---|
CN114117980A (zh) | 2022-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10146897B1 (en) | Multi-mode multi-corner clocktree synthesis | |
US8291358B2 (en) | Synchronous to asynchronous logic conversion | |
US8793630B2 (en) | Clock tree planning for an ASIC | |
US20090217225A1 (en) | Multi-mode multi-corner clocktree synthesis | |
WO2012010934A1 (en) | Method for optimising cell variant selection within a design process for an integrated circuit device | |
Gibiluka et al. | A bundled-data asynchronous circuit synthesis flow using a commercial EDA framework | |
CN112906338B (zh) | 对物理分区结构进行时钟设计的方法、系统和介质 | |
EP4071659A1 (en) | Method, system, medium, and program product for path verification in logic circuit | |
JP4918934B2 (ja) | 半導体集積回路の遅延解析装置及び遅延解析方法並びにそのプログラム | |
CN114117980B (zh) | 芯片设计方法、芯片设计模块、电子设备和介质 | |
US20160301414A1 (en) | Dynamic Interconnect with Partitioning on Emulation and Protyping Platforms | |
TWI813401B (zh) | 靜態時序分析方法及靜態時序分析系統 | |
JP4361838B2 (ja) | Lsi設計方法 | |
Quinton et al. | Practical asynchronous interconnect network design | |
US8336013B2 (en) | Determining an order for visiting circuit blocks in a circuit design for fixing design requirement violations | |
Semba et al. | Conversion from synchronous RTL models to asynchronous RTL models | |
Davidson et al. | Dynamic Circuit Specialisation for Key‐Based Encryption Algorithms and DNA Alignment | |
JP2005136286A (ja) | 半導体集積回路の設計方法、及びその装置 | |
US9235673B2 (en) | Apparatus for and a method of making a hierarchical integrated circuit design of an integrated circuit design, a computer program product and a non-transitory tangible computer readable storage medium | |
Vij | Algorithms and methodology to design asynchronous circuits using synchronous CAD tools and flows | |
JP5338919B2 (ja) | 集積回路の消費電力算出方法、消費電力算出プログラム及び消費電力算出装置 | |
JP2006338090A (ja) | 半導体集積回路の設計方法および設計装置 | |
US10977408B1 (en) | Systems and methods of concurrent placement of input-output pins and internal components in an integrated circuit design | |
US10331835B2 (en) | ASIC design methodology for converting RTL HDL to a light netlist | |
CN113361084B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |