CN113924539B - 用于硬件初始化的系统和方法 - Google Patents

用于硬件初始化的系统和方法 Download PDF

Info

Publication number
CN113924539B
CN113924539B CN202080041002.9A CN202080041002A CN113924539B CN 113924539 B CN113924539 B CN 113924539B CN 202080041002 A CN202080041002 A CN 202080041002A CN 113924539 B CN113924539 B CN 113924539B
Authority
CN
China
Prior art keywords
state
fsm
block
initialization
input
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
Application number
CN202080041002.9A
Other languages
English (en)
Other versions
CN113924539A (zh
Inventor
A·乔达夫迪亚
J·克兰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN113924539A publication Critical patent/CN113924539A/zh
Application granted granted Critical
Publication of CN113924539B publication Critical patent/CN113924539B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4498Finite state machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

一种用于初始化电子设备的组件的方法包括在初始化块处接收输入信号;在接收到输入信号之后,改变初始化块的有限状态机(FSM)的状态;从初始化块向芯片上的组件发送初始化信号;在发送初始化信号之后,改变FSM的状态;利用初始化块从该组件接收返回信号;并且在接收到返回信号之后,改变FSM的状态。

Description

用于硬件初始化的系统和方法
背景技术
硬件初始化过程随着设备和代际而改变。这个逻辑对系统很重要,因为电子组件的初始化期间的错误会阻止芯片或其他设备启动。纠正有错误的初始化过程会消耗大量的时间、资源和资金。
常规的初始化电子设备和过程包括定制和固定的逻辑或微处理器。定制的逻辑仅服务于中小型知识产权(IP)块并且使用为该IP块而开发的逻辑,但是没有任何统一的方法来定义和实现灵活的初始化过程。不支持不同的初始化模式,诸如上电、进入低功耗状态或退出低功耗状态。
较大的IP或片上系统(SoC)使用微处理器或微定序器。虽然这种方法非常灵活且可重复使用,但微处理器的面积、时间和制造成本都很高。
发明内容
在一些实施例中,一种用于初始化电子设备的组件的方法包括在初始化块处接收输入信号;在接收到输入信号之后,改变初始化块的有限状态机(FSM)的状态;从初始化块向芯片上的组件发送初始化信号;在发送初始化信号之后,改变FSM的状态;利用初始化块从该组件接收返回信号;以及在接收到返回信号之后,改变FSM的状态。
在一些实施例中,一种用于控制硬件初始化的电子设备包括FSM和输入输出(IO)调节器。FSM具有第一组状态和第二组状态。IO调节器具有输入状态和输出状态。当FSM处于第一组状态时,IO调节器处于输入状态,而当FSM处于第二组状态时,IO调节器处于输出状态。
在一些实施例中,一种计算机芯片包括初始化(INIT)块和与INIT块直接通信的知识产权(IP)块。INIT块包括FSM和IO调节器。FSM具有第一组状态和第二组状态。IO调节器具有输入状态和输出状态。当FSM处于第一组状态时,IO调节器处于输入状态,而当FSM处于第二组状态时,IO调节器处于输出状态。
提供本“发明内容”以便以简化的形式介绍在下面的“具体实施方式”中进一步描述的概念的选择。本“发明内容”无意确定所要求保护的主题的关键特征或基本特征,也无意用于帮助确定所要求保护的主题的范围。
附加特征和优点将在随后的描述中阐述,并且部分地从描述中将是很清楚的,或者可以通过本文中的教导的实践而获悉。本公开的特征和优点可以通过所附权利要求中特别指出的手段和组合来实现和获取。本公开的特征将从以下描述和所附权利要求中变得更加明显,或者可以通过如下文所述的本公开的实践而获悉。
附图说明
为了描述获取本公开的上述和其他特征的方式,将参考附图中示出的其具体实现来进行更具体的描述。为了更好地理解,在各个附图中相同的元素由相同的附图标记指定。虽然一些附图可能是概念的示意性或夸大表示,但至少一些附图可以按比例绘制。理解附图描绘了一些示例实现,这些实现将通过使用附图以附加的特性和细节来描述和解释,在附图中:
图1是根据本公开的至少一个实施例的其上具有多个组件的电路板的示意图;
图2是示出根据本公开的至少一个实施例的定义表的实施例的图表;
图3是根据本公开的至少一个实施例的其上具有多个子系统的电路板的示意图;
图4是根据本公开的至少一个实施例的分区初始化块的示意图;
图5是根据本公开的至少一个实施例的与多个电子组件进行数据通信的初始化块的示意图;
图6是示出根据本公开的至少一个实施例的模块化硬件初始化方法的流程图;以及
图7是示出根据本公开的至少一个实施例的自适应硬件初始化方法的流程图。
具体实施方式
本公开总体上涉及用于初始化电路板上的电子硬件的设备、系统和方法。更具体地,本公开涉及初始化电路板上的硬件的可重用硬件初始化(INIT)知识产权(IP)块。INIT块包括有限状态机(FSM),该FSM允许INIT块在接收状态与传输状态之间转变。INIT块还包括输入输出(IO)调节器,该IO调节器允许INIT块在处于接收状态时从一个或多个组件接收输入信号,并且在处于传输状态时向一个或多个组件传输一个或多个初始化信号。
INIT块的FSM可以在第一状态或第一组状态与第二状态或第二组状态之间改变。例如,FSM可以在“高”状态与“低”状态之间改变。高状态和低状态可以分别与传输状态和接收状态相关联。在其他示例中,FSM可以在整数计数器中递增,该整数计数器行进通过编号序列,同时还为INIT块提供交替的“奇数”状态和“偶数”状态。奇数状态和偶数状态可以分别与传输状态和接收状态相关联。
常规INIT块接收复位命令并且开始一系列固定的硬件初始化过程。INIT块通过向第一组件发送初始化信号来开始初始化电路板上的一个或多个组件的过程,第一组件又向另一组件发送第二信号,以此类推。该过程通常是针对特定设备而确定的,并且设置在设备的硅或电线中以专用于电子设备的这些组件。因此,每个常规INIT块架构都是专门为该设备制作的,并且不可重复用于其他设备。此外,该序列是固定序列,并且如果在运行初始化序列时,在该序列中出现任何错误,则对该序列和组件的调试和测试是困难的或不可能的。
根据本公开的INIT块可以递增通过一组离散的接收状态和传输状态,这允许在初始化过程中的每个点处,INIT块从设备的每个组件发送和接收信号。通过将信号路由通过INIT块,INIT块成为集中式点,用户或其他系统可以通过该集中式点查看和调试序列。
此外,接收状态和传输状态的离散循环允许INIT块是可缩放的。根据本公开的INIT块可以读取定义表以将FSM状态与针对每个FSM状态的一组潜在输入或输出相关联,并且定义表可以包括旁路和限定条件,该旁路和限定条件允许INIT块适应不同模式和不同设备。在至少一个实施例中,仅通过改变定义表,根据本公开的INIT块架构就可用于不同设备。
图1是包括多个电子组件的电子设备100的示意图。电子设备100包括熔断器102、锁相环(PLL)104、通用IP块106、输入输出(IO)块108、设备存储器110和INIT块112。
熔断器102可以将默认值传送到INIT块112以建立电子设备的电路。熔断器102通常在初始化过程中首先建立。
PLL 104为电子设备100提供宏和时钟速度。PLL 104是生成具有与输入信号的相位相关的相位的输出信号的控制系统。PLL有多种类型,最简单的PLL是由可变频率振荡器和反馈回路中的鉴相器组成的电子电路。振荡器生成周期信号,相位检测器将该信号的相位与输入周期信号的相位进行比较,以调节振荡器以保持相位匹配。
锁定输入和输出相位也固有地保持输入和输出频率相同。因此,除了同步信号,PLL 104还可以跟踪输入频率,或者可以生成输入频率的倍数的频率。这又允许电子设备100的PLL 104设置和同步电子设备100的组件的时钟速度。
IP块106可以是可用于给定任务的任何IP块106。在一些实施例中,IP块106可以是与电子设备的音频、视频显示、运动控制、输入检测或任何其他处理要求相关的设备。IP块106可以直接或通过INIT块112接收由PLL 104提供的时钟信息。在一些实施例中,IP块106与设备存储器110通信。设备存储器110可以与INIT块112进行数据通信。INIT块112可以提供初始化信号以闪存(flash)设备存储器110,并且准备设备存储器110以供使用。例如,设备存储器110最初可以在随机状态下通电,并且初始化过程可以使存储器归零,或以其他方式使存储器变统一以供使用。
在一些实施例中,INIT块112处于直接数据通信中,这表示存在没有中间电子组件的直接通信路径,至少具有熔断器102、PLL 104和IP块106。INIT块输入信号112可以在接收状态中从IO块108接收输入信号114,并且INIT块112可以将输入信号114与定义表进行比较以设置初始化过程的模式。然后,INIT块112改变INIT块112的FSM的状态并且在传输状态下继续初始化过程。
在一些实施例中,INIT块112具有存储在其上的定义表。在其他实施例中,INIT块112与具有存储在其上的定义表的存储设备进行数据通信。INIT块112可以解析定义表中的信息并且根据定义表执行初始化过程。这样做时,INIT块112的架构对于不同应用是可重用的、适应性强并且可扩展。通过改变定义表,INIT块112的功能可以被修改,而不必改变INIT块112或电子设备100上的任何其他组件或布线的架构。
图2是由INIT块实施的定义表116的示例性实施例。定义表116包括由INIT块的FSM提供的状态类型118和/或状态编号120。在一些示例中,状态类型118基于状态编号120。图2所示的定义表116由使FSM整数递增的INIT块实施。随着FSM状态的每次变化,FSM计数器递增一个整数值。状态编号120中的偶数与“等待输入”或接收状态类型118相关。状态编号120中的奇数与“断言输出”或传输状态类型118相关。在其他示例中,FSM可以在与“等待输入”或接收状态类型118和“断言输出”或传输状态类型118相关的两个或更多个有限状态(诸如0和1或高和低)之间切换,而不递增状态编号120。
递增状态编号120允许调试初始化过程中的不同点的附加功能、以及旁路功能。例如,定义表116的输入或输出122列提供INIT块在FSM的每个状态编号120处的指令和/或条件。
在状态编号0,INIT块处于接收状态并且正在等待INIT块的IO调节器接收输入。在一些实施例中,状态编号120包括INIT块将在该状态编号120处识别的多个输入命令。在一些示例中,IO调节器可以允许INIT块从多个源接收输入命令。接收到的输入被识别为power_up、enter_low_power或exit_low_power输入中的一个。每个输入指示需要INIT块来将电子设备的组件初始化为特定状态:在所呈现的定义表116中,这些包括通电以进入高功率模式、进入低功率模式、或从低功耗模式退出以进入高功耗模式。定义表116还包括标识输入命令的模式的模式列124和定义表116的与该模式列124相关联的状态编号120。
例如,power_up输入由INIT块在状态编号0期间被接收,并且INIT块根据模式列124将power_up输入标识为将INIT块置于模式0。在接收到输入命令之后,INIT块的FSM改变状态并且按1个整数值递增到状态编号1。
状态编号1是奇数值状态编号120,因此INIT块进入“断言输出”或传输状态类型118。在一些实施例中,状态编号120包括INIT块将在该状态编号120传输的多个初始化命令。例如,IO调节器可以传输多个初始化命令和/或传输到电子设备的多个组件。当INIT块在接收到power_up输入之后处于模式0时,定义表116的模式列124标识状态编号1中的两个输出。在模式0下,load_slot0_start、block0_bist_state和mem_erase输出都被断言。在模式2(与退出低功率状态和进入高功率状态相关联)下,只有mem_erase输出被断言。在模式1(与进入低功耗状态相关联)下,在状态编号1处没有输出被断言。
然后FSM再次改变状态,诸如将状态编号120再次递增一个整数值,并且INIT块进入状态编号2。偶数状态编号120导致INIT块进入接收状态类型118并且当INIT块处于模式0时等待输入命令。
当INIT块通过IO调节器接收到lsm_block0_pass和block0_bist_done输入命令(表示自检已完成)时,FSM再次改变状态,并且INIT块进入状态3。INIT块继续通过根据定义表116进行初始化过程,直到遇到包括输入旁路符或输出限定符126的状态编号120。例如,其中INIT块处于传输状态的状态编号9需要block1_bist_pass和block0_bist_pass为真以断言load_slot1_start命令。否则,状态编号将再次递增,而不会断言load_slot1_start命令。
在定义表116中包括输入旁路符或输出限定符126允许INIT执行基本检查并且允许超时条件,以防止初始化过程在其他先决组件被初始化之前无法通过、挂起或初始化组件。此外,因为来自已初始化组件的初始化命令和输入通过INIT块,所以根据本公开的INIT块成为集中式组件,通过该集中式组件可以监测和调试初始化过程的所有部分。
根据本公开的灵活且可定制的INIT块在嵌套系统中特别有益,诸如图3所示的片上系统(SOC)228。SOC 228包括电子设备200,电子设备200可以类似于关于图1描述的电子设备100。SOC 228还包括SOC 228上的其他设备和/或系统,诸如第一子系统230和第二子系统232。根据本公开,电子设备200包括第一组熔断器202-1、第一PLL 204-1、第一IP块206-1、IO块208和第一INIT块212-1。根据本公开,SOC 228本身包括第二组熔断器202-2、第二PLL 204-2、第二IP块206-2、系统存储器210和第二INIT块212-2。SOC 228的第一子系统230至少包括第三IP块206-3和第三INIT块212-3,并且SOC 228的第二子系统232至少包括第四IP块206-4和第四INIT块212-4。
SOC 228的不同组件和不同子系统每个彼此通信。例如,SOC 228上的电子设备200与SOC 228的第二INIT块212-2进行数据通信。第二INIT块212-2可以与其他INIT块212-1、212-2、212-3、212-4进行数据通信。因为根据本公开的INIT块212-1、212-2、212-3、212-4是用于初始化过程的中央枢纽,所以SOC 228或其他嵌套系统中的INIT块212-1、212-2、212-3、212-4中的每个之间的数据通信允许使用通过SOC 228的其他子系统和组件的反馈来初始化整个SOC 228。另外,旁路和限定符允许INIT块212-1、212-2 212-3、212-4仅初始化或重新初始化SOC 228的在加电、状态改变或模式改变期间所需要的部分。
在一些实施例中,SOC 228的INIT块212-2是与子系统230、232的一个或多个INIT块进行直接数据通信的中央INIT块。中央INIT块在初始化过程中实施SOC 228和子系统的组件的顺序和依赖性。
图4是根据本公开的INIT块312的示意图。为了在传输状态与接收状态之间改变并且与芯片上的其他组件通信,INIT块312在INIT块312中具有FSM 334和IO调节器336。INIT块312还可以包括其上存储有信息的存储器337,诸如用于确定INIT块312的输入或输出逻辑的定义表。在一些实施例中,INIT块312与一个或多个其他电子组件共享管芯。
FSM 334是在操作期间在离散状态之间改变的任何有限状态设备。例如,FSM 334可以在任何数目的有限状态之间改变。虽然关于图2描述的FSM 334的示例是具有有限整数状态的整数计数器,但是其他FSM可以在有限数目的状态之间切换或循环。例如,本文中描述的整数计数器FSM提供状态编号和状态类型两者。在其他实施例中,FSM可以在两个有限状态之间切换以提供状态类型。在其他实施例中,INIT块312可以具有在两个状态之间切换并且提供状态类型的第一FSM,而第二FSM提供状态编号。
IO调节器336提供INIT块312与其他组件之间的通信。IO调节器336从多个组件接收输入,并且可以将输入聚合成可以与状态编号和/或状态类型以及与定义表进行比较的单个信号。IO调节器336可以与包含定义表的存储器337通信。
IO调节器336可以解析定义表并且基于定义表的内容提供输入逻辑和输出逻辑。因此,可以通过简单地为INIT块架构的不同应用程序提供新定义表来改变代码。
例如,下面的示例表包括在输入状态与输出状态之间交替的定义表的相对简单的实例:
基于上表,INIT块可以解析定义表以标识在每个状态编号中要等待什么输入和要断言什么输出。该表还提供了相关联的信号的模式和开关类型(脉冲或电平开关)。
INIT块可以解析所提供的通用表并且自动生成以下示例代码:
这种自动生成的代码的表达允许仅通过改变定义表来针对不同电子设备、系统、子系统和芯片定制和缩放本文中描述的INIT块312架构。这降低了将工程意图转换为实现时出错的风险。此外,INIT块基于在初始化过程中的不同点从不同组件接收到的信号而变得自适应。
通过边带测试接口,INIT块312的所有输入和输出都是可观察的。INIT块312的输入可以逐步通过状态或跳转状态,以帮助调试或重复状态编号。例如,与INIT块312进行数据通信的组件可能无法通过BIST。响应于失败的BIST而提供给INIT块312的输入命令可以设置状态编号以重新运行初始化过程的一部分。这可以尝试重新初始化未通过自检的组件并且校正该组件的初始化过程,而无需重新运行整个初始化过程。
此外,对其他组件的改变或对其他组件的操作状态的改变不需要改变INIT块,反之亦然。IP块和其他组件的接口可以保持不变,而INIT块可以适应其他组件的接口。
图5是与系统的每个组件直接通信的INIT块412的示意图。该系统具有熔断器402、PLL 404、第一IP块406-1和第二IP块406-2。开始初始化过程,INIT块412可以接收输入信号414。在一些实施例中,输入信号414是从芯片上的另一位置接收的,诸如使用SOC的子系统。在其他实施例中,输入信号414是从不在芯片上的外部源接收的,诸如另一电子设备,包括用于远程启动的通信设备、电源、另一电路板或其他外部源。
INIT块412可以将第一输出信号438-1发送到诸如熔断器402等第一组件以请求关于第一组件的信息。第一组件向INIT块412发送第一返回信号440-1,INIT块412利用IO调节器436接收第一返回信号440-1。INIT块412将第一返回信号440-1与从定义表自动生成的代码进行比较。
当第一返回信号440-1被识别时,INIT块412可以在初始化过程中将第二输出信号438-2发送到第二组件。在一个示例中,第二组件是PLL 404并且第二输出信号440-2可以指示PLL锁定时钟速度。PLL 404可以向INIT块412提供第二返回信号440-2,INIT块412确认或传送PLL 404的时钟速度。每次输出信号被断言或返回信号被识别时,FSM 434改变状态,并且INIT块412向下移动定义表。
现在时钟速度被PLL 404锁定,INIT块412可以用第三输出信号438-3初始化第一IP块406-1。在第一IP块406-1已经接收到第三输出信号438-3并且被初始化之后,第三返回信号440-3向INIT块412通知第一IP块406-1被初始化并且例如已经通过自检。
INIT块412然后可以用第四输出信号438-4初始化第二IP块406-2。在第二IP块406-2已经接收到第四输出信号438-4并且被初始化之后,第四返回信号440-4向INIT块412通知第二IP块406-2被初始化并且例如已经通过自检。
在另一示例中,INIT块412可以同时向第一IP块406-1断言第三输出信号438-3和向第二IP块406-2断言第四输出信号438-4。基于FSM 434的状态和定义表,INIT块412可以识别来自PLL 404的第二返回信号440-2,并且如果不依赖于IP块406-1、406-2初始化的顺序,则同时初始化第一IP块406-1和第二IP块406-2。然而,在某些模式下,可能只需要初始化一个IP块,或者可能需要按特定顺序初始化IP块。通过设置如关于图2所描述的初始化过程的模式,INIT块412可以适应不同模式和系统需要。
图6是示出根据本公开的使用INIT块初始化硬件组件的通用方法542的实施例的流程图。方法542包括在544处在初始化块处接收输入信号。输入信号可以源自芯片上的本地源、或者例如通过IO块与芯片通信或直接与INIT块通信的远程源。在至少一种情况下,输入信号是来自电源的power_up信号。
在接收输入信号之后,方法542包括在546处改变初始化块的FSM的状态。在一些实施例中,改变FSM的状态包括将状态从第一状态切换到第二状态。在其他实施例中,改变FSM的状态包括使FSM的计数器递增。在其他实施例中,改变FSM的状态包括使计数器递增并且在第一状态与第二状态之间切换。例如,FSM可以使整数计数器递增,而所递增的整数是整数的奇数集或偶数集的成员。在其他示例中,FSM可以包括两个FSM,以提供对第一状态与第二状态之间的切换和计数器递增的独立控制。
可选地,方法542可以包括在548处基于输入信号确定模式。如本文所述,输入信号可以源自各种源。在一些实施例中,模式基于输入信号的源来确定。例如,与初始化过程的模式0相关联的power_up输入信号可以源自与enter_low_power输入信号不同的源。在其他实施例中,模式由输入信号中包括的数据来确定。例如,enter_low_power输入信号可以包括将特定值设置为高的数据,而exit_low_power输入信号可以包括将相同值设置为低的数据。在其他实施例中,模式由输入信号的电压确定。例如,输入信号可以是施加到IO块或INIT块的简单电压,并且不同电压可以与初始化过程的模式0、模式1、模式2等相关。
在接收到开始初始化过程的输入信号之后,可以根据一系列通信循环来执行初始化过程。在一些实施例中,通信循环可以包括在550处从初始化块向芯片上的组件发送初始化信号。在发送初始化信号之后,方法542还包括在552处再次改变FSM的状态。如本文所述,改变FSM的状态可以包括使计数器递增、切换状态或这两者。
发送到组件的初始化信号将初始化该组件并且提示从组件到INIT块的返回信号。方法542还包括在INIT块554处从组件接收返回信号,并且然后在556处改变FSM的状态。方法542可以重复方法542的550处的发送部分和552处的接收部分(以及552和556处的相关联的FSM状态改变)以与附加组件通信以初始化整个芯片和/或设备。
图7是示出根据本公开的初始化硬件的方法642的另一实施例的流程图。方法642包括在644处在初始化块处接收输入信号。输入信号可以源自芯片上的本地源、或者例如通过IO块与芯片通信或直接与INIT块通信的远程源。在至少一种情况下,输入信号是来自电源的power_up信号。
在接收输入信号之后,方法642包括在646处改变初始化块的FSM的状态。在一些实施例中,改变FSM的状态包括将状态从第一状态切换到第二状态。在其他实施例中,改变FSM的状态包括使FSM的计数器递增。在其他实施例中,改变FSM的状态包括使计数器递增并且在第一状态与第二状态之间切换。方法642可以可选地包括在648处基于输入信号确定模式。
在一些实施例中,根据本公开的方法642包括在658处将输入信号与定义表的至少一个输入旁路和输出限定符进行比较。如果输入信号不对应于定义表的输入旁路或输出限定符,方法642通过在650处从初始化块向芯片上的组件发送初始化信号而继续。在发送初始化信号之后,方法642还包括在652处再次改变FSM的状态。如本文所述,改变FSM的状态可以包括使计数器递增、切换状态或这两者。
发送到组件的初始化信号将初始化该组件并且提示从组件到INIT块的返回信号。方法642还包括在INIT块654处从组件接收返回信号,并且然后在656处改变FSM的状态。方法642可以重复方法642的650处的发送部分和652处的接收部分(以及652和656处的相关联的FSM状态改变)以与附加组件通信以初始化整个芯片和/或设备。
当输入信号对应于输入旁路或不对应于定义表的输出限定符时,方法642通过在660处旁路等待或输出并且改变FSM的状态而继续。例如,当FSM处于接收状态,INIT块在继续该过程之前等待信号。然而,如果输入信号和/或返回信号对应于输入旁路,则INIT块将旁路等待信号并且继续初始化过程。在其他示例中,当INIT块处于传输状态时,当输入信号和/或返回信号对应于输出限定符时,INIT块将断言输出。
方法642包括通过将输入信号和/或返回信号与定义表进行比较来迭代直到初始化过程完成。通过迭代,初始化过程可以通过经由INIT块进行通信来初始化电子设备或芯片的所有需要的组件。如本文中所述,通过维护被路由经过INIT块的初始化过程通信,该过程可以更容易地可扩展、可重用、可查看和可调试,从而提供更稳健和可靠的系统。
冠词“一个(a)”、“一个(an)”和“该(the)”旨在表示存在前述描述中的一个或多个要素。术语“包括(comprising)”、“包括(including)”和“具有(having)”旨在是包括性的并且表示除了列出的元素之外可以还有其他元素。此外,应当理解,对本公开的“一种实现”或“实现”的引用不旨在被解释为排除也结合了所述特征的附加实现的存在。例如,关于本文中的实现而描述的任何元素可以与本文中描述的任何其他实现的任何元素组合。本文中规定的数字、百分比、比率或其他值旨在包括该值、以及“大约”或“约”为规定值的其他值,如本公开的实现所涵盖的本领域普通技术人员将理解的。因此,所记载的值应当被足够广泛地解释为包括至少足够接近规定值以执行期望功能或实现期望结果的值。规定值至少包括在合适的制造或生产过程中预期的变化,并且可以包括在规定值的5%以内、1%以内、0.1%以内或0.01%以内的值。
鉴于本公开内容,本领域普通技术人员应当认识到,等效构造不脱离本公开内容的精神和范围,并且可以在不脱离本公开的精神和范围的情况下对本文中公开的实现进行各种改变、替换和变更。包括功能性“装置加功能”条款在内的等效结构旨在涵盖本文中描述的执行所述功能的结构,包括以相同方式操作的结构等效物和提供相同功能的等效结构。申请人的明确意图是不为任何权利要求援引手段加功能或其他功能性权利要求,但“装置”一词与相关功能一起出现的权利要求除外。落入权利要求的含义和范围内的对实现的每个增加、删除和修改都应当包含在权利要求中。
应当理解,前述描述中的任何方向或参考系仅仅是相对的方向或运动。例如,对“前”和“后”或“顶”和“底”或“左”和“右”的任何引用仅是对相关元素的相对位置或移动的描述。
本公开可以在不脱离其精神或特征的情况下以其他特定形式实施。所描述的实现被认为是说明性的而非限制性的。因此,本公开的范围由所附权利要求而不是由前述说明指示。在权利要求的等效含义和范围内的变化应当包含在其范围内。

Claims (20)

1.一种用于初始化电子设备的硬件组件的方法,所述方法包括:
在所述电子设备的初始化块处接收输入信号;
在接收到所述输入信号之后,改变所述初始化块的有限状态机FSM的状态;
从所述初始化块向所述电子设备的硬件组件发送初始化信号;
在发送所述初始化信号之后,改变所述FSM的所述状态;
响应于所述初始化信号被发送到所述硬件组件,利用所述初始化块从所述硬件组件接收返回信号;以及
在接收到所述返回信号之后,根据所述返回信号改变所述FSM的所述状态。
2.根据权利要求1所述的方法,所述输入信号包括来自所述电子设备的多个组件的信息。
3.根据权利要求1所述的方法,改变所述FSM的所述状态包括使计数器递增。
4.根据权利要求3所述的方法,还包括将所述FSM的状态编号与定义表进行比较。
5.根据权利要求1所述的方法,改变所述FSM的所述状态包括在所述FSM的两个状态之间切换。
6.根据权利要求5所述的方法,还包括将所述FSM的状态类型与定义表进行比较。
7.根据权利要求1所述的方法,发送初始化信号包括向多个硬件组件发送多个初始化信号。
8.根据权利要求1所述的方法,接收返回信号包括从多个硬件组件接收多个返回信号。
9.根据权利要求1所述的方法,还包括基于所述输入信号确定模式。
10.根据权利要求9所述的方法,将所述模式与定义表进行比较以确定要断言哪些输出。
11.根据权利要求1所述的方法,还包括将所述返回信号与定义表的输入旁路进行比较。
12.根据权利要求1所述的方法,还包括将所述返回信号与输出限定符进行比较。
13.根据权利要求1所述的方法,还包括通过边带测试接口查看初始化信号或返回信号。
14.一种用于控制硬件初始化的电子设备,所述设备包括:
有限状态机FSM,具有第一组状态和第二组状态;以及
输入输出IO调节器,具有输入状态和输出状态,当所述FSM处于所述第一组状态时,所述IO调节器处于所述输入状态,而当所述FSM处于所述第二组状态时,所述IO调节器处于所述输出状态。
15.根据权利要求14所述的电子设备,所述FSM是整数计数器。
16.根据权利要求14所述的电子设备,还包括在所述电子设备上的存储器,所述存储器包含定义表。
17.根据权利要求16所述的电子设备,所述IO调节器与所述存储器通信以解析所述定义表。
18.一种计算机芯片,包括:
初始化INIT块,包括:
有限状态机FSM,具有第一组状态和第二组状态;
输入输出IO调节器,具有输入状态和输出状态,当所述FSM处于所述第一组状态时,所述IO调节器处于所述输入状态,而当所述FSM处于所述第二组状态时,所述IO调节器处于所述输出状态;以及
与所述INIT块进行直接数据通信的IP块。
19.根据权利要求18所述的计算机芯片,所述INIT块与所述计算机芯片的子系统进行数据通信。
20.根据权利要求19所述的计算机芯片,所述子系统包括:
第二INIT块,包括:
第二有限状态机FSM,具有第一组状态和第二组状态;以及
第二输入输出IO调节器,具有输入状态和输出状态,当所述第二FSM处于所述第一组状态时,所述第二IO调节器处于所述输入状态,而当所述第二FSM处于所述第二组状态时,所述第二IO调节器处于所述输出状态;以及
与所述第二INIT块进行直接数据通信的第二IP块,其中所述INIT块与所述第二INIT块进行数据通信。
CN202080041002.9A 2019-06-04 2020-04-21 用于硬件初始化的系统和方法 Active CN113924539B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/431,272 US11231941B2 (en) 2019-06-04 2019-06-04 Systems and methods for hardware initialization
US16/431,272 2019-06-04
PCT/US2020/029037 WO2020247082A1 (en) 2019-06-04 2020-04-21 Systems and methods for hardware initialization

Publications (2)

Publication Number Publication Date
CN113924539A CN113924539A (zh) 2022-01-11
CN113924539B true CN113924539B (zh) 2024-04-12

Family

ID=70617250

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080041002.9A Active CN113924539B (zh) 2019-06-04 2020-04-21 用于硬件初始化的系统和方法

Country Status (5)

Country Link
US (1) US11231941B2 (zh)
EP (1) EP3980864A1 (zh)
KR (1) KR20220016858A (zh)
CN (1) CN113924539B (zh)
WO (1) WO2020247082A1 (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101051275A (zh) * 2006-01-23 2007-10-10 奇梦达股份公司 新存储器体系结构中用直接存储器访问来系统引导的方法
US10289093B1 (en) * 2017-12-21 2019-05-14 Xilinx, Inc. Runtime adaptive generator circuit

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5371889A (en) * 1993-04-22 1994-12-06 Digital Equipment Corporation Journalling optimization system and method for distributed computations
US6108887A (en) * 1995-03-23 2000-08-29 Lucent Technologies, Inc. Method for analyzing and modifying a sequence of manufacturing operations
US7536618B2 (en) * 2006-05-25 2009-05-19 Micron Technology, Inc. Wide frequency range signal generator and method, and integrated circuit test system using same
DE112009004421T8 (de) * 2009-02-25 2012-09-13 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. RFID-Abtastsystem ohne äußere Energieversorgung zur Abfrage des strukturellen Befindens
DE102009027086A1 (de) * 2009-06-23 2010-12-30 Robert Bosch Gmbh Vorrichtung und Verfahren zur Bildung einer Signatur
US9015460B2 (en) 2012-07-30 2015-04-21 Oracle International Corporation Hybrid hardwired/programmable reset sequence controller
EP2712083B1 (en) * 2012-09-20 2015-02-25 Infineon Technologies AG Semiconductor device including short-circuit protection depending on an under-voltage detection
US20140149609A1 (en) * 2012-11-29 2014-05-29 Kok Hong Chan Detecting device disconnect in a repeater
US9733957B2 (en) 2014-09-05 2017-08-15 Qualcomm Incorporated Frequency and power management
US10248180B2 (en) * 2014-10-16 2019-04-02 Futurewei Technologies, Inc. Fast SMP/ASMP mode-switching hardware apparatus for a low-cost low-power high performance multiple processor system
US10634723B2 (en) * 2017-01-03 2020-04-28 Advantest Corporation Method and system for acquisition of test data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101051275A (zh) * 2006-01-23 2007-10-10 奇梦达股份公司 新存储器体系结构中用直接存储器访问来系统引导的方法
US10289093B1 (en) * 2017-12-21 2019-05-14 Xilinx, Inc. Runtime adaptive generator circuit

Also Published As

Publication number Publication date
US20200387386A1 (en) 2020-12-10
WO2020247082A1 (en) 2020-12-10
EP3980864A1 (en) 2022-04-13
KR20220016858A (ko) 2022-02-10
US11231941B2 (en) 2022-01-25
CN113924539A (zh) 2022-01-11

Similar Documents

Publication Publication Date Title
US7574638B2 (en) Semiconductor device tested using minimum pins and methods of testing the same
JP4745127B2 (ja) クロック切替回路
KR102162321B1 (ko) 프로세서 시스템 및 그것의 고장 검출 방법
US20070210841A1 (en) DLL circuit of semiconductor memory apparatus and method of delaying and locking clock in semiconductor memory apparatus
KR20020057697A (ko) 범용 직렬 버스용 클록 복원 회로
US6472913B2 (en) Method and apparatus for data sampling
JPH10208469A (ja) 半導体メモリ装置
US8284880B2 (en) Clock data recovery circuit and method for operating the same
US5923198A (en) High-speed clock-synchronous semiconductor integrated circuit and semiconductor integrated circuit system
US7774666B2 (en) Analyzer
CN113924539B (zh) 用于硬件初始化的系统和方法
US6477658B1 (en) Microprocessor with variable clock operation
US9496878B2 (en) Phase-locked loop and integrated circuit chip including the same, and test system including the integrated circuit chip
CN118113351A (zh) 用于缩减面积的控制寄存器电路的方法与装置
US20040260975A1 (en) Semiconductor integrated circuit
US8131906B2 (en) Voltage indicator signal generation system and method
US20060203597A1 (en) Multiport memory device
CN113325918B (zh) 时钟管理电路、芯片及电子设备
US7495486B2 (en) Semiconductor memory device
JP2744094B2 (ja) ディジタルシステム
US6621353B2 (en) Phase locked loop reconfiguration
CN104698917A (zh) 半导体装置的操作模式设定电路和利用其的数据处理系统
KR100636329B1 (ko) 통합 네트워크 인터페이스 장치 및 그 운용 방법
US20050077931A1 (en) Method and related apparatus for non-integer frequency division
US6798257B1 (en) Method and apparatus for providing multiple clock signals on a chip using a second PLL library circuit connected to a buffered reference clock output of a first PLL library circuit

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