[0056] 其中,第N个寄存器MN还与复位单元11连接。
[0057] 具体的,第一个寄存器M1至第N个寄存器MN中的任意一寄存器包括第一输入端D、第二输入端clk、第三输入端SI、第一输出端Q和第二输出端
[0058] 在本发明实施例提供的寄存器复位系统中,N个依次连接的寄存器为无复位/置位管脚的寄存器,可以避免使用第二缓存器,进而避免第二缓存器通过多条导线向每个寄存器发送复位信号,节省寄存器复位系统中的导线资源,减小了设置有本
申请提供的寄存器复位系统的芯片的设计面积,进而降低芯片的设计成本和功耗,提高芯片的性能。
[0059] 下面,以N等于3为例,对本申请提供的寄存器复位系统作进一步地说明,具体的,请参见图3实施例。
[0060] 图3为本发明实施例提供的寄存器复位系统的结构示意图二。在图2的
基础上,如图3所示,该寄存器复位系统中的复位单元包括:复位状态机21、时钟信号产生单元、复位信号产生单元,其中,复位状态机21分别与时钟信号产生单元和复位信号产生单元连接;时钟信号产生单元分别与三个寄存器连接;复位信号产生单元分别与第一个寄存器M1和第三个寄存器M3连接;
[0061] 复位状态机21用于,向时钟信号产生单元发送切换信号,以使时钟信号产生单元根据切换信号开启、或者关断向三个寄存器发送时钟信号;复位状态机21还用于,向复位信号产生单元发送复位控制信号,以使复位信号产生单元根据复位控制信号产生复位信号。
[0062] 具体的,复位状态机21为复位控制状态机。该复位状态机21可以接收至少一个复位信号源12发送时钟脉冲,当任意一复位信号源12向复位状态机21发送的时钟脉冲为
高电平信号时,复位状态机21可以向时钟信号产生单元中的时钟控制器201发送切换信号,向复位信号产生单元发送复位控制信号。其中,复位控制信号包括通过选择控制信号和功能控制信号,选择控制信号为复位状态机21向选择器301发送的信号,功能控制信号为复位状态机21向复位控制单元302发送的信号。
[0063] 本申请示例性的以复位信号源12的个数为5、寄存器个数为3为例对本申请中的寄存器复位系统进行说明的。在实际中,可以根据实际需求设置复位信号源12和寄存器个数。
[0064] 在一种可能的设计中,时钟信号产生单元包括:时钟控制器201和门控单元202,其中,时钟控制器201分别与复位状态机21和门控单元202连接;门控单元202分别与N个寄存器连接;时钟控制器201用于,根据切换信号生成时钟源信号;门控单元202用于,对时钟源信号进行处理,生成时钟信号。
[0065] 具体的,时钟控制器201中包括多级选择器。在本申请中,将多级选择器中最后一级寄存器
修改为无毛刺切换时钟逻辑,该修改可以使得N个寄存器在
复位期间在线统一将每个寄存器的时钟信号切换为低速移位信号(该低速移位信号为经过静态时序分析得到的)。需要说明的是,时钟控制器201还用于控制低速移位信号在N个寄存器复位期间保持一直切换。具体的,时钟控制器为片上时钟控制器(An On-Chip Clock Controller,OCC)。
[0066] 进一步地,时钟控制器201中的选择器包括第一输入端1(标识为“Func clk”)、第二输入端2(标识为“shift clk”)和第三输入端3(标示为“选择pin”)。其中,复位状态机21分别与第一输入端1和选择器的第三输入端3连接。
[0067] 在一种可能的设计中,复位信号产生单元包括:选择器301、复位控制单元302和测试单元303,其中,复位状态机21分别与选择器301和复位控制单元302连接;测试单元303分别与选择器301、复位控制单元302、第一个寄存器M1和第三个寄存器M3连接,测试单元用于,向第一个寄存器M1发送复位信号。
[0068] 具体的,选择器301具有第一输入端1、第二输入端2、第三输入端3和第一输出端1。在实际应用中,外部信号源1可以通过第一输入端1向选择器301发送数据流,外部信号源2通过第二输入端2向选择器301发送低电平信号(1’b0),复位状态机21通过第三输入端3向选择器301发送选择控制信号,以使选择器301根据数据流、低电平信号和选择控制信号向测试单元303发送低电平信号(0)。
[0069] 进一步地,复位控制单元302具有第一输入端1和第二输入端2,复位控制单元302通过第二输入端2接收复位状态机21发送的功能控制信号,通过第一输入端1接收外部信号源3发送的机台测试信号,并根据功能控制信号和机台测试信号向测试单元303发送第二控制信号,以使测试单元303根据第二控制信号和低电平信号(假定复位时低电平有效)生成复位信号,并向第一个寄存器M1移位该复位信号。其中,复位控制单元302具体为(EDT pin控制单元,使303输出复位数值信号到测试寄存器组M1),测试单元303具体为嵌入式确定性测试(Embedded Deterministic Testing,EDT)单元。
[0070] 在一种可能的设计中,寄存器复位系统还包括:至少一个复位信号源12,其中,至少一个复位信号源12分别与复位状态机21连接;至少一个复位信号源分别向复位状态机21发送时钟脉冲,以使复位状态机21根据时钟脉冲生成切换信号和复位控制信号。
[0071] 在一种可能的设计中,门控单元202包括:第一门控单元2021、至少一个第二门控单元2022(时钟
开关)和第一个缓存器2023,其中,第一门控单元2021分别与时钟控制器和201第一个缓存器2023连接;至少一个第二门控单元2022分别与第一个缓存器2023和3组寄存器连接,其中,一组寄存器连接一个第二门控单元2022。
[0072] 具体的,第一门控单元2021和至少一个第二门控单元2022均为集成时钟门控单元(Integrated Clock Gating Cell,ICGC)。
[0073] 在一种可能的设计中,寄存器复位系统还包括:门控控制单元13,其中,门控控制单元13分别与至少一个第二门控单元2022连接和时钟控制器201。
[0074] 下面结合图3,对本申请提供的寄存器复位系统的中寄存器的复位过程进行说明:
[0075] 第一步,至少一个复位信号源12向复位状态机21发送复位脉冲,当存在一复位信号源12发送的复位脉冲有效时,复位状态机21向时钟控制器201发送切换信号,以使钟控制器201根据该切换信号控制第一门控单元2021关断时钟源信号。
[0076] 第二步,门控控制单元13向时钟控制器201和至少一个第二门控单元2022发送直通控制信号(高电平信号),同时控制测试单元303的
输出信号为复位值0(复位时,低电平有效),目的是让复位值0移入寄存器。需要说明的是,每个第二门控单元2022包括TE(该端口有效时将使时钟输入端/输出端导通)端,第二门控单元2022通过TE端接收门控控制单元13发送的直通控制信号。
[0077] 第三步,复位状态机21向时钟控制器201发送切换信号(in reset process),以使时钟控制器201根据切换信号控制第一门控单元2021将时钟源信号切换为扫描移位时钟信号(scan shift clock)。
[0078] 第四步,复位状态机21控制时钟控制器201使其输出的时钟脉冲个数不小于扫描链的长度。其中,扫描链的长度等于N(即寄存器的个数)。
[0079] 第五步,当目标寄存器达到复位状态后,关断第一门控单元2201时钟源信号。复位状态机21向时钟控制器201输入切换信号,以使时钟控制器201向第一门控单元2021发送信号。
[0080] 第六步,门控控制单元13分别向时钟控制器201以及至少一个切换第二门控单元2022的TE端口发送关闭直通控制信号。
[0081] 第七步,复位状态机21向时钟控制器201输入切换信号,以使时钟控制器201控制第一门控单元2021开启时钟源信号,其中,时钟控制器201的输为功能时钟。
[0082] 第八步,完成复位过程。
[0083] 在上述复位过程中,测试单元303中控制逻辑(即复位控制单元302)的作用是在寄存器复位期间使得EDT时钟和保持EDT控制信号在合理数值。
[0084] 需要说明的是,第一门控单元2021、至少一个第二门控单元2022通常为工具或者人为插入的时钟门控,在移位过程中要保持导通。
[0085] 在本申请提供的寄存器复位系统与现有寄存器复位系统相比,本申请中的寄存器为无复位/置位管脚的寄存器,减少芯片的后端绕线数量,进而降低面积。进一步地,由于寄存器为无复位/置位管脚的寄存器,因此可以比有复位/置位管脚的寄存器的标准单元(standard cell)面积小约15%。
[0086] 在实际应用中,可以根据实际运用条件的变化,对本申请提供的寄存器复位系统,进而如下改进。
[0087] 在实际应用中,如果存在寄存器不能复位、而且关心该寄存器复位后的状态(部分寄存器由于存有重要历史信息,不能复位)时,可以控制该寄存器的时钟管脚(clk)不动,增加额外的控制点来控制该寄存器的时钟。如果该寄存器需要在扫描链(N个依次连接的寄存器形成扫描链)上、同时还需要给后一个寄存器输入复位信号,则可以将寄存器单独布局(即考虑不把该寄存器设置在扫描链中)。
[0088] 在实际应用中,如图3所示,由于N个寄存器是同时复位的(
串联在一个测试单元303),所以在不同时间复位的寄存器不能串在同一个扫描链上,如果已经在一条链上,需要对不同时间复位的寄存器进行隔离,发送复位信号时。控制不复位的寄存器的时钟不动,可以通过增加额外的控制点来控制不同时间复位的寄存器的时钟。如果在扫描链上的不同时间复位的寄存器还要同时给其后面的寄存器发送复位信号。
[0089] 在实际应用中,在扫描链的相邻两个寄存器之间(前一个寄存器的Q端与后一个寄存器的SI端)之间有反相逻辑,而使得前一个寄存器不能给后一个寄存器发送复位信号(0)时,可以采用有复位/置位管脚的寄存器代替后一个寄存器。
[0090] 需要说明的是,本申请中是利用寄存器的移位来实现寄存器的存储值和复位值一致,因此需要在一段时间有时钟翻转,从而使得寄存器的输出是在变动的。在实际应用中,若需要处理这段时间的输出变化对其他无须复位他寄存器的影响,则可以借助正常功能上既有逻辑(例如isolation cell)。如果输出刚好跨power边界,可以控制iso把输出钳位。但需要考虑isolation cell输出数值的是否符合影响其他非复位模
块的功能。还可以找出本寄存器复位系统的输出边界寄存器(可以通过借用share wrapper cell的概念),把边界寄存器替换为带复位/置位管脚的寄存器。
[0091] 在实际应用中,若寄存器复位系统中的N个寄存器有部分为带置位管脚的寄存器,而不是带复位管脚的寄存器,则可以在相邻的带复位管脚的寄存器和带置位管脚的寄存器之间,增加
反相器。具体的请参见图4。
[0092] 在实际应用中,若如果短扫描链的长度较长,导致复位时间长。则把短扫描链按可接受的长度分段,每段开头用带复位/置位管脚的寄存器来替换。
[0093] 图4为本发明实施例提供的相邻的带复位管脚的寄存器和带置位管脚的寄存器的连接示意图。图4所示,寄存器M1和M3为带复位管脚的寄存器,寄存器M2为带置位管脚的寄存器,在寄存器M1和寄存器M2之间增加反相器A1,在寄存器M2和寄存器M3之间增加反相器A2。
[0094] 图5为本发明实施例提供的寄存器复位系统的结构示意图三。如图5所示,N个寄存器包括:至少一个带复位/置位管脚的寄存器;寄存器复位系统还包括:第二缓存器14,其中,
[0095] 第二缓存器14分别与每个带复位/置位管脚的寄存器连接。
[0096] 在一种可能的设计中,至少一个带复位/置位管脚的寄存器的个数为1,1个带复位/置位管脚的寄存器为第j个寄存器,j为整数,1
[0097] 需要说明的是,图5是以N等于3、j等于2,第2个寄存器M2为带复位管脚(第四输入端,标识为Reset)的寄存器为例,对本申请提供的寄存器复位系统进行说明的。
[0098] 如图5所示,第1个寄存器M1的第一输出端与第3个寄存器M3的第三输入端连接,第二缓存器14与第2个寄存器M2的第四输入端连接。其中,第3个寄存器M3根据第1个寄存器M1输出的复位信号和第二门控单元输入的时钟信号进行复位,第2个寄存器M2根据复位状态机21通过第二缓存器14输入的复位信号和第二门控单元输入的时钟信号进行复位。
[0099] 本发明实施例还提供一种芯片,该芯片包括如上任意一个实施例中的寄存器复位系统。
[0100] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。