一种数字电路实现多路比较的方法和装置的制作方法

文档序号:7517507阅读:226来源:国知局
专利名称:一种数字电路实现多路比较的方法和装置的制作方法
技术领域
本发明涉及数字电路领域,尤其涉及一种采用数字电路实现ASIC或FPGA中多路比较的方法和装置。
背景技术
在数字电路领域,比较电路是个基本的逻辑电路。在实际应用中,经常需要对多个比较单元作比较,并快速得出比较结果。现有技术中,对于多路比较的实现,常见的做法是根据比较法则(除有特殊说明外,本文中所用的比较法则均以选出数值最大者为例),将每个比较单元与其他单元都做一次比较,然后根据比较结果判断该比较单元是否为数值最大者,从而选出所有比较单元中符合比较法则的那一个。以N个比较单元为例,如图1所示。对于0号比较单元CellO,需要同时与Celll CellN-I做比较,共需要(N-I)个比较器;对于1号比较单元Celll,可以省去与CellO的比较器,但还需要同时与Cel 12 CellN-I做比较,共(N-幻个比较器;......对于N-2号单元CellN-2,仅需要与CellN-I做比较,共需1个比较器;因此,按照这种比较方法,共需要N* (N-I) Λ个比较器。采用上述方案,虽然通过1级比较1个周期就能比出数值最大的单元了,但是资源消耗会随着比较单元数N的增加而急剧增加;另一方面,如果比较单元本身的数据位宽较大,要实现在1个周期内完成多路信元间的全比较,在时序设计上会较紧张,这在ASIC和 FPGA中实现起来,并不是最佳的方案。 因此,现有技术还有待于改进和发展。

发明内容
本发明所要解决的技术问题是克服现有技术中存在的资源消耗过多、时序紧张的问题和缺陷,提供一种有效节省使用资源和高效优化时序的多路比较的方法和装置。为了解决上述问题,本发明提供了一种数字电路实现多路比较的方法,包括使用 M级比较模块实现N个原始信元的比较,M大于等于2,N大于等于2,所述方法包括将所述 N个原始信元分成P1组,分别输入第1级比较模块的P1个全比较器中,每个全比较器对输入到其中的若干个信元进行全比较后输出满足比较法则的一个信元,第1级比较模块共输出P1个信元;对i = 1... M-I,将第i级比较模块的Pi个全比较器输出的共Pi个信元分成 Pi+1组,分别输入到第i+Ι级比较模块的Pw个全比较器,输出Pi+1个信元;Pm = 1 ;第M级比较模块的输出信元为最终比较结果。进一步地,上述方法还可以具有以下特点
各级比较模块包括的全比较器均为相同的L路全比较器,且L的M次方大于等于 N,L大于等于2。进一步地,上述方法还可以具有以下特点基于如下原则确定所述L和M ;选择满足时序要求的L,最小的能满足L的M次方大于等于N且最接近N的M。进一步地,上述方法还可以具有以下特点所述全比较器输入的信元少于L时,记实际输入的信元为有效信元,其他输入端输入为无效信元,有效信元和无效信元根据所述比较法则进行比较时,比较结果为有效信兀。进一步地,上述方法还可以具有以下特点所述M = 2。为了解决上述问题,本发明还提供了一种实现多路比较的装置,所述装置包括M 级比较模块,每级比较模块包括若干个全比较器,每个全比较器用于对输入到其中的若干个信元进行全比较后输出满足比较法则的一个信元,M大于等于2 ;第1级比较模块包括P1 个全比较器,用于接收待比较的N个原始信元,输出P1个信元;第i+Ι级比较模块用于接收第i级比较模块输出的Pi个信元,使用Pi+1个全比较器进行比较后,输出Pw个信元;其中,, i = 1... M-LPm= 1,第M级比较模块输出信元为最终比较结果。进一步地,上述装置还可以具有以下特点所述M级比较模块包括的全比较器均为相同的L路全比较器,且该装置用于实现不大于L的M次方个原始信元的比较,L大于等于2。进一步地,上述装置还可以具有以下特点N确定时,基于如下原则确定所述L和M 选择满足时序要求的L,最小的能满足L 的M次方大于等于N且最接近N的M。进一步地,上述装置还可以具有以下特点所述全比较器,用于当输入的信元少于L时,记实际输入的信元为有效信元,其他输入端输入为无效信元,有效信元和无效信元根据所述比较法则进行比较时,比较结果为有效信元。进一步地,上述装置还可以具有以下特点所述M = 2。有益效果本发明所述的一种数字电路实现多路比较的方法和装置,采用分组分级的比较方法,与单级全比较方式相比,大大降低了比较器资源的使用,优化了时序,使得在ASIC和FPGA中的硬件实现变得可行;另一方面,本发明中所述的N路平均分成P组,通过两级比较的例子,可推广至更多路输入,分成更多组,更多级的情况。


图1是本发明所述的现有技术的比较器资源图;图2是本发明所述的一种两级比较的技术方案图;图3是本发明所述的一种36路比较装置的硬件设计框图;图4是本发明所述的一种36路比较装置的比较器资源图5是本发明所述的一种35路比较装置的硬件设计框图;图6是本发明所述的一种37路比较装置的硬件设计框图。
具体实施例方式本发明提供一种数字电路实现多路比较的方法,包括使用M级比较模块实现N个原始信元的比较,M大于等于2,N大于等于2,所述方法包括将所述N个原始信元分成P1组,分别输入第1级比较模块的P1个全比较器中,每个全比较器对输入到其中的若干个信元进行全比较后输出满足比较法则的一个信元,共输出P1个信元;对i = 1...M-1,将第i级比较模块的Pi个全比较器输出的共Pi个信元分成Pi+1 组,分别输入到第i+Ι级比较模块的pi+1个全比较器,输出Pi+1个信元;Pm = 1 ;第M级比较模块的输出信元为最终比较结果。其中,各比较模块一种实现是各比较模块的全比较器均为相同的L路比较器,且 L"M大于等于N,L大于等于2。实际设计时,可以基于L~M大于等于N且最接近N的原则选择L和M,在满足时序要求的基础上选择尽可能小的M。比如,N = 37时,可以选择M = 2, L = 7,或者,选择M = 3,L = 4 ;具体选择哪组L,M可根据实际需要而定。当然如果系统允许,可以任选满足需求的L和M。当然,每级比较模块包括的各全比较器也可以是不同的全比较器,本发明对此不作限定。同一级比较模块包括的全比较器也可以相同或不同。比如二级比较模块,第一级包括2个3输入全比较器,2个5输入全比较器;第二级比较模块包括一个4输入全比较器寸。其中,L路比较器输入的信元少于L时,记实际输入的信元为有效信元,其他输入端的输入为无效信元,有效信元和无效信元根据所述比较法则进行比较时,比较结果为有效信元。本发明还提供一种实现多路比较的装置,所述装置包括M级比较模块,每级比较模块包括若干个全比较器,每个全比较器用于对输入到其中的若干个信元进行全比较后输出满足比较法则的一个信元,M大于等于2 ;第1级比较模块包括P1个全比较器,用于接收待比较的N个原始信元,输出P1个信元;第i + Ι级比较模块用于接收第i级比较模块输出的Pi个信元,使用Pw个全比较器进行比较后,输出Pw个信元;其中,i = 1...M-1,Pm= 1,第M级比较模块输出信元为最终比较结果。其中,所述M级比较模块包括的全比较器均为相同的L路全比较器,L大于等于2, 且该装置用于实现不大于L的M次方个原始信元的比较。当然,本发明不限定于各全比较器均为相同的全比较器,也可以为不同的全比较器,比如第一级包括2个4路全比较器、1个 5路全比较器,1个6路全比较器,第二级包括1个4路全比较器,本发明对此不作限定。其中,N确定时,基于如下原则确定所述L和M 选择满足时序要求的L,最小的能满足L的M次方大于等于N且最接近N的M。
其中,所述全比较器,用于当输入的信元少于L时,记实际输入的信元为有效信元,其他输入端输入为无效信元,有效信元和无效信元根据所述比较法则进行比较时,比较结果为有效信元。其中,上述M可为2,如无特殊说明,以下以M = 2进一步说明本发明。本发明采用以下技术方案一种数字电路实现多路比较装置,其中,包括以下模块组内比较模块是本装置的输入端,也是本发明所述的两级比较的第一级,用于完成组内各单元的比较,得到组内成员中的较大者;组间比较模块是本装置的输出端,也是本发明所述的两级比较的第二级,用于完成第一级比出的较大信元的比较,最终得到所有成员中的最大者。本发明所述的数字电路实现多路比较的方法包括以下步骤A、第一级组内信元的比较;B、第二级组间信元的比较;所述的方法,其中,所述步骤A还包括以下步骤Al、组内信元间两两比较,每个信元得到一组其与其他信元的比较结果标志;A2、根据组内信元的比较结果标志,选出组内信元中的较大信元;其中,所述步骤B还包括以下步骤Bi、在较大信元间做两两比较,每个较大信元都拥有一组其与其他较大信元的比较结果标志;B2、根据组间较大信元的比较结果标志,选出组间较大信元中的最大信元。本发明将N个比较单元平均分成P组,先完成每组内单元之间的全比较,比出一个数值较大的单元,而后对P个较大者再做一轮比较,通过2级比较,最终得到一个最大者。如图2所示。从图2中可以看出,第一级比较模块中共有P个全比较器,每个全比较器完成了 N/ P个信元的全比较,第二级比较模块中有1个全比较器,完成P个信元的全比较。根据数字电路的设计习惯,通常要追求电路模块的可复用性,也即要求N/P = P。这样,仅需要设计一个P输入的全比较器就可以了。其他全比较器都可复用该部分电路。当然,理想情况下希望N为一个平方数(如16,25,36,……),而当N不是一个平方数时,必然要保证第二级全比较器的输入数P不能小于第一级比较模块的总输出数N/P。因此,按照模块复用及平均分组的原则,二级复用时,P的值须不小于N的平方根, M级复用时,L"M必须大于等于N。当N = 36时,P = 6,S卩,将36个比较单元平均分到6组中,每组6个单元,产生6 个较大者,做第二级比较;当N = 35时,P = 6,即将35个比较单元分到6组中,其中最后一组的6个单元中的有效单元数是5,也即,实际第一级36个比较单元中的有效单元数只有35个,对于无效单元与有效单元之间的比较,将在具体实施方式
中详述;当N = 37时,分成2级比较时,按照上述的分组原则,第二级比较模块的输入数P =7,即需要分成7组。整个装置中均复用一种7输入的全比较器。一个6输入的全比较器共需要15个基本比较单元,而一个7输入的全比较器则需要21个基本比较单元。实际上,从现有技术中可以获知,一般情况下,随着待比较单元的原始信元的增多,在ASIC或FPGA实现中,其时序要求就会越来越紧张。而分成2级进行比较可能已经无法达到时序优化的效果了,故需要再次分级。因此,对于一个7输入的全比较器,可以根据本发明所述的方法,将其再次分组分级,以达到优化时序的目的。即每级模块中的各全比较器也可以使用本发明所述的方法通过多级比较实现其各信元之间的比较。另外,对于一个37输入的比较,可将其分成3级进行。由于33 < 37 < 43,根据上述的模块复用和平均分组的原则,复用的为4输入的全比较器,将37个输入分成16组,其中有部分比较器中的有效单元数少于4分,也即第一级64个比较单元中的有效单元数只有 37个,对于无效单元与有效单元之间的比较,将在具体实施方式
中详述。下面结合附图对技术方案的实施作进一步的详细描述。实施方式一以下所述的实施方式一以36路输入为例,实现从36个单元中比较选出数值最大者及其所属的单元号。实施方式一所述的装置实现的是通过2级比较通过2个周期选出最大单元。本装置的硬件框图如图3所示,将36个比较单元平均分成6组,第0 5号比较单元分在第0组,第6 11号比较单元分在第1组,以此类推。分成两级比较,则共需7个 6输入的全比较器。 每个全比较器完成组内6个单元的两两比较,共需要15个比较器,如图4所示对于36路的比较电路,共需要105个比较器。每个基本的比较器完成2个比较单元的数值比较,给出比较结果标志。一个基本的比较单元的真值表如下所示
权利要求
1.一种数字电路实现多路比较的方法,其特征在于,包括使用M级比较模块实现N个原始信元的比较,M大于等于2,N大于等于2,所述方法包括将所述N个原始信元分成P1组,分别输入第1级比较模块的P1个全比较器中,每个全比较器对输入到其中的若干个信元进行全比较后输出满足比较法则的一个信元,第1级比较模块共输出P1个信元;对i = 1. . . M-I,将第i级比较模块的Pi个全比较器输出的共Pi个信元分成Pi+1组,分别输入到第i+Ι级比较模块的Pw个全比较器,输出Pw个信元;Pm = 1 ; 第M级比较模块的输出信元为最终比较结果。
2.如权利要求1所述的方法,其特征在于,各级比较模块包括的全比较器均为相同的L路全比较器,且L的M次方大于等于N,L 大于等于2。
3.如权利要求2所述的方法,其特征在于,基于如下原则确定所述L和M; 选择满足时序要求的L,最小的能满足L的M次方大于等于N且最接近N的M。
4.如权利要求2所述的方法,其特征在于,所述全比较器输入的信元少于L时,记实际输入的信元为有效信元,其他输入端输入为无效信元,有效信元和无效信元根据所述比较法则进行比较时,比较结果为有效信元。
5.如权利要求1至4任一所述的方法,其特征在于,所述M= 2。
6.一种实现多路比较的装置,其特征在于,所述装置包括M级比较模块,每级比较模块包括若干个全比较器,每个全比较器用于对输入到其中的若干个信元进行全比较后输出满足比较法则的一个信元,M大于等于2 ; 第1级比较模块包括P1个全比较器,用于接收待比较的N个原始信元,输出P1个信元; 第i+Ι级比较模块用于接收第i级比较模块输出的Pi个信元,使用Pw个全比较器进行比较后,输出Pw个信元;其中,,i = 1...M-1,Pm= 1,第M级比较模块输出信元为最终比较结果。
7.如权利要求6所述的装置,其特征在于,所述M级比较模块包括的全比较器均为相同的L路全比较器,且该装置用于实现不大于L的M次方个原始信元的比较,L大于等于2。
8.如权利要求7所述的装置,其特征在于,N确定时,基于如下原则确定所述L和M: 选择满足时序要求的L,最小的能满足L的M次方大于等于N且最接近N的M。
9.如权利要求7所述的装置,其特征在于,所述全比较器,用于当输入的信元少于L时,记实际输入的信元为有效信元,其他输入端输入为无效信元,有效信元和无效信元根据所述比较法则进行比较时,比较结果为有效信元。
10.如权利要求6至9任一所述的装置,其特征在于,所述M= 2。
全文摘要
本发明公开了一种数字电路实现多路比较的方法和装置,此方法包括使用M级比较模块实现N个原始信元的比较,M大于等于2,N大于等于2,所述方法包括将所述N个原始信元分成P1组,分别输入第1级比较模块的P1个全比较器中,每个全比较器对输入到其中的若干个信元进行全比较后输出满足比较法则的一个信元,第1级比较模块共输出P1个信元;对i=1...M-1,将第i级比较模块的Pi个全比较器输出的共Pi个信元分成Pi+1组,分别输入到第i+1级比较模块的Pi+1个全比较器,输出Pi+1个信元;PM=1;第M级比较模块的输出信元为最终比较结果。本发明大大降低了比较器资源的使用,优化了时序,使得在ASIC和FPGA中的硬件实现变得可行。
文档编号H03K5/24GK102291107SQ20101021219
公开日2011年12月21日 申请日期2010年6月18日 优先权日2010年6月18日
发明者王惠忠 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1