CN115129641B - 双向互联总线延时调整方法、电子设备和介质 - Google Patents
双向互联总线延时调整方法、电子设备和介质 Download PDFInfo
- Publication number
- CN115129641B CN115129641B CN202210674663.6A CN202210674663A CN115129641B CN 115129641 B CN115129641 B CN 115129641B CN 202210674663 A CN202210674663 A CN 202210674663A CN 115129641 B CN115129641 B CN 115129641B
- Authority
- CN
- China
- Prior art keywords
- delay
- module
- information
- identification
- interconnection
- 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
- 238000000034 method Methods 0.000 title claims abstract description 57
- 230000002457 bidirectional effect Effects 0.000 title claims abstract description 44
- 230000000977 initiatory effect Effects 0.000 claims description 40
- 230000008569 process Effects 0.000 claims description 19
- 230000008521 reorganization Effects 0.000 claims description 9
- 239000000758 substrate Substances 0.000 claims 2
- 238000013461 design Methods 0.000 abstract description 19
- 230000005540 biological transmission Effects 0.000 abstract description 6
- 239000000470 constituent Substances 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000003780 insertion Methods 0.000 description 4
- 230000037431 insertion Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 239000003999 initiator Substances 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000006798 recombination Effects 0.000 description 3
- 238000005215 recombination Methods 0.000 description 3
- 230000008054 signal transmission Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000001934 delay Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012552 review Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/10—Distribution of clock signals, e.g. skew
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
-
- 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
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明涉及一种双向互联总线延时调整方法、电子设备和介质步骤E1、获取芯片设计中的第一模块和第二模块之间的双向互联总线Bundlei={L1 i,L2 i,…LiX i,S1 i,S2 i,…SiY i};步骤E2、在所述第一模块和第二模块之间***第一延时模块和第二延时模块,当所述第一模块向所述第二模块传输第一信号时,所述第一信号沿L1 i,L2 i,…LiX i穿过所述第一延时模块与所述第二模块通信;当所述第二模块向所述第一模块向传输第二信号时,所述第二信号沿S1 i,S2 i,…SiY i穿过所述第二延时模块与所述第一模块通信。本发明实现对双向互联总线的延时调整,避免出现错乱,且在进行物理互联时,可以根据每一传输方向上的具体情况对延时模块进行拆分,提高了物理互联的灵活性。
Description
技术领域
本发明涉及芯片设计技术领域,尤其涉及一种双向互联总线延时调整方法、电子设备和介质。
背景技术
在芯片设计过程中,需要先建立好模块之间的逻辑互联关系,再基于逻辑互联关系建立物理连接。由于布局布线方式的不同,不同模块之间不同连线之间的距离和类型均可能存在差异,尤其是在距离过长时,直接按照逻辑互联的方式建立模块之间的连接,会影响两个互联模块之间的时序(timing)性能,因此通常需要在互联的两个模块之间***一些延时模块,来优化两个互联模块之间的时序。但是,由于现有技术中是基于RTL级别的处理来实现延时模块的***,导致处理过程复杂、效率低、易出错、灵活性差。此外,随着芯片规模越来越大,这种方法显然不会用于大规模芯片设计,且一旦需要更改延时模块,还需要在对应部分的RTL中逐个更改,导致芯片设计效率低。
发明内容
本发明目的在于,提供一种双向互联总线延时调整方法、电子设备和介质
根据本发明第一方面,提供了一种双向互联总线延时调整方法,包括:
步骤E1、获取芯片设计中的第一模块和第二模块之间的双向互联总线Bundlei={L1 i,L2 i,…LiX i,S1 i,S2 i,…SiY i},i为1到N中的一个值,N为第一模块和第二模块之间总线总数,Lx i为第x个以第一模块为发起端以第二模块为接收端的连接线,x的取值范围为1到iX,Sy i为第y个以第二模块为发起端以第一模块为接收端的连接线,y的取值范围为1到iY;
步骤E2、在所述第一模块和第二模块之间***第一延时模块和第二延时模块,当所述第一模块向所述第二模块传输第一信号时,所述第一信号沿L1 i,L2 i,…LiX i穿过所述第一延时模块与所述第二模块通信;当所述第二模块向所述第一模块向传输第二信号时,所述第二信号沿S1 i,S2 i,…SiY i穿过所述第二延时模块与所述第一模块通信。
根据本发明第二方面,提供一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行本发明第一方面所述的方法。
根据本发明第三方面,提供一种计算机可读存储介质,所述计算机指令用于执行本发明第一方面所述的方法。
本发明与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本发明提供的一种双向互联总线延时调整方法、电子设备和介质可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有下列优点:
本发明实施例通过在第一模块和第二模块之间的设置独立的第一延时模块和第二延时模块,实现对双向互联总线的延时调整,避免出现错乱,且在进行物理互联时,可以根据每一传输方向上的具体情况对延时模块进行拆分,提高了物理互联的灵活性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
图1为本发明实施例一提供的芯片总线延时调整方法流程图;
图2为本发明实施例一提供的***延时模块示意图;
图3为本发明实施例二提供的双向互联总线延时调整方法流程;
图4为本发明实施例二提供的***双向延时模块示意图;
图5为本发明实施例三提供的双向互联总线延时调整方法流程图;
图6为本发明实施例三提供的***第一延时模块和第二延时模块示意图。
具体实施方式
为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种双向互联总线延时调整方法、电子设备和介质的具体实施方式及其功效,详细说明如后。
实施例一、
实施例一提供了一种芯片总线延时(Repeater)调整方法,如图1所示,所述芯片包括多组发起端和接收端,每一组发起端和接收端之间通过至少一个总线互联;所述方法包括:
步骤S1、获取第i组发起端Sei和接收端Rei之间的需要进行延时调整的总线信息{Bundle1 i,Bundle2 i,…BundleNi i},Bundlen i为Sei和Rei之间的第n个需要进行延时调整的总线,n的取值范围为1到Ni,Ni为Sei和Rei之间需要进行延时调整的总线数量,i的取值范围为1到M,M为发起端和接收端的总组数。
其中,发起端Sei和接收端Rei之间总线信息可以直接基于原始的第一逻辑互联信息获取,根据总线对应的两端的最小组成模块在物理布局中物理距离确定当前哪些总线需要进行延时调整。
需要说明的是,第一逻辑互联信息是指发起端对应的模块、接收端对应的模块,以及发起端模块和接收端模块之间对应的至少一个总线组成的逻辑互联信息。每一模块中可以嵌套其他组成模块,其中模块之间也是采用总线互联,有且只有最小组成单元是由RTL代码编写而生成,其他层次的模块或者模块与最小组成单元之间都是采用高层次总线互联,有助于自动化生成芯片设计的RTL代码,可重构,且可配置。可以理解的是,原始逻辑互联信息是没有进行延时调整的原始互联关系。
步骤S2、在Sei***Pi组延时信息,延时信息包括总线类型标识、延时级数、时钟域标识,每一总线类型标识对应一种延时模块(Repeater wrapper)类型和一种延时单元(Repeater Module)类型,Pi为Sei和Rei之间的总线类型数量,Pi小于等于Ni。
其中,延时信息中的延时级数指的是总线类型标识对应延时模块类型对应的默认延时单元数量,时钟域标识指的是总线类型标识对应延时模块类型对应的默认时钟域标识。仅在发起端***延时信息,使得延时具有方向性,避免发生错乱。所述延时信息还可包括用户标识(Owner)信息和注释信息(Comment)等,同一时钟域中的时钟信号对应的时钟周期相同。用户标识具体可以指的是开发人员标识。
步骤S3、基于Bundlen i对应的总线类型标识确定对应的延时级数、时钟域标识、延时模块类型、延时单元类型,并生成对应类型的延时模块WRn,所述延时级数根据Bundlen i对应的目标物理距离确定。Bundlen i对应的目标物理距离指的是Bundlen i两端所连接的最小组成单元在芯片物理布局布线中对应的物理距离。
步骤S4、将WRn***Bundlen i建立WRn与Sei和Rei之间的互联,基于WRn与Sei和Rei之间的互联,以及对应的延时级数、时钟域标识生成Bundlen i对应的延时配置文件信息;所述延时级数为WRn中对应延时单元的数量;所述时钟域标识用于确定WRn所连接的时钟信号;每一类型的延时单元配置有对应的RTL代码。
可以理解的是,所述延时配置文件信息至少包括WRn、对应的延时级数、时钟域标识,还可包括WRn对应的发起端标识和接收端标识。
可以理解的是,在第一逻辑互联信息中增加延时模块并与发起端和接收端后,生成新的互联关系,即第二逻辑互联信息。需要说明的是,第二逻辑互联关系为新生成的顶层互联关系,确定了哪些总线需要***延时模块,而延时模块的具体细节,是在基于其中的延时单元生成的,经过后续连接后,如果当前的延时模块需要调整,则直接调整其中的延时单元以及延时单元级数即可,不会影响到顶层互联关系。此外,通过生成延时配置文件信息可以便于对延时调整的检查(review)和调整,即基于生成的延时配置文件信息进行检查,以及直接通过调整延时配置文件信息中的字段实现延时调整,无需直接更改RTL代码,且同样适用于大规模芯片设计所述延时配置文件信息格式为XML、JSON、YMAL或CSV。
步骤S5中,通过解析所述延时配置文件信息,获取WRn对应的延时单元类型和延时级数,在WRn中生成对应延时级数个延时单元,全部串联后,一端连接至WRn的输入端,一端连接至WRn的输出端,从而建立WRn中延时单元的互联。基于WRn中延时单元的互联以及对应延时单元的RTL代码,自动生成Bundlen i对应的WRn的RTL代码。
作为示例,延时单元具体可以实现为Flip-Flop(触发器)。***延时模块后的一组发起端和接收端的示意图如图2所示。
需要说明的是,基于所述延时配置文件信息可以确定有需要加入延时模块的总线,在对应位置加入延时模块。延时模块的细节信息基于对应的延时单元生成。此过程可以自动化生成延时模块和延时单元的RTL代码,无需人工大量编写延时RTL代码,大大节省了延时调整时间和工作量,芯片延时调整效率。
其中,对应的RTL代码具体可以为Verilog代码、System Verilog代码或VHDL代码等。
作为一种实施例,需要进行延时调整的总线指的是总线两端所连接到的两个最小组成单元之间的目标物理距离大于预设的物理距离阈值的总线。目标物理距离指的是在对应的芯片物理布局布线中,两个最小组成单元之间的物理距离。
其中,预设的距离阈值根据具体芯片设计参数来确定,但可以理解的是,当总线对应的目标物理距离大于预设的距离阈值时,表示需要进行延时调整,否则会影响两个互联模块之间的时序,当总线对应的目标物理距离小于等于预设的距离阈值时,则无需进行延时调整,即不需要***对应的延时模块。由此可知,同一组发起端和接收端中的总线中,可能部分总线需要***延时模块,部分总线不需要***延时模块,且每一总线***的延时模块可能不相同。总线可以包括多比特(bits)的信号,也可以是单比特(bit)信号,例如reset信号。作为一种实施例,所述步骤S4中,基于WRn与Sei和Rei之间的互联,以及对应的延时级数、时钟域标识生成Bundlen i对应的延时配置文件信息;
步骤S41、基于WRn与Sei和Rei之间的互联确定是否存在自定义延时级数和自定义时钟域标识:
若存在自定义延时级数,则将Bundlen i对应的延时配置文件信息中的延时级数设置为自定义延时级数,否则,设置为延时信息中的延时级数;
若存在自定义时钟域标识,则将Bundlen i对应的延时配置文件信息中的时钟域标识设置为自定义时钟域标识,否则,设置为延时信息中的时钟域标识。
基于步骤S41实现了延时级数信息、时钟域标识信息的灵活配置,且对于大批量需要默认延时模块实例中包括指定延时级数信息的,则可以直接批量生成,实现继承,此外,当设计部分实现细节需要更改时,直接通过更改延时模块类型即可实现。
作为一种实施例,所述延时信息中的延时级数为默认延时级数数值或默认预设延时级数范围。所述步骤S41中,将Bundlen i对应的延时配置文件信息中的延时级数设置为延时信息中的延时级数:
步骤S411、若延时信息中的延时级数为默认延时级数数值,则将Bundlen i对应的延时配置文件信息中的延时级数设置为对应的默认延时级数数值;此种情况可以用于芯片设计阶段。若延时信息中的为预设延时级数范围,则从所述预设延时级数范围内随机选取一个值作为Bundlen i对应的延时配置文件信息中的延时级数。此种情况可以适用于芯片验证阶段。不同的延时级数信息设置方式保证了设计的灵活性,且能应用在芯片设计的不同阶段。
为了避免漏添加延时模块,以及便于后续延时调整,在生成所述延时配置文件信息过程中,还包括:
步骤S10、对于任意一个当前无需进行延时调整的总线Bundlek,k的取值范围为1到K,K为当前无需进行延时调整的总线数量,将Bundlek视为需进行延时调整的总线,并按照步骤S1-步骤S4的方式生成对应的延时配置文件信息,对应的延时级数设置为0。这样,如果后续需要在当前未添加延时信息的总线添加延时信息时,直接基于延时配置文件信息进行修改即可,无需再更改顶层互联信息。此外,还可针对Bundlek生成提示信息,对当前配置的不进行延时调整的总线进行标识,以提示工程师进行检查确认。此外,
逻辑互联建立好,加入延时信息之后,即可进行物理互联,物理互联过程中,根据芯片物理布局布线会对最小组成单元进行重组,但可以理解的是,最小组成单元之间的逻辑互联连接关系是不变的。作为一种实施例,所述步骤S5之后还包括:步骤S6、基于所述第二逻辑互联信息建立物理互联,具体包括:
步骤S61、获取延时模块对应的拆分信息{W1 n,W2 n},W1 n为建立物理互联过程中跟随发起端进行模块重组的延时单元数量,W2 n为建立物理互联过程中跟随接收端进行模块重组的延时单元数量,W1 n+W2 n=Wn,Wn为延时模块中延时单元总数量;
步骤S62、将延时模块中W1 n个延时单元与发起端作为一个整体模块、将延时模块中W2 n个延时单元与接收端作为一个整体模块与其他模块进行物理互联。
需要说明的是,{W1 n,W2 n}的具体取值是基于物理布局布线设置的,在物理实现时,涉及到重组(regrouping),为了改善发起端和接收端之间的时钟,保持平衡,具体根据发起端和接收端之间的负载以及时钟松紧程度来确定跟随发起端或接收端进行物理布局的延时单元数量。例如,模块A和模块B之间***了一个包括10级延时单元的延时模块,在进行物理互联时,其中3个延时单元与模块A作为一个整体与其他模块进行物理互联,7个延时单元与模块B作为一个整体与其他模块进行物理互联。但可以理解的是,模块A和模块B之间的延时单元总数不变的,即物理布局布线完成后,模块A和模块B之间仍是通过了10个延时单元。
当物理布局布线完成后,即可检测各组发起端和接收端之间所***的延时模块是否符合要求,其中部分不符合要求的,则可继续进行进一步调整,作为一种实施例,所述步骤S6之后,若接收到延时调整指令,则执行:
步骤S7、从所述延时调整指令中解析出发起端标识、接收端标识、总线类型标识字段以及延时调整信息,所述延时调整信息包括目标延时级数信息和/或目标拆分信息{W1 n’,W2 n’}。
若所述延时调整信息中包括目标延时级数信息,则返回步骤S5,更新所述延时配置文件信息中对应的延时级数信息,然后继续执行后续步骤,由此可知,直接通过更改延时配置文件信息即可实现延时调整。
若所述延时调整信息中包括目标拆分信息{W1 n’,W2 n’},则在执行步骤S51时,设置W1 n=W1 n’,W2 n=W2 n’,然后继续执行后续步骤。
实施例一无需基于RTL级别的处理来实现延时模块的***,直接通过在发起端***延时信息,通过生成延时配置文件信息,然后解析延时配置文件信息自动生成延时模块对应的RTL代码,具有很好的灵活性,调整延时的效率高,且不易出错,此外,还可以实现批量配置和修改,提高了芯片延时调整效率,从而提高了芯片设计效率。需要说明的是,后续其他实施例中的相关技术细节也可适用于本实施例中的相关步骤,在此不再重复赘述。
需要说明的是,实施例一适用于发送端和接收端之间的单向传输总线,即总线中所有连接线的信号传输方向一致,但是,一些应用场景中,是可能存在双向互联总线,即一组总线中,存在两种方向的连接线,基于此类场景,进一步提出了实施例二和实施例三两种实施例。
实施例二、
实施例二提供了一种双向互联总线延时调整方法,如图3所示示例,包括:
步骤C1、获取芯片设计中的第一模块和第二模块之间的双向互联总线Bundlei={L1 i,L2 i,…LiX i,S1 i,S2 i,…SiY i},i为1到N中的一个值,N为第一模块和第二模块之间总线总数,Lx i为第x个以第一模块为发起端以第二模块为接收端的连接线,x的取值范围为1到iX,Sy i为第y个以第二模块为发起端以第一模块为接收端的连接线,y的取值范围为1到iY;
需要说明的是,若第一模块和第二模块中存在单向传输总线可以直接采用实施例一所述的方法进行延时调整,在此不再赘述。
步骤C2、在所述第一模块和第二模块之间***一个双向延时模块,在第一方向上,为S1 i,S2 i,…SiY i设置延时标识,所述第一方向为从所述第一模块到第二模块的方向;在第二方向上,为L1 i,L2 i,…LiX i设置非延时标识,所述第二方向为从所述第二模块到第一模块的方向;当所述第一模块向所述第二模块传输第一信号时,所述第一信号沿L1 i,L2 i,…LiX i穿过所述双向延时模块与所述第二模块通信;当所述第二模块向所述第一模块向传输第二信号时,所述第二信号沿S1 i,S2 i,…SiY i穿过所述双向延时模块与所述第一模块通信。
需要说明的是,Bundlei对应的目标物理距离大于预设的距离阈值,若小于预设的距离阈值,则可不进行延时调整。
实施例二通过在第一模块和第二模块之间的双向互联总线***双向延时模块,实现对双向互联总线的延时调整,避免出现错乱。
作为一种实施例,所述步骤C2包括:
步骤C21、基于Bundlei确定对应的时钟域标识,基于目标物理距离确定延时级数信息;
作为一种实施例,所述延时级数信息为用户基于Bundlei两端连接的最小组成单元在芯片物理布局布线中的目标物理距离确定指定值。此种情况可以用于芯片设计阶段。作为另一种实施例,所述延时级数信息还可以为用户基于目标物理距离确定延时级数信息范围中的随机值,此种情况可以适用于芯片验证阶段。
步骤C22、根据{L1 i,L2 i,…LiX i,S1 i,S2 i,…SiY i}以及对应的时钟域标识、延时级数信息生成对应的延时信息contracti1和contracti2,其中,
contracti1包括Bundlei标识、延时级数信息、时钟域标识,以及L1 i,L2 i,…LiX i对应的延时标识和S1 i,S2 i,…SiY i对应的非延时标识;
contracti2包括Bundlei标识、延时级数信息、时钟域标识,以及L1 i,L2 i,…LiX i对应的非延时标识和S1 i,S2 i,…SiY i对应的延时标识;
通过步骤C22的设置,使得在第一模块向第二模块传输信号时,S1 i,S2 i,…SiY i不会进行延时调整,仅调整相关的L1 i,L2 i,…LiX i。同理,在第二模块向第一模块传输信号时,L1 i,L2 i,…LiX i不会进行延时调整,仅调整相关的S1 i,S2 i,…SiY i。
步骤C23、将contracti1***所述第一模块,将contracti2***所述第二模块;
步骤C24、根据contracti1和contracti2在Bundlei中生成双向延时模块。
***双向延时模块后的一组第一模块和第二模块组成的架构的示意图如图4所示。
作为一种实施例,所述步骤C24还包括:
步骤C241、基于contracti1和contracti2生成延时配置文件信息;
需要说明的是,所述延时配置文件信息格式为XML、JSON、YMAL或CSV等,详细生成过程以及关于延时配置文件信息在物理互联后重新返回调整延时的等技术细节可参考实施例一即可,在此不再赘述。
步骤C242、基于延时配置文件信息自动生成双向延时模块对应的RTL代码。
作为一种实施例,步骤C241包括:
步骤C2411、基于contracti1和contracti2生成双向延时模块WRi。
步骤C2422、将WRi***Bundlei建立WRi与第一模块和第二模块之间的互联。
步骤C2423、基于WRi与第一模块和第二模块之间的互联,以及contracti1和contracti2对应的延时级数、时钟域标识生成Bundlei对应的延时配置文件信息;所述延时级数根据物理布局确定,所述延时级数为WRi中对应延时单元的数量;所述时钟域标识用于确定WRi所连接的时钟信号;每一类型的延时单元配置有对应的RTL代码。
其中,双向延时模块对应的RTL代码包括双向延时模块以及双向延时模块中的双向延时单元的的RTL代码,详细生成技术细节可参考实施例一即可,在此不再赘述。所述RTL代码具体可以为Verilog代码、System Verilog代码或VHDL代码等。
作为一种实施例,步骤C242中,若WRi中包括指定延时级数信息,则所述双向延时模块生成指定延时级数信息的双向延时单元,若WRi中未指定延时级数信息,则所述双向延时模块生成对应contracti1和contracti2中延时级数的双向延时单元。
基于步骤C242实现了延时级数信息的灵活配置,且对于大批量需要默认延时模块实例中包括指定延时级数信息的,则可以直接批量生成,此外,当设计部分实现细节需要更改时,直接通过更改延时模块类型即可实现。
实施例二通过在第一模块和第二模块之间的双向互联总线***双向延时模块,实现对双向互联总线的延时调整,避免出现错乱,提高了双向互联总线的延时调整的灵活性和效率,从而提高了芯片设计效率。需要说明的是,前序实施例以及后续其他实施例中的相关技术细节也可适用于本实施例中的相关步骤,在此不再重复赘述。
实施例二中***的双向延时模块,在物理互联时,只能为第一模块划分W1 i个双向延时单元,为第二模块划分W2 n个双向延时单元,但是在基于第一方向和第二方向划分的双向延时单元的结果并不一定相同,多数情况下是不同的,但由于仅有一组双向延时单元,因此只能尽可能兼顾第一模块和第二模块去划分双向延时单元,灵活性差,均基于此,本发明进一步提出了实施例三。
实施例三、
实施例三提供了一种双向互联总线延时调整方法,如图5所示,包括:
步骤E1、获取芯片设计中的第一模块和第二模块之间的双向互联总线Bundlei={L1 i,L2 i,…LiX i,S1 i,S2 i,…SiY i},i为1到N中的一个值,N为第一模块和第二模块之间总线总数,Lx i为第x个以第一模块为发起端以第二模块为接收端的连接线,x的取值范围为1到iX,Sy i为第y个以第二模块为发起端以第一模块为接收端的连接线,y的取值范围为1到iY;
需要说明的是,若第一模块和第二模块中存在单向传输总线可以直接采用实施例一所述的方法进行延时调整,在此不再赘述。
步骤E2、在所述第一模块和第二模块之间***第一延时模块和第二延时模块,当所述第一模块向所述第二模块传输第一信号时,所述第一信号沿L1 i,L2 i,…LiX i穿过所述第一延时模块与所述第二模块通信;当所述第二模块向所述第一模块向传输第二信号时,所述第二信号沿S1 i,S2 i,…SiY i穿过所述第二延时模块与所述第一模块通信。
需要说明的是,Bundlei对应的目标物理距离大于预设的距离阈值,若小于预设的距离阈值,则可不进行延时调整。
作为一种实施例,所述步骤E2包括:
步骤E21、基于Bundlei确定对应的时钟域标识,基于目标物理距离和确定延时级数信息;其中,目标物理距离指的是Bundlei两端连接的最小组成单元在芯片物理布局布线中的物理距离。
作为一种实施例,所述延时级数信息为用户基于目标物理距离确定延时级数信息指定值。此种情况可以用于芯片设计阶段。作为另一种实施例,所述延时级数信息为用户基于目标物理距离确定的延时级数信息范围中的随机值,此种情况可以适用于芯片验证阶段。
步骤E22、根据{L1 i,L2 i,…LiX i}以及对应的时钟域标识、延时级数信息生成对应的延时信息contracti1 ’,contracti1 ’包括Bundlei标识、L1 i,L2 i,…LiX i标识、延时级数信息、时钟域标识;
根据{S1 i,S2 i,…SiY i}以及对应的时钟域标识、延时级数信息生成对应的延时信息contracti2 ’,contracti2 ’包括Bundlei标识、S1 i,S2 i,…SiY i标识、延时级数信息、时钟域标识;
通过步骤E22,可以基于第一模块与第二模块两种信号传输方向分别生成延时信息,进而生成独立的延时模块。
步骤E23、将contracti1 ’***所述第一模块,将contracti2 ’***所述第二模块;
步骤E24、根据contracti1 ’在Bundlei中生成第一延时模块,根据contracti2 ’在Bundlei中生成第二延时模块。
***第一延时模块和第二延时模块后的一组第一模块和第二模块组成的架构的示意图如图6所示。
作为一种实施例,所述步骤E24还包括:
步骤E241、contractij ’生成一条对应的延时配置文件信息,存储至对应的延时配置文件,所述延时配置文件信息包括发起端标识、接收端标识、总线标识标识、发起端与接收端连线标识、延时级数信息和时钟域标识,其中j取值为1或2;
j取1时,对应的延时配置文件信息中的发起端标识字段存储第一模块标识,接收端标识字段存储第二模块标识,发起端与接收端连线标识字段存储L1 i,L2 i,…LiX i标识;
j取2时,对应的延时配置文件信息中的发起端标识字段存储第二模块标识,接收端标识字段存储第一模块标识,发起端与接收端连线标识字段存储S1 i,S2 i,…SiY i标识。
需要说明的是,基于延时配置文件信息可以生成延时配置文件,可以基于生成延时配置文件进行检查,以及直接通过调整延时配置文件中的字段实现延时调整,无需直接更改RTL代码,且同样适用于大规模芯片设计。其他关于延时配置文件L文档的技术细节可以参考实施例一,类似技术细节在此不再赘述。
如实施例一所述,逻辑互联建立好,加入延时信息之后,即可进行物理互联,物理互联过程中,根据物理布局布线会对一些模块进行重组,但可以理解的是,最小组成单元之间的连接关系是不变的。本实施例中,由于在第一模块和第二模块之间建立了独立的两个延时模块,因此,在实现物理互联时,更加灵活,作为一种实施例,所述步骤E24之后,还包括:
步骤E3、基于第一模块和第二模块之间的逻辑互联建立物理互联,具体包括:
步骤E31、获取第一延时模块对应的拆分信息{W11 i,W12 i},第二延时模块对应的拆分信息{W21 i,W22 i},其中,W11 i为建立物理互联过程中跟随第一模块进行模块重组的第一延时单元数量,W12 i为建立物理互联过程中跟随第二模块进行模块重组的第一延时单元数量,W21 i为建立物理互联过程中跟随第一模块进行模块重组的第二延时单元数量,W12 i为建立物理互联过程中跟随第二模块进行模块重组的第二延时单元数量,W11 i+W12 i=W21 i+W22 i=Wi,Wi为第一模块中第一延时单元总数量,也为第二模块中第二延时单元总数量;
步骤E32、将与第一延时模块中的W11 i个第一延时单元以及第二延时模块中的W21 i个第二延时单元与第一模块作为一个整体模块,将第一延时模块中的W12 i个第一延时单元以及第二延时模块中的W22 i个第二延时单元与第二模块作为一个整体模块,与其他模块进行物理互联。
需要说明的是,{W11 i,W12 i}、{W21 i,W22 i}的具体取值是基于芯片物理布局布线设置的,在物理实现时,涉及到重组,为了改善发起端和接收端之间的时钟,保持平衡,具体根据发起端和接收端之间的负载以及时钟松紧程度来确定跟随发起端或接收端进行物理布局的延时单元数量。例如,模块A和模块B之间***了一个包括10级延时单元的第一延时模块和第二延时模块,在进行物理互联时,其中3个第一延时单元、6个第二延时单元与模块A作为一个整体,与其他模块进行物理互联,7个第一延时单元、4个第二延时单元与模块B作为一个整体与其他模块进行物理互联。但可以理解的是,模块A和模块B之间的第一延时单元和第二延时单元的总数是不变的,即物理布局布线完成后,模块A和模块B之间仍是通过了10个第一延时单元和10个第二延时单元。通过本实施例可知,通过设置独立的第一延时模块和第二延时模块,使得建立物理互联是可以独立考虑第一模块和第二模块之间不同信号传输方向上的时延,时延调整更加灵活。
当物理布局布线完成后,即可检测各组发起端和接收端之间所***的延时模块是否符合要求,其中部分不符合要求的,则可继续对第一延时模块、第二延时模块进行进一步调整,作为一种实施例,所述步骤E3之后,若接收到延时调整指令,则执行:
步骤E4、从所述延时调整指令中解析出发起端标识、接收端标识、总线类型标识字段以及延时调整信息,所述延时调整信息包括目标延时级数信息和/或第一延时模块的目标拆分信息{W11 i’,W12 i’}和/或第二延时模块的目标拆分信息{W21 i’,W22 i’}。
若所述延时调整信息中包括目标延时级数信息,则返回执行步骤S241,更新对应延时配置文件信息中的延时级数信息,然后继续执行后续步骤。
若所述延时调整信息中包括{W11 i’,W12 i’},则在执行步骤E31之前,设置W11 i=W11 i’,W12 i=W12 i’,和/或,若所述延时调整信息中包括{W21 i’,W22 i’},则在执行步骤E31之前,设置W21 i=W21 i’,W22 i=W22 i’,然后继续执行后续步骤。
实施例三通过在第一模块和第二模块之间的设置独立的第一延时模块和第二延时模块,实现对双向互联总线的延时调整,避免出现错乱,且在进行物理互联时,可以根据每一传输方向上的具体情况对延时模块进行拆分,提高了物理互联的灵活性。需要说明的是,前序实施例中的相关技术细节也可适用于本实施例中的相关步骤,在此不再重复赘述。
上述实施例中,还可为实施例一的延时模块、实施例二的双向延时模块、实施例三的第一延时模块和第二延时模块设置对应的门控信号,各个门控信号可以相互独立。门控信号需要满足对应的时序要求,例如,在有效数据的前若W个时钟门控信号需要设置为高电平,有效数据传输后,需要保持若Q个时钟周期,W和Q根据具体的时序需求来配置。门控时钟可以整体控制实施例一的延时模块、实施例二的双向延时模块或实施例三的第一延时模块和第二延时模块的开启和关闭,通过设置门控时钟可以降低功耗。
本领域技术人员可以理解的是,上述不同实施例中的相同技术细节是可以相互使用的,且上述实施例的技术特征可以进一步进行组合,且均在本申请保护范围之内,在此不再一一列举。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中使用的术语只是为了描述具体的实施方式的目的,不是旨在于限制本发明。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
需要说明的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。
本发明实施例还提供一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行本发明任意一个实施例所述的方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机指令用于执行本发明任意一个实施例所述的方法。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (8)
1.一种双向互联总线延时调整方法,其特征在于,包括:
步骤E1、获取芯片设计中的第一模块和第二模块之间的双向互联总线Bundlei={L1 i,L2 i,…LiX i,S1 i,S2 i,…SiY i},i为1到N中的一个值,N为第一模块和第二模块之间总线总数,Lx i为第x个以第一模块为发起端以第二模块为接收端的连接线,x的取值范围为1到iX,Sy i为第y个以第二模块为发起端以第一模块为接收端的连接线,y的取值范围为1到iY;
步骤E2、在所述第一模块和第二模块之间***第一延时模块和第二延时模块,当所述第一模块向所述第二模块传输第一信号时,所述第一信号沿L1 i,L2 i,…LiX i穿过所述第一延时模块与所述第二模块通信;当所述第二模块向所述第一模块向传输第二信号时,所述第二信号沿S1 i,S2 i,…SiY i穿过所述第二延时模块与所述第一模块通信;
所述步骤E2包括:
步骤E21、基于Bundlei确定对应的时钟域标识,基于Bundlei对应的目标物理距离确定延时级数信息;
步骤E22、根据{L1 i,L2 i,…LiX i}以及对应的时钟域标识、延时级数信息生成对应的延时信息contracti1 ’,contracti1 ’包括Bundlei标识、L1 i,L2 i,…LiX i标识、延时级数信息、时钟域标识;
根据{S1 i,S2 i,…SiY i}以及对应的时钟域标识、延时级数信息生成对应的延时信息contracti2 ’,contracti2 ’包括Bundlei标识、S1 i,S2 i,…SiY i标识、延时级数信息、时钟域标识;
步骤E23、将contracti1 ’***所述第一模块,将contracti2 ’***所述第二模块;
步骤E24、根据contracti1 ’在Bundlei中生成第一延时模块,根据contracti2 ’在Bundlei中生成第二延时模块。
2.根据权利要求1所述的方法,其特征在于,
所述步骤E24还包括:
步骤E241、contractij ’生成一条对应的延时配置文件信息,存储至对应的延时配置文件中,所述延时配置文件信息包括发起端标识、接收端标识、总线标识字段、发起端与接收端连线标识、延时级数信息和时钟域标识,其中j取值为1或2;
j取1时,对应的延时配置文件信息中的发起端标识字段存储第一模块标识,接收端标识字段存储第二模块标识,发起端与接收端连线标识字段存储L1 i,L2 i,…LiX i标识;
j取2时,对应的延时配置文件信息中的发起端标识字段存储第二模块标识,接收端标识字段存储第一模块标识,发起端与接收端连线标识字段存储S1 i,S2 i,…SiY i标识。
3.根据权利要求1所述的方法,其特征在于,
所述步骤E24之后,还包括:
步骤E3、基于第一模块和第二模块之间的逻辑互联建立物理互联,具体包括:
步骤E31、获取第一延时模块对应的拆分信息{W11 i,W12 i},第二延时模块对应的拆分信息{W21 i,W22 i},其中,W11 i为建立物理互联过程中跟随第一模块进行模块重组的第一延时单元数量,W12 i为建立物理互联过程中跟随第二模块进行模块重组的第一延时单元数量,W21 i为建立物理互联过程中跟随第一模块进行模块重组的第二延时单元数量,W12 i为建立物理互联过程中跟随第二模块进行模块重组的第二延时单元数量,W11 i+W12 i=W21 i+W22 i=Wi,Wi为第一模块中第一延时单元总数量,也为第二模块中第二延时单元总数量;
步骤E32、将与第一延时模块中的W11 i个第一延时单元以及第二延时模块中的W21 i个第二延时单元与第一模块作为一个整体模块,将第一延时模块中的W12 i个第一延时单元以及第二延时模块中的W22 i个第二延时单元与第二模块作为一个整体模块,与其他模块进行物理互联。
4.根据权利要求3所述的方法,其特征在于,
所述步骤E3之后,若接收到延时调整指令,则执行:
步骤E4、从所述延时调整指令中解析出发起端标识、接收端标识、总线类型标识字段以及延时调整信息,所述延时调整信息包括目标延时级数信息和/或第一延时模块的目标拆分信息{W11 i’,W12 i’}和/或第二延时模块的目标拆分信息{W21 i’,W22 i’}。
5.根据权利要求4所述的方法,其特征在于,
若所述延时调整信息中包括目标延时级数信息,则返回执行步骤S241,更新对应延时配置文件信息中的延时级数信息,然后继续执行后续步骤。
6.根据权利要求4所述的方法,其特征在于,
若所述延时调整信息中包括{W11 i’,W12 i’},则在执行步骤E31之前,设置W11 i=W11 i’,W12 i=W12 i’,和/或,若所述延时调整信息中包括{W21 i’,W22 i’},则在执行步骤E31之前,设置W21 i=W21 i’,W22 i=W22 i’,然后继续执行后续步骤。
7.一种电子设备,其特征在于,包括:
至少一个处理器;
以及,与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行前述权利要求1-6任一项所述的方法。
8.一种计算机可读存储介质,其特征在于,存储有计算机可执行指令,所述计算机可执行指令用于执行前述权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210674663.6A CN115129641B (zh) | 2022-06-14 | 2022-06-14 | 双向互联总线延时调整方法、电子设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210674663.6A CN115129641B (zh) | 2022-06-14 | 2022-06-14 | 双向互联总线延时调整方法、电子设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115129641A CN115129641A (zh) | 2022-09-30 |
CN115129641B true CN115129641B (zh) | 2024-01-19 |
Family
ID=83377420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210674663.6A Active CN115129641B (zh) | 2022-06-14 | 2022-06-14 | 双向互联总线延时调整方法、电子设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115129641B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001154974A (ja) * | 1999-11-15 | 2001-06-08 | Isei Denshi Kofun Yugenkoshi | 制御チップセット間の割込み機能を有するバスの調停方法 |
KR20030001599A (ko) * | 2001-06-25 | 2003-01-08 | 주식회사 하이닉스반도체 | 양방향 지연을 이용한 디엘엘 회로 |
US6928571B1 (en) * | 2000-09-15 | 2005-08-09 | Intel Corporation | Digital system of adjusting delays on circuit boards |
CN107329923A (zh) * | 2017-06-26 | 2017-11-07 | 努比亚技术有限公司 | 一种调整总线时序的方法、存储介质和终端 |
CN110348091A (zh) * | 2019-06-28 | 2019-10-18 | 西安紫光国芯半导体有限公司 | 一种信号延迟模拟装置和应用该装置的仿真装置 |
CN111812490A (zh) * | 2019-04-12 | 2020-10-23 | 上海复旦微电子集团股份有限公司 | 一种测试fpga芯片中信号传输延时的方法 |
CN113868986A (zh) * | 2021-09-18 | 2021-12-31 | 海光信息技术股份有限公司 | 端口时延的约束方法、装置、电子设备、存储介质 |
CN114330191A (zh) * | 2022-03-08 | 2022-04-12 | 上海国微思尔芯技术股份有限公司 | 一种信号复用传输的方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6834318B2 (en) * | 2001-02-16 | 2004-12-21 | Agere Systems Inc. | Bidirectional bus repeater for communications on a chip |
US8584067B2 (en) * | 2010-11-02 | 2013-11-12 | Advanced Micro Devices, Inc. | Clock domain crossing buffer |
CN114553388A (zh) * | 2018-03-13 | 2022-05-27 | 华为技术有限公司 | 一种补偿时延的方法和设备 |
-
2022
- 2022-06-14 CN CN202210674663.6A patent/CN115129641B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001154974A (ja) * | 1999-11-15 | 2001-06-08 | Isei Denshi Kofun Yugenkoshi | 制御チップセット間の割込み機能を有するバスの調停方法 |
US6928571B1 (en) * | 2000-09-15 | 2005-08-09 | Intel Corporation | Digital system of adjusting delays on circuit boards |
KR20030001599A (ko) * | 2001-06-25 | 2003-01-08 | 주식회사 하이닉스반도체 | 양방향 지연을 이용한 디엘엘 회로 |
CN107329923A (zh) * | 2017-06-26 | 2017-11-07 | 努比亚技术有限公司 | 一种调整总线时序的方法、存储介质和终端 |
CN111812490A (zh) * | 2019-04-12 | 2020-10-23 | 上海复旦微电子集团股份有限公司 | 一种测试fpga芯片中信号传输延时的方法 |
CN110348091A (zh) * | 2019-06-28 | 2019-10-18 | 西安紫光国芯半导体有限公司 | 一种信号延迟模拟装置和应用该装置的仿真装置 |
CN113868986A (zh) * | 2021-09-18 | 2021-12-31 | 海光信息技术股份有限公司 | 端口时延的约束方法、装置、电子设备、存储介质 |
CN114330191A (zh) * | 2022-03-08 | 2022-04-12 | 上海国微思尔芯技术股份有限公司 | 一种信号复用传输的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115129641A (zh) | 2022-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107341541B (zh) | 一种用于执行全连接层神经网络训练的装置和方法 | |
JP2006518058A (ja) | 改善された計算アーキテクチャ用パイプライン加速器、関連システム、並びに、方法 | |
US10795729B2 (en) | Data accelerated processing system | |
CN115129642B (zh) | 芯片总线延时调整方法、电子设备和介质 | |
JP4971676B2 (ja) | 割り込み制御回路及び割り込み制御方法 | |
US7932746B1 (en) | One phase logic | |
CN115129641B (zh) | 双向互联总线延时调整方法、电子设备和介质 | |
CN117131834A (zh) | 芯片设计重组方法、电子设备和介质 | |
CN115129640B (zh) | 双向互联总线延时调整方法、电子设备和介质 | |
US20010044890A1 (en) | Data driven type information processing apparatus and method of controlling execution thereof | |
CN109446146B (zh) | 一种应用层通信协议的状态转换序列生成方法 | |
US7724775B2 (en) | Data transmission circuit and method for controlling the data transmission circuit | |
US8451022B2 (en) | Integrated circuit and input data controlling method for reconfigurable circuit | |
CN112416053B (zh) | 多核架构的同步信号产生电路、芯片和同步方法及装置 | |
CN111061675A (zh) | 一种***传递函数辨识算法的硬件实现方法及运行该方法的计算机设备与可读存储介质 | |
CN111832714A (zh) | 运算方法及装置 | |
CN114626323B (zh) | 集成电路的时序收敛方法、装置、服务器及可读存储介质 | |
CN112988653B (zh) | 数据处理电路、装置以及方法 | |
CN117610472B (zh) | 超大规模集群fpga原型验证*** | |
WO2023155239A1 (zh) | 版图布局布线方法、电路版图、电子设备以及存储介质 | |
CN114095289B (zh) | 数据多播电路、方法、电子设备及计算机可读存储介质 | |
CN113962190A (zh) | 一种时钟树的分步综合方法及装置 | |
JP3091441B2 (ja) | データ処理装置 | |
CN117787198A (zh) | 基于门控时钟的芯片总线延时调整方法、电子设备和介质 | |
CN115859894A (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 |