实验一 伪随机码发生器实验
一、实验目的
1、 掌握伪随机码的特性。
2、 掌握不同周期伪随机码设计。
3、 用基本元件库和74LS系列元件库设计伪随机码。
4、 了解ALTERA公司大规模可编程逻辑器件EPM7128SLC84内部结构和应用。
5、 学习FPGA开发软件MAXPLUSⅡ,学习开发系统软件中的各种元件库应用。
6、 熟悉通信原理实验板的结构。
二、实验仪器
1、 计算机 一台
2、 通信基础实验箱 一台
3、 100MHz 示波器 一台
三、实验原理
伪随机码是数字通信中重要信码之一,常作为数字通信中的基带信号源;扰码;误码测试;扩频通信;保密通信等领域。
伪随机码的特性包括四个方面:
1、 由n 级移位寄存器产生的伪随机序列,其周期为-1; n 2
2、 信码中“0”、“1” 出现次数大致相等,“1”码只比“0”码多一个;
3、 在周期内共有-1游程,长度为 i 的游程出现次数比长度为 i+1的 游程出现
次数多一倍;
n 24、 具有类似白噪声的自相关函数,其自相关函数为:
()()
⎩⎨
⎧
−≤≤=−−=2
210
12/11n n
τττρ
其中n 是伪随机序列的寄存器级数。
例如:四级伪码产生的本原多项式为X 4+X 3+1。
利用这个本原多项式构成的4级伪随机序列发生器产生的序列为:
1 1 1 1 0 0 0 1 0 0 1 1 0 1 0
相应的波形图如图1-1所示:
图1-1 四级伪随机序列波形图
用4个D 触发器和一个异或门构成的伪码发生器具有以下特性: 1、 周期为24-1=15;
2、 在周期内“0”出现24 -1-1=7次,“1”出现24 -1=8次;
3、 周期内共有24 -1 =8个游程;
4、 具有双值自相关特性,其自相关系数为:
⎩⎨⎧−≤≤−−==2
21)12(10
14
4τ / τ ρ(τ)
四、实验内容及步骤
1、在MAXPLUSⅡ设计平台下进行电路设计 1.1 四级伪随机码发生器电路设计
电路原理图如图1-2所示。
图1-2 四级伪随机码电路原理图
在MAXPLUS II 环境下输入上述电路,其中: dff ------ 单D触发器 xor ------ 二输入异或门 nor4 ------ 四输入或非门 not ------ 反相器
clk ------ 时钟输入引脚(16M时钟输入) 8M ------ 二分频输出测试点引脚 nrz ------ 伪随机码输出引脚 1.2 实验电路编译及FPGA 引脚定义
完成原理图输入后按以下步骤进行编译:
(1) 在Assign Device 菜单选择器件MAX7128SLC84。
(2)在Assign/Globl project device option菜单中选择 Enable JTAG
Support。
(3)第一次编译时一般采用让MaxplusII自动进行引脚分配。
注意,编译前
一定要确保所编译的文件是一个工程。
具体做法是:在菜单
File/Project下点击Set Project to Current File。
(4)编译后进行引脚回注,在Assign/Back-Annotate Projetc菜单中选择
Chip,Pin&Device,经过引脚回注后电路图上会显示自动分配的引脚
号。
(5)按照实验板所要求的输入时钟引脚和输出测试引脚号,进行引脚修
改,修改后必须编译,所做的修改才会生效。
引脚修改方法如下:双
击clk时钟输入引脚元件中的回注引脚号,MAXPLUS II会弹出一对话
框,可方便进行修改。
如图1-3所示。
图1-3 引脚修改界面
将电路图中所有引脚修改成实验板要求的引脚,然后再次进行编译。
要求的引脚配置如下:
CLK 83 脚 (CLK输入频率为16.9M,或经过2分频率后为8.46M)
8M 37 脚 (8M时钟输出)
NRZ 39 脚 (NRZ称不归零码,这时码率为8.46Mb/s)
NNRZ 40 脚 (反相输出)
1.3 在MAXPLUSⅡ环境下完成电路的仿真
(1)在MAX+plu sⅡ菜单下选择Waveform Editor,出现一波形编辑窗口。
波形编辑窗
口
(2)在Node菜单下选择Enter nodes from SNF,点击List,加入要仿真的所
有节点。
加入仿真节点
(3)加入时钟激励:在Option菜单下选Grid Size,出现对话框后键入相应
的纳秒(ns)数,例如10ns(对应周期为20ns,即50M)。
在File菜单下选End Time,键入仿真时间,例如10us。
选择输入时
钟信号clk 选择此图标
给时钟赋值
(4)在MUXPLU SⅡ菜单下选Simulator,出现仿真对话框后,点击
Start,开始仿真。
注意:进行仿真前一定要先保存。
得到的仿真波形和理论结果是一致的。
2、实验板设置
在进行不同实验时,首先要对实验板上硬件进行简单设置,以符合各种信号输入和各种实验结果测试要求。
(见跳线和开关设置表)
硬件实验步骤为:接通晶体振荡器电源----》将16.9M时钟连接到FPGA全局时钟脚----》将实验电路配置到FPGA芯片中----》进行实验测量。
实验原理图如图1-4所示:
FPGA内部T16 T17 T15
T8
FPGA83脚
图1-4 实验原理图
(1)接通SW_6(用短路块),晶体振荡器X1产生16.9344M时钟信号,T8为
该时钟频率的测试点。
(2)将拨动开关“K2”的“1”脚置“ON”,将16.9344Mc时钟信号送到了
FPGA第83脚(全局时钟脚)。
(3)将8.5V直流电源插入实验板PJ1接口,打开总开关K1,检查指示灯P1、
P2、P3是否亮,即电源工作正常。
实验板跳线和开关设置表:
3、将实验电路nrz.pof文件配置到FPGA芯片
(1) 将BYTBLASTER一端连接到计算机并行口,另一端连接到实验板BYTBLASTER口。
(2) 打开电源开关K1,注意SW_13为FPGA电源跳线,应接通。
(3) 在MAXPLUSⅡ菜单下选Programmer然后按Program开始下载。
4、实验测试
下载成功后,可用示波器测试各点波形(见照片)。
NRZ码实验测试点表
测试点名称测试点波形说 明
T8 16.9MC 晶体振荡器输出
T5 16.9MC 时钟选择开关输出
T15 8.45MC 二分频输出时钟信号
T16 NRZ码
T17 反相NRZ码
(1)先用示波器测T8(或T5)为 16.9M晶体振荡器输出时钟。
用20M示波器测试T8波形
(2)用示波器测T15为 8.4M输出时钟信号。
8M 时钟波形(用20M示波器测试T15)
(3)用示波器测T16为 NRZ输出信号
8Mb/S NRZ 码输出波形
注意:一般示波器只能观察到4级或5级伪随机码,对于更多级伪随机码由于普通示波器较难同步,很难看到完整信码序列,这时可以用MAXPLUSⅡ仿真器观察仿真波形 ,或用数字示波器观察伪随机码波形。
当伪码长度很长时示波器不能完全同步
五、实验报告内容要求
1、实验原理叙述
2、画出实验电路图
3、电路仿真结果记录和分析
4、实际测量数据记录,并结合理论进行分析
附录:
1、各级伪随机码(M序列)发生器反馈逻辑表
表1-1各种伪随机码发生器的反馈逻辑表
2、各级伪随机码发生器实验电路图
4级伪随机码电路
5级伪随机码电路
6级伪随机码电路
15级伪随机码电路
23级伪随机码电路。