change online acq pn code length, change 814 online acq to the same

修改了在线捕获程序的PN码长和频偏搜索步进,修改了地检发送程序的PN码长,使用对飞相控阵进行了测试,得到正确结果;将程序移植到814平台,同样能够正常工作;对地检程序(20230512),对飞程序(20230512)和814程序(20230415)进行归档
This commit is contained in:
2023-05-14 12:51:10 +08:00
parent 0f97436c8f
commit c32d684223
1071 changed files with 222689 additions and 31208 deletions
@@ -23,8 +23,11 @@
module tb_freq_comp;
reg clk = 1'b1;
reg clk_2x = 1'b1;
reg clk_4x = 1'b1;
reg rst = 1'b1;
reg freq_comp_start = 'b0;
wire freq_comp_busy;
wire [11:0] tx_data_i, tx_data_q;
wire [31:0] freq_target;
@@ -35,11 +38,26 @@ initial begin
rst = 1'b0;
#1000;
freq_comp_start = ~freq_comp_start;
#1000;
wait (freq_comp_busy == 0);
#1000;
freq_comp_start = ~freq_comp_start;
end
always #10 clk = ~clk;
always #10 clk_4x = ~clk_4x;
tx_qpsk u_tx_qpsk
always @(posedge clk_4x) begin
clk_2x <= ~clk_2x;
end
always @(posedge clk_2x) begin
clk <= ~clk;
end
tx_qpsk #(
.BIT_DATA(1024'b0000000100100010000011001001101000010010101000011110101110101101101100000000110000011011001100001010110101110001101111110001000111100111101101101000000010100001011010101000111110111100100101100000100110010001010001101101110000001111000111011111110010000110001011011101000011010101100111100101101100100000100010010011000000101100010100111011001110001011111101010001011101101011000011001101101010000011101001111010011010100100111000001111100111001101111010001010101101111100001001110100011101011111011010010000100001010010101100011100111111101100001000110100111001001111000011011101100011000111101111101001001010000001101000110010111010010110100010001011001101001010010001100001110110111100000101110010101110011101110111001100111010101110111101100101000100110110001000011100101111100101001100110010101010011111100110001101011110011010110100110001001011100001011110101010101111111101000001010100101111000101011110111010100110111001000111000111111111100000001110000111111011100010011111000110011111010110010110010010010000000001),
.BIT_DATA_LEN (1024)
) u_tx_qpsk
(
.clk (clk ),
.rst (rst ),
@@ -56,11 +74,12 @@ tx_qpsk u_tx_qpsk
freq_comp #(
.FREQ_WORD_LOWER(-1024 ),
.FREQ_WORD_UPPER(10000 ),
.FREQ_WORD_UPPER(1023 ),
.FREQ_WORD_STEP (1024 )
)u_freq_comp
(
.clk (clk ),
.clk_4x (clk_4x ),
.rst (rst ),
.freq_comp_start (freq_comp_start ),
@@ -77,6 +96,7 @@ freq_comp #(
.rx_ch4_q (tx_data_q ),
.dmf_num_per_ch (2 ),
.dmf_continuous (1'b0 ),
.freq_manual (327680 ),
.freq_manual_en (1'b0 ),
@@ -23,24 +23,29 @@
module tb_rx_dmf;
// length of pseudorandom bit sequence, need to be a power of 2
localparam PRBS_LEN = 128;
localparam PRBS_LEN = 1024;
// interpolation of input signal, need to be a power of 2
localparam INTERP_RATE = 8;
// signal processing interpolation, need to be a power of 2
localparam PROCESS_INTERP = 4;
localparam PROCESS_INTERP = 2;
localparam PRBS_LEN_INTERP = PRBS_LEN*PROCESS_INTERP;
// number of accumulated symbols, need to be a power of 2
localparam ACC_SYM_NUM = 4;
localparam DATA_I_WIDTH = 12;
localparam DATA_O_WIDTH = 18;
localparam MAX_DMF_NUM = 64;
localparam DATA_I_WIDTH = 12;
localparam DATA_O_WIDTH = 18;
reg clk = 1'b1;
reg clk_2x = 1'b1;
reg clk_4x = 1'b1;
reg rst = 1'b1;
reg dmf_start = 'b0;
wire dmf_busy;
wire last_peak_valid;
wire [11:0] tx_data_i, tx_data_q;
reg [31:0] freq_set = 'b0;
wire peak_valid ;
wire [DATA_O_WIDTH-1 : 0] peak_value_abs ;
wire [DATA_O_WIDTH-1 : 0] peak_value_i ;
@@ -53,22 +58,46 @@ initial begin
#1000;
dmf_start = ~dmf_start;
wait (peak_valid == 1);
#1000;
dmf_start = ~dmf_start;
// wait (last_peak_valid == 1);
// freq_set = -32'd2048;
// #1000;
// dmf_start = ~dmf_start;
wait (peak_valid == 1);
#1000;
dmf_start = ~dmf_start;
// wait (last_peak_valid == 1);
// freq_set = 32'd1;
// #1000;
// dmf_start = ~dmf_start;
wait (peak_valid == 1);
#1000;
dmf_start = ~dmf_start;
// wait (last_peak_valid == 1);
// freq_set = 32'd2048;
// #1000;
// dmf_start = ~dmf_start;
// wait (last_peak_valid == 1);
// freq_set = 32'd4096;
// #1000;
// dmf_start = ~dmf_start;
// wait (last_peak_valid == 1);
// freq_set = 32'd6144;
// #1000;
// dmf_start = ~dmf_start;
end
always #10 clk = ~clk;
always #10 clk_4x = ~clk_4x;
tx_qpsk u_tx_qpsk
always @(posedge clk_4x) begin
clk_2x <= ~clk_2x;
end
always @(posedge clk_2x) begin
clk <= ~clk;
end
tx_qpsk #(
.BIT_DATA(1024'b0000000100100010000011001001101000010010101000011110101110101101101100000000110000011011001100001010110101110001101111110001000111100111101101101000000010100001011010101000111110111100100101100000100110010001010001101101110000001111000111011111110010000110001011011101000011010101100111100101101100100000100010010011000000101100010100111011001110001011111101010001011101101011000011001101101010000011101001111010011010100100111000001111100111001101111010001010101101111100001001110100011101011111011010010000100001010010101100011100111111101100001000110100111001001111000011011101100011000111101111101001001010000001101000110010111010010110100010001011001101001010010001100001110110111100000101110010101110011101110111001100111010101110111101100101000100110110001000011100101111100101001100110010101010011111100110001101011110011010110100110001001011100001011110101010101111111101000001010100101111000101011110111010100110111001000111000111111111100000001110000111111011100010011111000110011111010110010110010010010000000001),
.BIT_DATA_LEN (1024)
) u_tx_qpsk
(
.clk (clk ),
.rst (rst ),
@@ -78,26 +107,28 @@ tx_qpsk u_tx_qpsk
// debug ports
.waveform_sel (2'd1 ),
.sweep_on (1'b0 ),
.freq_set ('b0 ),
.freq_set (freq_set ),
.iq_sel (2'b11 ),
.bb_rshift (4'd0 )
);
rx_dmf #(
.ACC_SYM_NUM (ACC_SYM_NUM )
) u_rx_dmf
rx_dmf u_rx_dmf
(
.clk (clk ),
.clk (clk_4x ),
.rst (rst ),
.dmf_start (dmf_start ),
.dmf_busy (dmf_busy ),
.dmf_num (2 ),
.dmf_continuous (1'b1 ),
.din_valid (~rst ),
.din_real (tx_data_i ),
.din_imag (tx_data_i ),
.peak_valid (peak_valid ),
.last_peak_valid(last_peak_valid),
.peak_value_abs (peak_value_abs ),
.peak_value_i (peak_value_i ),
.peak_value_q (peak_value_q ),