CN117651933A - 用于设计异步电路的方法和电子设备 - Google Patents
用于设计异步电路的方法和电子设备 Download PDFInfo
- Publication number
- CN117651933A CN117651933A CN202180098077.5A CN202180098077A CN117651933A CN 117651933 A CN117651933 A CN 117651933A CN 202180098077 A CN202180098077 A CN 202180098077A CN 117651933 A CN117651933 A CN 117651933A
- Authority
- CN
- China
- Prior art keywords
- asynchronous
- clock
- controller
- asynchronous controller
- signal
- 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
- 238000000034 method Methods 0.000 title claims abstract description 87
- 230000008569 process Effects 0.000 claims description 29
- 230000004044 response Effects 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 6
- 230000010354 integration Effects 0.000 claims description 6
- 238000004458 analytical method Methods 0.000 abstract description 35
- 238000013461 design Methods 0.000 abstract description 21
- 230000003068 static effect Effects 0.000 abstract description 12
- 230000005540 biological transmission Effects 0.000 abstract description 7
- 238000005457 optimization Methods 0.000 abstract description 5
- 238000012546 transfer Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 29
- 101100003180 Colletotrichum lindemuthianum ATG1 gene Proteins 0.000 description 13
- 101100113692 Caenorhabditis elegans clk-2 gene Proteins 0.000 description 12
- 230000001360 synchronised effect Effects 0.000 description 11
- 238000011144 upstream manufacturing Methods 0.000 description 10
- 238000012300 Sequence Analysis Methods 0.000 description 9
- 230000001934 delay Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 239000000872 buffer Substances 0.000 description 5
- 230000003139 buffering effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000000630 rising effect Effects 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 101100134058 Caenorhabditis elegans nth-1 gene Proteins 0.000 description 1
- 102100040856 Dual specificity protein kinase CLK3 Human genes 0.000 description 1
- 101000749304 Homo sapiens Dual specificity protein kinase CLK3 Proteins 0.000 description 1
- 101100433987 Latilactobacillus sakei subsp. sakei (strain 23K) ackA1 gene Proteins 0.000 description 1
- 101100524346 Xenopus laevis req-a gene Proteins 0.000 description 1
- 101100524347 Xenopus laevis req-b gene Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
一种用于设计异步电路的方法,该方法包括将异步电路中的多个异步控制器生成的多个脉冲信号分别确定为多个时钟信号,该多个时钟信号都源自于同一个初始时钟信号,彼此之间仅有相位偏移。该方法还包括确定多个时钟信号中的任意两个之间的传播时间差,并且计算对应的时序逻辑器件之间的数据传输时间段。该方法还包括比较时钟传播时间差和数据传输时间段,来确定数据信号是否先于时钟信号到达时序逻辑门,并且可以根据比较结果来进行在这两个异步控制器之间的相应延迟设置。通过上述的方式,可以统一地分析了异步电路的组合逻辑部分和控制部分的时序,因此可以将异步电路的相对时序约束转换为能被传统EDA工具识别的静态时序分析。在此基础之上,可以利用EDA工具对异步电路进行电路优化和时序约束,来有效提高设计异步单轨电路的效率。因此,该方法可以适用于大规模的异步电路设计。
Description
本公开涉及电路领域,更具体而言涉及异步电路的设计方法和电子设备。
诸如物联网(internet of things,IoT)和神经网络计算之类的各种应用场景都对芯片的功耗有很高的要求。异步电路具有低功耗、鲁棒性强等特性。因此,异步电路设计适合用于这些这些应用的芯片设计中。
然而异步电路产业化中遇到最大的阻碍是缺乏电子设计自动化(electronic design automation,EDA)工具的支持,传统的EDA工具基于全局时钟来对芯片进行时序分析和优化,而异步电路遵循的相对时序约束(relative timing constraints,RTC)目前暂时无法很好的被EDA工具所识别。异步电路可以分为单轨电路和双轨电路,其中双轨电路数据本身可代表其有效性。双轨电路对时序要求低、鲁棒性更强,但面积是相应同步电路的两倍以上。单轨电路有和同步电路相似的数据通路,面积和同步电路相近,适合迁移到同步EDA工具上进行设计。单轨电路的关键是需要进行数据和握手协议的延迟匹配,对时序要求比双轨更高。由于面积上的优势,现有芯片更多的选择单轨电路来进行异步设计。
目前主流的做法是将异步单轨电路的RTC转化成可被EDA工具识别的静态时序分析(static timing analysis,STA)。在此基础上,研究者们尝试了将异步电路的组合逻辑部分和控制部分分开进行约束的方法,保证控制部分的延迟大于相应的组合逻辑部分。然而,分开约束的方法没有考虑异步电路的整体性,难于在大规模集成电路中使用。
发明内容
鉴于上述问题,本公开的实施例旨在提供一种用于设计异步电路的方法和电子设备。
根据本公开的第一方面,提供一种用于设计异步电路的方法。该方法包括将异步电路中的第一异步控制器生成的第一脉冲信号确定为第一时钟信号;以及将异步电路中的第二异步控制器生成的第二脉冲信号确定为第二时钟信号。第二异步控制器与第一异步控制器耦合,并且第二时钟信号相对于第一时钟信号偏移第一预定时间量。该方法还包括生成与第一时钟信号和第二时钟信号对应的第一时钟传播差值,以及确定第一时序逻辑门和第二时序逻辑门之间的第一数据传播时间段。第一时序逻辑门耦合至第一异步控制器并且基于第一脉冲信号进行操作,第二时序逻辑门耦合至第二异步控制器并且基于第二脉冲信号进行操作。该方法进一步包括生成与第一数据传播时间段和第一时钟传播差值相关的延迟报告。通过将各个异步控制器的用于控制时序逻辑器件操作的脉冲信号表示为源自同一个源时钟但是具有不同相位和不同传输路径的时钟信号,常规EDA设计工具因此将其视为同步时钟并且计算各个时钟信号的时序路径。此外,常规EDA工具可以对异步电路的组合逻辑部分的数据传播时序进行分析。在此基础之上,通过比较控制部分和组合逻辑部分的传播延迟,可以相应地确定异步电路的延迟设置并且确保异步电路的时序正确性。由于通过上述的方式统一地分析了异步电路的组合逻辑部分和控制部分的时序,因此可以将异步电路的相对时序约束转换为能被传统EDA工具识别的静态时序分析。在此基础之上,可以利用EDA工具对异步电路进行电路优 化和时序约束,来有效提高设计异步单轨电路的效率。因此,该方法可以适用于大规模的异步电路设计。
在一种可能的实现方式中,生成与第一时钟信号和第二时钟信号对应的第一时钟传播差值包括:确定第一时钟信号的第一时钟传播时间段和第二时钟信号的第二时钟传播时间段,第一时钟传播时间段表示从第一异步控制器接收到第一输入请求到第一异步控制器生成第一脉冲信号的时间段,第二时钟传播时间段表示从第一异步控制器接收到第一输入请求到第二异步控制器生成第二脉冲信号的时间段;以及确定第一时钟传播时间段和第二时钟传播时间段之间的第一时钟传播差值。
在一种可能的实现方式中,生成与第一数据传播时间段和第一时钟传播差值相关的延迟报告包括:生成表示第一数据传播时间段的第一数据传播时间值;将第一数据传播时间值和第一时钟传播差值相减以确定第一延迟值;以及生成包括第一延迟值的延迟报告。
在一种可能的实现方式中,生成与第一数据传播时间段和第一时钟传播差值相关的延迟报告包括:生成表示第一数据传播时间段的第一数据传播时间值;将第一数据传播时间值和第一时钟传播差值进行比较以生成比较结果;以及生成包括比较结果的延迟报告。
在一种可能的实现方式中,该方法还包括基于第一时钟传播差值和第一数据传播时间段,确定在第一异步控制器和第二异步控制器之间的延迟设置。
在一种可能的实现方式中,基于第一时钟传播差值和第一数据传播时间段,确定在第一异步控制器和第二异步控制器之间的延迟设置包括响应于第一数据传播时间段大于第一时钟传播差值,在第一异步控制器和第二异步控制器之间设置延迟电路;或响应于第一数据传播时间段不大于第一时钟传播差值,在第一异步控制器和第二异步控制器之间不设置延迟电路。通过在异步控制器之间设置延迟电路,可以确保数据信号先于脉冲信号到达时序逻辑器件,以实现正确的时序。
在一种可能的实现方式中,可以优化时序逻辑器件之间的组合逻辑器件的电路设计,以确保数据信号先于脉冲信号到达下级的时序逻辑器件。
在一种可能的实现方式中,响应于第一数据传播时间段大于第一时钟传播差值在第一异步控制器和第二异步控制器之间设置延迟电路包括确定第一时钟传播差值和第一数据传播差值之间的第一路径差值;确定延迟电路的单位延迟时间段;基于第一路径差值和单位延迟时间段,设置一个或多个串联的延迟电路,使得一个或多个串联的延迟电路的总延迟时间段不低于第一路径差值。通过在异步控制器之前设置一个或多个串联的单位延迟电路,可以以简单的方式确保确保数据信号先于脉冲信号到达时序逻辑器件,以确保实现的时序。此外,还可以通过一次添加一个单位延迟电路,然后重复之前的判断过程。在不满足时序要求的时候,再次添加一个单位延迟电路,其与之前添加的单位延迟电路串联在两个异步控制器之间,并且重复之前的判断过程,直至满足时序要求。通过这种方式,可以由处理器自动完成延迟电路的设置,而无需人工介入。因此,可以简化异步电路的设计。
在一种可能的实现方式中,该方法还包括将异步电路的第M异步控制器生成的第M脉冲信号确定为第M时钟信号,M表示大于0的整数;将异步电路的第N异步控制器生成的第N脉冲信号确定为第N时钟信号,第一异步控制器至第N异步控制器逐级耦合,第一异步控制器至第N异步控制器中的任意两个相邻异步控制器彼此之间偏移第一预定时间量,第N异步控制器的输出耦合至第M异步控制器的输入,其中N表示大于M的整数;确定时序周期P,其中P表示N与M之间的差值;基于时序周期P,确定第N异步控制器和第M异 步控制器之间的延迟设置。通过使用多个周期来分析非顺序异步电路,可以对包括非顺序的流水线架构的异步电路也实现时序分析,从而扩展了本公开的应用范围。
在一种可能的实现方式中,基于时序周期P,确定第N异步控制器和第M异步控制器之间的延迟设置包括确定第N时钟信号的第N时钟传播时间段,第N时钟传播时间段表示从第一异步控制器接收到第一输入请求到第N异步控制器生成第N脉冲信号的时间段;确定第M异步控制器在生成第M时钟信号之后的第P个时序周期中的时钟传播时间段;确定第N时钟传播时间段和第P个时序周期中的时钟传播时间段之间的第N时钟传播差值;确定第N时序逻辑门和第M时序逻辑门之间的第N数据传播时间段,第N时序逻辑门耦合至第N异步控制器并且基于第N脉冲信号进行操作,第M时序逻辑门耦合至第M异步控制器并且基于第M脉冲信号进行操作;以及基于第N时钟传播时间段和第N数据传播时间段,确定在第N异步控制器和第M异步控制器之间的延迟设置。通过使用多个周期来分析非顺序异步电路,可以对包括非顺序的流水线架构的异步电路也实现时序分析,从而扩展了本公开的应用范围。
在一种可能的实现方式中,该方法还包括在异步电路的综合期间维持异步电路的结构。通过在综合期间维持异步电路,可以确保异步电路的结构不会被EDA工具所优化。由于异步控制器存在环路,如果不维持的话,综合后的电路可能和预期不同,影响异步电路的功能。
在一种可能的实现方式中,基于第一时钟传播差值和第一数据传播时间段确定在第一异步控制器和第二异步控制器之间的延迟设置包括基于异步电路在不同工艺角下的第一时钟传播差值和第一数据传播时间段,确定在第一异步控制器和第二异步控制器之间的延迟设置。受到工艺、电压和温度(process votalge and temperature,PVT)的影响,同一芯片在不同操作条件下的延时都不同,这对异步电路的延时匹配过程是很重要的。在传播时序约束下,静态时序分析会针对不同工艺角下的时序模型来分析电路功能,确保在任何条件下被约束的电路都能满足时序要求。
在一种可能的实现方式中,该方法还包括确定第一脉冲信号的第一脉冲宽度和第二脉冲信号的第二脉冲宽度;以及响应于第一脉冲宽度或第二脉冲宽度低于脉冲宽度阈值,在第一异步控制器或第二异步控制器中相应地设置脉冲展宽电路以增宽第一脉冲信号或第二脉冲信号的宽度。传播时序约束将异步电路的握手过程视为时钟的传播过程,并且这个路径上有组合逻辑和寄存器的存在,因此使得静态时序分析无法得到实际产生的本地脉冲单激(click)信号的脉冲宽度。通过在满足其他时序约束后还对异步电路进行了实现后的时序仿真,可以确定实际上每一级的click脉冲宽度是否满足寄存器的最小脉冲宽度要求。如果需要展宽本地脉冲的宽度,则可以在异步控制器中的寄存器输出引脚上加入缓冲单元以进一步确保异步电路的时序正确性。
在一种可能的实现方式中,异步电路包括单轨异步电路;第一异步控制器为初始异步控制器;以及第一异步控制器和第二异步控制器均包括相位解耦控制器。
在一种可能的实现方式中,第二异步控制器还耦合至异步电路中的第四异步控制器。该方法进一步包括将第四异步控制器生成的第四脉冲信号确定为第四时钟信号;将第二异步控制器针对来自第四异步控制器的请求生成的第二脉冲信号确定为第五时钟信号,第五时钟信号相对于第四时钟信号偏移第二预定时间量;将第二时钟信号指派至第一时钟分组并且将第五时钟信号指派至第二时钟分组,第二时钟分组不同于第一时钟分组;确定第四时钟信号的第五时钟传播时间段和第五时钟信号的第五时钟传播时间段,第五时钟传播时间段表示从第 四异步控制器接收到第四输入请求到第四异步控制器生成第四脉冲信号的时间段,第五时钟传播时间段表示从第四异步控制器接收到第四输入请求到第二异步控制器生成第五脉冲信号的时间段;确定第四时钟传播时间段和第五时钟传播时间段之间的第四时钟传播差值;确定第四时序逻辑门和第五时序逻辑门之间的第四数据传播时间段,第四时序逻辑门耦合至第四异步控制器并且基于第四脉冲信号进行操作,第五时序逻辑门耦合至第二异步控制器并且基于第五脉冲信号进行操作;以及基于第四时钟传播差值和第四数据传播时间段,确定在第四异步控制器和第二异步控制器之间的延迟设置。在该实现方式中,在同一个端口上定义多个时钟,后定义的时钟并不会覆盖之前存在的时钟,并且将物理上不会同时存在的时钟分组以打断它们之间的时序分析,然后将多个时钟与不同的输入一一对应来约束电路,并且计算延迟。这样,可以对包括复用器和解复用器在内的条件选择异步电路也能实现正确的时序分析,并且根据时序分析结果进行相应延迟设置,从而扩展了本公开的应用范围。
在一种可能的实现方式中,该第一预定时间量小于脉冲信号的周期的第一比例,例如小于百分之一、千分之一或万分之一。通过将预定时间量设置为远小于脉冲信号的周期,可以防止多个脉冲信号彼此之间的干扰。
根据本公开的第二方面,提供一种计算机可读存储介质。计算机可读存储介质存储多个程序,多个程序被配置为一个或多个处理器执行,多个程序包括用于执行根据第一方面的方法的指令。
根据本公开的第三方面,提供一种计算机程序产品。该计算机程序产品包括多个程序,多个程序被配置为一个或多个处理器执行,多个程序包括用于执行根据第一方面的方法的指令。
根据本公开的第四方面,提供一种电子设备,包括一个或多个处理器;包括计算机指令的存储器,计算机指令在由电子设备的一个或多个处理器执行时使得电子设备执行根据第一方面的方法。
根据本公开的第五方面,提供一种电子设备,包括时钟信号确定单元、时钟传播差值生成单元、数据传播时间段确定单元和延迟报告生成单元。时钟信号确定单元用于将异步电路中的第一异步控制器生成的第一脉冲信号确定为第一时钟信号;将异步电路中的第二异步控制器生成的第二脉冲信号确定为第二时钟信号,第二异步控制器与第一异步控制器耦合,并且第二时钟信号相对于第一时钟信号偏移第一预定时间量。时钟传播差值生成单元用于生成与第一时钟信号和第二时钟信号对应的第一时钟传播差值。数据传播时间段确定单元用于确定第一时序逻辑器件和第二时序逻辑器件之间的第一数据传播时间段,第一时序逻辑器件耦合至第一异步控制器并且基于第一脉冲信号进行操作,第二时序逻辑器件耦合至第二异步控制器并且基于第二脉冲信号进行操作。延迟报告生成单元用于生成与第一数据传播时间段和第一时钟传播差值相关的延迟报告。
通过将各个异步控制器的用于控制时序逻辑器件操作的脉冲信号表示为源自同一个源时钟但是具有不同相位和不同传输路径的时钟信号,常规EDA设计工具因此将其视为同步时钟并且计算各个时钟信号的时序路径。此外,常规EDA工具可以对异步电路的组合逻辑部分的数据传播时序进行分析。在此基础之上,通过比较控制部分和组合逻辑部分的传播延迟,可以相应地确定异步电路的延迟设置并且确保异步电路的时序正确性。由于通过上述的方式统一地分析了异步电路的组合逻辑部分和控制部分的时序,因此可以将异步电路的相对时序约束转换为能被传统EDA工具识别的静态时序分析。在此基础之上,可以利用EDA工具对异 步电路进行电路优化和时序约束,来有效提高设计异步单轨电路的效率。因此,该方法可以适用于大规模的异步电路设计。
在一种可能的实现方式中,时钟传播差值生成单元包括:时钟传播时间段确定单元,用于确定第一时钟信号的第一时钟传播时间段和第二时钟信号的第二时钟传播时间段,第一时钟传播时间段表示从第一异步控制器接收到第一输入请求到第一异步控制器生成第一脉冲信号的时间段,第二时钟传播时间段表示从第一异步控制器接收到第一输入请求到第二异步控制器生成第二脉冲信号的时间段;以及时钟传播差值确定单元,用于确定第一时钟传播时间段和第二时钟传播时间段之间的第一时钟传播差值。
在一种可能的实现方式中,电子设备还包括延迟设置确定单元,用于基于第一时钟传播差值和第一数据传播时间段,确定在第一异步控制器和第二异步控制器之间的延迟设置。
在一种可能的实现方式中,延迟设置确定单元进一步用于响应于第一数据传播时间段大于第一时钟传播差值,在第一异步控制器和第二异步控制器之间设置延迟电路;或响应于第一数据传播时间段不大于第一时钟传播差值,在第一异步控制器和第二异步控制器之间不设置延迟电路。通过在异步控制器之间设置延迟电路,可以确保数据信号先于脉冲信号到达时序逻辑器件,以实现正确的时序。
在一种可能的实现方式中,时钟信号确定单元进一步用于将所述异步电路的第M异步控制器生成的第M脉冲信号确定为第M时钟信号,M表示大于0的整数;将异步电路的第N异步控制器生成的第N脉冲信号确定为第N时钟信号,第一异步控制器至第N异步控制器逐级耦合,第一异步控制器至第N异步控制器中的任意两个相邻异步控制器彼此之间偏移第一预定时间量,第N异步控制器的输出耦合至第M异步控制器的输入,其中N表示大于M的整数。电子设备还包括时序周期确定单元,用于确定时序周期P,其中P表示N与M之间的差值。延迟设置确定单元进一步用于基于时序周期P,确定第N异步控制器和第M异步控制器之间的延迟设置。通过使用多个周期来分析非顺序异步电路,可以对包括非顺序的流水线架构的异步电路也实现时序分析,从而扩展了本公开的应用范围。
在一种可能的实现方式中,电子设备还包括维持单元,用于在异步电路的综合期间维持异步电路的结构。通过在综合期间维持异步电路,可以确保异步电路的结构不会被EDA工具所优化。由于异步控制器存在环路,如果不维持的话,综合后的电路可能和预期不同,影响异步电路的功能。
在一种可能的实现方式中,延迟设置确定单元进一步用于基于异步电路在不同工艺角下的第一时钟传播差值和第一数据传播时间段,确定在第一异步控制器和第二异步控制器之间的延迟设置。受到工艺、电压和温度(process votalge and temperature,PVT)的影响,同一芯片在不同操作条件下的延时都不同,这对异步电路的延时匹配过程是很重要的。在传播时序约束下,静态时序分析会针对不同工艺角下的时序模型来分析电路功能,确保在任何条件下被约束的电路都能满足时序要求。
在一种可能的实现方式中,电子设备还包括脉冲展宽单元。脉冲展宽单元用于确定第一脉冲信号的第一脉冲宽度和第二脉冲信号的第二脉冲宽度;以及响应于第一脉冲宽度或第二脉冲宽度低于脉冲宽度阈值,在第一异步控制器或第二异步控制器中相应地设置脉冲展宽电路以增宽第一脉冲信号或第二脉冲信号的宽度。传播时序约束将异步电路的握手过程视为时钟的传播过程,并且这个路径上有组合逻辑和寄存器的存在,因此使得静态时序分析无法得到实际产生的本地脉冲click信号的脉冲宽度。通过在满足其他时序约束后还对异步电路进行 了实现后的时序仿真,可以确定实际上每一级的click信号的脉冲宽度是否满足寄存器的最小脉冲宽度要求。如果需要展宽本地脉冲的宽度,则可以在异步控制器中的寄存器输出引脚上加入缓冲单元以进一步确保异步电路的时序正确性。
在一种可能的实现方式中,第二异步控制器还耦合至异步电路中的第四异步控制器;时钟信号确定单元进一步用于将第四异步控制器生成的第四脉冲信号确定为第四时钟信号;将第二异步控制器针对来自第四异步控制器的请求生成的第二脉冲信号确定为第五时钟信号,第五时钟信号相对于第四时钟信号偏移第二预定时间量;电子设备还包括时钟指派单元,用于将第二时钟信号指派至第一时钟分组并且将第五时钟信号指派至第二时钟分组,第二时钟分组不同于第一时钟分组;时钟传播时间段确定单元进一步用于确定第四时钟信号的第五时钟传播时间段和第五时钟信号的第五时钟传播时间段,第五时钟传播时间段表示从第四异步控制器接收到第四输入请求到第四异步控制器生成第四脉冲信号的时间段,第五时钟传播时间段表示从第四异步控制器接收到第四输入请求到第二异步控制器生成第五脉冲信号的时间段;时钟传播差值确定单元进一步用于确定第四时钟传播时间段和第五时钟传播时间段之间的第四时钟传播差值;数据传播时间段进一步用于确定第四时序逻辑门和第五时序逻辑门之间的第四数据传播时间段,第四时序逻辑门耦合至第四异步控制器并且基于第四脉冲信号进行操作,第五时序逻辑门耦合至第二异步控制器并且基于第五脉冲信号进行操作;以及延迟设置确定单元进一步用于基于第四时钟传播差值和第四数据传播时间段,确定在第四异步控制器和第二异步控制器之间的延迟设置。在该实现方式中,在同一个端口上定义多个时钟,后定义的时钟并不会覆盖之前存在的时钟,并且将物理上不会同时存在的时钟分组以打断它们之间的时序分析,然后将多个时钟与不同的输入一一对应来约束电路,并且计算延迟。这样,可以对包括复用器和解复用器在内的条件选择异步电路也能实现正确的时序分析,并且根据时序分析结果进行相应延迟设置,从而扩展了本公开的应用范围。
应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
图1示出了根据本公开的一些实施例的电路系统的示意框图;
图2示出了根据本公开的一些实施例的流水线架构的异步电路的示意电路图;
图3示出了根据本公开的一些实施例的异步控制器的示意电路图;
图4示出了根据本公开的另一些实施例的异步控制器的示意电路图;
图5示出了根据本公开的一些实施例的时钟信号传播路径示意图;
图6示出了根据本公开的一些实施例的顺序电路的时钟信号传播示意框图;
图7示出了根据本公开的一些实施例的非顺序电路的时钟信号传播示意框图;
图8示出了根据本公开的一些实施例的条件选择电路的时钟信号传播示意框图;
图9示出了根据本公开的另一些实施例的异步控制器的示意电路图;
图10示出了根据本公开的另一些实施例的异步控制器的示意电路图;
图11示出了根据本公开的根据本公开的一些实施例的方法的示意流程图;
图12示出了根据本公开的一些实施例的电子设备的示意框图;以及
图13示出了可以用来实施本公开的一些实施例的示例设备的框图。
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。术语“和/或”表示由其关联的两项的至少一项。例如“A和/或B”表示A、B、或者A和B。下文还可能包括其他明确的和隐含的定义。应理解,本申请实施例提供的技术方案,在以下具体实施例的介绍中,某些重复之处可能不再赘述,但应视为这些具体实施例之间已有相互引用,可以相互结合。
如上所述,在异步电路设计的过程中,常规方案将异步电路的组合逻辑部分和控制部分分开进行约束,从而保证控制部分的延迟大于相应的组合逻辑部分。然而,这样的分开约束没有考虑异步电路的整体性,往往需要多次的人工迭代来满足时序,难于在大规模集成电路中使用。
在本公开的一些实施例中,通过将各个异步控制器的用于控制时序逻辑器件操作的脉冲信号表示为源自同一个源时钟但是具有不同相位和不同传输路径的时钟信号,常规EDA设计工具因此将其视为同步时钟并且计算各个时钟信号的时序路径。此外,常规EDA工具可以对异步电路的组合逻辑部分的数据传播时序进行分析。在此基础之上,通过比较控制部分和组合逻辑部分的传播延迟,可以相应地确定异步电路的延迟设置并且确保异步电路的时序正确性。在本公开的实施例中,由于通过上述的方式统一地分析了异步电路的组合逻辑部分和控制部分的时序,因此可以将异步电路的相对时序约束转换为能被传统EDA工具识别的静态时序分析。在此基础之上,可以利用EDA工具对异步电路进行电路优化和时序约束,来有效提高设计异步单轨电路的效率。因此,本公开的实施例可以适用于大规模的异步电路设计。
图1示出了根据本公开的一些实施例的电路系统100的示意框图。电路系统100包括第一装置10、异步电路20和第二装置30。第一装置10例如为源装置(source device),并且第二装置30例如宿装置(sink device)。在一个实施例中,电路系统100可以被集成到单个芯片中。备选地,第一装置10、异步电路20和第二装置30可以在不同的芯片或装置中实现。本公开对此不进行限制。在单向传输情形(例如电路系统100是流水线系统)中,第一装置10发送数据信号给异步电路20。异步电路20将处理好的数据发送给第二装置30以第二装置30使用或进一步处理。为了实现异步处理,第一装置10除了发送数据信号之外还要发送请求信号给异步电路20,异步电路20在接收到请求之后对数据信号进行处理并且同时发送确认信号给第一装置10以确定接收到数据信号。为了确保数据能够正确的被处理,数据信号通常要比请求信号更早地到达异步电路20。类似地,异步电路20除了发送数据信号之外还要发送请求信号给第二装置30,第二装置30在接收到请求之后对数据信号进行处理或使用并且同时发送确认信号给异步电路20以确定接收到数据信号。为了确保数据能够正确的被处理,数据信号通常要比请求信号更早地到达第二装置30。可以理解,在一些实施例中,数据在电路 系统100中可以双向传输,即,取决于数据传输方向,第一装置10可以为宿装置或源装置,并且第二装置30可以为源装置或宿装置。
图2示出了根据本公开的一些实施例的流水线架构的异步电路200的示意电路图。在一个实施例中,异步电路200可以是图1的异步电路20的一种具体实现方式。可以理解,本公开的异步电路不限于异步电路200,而是可以具有其它实现形式。异步电路200包括数据路径和时序路径。时序路径包括彼此级联耦合的第一异步控制器24、第二异步控制器26和第三异步控制器28。数据路径包括第一时序逻辑器件21、第一功能电路23、第二时序逻辑器件25、第二功能电路27和第三时序逻辑器件29。可以理解,数据路径可以包括更多或更少的时序逻辑器件和功能电路,本公开对此不进行限制。在一个实施例中,功能电路可以由一个或多个组合逻辑器件实现。在本文中,“时序逻辑器件”表示具有时钟控制输入或脉冲控制信号的逻辑器件。时序逻辑器件在任意时刻的输出不仅取决于当时的输入信号,而且还取决于时钟信号和时序逻辑器件原来的状态,换言之,还可以与以前的输入有关。时序逻辑器件例如包括触发器、寄存器和寄存器等。相对而言,“组合逻辑器件”表示不具有时钟控制输入或脉冲控制信号的逻辑器件。组合逻辑器件在任意时刻的输出仅仅取决于该时刻的输入,而与组合逻辑器件原来的状态无关。组合逻辑门例如包括与门、或门、与非门、异或门、非门和缓冲器等。
在一个实施例中,第一异步控制器24从上游器件接收请求信号In_Req,并且相应地向上游器件发送确认信号In_Ack。第二异步控制器26从第一异步控制器24接收请求信号req1,并且相应地向第一异步控制器24发送确认信号ack1。第三异步控制器28从第二异步控制器26接收请求信号req2,并且相应地向第二异步控制器26发送确认信号ack2。在向下游器件发送数据信号的情形下,第三异步控制器28向下游器件发送请求信号Out_Req,并且接收来自下游器件的确认信号Out_Ack。在一个实施例中,上游器件例如是第一装置10,并且下游器件例如是第三装置30。第一异步控制器24、第二异步控制器26和第三异步控制器28具有相同的配置,例如第一异步控制器24、第二异步控制器26和第三异步控制器28均为相位解耦的click电路。备选地,第一异步控制器24、第二异步控制器26和第三异步控制器28可以由不同的异步控制器实现,本公开对此不进行限制。
在数据路径中,第一时序逻辑器件21耦合至上游器件并且接收数据信号In_Data,并且响应于来自第一异步控制器24的第一脉冲信号将数据信号In_Data传输至第一功能电路23。第一功能电路23接收数据信号In_Data并且将经处理的第一数据信号传输至第二时序逻辑器件25。第二时序逻辑器件25响应于来自第二异步控制器26的第二脉冲信号将第一数据信号传输至第二功能电路27。第二功能电路27从第二时序逻辑器件25接收第一数据信号并且将经处理的第二数据信号传输至第三时序逻辑器件29。第三时序逻辑器件29响应于来自第三异步控制器28的第三脉冲信号将第二数据信号传输至下游器件。在一个实施例中,第一时序逻辑器件21、第二时序逻辑器件25和第三时序逻辑器件29具有相同的配置,例如第一时序逻辑器件21、第二时序逻辑器件25和第三时序逻辑器件29均为寄存器。备选地,第一时序逻辑器件21、第二时序逻辑器件25和第三时序逻辑器件29可以由不同的时序逻辑器件实现,本公开对此不进行限制。
为了确保异步电路工作的正确性,在时序上,数据信号要在脉冲信号之前到达时序逻辑器件。例如,数据信号In_Data需要在第一异步控制器24输出的第一脉冲信号之前到达第一时序逻辑器件21。类似地,来自第一功能电路23的第一数据信号需要在来自第二异步控制 器26输出的第二脉冲信号之前到达第二时序逻辑器件25,并且来自第二功能电路27的第二数据信号需要在来自第三异步控制器28输出的第三脉冲信号之前到达第三时序逻辑器件29。因此,在异步电路的设计阶段,需要对异步电路的各个部件的时序进行分析,以确保异步电路的正确操作。
图3示出了根据本公开的一些实施例的异步控制器24的示意电路图。在一个实施例中,异步控制器24具有异或门31、同或门32和与门33、第一相位寄存器34和第二相位寄存器35。异或门31、同或门32和与门33被配置为产生本地脉冲信号。该脉冲信号会驱动相位寄存器34、35和第一时序逻辑器件21,以用于缓存数据和开始下一次的握手协议。当上游器件需要发送有效数据时会将In_Req信号进行一次翻转。该输入请求信号In_Req与输入确认信号In_Ack信号在异或门31处进行异或操作产生一个高电平。下游器件(例如第二异步控制器26)接收到异步控制器24发送的有效数据时会将输出确认信号Out_Ack翻转。该信号与输出请求信号Out_Req在同或门32处进行同或得到高电平。当同时满足输入请求信号In_Req不等于输入确认信号In_Ack并且输出请求信号Out_Req等于输出确认信号Out_Ack时,与门33会产生一个拉高的click信号作为第一时序逻辑器件21的时钟信号,用来捕获和存储数据。同时click信号会将相位寄存器34和35翻转,改变输入确认信号In_Ack和输出请求信号Out_Req的值,从而完成一次握手协议。此外,这种握手协议是两相的,即输入确认信号In_Req信号的每一次翻转都代表着一个有效数据的到来,而不是高电平才有效。虽然在图3中示出了一种具体的异步控制器的示意电路图,但是本公开不限于此,也可以使用其它异步控制器。
图4示出了根据本公开的另一些实施例的异步控制器40的示意电路图。在一个实施例中,异步控制器40具有第一与门41、第二与门42、或门43和相位寄存器44。第一与门41、第二与门42和或门43被配置为产生本地脉冲信号。该脉冲信号会驱动相位寄存器44和第一时序逻辑器件21,以用于缓存数据和开始下一次的握手协议。当上游器件需要发送有效数据时会将In_Req信号进行一次翻转。该输入请求信号In_Req的反相信号与输入确认信号In_Ack信号和输出确认信号Out_Ack在第一与门41处进行与操作,并且该输入请求信号In_Req与输入确认信号In_Ack信号和输出确认信号Out_Ack的反相信号在第二与门42处进行与操作。第一与门41和第二与门42的输出在或门43处进行或操作。当同时满足输入请求信号In_Req不等于输入确认信号In_Ack并且输出请求信号Out_Req等于输出确认信号Out_Ack时,或门43会产生一个拉高的click信号作为第一时序逻辑器件21的时钟信号,用来捕获和存储数据。同时click信号会将相位寄存器44翻转,改变输入确认信号In_Ack和输出请求信号Out_Req的值,从而完成一次握手协议。此外,这种握手协议是两相的,即输入确认信号In_Req信号的每一次翻转都代表着一个有效数据的到来,而不是高电平才有效。
异步电路中的捆绑数据握手协议需要进行延迟匹配来确保数据的有效性,即,异步控制器发出的请求信号到达下一级的异步控制器的延迟要大于对应数据通路的最大延迟才能保证下一级时序逻辑器件能锁存到正确的数据。然而,由于click控制器结构是将相位寄存器的输出作为req信号来产生下一级click电路的时钟信号,这种路径并不是一条时序路径,因此常规EDA工具无法对它进行时序分析。在本公开的一些实施例中,可以对异步电路进行约束,使得常规的EDA工具能够同时对异步电路的控制部分和数据路径进行时序分析,从而确保异步电路能正常工作。
下面将结合异步电路的示例来描述根据本公开的一些实施例的用于设计异步电路的方 法。该方法可以由诸如计算机之类的电子设备的处理器执行。例如,在将表示异步电路的网表文件加载到电子设备中时,处理器可以根据本公开的一些实施例对所设计的异步电路进行时序分析。当时序分析结果表明该异步电路各个部件之间的时序不正确(例如两个异步控制器之间的延迟小于对应时序逻辑器件之间的延迟)时,可以基于时序分析的结果对异步电路进行调整,例如在异步控制器之间增加延迟电路模块。虽然在此以处理器来描述本公开的一些实施例的执行,但是这仅是示意,而非对本公开的范围进行限制。可以使用其它计算装置,例如图形处理器等,来实施本公开的一些实施例的方法。
在一个实施例中,处理器将异步电路中的第一异步控制器生成的第一脉冲信号确定为第一时钟信号,并且将异步电路中的第二异步控制器生成的第二脉冲信号确定为第二时钟信号。第二异步控制器与第一异步控制器耦合,并且第二时钟信号相对于第一时钟信号偏移第一预定时间量。
在一个实施例中,处理器可以将异步电路的事件起点作为第一异步控制器,即,选择产生第一个本地脉冲信号的异步控制器(例如流水线的第一级的异步控制器)作为第一异步控制器。然后将第一异步控制器的本地脉冲确定为第一时钟信号clk1,其时钟周期和上升沿下降沿可以具有默认值。在此情形下,第一时钟信号clk1为源时钟信号。例如,处理器可以将图2的异步控制器24设置为源异步控制器,并且将异步控制器24产生的脉冲信号作为时钟信号clk1。
处理器可以将下一级异步控制器产生的本地脉冲声明成第二时钟信号clk2,其源时钟信号为第一时钟信号clk1。第二时钟信号clk2相对于第一时钟信号clk1偏移一个微小量,这样第二时钟信号clk2会被视为是由第一时钟信号clk1沿传播路径偏移预定值(例如0.01纳秒,0.01ns)得到的一个子时钟,第二时钟信号clk2与第一时钟信号clk1有固定的相位关系,可以可以被EDA软件视为是同步时钟。由此再下一级的控制器产生的本地脉冲被视为由第二时钟信号clk2传播得到的第三时钟信号clk3。类似地,第三时钟信号clk3相对于第二时钟信号clk2偏移同样一个微小量。通过这种方法,一个n级的流水线可以得到n个有相位关系的时钟clk1、clk2……clkn。由于这n个时钟共享同一个源时钟,即第一时钟信号clk1对应的时钟,只是传播路径不同,拥有不同的相位差,因此EDA工具会将其看成同步时钟并分析这n个时钟之间的时序路径。通过将偏移预定值设置为远小于脉冲信号的周期,可以防止多个脉冲信号彼此之间的干扰。
图5示出了根据本公开的一些实施例的时钟信号传播路径500的示意图。第一异步控制器产生第一脉冲信号click1,第二异步控制器产生第二脉冲信号click2。第一异步控制器将第一脉冲信号click1提供至第一时序逻辑器件52,并且第二异步控制器将第二脉冲信号click2提供至第二时序逻辑器件56。第一时序逻辑器件52响应于接收到第一脉冲信号click1进行操作,例如将所接收的数据锁存并且提供至功能电路54。第二时序逻辑器件56响应于接收到第二脉冲信号click2进行操作,例如将来自功能电路54的经计算的数据锁存并且提供至下游器件。
如上所述,在一个实施例中,处理器将异步电路中的第一异步控制器生成的第一脉冲信号click1确定为第一时钟信号clk1,并且将异步电路中的第二异步控制器生成的第二脉冲信号click2确定为第二时钟信号clk2。处理器继而可以确定第一时钟信号clk1的第一时钟传播时间段和第二时钟信号clk2的第二时钟传播时间段,其中第一时钟传播时间段表示从第一异步控制器接收到第一输入请求In_Req到第一异步控制器生成第一脉冲信号click1的时间段, 第二时钟传播时间段表示从第一异步控制器接收到第一输入请求In_Req到第二异步控制器生成第二脉冲信号click2的时间段。例如,虚线51表示第一时钟信号clik1的传播路径,并且具有第一传播时间段tc1=1ns,而虚线53表示第二时钟信号clk2的传播路径,并且具有第二传播时间段tc2=5ns。
处理器可以确定第一时钟传播时间段tc1和第二时钟传播时间段tc2之间的第一时钟传播差值△t。例如,在第一时钟传播时间段tc1为1ns,并且第二时钟传播时间段tc2为5ns的情形下,第一时钟传播差值△tc=tc2-tc1=4ns。
处理器可以确定第一时序逻辑器件52和第二时序逻辑器件56之间的第一数据传播时间段td1。第一时序逻辑器件52耦合至第一异步控制器并且基于第一脉冲信号进行操作,第二时序逻辑器件54耦合至第二异步控制器并且基于第二脉冲信号进行操作。在图5中,以虚线55表示从第一时序逻辑器件52到第二时序逻辑器件56之间的第一数据传播时间段td1。
在一个实施例中,基于第一时钟传播差值△tc和第一数据传播时间段td1,处理器可以生成延迟报告。该延迟报告可以在异步电路设计过程中自动显示在显示屏上或是响应于用户的指令或输入而在显示屏上显示。备选地,该延迟包括也可以不显示,而是以有线或无线的方式发送至其它电子设备以供分析。延迟报告可以包括与第一数据传播时间段和第一时钟传播差值相关的多种信息。例如,延迟报告可以包括表示第一数据传播时间段td1的第一数据传播时间值、第一时钟传播差值△tc、表示第一数据传播时间段td1和第一时钟传播差值△tc的相减结果的第一延迟值、第一数据传播时间段td1和第一时钟传播差值△tc的比较结果、表示第一时钟传播时间段的第一时钟传播时间值、或表示第二时钟传播时间段的第二时钟传播时间值,等等。延迟报告可以包括用于确定数据信号是否早于时钟信号的任何相关信息。本公开对此不进行限制。
在一个实施例中,基于第一时钟传播差值△tc和第一数据传播时间段td1,处理器可以确定在第一异步控制器和第二异步控制器之间的延迟设置。例如,处理器可以基于延迟报告里的各种信息来确定延迟设置。为了确保正确的时序,数据信号需要先于脉冲信号到达时序落器件。例如,在第二时序逻辑器件处,数据路径的信号需要先于脉冲信号click2到达。因此,如果处理器通过EDA工具确定第一数据传播时间段td1不大于第一时钟传播差值△tc,例如不大于4ns,则表明图5中的电路的时序是正确的,可以维持第一异步控制器和第二异步控制器之间的当前延迟设置,即无需添加额外的延迟电路。如果处理器通过EDA工具确定第一数据传播时间段td1大于第一时钟传播差值△tc,例如大于4ns,则表明图5中的电路的时序是错误的,在第一异步控制器和第二异步控制器之间需要添加额外的延迟电路。在一个实施例中,所添加的延迟电路的延迟不小于第一数据传播时间段td1和第一时钟传播差值△tc之间的差值。在一个实施例中,可以基于第一数据传播时间段td1和第一时钟传播差值△tc之间的差值去选择适当的延迟电路。在另一个实施例中,可以选择具有单位延迟时间段的单位延迟电路,并且将其插入在第一异步控制器和第二异步控制器之间,并且重复上述过程,以确定第一数据传播时间段td1是否不大于经修改的第一时钟传播差值△tc。如果不大于,则表明在插入延迟电路之后,经修改的异步电路已经符合时序要求。如果大于,则可以在第一异步控制器和第二异步控制器之间继续添加单位延迟电路,以使得新添加的单位延迟电路与先前添加的单位延迟电路串联在在第一异步控制器和第二异步控制器之间,直至满足时序要求。备选地,还可以优化功能电路54的电路设计,以确保第一数据传播时间段td1不大于第一时钟传播差值△tc。
图6示出了根据本公开的一些实施例的顺序电路600的时钟信号传播示意框图。在一个实施例中,处理器对第一异步控制器62进行设置,定义一个源时钟名字为clk1。该源时钟的周期为30ns,波形形状为0ns上升,2ns处下降,定义点为第一异步控制器生成click脉冲的信号线。处理器对第二异步控制器64进行设置,定义一个子时钟名为clk2,其时钟来源为上一级时钟,即第一异步控制器62的相位寄存器的时钟端,偏移量为上一级时钟向后移动0.01ns,定义点为第二异步控制器64生成click脉冲的信号线。类似地,处理器对第三异步控制器66进行设置,定义一个子时钟名为CLK3,其时钟来源为第二异步控制器64的相位寄存器的时钟端,偏移量为上一级时钟向后移动0.01ns,定义点为第三异步控制器66生成click脉冲的信号线。以此类推,对第n个click单元产生的本地脉冲信号,处理器将其声明成一个从第n-1个时钟产生的子时钟即可。
上文描述了顺序异步电路的时序情形。然而异步电路并不仅包括顺序异步电路,而是还可以包括其它类型的异步电路,例如非顺序流水线电路和条件选择异步电路等。图7示出了根据本公开的一些实施例的非顺序异步电路700的时钟信号传播示意框图。非顺序异步电路700例如包括第M异步控制器72、第M+1异步控制器74和第N异步控制器76,其中M表示大于0的整数,N表示大于M的整数。为了便于描述,在图7中未示出与异步控制器耦合的时序逻辑器件,然而可以理解非顺序异步电路700包括与异步控制器对应的时序逻辑器件。第M异步控制器72可以接收来自上游器件的请求信号,并且第M+1异步控制器74可以接收来自第M异步控制器72的请求信号。第M异步控制器72和第M+1异步控制器74可以与图6中的第一异步控制器62和第二异步控制器64的操作相似,在此不再赘述。在一些实施例中,在第M异步控制器72和第N异步控制器76之间可以级联一个或多个异步控制器,例如第M+1异步控制器。在一些实施例中,可以没有第M+1异步控制器,第N异步控制器直接级联在第M控制器之后。
与图6不同,第N异步控制器76并未级联到下游器件,而是耦合至第M异步控制器72。换言之,第M异步控制器72的脉冲信号的输出还取决于第N异步控制器的请求信号。因此,图7中的电路构成了非顺序的异步电路。在一个实施例中,处理器将异步电路的第N异步控制器生成的第N脉冲信号确定为第N时钟信号,其中第一异步控制器至第N异步控制器逐级耦合,第一异步控制器至第N异步控制器中的任意两个相邻异步控制器彼此之间偏移第一预定时间量,第N异步控制器的输出耦合至第M异步控制器的输入,其中N表示大于M的整数。处理器继而确定确定时序周期P,其中P表示N与M之间的差值。
在一个实施例中,流水线中第N异步控制器对应的寄存器要发送数据给第M异步控制器对应的寄存器,这是一个非顺序的数据传输。在此情形下,正确的建立时间检查应该在第M异步控制器72的第N个脉冲和第N异步控制器76的第M个脉冲之间进行。在常规的EDA时序分析中,建立时间检查会检查第M异步控制器72的第一个脉冲和第N异步控制器76的第一个脉冲,造成时序分析的错误。为了修正此类时序分析,在本公开的一些实施例中,处理器在EDA时序分析中将非顺序数据传输约束设置为多周期的时序分析,以保证时序分析的正确性。时序周期的周期数由发送阶段和接收阶段共同决定。当发送异步控制器为N并且接收异步控制器为M时,时序周期P为N-M。例如,当N=3并且M=1时,处理器可以确定周期数P为N-M=2。在此基础之上,处理器基于时序周期P,确定第N异步控制器和第M异步控制器之间的延迟设置。例如,当第N异步控制器传输到第M异步控制器的请求使得第M异步控制器的click信号早于从与第N异步控制器对应的时序逻辑器件传输至与第M异步 控制器对应的时序逻辑器件的数据信号到达与第M异步控制器对应的时序逻辑器件时,可以在第N异步控制器和第M异步控制器之间添加延迟电路。添加方式与上面针对图6所描述的添加方式相似,在此不再赘述。遵循这个原则,可以对所有非顺序传输的数据通路进行时序约束,保证其正确性。
在一个实施例中,处理器可以对第M异步控制器进行设置,定义一个源时钟名字为clkm,周期为30ns,波形形状为0ns上升,2ns处下降,定义点为第M异步控制器生成click脉冲的信号线。处理器对第M+1异步控制器进行设置,定义一个子时钟名为clkm+1,其时钟来源为上一级时钟,即第M异步控制器的相位寄存器的时钟端,偏移量为上一级时钟向后移动0.01ns,定义点为第M+1异步控制器生成click脉冲的信号线。类似地,处理器对第N异步控制器定义一个子时钟名为clkn,其时钟来源为第N-1异步控制器中的相位寄存器的时钟端,偏移量为上一级时钟向后移动0.01ns,定义点为第N异步控制器生成click脉冲的信号线。对第N异步控制器到第M异步控制器的时序分析,处理器设置一个多周期的时序检查,从clkn到clkm的时钟检查设置为N-M个周期,其规则为多周期时序分析的周期数由发送阶段和接收阶段共同决定。当发送阶段为N,接收阶段为M时,多周期时序分析数为N-M。
如上所述,除了上述提出的常规数据流控制器外,在实际的异步电路设计中可能还存在着更复杂的数据流控制,如条件选择控制复用器(Multiplexer,MUX)和解复用器(Demultiplexer,DEMUX)。对于单输入多输出的条件选择异步电路而言,需要保证选择信号在有效数据到达之前有效即可,这个可以延时匹配来保证。而对于多个输入和一个输出的条件选择异步电路,本地脉冲click可以由任意一个输入的req信号来触发产生,这些不同输入的延时可能是不同的,导致click脉冲产生的时间点是不固定的。因此,在本公开的一些实施例中可以块在同一个端口上定义多个时钟,后定义的时钟并不会覆盖之前存在的时钟,然后将多个时钟与不同的输入一一对应,根据不同输入的延时来决定对应子时钟与源时钟的相位关系,从而覆盖所有输入的时序关系。然而,实际上定义在同一个端口的多个时钟在物理上是不可能同时存在的,因此还需要将物理上不会同时存在的时钟分组,打断它们之间的时序分析。通过条件选择数据流约束,可以对条件选择控制器进行时序分析。
图8示出了根据本公开的一些实施例的条件选择电路800的时钟信号传播示意框图。条件选择电路800例如包括第一异步控制器82、第二异步控制器84和第三异步控制器86。为了便于描述,在图8中未示出与异步控制器耦合的时序逻辑器件,然而可以理解条件选择电路800包括与异步控制器对应的时序逻辑器件。第一异步控制器82可以接收来自上游器件的请求信号,并且第二异步控制器84和第三异步控制器86均可以接收来自第一异步控制器82的请求信号。在一个实施例中,处理器对第一异步控制器82进行设置,定义一个源时钟名字为clk1,周期为30ns,波形形状为0ns上升,2ns处下降,定义点为第一异步控制器82生成click脉冲的信号线。处理器对第二异步控制器84进行设置,定义一个子时钟名为clk2,其时钟来源为上一级时钟,即第一异步控制器82中的相位寄存器的时钟端,偏移量为上一级时钟向后移动0.01ns,定义点为第二异步控制器84生成click脉冲的信号线。类似地,处理器针对第三异步控制器86定义一个子时钟名为clk3,其时钟来源为第一异步控制器82中的相位寄存器的时钟端,偏移量为上一级时钟向后移动0.01ns,定义点为第三异步控制器86生成click脉冲的信号线。此外第三异步控制器86定义第二个子时钟名为clk4而不覆盖clk3,其时钟来源为第二异步控制器84中的相位寄存器的时钟端,偏移量为上一级时钟向后移动0.01ns,并且定义点与clk3一致。同时将时钟信号clk3与clk4设置为物理上不会同时存在的 时钟分组,打断两个时钟之间的时序分析。通过上述方式,可以对条件选择异步电路的时序也进行分析。例如,处理器可以确定在第一异步控制器82和第二异步控制器84或第三异步控制器86之间的延迟设置。例如,在第一异步控制器82和第二异步控制器84或第三异步控制器86之间是否需要插入延迟电路。延迟电路的插入方式与前面针对图5和图6所述的方式相似,在此不再赘述。
另一方面,从第三异步控制器86的角度而言,其不仅耦合至第二异步控制器84,也耦合至第一异步控制器82。在一个实施例中,可以将来自第一异步控制器82和第二异步控制器84的请求所对应生成的不同脉冲信号确定为不同的时钟信号,并且每个时钟信号都相对于上一级偏移一个预定时间量。由于物理实现上并不会同时存在两个脉冲或是时钟信号,因此可以将不同的时钟信号指派至不同的时钟信号组。处理器继而在不同的分组中,分别计算每组的时钟信号传播延迟并且如上所述地分析脉冲信号与数据信号的现有关系,以确定异步控制器之间的延迟设置。由此,可以对条件选择异步电路进行正确的时序分析。
图9示出了根据本公开的另一些实施例的异步控制器900的示意电路图。异步控制器900可以应用于调节异步电路中的单输入多输出的条件异步控制器。在一个实施例中,异步控制器900具有第一异或门91、第二异或门96、第一同或门92、第二同或门93、第三同或门99、与门94、第一相位寄存器95、第二相位寄存器97和第三相位寄存器98。第一异或门91、第一同或门92、第二同或门93和与门94被配置为产生本地脉冲信号。该脉冲信号会驱动相位寄存器95、97、98和时序逻辑器件,以用于缓存数据和开始下一次的握手协议。当上游器件需要发送有效数据时会将InA_req信号进行一次翻转。该输入请求信号InA_req与输入确认信号InA_ack信号在第一异或门91处进行异或操作产生一个高电平。第一下游器件(例如第二异步控制器26)接收到异步控制器900发送的有效数据时会将输出确认信号OutB_ack翻转。该信号与输出请求信号OutB_req在第一同或门92处进行同或得到高电平。类似地,第二下游器件接收到异步控制器900发送的有效数据时会将输出确认信号OutC_ack翻转。该信号与输出请求信号OutC_req在第一同或门92处进行同或得到高电平。当同时满足输入请求信号InA_req不等于输入确认信号InA_ack、输出请求信号OutB_req等于输出确认信号OutB_ack并且输出请求信号OutC_req等于输出确认信号OutC_ack时,与门97会产生一个拉高的click信号作为时序逻辑器件的时钟信号,用来捕获和存储数据。click信号会将第一相位寄存器95翻转以改变输入确认信号InA_ack的值。此外,基于sel信号、OutB_req信号和OutC_req,click信号会将相位寄存器97或98的输出改变以改变输出请求信号OutB_req或OutC_req的值,从而完成一次握手协议。此外,这种握手协议是两相的,即输入确认信号In_Req信号的每一次翻转都代表着一个有效数据的到来,而不是高电平才有效。为了确保异步电路的正确操作,选择信号sel可以在数据信号达到时序逻辑门之前到达异步控制器900。虽然在图9中示出了一种具体的异步控制器的示意电路图,但是本公开不限于此,也可以使用其它异步控制器。
图10示出了根据本公开的另一些实施例的异步控制器1000的示意电路图。异步控制器1000可以应用于调节异步电路中的多输入单输出的条件异步控制器。在一个实施例中,异步控制器1000具有第一异或门101、第二异或门102、第一同或门103、第二与门104、第二与门105、或门106、第一相位寄存器107、第三异或门108、第二相位寄存器109、第二同或门110和第三相位寄存器111。第一异或门101、第二异或门102、第一同或门103、第二与门104、第二与门105和或门106被配置为产生本地脉冲信号。该脉冲信号会驱动相位寄存 器107、109、111和时序逻辑器件,以用于缓存数据和开始下一次的握手协议。当上游器件需要发送有效数据时会将InA_req或InB_req信号进行一次翻转。该输入请求信号InA_req或InB_req与输入确认信号InA_ack或InB_ack信号在第一异或门101或第二异或门102处进行异或操作产生一个高电平。下游器件(例如第二异步控制器26)接收到异步控制器1000发送的有效数据时会将输出确认信号OutC_ack翻转。该信号与输出请求信号OutC_req在第一同或门103处进行同或得到高电平。基于第一与门104或第二与门105的任一高输出电平,或门107会产生一个拉高的click信号作为时序逻辑器件的时钟信号,用来捕获和存储数据。click信号会将第三相位寄存器111翻转以改变输入确认信号InA_ack的值。此外,基于sel信号、InA_ack信号和InB_ack,click信号会将相位寄存器107或109翻转以改变输入确认信号InA_ack或InB_ack的值,从而完成一次握手协议。为了确保异步电路的正确操作,选择信号sel可以在数据信号达到时序逻辑门之前到达异步控制器1000。
在一个实施例中,在处理器完成时序分析之后,处理器可以对异步电路进行综合(synthesis)。由于异步控制器存在环路,因此综合后的电路可能和预期不同,影响异步电路的功能。为了防止综合后的电路可能和预期不同并且防止影响异步电路的功能,处理器在综合处理之前可以将异步电路设置为不被优化,以在综合期间维持异步电路的结构。在一个实施例中,当使用EDA工具对异步电路进行综合时,可以使用常规的EDA工具对异步电路进行综合和实现。该过程可以与综合同步电路基本一致,也可以与同步电路进行混合设计。
在一个实施例中,处理器还可以对异步电路进行多工艺角下的时序分析。受到PVT的影响,同一芯片在不同操作条件下的延时都不同,这对异步电路的延时匹配过程是很重要的。而在传播时序约束下,本公开的静态时序分析会针对不同工艺角下的时序模型来分析电路功能,即多角多模分析,确保在任何条件下被约束的电路都能满足时序要求。
在一个实施例中,处理器还可以对脉冲宽度进行选择性地加宽。传播时序约束将异步电路的握手过程视为时钟的传播过程,这个路径上有组合逻辑和寄存器的存在,使得静态时序分析无法得到实际产生的本地脉冲click的脉冲宽度。因此脉冲宽度检查模块在满足其他时序约束后还对异步电路进行了实现后的时序仿真,以确定实际上每一级的click脉冲宽度是否满足寄存器的最小脉冲宽度要求。本地脉冲的宽度由产生脉冲的组合逻辑延时决定,而click控制器的结构保证了这个组合逻辑延时一般都大于寄存器的最小脉冲宽度,无需进行特别处理。在一些情形下,如果展宽本地脉冲的宽度,则处理器可以在click单元中的寄存器输出引脚上加入缓冲单元。缓冲单元所展宽的宽度可以根据实际需要进行选择,本公开对此不加限制。
图11示出了根据本公开的根据本公开的一些实施例的方法1100的示意流程图。可以理解,上面针对图1-图10所描述的各个方面可以选择性地应用于方法1100。在1102,将异步电路中的第一异步控制器生成的第一脉冲信号确定为第一时钟信号。在1104,将异步电路中的第二异步控制器生成的第二脉冲信号确定为第二时钟信号。第二异步控制器与第一异步控制器耦合,并且第二时钟信号相对于第一时钟信号偏移第一预定时间量。在1106,生成与第一时钟信号和第二时钟信号对应的第一时钟传播差值。在一个实施例中,生成第一时钟传播差值包括确定第一时钟信号的第一时钟传播时间段和第二时钟信号的第二时钟传播时间段。第一时钟传播时间段表示从第一异步控制器接收到第一输入请求到第一异步控制器生成第一脉冲信号的时间段,第二时钟传播时间段表示从第一异步控制器接收到第一输入请求到第二异步控制器生成第二脉冲信号的时间段。确定第一时钟传播时间段和第二时钟传播时间段之间的第一时钟传播差值。在1108,确定第一时序逻辑门和第二时序逻辑门之间的第一数据传 播时间段。第一时序逻辑门耦合至第一异步控制器并且基于第一脉冲信号进行操作,第二时序逻辑门耦合至第二异步控制器并且基于第二脉冲信号进行操作。在1110,生成与所述第一数据传播时间段和所述第一时钟传播差值相关的延迟报告。在一个实施例中,该方法还包括基于第一时钟传播差值和第一数据传播时间段,确定在第一异步控制器和第二异步控制器之间的延迟设置。
图12示出了根据本公开的一些实施例的电子设备1200的示意框图。电子设备1200可以用于异步电路的设计。电子设备1200包括时钟信号确定单元1202、时钟传播差值确定生成单元1204、数据传播时间段确定单元1206、和延迟报告生成单元1208。时钟信号确定单元1202用于将异步电路中的第一异步控制器生成的第一脉冲信号确定为第一时钟信号;以及将异步电路中的第二异步控制器生成的第二脉冲信号确定为第二时钟信号。第二异步控制器与第一异步控制器耦合,并且第二时钟信号相对于第一时钟信号偏移第一预定时间量。时钟传播差值确定生成单元1204用于生成与所述第一时钟信号和所述第二时钟信号对应的第一时钟传播差值。数据传播时间段确定单元1206用于确定第一时序逻辑器件和第二时序逻辑器件之间的第一数据传播时间段,所述第一时序逻辑器件耦合至所述第一异步控制器并且基于所述第一脉冲信号进行操作,所述第二时序逻辑器件耦合至所述第二异步控制器并且基于所述第二脉冲信号进行操作。延迟报告生成单元1208用于生成与所述第一数据传播时间段和所述第一时钟传播差值相关的延迟报告。
图13示出了可以用来实施本公开的一些实施例的示例设备的框图。设备1300可以用于实现电子设备1200。如图所示,设备1300包括计算单元1301,其可以根据存储在随机存取存储器(RAM)和/或只读存储器(ROM)1302的计算机程序指令或者从存储单元1307加载到RAM和/或ROM 1302中的计算机程序指令,来执行各种适当的动作和处理。在RAM和/或ROM 1302中,还可存储设备1300操作所需的各种程序和数据。计算单元1301和RAM和/或ROM 1302通过总线1303彼此相连。输入/输出(I/O)接口1304也连接至总线1303。
设备1300中的多个部件连接至I/O接口1304,包括:输入单元1305,例如键盘、鼠标等;输出单元1306,例如各种类型的显示器、扬声器等;存储单元1307,例如磁盘、光盘等;以及通信单元1308,例如网卡、调制解调器、无线通信收发机等。通信单元1308允许设备1300通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1301可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1301的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1301执行上文所描述的各个方法和处理,例如方法1100。例如,在一些实施例中,方法1100可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1307。在一些实施例中,计算机程序的部分或者全部可以经由RAM和/或ROM和/或通信单元1308而被载入和/或安装到设备1300上。当计算机程序加载到RAM和/或ROM并由计算单元1301执行时,可以执行上文描述的方法1100的一个或多个步骤。备选地,在其他实施例中,计算单元1301可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法1100。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实 施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (26)
- 一种用于设计异步电路的方法,包括:将所述异步电路中的第一异步控制器生成的第一脉冲信号确定为第一时钟信号;将所述异步电路中的第二异步控制器生成的第二脉冲信号确定为第二时钟信号,所述第二异步控制器与所述第一异步控制器耦合,并且所述第二时钟信号相对于所述第一时钟信号偏移第一预定时间量;生成与所述第一时钟信号和所述第二时钟信号对应的第一时钟传播差值;确定第一时序逻辑器件和第二时序逻辑器件之间的第一数据传播时间段,所述第一时序逻辑器件耦合至所述第一异步控制器并且基于所述第一脉冲信号进行操作,所述第二时序逻辑器件耦合至所述第二异步控制器并且基于所述第二脉冲信号进行操作;以及生成与所述第一数据传播时间段和所述第一时钟传播差值相关的延迟报告。
- 根据权利要求1所述的方法,其中生成与所述第一时钟信号和所述第二时钟信号对应的第一时钟传播差值包括:确定所述第一时钟信号的第一时钟传播时间段和所述第二时钟信号的第二时钟传播时间段,所述第一时钟传播时间段表示从所述第一异步控制器接收到第一输入请求到所述第一异步控制器生成所述第一脉冲信号的时间段,所述第二时钟传播时间段表示从所述第一异步控制器接收到第一输入请求到所述第二异步控制器生成所述第二脉冲信号的时间段;以及确定所述第一时钟传播时间段和所述第二时钟传播时间段之间的所述第一时钟传播差值。
- 根据权利要求1或2所述的方法,其中生成与所述第一数据传播时间段和所述第一时钟传播差值相关的延迟报告包括:生成表示所述第一数据传播时间段的第一数据传播时间值;将所述第一数据传播时间值和所述第一时钟传播差值相减以确定第一延迟值;以及生成包括所述第一延迟值的所述延迟报告。
- 根据权利要求1或2所述的方法,其中生成与所述第一数据传播时间段和所述第一时钟传播差值相关的延迟报告包括:生成表示所述第一数据传播时间段的第一数据传播时间值;将所述第一数据传播时间值和所述第一时钟传播差值进行比较以生成比较结果;以及生成包括所述比较结果的所述延迟报告。
- 根据权利要求1-4中任一项所述的方法,还包括:基于所述第一时钟传播差值和所述第一数据传播时间段,确定在所述第一异步控制器和所述第二异步控制器之间的延迟设置。
- 根据权利要求5所述的方法,其中基于所述第一时钟传播差值和所述第一数据传播时间段,确定在所述第一异步控制器和所述第二异步控制器之间的延迟设置包括:响应于所述第一数据传播时间段大于所述第一时钟传播差值,在所述第一异步控制器和所述第二异步控制器之间设置延迟电路;或响应于所述第一数据传播时间段不大于所述第一时钟传播差值,在所述第一异步控制器和所述第二异步控制器之间不设置延迟电路。
- 根据权利要求6所述的方法,其中响应于所述第一数据传播时间段大于所述第一时钟 传播差值在所述第一异步控制器和所述第二异步控制器之间设置延迟电路包括:确定所述第一时钟传播差值和所述第一数据传播差值之间的第一路径差值;确定延迟电路的单位延迟时间段;基于所述第一路径差值和所述单位延迟时间段,设置一个或多个串联的所述延迟电路,使得一个或多个串联的所述延迟电路的总延迟时间段不低于所述第一路径差值。
- 根据权利要求1-7中任一项所述的方法,还包括:将所述异步电路的第M异步控制器生成的第M脉冲信号确定为第M时钟信号,M表示大于0的整数;将所述异步电路的第N异步控制器生成的第N脉冲信号确定为第N时钟信号,所述第一异步控制器至所述第N异步控制器逐级耦合,所述第一异步控制器至所述第N异步控制器中的任意两个相邻异步控制器彼此之间偏移所述第一预定时间量,所述第N异步控制器的输出耦合至所述第M异步控制器的输入,其中N表示大于M的整数;确定时序周期P,其中P表示N与M之间的差值;以及基于所述时序周期P,确定所述第N异步控制器和所述第M异步控制器之间的延迟设置。
- 根据权利要求8所述的方法,其中基于所述时序周期P,确定所述第N异步控制器和所述第M异步控制器之间的延迟设置包括:确定第N时钟信号的第N时钟传播时间段,所述第N时钟传播时间段表示从所述第一异步控制器接收到第一输入请求到所述第N异步控制器生成所述第N脉冲信号的时间段;确定所述第M异步控制器在生成所述第M时钟信号之后的第P个时序周期中的时钟传播时间段;确定所述第N时钟传播时间段和第P个时序周期中的时钟传播时间段之间的第N时钟传播差值;确定第N时序逻辑器件和第M时序逻辑器件之间的第N数据传播时间段,所述第N时序逻辑器件耦合至所述第N异步控制器并且基于所述第N脉冲信号进行操作,所述第M时序逻辑器件耦合至所述第M异步控制器并且基于所述第M脉冲信号进行操作;以及基于所述第N时钟传播时间段和所述第N数据传播时间段,确定在所述第N异步控制器和所述第M异步控制器之间的延迟设置。
- 根据权利要求1-9中任一项所述的方法,还包括:在所述异步电路的综合期间维持所述异步电路的结构。
- 根据权利要求5-7中任一项所述的方法,其中基于所述第一时钟传播差值和所述第一数据传播时间段确定在所述第一异步控制器和所述第二异步控制器之间的延迟设置包括:基于所述异步电路在不同工艺角下的所述第一时钟传播差值和所述第一数据传播时间段,确定在所述第一异步控制器和所述第二异步控制器之间的延迟设置。
- 根据权利要求1-11中任一项所述的方法,还包括:确定所述第一脉冲信号的第一脉冲宽度和所述第二脉冲信号的第二脉冲宽度;以及响应于所述第一脉冲宽度或第二脉冲宽度低于脉冲宽度阈值,在所述第一异步控制器或所述第二异步控制器中相应地设置脉冲展宽电路以增宽所述第一脉冲信号或所述第二脉冲信号的宽度。
- 根据权利要求1-12中任一项所述的方法,其中所述异步电路包括单轨异步电路;所述第一异步控制器为初始异步控制器;以及所述第一异步控制器和所述第二异步控制器均包括相位解耦控制器。
- 根据权利要求1-13中任一项所述的方法,其中所述第二异步控制器还耦合至所述异步电路中的第四异步控制器;该方法还包括:将所述第四异步控制器生成的第四脉冲信号确定为第四时钟信号;将所述第二异步控制器针对来自所述第四异步控制器的请求生成的第二脉冲信号确定为第五时钟信号,所述第五时钟信号相对于所述第四时钟信号偏移第二预定时间量;将所述第二时钟信号指派至第一时钟分组并且将所述第五时钟信号指派至第二时钟分组,所述第二时钟分组不同于所述第一时钟分组;确定所述第四时钟信号的第五时钟传播时间段和所述第五时钟信号的第五时钟传播时间段,所述第五时钟传播时间段表示从所述第四异步控制器接收到第四输入请求到所述第四异步控制器生成所述第四脉冲信号的时间段,所述第五时钟传播时间段表示从所述第四异步控制器接收到第四输入请求到所述第二异步控制器生成所述第五脉冲信号的时间段;确定所述第四时钟传播时间段和所述第五时钟传播时间段之间的第四时钟传播差值;确定第四时序逻辑器件和第五时序逻辑器件之间的第四数据传播时间段,所述第四时序逻辑器件耦合至所述第四异步控制器并且基于所述第四脉冲信号进行操作,所述第五时序逻辑器件耦合至所述第二异步控制器并且基于所述第五脉冲信号进行操作;以及基于所述第四时钟传播差值和所述第四数据传播时间段,确定在所述第四异步控制器和所述第二异步控制器之间的延迟设置。
- 一种计算机可读存储介质,存储多个程序,所述多个程序被配置为一个或多个处理器执行,所述多个程序包括用于执行权利要求1-14中任一项所述的方法的指令。
- 一种计算机程序产品,所述计算机程序产品包括多个程序,所述多个程序被配置为一个或多个处理器执行,所述多个程序包括用于执行权利要求1-14中任一项所述的方法的指令。
- 一种电子设备,包括:一个或多个处理器;以及包括计算机指令的存储器,所述计算机指令在由所述电子设备的所述一个或多个处理器执行时使得所述电子设备执行权利要求1-14中任一项所述的方法。
- 一种电子设备,包括:时钟信号确定单元,用于将异步电路中的第一异步控制器生成的第一脉冲信号确定为第一时钟信号;以及将所述异步电路中的第二异步控制器生成的第二脉冲信号确定为第二时钟信号,所述第二异步控制器与所述第一异步控制器耦合,并且所述第二时钟信号相对于所述第一时钟信号偏移第一预定时间量;时钟传播差值生成单元,用于生成与所述第一时钟信号和所述第二时钟信号对应的第一时钟传播差值;数据传播时间段确定单元,用于确定第一时序逻辑器件和第二时序逻辑器件之间的第一数据传播时间段,所述第一时序逻辑器件耦合至所述第一异步控制器并且基于所述第一脉冲信号进行操作,所述第二时序逻辑器件耦合至所述第二异步控制器并且基于所述第二脉冲信号进行操作;以及延迟报告生成单元,用于生成与所述第一数据传播时间段和所述第一时钟传播差值相关 的延迟报告。
- 根据权利要求18所述的电子设备,其中所述时钟传播差值生成单元包括:时钟传播时间段确定单元,用于确定所述第一时钟信号的第一时钟传播时间段和所述第二时钟信号的第二时钟传播时间段,所述第一时钟传播时间段表示从所述第一异步控制器接收到第一输入请求到所述第一异步控制器生成所述第一脉冲信号的时间段,所述第二时钟传播时间段表示从所述第一异步控制器接收到第一输入请求到所述第二异步控制器生成所述第二脉冲信号的时间段;以及时钟传播差值确定单元,用于确定所述第一时钟传播时间段和所述第二时钟传播时间段之间的第一时钟传播差值。
- 根据权利要求18或19所述的电子设备,还包括:延迟设置确定单元,用于基于所述第一时钟传播差值和所述第一数据传播时间段,确定在所述第一异步控制器和所述第二异步控制器之间的延迟设置。
- 根据权利要求20所述的电子设备,其中所述延迟设置确定单元进一步用于响应于所述第一数据传播时间段大于所述第一时钟传播差值,在所述第一异步控制器和所述第二异步控制器之间设置延迟电路;或响应于所述第一数据传播时间段不大于所述第一时钟传播差值,在所述第一异步控制器和所述第二异步控制器之间不设置延迟电路。
- 根据权利要求20-21中任一项所述的电子设备,其中所述时钟信号确定单元进一步用于将所述异步电路的第M异步控制器生成的第M脉冲信号确定为第M时钟信号,M表示大于0的整数;以及将所述异步电路的第N异步控制器生成的第N脉冲信号确定为第N时钟信号,所述第一异步控制器至所述第N异步控制器逐级耦合,所述第一异步控制器至所述第N异步控制器中的任意两个相邻异步控制器彼此之间偏移所述第一预定时间量,所述第N异步控制器的输出耦合至所述第M异步控制器的输入,其中N表示大于M的整数;所述电子设备还包括时序周期确定单元,用于确定时序周期P,其中P表示N与M之间的差值;以及所述延迟设置确定单元进一步用于基于所述时序周期P,确定所述第N异步控制器和所述第M异步控制器之间的延迟设置。
- 根据权利要求18-22中任一项所述的电子设备,还包括:维持单元,用于在所述异步电路的综合期间维持所述异步电路的结构。
- 根据权利要求20-22中任一项所述的电子设备,其中所述延迟设置确定单元进一步用于基于所述异步电路在不同工艺角下的所述第一时钟传播差值和所述第一数据传播时间段,确定在所述第一异步控制器和所述第二异步控制器之间的延迟设置。
- 根据权利要求18-24中任一项所述的电子设备,还包括:脉冲展宽单元,用于确定所述第一脉冲信号的第一脉冲宽度和所述第二脉冲信号的第二脉冲宽度;以及响应于所述第一脉冲宽度或第二脉冲宽度低于脉冲宽度阈值,在所述第一异步控制器或所述第二异步控制器中相应地设置脉冲展宽电路以增宽所述第一脉冲信号或所述第二脉冲信号的宽度。
- 根据权利要求18-25中任一项所述的电子设备,其中所述第二异步控制器还耦合至所述异步电路中的第四异步控制器;所述时钟信号确定单元进一步用于将所述第四异步控制器生成的第四脉冲信号确定为第四时钟信号;以及将所述第二异步控制器针对来自所述第四异步控制器的请求生成的第二脉冲信号确定为第五时钟信号,所述第五时钟信号相对于所述第四时钟信号偏移第二预定时间量;所述电子设备还包括时钟指派单元,用于将所述第二时钟信号指派至第一时钟分组并且将所述第五时钟信号指派至第二时钟分组,所述第二时钟分组不同于所述第一时钟分组;所述时钟传播差值确定单元进一步用于确定所述第四时钟信号的第五时钟传播时间段和所述第五时钟信号的第五时钟传播时间段,所述第五时钟传播时间段表示从所述第四异步控制器接收到第四输入请求到所述第四异步控制器生成所述第四脉冲信号的时间段,所述第五时钟传播时间段表示从所述第四异步控制器接收到第四输入请求到所述第二异步控制器生成所述第五脉冲信号的时间段;确定所述第四时钟传播时间段和所述第五时钟传播时间段之间的第四时钟传播差值;所述数据传播时间段确定单元进一步用于确定第四时序逻辑器件和第五时序逻辑器件之间的第四数据传播时间段,所述第四时序逻辑器件耦合至所述第四异步控制器并且基于所述第四脉冲信号进行操作,所述第五时序逻辑器件耦合至所述第二异步控制器并且基于所述第五脉冲信号进行操作;以及所述延迟报告生成单元,进一步用于生成与所述第四数据传播时间段和所述第四时钟传播差值相关的延迟报告。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/105326 WO2023279341A1 (zh) | 2021-07-08 | 2021-07-08 | 用于设计异步电路的方法和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117651933A true CN117651933A (zh) | 2024-03-05 |
Family
ID=84800173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180098077.5A Pending CN117651933A (zh) | 2021-07-08 | 2021-07-08 | 用于设计异步电路的方法和电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117651933A (zh) |
WO (1) | WO2023279341A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116886786B (zh) * | 2023-09-05 | 2023-11-21 | 深圳时识科技有限公司 | 两相捆绑与四相双轨协议间的转换装置、芯片及电子设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9953120B2 (en) * | 2012-07-18 | 2018-04-24 | University Of Utah Research Foundation | Relative timing characterization |
CN104714842B (zh) * | 2013-12-17 | 2018-04-13 | 北京华大九天软件有限公司 | 一种调整时钟路径延迟来修复时序违反的方法 |
CN105046014B (zh) * | 2015-08-06 | 2018-03-20 | 电子科技大学 | 一种基于ams的异步时序电路设计方法 |
CN106096171A (zh) * | 2016-06-22 | 2016-11-09 | 深圳市紫光同创电子有限公司 | 基于静态分析的异步电路时序检查方法 |
CN109871611B (zh) * | 2019-02-18 | 2021-06-08 | 清华大学 | 一种异步电路自动延迟匹配的方法 |
-
2021
- 2021-07-08 WO PCT/CN2021/105326 patent/WO2023279341A1/zh active Application Filing
- 2021-07-08 CN CN202180098077.5A patent/CN117651933A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2023279341A1 (zh) | 2023-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yakovlev et al. | Advances in asynchronous logic: From principles to GALS & NoC, recent industry applications, and commercial CAD tools | |
Mullins et al. | Demystifying data-driven and pausible clocking schemes | |
US10084434B2 (en) | Relative timed clock gating cell | |
Tarawneh et al. | Eliminating synchronization latency using sequenced latching | |
US20090271747A1 (en) | Logic circuit designing device, logic circuit designing method and logic circuit designing program for asynchronous logic circuit | |
Harris et al. | Timing analysis including clock skew | |
CN117651933A (zh) | 用于设计异步电路的方法和电子设备 | |
Heath et al. | Synchro-tokens: A deterministic GALS methodology for chip-level debug and test | |
Ortega-Cisneros et al. | Rapid prototyping of a self-timed ALU with FPGAs | |
Dasgupta et al. | Comparative analysis of GALS clocking schemes | |
Srivastava et al. | Operation-dependent frequency scaling using desynchronization | |
Tarawneh et al. | An RTL method for hiding clock domain crossing latency | |
Chelcea et al. | Area optimizations for dual-rail circuits using relative-timing analysis | |
Chakraborty et al. | Practical timing analysis of asynchronous circuits using time separation of events | |
Bhandari et al. | Fpga based high performance asynchronous alu based on modified 4 phase handshaking protocol with tapered buffers | |
Thiele et al. | A stream-oriented component model for performance analysis of multiprocessor dsps | |
Nyström et al. | Crossing the synchronous-asynchronous divide | |
Tu et al. | Co-synthesis of data paths and clock control paths for minimum-period clock gating | |
Villiger | Multi-point interconnects for globally-asynchronous locally-synchronous systems | |
Huang et al. | Synthesis of nonzero clock skew circuits | |
US11157671B2 (en) | Method of checking equivalence between a first design comprising a shift register logic SRL chain and a second design | |
Jiang et al. | On self-timed ring for consistent mapping and maximum throughput | |
Sretasereekul et al. | A zero-time-overhead asynchronous four-phase controller | |
Kumar et al. | Pulse based Acyclic Asynchronous Pipelines for Combinational Logic Circuits | |
Dimou et al. | Performance-driven clustering of asynchronous circuits |
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 |