CN109766074B - 一种数据排序电路及排序方法 - Google Patents
一种数据排序电路及排序方法 Download PDFInfo
- Publication number
- CN109766074B CN109766074B CN201811482150.5A CN201811482150A CN109766074B CN 109766074 B CN109766074 B CN 109766074B CN 201811482150 A CN201811482150 A CN 201811482150A CN 109766074 B CN109766074 B CN 109766074B
- Authority
- CN
- China
- Prior art keywords
- sorting
- data
- unit
- address
- signal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Logic Circuits (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及微电子数字电路技术领域,公开了一种数据排序电路及排序方法,所述数据排序电路在每一时钟周期内,对新进入的待排序数据进行排序,并删除上一时钟周期的排序数据中生命值为N的排序数据,能够保持整个寄存器组的数据有序,满足实时性要求。本发明的数据排序方法基于FIFO结构,并且所有的基本排序单元采用简单的线性结构相连,从而能够利用基本排序单元的地址将电路设计成可配置的排序结构,在FIFO深度范围内,任意个数的数据均可排序,提高方法的灵活性,满足不同的使用要求。因此,本发明的技术方案具有速度快,面积小,易拓展的特点。
Description
技术领域
本发明涉及微电子数字电路技术领域,特别是涉及一种数据排序电路及排序方法。
背景技术
排序是数据处理中重要操作之一。在数字图像处理、雷达探测等领域都占据重要地位,鉴于其重要性,大量排序方法问世,这些算法大致可分为软件排序和硬件排序两类。
软件排序算法有很多,如冒泡排序、快速排序、选择排序、交换排序、计数排序等。这些算法速度慢,无法完美胜任图像处理、雷达探测等需要高速数据处理的场合。除此以外,软件排序算法需要占用处理器的资源,在无法使用处理器资源时,软件方法将无法实现。
与软件实现方法不同,硬件实现具有并行性,因此硬件排序的速度更快且不需要使用处理器的资源。硬件排序的结构可以分为两类:排序网络和线性结构。排序网络的缺点是它需要多个时钟周期才能输出排序结果,这显然无法满足实时性要求。而且排序网络采用流水线的实现方式,面积很大,实现成本很高。线性结构的排序算法对于连续串行输入的数据很有用,但是目前速度较慢,有时需要多个时钟才可以输出结果。
发明内容
本发明提供一种数据排序电路及排序方法,用以提供一种排序速度快、面积小的数据排序电路。
为解决上述技术问题,本发明实施例中提供一种数据排序电路,用于对N个数据进行排序,其中,所述数据排序电路包括控制单元和N个排序单元;每一排序单元包括信号产生单元和输出单元;
每一排序单元的输出单元包括:
数据寄存器,用于在每一个时钟周期输出并存储新的排序数据;
生命周期寄存器,用于在每一个时钟周期输出并存储新生命值,所述新的生命值为所述新的排序数据的生命值;
第一多路数据选择器,该输出单元的数据寄存器的输出、与该排序单元相邻的两个排序单元的数据寄存器的输出以及待排序数据分别作为第一多路数据选择器的输入,所述第一多路数据选择器的输出作为所述数据寄存器的输入;
第二多路数据选择器,该输出单元的生命周期寄存器的输出、与该排序单元相邻的两个排序单元的生命周期寄存器的输出以及最大生命值N分别作为第二多路数据选择器的输入,所述第二多路数据选择器的输出作为所述生命周期寄存器的输入;
每一排序单元的信号产生单元包括:
第一比较单元,用于在每一个时钟周期,将待排序数据与该排序单元的数据寄存器存储的排序数据进行比较,输出比较信号cpi,i为正整数,且i≤N;
第二比较单元,用于在每一个时钟周期,将该排序单元的数据寄存器存储的排序数据的生命值与最大生命值N进行比较,输出删除信号deli;
所述控制单元,与所述第一比较单元和第二比较单元连接,用于根据所述比较信号和删除信号生成选择信号;
所述控制单元与每一排序单元的第一多路数据选择器的控制端和第二多路数据选择器的控制端连接;
所述控制单元在每一个时钟周期通过对应的选择信号控制每一排序单元的第一多路数据选择器输出新的排序数据至数据寄存器,以及在每一个时钟周期通过对应的选择信号控制每一排序单元的第二多路数据选择器输出新的生命值至生命周期寄存器。
可选的,所述控制单元包括:
第三多路数据选择器,N个排序单元输出的N个比较信号分别作为第三多路数据选择器的输入,所述第三多路数据选择器输出插入地址;
第四多路数据选择器,N个排序单元输出的N个删除信号分别作为第四多路数据选择器的输入,所述第四多路数据选择器输出删除地址;
比较器,插入地址和删除地址作为所述比较器的输入,所述比较器输出第一控制信号,所述第一控制信号为插入地址和删除地址的位置关系;
第五多路数据选择器,所述第一控制信号以及每一排序单元的地址在删除地址和插入地址的左侧、中间、右侧、与删除地址重合、与插入地址重合与第五多路数据选择器的控制端连接,所述第五多路数据选择器向该排序单元输出选择信号。
可选的,当排序单元的数据寄存器存储的排序数据大于待排序数据时,其第一比较单元输出的比较信号cpi=1,反之cpi=0;
所述控制单元根据cp1、cp2、cp3……cpN中第一个为1的cpm控制所述第三多路数据选择器输出第m个排序单元对应的地址,其中,m为正整数且m≤N。
可选的,当排序单元的数据寄存器存储的排序数据的生命值等于最大生命值N,其第二比较单元输出的删除信号deli=1,否则deli=0;
所述控制单元根据del1、del1、del3……delN中第一个为1的deln控制所述第四多路数据选择器输出第n个排序单元对应的地址,其中,n为正整数且n≤N。
本发明实施例中还提供一种利用如上所述的数据排序电路对N个数据进行排序的排序方法,包括:
初始化步骤,包括:初始化N个数据寄存器的初始值为0,初始化第i个生命周期寄存器的初始值为i-1,i为正整数,取值范围为[1,N];
产生N个比较信号和N个删除信号的步骤,每一排序单元产生比较信号和删除信号的步骤包括:
在每一个时钟周期,将待排序数据与该排序单元的数据寄存器存储的排序数据进行比较,输出比较信号cpi;
在每一个时钟周期,将该排序单元的数据寄存器存储的排序数据的生命值与最大生命值N进行比较,输出删除信号deli;
生成选择信号的步骤:根据每一排序单元产生的比较信号和删除信号生成与该排序单元对应的选择信号;
输出并存储新的排序数据和新的生命值的步骤,所述新的生命值为所述新的排序数据的生命值:
在每一个时钟周期通过对应的选择信号控制每一排序单元的第一多路数据选择器输出新的排序数据至数据寄存器,数据寄存器在每一个时钟周期输出并存储新的排序数据;
在每一个时钟周期通过对应的选择信号控制每一排序单元的第二多路数据选择器输出新的生命值至生命周期寄存器,生命周期寄存器在每一个时钟周期输出并存储新的生命值。
可选的,还包括:
根据N个比较信号生成插入地址;
根据N个删除信号生成删除地址;
生成第一控制信号,所述第一控制信号为插入地址和删除地址的位置关系;
根据所述第一控制信号以及每一排序单元的地址与删除地址和插入地址的关系控制生成与该排序单元对应的选择信号。
可选的,当排序单元的数据寄存器存储的排序数据大于待排序数据时,该排序单元产生的比较信号cpi=1,反之cpi=0;
根据N个比较信号生成插入地址的步骤为:
根据cp1、cp2、cp3……cpN中第一个为1的cpm确定插入地址为第m个排序单元对应的地址,其中,m为正整数且m≤N。
可选的,当排序单元的数据寄存器存储的排序数据的生命值等于最大生命值N,该排序单元产生的删除信号deli=1,否则deli=0;
根据N个删除信号生成删除地址的步骤为:
根据del1、del1、del3……delN中第一个为1的deln确定删除地址为第n个排序单元对应的地址,其中,n为正整数且n≤N。
本发明的上述技术方案的有益效果如下:
第一,在一个时钟周期内,对新进入的数据进行排序,删除最旧的数据,同时保持整个寄存器组的数据有序,满足实时性要求。本发明的数据排序方法基于FIFO结构,并且所有的基本排序单元采用简单的线性结构相连,从而能够利用基本排序单元的地址将电路设计成可配置的排序结构,在FIFO深度范围内,任意个数的数据均可排序,提高方法的灵活性,满足不同的使用要求。因此,本发明的技术方案具有速度快,面积小,易拓展的特点。
第二,由于本发明采用现场可编程门阵列(FPGA)实现整个排序,克服了现有技术基于软件实现方式速度慢的问题,使得本发明速度快,硬件成本小,可以适用于图像处理和雷达探测等对数据处理速度要求较高的领域。
第三,由于本发明采用基本排序单元的比较信号、插入地址、删除地址和选择信号来处理数据,对每个时钟周期输入的待排序数据进行排序,可以在一个时钟周期内将待排序数据插入同时删除最早的数据,减少了排序所需要的时钟周期数,满足了实时性要求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1表示本发明实施例中数据排序电路的组成框图;
图2表示本发明实施例中每一排序单元的组成框图;
图3表示本发明实施例中每一排序单元的结构示意图;
图4表示本发明实施例中控制单元的结构示意图;
图5表示本发明实施例中数据排序方法的流程图。
具体实施方式
下面将结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
结合图1-图3所示,本发明实施例中提供一种数据排序电路,用于对N个数据进行排序。
所述数据排序电路包括控制单元和N个排序单元;每一排序单元包括信号产生单元和输出单元;
每一排序单元的输出单元包括:
数据寄存器,用于在每一个时钟周期输出并存储新的排序数据;
生命周期寄存器,用于在每一个时钟周期输出并存储新生命值,所述新的生命值为所述新的排序数据的生命值;
第一多路数据选择器,该输出单元的数据寄存器的输出、与该排序单元相邻的两个排序单元的数据寄存器的输出以及待排序数据分别作为第一多路数据选择器的输入,所述第一多路数据选择器的输出作为所述数据寄存器的输入;
第二多路数据选择器,该输出单元的生命周期寄存器的输出、与该排序单元相邻的两个排序单元的生命周期寄存器的输出以及最大生命值N分别作为第二多路数据选择器的输入,所述第二多路数据选择器的输出作为所述生命周期寄存器的输入;
每一排序单元的信号产生单元包括:
第一比较单元,用于在每一个时钟周期,将待排序数据与该排序单元的数据寄存器存储的排序数据进行比较,输出比较信号cpi,i为正整数,且i≤N;
第二比较单元,用于在每一个时钟周期,将该排序单元的数据寄存器存储的排序数据的生命值与最大生命值N进行比较,输出删除信号deli;
所述控制单元,与所述第一比较单元和第二比较单元连接,用于根据所述比较信号和删除信号生成选择信号;
所述控制单元与每一排序单元的第一多路数据选择器的控制端和第二多路数据选择器的控制端连接;
所述控制单元在每一个时钟周期通过对应的选择信号控制每一排序单元的第一多路数据选择器输出新的排序数据至数据寄存器,以及在每一个时钟周期通过对应的选择信号控制每一排序单元的第二多路数据选择器输出新的生命值至生命周期寄存器。
相应地,参加图5所示,本发明实施例中还提供一种利用如上所述的数据排序电路对N个数据进行排序的排序方法,包括:
初始化步骤,包括:初始化N个数据寄存器的初始值为0,初始化第i个生命周期寄存器的初始值为i-1,i为正整数,取值范围为[1,N];
产生N个比较信号和N个删除信号的步骤,每一排序单元产生比较信号和删除信号的步骤包括:
在每一个时钟周期,将待排序数据与该排序单元的数据寄存器存储的排序数据进行比较,输出比较信号cpi;
在每一个时钟周期,将该排序单元的数据寄存器存储的排序数据的生命值与最大生命值N进行比较,输出删除信号deli;
生成选择信号的步骤:根据每一排序单元产生的比较信号和删除信号生成与该排序单元对应的选择信号;
输出并存储新的排序数据和新的生命值的步骤,所述新的生命值为所述新的排序数据的生命值:
在每一个时钟周期通过对应的选择信号控制每一排序单元的第一多路数据选择器输出新的排序数据至数据寄存器,数据寄存器在每一个时钟周期输出并存储新的排序数据;
在每一个时钟周期通过对应的选择信号控制每一排序单元的第二多路数据选择器输出新的生命值至生命周期寄存器,生命周期寄存器在每一个时钟周期输出并存储新的生命值。
上述数据排序电路能够在一个时钟周期内,对新进入的待排序数据进行排序,删除最旧的数据,同时保持整个寄存器组的数据有序,满足实时性要求。本发明的数据排序方法基于FIFO结构,并且所有的基本排序单元采用简单的线性结构相连,从而能够利用基本排序单元的地址将电路设计成可配置的排序结构,在FIFO深度范围内,任意个数的数据均可排序,提高方法的灵活性,满足不同的使用要求。因此,本发明的技术方案具有速度快,面积小,易拓展的特点。
另外,由于本发明采用现场可编程门阵列(FPGA)实现整个排序,克服了现有技术基于软件实现方式速度慢的问题,使得本发明速度快,硬件成本小,可以适用于图像处理和雷达探测等对数据处理速度要求较高的领域。
其中,第一多路数据选择器和第二多路数据选择器可以为四选一数据选择器。
每一排序单元在每一个时钟周期输出的新的排序数据为上一时钟周期其数据寄存器存储的排序数据、与该排序单元相邻的两个排序单元的数据寄存器存储的排序数据以及待排序数据中最大或最小的数据,根据N个数据的排序规则而定。具体为,当N个数据按从小到大排序时,每一排序单元在每一个时钟周期输出的新的排序数据为上一时钟周期其数据寄存器存储的排序数据、与该排序单元相邻的两个排序单元的数据寄存器存储的排序数据以及待排序数据中最小的数据;当N个数据按从大到小排序时,每一排序单元在每一个时钟周期输出的新的排序数据为上一时钟周期其数据寄存器存储的排序数据、与该排序单元相邻的两个排序单元的数据寄存器存储的排序数据以及待排序数据中最大的数据。
需要说明的是,相邻的两个排序单元是指:在每一个时钟周期输出的排序数据中,相邻的两个排序数据对应的排序单元,即,该两个排序单元在同一时钟周期输出的排序数据在排序序列上相邻。
进一步地,如图4所示,所述控制单元包括:
第三多路数据选择器,N个排序单元输出的N个比较信号分别作为第三多路数据选择器的输入,所述第三多路数据选择器输出插入地址;
第四多路数据选择器,N个排序单元输出的N个删除信号分别作为第四多路数据选择器的输入,所述第四多路数据选择器输出删除地址;
比较器,插入地址和删除地址作为所述比较器的输入,所述比较器输出第一控制信号,所述第一控制信号为插入地址和删除地址的位置关系;
第五多路数据选择器,所述第一控制信号以及每一排序单元的地址在删除地址和插入地址的左侧、中间、右侧、与删除地址重合、与插入地址重合与第五多路数据选择器的控制端连接,所述第五多路数据选择器向该排序单元输出选择信号。
相应地,所述排序方法还包括:
根据N个比较信号生成插入地址;
根据N个删除信号生成删除地址;
生成第一控制信号,所述第一控制信号为插入地址和删除地址的位置关系;
根据所述第一控制信号以及每一排序单元的地址与删除地址和插入地址的关系控制生成与该排序单元对应的选择信号。
上述控制单元在每一个时钟周期获取基本排序单元的比较信号和删除信号确定插入地址和删除地址,并根据排序单元的地址与插入地址和删除地址的位置关系生成选择信号,并根据选择信号对待排序数据进行排序并删除最旧的数据。因此,上述技术方案能够在一个时钟周期内将待排序数据插入同时删除最旧的数据,减少了排序所需要的时钟周期数,满足了实时性要求。
其中,第三多路数据选择器和第四多路数据选择器可以为N选一数据选择器。第五多路数据选择器可以为四选一数据选择器。
本发明的技术方案适用于将N个数据按从大到小的顺序排序,也适用于将N个数据按从小到大的顺序排序。
以将N个数据按从小到大的顺序排序为例,来具体描述如何根据比较信号来确定插入地址。
当排序单元的数据寄存器存储的排序数据大于待排序数据时,其第一比较单元输出的比较信号cpi=1,反之cpi=0;
所述控制单元根据cp1、cp2、cp3……cpN中第一个为1的cpm控制所述第三多路数据选择器输出第m个排序单元对应的地址,其中,m为正整数且m≤N。
相应地,根据N个比较信号生成插入地址的步骤为:
根据cp1、cp2、cp3……cpN中第一个为1的cpm确定插入地址为第m个排序单元对应的地址,其中,m为正整数且m≤N。
由于第1个基本排序单元的左侧不存在任何基本排序单元单元,所以cp1恒等于0。
需要说明的是,N个排序单元按照其数据寄存器输出的排序数据的序列进行排序:第1个排序单元、第2个排序单元……第N个排序单元,例如:最小的排序数据对应的排序单元为第1个排序单元,最大的排序数据对应的排序单元为第N个排序单元。
本实施例中,当排序单元的数据寄存器存储的排序数据的生命值等于最大生命值N,其第二比较单元输出的删除信号deli=1,否则deli=0;
所述控制单元根据del1、del1、del3……delN中第一个为1的deln控制所述第四多路数据选择器输出第n个排序单元对应的地址,其中,n为正整数且n≤N。
相应地,根据N个删除信号生成删除地址的步骤为:
根据del1、del1、del3……delN中第一个为1的deln确定删除地址为第n个排序单元对应的地址,其中,n为正整数且n≤N。
本实施例中,选择信号的具体产生规则如下:
第五多路数据选择器输出选择信号,其控制端连接第一控制信号以及一排序单元的地址在删除地址和插入地址的左侧、中间、右侧、与删除地址重合、与插入地址重合,第一控制信号为删除地址和插入地址的位置关系。
因此,需要依次判断N个基本排序单元的地址是在插入(删除)地址的左侧、插入(删除)地址处、插入(删除)地址和删除(插入)地址之间、删除(插入)地址处以及删除(插入)地址右侧。
具体规则为:
插入地址在删除地址左侧:
若基本排序单元地址在插入地址左侧,选择信号输出2’b11;
若基本排序单元地址刚好在插入地址处,选择信号输出2’b00;
若基本排序单元地址在插入地址和删除地址之间,选择信号输出2’b10;
若基本排序单元地址刚好在删除地址处,选择信号输出2’b10;
若基本排序单元地址在删除地址右侧,选择信号输出2’b11;
删除地址在插入地址左侧:
若基本排序单元地址在删除地址左侧,选择信号输出2’b11;
若基本排序单元地址刚好在删除地址处,选择信号输出2’b01;
若基本排序单元地址在删除地址和插入地址之间,选择信号输出2’b01;
若基本排序单元地址刚好在插入地址处,选择信号输出2’b00;
若基本排序单元地址在插入地址右侧,选择信号输出2’b11;
插入地址和删除地址重合:
若基本排序单元地址在插入或删除地址左侧,选择信号输出2’b11;
若基本排序单元地址刚好在插入或删除地址处,选择信号输出2’b00;
若基本排序单元地址在插入或删除地址右侧,选择信号输出2’b11;
输出单元接收来自控制单元的选择信号输出排序结果和生命周期,具体的选择规则如下:
若选择信号等于2’b00,数据寄存器输出新数据,生命周期寄存器输出最小生命周期0;
若选择信号等于2’b01,数据寄存器输出左边传递过来的数据,生命周期寄存器输出处理后的左边传递过来的生命周期;
若选择信号等于2’b10,数据寄存器输出右边传递过来的数据,生命周期寄存器输出处理后的右边传递过来的生命周期;
若选择信号等于2’b11,数据寄存器输自身保存的数据,生命周期寄存器输出处理后的自身生命周期。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本发明的保护范围。
Claims (8)
1.一种数据排序电路,用于对N个数据进行排序,其特征在于,所述数据排序电路包括控制单元和N个排序单元;每一排序单元包括信号产生单元和输出单元;所述N个排序单元线性连接;
每一排序单元的输出单元包括:数据寄存器、生命周期寄存器、第一多路数据选择器和第二多路数据选择器,其中,
数据寄存器,用于在每一个时钟周期输出并存储新的排序数据;
生命周期寄存器,用于在每一个时钟周期输出并存储新生命值,所述新的生命值为所述新的排序数据的生命值;
第一多路数据选择器,该输出单元的数据寄存器的输出、与该排序单元相邻的两个排序单元的数据寄存器的输出以及待排序数据分别作为第一多路数据选择器的输入,所述第一多路数据选择器的输出作为所述数据寄存器的输入;
第二多路数据选择器,该输出单元的生命周期寄存器的输出、与该排序单元相邻的两个排序单元的生命周期寄存器的输出以及最大生命值N分别作为第二多路数据选择器的输入,所述第二多路数据选择器的输出作为所述生命周期寄存器的输入;
每一排序单元的信号产生单元包括:第一比较单元、第二比较单元,其中,
第一比较单元,用于在每一个时钟周期,将待排序数据与该排序单元的数据寄存器存储的排序数据进行比较,输出比较信号cpi,i为正整数,且i≤N;
第二比较单元,用于在每一个时钟周期,将该排序单元的数据寄存器存储的排序数据的生命值与最大生命值N进行比较,输出删除信号deli;
所述控制单元,与所述第一比较单元和第二比较单元连接,用于根据所述比较信号和删除信号生成选择信号;
所述控制单元与每一排序单元的第一多路数据选择器的控制端和第二多路数据选择器的控制端连接;
所述控制单元在每一个时钟周期通过对应的选择信号控制每一排序单元的第一多路数据选择器输出新的排序数据至数据寄存器,以及在每一个时钟周期通过对应的选择信号控制每一排序单元的第二多路数据选择器输出新的生命值至生命周期寄存器。
2.根据权利要求1所述的数据排序电路,其特征在于,所述控制单元包括:
第三多路数据选择器,N个排序单元输出的N个比较信号分别作为第三多路数据选择器的输入,所述第三多路数据选择器输出插入地址;
第四多路数据选择器,N个排序单元输出的N个删除信号分别作为第四多路数据选择器的输入,所述第四多路数据选择器输出删除地址;
比较器,插入地址和删除地址作为所述比较器的输入,所述比较器输出第一控制信号,所述第一控制信号为插入地址和删除地址的位置关系;
第五多路数据选择器,所述第一控制信号以及每一排序单元的地址在删除地址和插入地址的左侧、中间、右侧、与删除地址重合、与插入地址重合与第五多路数据选择器的控制端连接,所述第五多路数据选择器向该排序单元输出选择信号。
3.根据权利要求2所述的数据排序电路,其特征在于,当排序单元的数据寄存器存储的排序数据大于待排序数据时,其第一比较单元输出的比较信号cpi=1,反之cpi=0;
所述控制单元根据cp1、cp2、cp3……cpN中第一个为1的cpm控制所述第三多路数据选择器输出第m个排序单元对应的地址,其中,m为正整数且m≤N。
4.根据权利要求2所述的数据排序电路,其特征在于,当排序单元的数据寄存器存储的排序数据的生命值等于最大生命值N,其第二比较单元输出的删除信号deli=1,否则deli=0;
所述控制单元根据del1、del1、del3……delN中第一个为1的deln控制所述第四多路数据选择器输出第n个排序单元对应的地址,其中,n为正整数且n≤N。
5.一种利用权利要求1-4任一项所述的数据排序电路对N个数据进行排序的排序方法,其特征在于,包括:
初始化步骤,包括:初始化N个数据寄存器的初始值为0,初始化第i个生命周期寄存器的初始值为i-1,i为正整数,取值范围为[1,N];
产生N个比较信号和N个删除信号的步骤,每一排序单元产生比较信号和删除信号的步骤包括:
在每一个时钟周期,将待排序数据与该排序单元的数据寄存器存储的排序数据进行比较,输出比较信号cpi;
在每一个时钟周期,将该排序单元的数据寄存器存储的排序数据的生命值与最大生命值N进行比较,输出删除信号deli;
生成选择信号的步骤:根据每一排序单元产生的比较信号和删除信号生成与该排序单元对应的选择信号;
输出并存储新的排序数据和新的生命值的步骤,所述新的生命值为所述新的排序数据的生命值:
在每一个时钟周期通过对应的选择信号控制每一排序单元的第一多路数据选择器输出新的排序数据至数据寄存器,数据寄存器在每一个时钟周期输出并存储新的排序数据;
在每一个时钟周期通过对应的选择信号控制每一排序单元的第二多路数据选择器输出新的生命值至生命周期寄存器,生命周期寄存器在每一个时钟周期输出并存储新的生命值。
6.根据权利要求5所述的排序方法,其特征在于,还包括:
根据N个比较信号生成插入地址;
根据N个删除信号生成删除地址;
生成第一控制信号,所述第一控制信号为插入地址和删除地址的位置关系;
根据所述第一控制信号以及每一排序单元的地址与删除地址和插入地址的关系控制生成与该排序单元对应的选择信号。
7.根据权利要求6所述的排序方法,其特征在于,当排序单元的数据寄存器存储的排序数据大于待排序数据时,该排序单元产生的比较信号cpi=1,反之cpi=0;
根据N个比较信号生成插入地址的步骤为:
根据cp1、cp2、cp3……cpN中第一个为1的cpm确定插入地址为第m个排序单元对应的地址,其中,m为正整数且m≤N。
8.根据权利要求6所述的排序方法,其特征在于,当排序单元的数据寄存器存储的排序数据的生命值等于最大生命值N,该排序单元产生的删除信号deli=1,否则deli=0;
根据N个删除信号生成删除地址的步骤为:
根据del1、del1、del3……delN中第一个为1的deln确定删除地址为第n个排序单元对应的地址,其中,n为正整数且n≤N。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811482150.5A CN109766074B (zh) | 2018-12-05 | 2018-12-05 | 一种数据排序电路及排序方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811482150.5A CN109766074B (zh) | 2018-12-05 | 2018-12-05 | 一种数据排序电路及排序方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109766074A CN109766074A (zh) | 2019-05-17 |
CN109766074B true CN109766074B (zh) | 2021-04-13 |
Family
ID=66450546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811482150.5A Active CN109766074B (zh) | 2018-12-05 | 2018-12-05 | 一种数据排序电路及排序方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109766074B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110780840B (zh) * | 2019-10-30 | 2023-10-31 | 湖南国科微电子股份有限公司 | 多路排序器的实现方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101114215A (zh) * | 2006-07-28 | 2008-01-30 | 中兴通讯股份有限公司 | 实现数据排序的电路和方法 |
CN101470553A (zh) * | 2007-12-27 | 2009-07-01 | 比亚迪股份有限公司 | 触摸屏控制器数据预处理排序电路及方法 |
CN101615010A (zh) * | 2009-07-17 | 2009-12-30 | 西安电子科技大学 | 基于fpga的多路数据采集系统 |
CN105512179A (zh) * | 2015-11-25 | 2016-04-20 | 中国科学院计算技术研究所 | 硬件实现的数据排序装置、方法及数据处理芯片 |
WO2016179670A1 (en) * | 2015-05-08 | 2016-11-17 | Sts Soft Ad | Method of data indexing and sorting |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101192847B (zh) * | 2007-08-13 | 2011-08-10 | 中兴通讯股份有限公司 | 一种峰值搜索和排序的装置及峰值排序方法 |
CN103019646B (zh) * | 2013-01-09 | 2015-09-30 | 西安电子科技大学 | 并行排序电路及并行排序方法 |
US9985609B2 (en) * | 2016-01-07 | 2018-05-29 | Craig S. Montgomery | Customizable data aggregating, data sorting, and data transformation system |
CN106843803B (zh) * | 2016-12-27 | 2019-04-23 | 南京大学 | 一种基于归并树的全排序加速器及应用 |
CN107402741A (zh) * | 2017-08-04 | 2017-11-28 | 电子科技大学 | 一种适宜于fpga实现的排序方法 |
-
2018
- 2018-12-05 CN CN201811482150.5A patent/CN109766074B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101114215A (zh) * | 2006-07-28 | 2008-01-30 | 中兴通讯股份有限公司 | 实现数据排序的电路和方法 |
CN101470553A (zh) * | 2007-12-27 | 2009-07-01 | 比亚迪股份有限公司 | 触摸屏控制器数据预处理排序电路及方法 |
CN101615010A (zh) * | 2009-07-17 | 2009-12-30 | 西安电子科技大学 | 基于fpga的多路数据采集系统 |
WO2016179670A1 (en) * | 2015-05-08 | 2016-11-17 | Sts Soft Ad | Method of data indexing and sorting |
CN105512179A (zh) * | 2015-11-25 | 2016-04-20 | 中国科学院计算技术研究所 | 硬件实现的数据排序装置、方法及数据处理芯片 |
Non-Patent Citations (2)
Title |
---|
数字电路并行全入度拓扑排序优化算法;史江义等;《计算机辅助设计与图形学学报》;20160615;1003-1007 * |
智能复用EDA设计信息及调试文档自动生成技术;臧明相; 李园园; 郭瑞刚;《计算机工程与设计》;20110316;第1119-1222页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109766074A (zh) | 2019-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101162471B (zh) | 一种插入排序的方法和装置 | |
Saitoh et al. | A high-performance and cost-effective hardware merge sorter without feedback datapath | |
US9684615B1 (en) | Apparatus and methods for multiple-channel direct memory access | |
US9319040B2 (en) | Distributing multiplexing logic to remove multiplexor latency on the output path for variable clock cycle, delayed signals | |
US11714603B2 (en) | Bitonic sorting accelerator | |
US10101965B1 (en) | Method and apparatus for high speed streaming sorter | |
US20060004980A1 (en) | Address creator and arithmetic circuit | |
CN109766074B (zh) | 一种数据排序电路及排序方法 | |
US10319418B2 (en) | Methods and systems for parallel column twist interleaving | |
CN104094558B (zh) | 多线程化分组处理 | |
Ortiz et al. | A configurable high-throughput linear sorter system | |
US5862064A (en) | Median filter apparatus and method therefor | |
CN109933415A (zh) | 数据的处理方法、装置、设备及介质 | |
JPH10232759A (ja) | 待ち行列管理制御システム | |
US8196082B1 (en) | Signal routing and pin placement | |
US11429850B2 (en) | Performing consecutive mac operations on a set of data using different kernels in a MAC circuit | |
Petrović et al. | A chisel generator of parameterizable and runtime reconfigurable linear insertion streaming sorters | |
US20220263511A1 (en) | Data mutex filter circuit and data mutex filtering method | |
CN102207846A (zh) | 一种实现数据排序的电路和方法 | |
Ortiz et al. | A Streaming High‐Throughput Linear Sorter System with Contention Buffering | |
CN109164982B (zh) | 数据处理电路、方法及数据存储设备 | |
US20040225699A1 (en) | Method for early evaluation in micropipeline processors | |
US9811484B1 (en) | Methods and apparatus for rapid interrupt lookups | |
US11775255B2 (en) | Sorting device | |
CN109343825B (zh) | 一种约翰逊计数器装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |