0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于FPGA实现PN序列发生器的设计

FPGA设计论坛 2022-12-20 17:05 次阅读

近年来,扩频通信技术在移动通信、个人通信、室内无线通信以及卫星通信中得到越来越广泛的应用。对于DS-CDMA(Direct Sequence-Code Division MulTIple Access,直接序列-码分多址)移动通信系统,因其具有较好的抗干扰性能而成为军事通信、民用通信以及宇宙通信的一种重要的通信体制。扩频通信的一项关键技术是扩频信号的设计,以及对它的捕捉和跟踪。在DS-CDMA移动通信中,也正是利用扩频码来实现用户多址,从而使多用户能同时共享同一频带进行通信。

在扩频通信中,通常在伪随机序列(Pseudo-random Noise,PN)的基础上产生扩频码。然而,扩频码(PN序列)的生成一直是通信工程师最关心的问题之一。随着FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)技术的发展,很多人采用FPGA来实现PN序列发生器。通常情况下应用FPGA来实现PN码生成器所采用的方法是利用触发器及逻辑门来组成线性反馈移位寄存器,从而产生所需的PN序列。然而这种方法会占用大量的触发器资源,不利于缩小芯片面积及制造成本。SRL16 E是Xilinx公司Virtex II等系列FPGA的Slice中的基本单元,应用它来实现PN码生成器可以大大降低FPGA中专用触发器的使用量,从而减少FPGA片上面积的占用。

基本原理

PN码生成器的核心是LFSR(LinearFeedback Shift Regisiter,线性反馈移位寄存器),LFSR序列共有(2N-1)种状态(其中N为LFSR中寄存器的个数),寄存器中的数据在每个触发时钟周期右移一位。反馈由预先确定的寄存器引出,共同经过异或逻辑后,加到LFSR的左端。通常寄存器的个数越多生成的PN序列的长度就越长,其中生成的最长的序列成为M序列。

要实现LFSR序列的填充,需要在LFSR的反馈路径中加入一个多路复用器,利用这个多路复用器将实现期望的状态加载进去。需要注意的是在用一个特定的序列来填充时必须事先知道合适新填充的第一位从LFSR中输出。新的填充序列必须在相同的时钟周期内加载到LFSR中,并且新序列的第一位必须在并行加载完成后的第一个时钟周期被移出。如图1所示PN码生成器的原理图,共有17种寄存状态。下面来看并行加载是如何实现的。如果一个并行加载发生在T=0时钟周期,那么在T=17时钟周期时,通过fillsel指示反馈加入。这时,移位寄存器包含反馈加入前的长度为17位原序列,这17位的原序列在反馈加入时并未受影响。在接下来的17个时钟周期(即从T=17到T=0),原序列被移出,新的序列被移出,在T=0周期,新的序列移入完毕,反馈路径被断开,并在下一个时钟周期开始驱动新序列的第一位。这样,就如同新序列在一个单个的时钟周期T=0被并行加载一样。

cf85ec46-8044-11ed-8abf-dac502259ad0.png

图1 PN码生成器的原理图

PN码生成器的实现

SRL16E是一种基于查找表的移位寄存器,可以非常方便地配置成多个触发器级联输出的形式,因此应用SRL16E来实现PN序列,是非常高效的,并且能够很大程度地减少FPGA资源的占用。原先SRL16E由于在配制时需要注册而被认为比ASIC(ApplicaTIon Specific Integrated Circuit,特定用途集成电路)开销更大。现在,它已成为FPGA中LUT(Look Up Table,查找表)配制模式的基本单元,可以非常方便地应用。并且这些基本单元在设计中应用得越多,那么设计所占用的专用触发器资源就越少。如图2所示为Xilinx公司Virtex II系列FPGA中的基本Slice结构示意图。

cfa0fd4c-8044-11ed-8abf-dac502259ad0.png

图2 Virtex II中的Slice结构示意图

应用SRL16E来实现LFSR时,一个Slice就可以生成一个16阶的LFSR,而用触发器来实现时,所用Slice的数量激增为16个。由此可见,应用SRL16E可以大大降低FPGA资源的占用。

假设LFSR多项式为g(x)=1+x5+x17,即图1所示的PN码生成器,则应用SRL16E来实现PN码生成器的电路图如图3所示。

cfbec1a6-8044-11ed-8abf-dac502259ad0.png

图3 SRL 16E构成PN码生成器的电路图

图4为以SRL16E为基本单元,使用ISE软件设计的PN码生成器所得到的模块图。其中输出pn_out_i对应的LFSR多项式为:

cfd714f4-8044-11ed-8abf-dac502259ad0.png

图4 PN码生成器模块图

输出pn_out_q对应的LSFR多项式为:

对于图4所示PN码生成器,我们应用ISE软件内嵌的XST(Xilinx Synthesis Technology)综合工具对其进行综合,得到的仿真波形如图5所示。

图5 PN码生成器的XST仿真波形图

根据ISE生成的综合报告可得到图4所示PN码生成器仅仅占用4个Xilinx公司Virtex II系列FPGA的基本Slice单元,可见应用SRL16E来设计PN码生成器可以非常有效地节省FPGA资源。

结论

应用SRL16E来实现PN码生成器的方法可以大大节省FPGA资源的占用量,并且由于SRL16E是被优化设计的模块,相较于传统的方法可提高所设计PN码生成器的效率。同时,SRL16E还可以用来实现滤波器、除法器以及波形发生器等,在大的系统中,例如整个CDMA系统,通过使用SRL16E可有效降低整个FPGA资源的占用量,从而使功耗及成本等得到进一步的降低。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1602

    文章

    21320

    浏览量

    593199
  • 卫星通信
    +关注

    关注

    12

    文章

    646

    浏览量

    38447
  • 无线通信
    +关注

    关注

    56

    文章

    4197

    浏览量

    142326
  • CDMA
    +关注

    关注

    1

    文章

    585

    浏览量

    117492
  • 发生器
    +关注

    关注

    3

    文章

    1291

    浏览量

    60862

原文标题:基于FPGA实现PN序列发生器的设计

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于FPGA实现PN序列发生器的设计

    Access,直接序列-码分多址)移动通信系统,因其具有较好的抗干扰性能而成为军事通信、民用通信以及宇宙通信的一种重要的通信体制。
    发表于 12-07 10:03 2316次阅读
    基于<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b><b class='flag-5'>PN</b><b class='flag-5'>序列</b><b class='flag-5'>发生器</b>的设计

    [求助]基于FPGA的伪随机码发生器的设计与实现

    我想完成三种伪随机码发生器的设计,以7级m序列发生器为例介绍,而M序列发生器只是比m序列多一个全
    发表于 04-01 10:26

    序列发生器

    连日的晴天,虽然感觉上班有些辛苦,但是还是心情好好。今天我们来介绍序列发生器序列,肯定是指有序的排列,那排在一起是什么呢? 序列信号是把一组0、1数码按一定规则顺序排列的串行信号,可
    发表于 05-07 18:31

    基于FPGA技术的Logistic映射PN序列

    发生器需要一个随机信号源和一系列的离散、量化算法及其硬件实现技术。确定性的混沌可以复制,具有长期不可预测性,且很难区分一个信号是来自于非确定性系统还是混沌系统。因此,混沌满足密码系统设计的基本原则
    发表于 07-05 07:33

    【原创】基于FPGA的M序列发生器设计

    多项式(只能被1和自身整除,类似于质数)时才能产生M序列。这里给出2阶到10阶的本原多项式1.4 FPGA实现 我们以7阶、8阶本原多项式为例设计两个M序列
    发表于 04-15 13:55

    怎么实现m序列信号发生器的设计?

    m序列信号发生器由那几部分组成?怎么实现m序列信号发生器的设计?
    发表于 05-10 06:09

    一种混沌伪随机序列发生器FPGA实现

    随着混沌理论应用于产生伪随机序列的发展,用现场可编程逻辑门阵列实现了基于TD—ERCS混沌的伪随机序列发生器.为了便于硬件实现并减少硬件占用
    发表于 10-20 16:25 52次下载

    灯光序列发生器

    灯光序列发生器
    发表于 09-22 14:14 611次阅读
    灯光<b class='flag-5'>序列</b><b class='flag-5'>发生器</b>

    节日灯光序列发生器(续)

    节日灯光序列发生器(续)
    发表于 09-22 14:22 559次阅读
    节日灯光<b class='flag-5'>序列</b><b class='flag-5'>发生器</b>(续)

    流动灯序列发生器

    流动灯序列发生器 该流动灯序列
    的头像 发表于 09-22 15:12 1542次阅读
    流动灯<b class='flag-5'>序列</b><b class='flag-5'>发生器</b>

    FPGA的伪随机序列发生器设计

    FPGA的伪随机序列发生器设计0  引言伪随机序列现已广泛应用于密码学、扩频通讯、导航、集成电路的可测性设计、现代战争中的电子对抗技术等许多重要领域。
    发表于 04-02 11:07 3353次阅读
    <b class='flag-5'>FPGA</b>的伪随机<b class='flag-5'>序列</b><b class='flag-5'>发生器</b>设计

    计数型序列信号发生器

    计数型序列信号发生器 试设计一个01100011序列发生器.
    发表于 01-12 14:02 2574次阅读

    基于TDERCS伪随机序列发生器FPGA设计与实现

    伪随机序列 (Pseudo-Random Sequence,PRS)广泛应用于密码学、扩频通信、雷达、导航等领域,其设计和分析一直是国际上的研究热点。本文是关于伪随机序列发生器FPGA
    发表于 11-01 18:45 27次下载
    基于TDERCS伪随机<b class='flag-5'>序列</b><b class='flag-5'>发生器</b>的<b class='flag-5'>FPGA</b>设计与<b class='flag-5'>实现</b>

    如何使用FPGA实现混沌跳频序列发生器

    本文根据单峰映射产生混沌序列极易被攻击的特点,采用髙维的混沌系统来设计混沌跳频序列发生器。针对n维非线性数字滤波器产生序列的周期和分布特性,我们在系统结构上作了相应的设计,并最终应用
    发表于 02-02 15:14 11次下载
    如何使用<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b>混沌跳频<b class='flag-5'>序列</b><b class='flag-5'>发生器</b>

    序列发生器是什么_序列发生器设计步骤

    序列信号是指在同步脉冲作用下循环地产生一串周期性的二进制信号,能产生这种信号的逻辑器件就称为序列信号发生器序列发生器
    发表于 02-18 14:17 9885次阅读
    <b class='flag-5'>序列</b><b class='flag-5'>发生器</b>是什么_<b class='flag-5'>序列</b><b class='flag-5'>发生器</b>设计步骤