<?xml version="1.0" encoding="UTF-8" standalone="no"?><IP xmlns="http://mcd.rou.st.com/modules.php?name=mcu" xmlns:ns0="http://www.w3.org/2001/XMLSchema-instance" DBVersion="V4.0" IPType="service" IpGroup="System" Name="CRC" Version="integtest1_v2_0" ns0:schemaLocation="http://mcd.rou.st.com/modules.php?name=mcu ../../../../../../../doc/V4/Development/Specifications/db/IP_Modes.xsd">
    <About>CRC: Cyclic Redundancy Check calculation unit</About>
	
    <!-- Generic RefParameters for CRC --> 
    <RefParameter Comment="Instance" DefaultValue="CRC" Name="Instance" Type="" Visible="false"/>

	
    <RefParameter Comment="Default Polynomial State" DefaultValue="__NULL" Group="Basic Parameters" Name="DefaultPolynomialUse" Type="list">
        <Condition Diagnostic="" Expression="(DIE444|DIE445|DIE440|DIE464|STM32F058C8Ux|STM32F058R8Tx|STM32F058C8Yx|STM32F070CBTx|STM32F070RBTx|STM32F030CCTx|STM32F030RCTx|STM32F051R8Tx)"/>
        <PossibleValue Comment="Enable" Value="__NULL"/>
    </RefParameter>
	
    <RefParameter Comment="Default Polynomial State" DefaultValue="DEFAULT_POLYNOMIAL_ENABLE" Group="Basic Parameters" Name="DefaultPolynomialUse" Type="list">
        <PossibleValue Comment="Enable" Value="DEFAULT_POLYNOMIAL_ENABLE"/>
        <PossibleValue Comment="Disable" Value="DEFAULT_POLYNOMIAL_DISABLE"/>
    </RefParameter>
    <RefParameter Comment="Default Init Value State" DefaultValue="DEFAULT_INIT_VALUE_ENABLE" Group="Basic Parameters" Name="DefaultInitValueUse" Type="list">
        <PossibleValue Comment="Enable" Value="DEFAULT_INIT_VALUE_ENABLE"/>
        <PossibleValue Comment="Disable" Value="DEFAULT_INIT_VALUE_DISABLE"/>
    </RefParameter>

    <RefParameter Comment="CRC Generating Polynomial" DefaultValue="X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X1+X0" Group="Basic Parameters" Max="32" Name="GeneratingPolynomial" Type="polynomialodd">
        <Condition Diagnostic="" Expression="(DefaultPolynomialUse=DEFAULT_POLYNOMIAL_DISABLE)&amp;(CRCLength=CRC_POLYLENGTH_32B)"/>
    </RefParameter>
      
    <RefParameter Comment="CRC Generating Polynomial" DefaultValue="X2+X1+X0" Group="Basic Parameters" Max="16" Name="GeneratingPolynomial" Type="polynomialodd">
        <Condition Diagnostic="" Expression="(DefaultPolynomialUse=DEFAULT_POLYNOMIAL_DISABLE)&amp;(CRCLength=CRC_POLYLENGTH_16B)"/>
    </RefParameter>
    <RefParameter Comment="CRC Generating Polynomial" DefaultValue="X2+X1+X0" Group="Basic Parameters" Max="8" Name="GeneratingPolynomial" Type="polynomialodd">
        <Condition Diagnostic="" Expression="(DefaultPolynomialUse=DEFAULT_POLYNOMIAL_DISABLE)&amp;(CRCLength=CRC_POLYLENGTH_8B)"/>
    </RefParameter>
    <RefParameter Comment="CRC Generating Polynomial" DefaultValue="X2+X1+X0" Group="Basic Parameters" Max="7" Name="GeneratingPolynomial" Type="polynomialodd">
        <Condition Diagnostic="" Expression="(DefaultPolynomialUse=DEFAULT_POLYNOMIAL_DISABLE)&amp;(CRCLength=CRC_POLYLENGTH_7B)"/>
    </RefParameter>
    <RefParameter Comment="CRC Generating Polynomial" DefaultValue="null" Group="Basic Parameters" Name="GeneratingPolynomial" Type="polynomialodd" Visible="false"/>
	

	
    <RefParameter Comment="CRC Length" DefaultValue="CRC_POLYLENGTH_32B" Group="Basic Parameters" Name="CRCLength" Type="list">
        <Condition Diagnostic="" Expression="DefaultPolynomialUse=DEFAULT_POLYNOMIAL_DISABLE"/>
        <PossibleValue Comment="32-bit" Value="CRC_POLYLENGTH_32B"/>
        <PossibleValue Comment="16-bit" Value="CRC_POLYLENGTH_16B"/>
        <PossibleValue Comment="8-bit" Value="CRC_POLYLENGTH_8B"/>
        <PossibleValue Comment="7-bit" Value="CRC_POLYLENGTH_7B"/>
    </RefParameter>
    <RefParameter Comment="CRC Length" DefaultValue="null" Group="Basic Parameters" Name="CRCLength" Type="list" Visible="false"/>
		
    <RefParameter Comment="Init Value For CRC computation" DefaultValue="0" Group="Basic Parameters" Max="4294967295" Min="0" Name="InitValue" Type="integer">
        <Condition Diagnostic="" Expression="DefaultInitValueUse=DEFAULT_INIT_VALUE_DISABLE"/>
    </RefParameter>
    <RefParameter Comment="Init Value For CRC computation" DefaultValue="null" Group="Basic Parameters" Name="InitValue" Type="integer" Visible="false"/>
	
    <RefParameter Comment="Input Data Inversion Mode" DefaultValue="CRC_INPUTDATA_INVERSION_NONE" Group="Advanced Parameters" Name="InputDataInversionMode" Type="list">
        <PossibleValue Comment="None" Value="CRC_INPUTDATA_INVERSION_NONE"/>
        <PossibleValue Comment="Byte" Value="CRC_INPUTDATA_INVERSION_BYTE"/>
        <PossibleValue Comment="Halfword" Value="CRC_INPUTDATA_INVERSION_HALFWORD"/>
        <PossibleValue Comment="Word" Value="CRC_INPUTDATA_INVERSION_WORD"/>
    </RefParameter>
    <RefParameter Comment="Output Data Inversion Mode" DefaultValue="CRC_OUTPUTDATA_INVERSION_DISABLE" Group="Advanced Parameters" Name="OutputDataInversionMode" Type="list">
        <PossibleValue Comment="Disable" Value="CRC_OUTPUTDATA_INVERSION_DISABLE"/>
        <PossibleValue Comment="Enable" Value="CRC_OUTPUTDATA_INVERSION_ENABLE"/>
    </RefParameter>
    <RefParameter Comment="Input Data Format" DefaultValue="CRC_INPUTDATA_FORMAT_BYTES" Group="Advanced Parameters" Name="InputDataFormat" Type="list">
        <Description>The Parameter " Input Data Format " will not be generated when using LL Driver</Description>

        <PossibleValue Comment="Bytes" Value="CRC_INPUTDATA_FORMAT_BYTES"/>
        <PossibleValue Comment="HalfWords" Value="CRC_INPUTDATA_FORMAT_HALFWORDS"/>
        <PossibleValue Comment="Words" Value="CRC_INPUTDATA_FORMAT_WORDS"/>
    </RefParameter>
	
    <RefMode Abstract="true" Name="crcBasic">
        <Parameter Name="DefaultPolynomialUse"/>
        <Parameter Name="CRCLength"/>
        <Parameter Name="GeneratingPolynomial"/>
        <Parameter Name="DefaultInitValueUse"/>
        <Parameter Name="InitValue"/>
        <Parameter Name="InputDataInversionMode"/>
        <Parameter Name="OutputDataInversionMode"/>
        <Parameter Name="InputDataFormat"/>	
    </RefMode>
	
    <RefMode BaseMode="crcBasic" Name="CRC_Activate">
        <Condition Diagnostic="" Expression="DefaultPolynomialUse=DEFAULT_POLYNOMIAL_DISABLE &amp; (DIE440|DIE444|DIE448|DIE442)"/>
        <ConfigForMode>Crc_Ex_Init</ConfigForMode>		
    </RefMode>
	
    <RefMode BaseMode="crcBasic" Name="CRC_Activate">
        <Condition Diagnostic="" Expression="DefaultPolynomialUse=DEFAULT_POLYNOMIAL_ENABLE &amp; (DIE445|DIE440|DIE444|DIE448|DIE442|DIE447|DIE457|DIE425|DIE417)"/>
        <ConfigForMode>Crc_Init</ConfigForMode>	
    </RefMode>
	
    <RefMode BaseMode="crcBasic" Name="CRC_Activate">
        <ConfigForMode>Crc_Init</ConfigForMode>	
		
    </RefMode>
	
	
    <!-- ModeLogicOperator for CRC -->
    <ModeLogicOperator Name="OR">
        <Mode Name="CRC_State" UserName="Activated">
            <ModeLogicOperator Name="XOR">
                <Mode Name="CRC_Activate" UserName="Activated">
                    <SignalLogicalOp Name="AND">
                        <Signal Name="VS_CRC"/>
                    </SignalLogicalOp>
                </Mode>
            </ModeLogicOperator>
            
             <Semaphore>$IpInstance</Semaphore>
        </Mode>
    </ModeLogicOperator>
	
    <!-- RefSignal for CRC -->
    <RefSignal Name="VS_CRC" Virtual="true"/>
    	<!-- Clock Semaphore for this IP. -->
    <Semaphore>CRC_ForRCC</Semaphore>
</IP>