Archived
1. 调零算法部分增加调零控制模块,用于各模块互联和状态控制以及数据存储,增加LCMV和DAS选通; 2. Cordic 旋转输入改为保留两个符号位,避免溢出; 3. LCMV快拍数修改为2048; 4. 修改功率计算模块,适配较小数据位宽; 5. 修改在线捕获校准程序自动校准部分VIO初值; 6. 地检新射频发端增加自动频点切换
95 lines
1.8 KiB
Verilog
95 lines
1.8 KiB
Verilog
`timescale 1ns / 1ps
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
// Company:
|
|
// Engineer:
|
|
//
|
|
// Create Date: 06/11/2023 03:49:38 PM
|
|
// Design Name:
|
|
// Module Name: tb_var_cal
|
|
// Project Name:
|
|
// Target Devices:
|
|
// Tool Versions:
|
|
// Description:
|
|
//
|
|
// Dependencies:
|
|
//
|
|
// Revision:
|
|
// Revision 0.01 - File Created
|
|
// Additional Comments:
|
|
//
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
module tb_var_cal;
|
|
|
|
localparam DATA_I_WIDTH = 30;
|
|
|
|
reg clk = 1'b1;
|
|
reg clk_init = 1'b1;
|
|
reg rst = 1'b1;
|
|
|
|
reg cal_start = 1'b0;
|
|
reg cal_auto_en = 1'b0;
|
|
wire cal_busy;
|
|
|
|
reg din_valid = 1'b0;
|
|
reg [29:0] din_file_real = 'b0;
|
|
reg [29:0] din_file_imag = 'b0;
|
|
wire [DATA_I_WIDTH-1:0] din_real;
|
|
wire [DATA_I_WIDTH-1:0] din_imag;
|
|
|
|
assign din_real = din_file_real[29 -: DATA_I_WIDTH];
|
|
assign din_imag = din_file_imag[29 -: DATA_I_WIDTH];
|
|
|
|
wire var_valid;
|
|
wire [31:0] var;
|
|
|
|
var_cal #(
|
|
.ACCUM_NUM (16384 ),
|
|
.DATA_I_WIDTH (DATA_I_WIDTH ),
|
|
.DATA_O_WIDTH (32 )
|
|
) u_var_cal
|
|
(
|
|
.clk (clk ),
|
|
.rst (rst ),
|
|
|
|
.cal_start (cal_start ),
|
|
.cal_auto_en(cal_auto_en),
|
|
.cal_busy (cal_busy ),
|
|
|
|
.din_valid (din_valid ),
|
|
.din_real (din_real ),
|
|
.din_imag (din_imag ),
|
|
|
|
.var_valid (var_valid ),
|
|
.var (var )
|
|
);
|
|
|
|
integer i;
|
|
integer r_file;
|
|
|
|
initial begin
|
|
#102
|
|
rst = 1'b0;
|
|
#100
|
|
din_valid = 1'b1;
|
|
// cal_start = 1'b1;
|
|
cal_auto_en = 1'b1;
|
|
|
|
r_file = $fopen("./../../../../../testbenches/singletone.csv","r");
|
|
for (i = 0; i <= 32768; i = i + 1) begin
|
|
@(posedge clk)
|
|
$fscanf(r_file,"%d,%d",din_file_real,din_file_imag);
|
|
end
|
|
$fclose(r_file);
|
|
$stop;
|
|
end
|
|
|
|
always #10 clk_init = ~clk_init;
|
|
|
|
always @(posedge clk_init) begin
|
|
clk <= ~clk;
|
|
end
|
|
|
|
endmodule
|