名称:基于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
阅读全文
963