名称:基于FPGA的正交相移键控(QPSK)实现Verilog代码ISE仿真
软件:ISE
语言:Verilog
代码功能:
正交相移键控(QPSK)实现
在这个项目中,您需要在FPGA上实现QPSK调制器。您需要了解QPSK调制技术,并确定关键组件(例如,比特流转换器和三角函数生成器)才能实现它。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. Testbench
5. ISE自带仿真
6. Modelsim仿真
部分代码展示:
`timescale?1ns?/?1ps ////////////////////////////////////////////////////////////////////////////////// //?Company:? //?Engineer:? //? //?Create?Date:????17:06:40?12/07/2019? //?Design?Name:? //?Module?Name:????QPSK? //?Project?Name:? //?Target?Devices:? //?Tool?versions:? //?Description:? // //?Dependencies:? // //?Revision:? //?Revision?0.01?-?File?Created //?Additional?Comments:? // ////////////////////////////////////////////////////////////////////////////////// module?QPSK( ????input?clk_in,//时钟 ????input?rst_p,//高电平复位 ?input?[1:0]?data_in,//输入2bit调制信号 ????output?[7:0]?QPSK_out//QPSK调制输出 ????); //clk_in的频率需要是data_in码速率的32N倍,因为一个正弦波周期32个点。 reg?[4:0]?phase_num=5'd0;//相位偏移值 always?@(posedge?clk_in?or?posedge?rst_p) if(rst_p) phase_num<=5'd0; else ??begin ?????case?(data_in)//输入2bit调制信号对应4个相位,分别如下 ???????2'b00:phase_num<=5'd3;//phase?45 ???????2'b01:phase_num<=5'd11;//phase?135 ???????2'b10:phase_num<=5'd19;//phase?225 ???????2'b11:phase_num<=5'd27;//phase?315 ???????default:; ?????endcase ???end ? //正弦波地址累加控制输出三角函数波形 reg?[4:0]?location=5'd0; always?@(posedge?clk_in?or?posedge?rst_p) begin if(rst_p) location<=5'd0; else//循环累加
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=827
阅读全文