通信工程实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通
信
工
程
实
验
报
告
班级:通信2012-04班学号:******** 姓名:**
实验一:FPGA实验_BDPSK调制解调器设计
一、实验目的
⒈学习BDPSK 原理的硬件实现方法。
⒉学习用VerilogHDL 硬件描述语言建模时序逻辑电路的能力。
二、实验报告要求
由于在 BPSK 解调中,相干载波恢复可能出现相位模糊,所以在实际应用中经常采用 BDPSK(二进制差分相移键控)方式。BDPSK 方式不需要在解调端恢复相干参考信号,非相干接收机容易制造而且成本低,因此在无线通信系统中被广泛使用。在 BDPSK 系统中,输入的二进制序列先进行差分编码,然后再用BPSK 调制器调制。
⒈ BDPSK 调制系统的结构图。(Microsoft Visio 中截图)
⒉ BDPSK 调制器模块的VerilogHDL 代码及注释。
⒊功能仿真和时序仿真结果的波形。(ModelSim 中截图)
⒋(选做)开发板验证后的波形。(示波器上拍照)
三、实验结果
1、调制器和解调器的外引脚图和内部结构图
图1.1 调制器的外部引脚
图1.2 调制器的内部结构图1.3 解调器的外部引脚图1.4 解调器的内部结构
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;
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,
);
input clk;
input reset_n;
input [ 4 : 0 ] address;
output [ 7 : 0 ] dataout;
reg [ 7 : 0 ] LUT [ 0 : 31 ];
always @( posedge clk or negedge reset_n )
begin
if( !reset_n )
begin
//用C编程计算出的查找表采样值填在这里
LUT[ 0 ] <= 8'h7f;//0°
LUT[ 1 ] <= 8'h97;
LUT[ 2 ] <= 8'haf;
LUT[ 3 ] <= 8'hc5;
LUT[ 4 ] <= 8'hd9;
LUT[ 5 ] <= 8'he8;
LUT[ 6 ] <= 8'hf4;
LUT[ 7 ] <= 8'hfc;
LUT[ 8 ] <= 8'hfe;
LUT[ 9 ] <= 8'hfc;
LUT[ 10 ] <= 8'hf5;
LUT[ 11 ] <= 8'hea;
LUT[ 12 ] <= 8'hda;
LUT[ 13 ] <= 8'hc7;
LUT[ 14 ] <= 8'hb2;
LUT[ 15 ] <= 8'h9a;
LUT[ 16 ] <= 8'h81;//180°
LUT[ 17 ] <= 8'h69;
LUT[ 18 ] <= 8'h51;
LUT[ 19 ] <= 8'h3b;
LUT[ 20 ] <= 8'h27;
LUT[ 21 ] <= 8'h17;
LUT[ 22 ] <= 8'hb ;
LUT[ 23 ] <= 8'h3 ;
LUT[ 24 ] <= 8'h0 ;
LUT[ 25 ] <= 8'h1 ;
LUT[ 26 ] <= 8'h8 ;
LUT[ 27 ] <= 8'h13;
LUT[ 28 ] <= 8'h22;
LUT[ 29 ] <= 8'h35;