一种读后清零寄存器及读后清零的方法转让专利

申请号 : CN200910147253.0

文献号 : CN101576818B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄科

申请人 : 中兴通讯股份有限公司

摘要 :

本发明公开了一种读后清零寄存器及读后清零的方法,本发明提供的读后清零寄存器包括存储有内容数据的存储单元,还包括第一查找表单元、延时电路单元和第二查找表单元。第一查找表单元用于获取CPU读取内容数据的有效时间,并根据该有效时间,生成初始清除信号;延时电路单元用于将初始清除信号以设定的延时间隔,生成延时清除信号;第二查找表单元用于检测延时清除信号,当延时清除信号无效时,输出内容数据;否则,输出信号零。本发明提供的读后清零寄存器及读后清零的方法,将CPU的读取内容数据的有效时间和寄存器的清零内容数据的有效时间严格地隔离开来,避免了现有技术中两者在时间上重叠造成的读取不可靠或者清除不可靠的问题。

权利要求 :

1.一种读后清零寄存器,包括存储有内容数据的存储单元,其特征在于,还包括:第一查找表单元,用于对输入的CPU片选信号、CPU输出的地址总线信号以及CPU读有效信号进行处理,获取CPU读取所述内容数据的有效时间,并根据获取的有效时间,生成初始清除信号;所述初始清除信号的有效电平的起始时间不早于CPU读取内容数据的有效时间;

同步时钟信号单元,用于输出同步时钟信号;

延时电路单元,用于根据所述同步时钟信号单元输出的同步时钟信号,保存所述初始清除信号,并将其延时总长度等于设定的延时间隔的若干时钟节拍,生成延时清除信号;

第二查找表单元,用于检测所述延时清除信号,当所述延时清除信号无效时,输出所述内容数据;否则,清除所述内容数据,并输出信号零。

2.如权利要求1所述的寄存器,其特征在于,所述第一查找表单元,还用于将所述CPU读取内容数据的有效时间的结束点作为所述初始清除信号的有效电平的起始时间点,并使用预设的所述有效电平的持续时间,生成所述初始清除信号。

3.如权利要求1所述的寄存器,其特征在于,还包括:第一触发器,用于保存所述第二查找表单元的输出结果,并将所述输出结果输出至CPU数据总线。

4.如权利要求3所述的寄存器,其特征在于,所述第一触发器,还用于根据所述同步时钟信号,保存所述第二查找表单元的输出结果,以及将所述输出结果输出至CPU数据总线。

5.如权利要求1所述的寄存器,其特征在于,所述设定的延时间隔的长度根据CPU类型以及读取接口时序读取时间参数要求确定。

6.如权利要求1所述的寄存器,其特征在于,所述延时电路具体包括:第二触发器、第三触发器、第一反相器、与门、第四触发器和第二反相器;

所述第二触发器的D输入端与所述第一查找表单元的输出端相连,所述第二触发器的Q输出端分别与第三触发器的D输入端以及与门的输入端相连;

所述第三触发器的Q输出端经过所述第一反相器与所述与门的输入端相连;所述与门的输出端与所述第四触发器的D输入端相连;

所述第四触发器的Q输出端与第二反相器的输入端相连;所述第二反相器的输出端与所述第二查找表单元相连;

所述第二触发器、第三触发器和第四触发器的时钟输入端与所述同步时钟信号单元的输出端相连。

7.如权利要求6所述的寄存器,其特征在于,所述第一查找表单元为三输入端或门,其三输入端分别为CPU片选信号输入端、CPU输出的地址总线信号输入端和CPU读有效信号输入端;

所述第二查找表单元为二输入端与门,其两个输入端分别为内容数据信号输入端以及所述第二反相器输出信号的输入端。

8.一种读后清零的方法,其特征在于,包括:

对CPU片选信号、CPU输出的地址总线信号以及CPU读有效信号进行处理,获取CPU读取存储的内容数据的有效时间,并根据获取的有效时间,生成初始清除信号;所述初始清除信号的有效电平的起始时间不早于CPU读取内容数据的有效时间;

根据同步时钟信号,保存所述初始清除信号,并将其延时总长等于设定延时间隔的若干时钟节拍,生成所述延时清除信号;

检测所述延时清除信号,当所述延时清除信号无效时,输出所述内容数据;否则,清除所述内容数据,并输出信号零。

9.如权利要求8所述的方法,其特征在于,根据CPU读取内容数据的有效时间生成初始清除信号,包括:将所述CPU读取内容数据的有效时间的结束点作为所述初始清除信号的有效电平的起始时间点,并使用预设的有效电平的持续时间,生成所述初始清除信号。

10.如权利要求8所述的方法,其特征在于,还包括:

根据同步时钟信号,将输出的所述内容数据或者信号零输出至CPU数据总线。

说明书 :

一种读后清零寄存器及读后清零的方法

技术领域

[0001] 本发明涉及数字电路领域,尤其涉及一种读后清零寄存器以及读后清零寄存器的方法。

背景技术

[0002] 在各类功能电路中常需要设计一种特殊的功能寄存器,它能够将保存的信息经过CPU接口读取后自行清零。
[0003] 这种读后清零寄存器的电路装置设计要点是既要保证寄存器可以可靠地被CPU接口读取,又要求CPU接口读取后,寄存器的内容被可靠清零,同时清零的动作也不能影响读取结果,也就是说清零必须在CPU接口读取数据完成以后进行。
[0004] 目前已有寄存器的设计方法普遍存在时序上不够严谨,常出现清零不可靠,或者读取不可靠的问题,根本原因是清零动作和读取动作在时间上存在重叠的问题。 [0005] 图1是以INTEL读写接口模式为例,CPU_CS是片选信号,低电平时表示寄存器选择有效,CPU_ADDR是中央处理器CPU输出的地址总线信号,对CPU_ADDR信号进行译码产生CPU_CS信号,因此上时序上看CPU_CS比CPU_ADDR有效宽度要小。CPU_RD信号是CPU的读有效信号,低电平有效,在CPU处理器输出CPU_RD为低时,读取采样寄存器的值,CLR信号是对寄存器清除信号,为高电平时清除寄存器的值。在以往的读后清零寄存器的设计方案中,CLR信号是相对CPU_RD下降沿进行延时产生,因此在时序上读有效时间T1和清除有效时间T2在时间上可能会有重叠部分,例如当有些CPU读取速度较快时可以提前将数据取走,但对于某些CPU读取速度较慢时,则存在读取和清除重叠的问题,在功能表现上体现就是读取数据不可靠或者清除不可靠。

发明内容

[0006] 本发明实施例提供了一种能够实现CPU读取内容数据和寄存器清零互不干扰的读后清零寄存器以及读后清零的方法。
[0007] 本发明实施例提供的一种读后清零寄存器,包括存储有内容数据的存储单元,进一步地,还包括:
[0008] 第一查找表单元,用于对输入的CPU片选信号、CPU输出的地址总线信号以及CPU读有效信号进行处理,获取CPU读取所述内容数据的有效时间,并根据获取的有效时间,生成初始清除信号;所述初始清除信号的有效电平的起始时间不早于CPU读取内容数据的有效时间;
[0009] 同步时钟信号单元,用于输出同步时钟信号;
[0010] 延时电路单元,用于根据所述同步时钟信号单元输出的同步时钟信号,保存所述初始清除信号,并将其延时总长度等于设定的延时间隔的若干时钟节拍,生成延时清除信号;
[0011] 第二查找表单元,用于检测所述延时清除信号,当所述延时清除信号无效时,输出所述内容数据;否则,清除所述内容数据,并输出信号零。
[0012] 所述第一查找表单元,还用于将所述CPU读取内容数据的有效时间的结束点作为所述初始清除信号的有效电平的起始时间点,并使用预设的所述有效电平的持续时间,生成所述初始清除信号。
[0013] 进一步地,本发明实施例提供的读后清零寄存器,还包括:第一触发器,用于保存所述第二查找表单元的输出结果,并将所述输出结果输出至CPU数据总线。 [0014] 进一步地,所述第一触发器,还用于根据所述同步时钟信号,保存所述第二查找表单元的输出结果,以及将所述输出结果输出至CPU数据总线。
[0015] 所述设定的延时间隔的长度根据CPU类型以及读取接口时序读取时间参数要求确定。
[0016] 所述延时电路具体包括:第二触发器、第三触发器、第一反相器、与门、第四触发器和第二反相器;
[0017] 所述第二触发器的D输入端与所述第一查找表单元的输出端相连,所述第二触发器的Q输出端分别与第三触发器的D输入端以及与门的输入端相连;
[0018] 所述第三触发器的Q输出端经过所述第一反相器与所述与门的输入端相连;所述与门的输出端与所述第四触发器的D输入端相连;
[0019] 所述第四触发器的Q输出端与第二反相器的输入端相连;所述第二反相器的输出端与所述第二查找表单元相连;
[0020] 所述第二触发器、第三触发器和第四触发器的时钟输入端与所述同步时钟信号单元的输出端相连。
[0021] 所述第一查找表单元为三输入端或门,其三输入端分别为CPU片选信号输入端、CPU输出的地址总线信号输入端和CPU读有效信号输入端;
[0022] 所述第二查找表单元为二输入端与门,其两个输入端分别为内容数据信号输入端以及所述第二反相器输出信号的输入端。
[0023] 本发明实施例还提供了一种读后清零的方法,包括:
[0024] 对CPU片选信号、CPU输出的地址总线信号以及CPU读有效信号进行处理,获取CPU读取存储的内容数据的有效时间,并根据获取的有效时间,生成初始清除信号;所述初始清除信号的有效电平的起始时间不早于CPU读取内容数据的有效时间;
[0025] 根据同步时钟信号,保存所述初始清除信号,并将其延时总长等于设定延时间隔的若干时钟节拍,生成所述延时清除信号;
[0026] 检测所述延时清除信号,当所述延时清除信号无效时,输出所述内容数据;否则,清除所述内容数据,并输出信号零。
[0027] 根据CPU读取内容数据的有效时间生成初始清除信号,包括:
[0028] 将所述CPU读取内容数据的有效时间的结束点作为所述初始清除信号的有效电平的起始时间点,并使用预设的有效电平的持续时间,生成所述初始清除信号。 [0029] 本发明实施例还提供了一种读后清零的方法,还包括:
[0030] 根据同步时钟信号,将输出的所述内容数据或者信号零输出至CPU数据总线。 [0031] 本发明实施例的有益效果,包括:
[0032] 本发明实施例提供的读后清零寄存器以及读后清零的方法,根据CPU读取内容数据的有效时间,生成初始清除信号,并将初始清除信号以设定的延时间隔,生成延时清除信号,将延时清除信号作为清零操作的指令信号,当该延时清除信号无效时,输出内容数据,否则,清除存储的内容数据,并输出信号零。由于初始清除信号的有效电平的起始时间不早于CPU读取内容数据的有效时间,并且,寄存器进行执行清零操作的指令信号即延时清除信号,是在初始清除信号的基础上进行延时生成,这样,寄存器进行清零的有效时间(即延时清除信号的有效时间)和CPU读有效信号的有效时间之间具有严格的时间间隔,即使CPU实际读取速度较慢时,也不会出现未读取完数据,寄存器就已经清零的问题,保证了CPU读取寄存器的内容数据和寄存器清零操作按照设定先后顺序执行,并且在时间上没有重叠,彼此互不干扰。
[0033] 并且,进一步地,本发明实施例中,将CPU读取内容数据的有效时间的结束点作为初始清除信号的有效电平的起始时间点,使得CPU读取内容数据有效时间与寄存器清零有效时间之间的间隔等于设定的延时间隔;而该延时间隔可以预先根据CPU类型以及读取接口时序读取时间参数要求来确定,因此,在实际实施过程中,可以根据不同CPU类型和读取接口的要求来更合理地调整CPU读取内容数据和寄存器清零两个操作的时间间隔。在保证两者互不干扰的情况下,同时避免时间间隔过长造成的读取效率较低的问题。 [0034] 附图说明
[0035] 图1为现有寄存器设计方案的时序图;
[0036] 图2为本发明实施例提供的读后清零寄存器的结构示意图;
[0037] 图3为本发明实施例提供的读后清零寄存器的信号流走向图;
[0038] 图4为本发明实施例提供的读后清零寄存器中各信号的时序关系图; [0039] 图5为本发明实施例提供的读后清零寄存器的一个具体实例的电路图; [0040] 图6为本发明实施例提供的一种读后清零方法的流程图。
[0041] 具体实施方式
[0042] 下面结合附图,用具体实施例对本发明提供的一种读后清零的寄存器及读后清零的方法进行详细的说明。
[0043] 本发明实施例提供了一种读后清零的寄存器,除了包含与现有技术中寄存器所包含的存储内容数据的存储单元之外,如图2所示,进一步地,还可以包括:第一查找表单元201、延时电路单元202、第二查找表单元203。
[0044] 第一查找表单元201,用于获取CPU读取该读后清零寄存器中内容数据的有效时间,并根据获取的有效时间,生成初始清除信号;初始清除信号的有效电平的起始时间不早于CPU读取内容数据的有效时间;
[0045] 延时电路单元202,用于将初始清除信号以设定的延时间隔,生成延时清除信号; [0046] 第二查找表单元203,用于检测延时清除信号,当延时清除信号无效时,输出该读后清零寄存器中的内容数据;当延时清除信号有效时,清除存储的内容数据,并输出信号零。
[0047] 本发明实施例提供的读后清零寄存器,如图2所示,进一步地,还可以包括:第一触发器204,用于保存第二查找表单元203的输出结果,并将第二查找表单元203的输出结果输出至CPU数据总线。
[0048] 本发明实施例提供的读后清零寄存器,如图2所示,还可以包括:同步时 钟信号单元205,用于输出同步时钟信号;
[0049] 延时电路单元202,还用于根据同步时钟信号单元205输出的同步时钟信号,保存初始清除信号,并将其延时总长度等于设定延时间隔的若干时钟节拍,生成延时清除信号;
[0050] 第一触发器204,还用于根据同步时钟信号单元205输出的同步时钟信号,保存第二查找表单元203的输出结果,以及将第二查找表单元203的输出结果输出至CPU数据总线。
[0051] 具体实施时,第一触发器可以采用D触发器,但不发明实施例并不限定第一触发器的具体类型。
[0052] 下面结合本实施例中读后清零寄存器的信号流走向图以及各信号的时序关系图,详细地说明本发明实施例提供的读后清零寄存器的具体结构和工作原理。 [0053] 从图3中可以看出,第一查找表单元201对输入的三路信号即CPU片选信号CPU_CS、CPU输出的地址总线信号CPU_ADDR以及CPU读有效信号CPU_RD进行处理,获取CPU读取寄存器中内容数据的有效时间T1,并且根据有效时间T1生成初始清除信号CLR。 [0054] 在本发明实施例中,较佳地,初始清除信号CLR的有效电平的起始时间点即CPU读取内容数据有效时间的结束点,以初始清除信号为高电平有效的情况为例,CPU读取内容数据的有效时间T1的结束点,正是初始清除信号CLR由低电平跳变为有效高电平的时间点。 [0055] 将CPU读取内容数据的有效时间的结束点作为初始清除信号CLR从低电平跃变为高电平(有效电平)的时间点,并使用预先设置的初始清除信号的有效高电平的持续时间,就可以生成初始清除信号。
[0056] 从图4中的时序图可以看出,初始清除信号是作为中间信号,并不是寄存器清零操作的指令信号,寄存器根据将初始清除信号延时后的延时清除信号来执行清零操作。 [0057] 延时电路单元202保存初始清除信号保存起来,并根据同步时钟信号SYN_CLK,将其再延时若干个时钟节拍,使得延时的若干时钟节拍的总长等于预先设定的延时间隔T2,生成延时清除信号CLR_DLY,并将延时清除信号CLR_DLY作为寄存器进行清零操作的指令信号。
[0058] 延时间隔T2的长短,可以根据CPU的类型以及读取接口时序的CPU实际读取时延要求的相关参数来综合确定。通常,如果CPU实际读取时延要求较长,那么T2时间也可以相应长一些。具体实施时,可以通过调整延时电路单元的参数来实现T2时长的调整。 [0059] 延时电路单元202将生成的延时清除信号CLR_DLY输出给第二查找表单元203。 [0060] 第二查找表单元203的检测输入的延时清除信号CLR_DLY和内容数据信号DATA;当延时清除信号无效时,将输入的内容数据信号输出给第一触发器的D输入端;当延时清除信号有效时,清除内容数据,输出信号“0”至第一触发器的D输入端。 [0061] 第一触发器204,在同步时钟信号SYN_CLK设定的触发点,保存第二查找表单元
203的输出,并将保存的结果输出至数据总线CPU_DATA上。
[0062] 图4是本发明实施例提供的读后清零寄存器中各信号的时序关系图,其中: [0063] T1为CPU读取该读后清零寄存器中内容数据的有效时间;
[0064] T3为该读后清零寄存器中延时清除信号的有效时间;
[0065] T2为预先设定的CPU读取有效和寄存器清零有效之间的时间间隔。 [0066] 从图4中可以清楚地看出,T2时间间隔,使得CPU读有效时间和寄存器清零的有效时间(即延时清除信号的有效时间)严格地隔离开来,即使CPU的读取速度较慢,也能够保证其完整地、可靠地将寄存器中的内容数据读走,以及寄存器在读取完后的可靠地自动清零,使得CPU读取内容数据和寄存器清零两个操作在时序上没有重叠,互不影响。 [0067] 图5是本发明实施例提供的读后清零寄存器的一个具体实例的电路图。如 图5所示,该电路图中,第一查表单元201可以采用三输入端或门电路,三输入端或门501的三个输入端分别为CPU片选信号(图5中标识为CPU_CS)输入端、CPU输出的地址总线信号(图5中标识为CPU_ADDR)输入端和CPU读有效信号(CPU_RD)输入端。
[0068] 延时电路单元202,如图5所示,具体包括:第二触发器502、第三触发器503、第一反相器504、与门505、第四触发器506和第二反相器507;其中:
[0069] 第二触发器502的D输入端与第一查找表单元201的输出端相连,第二触发器502的Q输出端分别与第三触发器503的D输入端以及与门505的输入端相连;
[0070] 第三触发器503的Q输出端经过第一反相器504和与门505的输入端相连;与门505的输出端与第四触发器506的D输入端相连;
[0071] 第四触发器506的Q输出端与第二反相器507的输入端相连;第二反相器507的输出端与第二查找表单元203相连;
[0072] 第二触发器502、第三触发器503和第四触发器506的时钟输入端与同步时钟信号单元的输出端相连。
[0073] 第二查找表单元203可以采用二输入端与门电路实现,该与门508的两个输入端分别为内容数据信号输入端以及第二反相器507输出信号的输入端。
[0074] 第二查找单元203的输出端与第一触发器204的D输入端连接。同时,第一触发器204的时钟输入端与同步时钟信号单元(图5中未示意出)的输出端连接。 [0075] 图5所示的电路在工作时,CPU片选信号(CPU_CS)、CPU输出的地址总线信号(CPU_ADDR)和CPU读有效信号(CPU_RD)共同输入或门501的三输入端,但这三个信号同时为逻辑“0”时,或门501输出逻辑“0”,当三个信号其中任一个信号为逻辑“1”时,或门501输出逻辑“1”,生成初始清除信号。
[0076] 第二触发器502和第三触发器503将或门的输出保存并延时2个同步时钟 周期(SYN_CLK)。
[0077] 当第二触发器502的输出为逻辑“1”,且第三触发器输出为逻辑“0”时,与门505输出逻辑“1”。
[0078] 第四触发器506将与门505的输出延时一个同步时钟周期(SYN_CLK)。 [0079] 当第四触发器506的输出为逻辑“0”时,与门508输出内容数据信号(DATA);当第四触发器506的输出为逻辑“1”时,与门508输出逻辑“0”。
[0080] 本发明实施例提供的读后清零寄存器,可以采用现场可编程门阵列(Field Programmable Gate Array,FPGA)器件实现,FPGA器件由于可以灵活配置的优点,在通信产品得到大量应用,利用FPGA内部丰富的触发器、查找表以及互联线资源,可以实现本发明实施例提供的读后清零寄存器可靠的读取以及清零的功能。
[0081] 如图5所示的本发明实施例提供的读后清零寄存器的仅为具体实施中的一种较佳的实施方式,但本发明实施例并不限于此种实现方式,具体实施过程中,可以根据寄存器应用场合的不同,采用相应的软件以及硬件实现,能够实现本发明实施例提供的读后清零的功能即可,都不脱离本发明的保护范围。
[0082] 根据本发明实施例提供的读后清零寄存器,本发明实施例还提供了一种读后清零的方法,如图6所示,具体包括以下步骤:
[0083] S601、获取CPU读取存储的内容数据的有效时间,并根据CPU读取内容数据的有效时间,生成初始清除信号;
[0084] 初始清除信号的有效电平的起始时间不早于CPU读取内容数据的有效时间; [0085] 较佳地,将CPU读取内容数据的有效时间的结束点作为初始清除信号有效电平的起始时间点,并使用预设的有效电平的持续时间,生成初始清除信号。
[0086] S602、根据同步时钟信号,将初始清除信号延时总长等于设定的延时间隔的若干时钟节拍,生成延时清除信号;
[0087] 延时间隔的长短,可以根据CPU的类型以及读取接口时序的CPU实际读 取时延要求的相关参数来综合确定。
[0088] S603、检测延时清除信号是否有效;
[0089] 当延时清除信号无效时,执行步骤S604;当延时清除信号有效时,执行步骤S605; [0090] 步骤S604、输出存储的内容数据;
[0091] 步骤S605、清除存储的内容数据,并输出信号零;
[0092] 步骤S604或者S605之后,还执行下述步骤S606:
[0093] 步骤S606、根据同步时钟信号,将输出的内容数据或者信号零输出至CPU数据总线。
[0094] 本发明实施例提供的读后清零寄存器以及读后清零的方法,根据CPU读取内容数据的有效时间,生成初始清除信号,并将初始清除信号以设定的延时间隔,生成延时清除信号,将延时清除信号作为清零操作的指令信号,当该延时清除信号无效时,输出内容数据,否则,清除存储的内容数据,并输出信号零。由于初始清除信号的有效电平的起始时间不早于CPU读取内容数据的有效时间,并且,寄存器进行执行清零操作的指令信号即延时清除信号,是在初始清除信号的基础上进行延时生成,这样,寄存器进行清零的有效时间(即延时清除信号的有效时间)和CPU读有效信号的有效时间之间具有严格的时间间隔,即使CPU实际读取速度较慢时,也不会出现未读取完数据,寄存器就已经清零的问题。保证了CPU读取寄存器的内容数据和寄存器清零操作按照设定先后顺序执行,并且在时间上没有重叠,彼此互不干扰。
[0095] 并且,进一步地,本发明实施例中,将CPU读取内容数据的有效时间的结束点作为初始清除信号有效电平的起始时间点,使得CPU读取内容数据有效时间与寄存器清零有效时间之间的间隔等于设定的延时间隔;而该延时间隔可以预先根据CPU类型以及读取接口时序读取时间参数要求来确定,因此,在实际实施过程中,可以根据不同CPU类型和读取接口的要求来更合理地调整CPU读取内容数据和寄存器清零两个操作的时间间隔。在保证两者互不干 扰的情况下,同时避免时间间隔过长造成的读取效率较低的问题。 [0096] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。