1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/YZWTlJlyZg==
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
Costas环是一种用于载波同步的常见方法,特别是在调制解调中,它被广泛用于解调相位调制信号,如二进制调相(BPSK)或四进制调相(QPSK)信号。它的目的是估计和追踪接收信号的相位偏移,以便正确解调数据。
4.部分源码
`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2025/05/12 01:22:19
// Design Name:
// Module Name: tops_hdw
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//
module tops_hdw(
input i_clk,
input i_rst,
output reg [3:0] led
);
reg[19:0]CNT;
always @(posedge i_clk or negedge i_rst)
begin
if(~i_rst)
begin
CNT <= 20'd0;
end
else begin
if(CNT==20'd100000)
CNT <= 20'd1;
else
CNT <= CNT+20'd1;
end
end
reg RST;
reg trigers;
always @(posedge i_clk or negedge i_rst)
begin
if(~i_rst)
begin
RST <= 1'd0;
trigers<= 1'd0;
end
else begin
if(CNT<=20'd50000)
RST <= 1'd1;
else
RST <= 1'd0;
if(CNT==20'd50000)
trigers<= 1'd1;
else
trigers<= 1'd0;
end
end
wire [1:0]o_msg;
//产生模拟测试数据
signal signal_u(
.i_clk (i_clk),
.i_rst (RST),
.o_bits(o_msg)
);
//设置SNR
wire signed[7:0]o_SNR;
vio_0 your_instance_name (
.clk(i_clk), // input wire clk
.probe_out0(o_SNR) // output wire [7 : 0] probe_out0
);
wire signed[7:0]o_msg_filter;
wire signed[15:0]o_msg_mod;
wire signed[15:0]o_msg_modn_SNR20;
wire signed[15:0]o_low_filter_SNR20;
wire signed[31:0]o_delta_fre_SNR20;
tops_costas tops_costas1(
.i_clk (i_clk),
.i_rst (RST),
.i_SNR (o_SNR),
.i_msg (o_msg),
.o_msg_filter (o_msg_filter),
.o_msg_mod (o_msg_mod),
.o_msg_modn (o_msg_modn_SNR20),
.o_low_filter (o_low_filter_SNR20),
.o_delta_fre (o_delta_fre_SNR20)
);
wire [31:0]o_error_num;
wire [31:0]o_total_num;
Error_Chech Error_Chech_us(
.i_clk (i_clk),
.i_rst (RST),
.i_trans (o_msg),
.i_rec (o_low_filter_SNR20),
.o_error_num (o_error_num),
.o_total_num (o_total_num)
);
//ila篇内测试分析模块
ila_0 ila_u (
.clk(i_clk), // input wire clk
.probe0({
o_msg,o_SNR,trigers,//10
o_msg_filter,//8
o_msg_mod[15:6],o_msg_modn_SNR20[15:6],o_low_filter_SNR20[15:6],//30
o_delta_fre_SNR20,//32
o_error_num[19:0],o_total_num[23:0]//44
})
);
endmodule
0sj2_075m
---