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