CyCustErr VerifyReferenceSelection(ICyDRCProviderArgs_v1 drcQuery, ICyVoltageQuery_v1 voltage,
                                           string ADC_Reference, string ADC_Reference_Config2,
                                           string ADC_Reference_Config3, string ADC_Reference_Config4,
                                           string ADC_InputRange, string ADC_InputRange_Config2,
                                           string ADC_InputRange_Config3, string ADC_InputRange_Config4)
        {
            double vdda = Convert.ToDouble(voltage.VDDA);

            if (((drcQuery.DeviceQueryV1.SiliconRevision < PSOC3_ES3 && drcQuery.DeviceQueryV1.IsPSoC3 == true) ||
                 (drcQuery.DeviceQueryV1.SiliconRevision < PSOC5_ES2 && drcQuery.DeviceQueryV1.IsPSoC5 == true)))
            {
                bool isADCRerence_Vdda3 =
                    (((ADC_Reference.Equals(ADC_VDDA_3_REFERENCE) ||
                       ADC_Reference.Equals(ADC_VDDA_3_REFERENCE_BYPASSED_P03) ||
                       ADC_Reference.Equals(ADC_VDDA_3_REFERENCE_BYPASSED_P32)) &&
                      (!ADC_InputRange.Equals(ADC_IR_VSSA_TO_VDDA))) ||
                     ((ADC_Reference_Config2.Equals(ADC_VDDA_3_REFERENCE) ||
                       ADC_Reference_Config2.Equals(ADC_VDDA_3_REFERENCE_BYPASSED_P03) ||
                       ADC_Reference_Config2.Equals(ADC_VDDA_3_REFERENCE_BYPASSED_P32)) &&
                      (!ADC_InputRange_Config2.Equals(ADC_IR_VSSA_TO_VDDA))) ||
                     ((ADC_Reference_Config3.Equals(ADC_VDDA_3_REFERENCE) ||
                       ADC_Reference_Config3.Equals(ADC_VDDA_3_REFERENCE_BYPASSED_P03) ||
                       ADC_Reference_Config3.Equals(ADC_VDDA_3_REFERENCE_BYPASSED_P32)) &&
                      (!ADC_InputRange_Config3.Equals(ADC_IR_VSSA_TO_VDDA))) ||
                     ((ADC_Reference_Config4.Equals(ADC_VDDA_3_REFERENCE) ||
                       ADC_Reference_Config4.Equals(ADC_VDDA_3_REFERENCE_BYPASSED_P03) ||
                       ADC_Reference_Config4.Equals(ADC_VDDA_3_REFERENCE_BYPASSED_P32)) &&
                      (!ADC_InputRange_Config4.Equals(ADC_IR_VSSA_TO_VDDA))));

                if (isADCRerence_Vdda3)
                {
                    return(new CyCustErr(VerifySelectedReferenceErrorMsg));
                }

                if ((vdda < MAX_VDDA3_VALUE) &&
                    (ADC_InputRange.Equals(ADC_IR_VSSA_TO_VDDA) ||
                     ADC_InputRange_Config2.Equals(ADC_IR_VSSA_TO_VDDA) ||
                     ADC_InputRange_Config3.Equals(ADC_IR_VSSA_TO_VDDA) ||
                     ADC_InputRange_Config4.Equals(ADC_IR_VSSA_TO_VDDA)))
                {
                    return(new CyCustErr(VerifyVssaToVddaSelectedReference));
                }
            }
            return(CyCustErr.OK);
        }
        CyCustErr VerifyVrefValue(ICyDRCProviderArgs_v1 drcQuery, ICyVoltageQuery_v1 voltage, string ADC_Reference,
                                  string ADC_Reference_Config2, string ADC_Reference_Config3,
                                  string ADC_Reference_Config4, string ADC_InputRange, string ADC_InputRange_Config2,
                                  string ADC_InputRange_Config3, string ADC_InputRange_Config4, string ADC_RefVoltage,
                                  string ADC_RefVoltage_Config2, string ADC_RefVoltage_Config3,
                                  string ADC_RefVoltage_Config4)
        {
            double vdda         = Convert.ToDouble(voltage.VDDA);
            double Vref         = Convert.ToDouble(ADC_RefVoltage);
            double Vref_Config2 = Convert.ToDouble(ADC_RefVoltage_Config2);
            double Vref_Config3 = Convert.ToDouble(ADC_RefVoltage_Config3);
            double Vref_Config4 = Convert.ToDouble(ADC_RefVoltage_Config4);

            bool isADCRerence_Vdda3 = (((ADC_Reference.Equals(ADC_VDDA_3_REFERENCE) ||
                                         ADC_Reference.Equals(ADC_VDDA_3_REFERENCE_BYPASSED_P03) ||
                                         ADC_Reference.Equals(ADC_VDDA_3_REFERENCE_BYPASSED_P32)) &&
                                        (!(ADC_InputRange.Equals(ADC_IR_VSSA_TO_VDDA)))) ||
                                       ((ADC_Reference_Config2.Equals(ADC_VDDA_3_REFERENCE) ||
                                         ADC_Reference_Config2.Equals(ADC_VDDA_3_REFERENCE_BYPASSED_P03) ||
                                         ADC_Reference_Config2.Equals(ADC_VDDA_3_REFERENCE_BYPASSED_P32)) &&
                                        (!(ADC_InputRange_Config2.Equals(ADC_IR_VSSA_TO_VDDA)))) ||
                                       ((ADC_Reference_Config3.Equals(ADC_VDDA_3_REFERENCE) ||
                                         ADC_Reference_Config3.Equals(ADC_VDDA_3_REFERENCE_BYPASSED_P03) ||
                                         ADC_Reference_Config3.Equals(ADC_VDDA_3_REFERENCE_BYPASSED_P32)) &&
                                        (!(ADC_InputRange_Config3.Equals(ADC_IR_VSSA_TO_VDDA)))) ||
                                       ((ADC_Reference_Config4.Equals(ADC_VDDA_3_REFERENCE) ||
                                         ADC_Reference_Config4.Equals(ADC_VDDA_3_REFERENCE_BYPASSED_P03) ||
                                         ADC_Reference_Config4.Equals(ADC_VDDA_3_REFERENCE_BYPASSED_P32)) &&
                                        (!(ADC_InputRange_Config4.Equals(ADC_IR_VSSA_TO_VDDA)))));

            bool isADCReference_Vdda4 = (((ADC_Reference.Equals(ADC_VDDA_4_REFERENCE) ||
                                           ADC_Reference.Equals(ADC_VDDA_4_REFERENCE_BYPASSED_P03) ||
                                           ADC_Reference.Equals(ADC_VDDA_4_REFERENCE_BYPASSED_P32)) &&
                                          (!(ADC_InputRange.Equals(ADC_IR_VSSA_TO_VDDA)))) ||
                                         ((ADC_Reference_Config2.Equals(ADC_VDDA_4_REFERENCE) ||
                                           ADC_Reference_Config2.Equals(ADC_VDDA_4_REFERENCE_BYPASSED_P03) ||
                                           ADC_Reference_Config2.Equals(ADC_VDDA_4_REFERENCE_BYPASSED_P32)) &&
                                          (!(ADC_InputRange_Config2.Equals(ADC_IR_VSSA_TO_VDDA)))) ||
                                         ((ADC_Reference_Config3.Equals(ADC_VDDA_4_REFERENCE) ||
                                           ADC_Reference_Config3.Equals(ADC_VDDA_4_REFERENCE_BYPASSED_P03) ||
                                           ADC_Reference_Config3.Equals(ADC_VDDA_4_REFERENCE_BYPASSED_P32)) &&
                                          (!(ADC_InputRange_Config3.Equals(ADC_IR_VSSA_TO_VDDA)))) ||
                                         ((ADC_Reference_Config4.Equals(ADC_VDDA_4_REFERENCE) ||
                                           ADC_Reference_Config4.Equals(ADC_VDDA_4_REFERENCE_BYPASSED_P03) ||
                                           ADC_Reference_Config4.Equals(ADC_VDDA_4_REFERENCE_BYPASSED_P32)) &&
                                          (!(ADC_InputRange_Config4.Equals(ADC_IR_VSSA_TO_VDDA)))));

            bool isADCInputRage_Vssa_to_Vdda = (ADC_InputRange.Equals(ADC_IR_VSSA_TO_VDDA) ||
                                                ADC_InputRange_Config2.Equals(ADC_IR_VSSA_TO_VDDA) ||
                                                ADC_InputRange_Config3.Equals(ADC_IR_VSSA_TO_VDDA) ||
                                                ADC_InputRange_Config4.Equals(ADC_IR_VSSA_TO_VDDA));

            bool isVrefforExterna_Ref = (((((VDDA3_LOWERLIMIT / 3) > Vref) || (Vref > (VDDA3_UPPERLIMIT / 3))) &&
                                          ((ADC_Reference.Equals(EXTERNAL_VREF_P03)) ||
                                           (ADC_Reference.Equals(EXTERNAL_VREF_P32)))) ||
                                         ((((VDDA3_LOWERLIMIT / 3) > Vref_Config2) ||
                                           (Vref_Config2 > (VDDA3_UPPERLIMIT / 3))) &&
                                          ((ADC_Reference_Config2.Equals(EXTERNAL_VREF_P03)) ||
                                           (ADC_Reference_Config2.Equals(EXTERNAL_VREF_P32)))) ||
                                         ((((VDDA3_LOWERLIMIT / 3) > Vref_Config3) ||
                                           (Vref_Config3 > (VDDA3_UPPERLIMIT / 3))) &&
                                          ((ADC_Reference_Config3.Equals(EXTERNAL_VREF_P03)) ||
                                           (ADC_Reference_Config3.Equals(EXTERNAL_VREF_P32)))) ||
                                         ((((VDDA3_LOWERLIMIT / 3) > Vref_Config4) ||
                                           (Vref_Config4 > (VDDA3_UPPERLIMIT / 3))) &&
                                          ((ADC_Reference_Config4.Equals(EXTERNAL_VREF_P03)) ||
                                           (ADC_Reference_Config4.Equals(EXTERNAL_VREF_P32)))));


            if ((isADCRerence_Vdda3 && ((VDDA3_LOWERLIMIT > vdda) || (vdda > VDDA3_UPPERLIMIT))) ||
                (isADCReference_Vdda4 && ((VDDA4_LOWERLIMIT > vdda) || (vdda > VDDA4_UPPERLIMIT))))
            {
                return(new CyCustErr(ReferenceVrefValueError));
            }
            if ((isADCInputRage_Vssa_to_Vdda && ((VDDA3_LOWERLIMIT > vdda) || (vdda > VDDA4_UPPERLIMIT))))
            {
                return(new CyCustErr(InputRangeVrefValueError));
            }
            if (isVrefforExterna_Ref)
            {
                return(new CyCustErr(ExtRefVrefValueError));
            }

            return(CyCustErr.OK);
        }
Ejemplo n.º 3
0
        CyCustErr VerifyVrefValue(ICyDRCProviderArgs_v1 drcQuery, ICyVoltageQuery_v1 voltage, string ADC_Reference, 
                                  string ADC_Reference_Config2, string ADC_Reference_Config3, 
                                  string ADC_Reference_Config4, string ADC_InputRange, string ADC_InputRange_Config2,
                                  string ADC_InputRange_Config3, string ADC_InputRange_Config4, string ADC_RefVoltage, 
                                  string ADC_RefVoltage_Config2, string ADC_RefVoltage_Config3, 
                                  string ADC_RefVoltage_Config4)
        {
            double vdda = Convert.ToDouble(voltage.VDDA);
            double Vref = Convert.ToDouble (ADC_RefVoltage);
            double Vref_Config2 = Convert.ToDouble (ADC_RefVoltage_Config2);
            double Vref_Config3 = Convert.ToDouble (ADC_RefVoltage_Config3);
            double Vref_Config4 = Convert.ToDouble (ADC_RefVoltage_Config4);

            bool isADCRerence_Vdda3 = (((ADC_Reference.Equals(ADC_VDDA_3_REFERENCE) ||
                                         ADC_Reference.Equals(ADC_VDDA_3_REFERENCE_BYPASSED_P03) ||
                                         ADC_Reference.Equals(ADC_VDDA_3_REFERENCE_BYPASSED_P32)) &&
                                        (!(ADC_InputRange.Equals(ADC_IR_VSSA_TO_VDDA)))) ||
                                        ((ADC_Reference_Config2.Equals(ADC_VDDA_3_REFERENCE) ||
                                          ADC_Reference_Config2.Equals(ADC_VDDA_3_REFERENCE_BYPASSED_P03) ||
                                          ADC_Reference_Config2.Equals(ADC_VDDA_3_REFERENCE_BYPASSED_P32)) &&
                                        (!(ADC_InputRange_Config2.Equals(ADC_IR_VSSA_TO_VDDA)))) ||
                                        ((ADC_Reference_Config3.Equals(ADC_VDDA_3_REFERENCE) ||
                                          ADC_Reference_Config3.Equals(ADC_VDDA_3_REFERENCE_BYPASSED_P03) ||
                                          ADC_Reference_Config3.Equals(ADC_VDDA_3_REFERENCE_BYPASSED_P32)) &&
                                        (!(ADC_InputRange_Config3.Equals(ADC_IR_VSSA_TO_VDDA)))) ||
                                        ((ADC_Reference_Config4.Equals(ADC_VDDA_3_REFERENCE) ||
                                          ADC_Reference_Config4.Equals(ADC_VDDA_3_REFERENCE_BYPASSED_P03) ||
                                          ADC_Reference_Config4.Equals(ADC_VDDA_3_REFERENCE_BYPASSED_P32)) &&
                                        (!(ADC_InputRange_Config4.Equals(ADC_IR_VSSA_TO_VDDA)))));

            bool isADCReference_Vdda4 = (((ADC_Reference.Equals(ADC_VDDA_4_REFERENCE) ||
                                           ADC_Reference.Equals(ADC_VDDA_4_REFERENCE_BYPASSED_P03) ||
                                           ADC_Reference.Equals(ADC_VDDA_4_REFERENCE_BYPASSED_P32)) &&
                                          (!(ADC_InputRange.Equals(ADC_IR_VSSA_TO_VDDA)))) ||
                                         ((ADC_Reference_Config2.Equals(ADC_VDDA_4_REFERENCE) ||
                                           ADC_Reference_Config2.Equals(ADC_VDDA_4_REFERENCE_BYPASSED_P03) ||
                                           ADC_Reference_Config2.Equals(ADC_VDDA_4_REFERENCE_BYPASSED_P32))&&
                                          (!(ADC_InputRange_Config2.Equals(ADC_IR_VSSA_TO_VDDA)))) ||
                                         ((ADC_Reference_Config3.Equals(ADC_VDDA_4_REFERENCE) ||
                                           ADC_Reference_Config3.Equals(ADC_VDDA_4_REFERENCE_BYPASSED_P03) ||
                                           ADC_Reference_Config3.Equals(ADC_VDDA_4_REFERENCE_BYPASSED_P32)) &&
                                          (!(ADC_InputRange_Config3.Equals(ADC_IR_VSSA_TO_VDDA)))) ||
                                         ((ADC_Reference_Config4.Equals(ADC_VDDA_4_REFERENCE) ||
                                           ADC_Reference_Config4.Equals(ADC_VDDA_4_REFERENCE_BYPASSED_P03) ||
                                           ADC_Reference_Config4.Equals(ADC_VDDA_4_REFERENCE_BYPASSED_P32)) &&
                                          (!(ADC_InputRange_Config4.Equals(ADC_IR_VSSA_TO_VDDA)))));

            bool isADCInputRage_Vssa_to_Vdda = (ADC_InputRange.Equals(ADC_IR_VSSA_TO_VDDA) ||
                                                ADC_InputRange_Config2.Equals(ADC_IR_VSSA_TO_VDDA) ||
                                                ADC_InputRange_Config3.Equals(ADC_IR_VSSA_TO_VDDA) ||
                                                ADC_InputRange_Config4.Equals(ADC_IR_VSSA_TO_VDDA));

            bool isVrefforExterna_Ref = (((((VDDA3_LOWERLIMIT / 3) > Vref) || (Vref > (VDDA3_UPPERLIMIT / 3))) &&
                                         ((ADC_Reference.Equals(EXTERNAL_VREF_P03)) ||
                                          (ADC_Reference.Equals(EXTERNAL_VREF_P32)))) ||
                                         ((((VDDA3_LOWERLIMIT / 3) > Vref_Config2) ||
                                            (Vref_Config2 > (VDDA3_UPPERLIMIT / 3))) &&
                                         ((ADC_Reference_Config2.Equals(EXTERNAL_VREF_P03)) ||
                                          (ADC_Reference_Config2.Equals(EXTERNAL_VREF_P32)))) ||
                                         ((((VDDA3_LOWERLIMIT / 3) > Vref_Config3) ||
                                            (Vref_Config3 > (VDDA3_UPPERLIMIT / 3))) &&
                                         ((ADC_Reference_Config3.Equals(EXTERNAL_VREF_P03)) ||
                                          (ADC_Reference_Config3.Equals(EXTERNAL_VREF_P32)))) ||
                                         ((((VDDA3_LOWERLIMIT / 3) > Vref_Config4) ||
                                            (Vref_Config4 > (VDDA3_UPPERLIMIT / 3))) &&
                                         ((ADC_Reference_Config4.Equals(EXTERNAL_VREF_P03)) ||
                                          (ADC_Reference_Config4.Equals(EXTERNAL_VREF_P32)))));

            if ((isADCRerence_Vdda3 && ((VDDA3_LOWERLIMIT > vdda) || (vdda > VDDA3_UPPERLIMIT))) ||
                (isADCReference_Vdda4 && ((VDDA4_LOWERLIMIT > vdda) || (vdda > VDDA4_UPPERLIMIT))))
            {
                return new CyCustErr(Resource.ReferenceVrefValueError);
            }
            if ((isADCInputRage_Vssa_to_Vdda && ((VDDA3_LOWERLIMIT > vdda) || (vdda > VDDA4_UPPERLIMIT))))
            {
                return new CyCustErr(Resource.InputRangeVrefValueError);
            }
            if (isVrefforExterna_Ref)
            {
                return new CyCustErr(Resource.ExtRefVrefValueError);
            }

            return CyCustErr.OK;
        }
Ejemplo n.º 4
0
        CyCustErr VerifyReferenceSelection(ICyDRCProviderArgs_v1 drcQuery, ICyVoltageQuery_v1 voltage, 
                                           string ADC_Reference, string ADC_Reference_Config2, 
                                           string ADC_Reference_Config3, string ADC_Reference_Config4, 
                                           string ADC_InputRange, string ADC_InputRange_Config2, 
                                           string ADC_InputRange_Config3, string ADC_InputRange_Config4)
        {
            double vdda = Convert.ToDouble(voltage.VDDA);
            if (drcQuery.DeviceQueryV1.ArchFamilyMember == PSOC5A && drcQuery.DeviceQueryV1.IsPSoC5 == true)
            {
                bool isADCRerence_Vdda3 =
                    (((ADC_Reference.Equals(ADC_VDDA_3_REFERENCE) ||
                       ADC_Reference.Equals(ADC_VDDA_3_REFERENCE_BYPASSED_P03) ||
                       ADC_Reference.Equals(ADC_VDDA_3_REFERENCE_BYPASSED_P32)) &&
                       (!ADC_InputRange.Equals(ADC_IR_VSSA_TO_VDDA))) ||
                     ((ADC_Reference_Config2.Equals(ADC_VDDA_3_REFERENCE) ||
                       ADC_Reference_Config2.Equals(ADC_VDDA_3_REFERENCE_BYPASSED_P03) ||
                       ADC_Reference_Config2.Equals(ADC_VDDA_3_REFERENCE_BYPASSED_P32)) &&
                      (!ADC_InputRange_Config2.Equals(ADC_IR_VSSA_TO_VDDA))) ||
                     ((ADC_Reference_Config3.Equals(ADC_VDDA_3_REFERENCE) ||
                       ADC_Reference_Config3.Equals(ADC_VDDA_3_REFERENCE_BYPASSED_P03) ||
                       ADC_Reference_Config3.Equals(ADC_VDDA_3_REFERENCE_BYPASSED_P32)) &&
                      (!ADC_InputRange_Config3.Equals(ADC_IR_VSSA_TO_VDDA))) ||
                     ((ADC_Reference_Config4.Equals(ADC_VDDA_3_REFERENCE) ||
                       ADC_Reference_Config4.Equals(ADC_VDDA_3_REFERENCE_BYPASSED_P03) ||
                       ADC_Reference_Config4.Equals(ADC_VDDA_3_REFERENCE_BYPASSED_P32)) &&
                      (!ADC_InputRange_Config4.Equals(ADC_IR_VSSA_TO_VDDA))));

                if (isADCRerence_Vdda3)
                {
                    return new CyCustErr(Resource.VerifySelectedReferenceErrorMsg);
                }

                if ((vdda < MAX_VDDA3_VALUE) &&
                    (ADC_InputRange.Equals(ADC_IR_VSSA_TO_VDDA) ||
                     ADC_InputRange_Config2.Equals(ADC_IR_VSSA_TO_VDDA) ||
                     ADC_InputRange_Config3.Equals(ADC_IR_VSSA_TO_VDDA) ||
                     ADC_InputRange_Config4.Equals(ADC_IR_VSSA_TO_VDDA)))
                {
                    return new CyCustErr(Resource.VerifyVssaToVddaSelectedReference);
                }
            }
            return CyCustErr.OK;
        }