AGC測試,這裡我們主要通過産生一個信号,輸入到AGC中,來分析AGC的工作效果,其仿真結果如下 圖所示:
這裡,我們使用測試信号的時候,通過輸入一個正弦信号,實作AGC的功能。
BPSK解調部分,這裡隻能測試部分,因為原始程式中,包括了AD部分,這個部分是外部的資料的模數轉換之後獲得數字信号,這個仿真沒法模拟。
module BPSKTop(
input wire clk,
input wire rst,
input wire CE1x,
input wire CE2x,
input wire CE4x,
input wire CE128x,
input wire Reset,
input wire[15:0] DI,
input wire[15:0] DQ,
input wire[31:0] BTRThr,
output wire[15:0] TPBus1,
output wire[15:0] TPBus2,
output wire[15:0] TPBus3,
output wire PLLLockFlag,
output wire[15:0] BestSampleI,
output wire[15:0] BestSampleQ,
output wire BTRDecisionEn,
output wire BTRDecisionData);
wire [15:0] LPFOutI;
wire [15:0] LPFOutQ;
wire [15:0] SumLPFOutI;
wire [15:0] SumLPFOutQ;
wire [32:0] PLLComplexMultiplerOutI;
wire [32:0] PLLComplexMultiplerOutQ;
wire [15:0] NCOCosin;
wire [15:0] NCOSin;
wire [15:0] BPSKPLLSourceReal;
wire [15:0] BPSKPLLSourceImag;
wire [15:0] BestSampleITmp;
wire [15:0] BestSampleQTmp;
wire TmpBit;
wire [15:0] TmpSymbol;
BPSKTop_ComplexMult BPSKTop_ComplexMult_ins(
.clk(clk),
.rst(rst),
.DI(DI),
.DQ(DQ),
.NCOCosin(NCOCosin),
.NCOSin(NCOSin),
.PLLComplexMultiplerOutI(PLLComplexMultiplerOutI),
.PLLComplexMultiplerOutQ(PLLComplexMultiplerOutQ));
BPSKPLLTop U_BPSKPLLTop(
.clk(clk),
.CE128x(CE128x),
.Reset(rst),
.SinkReal(PLLComplexMultiplerOutI[31:16]),
.SinkImag(PLLComplexMultiplerOutQ[31:16]),
.BPSKPLLLockFlagOut(PLLLockFlag),
.NCOCosin(NCOCosin),
.NCOSin(NCOSin),
.SourceReal(BPSKPLLSourceReal),
.SourceImag(BPSKPLLSourceImag));
SumClearFilter U_SumClearFilter(
.clk(clk),
.CEx(CE128x),
.SinkReal(PLLComplexMultiplerOutI[31:16]),
.SinkImag(PLLComplexMultiplerOutQ[31:16]),
.SourceReal(LPFOutI),
.SourceImag(LPFOutQ));
BTRTop U_BTRTop(
.clk(clk),
.CE1x(CE1x),
.CE2x(CE2x),
.DI(PLLComplexMultiplerOutI[31:16]),
.DQ(PLLComplexMultiplerOutQ[31:16]),
.BTRThr(BTRThr),
.BestSampleI(BestSampleITmp),
.BestSampleQ(BestSampleQTmp),
.BTRDecisionEn(BTRDecisionEn),
.BTRDecisionData(BTRDecisionData));
assign BestSampleI = BestSampleITmp;
assign BestSampleQ = BestSampleQTmp;
assign TPBus1 = BPSKPLLSourceReal;
assign TPBus2 = BPSKPLLSourceImag;
assign TPBus3 = SumLPFOutI;
endmodule