CN103677743A - 一种基于fpga的pn序列并行产生方法和装置 - Google Patents
一种基于fpga的pn序列并行产生方法和装置 Download PDFInfo
- Publication number
- CN103677743A CN103677743A CN201310594493.1A CN201310594493A CN103677743A CN 103677743 A CN103677743 A CN 103677743A CN 201310594493 A CN201310594493 A CN 201310594493A CN 103677743 A CN103677743 A CN 103677743A
- Authority
- CN
- China
- Prior art keywords
- sequence
- parallelism
- degree
- parallel
- 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.)
- Granted
Links
Images
Landscapes
- Logic Circuits (AREA)
Abstract
一种基于FPGA的PN序列并行产生方法,包括根据输入的PN序列并行度、PN序列级数以及数据时钟产生PN序列并行计算使能信号、计算并行度以及累加次数;根据输入的PN序列本原多项式信号和该PN序列级数、该计算并行度计算PN序列并行反馈系数,并在计算完成后输出计算完成指示信号和PN序列并行反馈系数;根据输入的PN序列初始相位信号、该PN序列并行反馈系数和计算完成指示信号、及PN序列并行计算使能信号完成PN序列的并行计算,并输出并行PN序列;根据累加次数和输入的数据时钟对并行PN序列进行并行度的转换,得到并行度等于输入的所述PN序列并行度的并行PN序列。本发明还公开了一种基于FPGA的PN序列并行产生装置。
Description
技术领域
本发明属于数字信息传输技术领域,具体地,涉及一种基于FPGA(现场可编程门阵列)的PN序列并行产生方法和装置。
背景技术
在通信技术中,伪随机PN序列所具有的二值自相关特性和良好的互相关特性,在数据调制、数据加扰、序列扩频等领域得到了广泛应用。
一般来说,常用的PN序列为线性反馈移位寄存器序列,如m序列。因而都可由移位寄存器通过抽头异或运算反馈方式产生。由于移位寄存器的工作方式,通常得到串行输出的PN序列,在对输出序列速率要求较低时,可直接由N级移位寄存器产生周期为2N-1的PN序列。当速率要求较高时,由于受FPGA工作时钟的限制,需要并行产生PN序列。在多种基于FPGA的高速调制解调装置中,需要以并行方式产生高速PN序列,并要求实时(系统不停止)可配置PN序列的本原多项式和初始相位。
为此,本领域技术人员亟需解决的问题是提供一种基于PFGA的PN序列并行产生方法和装置。
发明内容
有鉴于此,本发明的目的在于提供一种基于FPGA的PN序列并行产生方法和装置,以便能够实时配置PN序列本原多项式和初始相位,并可以并行方式产生高速PN序列。
本发明解决上述技术问题的技术方案包括:
根据本发明的一个方面,其提供了一种基于FPGA的PN序列并行产生方法,包括以下步骤:
S1.根据外部输入的PN序列并行度、PN序列级数以及数据时钟产生PN序列并行计算使能信号、计算并行度以及累加次数;
S2.根据外部输入的PN序列本原多项式信号和所述PN序列级数、以及所述计算并行度计算PN序列并行反馈系数,并在计算完成后输出计算完成指示信号和计算得到的PN序列并行反馈系数;
S3.根据外部输入的PN序列初始相位信号、所述PN序列并行反馈系数和所述计算完成指示信号、以及所述PN序列并行计算使能信号完成PN序列的并行计算,并输出计算得到的并行PN序列;以及
S4.根据所述累加次数和外部输入的所述数据时钟对所述并行PN序列进行并行度的转换,以得到并行度等于外部输入的所述PN序列并行度的并行PN序列。
优选地,所述步骤S1包括:比较外部输入的所述PN序列并行度和所述PN序列级数的大小;如果所述PN序列并行度等于或大于所述PN序列级数,则所述计算并行度的值等于所述PN序列并行度,累加次数为1,每个数据时钟周期产生一次PN序列并行计算使能信号;如果所述PN序列并行度小于所述PN序列级数,则对所述PN序列并行度进行累加,每累加一次,所述累加次数的值加1,直至累加后的PN序列并行度等于或大于所述PN序列级数为止,此时输出累加次数并产生一次PN序列并行计算使能信号,此后每计满累加次数即产生一次PN序列并行计算使能信号,并且所述计算并行度的值等于所述累加后的PN序列并行度;以及输出所述PN序列并行计算使能信号、计算并行度以及累加次数。
优选地,所述步骤S2包括:判断所述PN序列本原多项式信号是否有效;如果所述PN序列本原多项式信号有效,则寄存所述PN序列本原多项式信号中携带的PN序列本原多项式,并自寄存所述PN序列本原多项式的下一个FPGA工作时钟周期开始,根据由所述PN序列本原多项式确定的反馈系数计算所述PN序列并行反馈系数,并且计算所需的FPGA工作时钟周期的数量等于所述计算并行度;如果所述PN序列本原多项式信号无效,则不做处理;以及输出计算完成指示信号和计算得到的PN序列并行反馈系数。
优选地,所述步骤S3包括:判断所述计算完成指示信号和所述PN序列并行计算使能信号是否有效;当所述计算完成指示信号和所述PN序列并行计算使能信号有效时,接受所述PN序列并行计算使能信号,否则,不接受所述PN序列并行计算使能信号;判断所述PN序列初始相位信号是否有效;如果所述PN序列初始相位信号有效,则寄存所述PN序列初始相位信号中携带的PN序列初始相位,在所述PN序列并行计算使能信号有效时根据所述PN序列初始相位计算寄存器的反馈值并同时更新所述寄存器的存储状态;如果所述PN序列初始相位信号无效,则在所述PN序列并行计算使能信号有效时根据所述寄存器的当前状态计算所述寄存器的反馈值并同时更新其存储状态;以及输出计算得到的并行PN序列。
根据本发明的另一方面,其提供了一种基于FPGA的PN序列并行产生装置,包括:
PN序列计算使能产生模块,设置成根据外部输入的PN序列并行度、PN序列级数以及数据时钟产生PN序列并行计算使能信号、计算并行度以及累加次数;
PN序列并行反馈系数计算模块,设置成根据外部输入的PN序列本原多项式信号和所述PN序列级数、以及来自所述PN序列计算使能产生模块的所述计算并行度计算PN序列并行反馈系数,并在计算完成后输出计算完成指示信号和计算得到的PN序列并行反馈系数;
PN序列并行计算模块,设置成根据外部输入的PN序列初始相位信号、来自所述PN序列并行反馈系数计算模块的所述PN序列并行反馈系数和所述计算完成指示信号、以及来自所述PN序列计算使能产生模块的所述PN序列并行计算使能信号完成PN序列的并行计算,并输出计算得到的并行PN序列;以及
PN序列并行度转换模块,设置成根据所述累加次数和外部输入的所述数据时钟对来自所述PN序列并行计算模块的所述并行PN序列进行并行度的转换,以得到并行度等于外部输入的所述PN序列并行度的并行PN序列。
优选地,PN序列计算使能产生模块包括:第一比较单元,用于比较外部输入的所述PN序列并行度和所述PN序列级数的大小,并输出比较结果;第一执行单元,接收来自所述第一比较单元的比较结果,如果所述PN序列并行度等于或大于所述PN序列级数时,使所述计算并行度等于所述PN序列并行度,并且累加次数为1,每个数据时钟周期产生一次PN序列并行计算使能信号;如果所述PN序列并行度小于所述PN序列级数,则对所述PN序列并行度进行累加,每累加一次,所述累加次数的值加1,直至累加后的PN序列并行度等于或大于所述PN序列级数为止,并产生一次PN序列并行计算使能信号,在此后每计满累加次数时即产生一次PN序列并行计算使能信号,使所述计算并行度等于所述累加后的PN序列并行度;以及第一输出单元,用于输出所述PN序列并行计算使能信号、计算并行度以及累加次数。
优选地,所述PN序列并行反馈系数计算模块包括:第二判断单元,用于判断所述PN序列本原多项式信号是否有效,并输出判断结果;第二执行单元,接收来自所述第二判断单元的判断结果,如果所述PN序列本原多项式信号有效时,寄存所述PN序列本原多项式信号中携带的PN序列本原多项式,并自寄存所述PN序列本原多项式的下一个FPGA工作时钟周期开始,根据由所述PN序列本原多项式确定的反馈系数计算所述PN序列并行反馈系数,并且计算所需的FPGA工作时钟周期的数量等于所述计算并行度;如果所述PN序列本原多项式信号无效,则不执行任何操作;以及第二输出单元,用于输出计算完成指示信号和计算得到的PN序列并行反馈系数。
优选地,所述PN序列并行计算模块包括:第三判断单元,用于判断所述计算完成指示信号和所述PN序列并行计算使能信号是否有效,并输出判断结果;第三执行单元,接收来自所述第三判断单元的判断结果,如果所述计算完成指示信号和所述PN序列并行计算使能信号有效,则接受所述PN序列并行计算使能信号;否则,不做处理;第四判断单元,用于判断所述PN序列初始相位信号是否有效,并输出判断结果;第四执行单元,接收来自所述第四判断单元的判断结果,如果所述PN序列初始相位信号有效时,寄存所述PN序列初始相位信号中携带的PN序列初始相位,在所述PN序列并行计算使能信号有效时根据所述PN序列初始相位计算寄存器的反馈值并同时更新所述寄存器的存储状态;如果所述PN序列初始相位信号无效,则在所述PN序列并行计算使能信号有效时根据所述寄存器的当前状态计算所述寄存器的反馈值并同时更新其存储状态;以及
第三输出单元,用于输出计算得到的并行PN序列。
根据本发明的基于FPGA的PN序列并行产生方法和装置具有有益的技术效果,包括:
1.相比较于现有技术,在根据本发明的PN序列并行产生装置中设置有PN序列并行反馈系数计算模块,在每次加载PN序列本原多项式信号有效时,能够实时地计算PN序列并行反馈系数。因而实现了可实时配置PN序列本原多项式的功能。
2.根据本发明的PN序列并行产生装置和方法能够实现任意并行度的PN序列并行输出,具有广泛的适应性。
附图说明
图1为根据本发明的基于FPGA的PN序列并行产生装置的结构示意图;
图2为根据本发明的PN序列并行反馈系数计算模块的计算流程图;
图3为8级移位寄存器的示意图;以及
图4为8级PN序列8路并行产生的示意图。
具体实施方式
在下面的描述中通过实例阐述了相关实施细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,对于本领域的技术人员来说,在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
下面将结合图1-图4,一并描述根据本发明的基于FPGA的PN序列并行产生方法和装置。
请参考图1,图1为根据本发明的基于FPGA的PN序列并行产生装置的结构示意图,由图1可知,根据本发明的基于FPGA的PN序列并行产生装置包括PN序列计算使能产生模块、PN序列并行反馈系数计算模块、PN序列并行计算模块、以及PN序列并行度转换模块。其中:
PN序列计算使能产生模块根据外部输入的PN序列并行度、PN序列级数以及数据时钟产生PN序列并行计算使能信号、计算并行度以及累加次数。其中,PN序列并行计算使能信号用来控制PN序列并行计算模块的并行计算速率,计算并行度用来确定PN序列并行反馈系数计算模块的计算次数,累加次数用来表示PN序列计算使能产生模块产生一次PN序列并行计算使能信号的计数值。当FPGA实现时,首先判断输入的PN序列并行度和PN序列级数的大小,如果PN序列并行度大于或等于PN序列级数,则计算并行度的取值与输入PN序列并行度相同,且每个数据时钟周期产生一次PN序列并行计算使能信号;如果输入的PN序列并行度小于PN序列级数,则对输入的PN序列级数进行累加,并记录累加次数,直至累加后的PN序列并行度等于或大于输入的PN序列级数时停止,此时输出累加次数k并产生一次PN序列并行计算使能信号,并在此后每计满累加次数时即产生一次PN序列并行计算使能信号,然后,对应所输入的PN序列并行度和PN序列级数的大小的不同情况,输出相应的PN序列并行计算使能信号、计算并行度以及累加次数。
具体地,假设外部输入的PN序列并行度的数值为M’、PN序列级数的值为N,M为由PN序列计算使能产生模块产生的计算并行度的值,k为累加次数。当接收到外部输入的PN序列并行度M’、PN序列级数N以及数据时钟时,PN序列计算使能产生模块根据该输入的数据时钟进行计数,当计数值为k时产生一次PN序列并行计算使能信号。其中,k的值因输入的M’和N的值的不同而不同。当M’大于或等于N,则k取1,即PN序列计算使能产生模块每个数据时钟周期产生一次PN序列并行计算使能信号,并且所产生的计算并行度M等于M’;当M’小于N时,则根据输入的数据时钟对M’进行累加,当累加后的M’大于或等于N时,输出一次PN序列并行计算使能信号,并取累加后的M’作为计算并行度M,k取使得k×M’为大于等于N的最小整数,
为此,根据本发明的PN序列计算使能产生模块进一步设置成包括第一判断单元、第一执行单元以及第一输出单元。其中,第一判断单元用于在收到外部输入的PN序列并行度、PN序列级数以及数据时钟时,判断PN序列并行度和PN序列级数的大小,并将判断结果输出给第一执行单元。第一执行单元根据收到的判断结果进行相应的处理,即,如上所述,根据PN序列并行度和PN序列级数的大小的不同情况而产生相应的PN序列并行计算使能信号、计算并行度以及累加次数。第一输出单元用于将第一执行单元产生的PN序列并行计算使能信号、计算并行度以及累加次数输出给PN序列并行反馈系数计算模块。
PN序列并行反馈系数计算模块接收外部输入的PN序列本原多项式信号和PN序列级数(该PN序列级数与输入给PN序列计算使能产生模块的相同,用来确定寄存PN序列本原多项式的寄存器的位宽)、以及由PN序列计算使能产生模块产生的计算并行度,据以计算PN序列并行反馈系数,并在计算完成后输出计算完成指示信号和计算得到的PN序列并行反馈系数。
具体地,当PN序列并行反馈系数计算模块收到外部输入的PN序列本原多项式信号时,首先判断该PN序列本原多项式信号是否有效(加载PN序列本原多项式信号为高电平,则PN序列本原多项式信号有效,为低电平则无效)。如果有效,则寄存该PN序列本原多项式信号中携带的PN序列本原多项式,根据PN序列计算使能产生模块输出的计算并行度计算PN序列并行反馈系数,并在计算完成后输出计算完成指示信号和计算得到的PN序列并行反馈系数。在这里,如在前面的实例中,由PN序列计算使能产生模块输出的计算并行度为M,则在寄存PN序列本原多项式之后的第1至M个FPGA工作时钟周期中计算PN序列并行反馈系数(即,自接受PN序列本原多项式的下一个FPGA工作时钟周期开始计算PN序列并行反馈系数,并在第M个FPGA工作时钟周期,计算完成)。
其中,PN序列并行反馈系数计算模块的每个FPGA工作时钟周期的计算按以下步骤进行:
(1)根据由输入的PN序列本原多项式确定第M-1个寄存器的反馈系数P0;
(2)将反馈系数P0左移一位,最低位移入0,得到P;若移出位为0,将P复制给P1;若移出位为1,则将移位后的反馈系数P与P0按位异或得到P1,则P1即为第M-2个寄存器的反馈系数;
(3)将反馈系数P1左移一位,同上所述,根据其移出位确定P2,作为第M-3个寄存器的反馈系数,如此进行,直至所有M个寄存器所需的反馈系数计算完成。
在完成上述计算之后,将计算完成指示信号及PN序列并行反馈系数输出给PN序列并行计算模块。
为此,根据本发明的PN序列并行反馈系数计算模块包括第二判断单元、第二执行单元以及第二输出单元。其中,第二判断单元用于在收到外部加载的PN序列本原多项式信号时,判断该信号是否有效,并将判断结果输出给第二执行单元。第二执行单元根据收到的判断结果执行以下操作:如果PN序列本原多项式信号有效,则寄存该PN序列本原多项式信号中携带的PN序列本原多项式,并自寄存PN序列本原多项式的下一个FPGA工作时钟周期开始,根据由该PN序列本原多项式确定的反馈系数计算PN序列并行反馈系数,并且计算所需的FPGA工作时钟周期的数量等于由前述PN序列计算使能产生模块输出的计算并行度;如果PN序列本原多项式信号无效,则不执行任何操作,即,第二执行单元仅在收到PN序列本原多项式信号有效的判断结果时才会执行上述操作。第二输出单元用于输出第二执行单元产生的计算完成指示信号和计算得到的PN序列并行反馈系数。
PN序列并行计算模块设置成根据外部输入的PN序列初始相位信号、PN序列并行反馈系数计算模块输出的PN序列并行反馈系数和计算完成指示信号、以及PN序列计算使能产生模块输出的PN序列并行计算使能信号完成PN序列的并行计算,并输出计算得到的并行PN序列。
具体地,当收到计算完成指示信号和PN序列并行计算使能信号时,PN序列并行计算模块首先判断该计算完成指示信号和PN序列并行计算使能信号是否有效,如果两个信号均有效,则接受该PN序列计算使能信号;否则,不做任何处理。接着判断外部加载的PN序列初始相位信号是否有效(加载PN序列初始相位信号为高电平,则PN序列初始相位信号有效,为低电平则无效),如果有效,则根据该PN序列初始相位信号中携带的PN序列初始相位开始计算寄存器(寄存器的数量等于由PN序列计算使能产生模块产生的计算并行度的值,接续上面的示例,即为M个)的反馈值并同时更新这些寄存器的存储状态;如果加载的PN序列初始相位信号无效,则以这些寄存器的当前状态开始计算这些寄存器的反馈值并同时更新其存储状态。之后,输出PN序列的M个比特给PN序列并行度转换模块。
为此,根据本发明的PN序列并行计算模块包括第三判断单元、第三执行单元、第四判断单元、第四执行单元以及第三输出单元。其中,第三判断单元用于判断所述计算完成指示信号和所述PN序列并行计算使能信号是否有效,并将判断结果输出给第三执行单元。第三执行单元根据第三判断单元的判断结果进行以下处理:如果该计算完成指示信号和PN序列并行计算使能信号均有效,则接受该PN序列并行计算使能信号;否则,不做任何处理。第四判断单元用于判断外部加载的PN序列初始相位信号是否有效,并将判断结果输出给第四执行单元。第四执行单元接收来自第四判断单元的判断结果,并据以进行以下处理:如果该PN序列初始相位信号有效,则寄存该PN序列初始相位信号中携带的PN序列初始相位,在PN序列并行计算使能信号有效时根据该PN序列初始相位计算寄存器的反馈值并同时更新寄存器的存储状态;如果该PN序列初始相位信号无效,则在PN序列并行计算使能信号有效时根据寄存器的当前状态计算寄存器的反馈值并同时更新其存储状态。第三输出单元用于输出计算得到的并行PN序列。
PN序列并行度转换模块根据外部输入的PN序列并行度和数据时钟(与输入给PN序列计算使能产生模块的相同)、以及由PN序列计算使能产生模块输出的累加次数,将来自PN序列并行计算模块的PN序列(其并行度在数值上等于由PN序列计算使能产生模块产生的计算并行度)转换为并行度等于外部输入的所述PN序列并行度(即M’)的PN序列输出。输出速率与输入的数据时钟一致,即每个数据时钟周期输出PN序列的M’个比特。
具体地,接续上面的示例,当收到外部输入的PN序列并行度M’和数据时钟、以及累加次数k时,PN序列并行度转换模块根据该累加次数k设置一个计数器,在PN序列并行计算模块每次输出数据时,按输入的数据时钟开始从1到k进行计数,在每个计数值时输出M’比特。从而将并行度为M的PN序列转换为并行度为M’的PN序列输出。其输出速率与输入的数据时钟一致,即每个数据时钟输出PN序列的M’个比特。
图2示出了根据本发明的PN序列并行反馈系数计算模块的计算流程,如图2所示,若以计算并行度为32的8级移位寄存器产生的PN序列为例,定义32个变量如reg[7:0]vec[31:0],在加载PN序列本原多项式信号有效时(为1时),将由PN序列本原多项式确定的反馈关系寄存为初始反馈系数vec[0],则其余反馈系数按如下方式计算:
若当前反馈系数为vec[j],则下一个反馈系数
vec[j+1]=vec[j][7]?(vec[j]<<1’b1^vec[0]):(vec[j]<<1’b1),
其中,j=0,1,2......30。
由此计算出32个PN序列并行反馈系数vec[0]-vec[31],即可获得32级m序列的并行计算方式,表述为PN[31-j]=^(PN&vec[j]),其中j=0,1,2......31。
由上面的描述可知,根据本发明的基于FPGA的PN序列并行产生方法,包括以下步骤:
S1.根据外部输入的PN序列并行度、PN序列级数以及数据时钟产生PN序列并行计算使能信号、计算并行度以及累加次数;
S2.根据外部输入的PN序列本原多项式信号和PN序列级数、以及计算并行度计算PN序列并行反馈系数,并在计算完成后输出计算完成指示信号和计算得到的PN序列并行反馈系数;
S3.根据外部输入的PN序列初始相位信号、PN序列并行反馈系数和计算完成指示信号、以及PN序列并行计算使能信号完成PN序列的并行计算,并输出计算得到的并行PN序列;以及
S4.根据累加次数和输入的数据时钟对并行PN序列进行并行度的转换,以得到并行度等于外部输入的所述PN序列并行度的并行PN序列。
其中,步骤S1包括:比较外部输入的PN序列并行度和PN序列级数的大小;如果PN序列并行度等于或大于PN序列级数,则计算并行度的值等于PN序列并行度,累加次数为1,每个数据时钟周期产生一次PN序列并行计算使能信号;如果PN序列并行度小于PN序列级数,则对PN序列并行度进行累加,每累加一次,累加次数的值加1,直至累加后的PN序列并行度等于或大于PN序列级数为止,此时输出累加次数,产生一次PN序列并行计算使能信号,在此后每计满累加次数时即产生一次PN序列并行计算使能信号,并且计算并行度的值等于累加后的PN序列并行度;以及输出PN序列并行计算使能信号、计算并行度以及累加次数。
步骤S2包括:判断PN序列本原多项式信号是否有效;如果PN序列本原多项式信号有效,则寄存PN序列本原多项式信号中携带的PN序列本原多项式,并自寄存PN序列本原多项式的下一个FPGA工作时钟周期开始,根据由PN序列本原多项式确定的反馈系数计算PN序列并行反馈系数,并且计算所需的FPGA工作时钟周期的数量等于计算并行度;如果PN序列本原多项式信号无效,则不做处理;以及输出计算完成指示信号和计算得到的PN序列并行反馈系数。
步骤S3包括:判断计算完成指示信号和PN序列并行计算使能信号是否有效;当计算完成指示信号和PN序列并行计算使能信号有效时,接受PN序列并行计算使能信号,否则,不接受所述PN序列并行计算使能信号;判断PN序列初始相位信号是否有效;如果PN序列初始相位信号有效,则寄存PN序列初始相位信号中携带的PN序列初始相位,在所述PN序列并行计算使能信号有效时根据PN序列初始相位计算寄存器的反馈值并同时更新寄存器的存储状态;如果PN序列初始相位信号无效,则在所述PN序列并行计算使能信号有效时根据寄存器的当前状态计算寄存器的反馈值并同时更新其存储状态;以及输出计算得到的并行PN序列。
如图3示出了8级移位寄存器的示意图,用来帮助理解图4的并行产生方式。如图3所示,若PN序列本原多项式为435(八进制),则8级移位寄存器的反馈系数表示为100_011_101(1表示存在连线,0表示不连线),由于连接向量的第1位和第N位恒为1,产生串行PN序列时,反馈值用于更新寄存器PN[0],即有PN[0]=PN[3]+PN[4]+PN[5]+PN[7],则可以表示为PN[0]=^(PN&8’b0001_1101),其余7个寄存器的更新值分别取前一个寄存器的值,如PN[1]=PN[0],PN[2]=PN[1],......,PN[7]=PN[6]。
如图4,若要求产生并行度为8的PN序列,则每次按下列方式更新寄存器PN[0]-PN[7],每次寄存器的状态即构成8路并行PN序列输出。
则有PN[7]=PN[3]+PN[4]+PN[5]+PN[7],即
PN[7]=^(PN&8’b00011101),同理有
PN[6]=^(PN&8’b00111010),
PN[5]=^(PN&8’b01110100),
PN[4]=^(PN&8’b11101000),
PN[3]=^(PN&8’b11001101),
PN[2]=^(PN&8’b10000111),
PN[1]=^(PN&8’b00010011),
PN[0]=^(PN&8’b00100110)。
以上所述仅为本发明的优选实施例,并非用来限制本发明的保护范围。对于本领域的技术人员来说,在不付出创造性劳动的前提下,可以对本发明做出若干的修改和替换,所有这些修改和替换都应涵盖在本发明的保护范围之内。
Claims (8)
1.一种基于FPGA的PN序列并行产生方法,其特征在于,包括以下步骤:
S1.根据外部输入的PN序列并行度、PN序列级数以及数据时钟产生PN序列并行计算使能信号、计算并行度以及累加次数;
S2.根据外部输入的PN序列本原多项式信号和所述PN序列级数、以及所述计算并行度计算PN序列并行反馈系数,并在计算完成后输出计算完成指示信号和计算得到的PN序列并行反馈系数;
S3.根据外部输入的PN序列初始相位信号、所述PN序列并行反馈系数和所述计算完成指示信号、以及所述PN序列并行计算使能信号完成PN序列的并行计算,并输出计算得到的并行PN序列;以及
S4.根据所述累加次数和外部输入的所述数据时钟对所述并行PN序列进行并行度的转换,以得到并行度等于外部输入的所述PN序列并行度的并行PN序列。
2.根据权利要求1所述的方法,其特征在于,所述步骤S1包括:
比较外部输入的所述PN序列并行度和所述PN序列级数的大小;
如果所述PN序列并行度等于或大于所述PN序列级数,则所述计算并行度的值等于所述PN序列并行度,累加次数为1,每个数据时钟周期产生一次PN序列并行计算使能信号;如果所述PN序列并行度小于所述PN序列级数,则对所述PN序列并行度进行累加,每累加一次,所述累加次数的值加1,直至累加后的PN序列并行度等于或大于所述PN序列级数为止,此时输出累加次数并产生一次PN序列并行计算使能信号,此后每计满累加次数即产生一次PN序列并行计算使能信号,并且所述计算并行度的值等于所述累加后的PN序列并行度;以及
输出所述PN序列并行计算使能信号、计算并行度以及累加次数。
3.根据权利要求1所述的方法,其特征在于,所述步骤S2包括:
判断所述PN序列本原多项式信号是否有效;
如果所述PN序列本原多项式信号有效,则寄存所述PN序列本原多项式信号中携带的PN序列本原多项式,并自寄存所述PN序列本原多项式的下一个FPGA工作时钟周期开始,根据由所述PN序列本原多项式确定的反馈系数计算所述PN序列并行反馈系数,并且计算所需的FPGA工作时钟周期的数量等于所述计算并行度;如果所述PN序列本原多项式信号无效,则不做处理;以及
输出计算完成指示信号和计算得到的PN序列并行反馈系数。
4.根据权利要求1所述的方法,其特征在于,所述步骤S3包括:
判断所述计算完成指示信号和所述PN序列并行计算使能信号是否有效;
当所述计算完成指示信号和所述PN序列并行计算使能信号有效时,接受所述PN序列并行计算使能信号,否则,不接受所述PN序列并行计算使能信号;
判断所述PN序列初始相位信号是否有效;
如果所述PN序列初始相位信号有效,则寄存所述PN序列初始相位信号中携带的PN序列初始相位,在所述PN序列并行计算使能信号有效时根据所述PN序列初始相位计算寄存器的反馈值并同时更新所述寄存器的存储状态;如果所述PN序列初始相位信号无效,则在PN序列并行计算使能信号有效时根据所述寄存器的当前状态计算所述寄存器的反馈值并同时更新其存储状态;以及
输出计算得到的并行PN序列。
5.一种基于FPGA的PN序列并行产生装置,其特征在于,所述PN序列并行产生装置包括:
PN序列计算使能产生模块,设置成根据外部输入的PN序列并行度、PN序列级数以及数据时钟产生PN序列并行计算使能信号、计算并行度以及累加次数;
PN序列并行反馈系数计算模块,设置成根据外部输入的PN序列本原多项式信号和所述PN序列级数、以及来自所述PN序列计算使能产生模块的所述计算并行度计算PN序列并行反馈系数,并在计算完成后输出计算完成指示信号和计算得到的PN序列并行反馈系数;
PN序列并行计算模块,设置成根据外部输入的PN序列初始相位信号、来自所述PN序列并行反馈系数计算模块的所述PN序列并行反馈系数和所述计算完成指示信号、以及来自所述PN序列计算使能产生模块的所述PN序列并行计算使能信号完成PN序列的并行计算,并输出计算得到的并行PN序列;以及
PN序列并行度转换模块,设置成根据所述累加次数和外部输入的所述数据时钟对来自所述PN序列并行计算模块的所述并行PN序列进行并行度的转换,以得到并行度等于外部输入的所述PN序列并行度的并行PN序列。
6.根据权利要求5所述的PN序列并行产生装置,其特征在于,所述PN序列计算使能产生模块包括:
第一比较单元,用于比较外部输入的所述PN序列并行度和所述PN序列级数的大小,并输出比较结果;
第一执行单元,接收来自所述第一比较单元的比较结果,如果所述PN序列并行度等于或大于所述PN序列级数时,使所述计算并行度等于所述PN序列并行度,并且累加次数为1,每个数据时钟周期产生一次PN序列并行计算使能信号;如果所述PN序列并行度小于所述PN序列级数,则对所述PN序列并行度进行累加,每累加一次,所述累加次数的值加1,直至累加后的PN序列并行度等于或大于所述PN序列级数为止,并产生一次PN序列并行计算使能信号,在此后每计满累加次数即产生一次PN序列并行计算使能信号,使所述计算并行度等于所述累加后的PN序列并行度;以及
第一输出单元,用于输出所述PN序列并行计算使能信号、计算并行度以及累加次数。
7.根据权利要求5所述的PN序列并行产生装置,其特征在于,所述PN序列并行反馈系数计算模块包括:
第二判断单元,用于判断所述PN序列本原多项式信号是否有效,并输出判断结果;
第二执行单元,接收来自所述第二判断单元的判断结果,如果所述PN序列本原多项式信号有效时,寄存所述PN序列本原多项式信号中携带的PN序列本原多项式,并自寄存所述PN序列本原多项式的下一个FPGA工作时钟周期开始,根据由所述PN序列本原多项式确定的反馈系数计算所述PN序列并行反馈系数,并且计算所需的FPGA工作时钟周期的数量等于所述计算并行度;如果所述PN序列本原多项式信号无效,则不执行任何操作;以及
第二输出单元,用于输出计算完成指示信号和计算得到的PN序列并行反馈系数。
8.根据权利要求5所述的PN序列并行产生装置,其特征在于,所述PN序列并行计算模块包括:
第三判断单元,用于判断所述计算完成指示信号和所述PN序列并行计算使能信号是否有效,并输出判断结果;
第三执行单元,接收来自所述第三判断单元的判断结果,如果所述计算完成指示信号和所述PN序列并行计算使能信号有效,则接受所述PN序列并行计算使能信号;否则,不做处理;
第四判断单元,用于判断所述PN序列初始相位信号是否有效,并输出判断结果;
第四执行单元,接收来自所述第四判断单元的判断结果,如果所述PN序列初始相位信号有效时,寄存所述PN序列初始相位信号中携带的PN序列初始相位,在所述PN序列并行计算使能信号有效时根据所述PN序列初始相位计算寄存器的反馈值并同时更新所述寄存器的存储状态;如果所述PN序列初始相位信号无效,则在所述PN序列并行计算使能信号有效时根据所述寄存器的当前状态计算所述寄存器的反馈值并同时更新其存储状态;以及
第三输出单元,用于输出计算得到的并行PN序列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310594493.1A CN103677743B (zh) | 2013-11-22 | 2013-11-22 | 一种基于fpga的pn序列并行产生方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310594493.1A CN103677743B (zh) | 2013-11-22 | 2013-11-22 | 一种基于fpga的pn序列并行产生方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103677743A true CN103677743A (zh) | 2014-03-26 |
CN103677743B CN103677743B (zh) | 2016-08-24 |
Family
ID=50315425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310594493.1A Active CN103677743B (zh) | 2013-11-22 | 2013-11-22 | 一种基于fpga的pn序列并行产生方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103677743B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105322973A (zh) * | 2014-10-16 | 2016-02-10 | 航天恒星科技有限公司 | 一种rs码编码器及编码方法 |
CN110457008A (zh) * | 2018-05-08 | 2019-11-15 | 北京松果电子有限公司 | m序列生成方法、装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070140485A1 (en) * | 2004-02-26 | 2007-06-21 | Giovanni Ghigo | Method and circuit for generating random numbers, and computer program product therefor |
CN102111129A (zh) * | 2009-12-28 | 2011-06-29 | 北京普源精电科技有限公司 | 具有输出噪声信号功能的信号发生器和输出噪声信号的方法 |
CN102736891A (zh) * | 2011-12-22 | 2012-10-17 | 云南大学 | 一种并行可调节的伪随机序列发生器设计 |
-
2013
- 2013-11-22 CN CN201310594493.1A patent/CN103677743B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070140485A1 (en) * | 2004-02-26 | 2007-06-21 | Giovanni Ghigo | Method and circuit for generating random numbers, and computer program product therefor |
CN102111129A (zh) * | 2009-12-28 | 2011-06-29 | 北京普源精电科技有限公司 | 具有输出噪声信号功能的信号发生器和输出噪声信号的方法 |
CN102736891A (zh) * | 2011-12-22 | 2012-10-17 | 云南大学 | 一种并行可调节的伪随机序列发生器设计 |
Non-Patent Citations (2)
Title |
---|
朱东进: "基于FPGA的PN码捕获的设计及实现", 《信息化研究》 * |
李坤龙等: "基于FPGA的高速多模式PN码并行产生算法研究", 《科学技术与工程》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105322973A (zh) * | 2014-10-16 | 2016-02-10 | 航天恒星科技有限公司 | 一种rs码编码器及编码方法 |
CN110457008A (zh) * | 2018-05-08 | 2019-11-15 | 北京松果电子有限公司 | m序列生成方法、装置及存储介质 |
CN110457008B (zh) * | 2018-05-08 | 2021-08-03 | 北京小米松果电子有限公司 | m序列生成方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103677743B (zh) | 2016-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101527615A (zh) | 一种循环冗余校验crc码的实现方法和装置 | |
CN110515589A (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN102752098B (zh) | 用于通信系统的基于伪随机码序列同步的误码测量方法 | |
CN103677743A (zh) | 一种基于fpga的pn序列并行产生方法和装置 | |
CN102360281B (zh) | 用于微处理器的多功能定点乘加单元mac运算装置 | |
CN106656103B (zh) | 一种fir滤波器组及滤波方法 | |
CN103956991B (zh) | 一种基于cpu/gpu异构平台的fir滤波并行实现方法 | |
CN110413257A (zh) | 随机数产生电路 | |
CN100542029C (zh) | 伪随机序列发生装置 | |
CN111786865B (zh) | 一种数据处理方法及设备 | |
CN105388817A (zh) | 脉冲的生成方法及装置 | |
CN106301761B (zh) | 一种基于密码杂凑算法的压缩方法及装置 | |
CN108055041A (zh) | 一种数据类型转换电路单元及装置 | |
CN101556829A (zh) | 线性反馈移位寄存器模块及产生输出流的方法 | |
CN106385311B (zh) | 一种基于fpga的复混沌简化系统的混沌信号发生器 | |
CN101277091B (zh) | 高压变频器的传感器信号反馈装置 | |
CN109885515A (zh) | 一种位宽变换的实现方法及系统 | |
CN115268839A (zh) | 一种以2为基的蒙哥马利模乘方法及装置 | |
CN113432666A (zh) | 基于电水折算系数动态测算的农用地下水开采量测量方法 | |
CN101894095B (zh) | 快速哈达玛变换装置及方法 | |
CN102208973B (zh) | 一种数据流传输的方法和装置 | |
Jiang et al. | Asynchronous computation with molecular reactions | |
CN102741805B (zh) | 使用一个乘法器实现复数乘法的方法和装置 | |
CN104794002A (zh) | 一种基于特定资源的多路并行划分方法及其硬件架构 | |
CN103577151A (zh) | 一种多路伪随机序列产生芯片 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |