一种在多个数据中比较大小的电路制造技术

技术编号:16918922 阅读:29 留言:0更新日期:2017-12-31 14:39
本电路可以对一帧中的数据进行比较大小。它不改变数据的相对位置,而是用序号指明每个数据在所在帧中的相对大小。采用流水线结构,在接收数据的同时进行比较,数据收完时比较也同时完成。它可以对连续到来的多个数据帧进行连续比较,无需额外的插入等待,很好的适配了通信和信号处理领域的常见接口特点。

【技术实现步骤摘要】
一种在多个数据中比较大小的电路
本电路涉及微电子数字电路设计领域,具体涉及一种在多个数据中比较大小的电路,可用于比较多个数据的相对大小。
技术介绍
在效果上,本电路与排序电路有所不同。排序电路是将一组数据从无序排列转换为有序的排列(从大到小或者从小到大),数据的相对位置发生了变化;而本电路不改变数据的相对位置,而只是对每个数据加了一个序号。本文中的“序号”是指,某个数据在所在的组或帧中,该数据大于其它所有数据中的多少个——序号越大表明该数据越大,或者小于其它所有数据中的多少个——序号越大表明该数据越小。例如,输入4个数据{a,b,c,d}={8,6,9,7},则输出序号{2,0,3,1}。这些序号解释为:2说明8大于其它数中的两个(8大于6,7),0说明6比其它三个数都小,3说明9大于其它三个数,1说明7比另外一个数大(7大于6)。这其中序号3最大,说明对应的9是最大的数;2次之,说明8是第二大的数,以此类推。这种情况适用于一些不能打乱数据次序但又需要得到各个数据相对大小的场合。该电路在通信和图像处理等领域可以使用。几个典型场景是:(1)通信中一帧数据中修改几个最大数据的值而不改变数据的位置和大小;(2)一个图像中去掉最亮的和最暗的点,图像其它部分不变;(3)一组数据在FFT变换后,每个频点上的幅值可以用该电路获得相对大小,进而对幅值较大或较小的频点进行处理,处理后还可以通过IFFT反变换得到处理后的数据。例如,四个数{x1,x2,x3,x4}可以FFT得到频点{f1,f2,f3,f4}上的幅值{X1,X2,X3,X4},如果经比较得幅值X3最大,则根据需要处理为X'3,然后将{X1,X2,X'3,X4}反变换得新的数据{x'1,x'2,x'3,x'4}。对一段数据流进行比较和排序,在硬件电路中主流的是YASUURA提出的BCA电路及其变种。相比之下,本电路针对上述应用场合,只给出比较后的结果而不改变数据相对位置;本电路可以处理连续到来的多组数据,而不必在组与组之间插入间隔。
技术实现思路
它的基本思路是在一帧数据中,每一个数据都有自己的序号,这个序号表示该数据在一帧数据中的相对大小。一帧数据比较完成之后,将数据和序号通过各自的输出总线一起同步输出。请参考图1和2。一个数据的序号,指该数据比其它多少个数大(或小)。序号越大就说明这个数越大(或越小)。比如,一个数据帧中有N个数,经过本电路的比较后:(1)如果按大于多少个数来算,那么最大的数的序号为(N-1),说明它比其它N-1个数都要大;次大的数的序号为(N-2),说明它比另外N-2个数要大;以此类推;最小的数的序号为0。(2)如果按小于多少个数来算,那么最小的数的序号为(N-1),说明它比其它N-1个数都要小;次小的数的序号为(N-2),说明它比另外N-2个数要小;以此类推;最大的数的序号为0。如果有两个数相等,则可根据实际应用归并到大于或小于的情况。本电路的思路是,一组数据(设为N个),顺序经过N级流水线。在这个过程中,每一个数据通过选择器和比较器可以跟所有其它N-1个数据进行比较,比较的结果通过加法器累计得到该数据对应的序号。加法器每次累加的结果都跟随流水线同步流动,最后与相应数据一起输出。后续电路只要读到这个序号,就知道对应这个数据的相对大小。如图3,本电路由两部分组成:选择信号生成电路、N级流水线。具体如下:选择信号生成电路,与帧起始信号输入端、数据有效信号输入端相连,用于生成N-1个选择信号,其中第i个选择信号(i=1,2,……,N-1)与第i级流水线中的选择器的选择端相连;N级流水线的第1级,包括一个数据寄存器、一个选择器、一个比较器,其中数据寄存器的输入端与本电路的数据输入端相连,输出端既与比较器的一个输入端相连,又与第二级流水线相连,比较器的另一个输入端与选择器的输出端相连,比较器的输出端连接到下一级流水线;N级流水线的第i级(i=2,3,……,N-1),包括一个数据寄存器、一个选择器、一个比较器,一个序号寄存器、一个加法器,其中数据寄存器的输入端与上一级的数据寄存器输出端相连,输出端既与比较器的一个输入端相连,又与下一级流水线相连,比较器的另一个输入端与选择器的输出端相连,比较器的输出端连接到加法器的一个输入端,加法器的另一个输入端接到序号寄存器的输出端,加法器的输出端连到下一级流水线,序号寄存器的输入端在第2级流水线中是连到第1级流水线的比较器的输出端,序号寄存器的输入端在第i级流水线(i=3,……,N)中是连到上一级流水线的加法器的输出端;N级流水线的第N级,包括一个数据寄存器、一个序号寄存器,其中数据寄存器的输入端与上一级的数据寄存器输出端相连,数据寄存器的输出端与本电路的数据输出端相连,序号寄存器的输入端连到上一级流水线的加法器的输出端,序号寄存器的输出端连到本电路的序号输出端;每一级流水线的选择器的两个输入端分别连接到本电路的数据输入端和数据输出端。其中的数据位宽可以是任何正整数,在电路中只要保证数据寄存器、选择器输入端、比较器输入端的位宽都等于输入数据位宽即可。其中各级流水线的序号寄存器、加法器可以做成统一规格的,也可以按如下方式进行细化以节省硬件资源:(1)位宽由以下方式确定(假设每次处理N个数据):保证每一级流水线的序号寄存器和加法器不溢出即可。参考图6,第1级流水线中仅积累了1次比较的结果,第2级积累2次结果,第i级积累i次结果(i=1,2,……,N-1),则第i级的序号寄存器和加法器(i=2,……,N-1)的位宽分别为最少log2(i-1)向下取整并加1、最少log2(i)向下取整并加1。即,第2级的序号寄存器和加法器分别为最少1比特、2比特;第3级为2比特、2比特;第4级为2比特、3比特;以此类推。(2)每个加法器的一个输入端是接比较器的输出的,这是一个1比特的信号,所以加法器具体可以简化为有一个输入是1比特,这可以进一步节省资源。选择信号生成电路的工作机制是,可利用计数器,计算当前这组数据中已经进到流水线的数据个数(设为k),从0计到N-1,然后可利用组合电路根据这个个数生成选择信号,即当k=0时所有选择信号为一种逻辑电平(不失一般性,设为0),当k=1,……,N-1时第1至k个选择信号为另外一种逻辑电平(设为1),而第k+1至N-1个选择信号为逻辑电平0。相应的,在每个选择器中,当选择信号为0时选通本电路输出端的数据,可以认为是前一帧(或组)的数据,而当选择信号为1时选通本电路输入端的数据,即当前帧(或组)的数据。这些选择信号的电平随计数值k的变化而变化,与选择器配合,可以保证流水线中前一帧的数据跟前一帧的数据比较,本帧的数据跟本帧比较,不会在帧与帧之间混淆。并且还能保证每个数据都能跟本帧中的其它所有数据各进行一次比较。最终由这些比较的结果累计得到序号。详细的工作过程请参看后面的具体实施例。其有益效果是:(1)纯硬件处理,流水线随时钟而动,延时为N个时钟周期(N为待比较的数据的个数),这是这类处理所需延迟的最小值。以100MHz时钟来算,10万个数据仅需1毫秒。(2)能够连续处理。该方法不需要存入一个完整帧之后再做比较。而是随来随比,一帧来完也随即比完。而且对于持续的多个数据帧传输的情况,不管是这本文档来自技高网
...
一种在多个数据中比较大小的电路

【技术保护点】
一种在多个数据中比较大小的电路,设比较的数据为N个,包括帧起始信号输入端、数据有效信号输入端、数据输入端、数据输出端,其特征在于,还包括序号输出端、选择信号生成电路、N级流水线,其中:选择信号生成电路,与帧起始信号输入端、数据有效信号输入端相连,输出N‑1个选择信号,其中第i个选择信号(i=1,2,……,N‑1)与第i级流水线中的选择器的选择端相连;N级流水线的第1级,包括一个数据寄存器、一个选择器、一个比较器,其中数据寄存器的输入端与本电路的数据输入端相连,输出端既与比较器的一个输入端相连,又与第二级流水线相连,比较器的另一个输入端与选择器的输出端相连,比较器的输出端连接到下一级流水线;N级流水线的第i级(i=2,3,……,N‑1),包括一个数据寄存器、一个选择器、一个比较器,一个序号寄存器、一个加法器,其中数据寄存器的输入端与上一级的数据寄存器输出端相连,输出端既与比较器的一个输入端相连,又与下一级流水线相连,比较器的另一个输入端与选择器的输出端相连,比较器的输出端连接到加法器的一个输入端,加法器的另一个输入端接到序号寄存器的输出端,加法器的输出端连到下一级流水线,序号寄存器的输入端在第2级流水线中是连到第1级流水线的比较器的输出端,序号寄存器的输入端在第i级流水线(i=3,……,N)中是连到上一级流水线的加法器的输出端;N级流水线的第N级,包括一个数据寄存器、一个序号寄存器,其中数据寄存器的输入端与上一级的数据寄存器输出端相连,数据寄存器的输出端与本电路的数据输出端相连,序号寄存器的输入端连到上一级流水线的加法器的输出端,序号寄存器的输出端连到本电路的序号输出端;每一级流水线的选择器的两个输入端分别连接到本电路的数据输入端和数据输出端。...

【技术特征摘要】
1.一种在多个数据中比较大小的电路,设比较的数据为N个,包括帧起始信号输入端、数据有效信号输入端、数据输入端、数据输出端,其特征在于,还包括序号输出端、选择信号生成电路、N级流水线,其中:选择信号生成电路,与帧起始信号输入端、数据有效信号输入端相连,输出N-1个选择信号,其中第i个选择信号(i=1,2,……,N-1)与第i级流水线中的选择器的选择端相连;N级流水线的第1级,包括一个数据寄存器、一个选择器、一个比较器,其中数据寄存器的输入端与本电路的数据输入端相连,输出端既与比较器的一个输入端相连,又与第二级流水线相连,比较器的另一个输入端与选择器的输出端相连,比较器的输出端连接到下一级流水线;N级流水线的第i级(i=2,3,……,N-1),包括一个数据寄存器、一个选择器、一个比较器,一个序号寄存器、一个加法器,其中数据寄存器的输入端与上一级的数据寄存器输出端相连,输出端既与比较器的一个输入端相连,又与下一级流水线相连,比较器的另一个输入端与选择器的输出端相连,比较器的输出端连接到加法器的一个输入端,加法器的另一个输入端接到序号寄存器的输出端,加法器的输出端连到下一级流水线,序号寄存器的输入端在第2级流水线中是连到第1级流水线的比较器的输出端,序号寄存器的输入端在第i级流水线...

【专利技术属性】
技术研发人员:张毓
申请(专利权)人:南京火零信息科技有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1