名称:基于VIVADO的QPSK调制信号Basys3开发板verilog(代码在文末下载)
软件:VIVADO
语言:Verilog
代码功能:
QPSK调制信号产生:
1、使用m序列产生串行的2路随机信号。
2、进行串并转换,将串行数据转换为2位并行信号。
3、使用正弦波作为载波进行调制,最终输出QPSK调制信号。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在Basys3开发板验证,开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 管脚约束
4. 程序编译
5. Testbench
6. 仿真图
部分代码展示:
module?QPSK_modulate( ????input?clk,//100M ????input?rst,//复位,按下高电平 ????output?[7:0]?qout//输出qpsk调制信号 ????); wire?dout_1; wire?dout_2; wire?a; wire?b; /*m序列产生模块*/ m_code?m_code_1( ????.?clk(clk),//50M ????.?rst(rst),//复位 ????.?init_data(8'd89),//初始值,可任意指定 ????.?dout(dout_1)//m序列输出,串行随机信号 ????); /*m序列产生模块*/ m_code?m_code_2( ????.?clk(clk),//50M ????.?rst(rst),//复位 ????.?init_data(8'd45),//初始值,可任意指定 ????.?dout(dout_2)//m序列输出,串行随机信号 ????); /*串转并,串行数据转换为2位并行信号a,b*/ sipo?sipo( ????.?clk(clk),//50M ????.?dout_1(dout_1),//串行随机信号 ????.?dout_2(dout_2),//串行随机信号 ????.?a(a),//输出2位并行信号a,b ????.?b(b)//输出2位并行信号a,b ????); /*调制模块*/ carrier_wave?carrier_wave( ????.?clk(clk),//50M ????.?qout(qout),//输出QPSK调制信号 ????.?a(a),//2位并行信号a,b ????.?b(b)//2位并行信号a,b ????); ???? endmodule
阅读全文
923