Parcourir la source

Исправлены ошибки при генерации Sck_o. Исправлена ошибка при работе с Stop = 0, при вычитывании новых данных из фифо, сигнал запроса на вычитывание выставляется еще на один такт раньше, чтобы соблюсти тайминги.

ChStepan il y a 1 an
Parent
commit
9183387b83

Fichier diff supprimé car celui-ci est trop grand
+ 6 - 14
sources_1/ip/DataFifoTx/DataFifoTx.xci


+ 9 - 9
sources_1/new/QuadSPI/QuadSPIm.v

@@ -140,7 +140,7 @@ module QuadSPIm
 					0:	begin
 							if (!Lag_i) begin
 								if (!Lead_i) begin
-									if (!ss) begin
+									if (ss) begin
 										Sck_o = Clk_i;
 									end else begin
 										Sck_o = 0;
@@ -171,7 +171,7 @@ module QuadSPIm
 					1:	begin
 							if (!Lag_i) begin
 								if (!Lead_i) begin
-									if (!ss) begin
+									if (ss) begin
 										Sck_o = !Clk_i;
 									end else begin
 										Sck_o = 0;
@@ -202,7 +202,7 @@ module QuadSPIm
 					2:	begin
 							if (!Lag_i) begin
 								if (!Lead_i) begin
-									if (!ss) begin
+									if (ss) begin
 										Sck_o = !Clk_i;
 									end else begin
 										Sck_o = 0;
@@ -233,7 +233,7 @@ module QuadSPIm
 					3:	begin
 							if (!Lag_i) begin
 								if (!Lead_i) begin
-									if (!ss) begin
+									if (ss) begin
 										Sck_o = Clk_i;
 									end else begin
 										Sck_o = 0;
@@ -265,13 +265,13 @@ module QuadSPIm
 							if (!Lag_i) begin
 								if (!Lead_i) begin
 									if (!ss) begin
-										Sck_o = ~Clk_i;
+										Sck_o = Clk_i;
 									end else begin
 										Sck_o = 0;
 									end
 								end else begin
 									if (ssCnt < txLenght-1) begin
-										Sck_o = !Clk_i;
+										Sck_o = Clk_i;
 									end else begin
 										Sck_o = 0;
 									end
@@ -279,13 +279,13 @@ module QuadSPIm
 							end else begin
 								if (!Lead_i) begin
 									if (ssCnt > 0) begin
-										Sck_o = !Clk_i;
+										Sck_o = Clk_i;
 									end else begin
 										Sck_o = 0;
 									end
 								end else begin
 									if (ssCnt >0 && ssCnt < txLenght-1) begin
-										Sck_o = !Clk_i;
+										Sck_o = Clk_i;
 									end else begin
 										Sck_o = 0;
 									end
@@ -563,7 +563,7 @@ module QuadSPIm
         if (Rst_i) begin
 			valReg <= 0;
 		end else begin
-			if (ssCnt == txLenght-2) begin
+			if (ssCnt == txLenght-3) begin
 				if (!valReg) begin
 					valReg <= 1;
 				end else begin

+ 13 - 13
sources_1/new/QuadSPI/QuadSPImTb.v

@@ -21,10 +21,10 @@ wire [1:0] widthSel  = 2'h3;
 wire clockPol = 1'b0;
 wire clockPhase = 1'b0;
 wire endianSel = 1'b0;
-wire lag = 1'b1;
-wire lead = 1'b1;
+wire lag = 1'b0;
+wire lead = 1'b0;
 wire [5:0] stopDelay = 6'h1;
-wire selSt = 1'b1;
+wire selSt = 1'b0;
 wire val;
 wire valS;
 
@@ -72,24 +72,24 @@ end
 always @(posedge clk) begin
 	if (rst) begin
 		dataS <= 32'h0000000A;
-	// end else if (valS) begin
-	end else begin
+	end else if (valS) begin
+	// end else begin
 		case(widthSel) 
 			0:	begin
-					// dataS <= dataS+32'h10;
-					dataS <= 32'h0000000A;
+					dataS <= dataS+32'h10;
+					// dataS <= 32'h0000000A;
 				end
 			1:	begin
-					// dataS <= dataS+32'h100;
-					dataS <= 32'h00000A0A;
+					dataS <= dataS+32'h100;
+					// dataS <= 32'h00000A0A;
 				end
 			2:	begin
-					// dataS <= dataS+32'h100;
-					dataS <= 32'h000A0A0A;
+					dataS <= dataS+32'h100;
+					// dataS <= 32'h000A0A0A;
 				end
 			3:	begin
-					// dataS <= dataS+32'h100;
-					dataS <= 32'h0A0A0A0A;
+					dataS <= dataS+32'h100;
+					// dataS <= 32'h0A0A0A0A;
 				end
 		endcase
 	end

+ 1 - 1
sources_1/new/S5443_3Top.v

@@ -25,7 +25,7 @@ module S5443_3Top
     parameter CmdRegWidth = 32,
     parameter AddrRegWidth = 12,
     parameter STAGES = 3,
-    parameter SpiNum = 7
+    parameter SpiNum = 1
 
 )
 (

+ 9 - 9
sources_1/new/SpiR/SPIm.v

@@ -137,7 +137,7 @@ module SPIm
 					0:	begin
 							if (!Lag_i) begin
 								if (!Lead_i) begin
-									if (!ss) begin
+									if (ss) begin
 										Sck_o = Clk_i;
 									end else begin
 										Sck_o = 0;
@@ -168,7 +168,7 @@ module SPIm
 					1:	begin
 							if (!Lag_i) begin
 								if (!Lead_i) begin
-									if (!ss) begin
+									if (ss) begin
 										Sck_o = !Clk_i;
 									end else begin
 										Sck_o = 0;
@@ -199,7 +199,7 @@ module SPIm
 					2:	begin
 							if (!Lag_i) begin
 								if (!Lead_i) begin
-									if (!ss) begin
+									if (ss) begin
 										Sck_o = !Clk_i;
 									end else begin
 										Sck_o = 0;
@@ -230,7 +230,7 @@ module SPIm
 					3:	begin
 							if (!Lag_i) begin
 								if (!Lead_i) begin
-									if (!ss) begin
+									if (ss) begin
 										Sck_o = Clk_i;
 									end else begin
 										Sck_o = 0;
@@ -262,13 +262,13 @@ module SPIm
 							if (!Lag_i) begin
 								if (!Lead_i) begin
 									if (!ss) begin
-										Sck_o = ~Clk_i;
+										Sck_o = Clk_i;
 									end else begin
 										Sck_o = 0;
 									end
 								end else begin
 									if (ssCnt < txLenght-1) begin
-										Sck_o = !Clk_i;
+										Sck_o = Clk_i;
 									end else begin
 										Sck_o = 0;
 									end
@@ -276,13 +276,13 @@ module SPIm
 							end else begin
 								if (!Lead_i) begin
 									if (ssCnt > 0) begin
-										Sck_o = !Clk_i;
+										Sck_o = Clk_i;
 									end else begin
 										Sck_o = 0;
 									end
 								end else begin
 									if (ssCnt >0 && ssCnt < txLenght-1) begin
-										Sck_o = !Clk_i;
+										Sck_o = Clk_i;
 									end else begin
 										Sck_o = 0;
 									end
@@ -531,7 +531,7 @@ module SPIm
         if (Rst_i) begin
 			valReg <= 0;
 		end else begin
-			if (ssCnt == txLenght-2) begin
+			if (ssCnt == txLenght-3) begin
 				if (!valReg) begin
 					valReg <= 1;
 				end else begin