Ver código fonte

Реорганизована структура пакета 4Mosi. Обновлён тестбенч.

Anatoliy Chigirinskiy 1 ano atrás
pai
commit
f5e4891301

+ 39 - 36
src/src/PacketAnalyzer4Mosi/PacketAnalyzer4Mosi.v

@@ -34,6 +34,8 @@ module PacketAnalyzer4Mosi (
 
 	input BusyMosi1_i,
 
+	output reg [3:0] LmxWordNum_o,
+
 	output reg ValLmxDataToFifo_o,
 	output reg ValDdsDataToFifo_o,
 	output reg ValPotDataToFifo_o,
@@ -68,28 +70,28 @@ wire [7:0] selector;
 //==========================================
 // Parameters
 //==========================================
-localparam [22:0] DECREMENT_LMX 	= 23'h80000;	//23'b000 1000 0000 0000 0000 0000
-localparam [22:0] DECREMENT_DDS 	= 23'h20000;	//23'b000 0010 0000 0000 0000 0000
-localparam [22:0] DECREMENT_POT 	= 23'h10000;	//23'b000 0001 0000 0000 0000 0000
-localparam [22:0] DECREMENT_DAC 	= 23'h8000;		//23'b000 0000 1000 0000 0000 0000
-localparam [22:0] DECREMENT_ATT 	= 23'h4000;		//23'b000 0000 0100 0000 0000 0000
-localparam [22:0] DECREMENT_SH_REG 	= 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_GPIO 	= 23'h80;		//23'b000 0000 0000 0000 1000 0000
+localparam [22:0] DECREMENT_DDS 	= 23'h80000;		//23'b000 1000 0000 0000 0000 0000
+localparam [22:0] DECREMENT_GPIO 	= 23'h10000;		//23'b000 0001 0000 0000 0000 0000
+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_DAC 	= 23'h4;			//23'b000 0000 0000 0000 0000 0100
+localparam [22:0] DECREMENT_ATT 	= 23'h2;			//23'b000 0000 0000 0000 0000 0010
 
 //==========================================
 // Assignments
 //==========================================
-assign lmxOr 	= 	|dataSpiReg[22:19];
-assign ddsOr 	= 	|dataSpiReg[18:17];
-assign potOr 	= 	 dataSpiReg[16];
-assign dacOr 	= 	 dataSpiReg[15];
-assign attOr 	= 	 dataSpiReg[14];
-assign shRegOr 	= 	|dataSpiReg[13:12];
-assign maxOr 	= 	|dataSpiReg[11:9];
-assign gpioOr 	= 	|dataSpiReg[8:7];
+assign lmxOr 	= 	|dataSpiReg[15:12];
+assign ddsOr 	= 	|dataSpiReg[21:19];
+assign potOr 	= 	 dataSpiReg[4];
+assign dacOr 	= 	 dataSpiReg[2];
+assign attOr 	= 	 dataSpiReg[1];
+assign shRegOr 	= 	|dataSpiReg[7:6];
+assign maxOr 	= 	|dataSpiReg[10:9];
+assign gpioOr 	= 	|dataSpiReg[17:16];
 
-assign selector = {lmxOr, ddsOr, potOr, dacOr, attOr, shRegOr, maxOr, gpioOr};
+assign selector = {ddsOr, gpioOr, lmxOr, maxOr, shRegOr, potOr, dacOr, attOr};
 
 //==========================================================================//
 //									CODING									//
@@ -121,41 +123,42 @@ always @(posedge Clk_i) begin
 	else if (ValDataFromSpi_i) begin
 		if ((dataSpiReg == 0) && (DataFromSpi_i[23] == 1'b1)) begin
 			dataSpiReg[22:1] <= DataFromSpi_i[22:1];
+			LmxWordNum_o <= DataFromSpi_i[16:13];
 		end
 		else begin
 			casez(selector)
-			8'b1???????: begin //LMX
+			8'b1???????: begin //DDS
+				dataSpiReg <= dataSpiReg - DECREMENT_DDS;
+				ValDdsDataToFifo_o <= 1'b1;
+			end
+			8'b01??????: begin //GPIO
+				dataSpiReg <= dataSpiReg - DECREMENT_GPIO;
+				ValGpioDataToFifo_o <= 1'b1;
+			end
+			8'b001?????: begin //LMX
 				dataSpiReg <= dataSpiReg - DECREMENT_LMX;
 				ValLmxDataToFifo_o <= 1'b1;
 			end
-			8'b01??????: begin //DDS
-				dataSpiReg <= dataSpiReg - DECREMENT_DDS;
-				ValDdsDataToFifo_o <= 1'b1;
+			8'b0001????: begin //MAX
+				dataSpiReg <= dataSpiReg - DECREMENT_MAX;
+				ValMaxDataToFifo_o <= 1'b1;
 			end
-			8'b001?????: begin //POT
+			8'b00001???: begin //ShReg
+				dataSpiReg <= dataSpiReg - DECREMENT_SH_REG;
+				ValShRegDataToFifo_o <= 1'b1;
+			end
+			8'b000001??: begin //Pot
 				dataSpiReg <= dataSpiReg - DECREMENT_POT;
 				ValPotDataToFifo_o <= 1'b1;
 			end
-			8'b0001????: begin //DAC
+			8'b0000001?: begin //DAC
 				dataSpiReg <= dataSpiReg - DECREMENT_DAC;
 				ValDacDataToFifo_o <= 1'b1;
 			end
-			8'b00001???: begin //ATT
+			8'b00000001: begin //ATT
 				dataSpiReg <= dataSpiReg - DECREMENT_ATT;
 				ValAttDataToFifo_o <= 1'b1;
 			end
-			8'b000001??: begin //ShReg
-				dataSpiReg <= dataSpiReg - DECREMENT_SH_REG;
-				ValShRegDataToFifo_o <= 1'b1;
-			end
-			8'b0000001?: begin //MAX2870
-				dataSpiReg <= dataSpiReg - DECREMENT_MAX;
-				ValMaxDataToFifo_o <= 1'b1;
-			end
-			8'b00000001: begin //GPIO
-				dataSpiReg <= dataSpiReg - DECREMENT_GPIO;
-				ValGpioDataToFifo_o <= 1'b1;
-			end
 			default: begin
 				ValLmxDataToFifo_o <= 1'b0;
 				ValDdsDataToFifo_o <= 1'b0;

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

@@ -121,15 +121,16 @@ localparam [23:0] InitAttHeader         = {1'h0, DeviceIdAtt, AttWordInitNum, 1'
 localparam [23:0] InitShRegHeader       = {1'h0, DeviceIdShReg, ShRegWordInitNum, 1'h1};
 
 localparam [3:0]  LMXWordNum = 4'd14;
-localparam [1:0]  DDSWordNum = 2'd3;
+localparam [2:0]  DDSWordNum = 3'd3;
 localparam        POTWordNum = 1'd1;
 localparam        DACWordNum = 1'd1;
 localparam        ATTWordNum = 1'd1;
-localparam [1:0]  ShRegWordNum = 1'd1;
-localparam [2:0]  MaxWordNum =   3'd2;
+localparam [1:0]  ShRegWordNum = 2'd1;
+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, 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};
 
 //***********************************************
 //	           ASSIGNS