Browse Source

Написана модель для проверки режима синхронного запуска NCO на двух приборах.

Stepan Churbanov 2 years ago
parent
commit
3858ae3aeb

+ 4 - 4
S5443_M/S5443.srcs/sources_1/new/InternalDsp/InternalDsp.v

@@ -331,8 +331,8 @@ CordicNco
 ncoFirstTone
 (
 	.Clk_i		(Clk_i),
-	// .Rst_i		(Rst_i|NcoRst_i),
-	.Rst_i		(Rst_i|startMeasDspPos),
+	.Rst_i		(Rst_i|NcoRst_i),
+	// .Rst_i		(Rst_i|startMeasDspPos),
 	.Val_i		(1'b1),
 	// .PhaseInc_i	({ifFtwHReg[0+:WindNcoPhIncWidth-CmdDataRegWith],ifFtwLReg}),
 	.PhaseInc_i	(32'h40000000),
@@ -355,8 +355,8 @@ CordicNco
 ncoSecondTone
 (
 	.Clk_i		(Clk_i),
-	// .Rst_i		(Rst_i|NcoRst_i),
-	.Rst_i		(Rst_i|startMeasDspPos),
+	.Rst_i		(Rst_i|NcoRst_i),
+	// .Rst_i		(Rst_i|startMeasDspPos),
 	.Val_i		(1'b1),
 	// .PhaseInc_i	({ifFtwHReg[0+:WindNcoPhIncWidth-CmdDataRegWith],ifFtwLReg}),
 	// .PhaseInc_i	(32'h31eb851e),

+ 12 - 12
S5443_M/S5443.srcs/sources_1/new/S5243Top.v

@@ -737,18 +737,7 @@ always	@(posedge	gclk)	begin
 	end
 end
 
-// NcoRstGen	NcoRstGenInst
-// (
-	// .Clk_i				(gclk),
-	// .Rst_i				(initRst),
-	// .NcoPhInc_i			({ifFtwH[0+:PhIncWidth-CmdDataRegWith],ifFtwL}),
-	// .StartMeasEvent_i	(startMeasEvent),
-	
-	// .NcoRst_o			(ncoRst),
-	// .StartMeasEvent_o	(intTrig1)	
-// );
-
-NcoRstGenV2	NcoRstGenInst
+NcoRstGen	NcoRstGenInst
 (
 	.Clk_i				(gclk),
 	.Rst_i				(initRst),
@@ -759,6 +748,17 @@ NcoRstGenV2	NcoRstGenInst
 	.StartMeasEvent_o	(intTrig1)	
 );
 
+// NcoRstGenV2	NcoRstGenInst
+// (
+	// .Clk_i				(gclk),
+	// .Rst_i				(initRst),
+	// .NcoPhInc_i			({ifFtwH[0+:PhIncWidth-CmdDataRegWith],ifFtwL}),
+	// .StartMeasEvent_i	(startMeasEvent),
+	
+	// .NcoRst_o			(ncoRst),
+	// .StartMeasEvent_o	(intTrig1)	
+// );
+
 InternalDsp	
 #(	
 	.AdcDataWidth		(AdcDataWidth),

+ 37 - 5
S5443_M/S5443.srcs/sources_1/new/S5443TopPulseProfileTb.v

@@ -62,17 +62,17 @@ module S5443TopPulseProfileTb;
 	localparam	PG6POL	=	1'b0;
 	localparam	PG7POL	=	1'b0;
 	
-	localparam	[4:0]	EXTTRIGMUXCMD	=	5'd15;
+	localparam	[4:0]	EXTTRIGMUXCMD	=	5'd7;
 	localparam	[4:0]	DSPTRIGINCMD	=	5'h8;
 	localparam	[4:0]	MUXSLOWMODCMD	=	5'd1;
 	localparam	[4:0]	MUXFASTMODCMD	=	5'd1;
 	localparam	[4:0]	GATINGMUXCMD	=	5'd2;
-	localparam	[4:0]	SMPLSTRBMUXCMD	=	5'd3;
+	localparam	[4:0]	SMPLSTRBMUXCMD	=	5'd8;
 	
 	//COMMANDS	FOR REG_MAP
 	parameter	[31:0]	MeasCmdBypass	=	{8'h11,8'h0,8'h63,8'h1};
 	parameter	[31:0]	MeasCmdFft 		=	{8'h11,8'h0,8'h63,7'h5,1'b1};
-	parameter	[31:0]	MeasCmd 		=	{8'h11,8'h0,8'h53,8'h0};
+	parameter	[31:0]	MeasCmd 		=	{8'h11,8'h1,8'h53,8'h0};
 	// parameter	[31:0]	MeasCmd =	{8'h11,8'h3e,8'h63,8'h0};
 	parameter	[31:0]	AdcCtrl =	{8'h12,24'h2};
 	parameter	[31:0]	SensCtrlCmd =	{1'b0,27'h0,4'b1};
@@ -201,6 +201,11 @@ module S5443TopPulseProfileTb;
 	assign	trig0R	=	trig0;
     assign	trig1R	=	trig1;
 	
+	reg	[32:0]	extPulseTrigCnt;
+	wire	extPulseTrig	=	extPulseTrigCnt==32'd50;
+	
+	wire	[5:0]	extTrigBus;
+	wire	[5:0]	extTrigDir;
 //==========================================================================================
 //clocks gen
 	always	#10 Clk50	=	~Clk50;
@@ -209,6 +214,21 @@ module S5443TopPulseProfileTb;
 	always	#(24.390243902439/2)	Clk41	=	~Clk41;
 	
 	wire	sck_i;	
+	
+	assign	extTrigDir	[0]	=	!MeasCmd[16];
+	assign	extTrigDir	[1]	=	!MeasCmd[17];
+	assign	extTrigDir	[2]	=	!MeasCmd[18];
+	assign	extTrigDir	[3]	=	!MeasCmd[19];
+	assign	extTrigDir	[4]	=	!MeasCmd[20];
+	assign	extTrigDir	[5]	=	!MeasCmd[21];
+	
+	assign	extTrigBus	[0]	=	(MeasCmd[16])	?	extPulseTrig:1'bz;	//1 - in, 0 - out
+	assign	extTrigBus	[1]	=	(MeasCmd[17])	?	0:1'bz;	//1 - in, 0 - out
+	assign	extTrigBus	[2]	=	(MeasCmd[18])	?	0:1'bz;	//1 - in, 0 - out
+	assign	extTrigBus	[3]	=	(MeasCmd[19])	?	0:1'bz;	//1 - in, 0 - out
+	assign	extTrigBus	[4]	=	(MeasCmd[20])	?	0:1'bz;	//1 - in, 0 - out
+	assign	extTrigBus	[5]	=	(MeasCmd[21])	?	0:1'bz;	//1 - in, 0 - out
+	
 //==========================================================================================
 initial begin
 	Clk50	=	1'b1;
@@ -223,6 +243,18 @@ initial begin
 	Clk41	=	1'b0;
 end		
 	
+always	@(posedge	Clk50)	begin
+	if	(!rst)	begin
+		if	(extPulseTrigCnt!=32'd50)	begin
+			extPulseTrigCnt	<=	extPulseTrigCnt+32'd1;
+		end	else	begin
+			extPulseTrigCnt	<=	32'd0;
+		end
+	end	else	begin
+		extPulseTrigCnt	<=	32'd0;
+	end
+end
+
 reg	endMeasReg;
 always	@(posedge	Clk41)	begin
 	endMeasReg	<=	endMeas;
@@ -330,8 +362,8 @@ S5243Top MasterFpga
 	.EndMeas_o			(endMeas),
 	.TimersClk_o		(),
 	
-	.Trig6to1_io		(),	
-	.Trig6to1Dir_o		(),	
+	.Trig6to1_io		(extTrigBus),	
+	.Trig6to1Dir_o		(extTrigDir),	
 	
 	.DspTrigOut_i		(Clk41),				//Trig from DSP
 	.DspTrigIn_o		(),				//Trig To DSP