.. . .. . .
38处翻转,才能消除毛刺。
(九)系统综合
1、模块构成
整个系统包括倍频模块,分频模块,伪码发生器模块,调制模块,解调模块,移位输出模块,并加入了部分实验步骤的模块,例如8kb/s的伪码发生模块,29分频器以及16进制计数器模块。 2、总体电路图
3、模块分析
pll模块之后的模块,包括分频与调制解调最后到输出等模块已经介绍这里分析一下pll模块以及任意分频模块(图中的freq_any模块)。
实验板多采用50MHz的晶振,要直接产生576kb/s的基带频率及其16倍频、64倍频,很难保证分频的精度。这时候提高分频的输入时钟就是关键的一步。本实验先将50MHz的晶振时钟4倍频,得到200MHz的输出时钟,然后根据如下算法得出各个模块所需要的时钟。
参照频率合成的方法,假定基准频率为200Mhz,计数器为32位计数器,N?2,K
32S. . . . . ..
.. . .. . .
为频率控制字
fc?K200?106?Kfo??(Hz)N232
fo?Nfo?232K??fc200?106
我们规定,对Cnt进行对半50%拆分,具体如下:
当
cnt?N2的时候,fo?0,即低电平; N2的时候,fo=1,即高电平。
当
cnt?通过这个方式得出步进值K,可以算出基带频率的64倍频,但是占空比不是50%。
4、系统仿真波形图
图(1)
S. . . . . ..
.. . .. . .
图(2)
5、实验的分析与说明
clkin为50MHz输入时钟,clk为晶振时钟4倍频后200MHz输出;clk_256,clk_16,clk_576为36.864MHz,18.432MHz,576kHz。ph_out为中频调制输出,iq_mo为伪码序列的I/Q调制,iq则为从已调制的中频信号初步解调出的I/Q两路信号。iq_de为直接的I/Q解调输出,data_out原始伪码信号序列,dat_out为中频解调输出。
对分频步骤而言,先产生基带的64倍频,并以此为基准,然后进行2分频,4分频,然后是64分频,最终得到的基带频率,约为576.37kHz,但无法精确的576kHz的时钟。如果想要得到更精确的时钟,需要继续倍频,而对于所采用的ep2c8c208器件而言,只能倍频到250MHz,精度提升有限。
由图中可以看出,直接I/Q解调与中频解调输出,与原序列都仅仅有延迟差别而已,所以该调制解调系统工作正常,从实验结果来看,系统实现了预期的目的。
六 技术分析及总结
本次实验是基于FPGA实现的,使用verilog语言编写这7个模块并使用quartus 仿真软件来对其仿真。从实验结果来看均实现了预期的目的,达到了实验的目的,符合各项技术指标。
本次实验过程中碰到了许多问题和难点,一方面quartus平台的限制以及对modelsim平台的不熟悉,另一方面在实验参数的选取与实现方面,都给我带来了许多障碍。
考虑到quartus ii在高精度仿真下的不稳定性,本实验采用quartus ii与modelsim联合仿真,取得了很好的效果,但是quartus ii平台直接调用modelsim却比较复杂,包括路径设置复杂,alter仿真库的的载入比较繁琐,无法直接支持alt_pll文件的编译等等一系列问题,都严重影响了实验的进度。
在参数选取方面,如何选择时钟,如何提高精度,都是要考虑的问题,选择不好不仅会造成资源浪费,还会影响系统功能的实现。而实验过程中,竞争冒险带来的毛刺也是比较棘手的问题,通过查找资料,知道适当的延时可以在一定程
S. . . . . ..
.. . .. . .
度上消除毛刺。在中频调制部分,利用D触发器工作原理,可以让载波生成部分所需要的输入时钟减少一半,提高精度也减少资源的浪费,而解调部分采样时钟的占空比可以不固定,但是一定要每个周期采样够4个点。
本实验的最难的一点是如何通过分频实现精度较高的时钟,假如基准时钟与目标时钟相差很远,那么精度就会更高,或者基准频率与目标频率成倍数关系,那么就可以直接通过奇数或偶数分频直接实现。对于本实验所需的576kb/s的基带频率,它与基准频率并不是倍数关系,需要通过先倍频后分频的步骤提高精度。如果能继续提高器件的倍频上限,就能使基带频率更加接近实验所要求的频率,因而精度更高。
通过本次实验使我对VHDL语言有了更加具体深刻的体会,让我对它有了进一步的认识,也使我对quartus ii,modelsim这两个开发平台有进一步的了解。
S. . . . . ..