名称:基于FPGA的MSK调制波形Verilog代码Quartus仿真
软件:Quartus
语言:Verilog
代码功能:
基于FPGA的MSK调制波形
1、输入调制原始数据,输出MSK调制波形。
2、包括差分编码模块,MSK调制模块,DDS模块,有符号乘法器模块等。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. Testbench
6. 仿真图
差分编码模块
MSK调制模块
DDS模块
有符号乘法器模块
部分代码展示:
//这是MskMod.v文件的程序清单 module?MskMod?( rst,clk,din,data_clk, it,qt,MSK_out); input????rst;??????????????//复位信号,高电平有效 input clk;??? //数据采样时钟 input ???din;??????????????//调制原始数据 input data_clk;? output?signed?[14:0] it;? output?signed?[14:0] qt;? ???output?signed?[28:0] MSK_out;? wire?din_diff; wire?data_a; wire?data_b; //差分编码模块 differ?i_differ( .?clk(data_clk), .?rst(rst),//复位 .?a(din),//输入码 .?D_a(din_diff)//输出差分码 ); //串并转换 sipo?i_sipo( .?clk(data_clk), .?rst(rst), .?din(din_diff), .?data_a(data_a), .?data_b(data_b) ); wire?[14:0]sin_data ; dds u0?( .phi_inc_i?(25'd320000), .clk?(clk), .reset_n?(!rst), .clken?(1), .freq_mod_i?('d0), .fsin_o?(sin_data), .fcos_o?(), .out_valid?()); wire?signed?[14:0]P_cos; wire?signed?[14:0]Q_sin; assign?P_cos= (data_a==1)?$signed(sin_data):$signed(sin_data)*(-1); assign?Q_sin= (data_b==1)?$signed(sin_data):$signed(sin_data)*(-1); wire?signed?[14:0]fsin_o; wire?signed?[14:0]fcos_o; dds u1?( .phi_inc_i?(25'd3200000), .clk?(clk), .reset_n?(!rst), .clken?(1), .freq_mod_i?('d0), .fsin_o?(fsin_o), .fcos_o?(fcos_o), .out_valid?()); //assign?MSK_wave=signed(fsin_o)*signed(qt)+signed(fcos_o)*signed(it); wire?signed[29:0]?result_sig_Q; wire?signed[29:0]?result_sig_I; mul_signed mul_signed_inst1?( .dataa?(?fsin_o?), .datab?(?Q_sin?), .result?(?result_sig_Q?) ); mul_signed mul_signed_inst2?( .dataa?(?fcos_o?), .datab?(?P_cos?), .result?(?result_sig_I?) ); assign?MSK_out=$signed(result_sig_I)+$signed(result_sig_Q); endmodule
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=671
阅读全文
247