<?xml version="1.0" encoding="UTF-8"?>
<GPIFIIModel version="3">
  <InterfaceDefination>
    <InterfaceSetting>
      <I2SEnabled>False</I2SEnabled>
      <I2CEnabled>False</I2CEnabled>
      <SPIEnabled>False</SPIEnabled>
      <I2SEnabled>False</I2SEnabled>
      <ADMuxedEnabled>False</ADMuxedEnabled>
      <InterfaceType>Master</InterfaceType>
      <CommunicationType>Synchronous</CommunicationType>
      <ClockSource>Internal</ClockSource>
      <ClockEdge>Positive</ClockEdge>
      <Endianness>LittleEndian</Endianness>
      <DataBusWidth>Bit32</DataBusWidth>
      <AddressBuswidth>0</AddressBuswidth>
    </InterfaceSetting>
  </InterfaceDefination>
  <Signals>
    <Signal ElementId="INPUT0" SignalType="Input" SpecialFunction="None">
      <DisplayName>RX_0</DisplayName>
      <GPIOPinNumber>GPIO_17</GPIOPinNumber>
      <Polarity>ActiveHigh</Polarity>
    </Signal>
    <Signal ElementId="INPUT1" SignalType="Input" SpecialFunction="None">
      <DisplayName>RX_1</DisplayName>
      <GPIOPinNumber>GPIO_18</GPIOPinNumber>
      <Polarity>ActiveHigh</Polarity>
    </Signal>
    <Signal ElementId="INPUT2" SignalType="Input" SpecialFunction="None">
      <DisplayName>TX_2</DisplayName>
      <GPIOPinNumber>GPIO_19</GPIOPinNumber>
      <Polarity>ActiveHigh</Polarity>
    </Signal>
    <Signal ElementId="INPUT3" SignalType="Input" SpecialFunction="None">
      <DisplayName>TX_3</DisplayName>
      <GPIOPinNumber>GPIO_20</GPIOPinNumber>
      <Polarity>ActiveHigh</Polarity>
    </Signal>
    <Signal ElementId="OUTPUT0" SignalType="Output" SpecialFunction="None">
      <DisplayName>DMA_RX</DisplayName>
      <GPIOPinNumber>GPIO_21</GPIOPinNumber>
      <IntialValue>Low</IntialValue>
      <Polarity>ActiveHigh</Polarity>
      <Delay>Alpha</Delay>
      <AssetionType>Assert</AssetionType>
    </Signal>
    <Signal ElementId="FLAG0" SignalType="Flags" SpecialFunction="None">
      <DisplayName>FLAG0</DisplayName>
      <GPIOPinNumber>GPIO_25</GPIOPinNumber>
      <IntialValue>Low</IntialValue>
      <Polarity>ActiveHigh</Polarity>
      <Flags>Thread_0_DMA_Ready</Flags>
    </Signal>
    <Signal ElementId="FLAG1" SignalType="Flags" SpecialFunction="None">
      <DisplayName>FLAG1</DisplayName>
      <GPIOPinNumber>GPIO_29</GPIOPinNumber>
      <IntialValue>Low</IntialValue>
      <Polarity>ActiveHigh</Polarity>
      <Flags>Thread_1_DMA_Ready</Flags>
    </Signal>
    <Signal ElementId="FLAG2" SignalType="Flags" SpecialFunction="None">
      <DisplayName>FLAG2</DisplayName>
      <GPIOPinNumber>GPIO_27</GPIOPinNumber>
      <IntialValue>Low</IntialValue>
      <Polarity>ActiveHigh</Polarity>
      <Flags>Thread_2_DMA_Ready</Flags>
    </Signal>
    <Signal ElementId="FLAG3" SignalType="Flags" SpecialFunction="None">
      <DisplayName>FLAG3</DisplayName>
      <GPIOPinNumber>GPIO_28</GPIOPinNumber>
      <IntialValue>Low</IntialValue>
      <Polarity>ActiveHigh</Polarity>
      <Flags>Thread_3_DMA_Ready</Flags>
    </Signal>
    <Signal ElementId="OUTPUT1" SignalType="Output" SpecialFunction="None">
      <DisplayName>DMA_TX</DisplayName>
      <GPIOPinNumber>GPIO_22</GPIOPinNumber>
      <IntialValue>Low</IntialValue>
      <Polarity>ActiveHigh</Polarity>
      <Delay>Alpha</Delay>
      <AssetionType>Assert</AssetionType>
    </Signal>
    <Signal ElementId="OUTPUT2" SignalType="Output" SpecialFunction="None">
      <DisplayName>DMA_DONE</DisplayName>
      <GPIOPinNumber>GPIO_23</GPIOPinNumber>
      <IntialValue>Low</IntialValue>
      <Polarity>ActiveHigh</Polarity>
      <Delay>Alpha</Delay>
      <AssetionType>Assert</AssetionType>
    </Signal>
    <Signal ElementId="OUTPUT3" SignalType="Output" SpecialFunction="None">
      <DisplayName>SYS_RST</DisplayName>
      <GPIOPinNumber>GPIO_24</GPIOPinNumber>
      <IntialValue>High</IntialValue>
      <Polarity>ActiveHigh</Polarity>
      <Delay>Alpha</Delay>
      <AssetionType>Toggle</AssetionType>
    </Signal>
  </Signals>
  <StateMachine>
    <AddressCounter />
    <DataCounter />
    <ControlCounter />
    <AddressComparator />
    <DataComparator />
    <ControlComparator />
    <DRQ />
    <AddrData />
    <State ElementId="STARTSTATE0" StateType="StartState">
      <DisplayName>START</DisplayName>
      <RepeatUntillNextTransition>True</RepeatUntillNextTransition>
      <RepeatCount>0</RepeatCount>
    </State>
    <State ElementId="STATE0" StateType="NormalState">
      <DisplayName>INIT</DisplayName>
      <RepeatUntillNextTransition>True</RepeatUntillNextTransition>
      <RepeatCount>0</RepeatCount>
      <Action ElementId="DR_GPIO0" ActionType="DR_GPIO">
        <ControlPinName>SYS_RST</ControlPinName>
      </Action>
    </State>
    <State ElementId="STATE1" StateType="NormalState">
      <DisplayName>IF_RX_0</DisplayName>
      <RepeatUntillNextTransition>True</RepeatUntillNextTransition>
      <RepeatCount>0</RepeatCount>
      <Action ElementId="IN_DATA0" ActionType="IN_DATA">
        <DataSourceSink>Socket</DataSourceSink>
        <ThreadNumber>Thread0</ThreadNumber>
        <SampleData>True</SampleData>
        <WriteDataIntoDataSink>True</WriteDataIntoDataSink>
      </Action>
    </State>
    <State ElementId="STATE2" StateType="NormalState">
      <DisplayName>IF_RX_1</DisplayName>
      <RepeatUntillNextTransition>True</RepeatUntillNextTransition>
      <RepeatCount>0</RepeatCount>
      <Action ElementId="IN_DATA0" ActionType="IN_DATA">
        <DataSourceSink>Socket</DataSourceSink>
        <ThreadNumber>Thread1</ThreadNumber>
        <SampleData>True</SampleData>
        <WriteDataIntoDataSink>True</WriteDataIntoDataSink>
      </Action>
    </State>
    <State ElementId="STATE10" StateType="NormalState">
      <DisplayName>IF_TX_2</DisplayName>
      <RepeatUntillNextTransition>True</RepeatUntillNextTransition>
      <RepeatCount>0</RepeatCount>
      <Action ElementId="DR_DATA0" ActionType="DR_DATA">
        <IsDataCounterConnected>False</IsDataCounterConnected>
        <DataSourceSink>Socket</DataSourceSink>
        <ThreadNumber>Thread2</ThreadNumber>
        <SyncBurstMode>Enable</SyncBurstMode>
        <DriveNewData>DriveNewData</DriveNewData>
        <UpdateSource>True</UpdateSource>
      </Action>
    </State>
    <State ElementId="STATE5" StateType="NormalState">
      <DisplayName>DONE</DisplayName>
      <RepeatUntillNextTransition>True</RepeatUntillNextTransition>
      <RepeatCount>0</RepeatCount>
    </State>
    <State ElementId="STATE6" StateType="NormalState">
      <DisplayName>WAIT_0</DisplayName>
      <RepeatUntillNextTransition>True</RepeatUntillNextTransition>
      <RepeatCount>0</RepeatCount>
      <Action ElementId="DR_GPIO0" ActionType="DR_GPIO">
        <ControlPinName>DMA_DONE</ControlPinName>
      </Action>
    </State>
    <State ElementId="STATE12" StateType="NormalState">
      <DisplayName>IF_TX_3</DisplayName>
      <RepeatUntillNextTransition>True</RepeatUntillNextTransition>
      <RepeatCount>0</RepeatCount>
      <Action ElementId="DR_DATA0" ActionType="DR_DATA">
        <IsDataCounterConnected>False</IsDataCounterConnected>
        <DataSourceSink>Socket</DataSourceSink>
        <ThreadNumber>Thread3</ThreadNumber>
        <SyncBurstMode>Enable</SyncBurstMode>
        <DriveNewData>DriveNewData</DriveNewData>
        <UpdateSource>True</UpdateSource>
      </Action>
    </State>
    <State ElementId="STATE13" StateType="NormalState">
      <DisplayName>IF_TX</DisplayName>
      <RepeatUntillNextTransition>True</RepeatUntillNextTransition>
      <RepeatCount>0</RepeatCount>
    </State>
    <State ElementId="STATE11" StateType="NormalState">
      <DisplayName>IF_RX</DisplayName>
      <RepeatUntillNextTransition>True</RepeatUntillNextTransition>
      <RepeatCount>0</RepeatCount>
    </State>
    <Transition ElementId="TRANSITION0" SourceState="STARTSTATE0" DestinationState="STATE0" Equation="LOGIC_ONE" />
    <Transition ElementId="TRANSITION23" SourceState="STATE13" DestinationState="STATE10" Equation="TX_2" />
    <Transition ElementId="TRANSITION1" SourceState="STATE1" DestinationState="STATE5" Equation="!DMA_RDY_TH0" />
    <Transition ElementId="TRANSITION2" SourceState="STATE2" DestinationState="STATE5" Equation="!DMA_RDY_TH1" />
    <Transition ElementId="TRANSITION17" SourceState="STATE10" DestinationState="STATE5" Equation="!DMA_RDY_TH2" />
    <Transition ElementId="TRANSITION24" SourceState="STATE13" DestinationState="STATE12" Equation="TX_3" />
    <Transition ElementId="TRANSITION19" SourceState="STATE11" DestinationState="STATE1" Equation="RX_0" />
    <Transition ElementId="TRANSITION12" SourceState="STATE0" DestinationState="STATE6" Equation="LOGIC_ONE" />
    <Transition ElementId="TRANSITION22" SourceState="STATE6" DestinationState="STATE13" Equation="TX_2|TX_3" />
    <Transition ElementId="TRANSITION21" SourceState="STATE6" DestinationState="STATE11" Equation="RX_0|RX_1" />
    <Transition ElementId="TRANSITION25" SourceState="STATE12" DestinationState="STATE5" Equation="!DMA_RDY_TH3" />
    <Transition ElementId="TRANSITION20" SourceState="STATE11" DestinationState="STATE2" Equation="RX_1" />
    <Transition ElementId="TRANSITION26" SourceState="STATE5" DestinationState="STATE6" Equation="LOGIC_ONE" />
  </StateMachine>
</GPIFIIModel>