| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- `timescale 1ns / 1ps
- module InternalDspTb;
- parameter AdcDataWidth = 14;
- parameter ChNum = 4;
- parameter ResultWidth = 32;
- parameter CmdDataRegWith = 24;
-
- reg rst;
- reg clk_50;
- reg [31:0] tb_cnt;
-
- reg StartCalcCmdReg ;
-
- wire [AdcDataWidth-1:0] adcData;
- wire measDataRdy;
- reg startMeas;
- reg [CmdDataRegWith-1:0] measCtrl;
- reg calModeEn;
- reg [8-1:0] ifFtw0;
- reg [CmdDataRegWith-1:0] ifFtw1;
- //==========================================================================================
- //clocks gen
- always #10 clk_50 = ~clk_50;
- //==========================================================================================
- initial begin
- clk_50 = 1'b1;
- rst = 1'b1;
- #10;
- rst = 1'b0;
- end
- always @(posedge clk_50) begin
- if (!rst) begin
- tb_cnt <= tb_cnt+1;
- end else begin
- tb_cnt <= 0;
- end
- end
- always @(posedge clk_50) begin
- if (tb_cnt == 10) begin
- measCtrl <= {8'h0,8'h55,8'b0};
- calModeEn <= 1'b0;
- ifFtw0 <= 8'h89;
- ifFtw1 <= 24'h256041;
- end
- end
-
- always @(posedge clk_50) begin
- if (rst) begin
- startMeas <= 1'b0;
- end else begin
- if (tb_cnt == 20) begin
- startMeas <= 1'b1;
- end else if (measDataRdy) begin
- startMeas <= 1'b0;
- end
- end
- end
-
- CordicNco
- #( .ODatWidth (14),
- .PhIncWidth (32),
- .IterNum (10),
- .EnSinN (0))
- ncoInst
- (
- .Clk_i (clk_50),
- .Rst_i (rst),
- .Val_i (1'b1),
- .PhaseInc_i (32'h25604189),
- .WindVal_i (1'b1),
- .WinType_i (),
- .Wind_o (),
- .Sin_o (adcData),
- .Cos_o (),
- .Val_o ()
- );
- InternalDsp
- #(
- .AdcDataWidth (AdcDataWidth),
- .ChNum (ChNum),
- .ResultWidth (ResultWidth),
- .CmdDataRegWith (CmdDataRegWith)
- )
- InternalDsp
- (
- .Clk_i (clk_50),
- .Rst_i (rst),
-
- .adc1ChAData_i (adcData), //A
- .adc1ChR1Data_i (adcData), //R1
- .adc2ChR2Data_i (adcData), //R2
- .adc2ChBData_i (adcData), //B
-
- .StartMeas_i (startMeas),
-
- .MeasCtrl_i (measCtrl),
-
- .CalModeEn_i (calModeEn),
- .IfFtw_i ({ifFtw1,ifFtw0}),
-
- .Adc1ImAData_o (),
- .Adc1ReAData_o (),
- .Adc1ImR1Data_o (),
- .Adc1ReR1Data_o (),
-
- .Adc2ImR2Data_o (),
- .Adc2ReR2Data_o (),
- .Adc2ImBData_o (),
- .Adc2ReBData_o (),
-
- .MeasDataRdy_o (measDataRdy)
- );
- endmodule
|