首页> 中国专利> 加减计数电路和加减计数方法

加减计数电路和加减计数方法

摘要

本发明公开了一种加减计数电路,包括加减状态缓冲单元和加减计数器。由加减状态缓冲单元接收输入的正信号和负信号,并根据接收到的正信号进行加计数、根据接收到的负信号进行减计数,在计数结果不超出预先设置的阈值区间的情况下,即实现了将正负信号对应的加减计数相互抵消而不会产生溢出,而加减计数器只根据加减状态缓冲单元的溢出进行加减计数,从而在加减状态缓冲单元没有溢出时不会由于交替的加减计数产生重复的比特翻转,提高了工作效率,降低了功耗。而且,本发明可以采用低位宽的加减计数器作为加减状态缓冲单元,实现简单,且成本也不高。本发明还公开了一种加减计数方法。

著录项

  • 公开/公告号CN101060326A

    专利类型发明专利

  • 公开/公告日2007-10-24

    原文格式PDF

  • 申请/专利权人 北京中星微电子有限公司;

    申请/专利号CN200710099730.1

  • 发明设计人 范志军;

    申请日2007-05-29

  • 分类号H03K25/00(20060101);

  • 代理机构11018 北京德琦知识产权代理有限公司;

  • 代理人王一斌;王琦

  • 地址 100083 北京市海淀区学院路35号世宁大厦15层

  • 入库时间 2023-12-17 19:20:12

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-07-17

    未缴年费专利权终止 IPC(主分类):H03K25/00 授权公告日:20090701 终止日期:20120529 申请日:20070529

    专利权的终止

  • 2009-07-01

    授权

    授权

  • 2007-12-19

    实质审查的生效

    实质审查的生效

  • 2007-10-24

    公开

    公开

说明书

技术领域

本发明涉及数字电路技术,特别涉及一种加减计数电路和一种加减计数方法。

背景技术

加减计数器能够进行加法和减法运算,是一种双向计数器,广泛应用各技术领域中。例如,外差信号处理、电能正负脉冲计数等。

图1为一种现有加减计数器的结构示意图。如图1所示,现有的一种加减计数器至少包括3个输入引脚:用于输入正信号的pos引脚、用于输入负信号的neg引脚和用于输入时钟信号的clock引脚。

加减计数器在每个时钟信号到来时,根据通过pos引脚输入的高电平信号对上一个时钟周期内得到的计数结果进行加1运算,或者根据通过neg引脚输入的高电平信号对上一个时钟周期内得到的计数结果进行减1运算。如果在时钟信号到来时,通过pos引脚和neg引脚输入的信号均为低电平信号,也就是说,既没有输入的正信号也没有输入的负信号,则加减计数器保持上一个时钟周期内得到的计数结果不变。同时,加减计数器通过其输出总线实时输出带符号位的计数结果。

对于大位宽的加减计数器来说,如果其上一次得到的计数结果处于比特翻转临界状态,则会由于一个低位的进位而引起计数结果的多个高位的比特(bit)翻转,使得数据稳定时间(即建立时间)较长,从而限制了加减计数的工作频率,进而限制了应用加减计数的各种处理过程的工作频率,且多位的比特翻转造成的功耗也较高。例如,处于比特翻转的计数结果为“01111111”,如果此时对其加1,则该计数结果即变为“10000000”,所有位均发生了比特翻转。

图2为现有加减计数器在低位产生进位后的工作原理示意图。当最低位bit0产生带进位的比特翻转之后,从bit1~bitn逐位翻转,总共经历了如两条虚线间隔宽度所示的稳定时间。

可见,现有加减计数器的工作频率较低、功耗较高。

而且,如果处于比特翻转临界状态的计数结果在bitn完成翻转之前,外部即将加减计数器实时输出的计数结果用于后续处理,则会由于此时的计数结果并不是最终的正确数值而造成后续处理产生误差。该情况为一种特例,但如果发生,则会对后续处理造成很大的影响。

发明内容

有鉴于此,本发明的一个主要目的在于,提供一种加减计数电路,能够提高加减计数的工作频率并降低加减计数的功耗。

本发明的另一个主要目的在于,提供一种加减计数方法,能够提高加减计数的工作频率并降低加减计数的功耗。

根据上述的一个主要目的,本发明提供了一种加减计数电路,包括:加减状态缓冲单元和第一加减计数器,其中,

所述加减状态缓冲单元与所述第一加减计数器相连;

所述加减状态缓冲单元,预先设置第一阈值和第二阈值,所述第一阈值大于第二阈值,接收输入的正信号和负信号;如果上一次得到的计数结果等于所述第一阈值且当前接收到了正信号,则输出表示加计数的溢出信号;如果上一次得到的计数结果等于所述第二阈值且当前接收到了负信号,则输出表示减计数的溢出信号;否则,根据当前接收到的正信号进行加计数,根据当前接收到的负信号进行减计数;

所述第一加减计数器,根据接收到的表示加计数的溢出信号进行加计数;根据接收到的表示减计数的溢出信号进行减计数。

在初始状态下,所述加减状态缓冲单元的计数结果为0。

如果上一次得到的计数结果等于所述第一阈值且当前接收到了正信号,或者上一次得到的计数结果等于所述第二阈值且当前接收到了负信号,则所述加减状态缓冲单元保持上一次得到的计数结果不变。

所述加减状态缓冲单元存储得到的计数结果。

该电路进一步包括加法器,与所述加减状态缓冲单元和所述第一加减计数器相连;

所述加法器将所述加减状态缓冲单元的计数结果与所述第一加减计数器的计数结果相加,并输出所述相加得到的和。

所述加减状态缓冲单元为第二加减计数器。

所述第二加减计数器的位宽小于所述第一加减计数器的位宽。

所述第二加减计数器的位宽为2比特。

所述第二加减计数器的2个比特中,一个为符号位,另一个为数值位;

所述第一阈值为1,所述第二阈值为-1。

所述第二加减计数器的2个比特均为数值位;

所述第一阈值为3,所述第二阈值为0。

根据上述的另一个主要目的,本发明提供了一种加减计数方法,包括:

设置第一阈值和第二阈值,并接收正信号和负信号,其中,所述第一阈值大于所述第二阈值;

判断上一次运算后的计数结果是否等于所述设置的第一阈值或第二阈值,

如果等于所述第一阈值,则根据接收到的正信号向加减计数器输出表示加计数的溢出信号,或者根据接收到的负信号进行减计数;

如果等于所述第二阈值,则根据接收到的正信号进行加计数,或者根据接收到的负信号向加减计数器输出表示减计数的溢出信号;

如果小于所述第一阈值且大于所述第二阈值,则根据接收到的正信号进行加计数,或者根据接收到的负信号进行减计数;

加减计数器如果接收到表示加计数的溢出信号,则进行加法计数,如果接收到表示减计数的溢出信号,则进行减法计数。

该方法进一步包括:

将根据正信号进行加计数或根据负信号进行减计数得到的计数结果,与加减计数器得到的计数结果相加。

由上述技术方案可见,本发明设置一个加减状态缓冲单元,接收输入的正信号和负信号,并根据接收到的正信号进行加计数、根据接收到的负信号进行减计数,得到计数结果。在计数结果不超出预先设置的阈值区间的情况下,即实现了将正负信号对应的加减计数相互抵消而不会产生溢出,而加减计数器只根据加减状态缓冲单元的溢出进行加减计数,从而在加减状态缓冲单元没有溢出时不会由于交替的加减计数产生重复的比特翻转,提高了工作效率,降低了功耗。

而且,本发明可以采用低位宽的加减计数器作为加减状态缓冲单元,实现简单,且成本也不高。

附图说明

图1为一种现有加减计数器的结构示意图。

图2为现有加减计数器在低位产生进位后的工作原理示意图。

图3为本发明中加减计数电路的示例性结构图。

图4为本发明实施例一中加减计数电路的结构示意图。

图5为本发明实施例二中加减计数电路的结构示意图。

图6为本发明中加减计数方法的示例性流程图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。

本发明的基本思想是:设置一个加减状态缓冲单元,其输出端与加减计数器的输入端相连。加减状态缓冲单元接收输入的正信号和负信号,根据接收到的正信号进行加计数、根据接收到的负信号进行减计数,如果正信号和负信号是交替输入的,则计数结果不会超出预先设置的阈值区间,即能够将二者相互抵消而不会产生溢出,使得输出为0,加减计数器由于输入信号为0而不进行加减计数,从而不会由于交替的加减计数产生重复的比特翻转。只有在加减状态缓冲单元的计数结果达到预先设置的阈值区间上限后又接收到正信号的情况下,才产生正向溢出,并向加减计数器输出表示加计数的溢出信号;在加减状态缓冲单元的计数结果达到预先设置的阈值区间下限后又接收到负信号的情况下,才产生负向溢出,并向加减计数器输出表示减计数的溢出信号。此时,加减计数器才进行溢出信号对应的加计数或减计数。

图3为本发明中加减计数电路的示例性结构图。如图3所示,本实施例中的加减计数电路包括:加减状态缓冲单元和加减计数器,加减状态缓冲单元的输出端与加减计数器的输入端相连。

加减状态缓冲单元,预先设置了一个大阈值和一个小阈值,接收输入的正信号和负信号;

在上一次得到的计数结果小于预先设置的大阈值且大于预先设置的小阈值时,根据当前接收到的正信号进行加计数,根据当前接收到的负信号进行减计数;

在上一次得到的计数结果等于预先设置的大阈值时,根据当前接收到的负信号进行减计数,根据当前接收到的正信号输出表示加计数的溢出信号(即产生正向溢出);

在上一次得到的计数结果等于预先设置的小阈值时,根据当前接收到的正信号进行加计数,根据当前接收到的负信号输出表示减计数的溢出信号(即产生负向溢出)。

其中,在初始状态下,加减状态缓冲单元内的计数结果为0。

加减计数器,根据接收到的表示加计数的溢出信号进行加计数;根据接收到的表示减计数的溢出信号进行减计数;输出计数结果。

上述电路中,加减状态缓冲单元也可以为一个加减计数器,其位宽通常小于与其输出端相连的另一个加减计数器。这种情况下,加减状态缓冲单元的阈值则由其位宽来确定。

例如,加减状态缓冲单元为一个2比特的加减计数器,如果其中一个比特为符号位,另一个比特为数值位,则该加减缓冲单元的大阈值为1,小阈值为-1;如果两个比特均为数值位,则该加减缓冲单元的大阈值为3,小阈值为0。

对于前一种情况,从初始状态开始,即计数结果为0,连续接收到2个正信号才会产生正向溢出,连续接收到2个负信号才会产生负向溢出,即正向负向对称;而当上一次的计数结果为-1时,连续接收到3个正信号才会产生正向溢出,当上一次的计数结果为1时,连续接收到3个负信号才会产生负向溢出。

对于后一种情况,从初始状态开始,即计数结果为0,连续接收到4个正信号才会产生正向溢出,而接收到1个负信号即产生负向溢出,即正向负向非对称;而当上一次的计数结果为3时,连续接收到4个负信号才会产生负向溢出。

实际应用中,由于加减状态缓冲单元内存储的计数结果不一定为0,即还有应进行加/减计数的正负信号可能缓存在加减状态缓冲单元中,此时,与加减状态缓冲单元相连的加减计数器输出的计数结果,不一定为最终的正确计数结果。因此,通常还需要将加减状态缓冲单元内存储的计数结果和加减计数器输出的计数结果相加,得到的和即为最终的计数结果。

以上是对本发明实施例中的加减计数电路的整体说明,以下对该电路进行详细说明。

实施例一

本实施例中,采用2比特位宽的加减计数器作为加减状态缓存单元,2比特加减计数器的大阈值和小阈值正向负向对称。与2比特加减计数器相连的加减计数器位宽为10比特。

图4为本发明实施例一中加减计数电路的结构示意图。如图4所示,本实施例中的加减计数电路包括:2比特加减计数器、10比特加减计数器和加法器。

2比特加减计数器,1比特为符号位,1比特为数值位,至少包括3个输入引脚:用于输入正信号的pos引脚、用于输入负信号的neg引脚和用于输入时钟信号的clock引脚;至少包括2个输出引脚,即表示正向溢出的进位引脚和表示负向溢出的借位引脚。

2比特加减计数器内部存储的初始计数结果为0,在每一个时钟信号到来时,通过pos引脚和neg引脚接收输入的高电平信号;

在上一次得到的计数结果为0时,即加减状态平衡:根据当前通过pos引脚接收到的高电平信号进行加计数,计数结果变为1;根据当前通过neg引脚接收到的高电平信号进行减计数,计数结果变为-1;

在上一次得到的计数结果等于1时,即加缓冲状态:根据当前通过neg引脚接收到的高电平信号进行减计数,计数结果变为0;根据当前通过pos引脚接收到的高电平信号,通过进位引脚输出高电平信号,即表示加计数的溢出信号,计数结果仍为1;

在上一次得到的计数结果等于-1时,即减缓冲状态:根据当前通过pos引脚接收到的高电平信号进行加计数,计数结果变为0;根据当前通过neg引脚接收到的高电平信号,通过借位引脚输出高电平信号,即表示减计数的溢出信号,计数结果仍为-1;

存储得到的计数结果。

10比特加减计数器,至少包括3个输入引脚:用于输入正信号的pos引脚、用于输入负信号的neg引脚和用于输入时钟信号的clock引脚。10比特加减计数器的pos引脚与2比特加减计数器的进位输出引脚相连,neg引脚与2比特加减计数器的借位输出引脚相连。

10比特加减计数器,在每一个时钟信号到来时,判断其pos引脚和neg引脚是否有输入的高电平信号;根据通过pos引脚接收到的高电平信号进行加计数;根据通过neg引脚接收到的高电平信号进行减计数;存储得到的计数结果。

加法器,包括两条输入总线,分别与2比特加减计数器的输出总线和10比特加减计数器的输出总线相连。

加法器在需要获取最终计数结果时,将通过两条输入总线,分别从2比特加减计数器和10比特加减计数器中读取各自存储的计数结果;将读取的两个计数结果相加,并将相加得到的和输出。

下面,结合实际应用中的具体实例对上述电路进行进一步说明。

场景11:在2比特加减计数器处于初始状态时,一个正信号和一个负信号周期性地交替输入,即2比特加减计数器交替通过其pos引脚和neg引脚接收到高电平,2比特加减计数器内部的计数结果交替地为1和0,不产生溢出,即10比特加减计数器不发生比特翻转,其数据稳定时间即为0。而对于2比特加减计数器来说,其内部也只会产生1位的比特翻转,数据稳定时间也非常短。此时,加法器不需要等待很长的时间,即可从2比特加减计数器和10比特加减计数器中读取二者内部的计数结果,并进行加法运算,提高了加减计数的工作效率。

场景12:在2比特加减计数器内部存储的计数结果为-1时,两个正信号和两个负信号周期性地交替输入,即2比特加减计数器交替通过其pos引脚和neg引脚连续接收到两个高电平,2比特加减计数器内部的计数结果交替地为-1、0、1、0,不产生溢出,即10比特加减计数器不发生比特翻转,其数据稳定时间即为0。而对于2比特加减计数器来说,其内部产生2位的比特翻转,数据稳定时间也非常短,但相比于场景11,则数据稳定时间稍长。此时,加法器不需要等待很长的时间,即可从2比特加减计数器和10比特加减计数器中读取二者内部的计数结果,并进行加法运算,提高了加减计数的工作效率。但相比于场景11,则此时的工作效率略低。

场景13:在2比特加减计数器内部存储的计数结果为-1时,三个正信号和三个负信号周期性地交替输入,即2比特加减计数器交替通过其pos引脚和neg引脚连续接收到三个高电平,2比特加减计数器内部的计数结果和溢出状态交替地为:0且不溢出、1且不溢出、1且溢出、0且不溢出、-1且不溢出、-1且溢出、-1且不溢出,即10比特加减计数器每3或4个时钟周期才发生一次比特翻转。而对于2比特加减计数器来说,其内部产生2位的比特翻转,数据稳定时间非常短,但相比于场景11,则数据稳定时间稍长。此时,加法器不需要等待很长的时间,即可从2比特加减计数器和10比特加减计数器中读取二者内部的计数结果,并进行加法运算,提高了加减计数的工作效率。但相比于场景11,则此时的工作效率略低。

上述电路中,2比特加减计数器和10比特加减计数器也可以分别通过各自的输出总线实时输出各自的计数结果,加法器在需要获取最终计数结果时,再将接收到的两个计数结果相加并输出。

实施例二

本实施例中,仍采用2比特位宽的加减计数器作为加减状态缓存单元,但2比特加减计数器的大阈值和小阈值正向负向非对称。与2比特加减计数器相连的加减计数器位宽为10比特。

图5为本发明实施例二中加减计数电路的结构示意图。如图5所示,本实施例中的加减计数电路包括:2比特加减计数器、10比特加减计数器和加法器。

2比特加减计数器,2个比特均为数值位,至少包括3个输入引脚:用于表示输入信号正负的符号位引脚、用于表示输入信号数值的数值位引脚和用于输入时钟信号的clock引脚;至少包括2个输出引脚,即表示正向溢出的进位引脚和表示负向溢出的借位引脚。

2比特加减计数器内部存储的初始计数结果为0,在每一个时钟信号到来时,通过符号位引脚和数值位引脚接收输入的正信号和负信号。其中,符号位为低电平、数值位为高电平表示正信号;符号位和数值位均为高电平时表示负信号;

在上一次得到的计数结果为0时,即加减状态平衡:根据当前接收到的正信号进行加计数,计数结果变为1;根据当前接收到的负信号,通过借位引脚输出高电平信号,即表示减计数的溢出信号,计数结果仍为0;

在上一次得到的计数结果等于1时,即一级加缓冲状态:根据当前接收到的正信号进行加计数,计数结果变为2;根据当前接收到的负信号进行减计数,计数结果变为0;

在上一次得到的计数结果等于2时,即一级加缓冲状态:根据当前接收到的正信号进行加计数,计数结果变为3;根据当前接收到的负信号进行减计数,计数结果变为1;

在上一次得到的计数结果等于3时,即二级加缓冲状态:根据当前接收到的负信号进行减计数,计数结果变为2;根据当前接收到的正信号,通过进位引脚输出高电平信号,即表示加计数的溢出信号,计数结果仍为3;

存储得到的计数结果。

10比特加减计数器,至少包括3个输入引脚:用于输入正信号的pos引脚、用于输入负信号的neg引脚和用于输入时钟信号的clock引脚。10比特加减计数器的pos引脚与2比特加减计数器的进位输出引脚相连,neg引脚与2比特加减计数器的借位输出引脚相连。

10比特加减计数器,在每一个时钟信号到来时,判断其pos引脚和neg引脚是否有输入的高电平信号;根据通过pos引脚接收到的高电平信号进行加计数;根据通过neg引脚接收到的高电平信号进行减计数;存储得到的计数结果。

加法器,包括两条输入总线,分别与2比特加减计数器的输出总线和10比特加减计数器的输出总线相连。

加法器在需要获取最终计数结果时,将通过两条输入总线,分别从2比特加减计数器和10比特加减计数器中读取各自存储的计数结果;将读取的两个计数结果相加,并将相加得到的和输出。

下面,结合实际应用中的具体实例对上述电路进行进一步说明。

场景21:在2比特加减计数器处于初始状态时,一个正信号和一个负信号周期性地交替输入,2比特加减计数器内部的计数结果交替地为1和0,不产生溢出,即10比特加减计数器不发生比特翻转,其数据稳定时间即为0。而对于2比特加减计数器来说,其内部也只会产生1位的比特翻转,数据稳定时间也非常短。此时,加法器不需要等待很长的时间,即可从2比特加减计数器和10比特加减计数器中读取二者内部的计数结果,并进行加法运算,提高了加减计数的工作效率。

相比于实施例一中的场景11,如果本实施例中的电路在场景21下,先接收到负信号,则2比特加减计数器先通过借位引脚输出一个高电平后,再通过比特翻转保持非溢出状态。而实施例一中的电路由于其加减状态缓冲单元的两个阈值正向负向对称,则不会发生此类情况。

场景22:在2比特加减计数器处于初始状态时,三个正信号和三个负信号周期性地交替输入,且先接收到正信号,2比特加减计数器内部的计数结果交替地为:0、1、2、3、2、1、0,不产生溢出,即10比特加减计数器不发生比特翻转,其数据稳定时间即为0。而对于2比特加减计数器来说,其内部产生3位的比特翻转,数据稳定时间非常短,但相比于场景21,则数据稳定时间稍长。此时,加法器不需要等待很长的时间,即可从2比特加减计数器和10比特加减计数器中读取二者内部的计数结果,并进行加法运算,提高了加减计数的工作效率。但相比于场景11,则此时的工作效率略低。

相比于实施例一中的场景13,本实施例的电路在三个正信号和三个负信号周期性地交替输入的情况下,10比特加减计数器仍然不会发生翻转,但本实施例中的2比特加减计数器的数据稳定时间相比于实施例一中的电路较长,从而使得电路整体的数据稳定时间也较成,工作效率稍低于实施例一中的电路。

上述电路中,2比特加减计数器和10比特加减计数器也可以分别通过各自的输出总线实时输出各自的计数结果,加法器在需要获取最终计数结果时,再将接收到的两个计数结果相加并输出。

由上述两个实施例可见,本发明的技术方案能够提高加减计数的工作效率。在实际应用中,可根据正信号和负信号的输入周期特性、对数据稳定时间的不同要求,选择不同位宽和引脚特性的加减计数器作为加减状态缓冲单元,实现对加减状态缓冲的最佳效果。

基于上述加减计数电路,本实施例还包括一种加减计数方法。

图6为本发明中加减计数方法的示例性流程图。如图6所示,本实施例中的加减计数方法包括以下步骤:

步骤601,设置一个大阈值和一个小阈值。

步骤602,接收正信号和负信号。

步骤603,判断上一次运算后的计数结果是否等于大阈值或小阈值,如果等于大阈值,则执行步骤604,如果等于小阈值则执行步骤605,否则,执行步骤606。

步骤604,如果接收到正信号则向加减计数器输出表示加计数的溢出信号,如果接收到负信号则进行减计数,并执行步骤607。

步骤605,如果接收到正信号则进行加计数,如果接收到负信号则向加减计数器输出表示减计数的溢出信号,并执行步骤607。

步骤606,如果接收到正信号则进行加计数,如果接收到负信号则进行减计数,并执行步骤607。

步骤607,加减计数器如果接收到表示加计数的溢出信号,则进行加法计数,如果接收到表示减计数的溢出信号,则进行减法计数。

上述流程之后,还可以将步骤604、或步骤605、或步骤606得到的计数结果与步骤607的计数结果相加。

由上述流程可见,通过对正负信号产生的加减计数相互抵消,降低了加减计数器出现比特翻转的概率,提高了加减计数器的工作频率。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号