一种实现解扰解扩的方法和矢量运算器的制造方法

文档序号:8447243阅读:205来源:国知局
一种实现解扰解扩的方法和矢量运算器的制造方法
【技术领域】
[0001] 本发明涉及通信领域中的解扰解扩技术,尤其涉及一种实现解扰解扩的方法和矢 量运算器。
【背景技术】
[0002] 随着移动通信技术的迅猛发展,通信模式从全球移动通讯系统(GSM)模式发展到 宽带码分多址(WCDMA)模式,再到长期演进(LTE)模式,通信模式越来越多,越来越复杂。采 用传统的专用集成电路(ApplicationSpecificIntegratedCir州it,ASIC)方式实现多 种通信模式时面临着芯片面积大、面向市场周期长的问题,并且存在电路高度定制化、不灵 活、风险大的问题。
[0003] 基于软基带来实现多通信模式将是今后的发展方向。但是,基于软基带的常用矢 量运算器在实现码分多址(CDMA)的解扰解扩相关运算时效率不高,且功耗高。

【发明内容】

[0004] 为解决现有存在的技术问题,本发明实施例提供一种实现解扰解扩的方法和矢量 运算器。
[0005] 为达到上述目的,本发明的技术方案是该样实现的:
[0006] 本发明实施例提供了一种实现解扰解扩的方法,该方法包括:
[0007] 采用数据变换和加法进行基带数据与对应的解扰解扩码复数相乘的操作,并将相 乘所得数据存入矢量寄存器堆;
[0008] 从矢量寄存器堆中读出一行所述相乘所得的数据,进行相邻两数据的累加,得到 半行数据,并存回矢量寄存器堆;继续读出矢量寄存器堆上次累加的结果或保留在矢量运 算器结果寄存器中的上次累加结果继续相邻两数据的累加,得到1/4行数据,继续累加,最 终得到1个累加数据;W此类推,完成矢量寄存器堆中每行相乘所得的数据的累加。
[0009] 其中,所述采用数据变换和加法进行基带数据与对应解扰解扩码复数相乘的操 作,并存储所述相乘所得数据的步骤包括:
[0010] 从矢量寄存器堆读出的第一行基带数据依据对应的解扰解扩码进行变换,并将变 换后所得的数据相加,所得结果保存在矢量寄存器堆中;对从矢量寄存器堆读出的第二行 基带数据执行相同的变换和相加处理,完成与对应解扰解扩码的相乘;如果两行数据结果 需要累加,则在完成与对应解扰解扩码的相乘后与存储在矢量运算器结果寄存器中上行结 果累加,再存回矢量寄存器堆;W此类推,完成所有基带数据与对应解扰解扩码的相乘。
[0011] 优选的,该方法还包括:
[0012] 在从矢量寄存器堆读出每行基带数据时,产生与该行基带数据对应的解扰解扩 码。
[0013] 其中,所述依据解扰解扩码对基带数据进行变换,为:
[0014] 根据解扰解扩码对读出的基带数据进行复数实部与虚部位置交换,并进行实部或 虚部符号取反的操作。
[0015]其中,所述对矢量寄存器堆中读出的每行相乘所得的数据的累加步骤包括:
[0016]从矢量寄存器堆中读出每行存储的N个相乘所得的数据,进行两两相加,得到N/2 个数据,并存储于矢量寄存器堆中;再从寄存器堆读出所述N/2个数据继续进行两两相加, 得到N/4个数据,并存储;W此类推,对矢量寄存器堆中每行存储的相乘所得的数据进行多 次两两相加处理,直至最后每行累加得到1个数据;其中,所述N为正整数。
[0017]其中,所述对矢量寄存器堆中读出的每行相乘所得的数据的累加步骤包括:
[0018]从矢量寄存器堆中读出每行存储的N个相乘所得的数据,进行两两相加,得到N/2 个结果数据;再从矢量运算器的结果寄存器中取出所述N/2个结果数据进行两两相加,得 到N/4个数据;W此类推,对每行数据进行多次两两相加处理,直至每行累加得到1个数据; 其中,所述N为正整数。
[0019]本发明实施例还提供了一种实现解扰解扩的矢量运算器,所述矢量运算器包括: 矢量寄存器堆、读口操作单元和矢量乘加器;其中,
[0020] 所述矢量寄存器堆,用于存储基带数据,基带数据与对应解扰解扩码相乘所得的 结果,W及行间数据累加结果和行内两两数据累加结果;
[0021] 所述读口操作单元,用于从所述矢量寄存器堆读出基带数据,并依据对应的解扰 解扩码对基带数据进行数据变换;或者,从所述矢量寄存器堆中读出基带数据与解扰解扩 码相乘后的数据或累加后的数据,并进行相邻两数据相加需要的数据位置变换;
[0022] 所述矢量乘加器,用于将经所述读口操作单元变换后的数据进行加法处理,将所 得结果保存在矢量寄存器堆中;
[0023]还用于分别对从矢量寄存器堆中读出的一行相乘所得的数据进行相邻两数据的 累加,得到半行数据,并存回所述矢量寄存器堆;继续读出矢量寄存器堆上次累加的结果 或保留在矢量运算器结果寄存器中的上次累加结果继续相邻两数据的累加,得到1/4行数 据,继续累加,最终得到1个累加数据,W此类推,完成矢量寄存器堆中每行相乘所得的数 据的累加。
[0024]优选的,所述矢量运算器还包括;解扰解扩码产生器,用于读口操作单元在从所述 矢量寄存器堆读出每行基带数据时,产生与该行基带数据对应的解扰解扩码。
[0025]其中,所述矢量乘加器对矢量寄存器堆中读出的每行相乘所得的数据的累加, 为:
[0026]将从矢量寄存器堆中读出的每行存储的N个相乘所得的数据,进行两两相加,得 到N/2个数据,并存储于矢量寄存器堆中;再从寄存器堆读出所述N/2个数据继续进行两两 相加,得到N/4个数据,并存储;W此类推,对矢量寄存器堆中每行存储的相乘所得的数据 进行多次两两相加处理,直至最后每行累加得到1个数据;其中,所述N为正整数。
[0027]其中,所述矢量乘加器对矢量寄存器堆中读出的每行相乘所得的数据的累加, 为:
[0028]将从矢量寄存器堆中读出的每行存储的N个相乘所得的数据,进行两两相加,得 到N/2个结果数据;再从矢量运算器的结果寄存器中取出所述N/2个结果数据进行两两相 加,得到N/4个数据;W此类推,对每行数据进行多次两两相加处理,直至每行累加得到1个 数据;其中,所述N为正整数。
[0029] 本发明提供的实现解扰解扩的方法和矢量运算器,采用数据变换和加法进行基带 数据与对应解扰解扩码复数相乘的操作,并将相乘所得数据存入矢量寄存器堆;从矢量寄 存器堆中读出一行所述相乘所得的数据,进行相邻两数据的累加,得到半行数据,并存回矢 量寄存器堆;继续读出矢量寄存器堆上次累加的结果或保留在矢量运算器结果寄存器中的 上次累加结果继续相邻两数据的累加,得到1/4行数据,继续累加,最终得到1个累加数据; W此类推,完成矢量寄存器堆中每行相乘所得的数据的累加。
[0030] 可见,本发明上述实施例的解扰解扩码与基带数据相乘的实现过程仅需简单的变 换和加法运算,而非通过一般的乘法来实现,解扰解扩码伴随基带数据同时产生,不需要读 取,提高效率;而且,进行行内两两数据累加时,每次累加时可W充分利用所有加法器的迭 代方法,同样提高效率、且功耗更低。而且,本发明实施例在不增加加法器数目的前提下仅 作如下改进:
[0031] 1)对X读口读出的矢量的相邻数据单元做位置交换、符号变换等操作;
[0032] 2)将加法器输出反馈拉线到加法器输入。
[0033] 就能在支持通常的实数模式复数模式乘加、乘累加W及fft蝶形运算的运算器基 础上增加解扰解扩功能,因此实现代价小。
【附图说明】
[0034] 在附图(其不一定是按比例绘制的)中,相似的附图标记可在不同的视图中描述相 似的部件。具有不同字母后缀的相似附图标记可表示相似部件的不同示例。附图W示例而 非限制的方式大体示出了本文中所讨论的各个实施例。
[00巧]图1为通常并行方式实现的解扰解扩原理框图;
[0036] 图2为本发明实施例的一种解扰解扩的方法实现流程图;
[0037] 图3为本发明实施例所述multInj指令的原理框图;
[0038] 图4为本发明实施例所述macInj指令的原理框图;
[0039] 图5为本发明实施例图2所述的对矢量寄存器堆中读出的每行相乘所得的数据的 累加方法实现流程图;
[0040] 图6为本发明实施例所述SXU指令的原理框图;
[0041] 图7为本发明实施例图2所述的对矢量寄存器堆中读出的每行相乘所得的数据的 累加另一种方法实现流程图;
[0042] 图8为本发明实施例所述S
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1