频率偏差角度估计---Verilog
1 module CFO_Estimating( 2 3 //Module clock 4 input wire Clk, 5 //the reset signal 6 input wire Rst_n, 7 //the enable signal of the input datas 8 input wire DataInEnable, 9 //the input datas:signed 1QN format 10 input wire [7:0] DataInRe, 11 input wire [7:0] DataInIm, 12 output wire TempPhaseOutEnable, 13 output wire [15:0] TempPhaseOut, 14 //the enable signal of the output phase 15 output wire PhaseOutEnable, 16 //the output phase 17 //signed 2QN format 18 /*输出角度值 参照2QN格式******////// 19 /*补码格式 ******////// 20 /*16位位宽 1位符号位 2位整数位 13位小数位*******/////// 21 output wire [15:0] PhaseOut); 22 23 /*******************用于粗频偏估计数据延迟相关模块******************/ 24 25 //the enable signal of the correlation results 26 wire DelayCorrelationEnable; 27 //the correlation results 28 wire [15:0] DelayCorrelationRe; 29 wire [15:0] DelayCorrelationIm; 30 //Delay Correlation Module 31 DelayCorrelation DelayCorrelation ( 32 .Clk(Clk), 33 .Rst_n(Rst_n), 34 .DataInEnable(DataInEnable), 35 .DataInRe(DataInRe), 36 .DataInIm(DataInIm), 37 .DelayCorrelationEnable(DelayCorrelationEnable), 38 .DelayCorrelationRe(DelayCorrelationRe), 39 .DelayCorrelationIm(DelayCorrelationIm) 40 ); 41 42 /**************用长度为16的窗口累加相关运算结果*******************/ 43 44 //the enable signal of accumulation results 45 wire SlideWindowOutEnable; 46 //the accumulation results 47 wire [15:0] SlideWindowOutRe; 48 wire [15:0] SlideWindowOutIm; 49 50 //Correlation Accumulation Module 51 Correlation_Accumulation Correlation_Accumulation ( 52 .Clk(Clk), 53 .Rst_n(Rst_n), 54 .DataInEnable(DelayCorrelationEnable), 55 .DataInRe(DelayCorrelationRe), 56 .DataInIm(DelayCorrelationIm), 57 .SlideWindowOutEnable(SlideWindowOutEnable), 58 .SlideWindowOutRe(SlideWindowOutRe), 59 .SlideWindowOutIm(SlideWindowOutIm) 60 ); 61 62 /*********************偏差角度估算************************/ 63 //Phase Estimation Module 64 Estimation_phase Estimation_phase ( 65 .Clk(Clk), 66 .Rst_n(Rst_n), 67 .DataInEnable(SlideWindowOutEnable), 68 .DataInRe(SlideWindowOutRe), 69 .DataInIm(SlideWindowOutIm), 70 .TempPhaseOutEnable(TempPhaseOutEnable), 71 .TempPhaseOut(TempPhaseOut), 72 .PhaseOutEnable(PhaseOutEnable), 73 .PhaseOut(PhaseOut) 74 ); 75 76 endmodule