<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<IP DBVersion="V3.0" IPType="service" Name="WWDG" Version="wwdg1_v2_0" IpGroup="System" xmlns:ns0="http://www.w3.org/2001/XMLSchema-instance" ns0:schemaLocation="http://mcd.rou.st.com/modules.php?name=mcu ../../db/IP_Modes_V3_0.xsd" xmlns="http://mcd.rou.st.com/modules.php?name=mcu">

    <About>WWDG: Window WatchDog</About>

    <RefParameter Comment="WWDG instance" DefaultValue="WWDG$Index" Name="Instance" Type="list" Visible="false"/>

    <RefParameter Name="Prescaler" Comment="WWDG counter clock prescaler" DefaultValue="WWDG_PRESCALER_1" Type="list" Group="Watchdog Clocking">
        <PossibleValue Value="WWDG_PRESCALER_1" Comment="1"/>
        <PossibleValue Value="WWDG_PRESCALER_2" Comment="2"/>
        <PossibleValue Value="WWDG_PRESCALER_4" Comment="4"/>
        <PossibleValue Value="WWDG_PRESCALER_8" Comment="8"/>
        <PossibleValue Value="WWDG_PRESCALER_16" Comment="16"/>
        <PossibleValue Value="WWDG_PRESCALER_32" Comment="32"/>
        <PossibleValue Value="WWDG_PRESCALER_64" Comment="64"/>
        <PossibleValue Value="WWDG_PRESCALER_128" Comment="128"/>
        <Description>The resulting value is equal to (PCLK/4096)/(Prescaler value) for example (PCLK/4096)/8</Description>
    </RefParameter>

    <RefParameter Name="Window" Comment="WWDG window value" DefaultValue="64" Max="127" Min="64" Type="integer" Group="Watchdog Clocking">
        <Description>Specifies the WWDG window value to be compared to the downcounter.</Description>
    </RefParameter>

    <RefParameter Name="Counter" Comment="WWDG free-running downcounter value" DefaultValue="64" Max="127" Min="=Window" Type="integer" Group="Watchdog Clocking"/>

    <RefParameter Comment="EWI Mode" DefaultValue="WWDG_EWI_DISABLE" Name="EWIMode" Type="list" Group="Watchdog Interrupt">
        <Description>Specifies if WWDG early wake-up interrupt is enabled or not.</Description>
        <PossibleValue Comment="Disable" Value="WWDG_EWI_DISABLE"/>
        <PossibleValue Comment="Enable" Value="WWDG_EWI_ENABLE"/>
    </RefParameter>

    <RefMode Name="WWDG_Activate" HalMode ="WWDG">
        <Condition Diagnostic="" Expression="STM32H7"/>
        <ConfigForMode>WWDG_Init</ConfigForMode>
        <Parameter Name="Prescaler"/>
        <Parameter Name="Window"/>
        <Parameter Name="Counter"/>
        <Parameter Name="EWIMode"/>
    </RefMode>

    <RefMode Name="WWDG_Activate" HalMode ="WWDG">
        <ConfigForMode>WWDG_Init</ConfigForMode>
        <Parameter Name="Prescaler"/>
        <Parameter Name="Window"/>
        <Parameter Name="Counter"/>
    </RefMode>

    <!-- ModeLogicOperator for WWDG -->
    <ModeLogicOperator Name="OR">
      <Mode Name="WWDG_State" UserName="Activated">
        <ModeLogicOperator Name="XOR">
          <Mode Name="WWDG_Activate" UserName="Activated">
            <SignalLogicalOp Name="AND">
              <Signal Name="VS_WWDG" />
            </SignalLogicalOp>
          </Mode>
        </ModeLogicOperator>
      </Mode>
    </ModeLogicOperator>

    <!-- RefSignal for WWDG -->
    <RefSignal Name="VS_WWDG" Virtual="true"/>
</IP>
