一种数据移位方法及可配置的桶式移位装置制造方法及图纸

技术编号:37822079 阅读:18 留言:0更新日期:2023-06-09 09:58
本发明专利技术提供了一种数据移位方法及可配置的桶式移位装置,用于解决现有的桶式移位器及移位方法只能完成特定数据位宽的移位,且存在时延大、体积大、功能较为单一的技术问题。本发明专利技术的移位方法为:1】将数据位宽小于等于M的数据中高M位复制并拼接;直接输出数据位宽大于M的数据;2】将步骤1】输出的数据位宽小于等于M的数据高x位复制并拼接;将数据位宽大于M的数据高x位复制并拼接;根据i_shft[b

【技术实现步骤摘要】
一种数据移位方法及可配置的桶式移位装置


[0001]本专利技术涉及数据移位方法及装置,尤其涉及一种数据移位方法及可配置的桶式移位装置。

技术介绍

[0002]桶式移位器是一种组合逻辑电路,通常作为微处理器CPU的一部分。它具有多个数据输入和多个数据输出,以及指定如何移动外部输入数据的控制输入,指定移位方向、移位类型及移位位数。桶式移位器通常使用多级选择器构成,可以在一个时钟周期内将外部输入数据进行特定比特位的移位。但现有的桶式移位器及移位方法只能完成特定数据位宽的移位,并且存在时延大、体积大、功能较为单一的问题。

技术实现思路

[0003]本专利技术的目的针对现有的桶式移位器及移位方法只能完成特定数据位宽的移位,且存在的时延大、体积大、功能较为单一的技术问题,而提供一种数据移位方法及可配置的桶式移位装置。
[0004]为了实现上述目的,本专利技术的技术解决方案为:
[0005]一种数据移位方法,其特殊之处在于,包括以下步骤:
[0006]1】预设移位位数b,并对数据位宽小于等于M的外部输入数据进行预处理将本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种数据移位方法,其特征在于,包括以下步骤:1】预设移位位数b,并对数据位宽小于等于M的外部输入数据进行预处理将移位位数b设定为桶式移位器支持的最大数据位宽a所需的最小位数;若外部输入数据的数据位宽小于等于M,则将数据处理宽度设定为a,先丢弃外部输入数据低(a

M)位,再复制其高M位并将复制的数据拼接在高M位之后,最后根据数据处理宽度a将后边低位补0,作为第一输出数据输出;若外部输入数据的数据位宽大于M,则直接将其作为第一输出数据输出;其中M=a

32*(8*n),n=b

8;2】对第一输出数据进行处理若第一输出数据的数据位宽小于等于M,则将数据处理宽度设定为2M,先丢弃第一输出数据低(a

x)位,再复制其高x位并将复制的数据拼接在高x位之后,最后根据数据处理宽度2M将后边低位补0,作为第二输出数据输出;若第一输出数据的数据位宽大于M,则将数据处理宽度设定为2a,先丢弃第一输出数据低(a

x)位,再复制其高x位并将复制的数据拼接在高x位之后,最后根据数据处理宽度2a将后边低位补0,作为中间数据;再根据i_shft[b

1:b

2]对中间数据相应位进行移位,并将移位后的数据作为第二输出数据输出;其中,x表示第一输出数据的实际位宽,i_shft[b

1:b

2]表示移位位数b中最高位和次高位上的移位信号;3】根据i_shft[b

3:b

5]对第二输出数据相应位进行移位,并将移位后的数据作为第三输出数据输出;其中,i_shft[b

3:b

5]表示移位位数b中从最高位数第3位到第5位上的移位信号;4】根据i_shft[b

6:0]对第三输出数据相应位进行移位,并将移位后的数据作为第四输出数据输出;其中,i_shft[b

6:0]表示移位位数b中从最高位数第6位到最低位上的移位信号;5】通过掩码形式屏蔽第四输出数据中为0的比特位,完成数据移位。2.根据权利要求1所述的一种数据移位方法,其特征在于:所述桶式移位器支持的最大数据位宽a=384;所述移位位数b=9;所述M=128;所述第一输出数据的实际位宽x的取值范围为32、64、96、128、160、224、256、288、320、352、384。3.一种可配置的桶式移位装置,用于实现权利要求1或2所述的一种数据移位方法,其特征在于:包括按输入输出顺序依次连接的第一级流水线、第二级流水线、第三级流水线、第四级流水线以及第五级流水线;所述第一级流水线包括第一数据处理单元和第二寄存器;所述第一数据处理单元的输入端用于接收外部输入数据,并根据数据位宽对外部输入数据进行相应预处理;所述预处理为:若外部输入数据的数据位宽小于等于M,则设定数据处理宽度为a,先丢弃外部输入数据低(a

M)位,再复制其高M位并将复制的数据拼接在高M位之后,最后根据数据处理宽度a将后边低位补0,作为第一输出数据输出;若外部输入数据的数据位宽大于M,则将其作为第
一输出数据直接输出;其中M=a

32*(8*n),n=b

8;所述第二寄存器的输入端用于接收并存储预设的i_shft[b

1:0];其中,i_shft[b

1:0]表示移位位数b中最高位到最低位上的移位信号,所述移位位数b设定为桶式移位器支持的最大数据位宽a所需的最小位数;所述第二级流水线包括第二数据处理单元、第三数据处理单元、第一移位模块以及第三寄存器;所述第二数据处理单元的输入端用于接收数据位宽小于等于M的第一输出数据,其将数据处理宽度设定为2M,先丢弃第一输出数据低(a

x)位,再复制其高x位并将复制的数据拼接在高x位之后,最后根据数据处理宽度2M将后边低位补0,作为第二输出数据输出;所述第三数据处理单元的输入端用于接收数据位宽大于M的第一输出数据,其将数据处理宽度设定为2a,先丢弃第一输出数据低(a

x)位,再复制其高x位并将复制的数据拼接在高x位之后,最后根据数据处理宽度2a将后边低位补0,作为中间数据;第一移位模块的两个输入端分别连接第三数据处理单元的输出端和第二寄存器的一个输出端,用于根据i_shft[b

1:0]中的i_shft[b

1:b

2]对中间数据相应位进行移位,并将移位后的数据作为第二输出数据输出;所述第三寄存器的输入端连接第二寄存器的另一个输出端,用于接收并存储i_shft[b

3:0];其中,i_shft[b

1:b

2]表示移位位数b中最高位和次高位上的移位信号,i_shft[b

3:0]表示移位位数b中从最高位数第三位到最低位上的移位信号,x表示第一输出数据的实际位宽;所述第三级流水线包括第一选择模块、第二移位单元以及第六寄存器;所述第一选择模块的两个输入端分别连接第二数据处理单元的输出端和第一移位模块的输出端,用于对数据位宽小于等于M的第二输出数据和数据位宽大于M的第二输出数据进行选择;所述第二移位单元的两个输入端分别连接第一选择模块的输出端和第三寄存器的一个输出端,用于根据i_shft[b

3:0]中的i_shft[b

3:b

5]对第一选择模块选择的第二输出数据相应位进行移位,并将移位后的数据作为第三输出数据输出;所述第六寄存器的输入端连接第三寄存器的另一个输出端,用于接收并存储i_shft[b

【专利技术属性】
技术研发人员:曾泽沧杜慧敏张丽果董怡白升飞王心怡
申请(专利权)人:西安邮电大学
类型:发明
国别省市:

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

1