Jelajahi Sumber

Обновлён тестбенч

Anatoliy Chigirinskiy 1 tahun lalu
induk
melakukan
972cbc89fd

+ 15 - 15
src/src/InterfaceArbiter/InterfaceArbiter.v

@@ -40,6 +40,7 @@ module InterfaceArbiter
 	
 	
 	output DataVal_o,
+	output reg TestTrig_o,
 	output [OUTWORDWIDTH-1:0] Data_o
 );
 
@@ -80,14 +81,13 @@ module InterfaceArbiter
 	reg [1:0] currState;
 	
 	reg rxDone;
-	reg spiModeR;
 //================================================================================
 //  ASSIGNMENTS
 	assign ssPos = ssRegR & !ssRegRR;
 
 	
 	assign DataVal_o = dataValReg;
-	assign Data_o = (spiModeR)? dataRegQSpi:dataRegSSpi;
+	assign Data_o = (spiMode)? dataRegQSpi:dataRegSSpi;
 
 	//assign ssCntRstThresh = (spiMode) ? QSPIWORDWIDTH-1:SSPIWORDWIDTH-1;
 	
@@ -114,6 +114,15 @@ module InterfaceArbiter
 		end
 	end
 	
+	always @(*) begin
+		if (currState == IDLE && (Data_o[11]& Data_o[8])) begin
+			TestTrig_o = 1'b1;
+		end
+		else begin
+			TestTrig_o = 1'b0;
+		end
+	end
+
 	always @(posedge Sck_i or posedge Rst_i) begin 
 		if (Rst_i) begin 
 			ssCnt <= 0;
@@ -133,7 +142,7 @@ module InterfaceArbiter
 		if (!Rst_i) begin
 			if (currState == DATARX) begin
 				if (ssPos) begin
-					if (wordsCnt == wordsNum) begin
+					if (wordsCnt == wordsNum-1) begin
 						wordsCnt <= 0;
 						rxDone <= 1'b1;
 					end else begin
@@ -169,22 +178,13 @@ module InterfaceArbiter
 		end
 	end
 
-	always @(posedge Clk_i) begin 
-		if (Rst_i) begin 
-			spiModeR <= 1'b0;
-		end
-		else begin 
-			spiModeR <= spiMode;
-		end
-	end
-
 	always @(posedge Clk_i) begin
 		if (!Rst_i) begin
 			if (currState == IDLE) begin
-				if (!spiModeR) begin
-					wordsNum <= dataRegSSpi[17:1] - 17'h1;
+				if (!spiMode) begin
+					wordsNum <= dataRegSSpi[17:1];
 				end else begin
-					wordsNum <= (dataRegQSpi[21:19]+dataRegQSpi[17:16]+dataRegQSpi[15:12]+dataRegQSpi[10:9]+dataRegQSpi[7:6]+dataRegQSpi[4]+dataRegQSpi[2]+dataRegQSpi[1]) - 17'h1;
+					wordsNum <= dataRegQSpi[21:19]+dataRegQSpi[17:16]+dataRegQSpi[15:12]+dataRegQSpi[10:9]+dataRegQSpi[7:6]+dataRegQSpi[4:3]+dataRegQSpi[2]+dataRegQSpi[1];
 				end 
 			end
 		end else begin

+ 2 - 2
src/src/PacketAnalyzer4Mosi/PacketAnalyzer4Mosi.v

@@ -77,7 +77,7 @@ localparam [22:0] DECREMENT_GPIO 	= 23'h10000;		//23'b000 0001 0000 0000 0000 00
 localparam [22:0] DECREMENT_LMX 	= 23'h1000;			//23'b000 0000 0001 0000 0000 0000
 localparam [22:0] DECREMENT_MAX 	= 23'h200;			//23'b000 0000 0000 0010 0000 0000
 localparam [22:0] DECREMENT_SH_REG 	= 23'h40;			//23'b000 0000 0000 0000 0100 0000
-localparam [22:0] DECREMENT_POT 	= 23'h10;			//23'b000 0001 0000 0000 0001 0000
+localparam [22:0] DECREMENT_POT 	= 23'h8;			//23'b000 0000 0000 0000 0000 1000
 localparam [22:0] DECREMENT_DAC 	= 23'h4;			//23'b000 0000 0000 0000 0000 0100
 localparam [22:0] DECREMENT_ATT 	= 23'h2;			//23'b000 0000 0000 0000 0000 0010
 
@@ -86,7 +86,7 @@ localparam [22:0] DECREMENT_ATT 	= 23'h2;			//23'b000 0000 0000 0000 0000 0010
 //==========================================
 assign lmxOr 	= 	|dataSpiReg[15:12];
 assign ddsOr 	= 	|dataSpiReg[21:19];
-assign potOr 	= 	 dataSpiReg[4];
+assign potOr 	= 	|dataSpiReg[4:3];
 assign dacOr 	= 	 dataSpiReg[2];
 assign attOr 	= 	 dataSpiReg[1];
 assign shRegOr 	= 	|dataSpiReg[7:6];

+ 4 - 0
src/src/Top/TopSbTmsg.v

@@ -183,6 +183,8 @@ module TopSbTmsg
 	wire [2:0] ddsWordNum;
 	wire valWordNum;
 
+	wire testTrig;
+
 	//InitRst
 	wire initRst;
 
@@ -209,6 +211,7 @@ assign SwCap4_o 			= gpio1CtrlData[6];
 assign DdsResetFpga_o 		= gpio1CtrlData[4];
 assign DdsSyncCtrlFpga_o 	= gpio1CtrlData[3];
 assign CtrlAmSw3_o 			= gpio1CtrlData[2];
+// assign CtrlAmSw3_o 			= testTrig;		//Debug-only
 assign RfSw2_o 				= gpio1CtrlData[1];
 assign RfSw1_o 				= gpio1CtrlData[0];
 
@@ -359,6 +362,7 @@ SpiSlaveArbiter
 	.Mosi3_i	(Mosi3_i),
 	
 	.DataVal_o	(spiDataVal),
+	.TestTrig_o	(testTrig),
 	.Data_o		(spiData)
 );
 

+ 4 - 4
src/src/Top/TopSbTmsgTb.sv

@@ -122,7 +122,7 @@ localparam [23:0] InitShRegHeader       = {1'h0, DeviceIdShReg, ShRegWordInitNum
 
 localparam [3:0]  LMXWordNum = 4'd14;
 localparam [2:0]  DDSWordNum = 3'd3;
-localparam        POTWordNum = 1'd1;
+localparam        POTWordNum = 2'd2;
 localparam        DACWordNum = 1'd1;
 localparam        ATTWordNum = 1'd1;
 localparam [1:0]  ShRegWordNum = 2'd1;
@@ -130,7 +130,7 @@ localparam [1:0]  MaxWordNum =   2'd2;
 localparam [1:0]  GPIOWordNum =  2'd1;
 
 // localparam [23:0] AllDevQSPIHeader = {1'h1, LMXWordNum, DDSWordNum, POTWordNum, DACWordNum,ATTWordNum, ShRegWordNum,MaxWordNum, GPIOWordNum, 7'h1};
-localparam [23:0] AllDevQSPIHeader = {1'h1, 1'h0,DDSWordNum,1'h0,GPIOWordNum, LMXWordNum,1'h0,MaxWordNum,1'h0,ShRegWordNum,1'h0,POTWordNum,1'h0,DACWordNum,ATTWordNum,1'h0};
+localparam [23:0] AllDevQSPIHeader = {1'h1, 1'h0,DDSWordNum,1'h0,GPIOWordNum, LMXWordNum,1'h0,MaxWordNum,1'h0,ShRegWordNum,1'h0,POTWordNum,DACWordNum,ATTWordNum,1'h1};
 
 //***********************************************
 //	           ASSIGNS
@@ -142,7 +142,7 @@ assign Mosi0_o = (modeSel) ? mosi0Q : mosi0R;
 assign Mosi1_io = (anyFlag) ? 1'bz : Mosi1_o;
 assign MisoLdLmx_i = 1'b1;
 
-assign emptyFlagTx = (trCnt > 94) ? 1'b1 : 1'b0;
+assign emptyFlagTx = (trCnt > 95) ? 1'b1 : 1'b0;
 assign QSPITotalWordNum = LMXWordNum + DDSWordNum + POTWordNum + DACWordNum + ATTWordNum + ShRegWordNum + MaxWordNum + GPIOWordNum; 
 
 //***********************************************
@@ -317,7 +317,7 @@ always_comb begin
             else if (trCnt == 45) begin 
                 SPIdata = AllDevQSPIHeader;
             end
-            else if (trCnt == 70) begin 
+            else if (trCnt == 71) begin 
                 SPIdata = AllDevQSPIHeader;
             end
             else begin