名稱:基于VIVADO的QPSK調(diào)制信號Basys3開發(fā)板verilog(代碼在文末下載)
軟件:VIVADO
語言:Verilog
代碼功能:
QPSK調(diào)制信號產(chǎn)生:
1、使用m序列產(chǎn)生串行的2路隨機(jī)信號。
2、進(jìn)行串并轉(zhuǎn)換,將串行數(shù)據(jù)轉(zhuǎn)換為2位并行信號。
3、使用正弦波作為載波進(jìn)行調(diào)制,最終輸出QPSK調(diào)制信號。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在Basys3開發(fā)板驗(yàn)證,開發(fā)板如下,其他開發(fā)板可以修改管腳適配:
演示視頻:
設(shè)計(jì)文檔:
1. 工程文件
2. 程序文件
3. 管腳約束
4. 程序編譯
5. Testbench
6. 仿真圖
部分代碼展示:
module?QPSK_modulate( ????input?clk,//100M ????input?rst,//復(fù)位,按下高電平 ????output?[7:0]?qout//輸出qpsk調(diào)制信號 ????); wire?dout_1; wire?dout_2; wire?a; wire?b; /*m序列產(chǎn)生模塊*/ m_code?m_code_1( ????.?clk(clk),//50M ????.?rst(rst),//復(fù)位 ????.?init_data(8'd89),//初始值,可任意指定 ????.?dout(dout_1)//m序列輸出,串行隨機(jī)信號 ????); /*m序列產(chǎn)生模塊*/ m_code?m_code_2( ????.?clk(clk),//50M ????.?rst(rst),//復(fù)位 ????.?init_data(8'd45),//初始值,可任意指定 ????.?dout(dout_2)//m序列輸出,串行隨機(jī)信號 ????); /*串轉(zhuǎn)并,串行數(shù)據(jù)轉(zhuǎn)換為2位并行信號a,b*/ sipo?sipo( ????.?clk(clk),//50M ????.?dout_1(dout_1),//串行隨機(jī)信號 ????.?dout_2(dout_2),//串行隨機(jī)信號 ????.?a(a),//輸出2位并行信號a,b ????.?b(b)//輸出2位并行信號a,b ????); /*調(diào)制模塊*/ carrier_wave?carrier_wave( ????.?clk(clk),//50M ????.?qout(qout),//輸出QPSK調(diào)制信號 ????.?a(a),//2位并行信號a,b ????.?b(b)//2位并行信號a,b ????); ???? endmodule
閱讀全文