发明内容
本发明的目的在于提出一种移位寄存器、数据运算单元以及芯片,用于解决移位寄存器数据寄存失效的问题。
本发明实施例的第一方面,提供了一种移位寄存器,包括:
输入端,用于输入数据;
多个时钟信号端,用于提供多组时钟信号;
多个多路并联锁存器,所述多个多路并联锁存器依次串联,用于在所述多组时钟信号的控制下对所述输入端输入的数据进行移位寄存;每个多路并联锁存器对应一组时钟信号;其中,相邻两个多路并联锁存器中,后一个多路并联锁存器对应的时钟信号的数据写入脉冲开启时间早于前一个多路并联锁存器对应的时钟信号的数据写入脉冲开启时间;
输出端,与所述多个多路并联锁存器中远离所述输入端的多路并联锁存器连接,用于从所述多个多路并联锁存器读出数据。
可选地,每个所述多路并联锁存器由多个锁存器并联而成;
每个所述锁存器包括:锁存单元、反相单元以及保持电容;
所述锁存单元,用于在所述时钟信号的控制下锁存输入至所述锁存器的数据;所述反相单元与所述锁存单元连接,用于对所述锁存单元输出的数据进行反相操作;所述反相单元与所述锁存单元之间存在一数据存储节点;
所述保持电容,与所述数据存储节点连接,当所述锁存单元在所述时钟信号的控制下处于高阻状态时,所述保持电容用于存储所述数据存储节点处的数据。
可选地,所述锁存单元包括:反相器和第一传输门;所述反相器,用于对输入至所述锁存器的数据进行反相操作;所述第一传输门与所述反相器连接,用于传输经所述反相器反相后的数据;所述保持电容电性连接至一地。
可选地,所述锁存单元包括:反相器和第一传输门;所述反相器,用于对输入至所述锁存器的数据进行反相操作;所述第一传输门与所述反相器连接,用于传输经所述反相器反相后的数据;所述保持电容为基于所述反相单元形成的寄生电容。
可选地,所述锁存单元包括:第二传输门;所述保持电容电性连接至一地。
可选地,所述锁存单元包括:第二传输门;所述保持电容为基于所述反相单元形成的寄生电容。
可选地,所述锁存单元包括:三态反相器;所述保持电容电性连接至一地,或者,所述保持电容为基于所述反相单元形成的寄生电容。
可选地,所述三态反相器包括:第二PMOS晶体管、第三PMOS晶体管、第二NMOS晶体管以及第三NMOS晶体管;所述第二PMOS晶体管、所述第三PMOS晶体管、所述第二NMOS晶体管以及所述第三NMOS晶体管依次串联在电源、地之间。
本发明实施例的第二方面,提供了一种数据运算单元,所述数据运算单元包括:至少一个上述第一方面所述的移位寄存器。
本发明实施例的第三方面,提供了一种芯片,所述芯片包括:至少一个上述第二方面所述的数据运算单元。
根据本发明实施例提供的移位寄存器、数据运算单元以及芯片,其中,移位寄存器包括:输入端,用于输入数据;多个时钟信号端,用于提供多组时钟信号;多个多路并联锁存器,所述多个多路并联锁存器依次串联,用于在所述多组时钟信号的控制下对所述输入端输入的数据进行移位寄存;每个多路并联锁存器对应一组时钟信号;其中,相邻两个多路并联锁存器中,后一个多路并联锁存器对应的时钟信号的数据写入脉冲开启时间早于前一个多路并联锁存器对应的时钟信号的数据写入脉冲开启时间;输出端,与所述多个多路并联锁存器中远离所述输入端的多路并联锁存器连接,用于从所述多个多路并联锁存器读出数据。
本发明实施例的移位寄存器中,每个多路并联锁存器对应一组时钟信号,且对于相邻的两个多路并联锁存器而言,后一个多路并联锁存器对应的时钟信号的数据写入脉冲开启时间早于前一个多路并联锁存器对应的时钟信号的数据写入脉冲开启时间。这样,当后一个多路并联锁存器的时钟信号数据写入脉冲开启时间到来时,后一个多路并联锁存器开始进行数据锁存,此时由于前一个多路并联锁存器的时钟信号的数据写入脉冲开启时间还未到,因此在后一个多路并联锁存器的保持时间(从开始锁存数据到数据锁存完成)内,前一个多路并联锁存器并无新的数据输出,因此,本发明实施例中的移位寄存器可以避免数据寄存失效问题的发生。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅配置为解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
参见图1,图1为本发明实施例一中移位寄存器的电路结构图。该移位寄存器包括:输入端:D0-Dn,用于输入数据,其中,n可以为大于或等于0的任意整数;多个时钟信号端,用于提供多组时钟信号,具体的,例如图1所示的互为反相信号的时钟信号组CLKP1、CLKN1,以及CLKP2、CLKN2;多个多路并联锁存器10,多个多路并联锁存器10依次串联,用于在多组时钟信号的控制下对输入端输入的数据进行移位寄存;每个多路并联锁存器10对应一组时钟信号,其中,相邻两个多路并联锁存器10中,后一个多路并联锁存器10对应的时钟信号的数据写入脉冲开启时间早于前一个多路并联锁存器10对应的时钟信号的数据写入脉冲开启时间;输出端:Q0-Qn,与多个多路并联锁存器10中远离输入端的多路并联锁存器10连接,用于从多个多路并联锁存器10读出数据。
本申请实施例中,多路并联锁存器10的数量与时钟信号的组数相同,且可以为任意的大于或等于0的整数,图1中仅以2个多路并联锁存器10串联作为示例,并不作为对本申请的限制。
进一步地,如图1所示,每个多路并联锁存器10由多个锁存器101并联而成;每个锁存器101包括:锁存单元1011、反相单元1012以及保持电容1013。
锁存单元1011,用于在时钟信号的控制下锁存输入至锁存器101的数据;反相单元1012与锁存单元1011连接,用于对锁存单元1011输出的数据进行反相操作;反相单元1012与锁存单元1011之间存在一数据存储节点S。
保持电容1013,与数据存储节点S连接,当锁存单元1011在时钟信号的控制下处于高阻状态时,保持电容1013用于存储数据存储节点S处的数据。
进一步地,参见图1,锁存单元1011可以包括:反相器和第一传输门;反相器,用于对输入至锁存器101的数据进行反相操作;第一传输门与反相器连接,用于传输经反相器反相后的数据;保持电容1013电性连接至一地。在本实施例中,保持电容1013为单独存在的电容,即不同于基于反相单元1012形成的寄生电容。
具体的,以图1中与输入端直接连接的多路并联锁存器10为例,对其锁存单元1011的具体连接关系进行详细说明:
时钟信号CLKP1、CLKN1分别与该多路并联锁存器10中各锁存器101的锁存单元1011中第一传输门连接,用于控制锁存单元1011的状态,锁存单元1011的状态包括:高阻状态或导通状态。
参见图1,锁存单元1011中的反相器由PMOS晶体管1011P1和NMOS晶体管1011N1串联而成,PMOS晶体管1011P1的源极接电源,NMOS晶体管1011N1的源极接地,PMOS晶体管1011P1和NMOS晶体管1011N1的漏极连接,形成反相器的输出端,PMOS晶体管1011P1和NMOS晶体管1011N1的栅极连接,形成反相器的输入端,也是整个锁存器101的输入端。
进一步地,本发明实施例中,对于每个锁存器101而言,可以选择使用抗漏电器件作为锁存单元1011中的第一传输门,当锁存单元1011处于高阻状态时,第一传输门可以延缓数据存储节点S处漏电的速度。具体的,抗漏电器件可以为阈值电压较大的低漏电器件,或者也可以为栅长较长的器件等。
本发明实施例一提供的移位寄存器中,多个多路并联锁存器10串联连接,且对于相邻的两个多路并联锁存器10而言,后一个多路并联锁存器10对应的时钟信号的数据写入脉冲开启时间早于前一个多路并联锁存器10对应的时钟信号的数据写入脉冲开启时间。这样,当后一个多路并联锁存器10的时钟信号数据写入脉冲开启时间到来时,后一个多路并联锁存器10开始进行数据锁存,此时由于前一个多路并联锁存器10的时钟信号的数据写入脉冲开启时间还未到,因此在后一个多路并联锁存器10的保持时间(从开始锁存数据到数据锁存完成)内,前一个多路并联锁存器10并无新的数据输出,因此,本发明实施例中的移位寄存器可以避免数据寄存失效问题的发生。
下面结合图1,对移位寄存器中数据的移位寄存过程进行解释说明:
参见图1,2个多路并联锁存器10串联连接,且后一个多路并联锁存器10对应的时钟信号CLKP2、CLKN2的数据写入脉冲开启时间早于前一个多路并联锁存器10对应的时钟信号CLKP1、CLKN1的数据写入脉冲开启时间。假设图1中,每个多路并联锁存器10中仅包括1个锁存器101,待寄存的外部数据为包括前后两级的二进制数据:A1A2,其中,A1、A2分别表示一级二进制数据。
第一个时钟周期开始前,移位寄存器的两个多路并联锁存器10中均未寄存数据。
针对第一个时钟周期而言,由于时钟信号CLKP2、CLKN2的数据写入脉冲开启时间早于时钟信号CLKP1、CLKN1的数据写入脉冲开启时间,以CLKP的上升沿作为数据写入脉冲开启时间为例,也就是说,时钟信号CLKP2的上升沿先到,而时钟信号CLKP1的上升沿还未到,因此,在CLKP2上升沿到来时刻,后一个多路并联锁存器10开始进行数据锁存(锁存的数据为空),此时由于CLKP1的上升沿还未到,因此在后一个多路并联锁存器10的保持时间内,前一个多路并联锁存器10输出数据不变,仍为空;此后,当时钟信号CLKP1的上升沿到来时,外部二进制数据A1被锁存至前一个多路并联锁存器10内,此时,虽然前一个多路并联锁存器10的输出端X输出的数据变为A1,但是,由于后一个多路并联锁存器10已处于锁存状态,因此,A1不会被输入至后一个多路并联锁存器10内。也就是说,在第一个时钟周期结束时,前一个多路并联锁存器10中存储的二进制外部数据为A1,而后一个多路并联锁存器10中未存储外部数据。
针对第二个时钟周期而言,在CLKP2上升沿到来时刻,后一个多路并联锁存器10开始进行数据锁存,具体的,对前一个多路并联锁存器10输出端X输出的数据A1进行锁存,此时由于CLKP1的上升沿还未到,因此在后一个多路并联锁存器10的保持时间内,前一个多路并联锁存器10输出端X输出的数据仍为A1;此后,当时钟信号CLKP1的上升沿到来时,外部二进制数据A2被锁存至前一个多路并联锁存器10内,此时,虽然前一个多路并联锁存器10的输出端X输出的数据变为A2,但是,由于后一个多路并联锁存器10已处于锁存状态,因此,A2不会被输入至后一个多路并联锁存器10内。也就是说,在第二个时钟周期结束时,前一个多路并联锁存器10中存储的二进制外部数据为A2,而后一个多路并联锁存器10中存储的二进制外部数据为A1。
通过上述内容可知,图1所示的移位寄存器中,外部数据从输入端输入之后,经过2个时钟周期从输出端输出,并且可以保证输出数据相对于外部输入的数据不会发生变化,即不会发生数据寄存失效问题。第一个时钟周期,移位寄存器将外部数据存储进前一个多路并联锁存器10;第二个时钟周期,移位寄存器将前一个多路并联锁存器10中存储的数据转移到后一个多路并联锁存器10中进行存储,因此,本发明实施例中的移位寄存器,可以将数据移位存储,可用于:无需对数据进行逻辑操作而直接存储的场景。另外,也常用于同步时钟系统中,以实现数据的对齐等待,例如:两条时钟链路中,第一条链路的数据经过5个时钟周期之后可以达到输出端,而第二条链路中的数据则需要经过7个时钟周期之后才可以到达输出端,此种情况下,为实现两条链路中数据的握手或其他操作,可以采用本发明实施例中的移位寄存器对第一条链路中的数据进行移位寄存,以实现数据的对齐等待。
基于图1所示实施例提供的移位寄存器,在本发明的另一实施例提供的移位寄存器中,针对多路并联锁存器10中的单个锁存器101而言,也可以无需额外增加一个用于存储数据存储节点S处数据的保持电容,而是采用基于反向单元1012形成的寄生电容(即:栅电容)来进行数据存储节点S处数据的存储。该实施例中,对于单个锁存器101而言,其他部分的连接关系与图1所示多路并联锁存器10中单个锁存器101相同,并且能够获得与图1所示实施例相同的有益效果,此处不再赘述。另外,由于寄生电容的电容值较小,因此,该实施例提供的移位寄存器可以应用于如下场景中:数据寄存时间较短的场景,或者,数据使用一次之后无需再次使用的场景,或者,较短固定周期地数据读取的场景。
参见图2,图2为本发明实施例二中移位寄存器的电路结构图。该移位寄存器包括:输入端:D0-Dn,用于输入数据,其中,n可以为大于或等于0的任意整数;多个时钟信号端,用于提供多组时钟信号,具体的,例如图2所示的互为反相信号的时钟信号组 CLKP1、CLKN1,以及CLKP2、CLKN2;多个多路并联锁存器10,多个多路并联锁存器10依次串联,用于在多组时钟信号的控制下对输入端输入的数据进行移位寄存;每个多路并联锁存器10对应一组时钟信号,其中,相邻两个多路并联锁存器10中,后一个多路并联锁存器10对应的时钟信号的数据写入脉冲开启时间早于前一个多路并联锁存器10对应的时钟信号的数据写入脉冲开启时间;输出端:Q0-Qn,与多个多路并联锁存器10中远离输入端的多路并联锁存器10连接,用于从多个多路并联锁存器10读出数据。
本申请实施例中,多路并联锁存器10的数量与时钟信号的组数相同,且可以为任意的大于或等于0的整数,图2中仅以2个多路并联锁存器10串联作为示例,并不作为对本申请的限制。
进一步地,如图2所示,每个多路并联锁存器10由多个锁存器101并联而成;每个锁存器101包括:锁存单元1011、反相单元1012以及保持电容1013。
锁存单元1011,用于在时钟信号的控制下锁存输入至锁存器101的数据;反相单元1012与锁存单元1011连接,用于对锁存单元1011输出的数据进行反相操作;反相单元1012与锁存单元1011之间存在一数据存储节点S。
保持电容1013,与数据存储节点S连接,当锁存单元1011在时钟信号的控制下处于高阻状态时,保持电容1013用于存储数据存储节点S处的数据。
进一步地,参见图2,锁存单元1011可以包括:第二传输门;保持电容电性连接至一地。在本实施例中,保持电容1013为单独存在的电容,即不同于基于反相单元1012形成的寄生电容。
本发明实施例二提供的移位寄存器中,多个多路并联锁存器10串联连接,且对于相邻的两个多路并联锁存器10而言,后一个多路并联锁存器10对应的时钟信号的数据写入脉冲开启时间早于前一个多路并联锁存器10对应的时钟信号的数据写入脉冲开启时间。这样,当后一个多路并联锁存器10的时钟信号数据写入脉冲开启时间到来时,后一个多路并联锁存器10开始进行数据锁存,此时由于前一个多路并联锁存器10的时钟信号数据写入脉冲开启时间还未到,因此在后一个多路并联锁存器10的保持时间(从开始锁存数据到数据锁存完成)内,前一个多路并联锁存器10并无新的数据输出,因此,本发明实施例中的移位寄存器可以避免数据寄存失效问题的发生。
下面结合图2,对移位寄存器中数据的移位寄存过程进行解释说明:
参见图2,2个多路并联锁存器10串联连接,且后一个多路并联锁存器10对应的时钟信号CLKP2、CLKN2的数据写入脉冲开启时间早于前一个多路并联锁存器10对应的时钟信号CLKP1、CLKN1的数据写入脉冲开启时间。假设图2中,每个多路并联锁存器10中仅包括1个锁存器101,待寄存的外部数据为包括前后两级的二进制数据:A1A2,其中,A1、A2分别表示一级二进制数据。
第一个时钟周期开始前,移位寄存器的两个多路并联锁存器10中均未寄存数据。
针对第一个时钟周期而言,由于时钟信号CLKP2、CLKN2的数据写入脉冲开启时间早于时钟信号CLKP1、CLKN1的数据写入脉冲开启时间,以CLKP的上升沿作为数据写入脉冲开启时间为例,也就是说,时钟信号CLKP2的上升沿先到,而时钟信号CLKP1的上升沿还未到,因此,在CLKP2上升沿到来时刻,后一个多路并联锁存器10开始进行数据锁存(锁存的数据为空),此时由于CLKP1的上升沿还未到,因此在后一个多路并联锁存器10的保持时间内,前一个多路并联锁存器10输出数据不变,仍为空;此后,当时钟信号CLKP1的上升沿到来时,外部二进制数据A1被锁存至前一个多路并联锁存器10内,此时,虽然前一个多路并联锁存器10的输出端X输出的数据已改变(变为对A1反相之后的数据,例如:若为1,则输出端X输出的数据为0;若为0,则输出端X输出的数据为1),但是,由于后一个多路并联锁存器10已处于锁存状态,因此,对A1反相之后的数据不会被输入至后一个多路并联锁存器10内。也就是说,在第一个时钟周期结束时,前一个多路并联锁存器10中存储的二进制外部数据为A1,而后一个多路并联锁存器10中未存储外部数据。
针对第二个时钟周期而言,在CLKP2上升沿到来时刻,后一个多路并联锁存器10开始进行数据锁存,具体的,对前一个多路并联锁存器10输出端X输出的数据(对A1反相之后的数据)进行锁存,此时由于CLKP1的上升沿还未到,因此在后一个多路并联锁存器10的保持时间内,前一个多路并联锁存器10输出端X输出的数据仍为对A1反相之后的数据;此后,当时钟信号CLKP1的上升沿到来时,外部二进制数据A2被锁存至前一个多路并联锁存器10内,此时,虽然前一个多路并联锁存器10的输出端X输出的数据变为对A2反相之后的数据,但是,由于后一个多路并联锁存器10已处于锁存状态,因此,对A2反相之后的数据不会被输入至后一个多路并联锁存器10内。也就是说,在第二个时钟周期结束时,前一个多路并联锁存器10中存储的二进制外部数据为A2,而后一个多路并联锁存器10中存储的二进制外部数据为对A1反相之后的数据。
通过上述内容可知,图2所示的移位寄存器中,外部数据从输入端输入之后,经过2个时钟周期从输出端输出,并且可以保证不会发生数据寄存失效问题。第一个时钟周期,移位寄存器将外部数据存储进前一个多路并联锁存器10;第二个时钟周期,移位寄存器将前一个多路并联锁存器10中存储的数据反相之后,转移到后一个多路并联锁存器10中进行存储,因此,本发明实施例中的移位寄存器,可以将数据移位存储,可用于:无需对数据进行逻辑操作而直接存储的场景。另外,也常用于同步时钟系统中,以实现数据的对齐等待,例如:两条时钟链路中,第一条链路的数据经过5个时钟周期之后可以达到输出端,而第二条链路中的数据则需要经过7个时钟周期之后才可以到达输出端,此种情况下,为实现两条链路中数据的握手或其他操作,可以采用本发明实施例中的移位寄存器对第一条链路中的数据进行移位寄存,以实现数据的对齐等待。
基于图2所示实施例提供的移位寄存器,在本发明的另一实施例提供的移位寄存器中,针对多路并联锁存器10中的单个锁存器101而言,也可以无需额外增加一个用于存储数据存储节点S处数据的保持电容,而是采用基于反向单元1012形成的寄生电容(即:栅电容)来进行数据存储节点S处数据的存储。该实施例中,对于单个锁存器101而言,其他部分的连接关系与图2所示多路并联锁存器10中单个锁存器101相同,并且能够获得与图2所示实施例相同的有益效果,此处不再赘述。另外,由于寄生电容的电容值较小,因此,该实施例提供的移位寄存器可以应用于如下场景中:数据寄存时间较短的场景,或者,数据使用一次之后无需再次使用的场景,或者,较短固定周期地数据读取的场景。
参见图3,图3为本发明实施例三中移位寄存器的电路结构图。该移位寄存器包括:输入端:D0-Dn,用于输入数据,其中,n可以为大于或等于0的任意整数;多个时钟信号端,用于提供多组时钟信号,具体的,例如图1所示的互为反相信号的时钟信号组 CLKP1、CLKN1,以及CLKP2、CLKN2;多个多路并联锁存器10,多个多路并联锁存器10依次串联,用于在多组时钟信号的控制下对输入端输入的数据进行移位寄存;每个多路并联锁存器10对应一组时钟信号,其中,相邻两个多路并联锁存器10中,后一个多路并联锁存器10对应的时钟信号的数据写入脉冲开启时间早于前一个多路并联锁存器10对应的时钟信号的数据写入脉冲开启时间;输出端:Q0-Qn,与多个多路并联锁存器10中远离输入端的多路并联锁存器10连接,用于从多个多路并联锁存器10读出数据。
本申请实施例中,多路并联锁存器10的数量与时钟信号的组数相同,且可以为任意的大于或等于0的整数,图3中仅以2个多路并联锁存器10串联作为示例,并不作为对本申请的限制。
进一步地,如图3所示,每个多路并联锁存器10由多个锁存器101并联而成;每个锁存器101包括:锁存单元1011、反相单元1012以及保持电容1013。
锁存单元1011,用于在时钟信号的控制下锁存输入至锁存器101的数据;反相单元1012与锁存单元1011连接,用于对锁存单元1011输出的数据进行反相操作;反相单元1012与锁存单元1011之间存在一数据存储节点S。
保持电容1013,与数据存储节点S连接,当锁存单元1011在时钟信号的控制下处于高阻状态时,保持电容1013用于存储数据存储节点S处的数据。
进一步地,参见图3,锁存单元1011可以包括:三态反相器;保持电容1013电性连接至一地。在本实施例中,保持电容1013为单独存在的电容,即不同于基于反相单元1012形成的寄生电容。
具体的,以图3中与输入端直接连接的多路并联锁存器10为例,对其锁存单元1011的具体连接关系进行详细说明:
三态反相器包括:第二PMOS晶体管1011P2、第三PMOS晶体管1011P3、第二NMOS晶体管1011N2以及第三NMOS晶体管1011N3;第二PMOS晶体管1011P2、第三PMOS晶体管1011P3、第二NMOS晶体管1011N2以及第三NMOS晶体管1011N3依次串联在电源、地之间。
参见图3,时钟信号CLKP1、CLKN1分别与第三PMOS晶体管1011P3的栅极以及第二NMOS晶体管1011N2的栅极连接,用于控制锁存单元1011的状态,其中,锁存单元1011的状态包括:高阻状态或导通状态;输入端分别与第二PMOS晶体管1011P2的栅极以及第三NMOS晶体管1011N3的栅极连接,用于将输入端输入的数据传输至锁存单元1011。
本发明实施例三提供的移位寄存器中,多个多路并联锁存器10串联连接,且对于相邻的两个多路并联锁存器10而言,后一个多路并联锁存器10对应的时钟信号的数据写入脉冲开启时间早于前一个多路并联锁存器10对应的时钟信号的数据写入脉冲开启时间。这样,当后一个多路并联锁存器10的时钟信号数据写入脉冲开启时间到来时,后一个多路并联锁存器10开始进行数据锁存,此时由于前一个多路并联锁存器10的时钟信号数据写入脉冲开启时间还未到,因此在后一个多路并联锁存器10的保持时间(从开始锁存数据到数据锁存完成)内,前一个多路并联锁存器10并无新的数据输出,因此,本发明实施例中的移位寄存器可以避免数据寄存失效问题的发生。
下面结合图3,对移位寄存器中数据的移位寄存过程进行解释说明:
参见图3,2个多路并联锁存器10串联连接,且后一个多路并联锁存器10对应的时钟信号CLKP2、CLKN2的数据写入脉冲开启时间早于前一个多路并联锁存器10对应的时钟信号CLKP1、CLKN1的数据写入脉冲开启时间。假设图3中,每个多路并联锁存器10中仅包括1个锁存器101,待寄存的外部数据为包括前后两级的二进制数据:A1A2,其中,A1、A2分别表示一级二进制数据。
第一个时钟周期开始前,移位寄存器的两个多路并联锁存器10中均未寄存数据。
针对第一个时钟周期而言,由于时钟信号CLKP2、CLKN2的数据写入脉冲开启时间早于时钟信号CLKP1、CLKN1的数据写入脉冲开启时间,以CLKP的上升沿作为数据写入脉冲开启时间为例,也就是说,时钟信号CLKP2的上升沿先到,而时钟信号CLKP1的上升沿还未到,因此,在CLKP2上升沿到来时刻,后一个多路并联锁存器10开始进行数据锁存(锁存的数据为空),此时由于CLKP1的上升沿还未到,因此在后一个多路并联锁存器10的保持时间内,前一个多路并联锁存器10输出数据不变,仍为空;此后,当时钟信号CLKP1的上升沿到来时,外部二进制数据A1被锁存至前一个多路并联锁存器10内,此时,虽然前一个多路并联锁存器10的输出端X输出的数据变为A1,但是,由于后一个多路并联锁存器10已处于锁存状态,因此,A1不会被输入至后一个多路并联锁存器10内。也就是说,在第一个时钟周期结束时,前一个多路并联锁存器10中存储的二进制外部数据为A1,而后一个多路并联锁存器10中未存储外部数据。
针对第二个时钟周期而言,在CLKP2上升沿到来时刻,后一个多路并联锁存器10开始进行数据锁存,具体的,对前一个多路并联锁存器10输出端X输出的数据A1进行锁存,此时由于CLKP1的上升沿还未到,因此在后一个多路并联锁存器10的保持时间内,前一个多路并联锁存器10输出端X输出的数据仍为A1;此后,当时钟信号CLKP1的上升沿到来时,外部二进制数据A2被锁存至前一个多路并联锁存器10内,此时,虽然前一个多路并联锁存器10的输出端X输出的数据变为A2,但是,由于后一个多路并联锁存器10已处于锁存状态,因此,A2不会被输入至后一个多路并联锁存器10内。也就是说,在第二个时钟周期结束时,前一个多路并联锁存器10中存储的二进制外部数据为A2,而后一个多路并联锁存器10中存储的二进制外部数据为A1。
通过上述内容可知,图3所示的移位寄存器中,外部数据从输入端输入之后,经过2个时钟周期从输出端输出,并且可以保证输出数据相对于外部输入的数据不会发生变化,即不会发生数据寄存失效问题。第一个时钟周期,移位寄存器将外部数据存储进前一个多路并联锁存器10;第二个时钟周期,移位寄存器将前一个多路并联锁存器10中存储的数据转移到后一个多路并联锁存器10中进行存储,因此,本发明实施例中的移位寄存器,可以将数据移位存储,可用于:无需对数据进行逻辑操作而直接存储的场景。另外,也常用于同步时钟系统中,以实现数据的对齐等待,例如:两条时钟链路中,第一条链路的数据经过5个时钟周期之后可以达到输出端,而第二条链路中的数据则需要经过7个时钟周期之后才可以到达输出端,此种情况下,为实现两条链路中数据的握手或其他操作,可以采用本发明实施例中的移位寄存器对第一条链路中的数据进行移位寄存,以实现数据的对齐等待。
基于图3所示实施例提供的移位寄存器,在本发明的另一实施例提供的移位寄存器中,针对多路并联锁存器10中的单个锁存器101而言,也可以无需额外增加一个用于存储数据存储节点S处数据的保持电容,而是采用基于反向单元1012形成的寄生电容(即:栅电容)来进行数据存储节点S处数据的存储。该实施例中,对于单个锁存器101而言,其他部分的连接关系与图3所示多路并联锁存器10中单个锁存器101相同,并且能够获得与图3所示实施例相同的有益效果,此处不再赘述。另外,由于寄生电容的电容值较小,因此,该实施例提供的移位寄存器可以应用于如下场景中:数据寄存时间较短的场景,或者,数据使用一次之后无需再次使用的场景,或者,较短固定周期地数据读取的场景。
本发明实施例中提供的移位寄存器,可作为一种定制化的标准单元,在通用计算场景中实现数据的移位寄存。例如:可以作为CPU/CPU中的计算核心单元,用于超大规模计算场景下的数据移位寄存;也可以作为AI(Artificial Intelligence,人工智能)芯片中的计算处理单元,用于高密度计算场景下的数据移位寄存;还可以作为SOC(System on Chip,系统级芯片)/FPGA(Field Programmable Gate Array,现场可编程门阵列)等系统级的计算单元,用于低功耗计算等场景下的数据移位寄存。
本发明实施例还提供一种数据运算单元,图4为本发明实施例四中数据运算单元的结构示意图。如图4所示,数据运算单元400包括控制电路401、运算电路402以及多个移位寄存器403。控制电路401对移位寄存器403中的数据进行刷新并从移位寄存器403中读取数据,运算电路402对读取的数据进行运算,再由控制电路401将运算结果输出。其中,移位寄存器403为上述实施例一至实施例三中任一的移位寄存器。
本发明实施例还提供一种芯片,图5为本发明实施例五中芯片的结构示意图。如图5所示,芯片500包括控制单元501,以及一个或多个数据运算单元400。控制单元501向数据运算单元400输入数据并将数据运算单元400输出的数据进行处理。
在本公开的各种实施方式中所使用的表述“第一”、“第二”、“第一”或“第二”可修饰各种部件而与顺序和/或重要性无关,但是这些表述不限制相应部件。以上表述仅配置为将元件与其它元件区分开的目的。例如,第一用户设备和第二用户设备表示不同的用户设备,虽然两者均是用户设备。例如,在不背离本公开的范围的前提下,第一元件可称作第二元件,类似地,第二元件可称作第一元件。
当一个元件(例如,第一元件)称为与另一元件(例如,第二元件)“(可操作地或可通信地)联接”或“(可操作地或可通信地)联接至”另一元件(例如,第二元件)或“连接至”另一元件(例如,第二元件)时,应理解为该一个元件直接连接至该另一元件或者该一个元件经由又一个元件(例如,第三元件)间接连接至该另一个元件。相反,可理解,当元件(例如,第一元件)称为“直接连接”或“直接联接”至另一元件(第二元件)时,则没有元件(例如,第三元件)插入在这两者之间。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。