CN117422024B - 数据位宽转换方法、装置、计算机设备及介质 - Google Patents
数据位宽转换方法、装置、计算机设备及介质 Download PDFInfo
- Publication number
- CN117422024B CN117422024B CN202311717821.2A CN202311717821A CN117422024B CN 117422024 B CN117422024 B CN 117422024B CN 202311717821 A CN202311717821 A CN 202311717821A CN 117422024 B CN117422024 B CN 117422024B
- Authority
- CN
- China
- Prior art keywords
- data
- state
- output
- input
- indication
- 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
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 206
- 238000000034 method Methods 0.000 title claims abstract description 98
- 239000000872 buffer Substances 0.000 claims abstract description 133
- 230000007704 transition Effects 0.000 claims abstract description 58
- 230000005540 biological transmission Effects 0.000 claims description 35
- 230000015654 memory Effects 0.000 claims description 28
- 238000002360 preparation method Methods 0.000 claims description 23
- 238000003860 storage Methods 0.000 claims description 15
- 239000012634 fragment Substances 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 11
- 238000013461 design Methods 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/337—Design optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明涉及计算机技术领域,公开了一种数据位宽转换方法、装置、计算机设备及介质,该方法包括:获取第一指示信号的第一指示状态和第二指示信号的第二指示状态;根据第一指示状态控制写指针在环形缓存寄存器中进行寻址,获取第一地址信息;根据第二指示状态控制读指针在环形缓存寄存器中进行寻址,获取第二地址信息;根据第一指示状态、第二指示状态、第一地址信息,以及第二地址信息,确定数据位宽转换状态;对输入数据和/或输出数据执行与数据位宽转换状态对应的操作。该方式,基于FPGA内部状态机控制读写指针在环形缓存寄存器中进行寻址,相较于传统两级转换,设计更加简单、灵活,高效,可以实现输入数据和输出数据位宽灵活可配。
Description
技术领域
本发明涉及计算机技术领域,具体涉及数据位宽转换方法、装置、计算机设备及介质。
背景技术
在大型数字电路设计中,需要将一个大的工程划分为若干个大小不等的功能模块。不同模块之间在进行数据传输时,如果数据位宽不匹配,则需要额外增加一个位宽转换功能模块。常用的整数倍的数据位宽转换可以通过简单的移位控制操作来完成。但是,当存在类似2:3或者3:2之类的非整数位宽转换时,相关方法可能存在无法移植到其他平台的弊端;或者,虽然也有一些方法通用性强、便于移植,但复杂度可能过高,同时占用了更多的逻辑资源。
发明内容
有鉴于此,本发明提供了一种数据位宽转换方法、装置、计算机设备及介质,以解决相关技术中没有相对有效方法能够在不移植到其他平台的情况下实现非整数位宽转换,或者,采用相较于比较简单、占用逻辑资源少的情况下实现非整数位宽的转换的问题。
第一方面,本发明提供了一种数据位宽转换方法,该方法应用于一种数据位宽转换***,数据位宽转换***中配置环形缓存寄存器、读指针和写指针,该方法包括:
获取第一指示信号的第一指示状态和第二指示信号的第二指示状态;
根据第一指示状态控制写指针在环形缓存寄存器中进行寻址,获取第一地址信息;以及根据第二指示状态控制读指针在环形缓存寄存器中进行寻址,获取第二地址信息,其中,第一指示状态的初始状态和第二指示状态的初始状态预先设定,第一指示状态的后续状态根据预配置的数据输入有效指示信号当前的状态、第一地址信息和第二地址信息确定;第二指示信号的后续状态根据预配置的输出准备信号当前的状态和数据输出有效指示信号当前的状态确定;
根据第一指示状态、第二指示状态、第一地址信息,以及第二地址信息,确定数据位宽转换状态,其中,数据位宽转换状态用于控制输入数据在数据输入通道中按照第一预设字节数量进行输入,或者,反馈前端反压信号以控制输入数据锁存;和/或,数据位宽转换状态用于控制输出数据在数据输出通道中按照第二预设字节数量进行输出,或者,反馈后端反压信号以控制输出数据锁存;
对输入数据和/或输出数据执行与数据位宽转换状态对应的操作。
本发明提供的一种数据位宽转换方法,具有如下优点:第一指示信号的第一指示状态用于控制写指针在环形缓存寄存器中进行寻址,来获取写指针所指示的第一地址信息。第二指示信号的第二指示状态,用于控制读指针在环形缓存寄存器中进行寻址,获取读指针所指示的第二地址信息。并根据第一地址信息和第二地址信息,确定地址指针差值。这个指针差值则可以代表环形缓存寄存器中目前已经被占用的位置数量。进而推算环形缓存寄存器中空余位置的数量。被占用的位置数量可以指示已输入数据和已输出数据之间的差值。进而,可以判定目前是需要继续写入数据,还是继续读出数据。亦或是写入和读出同时进行。从而,可以根据第一指示状态、第二指示状态,以及地址指针差值,确定数据位宽转换状态,其中数据位宽转换状态用于控制输入数据在数据输入通道按照第一预设字节数量进行输入,或者,反馈前端反压信号以控制输入数据锁存,和/或,控制输出数据在数据输出通道中按照第二预设字节数量进行输出,或者,反馈后端反压信号以控制输出数据锁存。该方式中,基于可编程逻辑器件FPGA内部状态机控制读写指针进行跳转在环形缓存寄存器中进行寻址,相较于传统两级转换,设计更加简单、灵活,高效,可以实现输入数据和输出数据位宽灵活可配。无需额外引入第三方位宽转换IP,也可以任意移植到任何平台执行,也无需占用过多的逻辑资源。再者,该方法不仅仅可以适用于非整数倍位宽转换,整数倍位宽转换同样适用。可以适配更多场景的用户设计。
在一种可选的实施方式中,根据第一指示状态、第二指示状态、第一地址信息,以及第二地址信息,确定数据位宽转换状态,包括:
根据第一地址信息和第二地址信息,确定地址指针差值;
根据第一指示状态、第二指示状态、地址指针差值,确定所属数据位宽转换状态。
在一种可选的实施方式中,获取第一指示信号的第一指示状态和第二指示信号的第二指示状态,具体包括:
获取预配置的数据输入有效指示信号当前的状态,数据输出有效指示信号当前的状态,以及预配置的输出准备信号当前的状态;
识别指针差值当前所属的差值范围;
根据数据输入有效指示信号当前的状态和与地址指针差值所属的差值范围,确定第一指示状态;
以及,根据输出准备信号当前的状态和数据输出有效指示信号当前的状态,确定第二指示状态。
具体的,数据输入有效指示信号当前的状态用于指示输入的输入是否有效,地址指针差值如前述内容所介绍的,可以指示输入数据和输出数据之间的差值,如果输入数据和输出数据之间的差值在允许输入数据的差值范围内,且当前输入数据是有效数据,则可以确定第一指示状态有效,也即是控制写指针在环形缓存寄存器中进行寻址。类似的道理,输出准备信号当前的状态可以指示是否准备好接收输出数据。如果已经准备好,且指针差值所属的范围是允许输出数据的差值范围,则确定第二指示状态有效,进而控制读指针在环形缓存寄存器中进行寻址。
在一种可选的实施方式中,数据位宽转换状态包括:第一转换状态、第二转换状态、第三转换状态,以及第四转换状态;
根据第一指示状态、第二指示状态,以及地址指针差值,确定数据位宽转换状态,包括:
当确定第一指示状态和第二指示状态同时无效,且地址指针差值为预设值时,确定数据位宽转换状态为第一转换状态;
或者,当确定第一指示状态和第二指示状态同时有效,且地址指针差值为第一差值范围和第二差值范围的交集中的任意数值时,确定数据位宽转换状态为第二转换状态;
或者,当确定第一指示状态有效,第二指示状态无效,且地址指针差值为第一差值范围的任意数值时,确定数据位宽转换状态为第三转换状态;
或者,当确定第一指示状态无效,第二指示状态有效,且地址指针差值为第一差值范围的任意数值时,确定数据位宽转换状态为第四转换状态。
具体的,当第一指示状态和第二指示状态同时无效时,则说明输入数据和输出数据同时处于锁存状态,则可以确定数据位宽转换状态为第一转换状态。或者,第一地址指针差值在第一差值范围和第二差值范围的交集中,则说明地址指针差值既在用于指示允许输入数据的差值范围内,也在允许输出数据的差值范围内,此时如果第一指示状态和第二指示状态同时有效,则可以确定数据位宽转换状态为第二转换状态,也即是用以指示输入和输出同时有效。或者,如果第一指示状态有效,第二指示状态无效,地址指针差值在第一差值范围内,则说明只允许输入数据,不允许输出数据,可以确定该数据位宽转换状态为第三转换状态;或者,如果第二指示状态有效,第一指示状态无效,地址指针差值在第二差值范围内,则说明只允许输出数据,不允许输入数据,可以确定该数据位宽转换状态为第四转换状态。
在一种可选的实施方式中,对输入数据和/或输出数据执行与数据位宽转换状态对应的操作,具体包括:
当数据位宽转换状态为第一转换状态时,控制输入数据和输出数据同时进行锁存处理;
或者,当数据位宽转换状态为第二转换状态时,控制输入数据在数据输入通道按照第一预设字节数量进行输入,且控制输出数据在数据输出通道按照第二预设字节数量进行输出;
或者,当数据位宽转换状态为第三转换状态时,控制输入数据在数据输入通道按照第一预设字节数量进行输入,且反馈后端反压信号,用以控制输出数据进行锁存;
或者,当数据位宽转换状态为第四转换状态时,反馈前端反压信号,用以控制输入数据进行锁存,且控制输出数据在数据输出通道按照第二预设字节数量进行输出。
在一种可选的实施方式中,该方法还包括:
当数据输入通道包括多条,采用仲裁的方式从多条数据输入通道中选择目标数据输入通道传输输入数据;和/或,当数据输出通道包括多条时,采用仲裁的方式从多条数据输出通道中选择目标数据输出通道传输输出数据。
具体的,当数据输入通道包括多条时,可以采用仲裁的方式从多条数据输入通道中选择最优的目标数据输入通道传输输入数据,类似的道理,如果数据输出通道包括多条,也可以采用仲裁的方式从多条数据输出通道中选择目标输出中选择最优的目标数据输出通道传输输出数据。
在一种可选的实施方式中,当数据输入通道包括多条,采用仲裁的方式从多条数据输入通道中选择目标数据输入通道传输输入数据包括:
获取每一条数据输入通道预配置的优先级;
选取数据输入通道中优先级最高的数据输入通道作为目标数据输入通道,并利用目标数据输入通道传输输入数据;
和/或,当数据输出通道包括多条时,采用仲裁的方式从多条数据输出通道中选择目标数据输出通道传输输出数据,包括:
获取每一条数据输出通道预配置的优先级;
选取数据输出通道中优先级最高的数据输出通道作为目标数据输出通道,并利用目标数据输出通道传输输出数据。
具体的,在通过仲裁方式选择目标数据输入通道时,可以事先获取每一条数据输入通道预配置的优先级,然后选取数据输入通道中优先级最高的数据输入通道作为目标数据输入通道,并利用目标数据输入通道传输输入数据。类似的道理,当数据输出通道同样包括多条时,也可以采用类似的方式从多条数据输出通道中选择目标数据输出通道传输输出数据。
在一种可选的实施方式中,当数据输入通道包括多条,采用仲裁的方式从多条数据输入通道中选择目标数据输入通道传输输入数据包括:
轮询每一条数据输入通道,选择当前未占用的任一条数据输入通道作为目标数据输入通道,用以传输输入数据;
和/或,当数据输出通道包括多条时,采用仲裁的方式从多条数据输出通道中选择目标数据输出通道传输输出数据,包括:
轮询每一条数据输出通道,选择当前未占用的任一条数据输出通道作为目标数据输出通道,用以传输输出数据。
具体的,除了可以采用前述方式实现仲裁以外,也可以采用轮询的方式,从多个数据输入通道中选择当前未占用的数据输入通道作为目标数据输入通道传输输入数据。类似的道理,也可以采用轮询的方式,从多个数据输出通道选择当前未占用的数据输出通道作为目标数据输出通道传输输出数据,以实现负载均衡的同时,提高数据传输效率。
在一种可选的实施方式中,当数据输入通道包括多条,该方法还包括:
将输入数据划分为与数据输入通道等同数量的多个输入数据片段,并为每一个输入数据片段配置标识信息;
将每一个输入数据片段分别分配至不同数据输入通道进行传输,并在缓存队列中按照每一个输入数据片段的标识信息对多个输入数据片段进行组合,以获取输入数据。
具体的,当数据输入通道包括多条时,除了可以通过前述方式实现输入数据传输和输出数据传输之外,也可以考虑将输入数据分片为多个输入数据片段,并为每一个输入数据片段配置标识信息,并分配至不同数据输入通道进行传输,并在缓存队列中按照每一个输入数据片段的标识信息对多个输入数据片段进行组合,获取输入数据。
在一种可选的实施方式中,当数据输出通道包括多条,该方法还包括:
将输出数据划分为与数据输出通道等同数量的多个输出数据片段,并为每一个输出数据片段配置标识信息;
将每一个输出数据片段分别分配至不同数据输出通道进行传输,并在缓存队列中按照每一个数据片段的标识信息对多个输出数据片段进行组合,以获取输出数据。
具体的,当数据输出通道包括多条时,除了可以通过前述方式实现输出数据传输和输出数据传输之外,也可以考虑将输出数据分片为多个输出数据片段,并为每一个输出数据片段配置标识信息,并分配至不同数据输出通道进行传输,并在缓存队列中按照每一个输出数据片段的标识信息对多个输出数据片段进行组合,获取输出数据。
在一种可选的实施方式中,第一指示状态包括有效和无效两种状态;
当数据输入有效指示信号当前的状态为有效状态,且地址指针差值所属的差值范围为第一差值范围时,确定第一指示状态有效;
或者,
当数据输入有效指示信号当前的状态为无效状态,和/或,当地址指针差值所属的差值范围不在第一差值范围内时,确定第一指示状态无效。
在一种可选的实施方式中,第一预设差值范围的边界值根据第一预设字节数量确定。
具体的,因为输入数据每次都是按照第一预设字节数量进行输入的,所以,确定是否可以输入数据,主要看环形缓存寄存器中是否还空余有至少第一预设字节数量的空余位置,因此,第一预设差值范围的边界值根据第一预设字节数量确定。
在一种可选的实施方式中,第二指示状态包括有效状态和无效状态两种类型,数据输出有效指示信号当前的状态包括有效和无效两种类型;
当地址指针差值所属的差值范围为第二差值范围时,数据输出有效指示信号当前的状态为有效状态;或者,当地址指针差值所属的差值范围不属于第二差值范围时,数据输出有效指示信号当前的状态为无效状态;
当输出准备信号的状态为有效状态,且数据输出有效指示信号当前的状态为有效状态,则确定第二指示状态有效;
或者,
当输出准备信号的状态为无效状态,和/或,当数据输出有效指示信号当前的状态为无效状态,确定第二指示状态无效。
在一种可选的实施方式中,第二预设差值范围的边界值根据第二预设字节数量确定。
具体的,因为输出数据每次都是按照第二预设字节数量进行输出的,所以,确定是否可以输出数据,主要看环形缓存寄存器中是否还有至少第二预设字节数量没有被输出,也即是环形缓存寄存器中已占用的位置是否大于或者等于第二预设字节数量,因此,第二预设差值范围的边界值根据第二预设字节数量确定。
在一种可选的实施方式中,输入数据预先存放于输入缓存队列,以便后续从输入缓存队列中写数据至环形缓存寄存器;
和/或,从环形缓存寄存器读出的数据存入输出缓存队列,以便后续从输出缓存队列读出数据。
具体的,输入数据可以先存放于输入缓存队列,类似的道理,输出数据也可以先存放于输出缓存队列,并根据数据位宽转换状态控制数据输入,和/或输出。
在一种可选的实施方式中,环形缓存寄存器的最大数据位宽为第一预设字节数量和第二预设字节数量中最大值的预设整数倍。
具体的,环形缓存寄存器用于存储输入数据和输出数据,在转换过程中需要同时存储输入和输出数据。为了确保能够容纳输入数据和输出数据,寄存器的位宽需要足够大。但是为了避免占用过多的存储资源,所以可以最低设置为输入数据位宽和输出数据位宽中最大值的两倍,这种情况可以保证环形缓存寄存器方便地进行数据的移位操作,并且确保在移位过程中没有数据溢出。实现数据的缓冲、调整和同步,保证数据的完整性和正确性。
在一种可选的实施方式中,当第一指示状态有效时,控制写指针在环形缓存寄存器中按照第一预设字节数量进行跳转寻址;
或者,当第一指示状态无效时写指针在环形缓存寄存器中的指针位置不发生改变。
在一种可选的实施方式中,当第二指示状态有效时,控制读指针在环形缓存寄存器中按照第二预设字节数量进行跳转寻址;
或者,当第二指示状态无效时读指针在环形缓存寄存器中的指针位置不发生改变。
在一种可选的实施方式中,对输入数据和/或输出数据执行与数据位宽转换状态对应的操作时,该方法还包括:输入数据和输出数据进行异步传输。
具体的,通过异步传输的方式,在理想状态下,可以保证环形缓存寄存器中在某个时刻或者某些没有缓存数据,即输入多少,输出多少。进一步提高数据位宽转换效率。
第二方面,本发明提供了一种数据位宽转换装置,该装置包括:
获取模块,用于获取第一指示信号的第一指示状态和第二指示信号的第二指示状态;
寻址模块,用于根据第一指示状态控制写指针在环形缓存寄存器中进行寻址,获取第一地址信息;以及根据第二指示状态控制读指针在环形缓存寄存器中进行寻址,获取第二地址信息,其中,第一指示状态的初始状态和第二指示状态的初始状态预先设定,第一指示状态的后续状态根据预配置的数据输入有效指示信号当前的状态、第一地址信息和第二地址信息确定;第二指示信号的后续状态根据预配置的输出准备信号当前的状态和数据输出有效指示信号当前的状态确定;
处理模块,用于根据第一指示状态、第二指示状态、第一地址信息,以及第二地址信息,确定数据位宽转换状态,其中,数据位宽转换状态用于控制输入数据在数据输入通道中按照第一预设字节数量进行输入,或者,反馈前端反压信号以控制输入数据锁存;和/或,数据位宽转换状态用于控制输出数据在数据输出通道中按照第二预设字节数量进行输出,或者,反馈后端反压信号以控制输出数据锁存;
执行模块,用于对输入数据和/或输出数据执行与数据位宽转换状态对应的操作。
本发明提供的一种数据位宽转换装置,具有如下优点:
第一指示信号的第一指示状态用于控制写指针在环形缓存寄存器中进行寻址,来获取写指针所指示的第一地址信息。第二指示信号的第二指示状态,用于控制读指针在环形缓存寄存器中进行寻址,获取读指针所指示的第二地址信息。并根据第一地址信息和第二地址信息,确定地址指针差值。这个指针差值则可以代表环形缓存寄存器中目前已经被占用的位置数量。进而推算环形缓存寄存器中空余位置的数量。被占用的位置数量可以指示已输入数据和已输出数据之间的差值。进而,可以判定目前是需要继续写入数据,还是继续读出数据。亦或是写入和读出同时进行。从而,可以根据第一指示状态、第二指示状态,以及地址指针差值,确定数据位宽转换状态,其中数据位宽转换状态用于控制输入数据在数据输入通道按照第一预设字节数量进行输入或者,反馈前端反压信号以控制输入数据锁存,和/或,控制输出数据在数据输出通道中按照第二预设字节数量进行输出,或者,反馈后端反压信号以控制输出数据锁存。该方式中,基于可编程逻辑器件FPGA内部状态机控制读写指针进行跳转在环形缓存寄存器中进行寻址,相较于传统两级转换,设计更加简单、灵活,高效,可以实现输入数据和输出数据位宽灵活可配。无需额外引入第三方位宽转换IP,也可以任意移植到任何平台执行,也无需占用过多的逻辑资源。再者,该方法不仅仅可以适用于非整数倍位宽转换,整数倍位宽转换同样适用。可以适配更多场景的用户设计。
第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的数据位宽转换方法。
第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的数据位宽转换方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据位宽转换方法的流程示意图;
图2是本发明实施例提供的另一种数据位宽转换方法的流程示意图;
图3是本发明提供的基于握手的非整数倍数据位宽转换实例中各信号波形图;
图4是本发明提供的位宽转换状态机主控图;
图5是基于握手的非整数倍数据位宽转换处理方法实现框图;
图6(1)是本发明提供的在某一时刻读写指针跳转状态示意图;
图6(2)是本发明提供的在另一时刻读写指针跳转状态示意图;
图6(3)是本发明提供的在又一时刻读写指针跳转状态示意图;
图7是根据本发明实施例的一种数据位宽转换装置结构框图;
图8是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在大型数字电路设计中,需要将一个大的工程划分为若干个大小不等的功能模块,不同功能模块之间为了保证数据的可靠性传输,相关方法主要分为两类:一类是使用寄存器锁存,常用于单bit数据传输。另一类使用FIFO缓存或VALID-READY握手,常用于多bit数据传输。
不同模块之间的数据位宽如果不匹配,则需要额外增加一个位宽转换功能模块。常用的整数倍的数据位宽转换可以通过简单的移位控制操作来完成,如果存在类似2:3或者3:2之类的非整数位宽转换,相关的方法可以包括:一种是采用软件开发工具集成的位宽转换IP(例如xilinx的AXI4-Stream DATA WIDTH Converter),另一种是先将输入数据位宽转换为两者最小公约数位宽,再放大到输出数据位宽。第一种方法IP集成功能强大,可以任意添加裁剪部分边带信号,但无法移植到其他平台。第二种方法通用性强,便于移植,但每次转换都需要两步才能完成,提升了复杂度同时占用了更多的逻辑资源。
为解决上述问题,本发明实施例,提供了一种数据位宽转换实施例,需要说明的是,在附图的流程图示出的步骤可以在包括诸如一组计算机可执行指令的计算机***(计算机设备)中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种数据位宽转换方法,可用于上述的终端机设备,如手机、平板电脑等,图1是本发明实施例提供的一种数据位宽转换方法的流程示意图,如图1所示,该方法应用于一种数据位宽转换***,数据位宽转换***存储在FPGA中,该数据位宽转换***中配置环形缓存寄存器,FPGA内部状态机控制读指针和写指针,在环形缓存寄存器中进行寻址,该方法的具体操作流程参见下文:
步骤S101,获取第一指示信号的第一指示状态和第二指示信号的第二指示状态。
步骤S102,根据第一指示状态控制写指针在环形缓存寄存器中进行寻址,获取第一地址信息。
步骤S103,以及根据第二指示状态控制读指针在环形缓存寄存器中进行寻址,获取第二地址信息。
具体的,第一指示信号的(第一)指示状态用于控制写指针在环形缓存寄存器中进行寻址获取第一地址信息。第二指示信号的(第二)指示状态用于控制读指针在环形缓存寄存器中进行寻址获取第二地址信息。需要说明的是,这里的第一指示状态和第二指示状态分别指代不同信号的状态,并非是指代同一状态的不同状态值。
其中,第一指示状态的初始状态和第二指示状态的初始状态预先设定,第一指示状态的后续状态根据预配置的数据输入有效指示信号当前的状态、第一地址信息和第二地址信息确定;第二指示信号的后续状态根据预配置的输出准备信号当前的状态和数据输出有效指示信号当前的状态确定。第一指示状态控制写指针在环形缓存寄存器中进行寻址,用于控制数据是否写入,如果写指针在环形缓存寄存器中进行跳转寻址,则说明需要写入数据,如果写指针在某个位置停止不动,则说明不需要写入数据,进行数据锁存。类似的道理,如果读指针在环形缓存寄存器中进行跳转寻址,则说明需要读出数据,如果读指针在某个位置停止不动,则说明不需要读出数据,进行数据锁存。
步骤S104,根据第一指示状态、第二指示状态、第一地址信息,以及第二地址信息,确定数据位宽转换状态。
具体的,第一指示状态用以指示输入是否有效,也即是指示是否允许输入,第二指示状态用以指示输出是否有效,即用以指示是否允许输出。
在一个可选的实施方式中,可以事先根据第一地址信息和第二地址信息,确定地址指针差值。然后,根据第一指示状态、第二指示状态、地址指针差值,确定所属数据位宽转换状态。
其中,地址指针差值用于指示环形缓存寄存器中当前已经被占用的位置。举个例子,例如一个蓄水池中包括一个进口,一个出口,那么进口进入的数量减去出口流出的水量之间的差值,则是蓄水池中保留的水量。类似的道理,第一地址信息和第二地址信息之间的地址指针差值,用于指示环形缓存寄存器中当前仍存储的数据字节数。
数据位宽转换状态,可以用于控制输入数据在数据输入通道中按照第一预设字节数量进行输入,或者,反馈前端反压信号以控制输入数据锁存;
和/或,数据位宽转换状态,可以用于控制输出数据在数据输出通道中按照第二预设字节数量进行输出,或者,反馈后端反压信号以控制输出数据锁存。
具体的,在一个具体的例子中,当输入数据达到一定的量,输出数据的输出速度追不上输入数据的输入速度,导致环形缓存寄存器中的存储的数据量超过一定阈值时,则需要控制输入数据锁存,输出数据持续输出。或者,在某个时刻,已输入数据在缓存寄存器中存储的量不足以满足输出数据按照第二预设字节数量进行输出时,则需要暂时控制输出锁存,控制输入有效,让输入数据持续输入。亦或是在某些情况下,可能需要输入数据持续输入,输出数据持续输出,以达到既定的位宽转换操作。
因此,在该实施例中,还需要包括步骤S105,对输入数据和/或输出数据执行与数据位宽转换状态对应的操作。
本实施例提供的数据位宽转换方法,第一指示信号的第一指示状态用于控制写指针在环形缓存寄存器中进行寻址,来获取写指针所指示的第一地址信息。第二指示信号的第二指示状态,用于控制读指针在环形缓存寄存器中进行寻址,获取读指针所指示的第二地址信息。并根据第一地址信息和第二地址信息,确定地址指针差值。这个指针差值则可以代表环形缓存寄存器中目前已经被占用的位置数量。进而推算环形缓存寄存器中空余位置的数量。被占用的位置数量可以指示已输入数据和已输出数据之间的差值。进而,可以判定目前是需要继续写入数据,还是继续读出数据。亦或是写入和读出同时进行。从而,可以根据第一指示状态、第二指示状态,以及地址指针差值,确定数据位宽转换状态,其中数据位宽转换状态用于控制输入数据在数据输入通道按照第一预设字节数量进行输入,或者,反馈前端反压信号以控制输入数据锁存,和/或,控制输出数据在数据输出通道中按照第二预设字节数量进行输出,或者,反馈后端反压信号以控制输出数据锁存。该方式中,基于可编程逻辑器件FPGA内部状态机控制读写指针进行跳转在环形缓存寄存器中进行寻址,相较于传统两级转换,设计更加简单、灵活,高效,可以实现输入数据和输出数据位宽灵活可配。无需额外引入第三方位宽转换IP,也可以任意移植到任何平台执行,也无需占用过多的逻辑资源。再者,该方法不仅仅可以适用于非整数倍位宽转换,整数倍位宽转换同样适用。可以适配更多场景的用户设计。
在本实施例中提供了一种数据位宽转换方法,可用于上述的移动终端,如手机、平板电脑等,图2是本发明实施例提供的另一种数据位宽转换方法的流程示意图,如图2所示,该流程包括如下步骤:
步骤S201,获取第一指示信号的第一指示状态和第二指示信号的第二指示状态。
在一个可选的实施方式中,第一指示状态和第二指示状态的获取,除了可以通过预先配置的方式获取外,还可以通过但不限于如下方式实现:
步骤S2011,获取预配置的数据输入有效指示信号当前的状态,数据输出有效指示信号当前的状态,以及预配置的输出准备信号当前的状态。
具体的,参加图3所示,图3中示意出的是一种基于FPGA的握手机制的非整数倍数据位宽转换实例中各信号波形图,图3为一个3:2位宽转换示例。当数据输入有效指示信号in_valid和接收准备信号in_ready同时有效时数据有效输入,当数据输出有效指示信号out_valid和发送准备信号out_ready同时有效时数据有效输出。当两者不同时满足时,数据锁存保持不变。图3中还包括时钟信号CLK、输入数据信号in_data、输出有效数据out_data等。数据为十六进制数据。其中,各个信号的高电平状态为有效状态,低电平状态为无效状态,例外的是时钟信号的上升沿为有效状态。
在该步骤中,主要涉及的是数据输入有效指示信号当前的状态和输出准备信号当前的状态。
步骤S2012,识别指针差值当前所属的差值范围。
具体的,在一个可选的实施方式中,基于输入数据和输出数据位宽转换比例的不同,差值范围的设定也可以包括一种或多种不同的范围。例如,以图3中输入数据和输出数据的位宽转换为例,差值范围可以包括两个不同范围。例如可以包括第一差值范围和第二差值范围。
步骤S2013,根据数据输入有效指示信号当前的状态和与地址指针差值所属的差值范围,确定第一指示状态。
以及,
步骤S2014,根据输出准备信号当前的状态和数据输出有效指示信号当前的状态,确定第二指示状态。
具体的,第一指示状态主要是用于确定是否允许数据输入,因此具体状态类型可以根据数据输入有效指示信号当前的状态和地址指针差值所属的差值范围确定。而第二指示状态主要是用于确定是否允许数据输出,因此具体状态类型可以根据输出准备信号当前的状态和地址指针差值所属的差值范围确定。
进一步的,在一个可选的实施方式中,第一指示状态包括有效状态和无效状态。
当数据输入有效指示信号当前的状态为有效状态,且地址指针差值所属的差值范围为第一差值范围时,确定第一指示状态有效;
或者,
当数据输入有效指示信号当前的状态为无效状态,和/或,当地址指针差值所属的差值范围不在第一差值范围内时,确定第一指示状态无效。
其中,第一预设差值范围的边界值根据第一预设字节数量确定。
具体的,因为输入数据每次都是按照第一预设字节数量进行输入的,所以,确定是否可以输入数据,主要看环形缓存寄存器中是否还空余有至少第一预设字节数量的空余位置,因此,第一预设差值范围的边界值根据第一预设字节数量确定。
进一步的,在一个可选的实施方式中,第二指示状态包括有效状态和无效状态两种类型;数据输出有效指示信号当前的状态包括有效和无效两种类型;
当地址指针差值所属的差值范围为第二差值范围时,数据输出有效指示信号当前的状态为有效状态;或者,当地址指针差值所属的差值范围不属于第二差值范围时,数据输出有效指示信号当前的状态为无效状态;
当输出准备信号的状态为有效状态,且数据输出有效指示信号当前的状态为有效状态,则确定第二指示状态有效;
或者,
当输出准备信号的状态为无效状态,和/或,当数据输出有效指示信号当前的状态为无效状态,确定第二指示状态无效。
在一个可选的实施方式中,第二预设差值范围的边界值根据第二预设字节数量确定。
具体的,因为输出数据每次都是按照第二预设字节数量进行输出的,所以,确定是否可以输出数据,主要看环形缓存寄存器中是否还有至少第二预设字节数量没有被输出,也即是环形缓存寄存器中已占用的位置是否大于或者等于第二预设字节数量,因此,第二预设差值范围的边界值根据第二预设字节数量确定。
步骤S202,根据第一指示状态控制写指针在环形缓存寄存器中进行寻址,获取第一地址信息。
步骤S203,以及根据第二指示状态控制读指针在环形缓存寄存器中进行寻址,获取第二地址信息。
步骤S204,根据第一指示状态、第二指示状态、第一地址信息,以及第二地址信息,确定数据位宽转换状态。
步骤S205,对输入数据和/或输出数据执行与数据位宽转换状态对应的操作。
步骤S202和步骤S205的介绍,详细请参见图1所示实施例的步骤S102和步骤S105,在此不再赘述。
在一个可选的实施方式中,在前述任意实施例的基础上,在本实施例中提供了一种数据位宽转换方法流程,可用于上述的移动终端,如手机、平板电脑等,在该方法流程中主要介绍如下内容:
数据位宽转换状态包括:第一转换状态、第二转换状态、第三转换状态,以及第四转换状态。而根据第一指示状态、第二指示状态,以及地址指针差值,确定数据位宽转换状态,包括如下方法步骤:
步骤A1,当确定第一指示状态和第二指示状态同时无效,且地址指针差值为预设值时,确定数据位宽转换状态为第一转换状态。
或者,步骤A2,当确定第一指示状态和第二指示状态同时有效,且地址指针差值为第一差值范围和第二差值范围的交集中的任意数值时,确定数据位宽转换状态为第二转换状态。
或者,步骤A3,当确定第一指示状态有效,第二指示状态无效,且地址指针差值为第一差值范围的任意数值时,确定数据位宽转换状态为第三转换状态。
或者,步骤A4,当确定第一指示状态无效,第二指示状态有效,且地址指针差值为第一差值范围的任意数值时,确定数据位宽转换状态为第四转换状态。
具体的,当第一指示状态和第二指示状态同时无效时,则说明输入数据和输出数据同时处于锁存状态,则可以确定数据位宽转换状态为第一转换状态。或者,第一地址指针差值在第一差值范围和第二差值范围的交集中,则说明地址指针差值即在用于指示允许输入数据的差值范围内,也在允许输出数据的差值范围内,此时如果第一指示状态和第二指示状态同时有效,则可以确定数据位宽转换状态为第二转换状态,也即是用以指示输入和输出同时有效。或者,如果第一指示状态有效,第二指示状态无效,地址指针差值在第一差值范围内,则说明只允许输入数据,不允许输出数据,可以确定该数据位宽转换状态为第三转换状态;或者,如果第二指示状态有效,第一指示状态无效,地址指针差值在第二差值范围内,则说明只允许输出数据,不允许输入数据,可以确定该数据位宽转换状态为第四转换状态。
具体参见图4所示,图4中示意出位宽转换状态机主控图,图4中包括S0、S1、S2以及S3等四种状态,其中,S0对应于前文中所说的第一转换状态,S1对应于前文中所说的第二转换状态,S2对应于前文中所说的第三转换状态,S3对应于前文中所说的第四转换状态。
四种转换状态之间会基于不同跳转条件实现跳转。具体跳转条件则是前文中所介绍的与每一中转换状态对应的条件,例如跳转为第一转换状态,则需要第一指示状态和第二指示状态同时无效,且地址指针差值为预设值,在一个具体的例子中,预设值为0。又比如,跳转为第二转换状态,需要第一指示状态和第二指示状态同时有效,且地址指针差值为第一差值范围和第二差值范围的交集中的任意数值,图中示意出的仅仅是第一指示状态和第二指示状态同时有效,因为显示位置有限,所以地址指针差值的限定条件没有在图中显示,其他跳转状态类似,这里不再赘述。
在一个可选的实施方式中,在前述方法实施例的基础上,根据数据位宽转换状态,控制输入数据在数据输入通道中按照第一预设字节数量进行输入或锁存;和/或,根据数据位宽转换状态,控制输出数据在数据输出通道中按照第二预设字节数量进行输出或锁存,具体包括如下方法步骤:
步骤B1,当数据位宽转换状态为第一转换状态时,控制输入数据和输出数据同时进行锁存处理。
或者,步骤B2,当数据位宽转换状态为第二转换状态时,控制输入数据在数据输入通道按照第一预设字节数量进行输入,且控制输出数据在数据输出通道按照第二预设字节数量进行输出。
或者,步骤B3,当数据位宽转换状态为第三转换状态时,控制输入数据在数据输入通道按照第一预设字节数量进行输入,且反馈后端反压信号,用以控制输出数据进行锁存。
或者,
步骤B4,当数据位宽转换状态为第四转换状态时,反馈前端反压信号,用以控制输入数据进行锁存,且控制输出数据在数据输出通道按照第二预设字节数量进行输出。
具体的,如前文所介绍的,如果是第一转换状态,则说明目前输入和输出均无效,此时处于数据锁存状态。然后在确定数据位宽转换状态为第二转换状态时,则可以控制输入数据按照第一预设字节数量进行输入,例如按照3字节进行输入。然后控制输出数据按照2字节进行输出。当数据位宽转换状态为第三转换状态时,则可以控制输入数据按照3字节进行输入,而输出数据进行锁存。如果数据位宽转换状态为第四转换状态,则反馈前端反压信号,用以控制输入数据进行锁存,控制输出数据按照2字节进行输出。
举一个例子,例如最开始的时候输入和输出均为0,此时为第一转换状态。由第一转换状态进入第二转换状态时,输入3字节数据,输出2字节数据。此时环形缓存寄存器中仅剩下一个字节数据。不能再保证2字节的输出,所以下一个时刻输出锁存,只有输入有效。即,跳转至第三转换状态,向后输出反压,控制输入3字节数据,输出锁存。此时,输入有4字节数据,在下一个时刻,则可以再输出2字节数据。余下2字节数据,在暂时不输入数据的情况下,同样可以保证输出。那么此时,可以进入第四转换状态,向前输出反压,输入锁存,输出2字节数据。之后的下一个时刻,因为输入和输出都是0,所以,进入第一转换状态。
在一个可选的实施方式中,输入数据预先存放于输入缓存队列,以便后续从输入缓存队列中写数据至环形缓存寄存器;
和/或,从环形缓存寄存器读出的数据存入输出缓存队列,以便后续从输出缓存队列读出数据。
具体的,输入数据可以先存放于输入缓存队列,类似的道理,输出数据也可以先存放于输出缓存队列,并根据数据位宽转换状态控制数据输入,和/或输出。
参加图5所示,图5中示意出基于握手的非整数倍数据位宽转换处理方法实现框图。
包括数据输入有效指示信号、输入数据信号、接收准备信号、数据输出有效指示信号、输出数据信号、输出准备信号等。在该示意图中,包括输入缓存队列、数据传输装置以及输出缓存队列,数据传输装置中包括具体的传输链路和环形缓存寄存器。具体的传输链路例如包括输入数据传输通道和输出数据传输通道。
图5中示意图输入数据(有效信号)事先存储在输入缓存队列中,实际上,还可以包括数据输入有效指示信号也可以加入到输入队列。然后,在输入缓存队列中进行输出,也即是图5中示意的数据输出有效指示信号0和输出数据信号0,进入数据传输装置后,通过数据传输装置进行位宽转换后,生成的第二预设字节数量的输出数据(图5中是输入数据信号1)以“输入信号”的形式输入到输出缓存队列进行缓存,然后在缓存队列中进行持续输出,如图5中显示的输出数据信号1。类似道理,数据输入有效指示信号0经过输入缓存队列后,变成数据输出有效指示信号0,然后通过数据传输装置后,变为数据输入有效指示信号1(实际是数据输出有效指示信号)经过缓存队列后持续输出。相反执行的是输出准备信号1,需要分别经过输出缓存队列、数据传输装置以及输如缓存队列,变成接收准备信号0。
在一个可选的实施方式中,环形缓存寄存器的最大数据位宽为第一预设字节数量和第二预设字节数量中最大值的预设整数倍。
具体的,环形缓存寄存器用于存储输入数据和输出数据,在转换过程中需要同时存储输入和输出数据。为了确保能够容纳输入数据和输出数据,寄存器的位宽需要足够大。但是为了避免占用过多的存储资源,所以可以最低设置为输入数据位宽和输出数据位宽中最大值的两倍,这种情况可以保证环形缓存寄存器方便地进行数据的移位操作,并且确保在移位过程中没有数据溢出。实现数据的缓冲、调整和同步,保证数据的完整性和正确性。
在一个可选的实施方式中,当第一指示状态有效时,控制写指针在环形缓存寄存器中按照第一预设字节数量进行跳转寻址;
或者,当第一指示状态无效时写指针在环形缓存寄存器中的指针位置不发生改变。
类似的道理,当第二指示状态有效时,控制读指针在环形缓存寄存器中按照第二预设字节数量进行跳转寻址;
或者,当第二指示状态无效时读指针在环形缓存寄存器中的指针位置不发生改变。
具体参见图6(1)-图6(3)所示,图6(1)-图6(3)中分别示意出读写指针跳转状态示意图。以基于握手的3:2数据位宽转换控制流程为例,图6(1)中示意出在某一时刻,当写指针指示位置为3时,读指针指示位置为0,图6(2)中示意出在另一时刻,当写指针指示位置为4时,读指针指示位置为2。类似道理,图6(3)中示意出在又一时刻,当写指针指示位置为1时,读指针指示位置为4。
下文中,则分别以基于握手的3:2数据位宽转换控制流程,以及基于握手的2:3数据位宽转换控制流程分别为例进行说明前述方法流程。具体参见如下。首先介绍基于握手的3:2数据位宽转换控制流程。
输入有效in_active = in_valid&&(buf_cnt<4),输出有效:out_valid&&outready。其中,输出out_valid = (buf_cnt>1)。这里的buf_cnt代表的是地址指针差值。在该示例中,之所以设置输入有效时,buf_cnt<4,是考虑到环形缓存寄存器中的最大位宽为6(3的两倍),而输入数据每次输入需要3个字节,因此环形缓存寄存器中必须至少空余3个字节的位置,才可以输入数据。如果说至少空余3个字节位置,则需要环形缓存寄存器中当前所占用的位置最多是3个,也即是buf_cnt小于或者等于3,也即是buf_cnt<4,此时输入有效。同时,因为输出的字节数量是2个字节,因此需要保证环形缓存寄存器中至少存在2个字节的数据时,才能够保证输出有效,因此,输出out_valid = (buf_cnt>1)。
下文中,则基于四种数据位宽转换状态进行分别说明。
S0状态,地址指针差值buf_cnt=0。即,假设,我们以读指针和写指针同时为0作为起始时刻。那么,当需要跳转到S1状态时,需要第一指示状态和第二指示状态同时有效,且地址指针差值为第一差值范围和第二差值范围的交集中的任意数值。
也是,in_active、out_valid&&out ready同时有效,在结合前述内容可知,此时in_valid、out_valid、out ready同时有效,同时buf_cnt只有2和3两种情况。具体参见表1所示,表1中示意出以0时刻读指针和写指针均为0,buf_cnt为0后,不同时刻下四种状态的跳转情况。当buf_cnt为2时,buf_cnt 更新为3;若此时仍然保持在S1状态,则buf_cnt 更新为4。
表1
其中,在写指针wptr和读指针rptr最高位再额外设置一个bit的翻转标志位,用于指示当前读写操作是否为同一cycle操作,若当前操作为同一cycle操作则当前缓存计数器buf_cnt为写指针与读指针之差,若当前操作不在同一cycle,则说明写操作已经快于读操作一个cycle,此时缓存计数器buf_cnt为写指针加上buf_reg最大缓存大小再减去读指针。
需要说明的是,本申请实施例中的任一个表格中,不同时刻,in_valid、out_valid、out ready等是否有效都是事先设定好的,该表格仅仅是用以说明在不同时刻,不同情况下,四种转换状态的一个跳转情况。
类似的道理,S2状态:此时仅输入有效in_active,输出反压,只能缓存数据,buf_cnt有0、1、2、3四种情况,当buf_cnt为0时,buf_cnt 更新为3;当buf_cnt 为1时, buf_cnt更新为4;当buf_cnt为2时, buf_cnt更新为5;当buf_cnt为3时, buf_cnt更新为6。
具体参加表2至表5所示:
表2
表3
表4
表5
S3状态:此时输出准备好,但输入无效,只能输出缓存数据,每输出一次, buf_cnt减2,具体参见表6所示。
表6
下面,再介绍基于握手的2:3数据位宽转换控制流程:
输入有效in_active = in_valid&&(buf_cnt<5),输出有效:out_valid = (buf_cnt>2)&&outready。
当输入有效wptr = wptr+2,当输出有效rptr=rptr+3,同样当wptr或rptr自加后超过最大缓冲大小,则自动跳转到起点再自加。
S1状态:此时输入有效in_active同时输出ready,可以同时缓存和输出,buf_cnt只有3和4两种情况,当buf_cnt为3时, buf_cnt 更新为2;当buf_cnt为4时,则buf_cnt 更新为3。具体参见表7所示。
表7
S2状态:此时仅输入有效in_active,输出反压,只能缓存数据,buf_cnt有0、1、2、3,4五种情况,当buf_cnt为0时, buf_cnt 更新为2;当buf_cnt 为1时, buf_cnt更新为3;当buf_cnt为2时, buf_cnt更新为4;当buf_cnt为3时,buf_cnt更新为5 ;当buf_cnt为4时,buf_cnt更新为6。分别参见表8和表9所示。
表8
表9
S3状态:此时输出准备好,但输入无效,只能输出缓存数据,每输出一次, buf_cnt减3。具体参加表10所示。
表10
在一个可选的实施方式中,该方法还可以包括:当数据输入通道包括多条,采用仲裁的方式从多条数据输入通道中选择目标数据输入通道传输输入数据;和/或,当数据输出通道包括多条时,采用仲裁的方式从多条数据输出通道中选择目标数据输出通道传输输出数据。
在一个可选的实施方式中,当数据输入通道包括多条,采用仲裁的方式从多条数据输入通道中选择目标数据输入通道传输输入数据包括:
步骤C1,获取每一条数据输入通道预配置的优先级;
步骤C2,选取数据输入通道中优先级最高的数据输入通道作为目标数据输入通道,并利用目标数据输入通道传输输入数据;
和/或,当数据输出通道包括多条时,采用仲裁的方式从多条数据输出通道中选择目标数据输出通道传输输出数据,包括:
步骤D1,获取每一条数据输出通道预配置的优先级;
步骤D2,选取数据输出通道中优先级最高的数据输出通道作为目标数据输出通道,并利用目标数据输出通道传输输出数据。
具体的,数据输入通道和数据输出通道的优先级可以事先根据实际需要进行配置,例如根据通道传输速率进行配置。然后,在后续进行数据输入或输出时,则优先考虑优先级高的通道进行传输即可。
在一个可选的实施方式中,当数据输入通道包括多条,采用仲裁的方式从多条数据输入通道中选择目标数据输入通道传输输入数据包括:
轮询每一条数据输入通道,选择当前未占用的任一条数据输入通道作为目标数据输入通道,用以传输输入数据;
和/或,当数据输出通道包括多条时,采用仲裁的方式从多条数据输出通道中选择目标数据输出通道传输输出数据,包括:
轮询每一条数据输出通道,选择当前未占用的任一条数据输出通道作为目标数据输出通道,用以传输输出数据。
具体的,除了上述可以通过选择优先级最高的以外,也可以考虑轮询数据输入通道,查看目前未被占用的数据输入通道作为目标数据输入通道,提高数据传输效率。类似道理,也可以选择未被占用的数据输出通道作为目标数据输出通道,用以输出数据。
在一个可选的实施方式中,当数据输入通道包括多条,方法还包括:
将输入数据划分为与数据输入通道等同数量的多个输入数据片段,并为每一个输入数据片段配置标识信息;
将每一个输入数据片段分别分配至不同数据输入通道进行传输,并在缓存队列中按照每一个输入数据片段的标识信息对多个输入数据片段进行组合,以获取输入数据。
在一个可选的实施方式中,当数据输出通道包括多条,方法还包括:
将输出数据划分为与数据输出通道等同数量的多个输出数据片段,并为每一个输出数据片段配置标识信息;
将每一个输出数据片段分别分配至不同数据输出通道进行传输,并在缓存队列中按照每一个数据片段的标识信息对多个输出数据片段进行组合,以获取输出数据。
上述两个实施方式中,原理类似,就是可以考虑将输入数据进行分片传输,和/或将输出数据进行分配传输,最终再将多个数据片段进行整合处理得到输入数据,和/或输出数据。
在一个可选的实施方式中,对输入数据和/或输出数据执行与数据位宽转换状态对应的操作时,所方法还包括:输入数据和输出数据进行异步传输。
具体的,通过异步传输的方式,在理想状态下,可以保证环形缓存寄存器中在某个时刻或者某些没有缓存数据,即输入多少,输出多少。进一步提高数据位宽转换效率。
在本实施例中还提供了一种数据位宽转换装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种数据位宽转换装置,如图7示,包括:获取模块701、寻址模块702、处理模块703,以及执行模块704。
获取模块701,用于获取第一指示信号的第一指示状态和第二指示信号的第二指示状态;
寻址模块702,用于根据第一指示状态控制写指针在环形缓存寄存器中进行寻址,获取第一地址信息;以及根据第二指示状态控制读指针在环形缓存寄存器中进行寻址,获取第二地址信息,其中,第一指示状态的初始状态和第二指示状态的初始状态预先设定,第一指示状态的后续状态根据预配置的数据输入有效指示信号当前的状态、第一地址信息和第二地址信息确定;第二指示信号的后续状态根据预配置的输出准备信号当前的状态和数据输出有效指示信号当前的状态确定;
处理模块703,用于根据第一指示状态、第二指示状态、第一地址信息,以及第二地址信息,确定数据位宽转换状态,其中,数据位宽转换状态用于控制输入数据在数据输入通道中按照第一预设字节数量进行输入,或者,反馈前端反压信号以控制输入数据锁存;和/或,数据位宽转换状态用于控制输出数据在数据输出通道中按照第二预设字节数量进行输出,或者,反馈后端反压信号以控制输出数据锁存;
执行模块704,用于对输入数据和/或输出数据执行与数据位宽转换状态对应的操作。
在一种可选的实施方式中,获取模块701,具体用于:
获取预配置的数据输入有效指示信号当前的状态,数据输出有效指示信号当前的状态,以及预配置的输出准备信号当前的状态;
识别指针差值当前所属的差值范围;
根据数据输入有效指示信号当前的状态和与地址指针差值所属的差值范围,确定第一指示状态;
以及,根据输出准备信号当前的状态和数据输出有效指示信号当前的状态,确定第二指示状态。
在一种可选的实施方式中,第一指示状态包括有效和无效两种状态;当数据输入有效指示信号当前的状态为有效状态,且地址指针差值所属的差值范围为第一差值范围时,确定第一指示状态有效;
或者,
当数据输入有效指示信号当前的状态为无效状态,和/或,当地址指针差值所属的差值范围不在第一差值范围内时,确定第一指示状态无效。
在一种可选的实施方式中,第一预设差值范围的边界值根据第一预设字节数量确定。
在一种可选的实施方式中,第二指示状态包括有效状态和无效状态两种类型;
数据输出有效指示信号当前的状态包括有效和无效两种类型;
当地址指针差值所属的差值范围为第二差值范围时,数据输出有效指示信号当前的状态为有效状态;或者,当地址指针差值所属的差值范围不属于第二差值范围时,数据输出有效指示信号当前的状态为无效状态;
当输出准备信号的状态为有效状态,且数据输出有效指示信号当前的状态为有效状态,则确定第二指示状态有效;
或者,
当输出准备信号的状态为无效状态,和/或,当数据输出有效指示信号当前的状态为无效状态,确定第二指示状态无效。
在一种可选的实施方式中,第二预设差值范围的边界值根据第二预设字节数量确定。
在一种可选的实施方式中,数据位宽转换状态包括:第一转换状态、第二转换状态、第三转换状态,以及第四转换状态;处理模块703具体用于:
当确定第一指示状态和第二指示状态同时无效,且地址指针差值为预设值时,确定数据位宽转换状态为第一转换状态;
或者,当确定第一指示状态和第二指示状态同时有效,且地址指针差值为第一差值范围和第二差值范围的交集中的任意数值时,确定数据位宽转换状态为第二转换状态;
或者,当确定第一指示状态有效,第二指示状态无效,且地址指针差值为第一差值范围的任意数值时,确定数据位宽转换状态为第三转换状态;
或者,当确定第一指示状态无效,第二指示状态有效,且地址指针差值为第一差值范围的任意数值时,确定数据位宽转换状态为第四转换状态。
在一种可选的实施方式中,执行模块704,具体用于:当数据位宽转换状态为第一转换状态时,控制输入数据和输出数据同时进行锁存处理;
或者,当数据位宽转换状态为第二转换状态时,控制输入数据在数据输入通道按照第一预设字节数量进行输入,且控制输出数据在数据输出通道按照第二预设字节数量进行输出;
或者,当数据位宽转换状态为第三转换状态时,控制输入数据在数据输入通道按照第一预设字节数量进行输入,且反馈后端反压信号,用以控制输出数据进行锁存;
或者,当数据位宽转换状态为第四转换状态时,反馈前端反压信号,用以控制输入数据进行锁存,且控制输出数据在数据输出通道按照第二预设字节数量进行输出。
在一种可选的实施方式中,输入数据预先存放于输入缓存队列,以便后续从输入缓存队列中写数据至环形缓存寄存器;
和/或,从环形缓存寄存器读出的数据存入输出缓存队列,以便后续从输出缓存队列读出数据。
在一种可选的实施方式中,环形缓存寄存器的最大数据位宽为第一预设字节数量和第二预设字节数量中最大值的预设整数倍。
在一种可选的实施方式中,执行模块704,具体用于:
当第一指示状态有效时,控制写指针在环形缓存寄存器中按照第一预设字节数量进行跳转寻址;
或者,当第一指示状态无效时写指针在环形缓存寄存器中的指针位置不发生改变。
在一种可选的实施方式中,执行模块704,具体用于:
当第二指示状态有效时,控制读指针在环形缓存寄存器中按照第二预设字节数量进行跳转寻址;
或者,当第二指示状态无效时读指针在环形缓存寄存器中的指针位置不发生改变。
在一种可选的实施方式中,处理模块703,还用于当数据输入通道包括多条,采用仲裁的方式从多条数据输入通道中选择目标数据输入通道传输输入数据;和/或,当数据输出通道包括多条时,采用仲裁的方式从多条数据输出通道中选择目标数据输出通道传输输出数据。
在一种可选的实施方式中,处理模块703,具体用于:
获取每一条数据输入通道预配置的优先级;
选取数据输入通道中优先级最高的数据输入通道作为目标数据输入通道,并利用目标数据输入通道传输输入数据;
和/或,当数据输出通道包括多条时,采用仲裁的方式从多条数据输出通道中选择目标数据输出通道传输输出数据,包括:
获取每一条数据输出通道预配置的优先级;
选取数据输出通道中优先级最高的数据输出通道作为目标数据输出通道,并利用目标数据输出通道传输输出数据。
在一种可选的实施方式中,处理模块703,具体用于:
轮询每一条数据输入通道,选择当前未占用的任一条数据输入通道作为目标数据输入通道,用以传输输入数据;
和/或,当数据输出通道包括多条时,采用仲裁的方式从多条数据输出通道中选择目标数据输出通道传输输出数据,包括:
轮询每一条数据输出通道,选择当前未占用的任一条数据输出通道作为目标数据输出通道,用以传输输出数据。
在一种可选的实施方式中,当数据输入通道包括多条,处理模块703还用于,将输入数据划分为与数据输入通道等同数量的多个输入数据片段,并为每一个输入数据片段配置标识信息;
将每一个输入数据片段分别分配至不同数据输入通道进行传输,并在缓存队列中按照每一个输入数据片段的标识信息对多个输入数据片段进行组合,以获取输入数据。
在一种可选的实施方式中,当数据输出通道包括多条,处理模块703,还用于将输出数据划分为与数据输出通道等同数量的多个输出数据片段,并为每一个输出数据片段配置标识信息;
将每一个输出数据片段分别分配至不同数据输出通道进行传输,并在缓存队列中按照每一个数据片段的标识信息对多个输出数据片段进行组合,以获取输出数据。
在一种可选的实施方式中,输入数据和输出数据进行异步传输。
本实施例中的数据位宽转换装置是以功能模块的形式来呈现,这里的模块是指专用集成电路(Application Specific Integrated Circuit,简称ASIC),执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本发明实施例提供的一种数据位宽转换装置,第一指示信号的第一指示状态用于控制写指针在环形缓存寄存器中进行寻址,来获取写指针所指示的第一地址信息。第二指示信号的第二指示状态,用于控制读指针在环形缓存寄存器中进行寻址,获取读指针所指示的第二地址信息。并根据第一地址信息和第二地址信息,确定地址指针差值。这个指针差值则可以代表环形缓存寄存器中目前已经被占用的位置数量。进而推算环形缓存寄存器中空余位置的数量。被占用的位置数量可以指示已输入数据和已输出数据之间的差值。进而,可以判定目前是需要继续写入数据,还是继续读出数据。亦或是写入和读出同时进行。从而,可以根据第一指示状态、第二指示状态,以及地址指针差值,确定数据位宽转换状态,其中数据位宽转换状态用于控制输入数据在数据输入通道按照第一预设字节数量进行输入或者,反馈前端反压信号以控制输入数据锁存,和/或,控制输出数据在数据输出通道中按照第二预设字节数量进行输出,或者,反馈后端反压信号以控制输出数据锁存。该方式中,基于可编程逻辑器件FPGA内部状态机控制读写指针进行跳转在环形缓存寄存器中进行寻址,相较于传统两级转换,设计更加简单、灵活,高效,可以实现输入数据和输出数据位宽灵活可配。无需额外引入第三方位宽转换IP,也可以任意移植到任何平台执行,也无需占用过多的逻辑资源。再者,该方法不仅仅可以适用于非整数倍位宽转换,整数倍位宽转换同样适用。可以适配更多场景的用户设计。
本发明实施例还提供一种计算机设备,具有上述图7所示的数据位宽转换装置。
请参阅图8,图8是本发明可选实施例提供的一种计算机设备的结构示意图,如图8所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器***)。图8中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,存储器20存储有可由至少一个处理器10执行的指令,以使至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据一种小程序落地页的展现的计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括输入装置30和输出装置40。处理器10、存储器20、输入装置30和输出装置40可以通过总线或者其他方式连接,图8中以通过总线连接为例。
输入装置30可接收输入的数字或字符信息,以及产生与该计算机设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等。输出装置40可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。上述显示设备包括但不限于液晶显示器,发光二极管,显示器和等离子体显示器。在一些可选的实施方式中,显示设备可以是触摸屏。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (18)
1.一种数据位宽转换方法,其特征在于,所述方法应用于一种数据位宽转换***,所述数据位宽转换***中配置环形缓存寄存器、读指针和写指针,所述方法包括:
获取第一指示信号的第一指示状态和第二指示信号的第二指示状态;
根据所述第一指示状态控制所述写指针在所述环形缓存寄存器中进行寻址,获取第一地址信息;以及根据所述第二指示状态控制所述读指针在所述环形缓存寄存器中进行寻址,获取第二地址信息;
根据所述第一指示状态、所述第二指示状态、所述第一地址信息,以及所述第二地址信息,确定数据位宽转换状态,其中,所述数据位宽转换状态用于控制输入数据在数据输入通道中按照第一预设字节数量进行输入,或者,反馈前端反压信号以控制所述输入数据锁存;和/或,所述数据位宽转换状态用于控制输出数据在数据输出通道中按照第二预设字节数量进行输出,或者,反馈后端反压信号以控制所述输出数据锁存;
对所述输入数据和/或所述输出数据执行与所述数据位宽转换状态对应的操作;
其中,所述根据所述第一指示状态、所述第二指示状态、所述第一地址信息,以及所述第二地址信息,确定数据位宽转换状态,包括:
根据所述第一地址信息和所述第二地址信息,确定地址指针差值;
根据所述第一指示状态、所述第二指示状态、所述地址指针差值,确定所属数据位宽转换状态;
获取第一指示信号的第一指示状态和第二指示信号的第二指示状态,具体包括:
获取预配置的数据输入有效指示信号当前的状态,输出有效指示信号当前的状态,数据输出有效指示信号当前的状态,以及预配置的输出准备信号当前的状态;
识别地址指针差值当前所属的差值范围;
根据所述数据输入有效指示信号当前的状态和与所述地址指针差值所属的差值范围,确定所述第一指示状态;
以及,根据所述输出准备信号当前的状态和所述数据输出有效指示信号当前的状态,确定所述第二指示状态。
2.根据权利要求1所述的方法,其特征在于,所述数据位宽转换状态包括:第一转换状态、第二转换状态、第三转换状态,以及第四转换状态;
所述根据所述第一指示状态、所述第二指示状态,以及所述地址指针差值,确定数据位宽转换状态,包括:
当确定所述第一指示状态和所述第二指示状态同时无效,且所述地址指针差值为预设值时,确定所述数据位宽转换状态为所述第一转换状态;
或者,当确定所述第一指示状态和所述第二指示状态同时有效,且所述地址指针差值为第一差值范围和第二差值范围的交集中的任意数值时,确定所述数据位宽转换状态为所述第二转换状态;
或者,当确定所述第一指示状态有效,所述第二指示状态无效,且所述地址指针差值为所述第一差值范围的任意数值时,确定所述数据位宽转换状态为所述第三转换状态;
或者,当确定所述第一指示状态无效,所述第二指示状态有效,且所述地址指针差值为所述第一差值范围的任意数值时,确定所述数据位宽转换状态为所述第四转换状态。
3.根据权利要求2所述的方法,其特征在于,所述对所述输入数据和/或所述输出数据执行与所述数据位宽转换状态对应的操作,具体包括:
当所述数据位宽转换状态为所述第一转换状态时,控制所述输入数据和所述输出数据同时进行锁存处理;
或者,当所述数据位宽转换状态为所述第二转换状态时,控制所述输入数据在所述数据输入通道按照第一预设字节数量进行输入,且控制所述输出数据在所述数据输出通道按照第二预设字节数量进行输出;
或者,当所述数据位宽转换状态为所述第三转换状态时,控制所述输入数据在所述数据输入通道按照第一预设字节数量进行输入,且反馈所述后端反压信号,用以控制所述输出数据进行锁存;
或者,当所述数据位宽转换状态为所述第四转换状态时,反馈所述前端反压信号,用以控制所述输入数据进行锁存,且控制所述输出数据在所述数据输出通道按照第二预设字节数量进行输出。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述数据输入通道包括多条,采用仲裁的方式从多条所述数据输入通道中选择目标数据输入通道传输所述输入数据;和/或,当所述数据输出通道包括多条时,采用仲裁的方式从多条所述数据输出通道中选择目标数据输出通道传输所述输出数据。
5.根据权利要求4所述的方法,其特征在于,当所述数据输入通道包括多条,采用仲裁的方式从多条所述数据输入通道中选择目标数据输入通道传输所述输入数据,包括:
获取每一条数据输入通道预配置的优先级;
选取数据输入通道中优先级最高的数据输入通道作为所述目标数据输入通道,并利用所述目标数据输入通道传输所述输入数据;
和/或,当所述数据输出通道包括多条时,采用仲裁的方式从多条所述数据输出通道中选择目标数据输出通道传输所述输出数据,包括:
获取每一条数据输出通道预配置的优先级;
选取数据输出通道中优先级最高的数据输出通道作为所述目标数据输出通道,并利用所述目标数据输出通道传输所述输出数据。
6.根据权利要求1所述的方法,其特征在于,当所述数据输入通道包括多条,采用仲裁的方式从多条所述数据输入通道中选择目标数据输入通道传输所述输入数据包括:
轮询每一条所述数据输入通道,选择当前未占用的任一条数据输入通道作为所述目标数据输入通道,用以传输所述输入数据;
和/或,当所述数据输出通道包括多条时,采用仲裁的方式从多条所述数据输出通道中选择目标数据输出通道传输所述输出数据,包括:
轮询每一条所述数据输出通道,选择当前未占用的任一条数据输出通道作为所述目标数据输出通道,用以传输所述输出数据。
7.根据权利要求1所述的方法,其特征在于,所述输入数据预先存放于输入缓存队列,以便后续从所述输入缓存队列中写数据至所述环形缓存寄存器;
和/或,从所述环形缓存寄存器读出的数据存入输出缓存队列,以便后续从所述输出缓存队列读出所述数据。
8.根据权利要求7所述的方法,其特征在于,当所述数据输入通道包括多条,所述方法还包括:
将所述输入数据划分为与所述数据输入通道等同数量的多个输入数据片段,并为每一个所述输入数据片段配置标识信息;
将每一个所述输入数据片段分别分配至不同数据输入通道进行传输,并在所述缓存队列中按照每一个所述输入数据片段的标识信息对多个所述输入数据片段进行组合,以获取所述输入数据。
9.根据权利要求7所述的方法,其特征在于,当所述数据输出通道包括多条,所述方法还包括:
将所述输出数据划分为与所述数据输出通道等同数量的多个输出数据片段,并为每一个所述输出数据片段配置标识信息;
将每一个所述输出数据片段分别分配至不同数据输出通道进行传输,并在所述缓存队列中按照每一个所述数据片段的标识信息对多个所述输出数据片段进行组合,以获取所述输出数据。
10.根据权利要求1所述的方法,其特征在于,所述第一指示状态包括有效和无效两种状态;
当所述数据输入有效指示信号当前的状态为有效状态,且所述地址指针差值所属的差值范围为第一差值范围时,确定所述第一指示状态有效;
或者,
当所述数据输入有效指示信号当前的状态为无效状态,和/或,当所述地址指针差值所属的差值范围不在所述第一差值范围内时,确定所述第一指示状态无效。
11.根据权利要求1所述的方法,其特征在于,所述第二指示状态包括有效状态和无效状态两种类型,所述数据输出有效指示信号当前的状态包括有效和无效两种类型;
当所述地址指针差值所属的差值范围为第二差值范围时,所述数据输出有效指示信号当前的状态为有效状态;或者,当所述地址指针差值所属的差值范围不属于所述第二差值范围时,所述数据输出有效指示信号当前的状态为无效状态;
当所述输出准备信号的状态为有效状态,且所述数据输出有效指示信号当前的状态为有效状态,则确定所述第二指示状态有效;
或者,
当所述输出准备信号的状态为无效状态,和/或,当所述数据输出有效指示信号当前的状态为无效状态,确定所述第二指示状态无效。
12.根据权利要求1所述的方法,其特征在于,所述环形缓存寄存器的最大数据位宽为所述第一预设字节数量和所述第二预设字节数量中最大值的预设整数倍。
13.根据权利要求1所述的方法,其特征在于,当所述第一指示状态有效时,控制所述写指针在所述环形缓存寄存器中按照所述第一预设字节数量进行跳转寻址;
或者,当所述第一指示状态无效时所述写指针在所述环形缓存寄存器中的指针位置不发生改变。
14.根据权利要求1所述的方法,其特征在于,当所述第二指示状态有效时,控制所述读指针在所述环形缓存寄存器中按照所述第二预设字节数量进行跳转寻址;
或者,当所述第二指示状态无效时所述读指针在所述环形缓存寄存器中的指针位置不发生改变。
15.根据权利要求1所述的方法,其特征在于,所述对所述输入数据和/或所述输出数据执行与所述数据位宽转换状态对应的操作时,所述方法还包括:
将所述输入数据和所述输出数据进行异步传输。
16.一种数据位宽转换装置,其特征在于,所述装置包括:
获取模块,用于获取第一指示信号的第一指示状态和第二指示信号的第二指示状态;
寻址模块,用于根据所述第一指示状态控制写指针在环形缓存寄存器中进行寻址,获取第一地址信息;以及根据所述第二指示状态控制读指针在所述环形缓存寄存器中进行寻址,获取第二地址信息;
处理模块,用于根据所述第一指示状态、所述第二指示状态、所述第一地址信息,以及所述第二地址信息,确定数据位宽转换状态,其中,所述数据位宽转换状态用于控制输入数据在数据输入通道中按照第一预设字节数量进行输入,或者,反馈前端反压信号以控制所述输入数据锁存;和/或,所述数据位宽转换状态用于控制输出数据在数据输出通道中按照第二预设字节数量进行输出,或者,反馈后端反压信号以控制所述输出数据锁存;
执行模块,用于对所述输入数据和/或所述输出数据执行与所述数据位宽转换状态对应的操作;
其中,所述处理模块,具体用于根据所述第一地址信息和所述第二地址信息,确定地址指针差值;
根据所述第一指示状态、所述第二指示状态、所述地址指针差值,确定所属数据位宽转换状态;
所述获取模块,具体用于获取预配置的数据输入有效指示信号当前的状态,输出有效指示信号当前的状态,数据输出有效指示信号当前的状态,以及预配置的输出准备信号当前的状态;
识别地址指针差值当前所属的差值范围;
根据所述数据输入有效指示信号当前的状态和与所述地址指针差值所属的差值范围,确定所述第一指示状态;
以及,根据所述输出准备信号当前的状态和所述数据输出有效指示信号当前的状态,确定所述第二指示状态。
17.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至15中任一项所述的数据位宽转换方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至15中任一项所述的数据位宽转换方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311717821.2A CN117422024B (zh) | 2023-12-14 | 2023-12-14 | 数据位宽转换方法、装置、计算机设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311717821.2A CN117422024B (zh) | 2023-12-14 | 2023-12-14 | 数据位宽转换方法、装置、计算机设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117422024A CN117422024A (zh) | 2024-01-19 |
CN117422024B true CN117422024B (zh) | 2024-05-03 |
Family
ID=89528642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311717821.2A Active CN117422024B (zh) | 2023-12-14 | 2023-12-14 | 数据位宽转换方法、装置、计算机设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117422024B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1540523A (zh) * | 2003-10-30 | 2004-10-27 | 中兴通讯股份有限公司 | 单任务快速缓冲读写方法 |
CN102591815A (zh) * | 2011-12-27 | 2012-07-18 | Tcl集团股份有限公司 | 一种用环形数据缓冲区读写批量数据的方法及装置 |
CN112765054A (zh) * | 2019-11-01 | 2021-05-07 | 中国科学院声学研究所 | 一种基于fpga的高速数据采集***及方法 |
WO2021129689A1 (zh) * | 2019-12-23 | 2021-07-01 | 深圳市中兴微电子技术有限公司 | 数据位宽转换方法和装置 |
-
2023
- 2023-12-14 CN CN202311717821.2A patent/CN117422024B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1540523A (zh) * | 2003-10-30 | 2004-10-27 | 中兴通讯股份有限公司 | 单任务快速缓冲读写方法 |
CN102591815A (zh) * | 2011-12-27 | 2012-07-18 | Tcl集团股份有限公司 | 一种用环形数据缓冲区读写批量数据的方法及装置 |
CN112765054A (zh) * | 2019-11-01 | 2021-05-07 | 中国科学院声学研究所 | 一种基于fpga的高速数据采集***及方法 |
WO2021129689A1 (zh) * | 2019-12-23 | 2021-07-01 | 深圳市中兴微电子技术有限公司 | 数据位宽转换方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117422024A (zh) | 2024-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8286025B1 (en) | Selection of port adapters for clock crossing boundaries | |
JP5429572B2 (ja) | チェーン化デバイスシステムにおいてパラメータを設定し待ち時間を決定する方法 | |
CN114443529B (zh) | 内存直接访问架构、***、方法、电子设备和介质 | |
US7433977B2 (en) | DMAC to handle transfers of unknown lengths | |
US20150186068A1 (en) | Command queuing using linked list queues | |
JP2021530813A (ja) | 専用低レイテンシリンクを使用した複数のハードウェアアクセラレータのための統合されたアドレス空間 | |
US20240143392A1 (en) | Task scheduling method, chip, and electronic device | |
US11048475B2 (en) | Multi-cycle key compares for keys and records of variable length | |
US11354094B2 (en) | Hierarchical sort/merge structure using a request pipe | |
CN111158905A (zh) | 调整资源的方法和装置 | |
US10782914B2 (en) | Buffer systems and methods of operating the same | |
CN114328350A (zh) | 一种基于axi总线的通讯方法、装置以及介质 | |
CN113485672A (zh) | 基于fifo存储器的信息生成方法、装置、设备及介质 | |
CN117422024B (zh) | 数据位宽转换方法、装置、计算机设备及介质 | |
US10374981B1 (en) | Data transfer circuitry given multiple source elements | |
US6477177B1 (en) | Multiple device access to serial data stream | |
CN111625180B (zh) | 数据写入方法及装置、存储介质 | |
US20140297906A1 (en) | Buffer circuit and semiconductor integrated circuit | |
CN107590086B (zh) | 一种通讯连接装置及方法、通讯单板 | |
CN112181356A (zh) | 一种可配置的多进多出fifo的设计方法及装置 | |
CN112416564A (zh) | 一种中断处理方法及处理装置 | |
CN107577438B (zh) | 现场可编程门阵列中闪存的存储空间的划分方法及装置 | |
US7234030B1 (en) | Table-based scheduler for FIFOs and the like | |
CN111538589B (zh) | 嵌入式os线程阻塞队列的操作优化方法、装置、终端及介质 | |
EP2799979B1 (en) | Hardware abstract data structure, data processing method and system |
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 |