通 信 学号:姓名:刘涛
班级:通信20122211 工 程 实 验 报 告
2012-04班 实验一:FPGA实验_BDPSK调制解调器设计
一、实验目的
⒈ 学习BDPSK 原理的硬件实现方法。
⒉ 学习用VerilogHDL 硬件描述语言建模时序逻辑电路的能力。
二、实验报告要求
由于在 BPSK 解调中,相干载波恢复可能出现相位模糊,所以在实际应用中经常采用 BDPSK(二进制差分相移键控)方式。BDPSK 方式不需要在解调端恢复相干参考信号, 非相干接收机容易制造而且成本低,因此在无线通信系统中被广泛使用。在 BDPSK 系统 中,输入的二进制序列先进行差分编码,然后再用 BPSK 调制器调制。
⒈ BDPSK 调制系统的结构图。(Microsoft Visio 中截图) ⒉ BDPSK 调制器模块的VerilogHDL 代码及注释。
⒊ 功能仿真和时序仿真结果的波形。(ModelSim 中截图) ⒋ (选做)开发板验证后的波形。(示波器上拍照)
三、
实验结果
1、调制器和解调器的外引脚图和内部结构图
图1.1 调制器的外部引脚
1
图1.2 调制器的内部结构
图1.3 解调器的外部引脚
图1.4 解调器的内部结构
2
2、调制器模块和解调器模块的 VerilogHDL 代码及注释
(1)差分编码
module chafen( reset_n,clk,a,b ); input reset_n; input clk; input a; output b; reg c; assign b = a ^ c ; always @( posedge clk or negedge reset_n ) if(!reset_n) c <= 0 ; else begin c <= b; end Endmodule
(2)控制器
module Controller( clk, reset_n, data, address, clk_DA, blank_DA_n, sync_DA_n ); input clk ; input reset_n ; input data ; output [ 4 : 0 ] address ; output clk_DA ; //数模转换器控制信号 output blank_DA_n ; //数模转换器控制信号 output sync_DA_n ; //数模转换器控制信号 reg [ 4 : 0 ] address_data;
3
reg c ; always @( posedge clk or negedge reset_n ) begin if(!reset_n) c<=1'bz; else c<=data; end always @( posedge clk or negedge reset_n ) begin if(!reset_n) address_data<=5'b00000; else if(c==data) address_data<=address_data+5'b00001; else begin case(data) 1'b0: address_data<=5'b00000; 1'b1: address_data<=5'b10000; default: address_data<=5'bzzzzz; endcase end end assign address = address_data; assign clk_DA = clk; assign blank_DA_n = 1'b1; assign sync_DA_n = 1'b1;
Endmodule
(3)查找表
module LookUpTable( clk, reset_n, address, dataout, );
4