您现在的位置:首页 >> 通信 >> 内容

【硬件测试】基于FPGA的BPSK+costas环系统开发与硬件片内测试,包含高斯信道,误码统计,可

时间:2025/5/19 1:38:53 点击:

  核心提示:0sj2_075m,包括程序操作录像...

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

---

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关文章
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168