FPGA工程应用开发综合实验报告二

基于FPGABPSK信号产生器设计

20221219

 

本次基于FPGA的计时器设计,在熟悉Quartus基本操作、Verilog编程语言的基本规则、SignalTap的基本应用,在前两次PN码序列产生器和DDS设计的基础上,通过分模块设计后进行连接的方式,完成基于FPGA的BPSK信号产生器设计。

本次设计分为PLL分频模块、自动复位模块、PN码生成模块、DDS模块以及IP核实现方式的NCO模块。

  • 实验需求分析

技术指标分析

  • 功能指标分析

PN码(Gold码)产生器模块需对传输数据进行扩频;DDS模块生成所需频率的载波信号;通过相位选择法(2选1数据选择器)来实现调制。

  • 性能指标分析

减少信息传输延迟,调制后的信号应尽量与原数据一致。

  • 系统方案设计

顶层设计

  1. 项目实现所要用到的时钟问题分析

时钟频率控制是FPGA设计的重要组成部分。通过上面功能指标分析,我们不难发现,实现BPSK的调制,我们需要三个时钟来完成我们的设计。一是我们需要一个时钟来控制我们的DDS模块来产生我们需要的频率的载波信号;二是我们需要一个时钟来控制PN码(Gold)码的产生;三是我们需要一个调制信息的时钟

  • DDS的两种实现

我们通过调用IP核和查找表法两种方法实现DDS。调用IP的好处在于设计简单,但其中的延迟为随机确定的数,在设计未完成前,我们很难确定其值为多少,而当通过查找表来实现DDS,我们能够很好的控制这个延迟,从而提升系统的性能。

  • PN码序列生成器

将两个PN码进行异或运算(模2加法)生成Gold码。

具体顶层设计文件截图:

  • 模块设计

例如:

1)PLL分频模块

         由上文中对系统时钟分析可知,我们需要250MHz  、5MHz、10KHz分别作为DDS系统钟、PN码生成器码钟和产生调制信息的码钟,如图1所示:

 图1 PLL模块

2)自动复位模块


本模块接收PLL分频后所得的250MHz时钟信号,如图2:

图2 自动复位模块

3)PN码生成器模块

本模块接收250MHz的c0和5MHz的c1,如图3:


图3 PN码生成器模块


            图5.1023位m序列产生器原理框图

如图5:为1023位m序列产生器的原理图,

{an}=c1an-1+c2an-2+……+cna0


由于m序列自相关良好但是互相关特性不好且可用于产生

                    图6:Gold序列产生原理框图

m序列的本原多项式较少,在一些要求地址码多的系统钟m序列很难满足要求,因而引入Gold码。产生Gold码序列可以将两个m序列的移位寄存器并联再进行模2加法,如图6为生成Gold码的逻辑图。图7为顶层文件的Gold码实现。

图7:生成Gold码的顶层文件

4)DDS模块


本模块接收c0和频率控制字作为输入,32位相位信息作为输出,结构如图8所示:

                                  图8:DDS模块

由DDS原理我们可知:K=f0/fc*2N

其中fc为250MHz,f0为25MHz,N为32,计算出K值约为429496730,输出相位信息后,通过查表的方式我们得到最终结果。

IP核加二选一数据选择器实现方式,如图9所示

                   9IP核加二选一数据选择器实现

.基于SignalTap分析重点时序

本次实验,我们理论上应该看到经过自己设计的DDS模块与调用IP核相比延迟更低。BPSK调制的基本流程如下:

  1. 调制信息与通过PN码发生器进行扩频,通过扩频操作可以降低我们调制信息的峰值,减少信息被检测的概率。
  2. DDS模块产生我们所需频率的载波信号,将经过扩频的调制信息通过调相的方式,01选择相反相位,即相差为pi的,从而实现BPSK的全过程。

.反思与总结

1.关于系统时钟c0250MHz)难以达到

因为我们的FPGA的默认时钟频率为50MHz,想要达到250MHz对我们开发板有一些困难,所以我们可以适当降低c0的时钟频率,比如可以选择200MHz作为系统时钟。

2.总结反思

本次基于FPGA的BPSK设计实验,从了解PN码这种扩频通信的理念,到通过查找表的方式,实现直接数字频率合成技术,得到我们所需频率的载波信号,到最后通过调相的方式,将我们的信号调制到载波信号钟,从而实现BPSK。进一步熟悉了FPGA开发的整体流程以及模块化的复用思想,了解数字通信调制信息的过程。

.参考文献

<实验指导书>实验五_基于FPGA PN码序列产生器设计

<实验指导书>实验六_基于FPGA的DDS设计

<实验指导书>实验七_基于FPGA的BPSK信号产生器设计

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇