Feat:
CPLD1: Add DPS Related Pin Defination CPLD1: Add DPS Related Functions Fix: CPLD1: Remove unused pins Improve: CPLD1: PMU Logics
This commit is contained in:
+143
-36
@@ -20,11 +20,22 @@ module CPLD_Con (
|
||||
output o_IO_RC1,
|
||||
output [5:0]o_RC_Tx,
|
||||
|
||||
//PMU OC Control
|
||||
output [31:0]o_PMU_OC_1 ,
|
||||
output [31:0]o_PMU_OC_2 ,
|
||||
output [31:0]o_PMU_OC_3 ,
|
||||
output [31:0]o_PMU_OC_4 ,
|
||||
|
||||
//DPS OC Control
|
||||
output [15:0]o_DPS_FS_1 ,
|
||||
output [15:0]o_DPS_FS_2 ,
|
||||
output [15:0]o_DPS_FS_3 ,
|
||||
output [15:0]o_DPS_FS_4 ,
|
||||
|
||||
output [3:0]o_DPS_FSMC ,
|
||||
output [5:0]o_DPS_FSMMC ,
|
||||
output o_DPSFS_RC1 ,
|
||||
|
||||
// DMM Mode Sel
|
||||
output o_RC_VSel,
|
||||
output o_RC_ISel,
|
||||
@@ -57,6 +68,15 @@ module CPLD_Con (
|
||||
reg [31:0]PMU_OC_3 ;
|
||||
reg [31:0]PMU_OC_4 ;
|
||||
|
||||
reg [31:0]DPS_FS_1 ;
|
||||
reg [31:0]DPS_FS_2 ;
|
||||
reg [31:0]DPS_FS_3 ;
|
||||
reg [31:0]DPS_FS_4 ;
|
||||
|
||||
reg [3:0]DPS_FSMC ;
|
||||
reg [5:0]DPS_FSMMC ;
|
||||
reg DPSFS_RC1 ;
|
||||
|
||||
//Condition Tester
|
||||
reg [3:0]en_t ;
|
||||
reg [3:0]freq_t;
|
||||
@@ -142,11 +162,23 @@ module CPLD_Con (
|
||||
|
||||
RC_Tx <= 'd0 ;
|
||||
|
||||
//PMU
|
||||
PMU_OC_1 <= 'd0 ;
|
||||
PMU_OC_2 <= 'd0 ;
|
||||
PMU_OC_3 <= 'd0 ;
|
||||
PMU_OC_4 <= 'd0 ;
|
||||
|
||||
//DPS
|
||||
//DPS Switches LOW Enable
|
||||
DPS_FS_1 <= 32'hFFFFFFFF;
|
||||
DPS_FS_2 <= 32'hFFFFFFFF;
|
||||
DPS_FS_3 <= 32'hFFFFFFFF;
|
||||
DPS_FS_4 <= 32'hFFFFFFFF;
|
||||
|
||||
DPS_FSMC <= 4'b1111;
|
||||
DPS_FSMMC <= 6'b11_1111;
|
||||
DPSFS_RC1 <= 1'b1;
|
||||
|
||||
done_flag <= 'd1;
|
||||
end
|
||||
else begin
|
||||
@@ -273,7 +305,7 @@ module CPLD_Con (
|
||||
RC_LOFS <= 2'b10;
|
||||
end
|
||||
//Sanity Check
|
||||
if ((i_DC_Con1[21:17] < 1) || (i_DC_Con1[21:17] > 18) || (Channel_1 < 1) || (Channel_1 > 256)) begin
|
||||
if ((i_DC_Con1[21:17] < 1) || (i_DC_Con1[21:17] > 18)) begin
|
||||
err_flag <= 1'b1;
|
||||
end
|
||||
else begin
|
||||
@@ -281,11 +313,25 @@ module CPLD_Con (
|
||||
? ~(18'b1 << (RC_RLShifter1 - 1))
|
||||
: 18'h3FFFF; //Set RLoad
|
||||
if (i_DC_Con1[23] == 1'b0) begin //Select PMU
|
||||
PMU_OC_1 <= (32'b0000_0000_0000_0000_0000_0000_0000_0001)<<(OC_Shifter1);
|
||||
DMM_en <= (19'b000_0000_0000_0000_0001)<<(DMM_Shifter1);
|
||||
if ((Channel_1 < 1) || (Channel_1 > 256)) begin
|
||||
err_flag <= 1'b1;
|
||||
end
|
||||
else begin
|
||||
PMU_OC_1 <= (32'b0000_0000_0000_0000_0000_0000_0000_0001)<<(OC_Shifter1);
|
||||
DMM_en <= (19'b000_0000_0000_0000_0001)<<(DMM_Shifter1);
|
||||
end
|
||||
end
|
||||
else if (i_DC_Con1[23] == 1'b1) begin //Select DPS
|
||||
|
||||
//Sanity Check
|
||||
if ((Channel_1 < 1) || (Channel_1 > 32)) begin
|
||||
err_flag <= 1'b1;
|
||||
end
|
||||
else begin
|
||||
DPS_FS_1 <= ~(32'b1 << ( Channel_1 - 1));
|
||||
DPS_FSMC <= 4'b1110;
|
||||
DPS_FSMMC <= 6'b10_1110;
|
||||
DPSFS_RC1 <= 1'b0;
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -301,7 +347,7 @@ module CPLD_Con (
|
||||
RC_LOFS <= 2'b10;
|
||||
end
|
||||
//Sanity Check
|
||||
if ((i_DC_Con2[21:17] < 1) || (i_DC_Con2[21:17] > 18) || (i_DC_Con2[9:1] < 1) || (i_DC_Con2[9:1] > 256)) begin
|
||||
if ((i_DC_Con2[21:17] < 1) || (i_DC_Con2[21:17] > 18)) begin
|
||||
err_flag <= 1'b1;
|
||||
end
|
||||
else begin
|
||||
@@ -309,11 +355,25 @@ module CPLD_Con (
|
||||
? ~(18'b1 << (RC_RLShifter2 - 1))
|
||||
: 18'h3FFFF; // 否则�1(即不置 0�
|
||||
if (i_DC_Con2[23] == 1'b0) begin //Select PMU
|
||||
PMU_OC_2 <= (32'b0000_0000_0000_0000_0000_0000_0000_0001)<<(OC_Shifter2);
|
||||
DMM_en <= (19'b000_0000_0000_0001_0000)<<(DMM_Shifter2);
|
||||
if ((i_DC_Con2[9:1] < 1) || (i_DC_Con2[9:1] > 256)) begin
|
||||
err_flag <= 1'b1;
|
||||
end
|
||||
else begin
|
||||
//Sanity Check
|
||||
if ((Channel_2 < 1) || (Channel_2 > 32)) begin
|
||||
err_flag <= 1'b1;
|
||||
end
|
||||
else begin
|
||||
PMU_OC_2 <= (32'b0000_0000_0000_0000_0000_0000_0000_0001)<<(OC_Shifter2);
|
||||
DMM_en <= (19'b000_0000_0000_0001_0000)<<(DMM_Shifter2);
|
||||
end
|
||||
end
|
||||
end
|
||||
else if (i_DC_Con2[23] == 1'b1) begin //Select DPS
|
||||
|
||||
DPS_FS_2 <= ~(32'b1 << ( Channel_2 - 1));
|
||||
DPS_FSMC <= 4'b1101;
|
||||
DPS_FSMMC <= 6'b10_1101;
|
||||
DPSFS_RC1 <= 1'b0;
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -329,7 +389,7 @@ module CPLD_Con (
|
||||
RC_LOFS <= 2'b10;
|
||||
end
|
||||
//Sanity Check
|
||||
if ((i_DC_Con3[21:17] < 1) || (i_DC_Con3[21:17] > 18) || (i_DC_Con3[9:1] < 1) || (i_DC_Con3[9:1] > 256)) begin
|
||||
if ((i_DC_Con3[21:17] < 1) || (i_DC_Con3[21:17] > 18)) begin
|
||||
err_flag <= 1'b1;
|
||||
end
|
||||
else begin
|
||||
@@ -337,11 +397,25 @@ module CPLD_Con (
|
||||
? ~(18'b1 << (RC_RLShifter3 - 1))
|
||||
: 18'h3FFFF; // 否则�1(即不置 0�
|
||||
if (i_DC_Con3[23] == 1'b0) begin //Select PMU
|
||||
PMU_OC_3 <= (32'b0000_0000_0000_0000_0000_0000_0000_0001)<<(OC_Shifter3);
|
||||
DMM_en <= (19'b000_0000_0001_0000_0000)<<(DMM_Shifter3);
|
||||
if ((i_DC_Con3[9:1] < 1) || (i_DC_Con3[9:1] > 256)) begin
|
||||
err_flag <= 1'b1;
|
||||
end
|
||||
else begin
|
||||
PMU_OC_3 <= (32'b0000_0000_0000_0000_0000_0000_0000_0001)<<(OC_Shifter3);
|
||||
DMM_en <= (19'b000_0000_0001_0000_0000)<<(DMM_Shifter3);
|
||||
end
|
||||
end
|
||||
else if (i_DC_Con3[23] == 1'b1) begin //Select DPS
|
||||
|
||||
//Sanity Check
|
||||
if ((Channel_3 < 1) || (Channel_3 > 32)) begin
|
||||
err_flag <= 1'b1;
|
||||
end
|
||||
else begin
|
||||
DPS_FS_3 <= ~(32'b1 << ( Channel_3 - 1));
|
||||
DPS_FSMC <= 4'b1011;
|
||||
DPS_FSMMC <= 6'b01_1011;
|
||||
DPSFS_RC1 <= 1'b0;
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -357,7 +431,7 @@ module CPLD_Con (
|
||||
RC_LOFS <= 2'b10;
|
||||
end
|
||||
//Sanity Check
|
||||
if ((i_DC_Con4[21:17] < 1) || (i_DC_Con4[21:17] > 18) || (i_DC_Con4[9:1] < 1) || (i_DC_Con4[9:1] > 256)) begin
|
||||
if ((i_DC_Con4[21:17] < 1) || (i_DC_Con4[21:17] > 18)) begin
|
||||
err_flag <= 1'b1;
|
||||
end
|
||||
else begin
|
||||
@@ -365,34 +439,48 @@ module CPLD_Con (
|
||||
? ~(18'b1 << (RC_RLShifter4 - 1))
|
||||
: 18'h3FFFF; // 否则�1(即不置 0�
|
||||
if (i_DC_Con4[23] == 1'b0) begin //Select PMU
|
||||
//Parsing Channel
|
||||
//We need Speacial Handling for tthe "freq" channels
|
||||
if (Channel_4 == 'd66 || Channel_4 == 'd68) begin
|
||||
RC_Tx <= 'd1;
|
||||
end
|
||||
else if (Channel_4 == 'd70 || Channel_4 == 'd72) begin
|
||||
RC_Tx <= 6'b00_0010;
|
||||
end
|
||||
else if (Channel_4 == 'd130 || Channel_4 == 'd132) begin
|
||||
RC_Tx <= 6'b00_0100;
|
||||
end
|
||||
else if (Channel_4 == 'd134 || Channel_4 == 'd136) begin
|
||||
RC_Tx <= 6'b00_1000;
|
||||
end
|
||||
else if (Channel_4 == 'd194 || Channel_4 == 'd196) begin
|
||||
RC_Tx <= 6'b01_0000;
|
||||
end
|
||||
else if (Channel_4 == 'd198 || Channel_4 == 'd200) begin
|
||||
RC_Tx <= 6'b10_0000;
|
||||
if ((i_DC_Con4[9:1] < 1) || (i_DC_Con4[9:1] > 256)) begin
|
||||
err_flag <= 1'b1;
|
||||
end
|
||||
else begin
|
||||
RC_Tx <= 'd0;
|
||||
//Parsing Channel
|
||||
//We need Speacial Handling for tthe "freq" channels
|
||||
if (Channel_4 == 'd66 || Channel_4 == 'd68) begin
|
||||
RC_Tx <= 'd1;
|
||||
end
|
||||
else if (Channel_4 == 'd70 || Channel_4 == 'd72) begin
|
||||
RC_Tx <= 6'b00_0010;
|
||||
end
|
||||
else if (Channel_4 == 'd130 || Channel_4 == 'd132) begin
|
||||
RC_Tx <= 6'b00_0100;
|
||||
end
|
||||
else if (Channel_4 == 'd134 || Channel_4 == 'd136) begin
|
||||
RC_Tx <= 6'b00_1000;
|
||||
end
|
||||
else if (Channel_4 == 'd194 || Channel_4 == 'd196) begin
|
||||
RC_Tx <= 6'b01_0000;
|
||||
end
|
||||
else if (Channel_4 == 'd198 || Channel_4 == 'd200) begin
|
||||
RC_Tx <= 6'b10_0000;
|
||||
end
|
||||
else begin
|
||||
RC_Tx <= 'd0;
|
||||
end
|
||||
PMU_OC_4 <= (32'b0000_0000_0000_0000_0000_0000_0000_0001)<<(OC_Shifter4);
|
||||
DMM_en <= (19'b000_0001_0000_0000_0000)<<(DMM_Shifter4);
|
||||
end
|
||||
PMU_OC_4 <= (32'b0000_0000_0000_0000_0000_0000_0000_0001)<<(OC_Shifter4);
|
||||
DMM_en <= (19'b000_0001_0000_0000_0000)<<(DMM_Shifter4);
|
||||
end
|
||||
else if (i_DC_Con4[23] == 1'b1) begin //Select DPS
|
||||
|
||||
//Sanity Check
|
||||
if ((Channel_4 < 1) || (Channel_4 > 32)) begin
|
||||
err_flag <= 1'b1;
|
||||
end
|
||||
else begin
|
||||
DPS_FS_4 <= ~(32'b1 << ( Channel_4 - 1));
|
||||
DPS_FSMC <= 4'b0111;
|
||||
DPS_FSMMC <= 6'b01_0111;
|
||||
DPSFS_RC1 <= 1'b0;
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -407,6 +495,16 @@ module CPLD_Con (
|
||||
PMU_OC_3 <= 'd0 ;
|
||||
PMU_OC_4 <= 'd0 ;
|
||||
DMM_en <= 'd0;
|
||||
|
||||
//DPS Switches LOW Enable
|
||||
DPS_FS_1 <= 32'hFFFFFFFF;
|
||||
DPS_FS_2 <= 32'hFFFFFFFF;
|
||||
DPS_FS_3 <= 32'hFFFFFFFF;
|
||||
DPS_FS_4 <= 32'hFFFFFFFF;
|
||||
|
||||
DPS_FSMC <= 4'b1111;
|
||||
DPS_FSMMC <= 6'b11_1111;
|
||||
DPSFS_RC1 <= 1'b1;
|
||||
end
|
||||
endcase
|
||||
end
|
||||
@@ -437,5 +535,14 @@ module CPLD_Con (
|
||||
assign o_PMU_OC_3 = PMU_OC_3;
|
||||
assign o_PMU_OC_4 = PMU_OC_4;
|
||||
|
||||
assign o_DPS_FS_1 = DPS_FS_1[15:0];
|
||||
assign o_DPS_FS_2 = DPS_FS_2[15:0];
|
||||
assign o_DPS_FS_3 = DPS_FS_3[15:0];
|
||||
assign o_DPS_FS_4 = DPS_FS_4[15:0];
|
||||
|
||||
assign o_DPS_FSMC = DPS_FSMC;
|
||||
assign o_DPS_FSMMC = DPS_FSMMC;
|
||||
assign o_DPSFS_RC1 = DPSFS_RC1;
|
||||
|
||||
|
||||
endmodule
|
||||
Reference in New Issue
Block a user