|
|
@@ -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;
|