<?xml version="1.0" encoding="UTF-8"?>
<net name="ReceiverData_2Phase" type="iopt-flow">
  <event id="Delay" x="170" y="415" mode="input"/>
  <signal id="Ack" x="445" y="110" mode="output" type="boolean" min="0" max="1" dynamic="none" frac="0" value="0"/>
  <signal id="Req" x="275" y="490" mode="input" type="boolean" min="0" max="1"/>
  <operation id="o019" x="320" y="105" rot="180" shape="arrow" size="16">
    <name off_x="-11" off_y="-16" text="o019"/>
    <input off_x="16" off_y="0" name="p036" id="o019.p036" type="range" min="0" max="255" dynamic="all" frac="0"/>
    <output off_x="-16" off_y="0" name="out" id="o019.out" type="range" min="0" max="255" dynamic="type" frac="0">
      <expression>
        <operand type="signal" idRef="p036" neg="true"/>
        <text>NOT(p036)</text>
      </expression>
    </output>
  </operation>
  <operation id="o023" x="715" y="275" rot="0" shape="arrow" size="32">
    <name off_x="-27" off_y="-32" text="o023"/>
    <input off_x="-32" off_y="-16" name="p060" id="o023.p060" type="range" min="0" max="255" dynamic="all" frac="0"/>
    <input off_x="-32" off_y="0" name="InData" id="o023.InData" type="range" min="0" max="255" dynamic="all" frac="0"/>
    <input off_x="-32" off_y="16" name="InternalData" id="o023.InternalData" type="range" min="0" max="255" dynamic="all" frac="0"/>
    <output off_x="32" off_y="0" name="out" id="o023.out" type="range" min="0" max="255" dynamic="type" frac="0">
      <expression>
        <operand type="signal" idRef="InData"/>
        <operator type="when"/>
        <operand type="sub-expression">
          <operand type="signal" idRef="p060"/>
          <operator type="equal"/>
          <operand type="literal" value="1"/>
          <operator type="and"/>
          <operand type="signal" idRef="p060" delay="1"/>
          <operator type="equal"/>
          <operand type="literal" value="0"/>
        </operand>
        <text>InData WHEN (p060 = 1 AND p060[-1] = 0)</text>
      </expression>
      <expression>
        <operand type="signal" idRef="InternalData" delay="1"/>
        <text>InternalData[-1]</text>
      </expression>
    </output>
  </operation>
  <signal id="InternalData" x="810" y="275" mode="internal" type="range" min="0" max="255" frac="0" value="0" dynamic="none"/>
  <signal id="OutData" x="895" y="275" mode="output" type="range" min="0" max="255" dynamic="none" frac="0" value="0"/>
  <signal id="InData" x="595" y="275" mode="input" type="range" min="0" max="255" frac="0" value="0" dynamic="none"/>
  <arc id="a027" type="read" source="InData" target="o023.InData"/>
  <arc id="a028" type="read" source="InternalData" target="o023.InternalData" view="symbolic"/>
  <arc id="a029" type="read" source="o023.out" target="InternalData"/>
  <arc id="a030" type="read" source="InternalData" target="OutData"/>
  <signal id="NewData" x="1015" y="440" mode="output" type="boolean" min="0" max="1" dynamic="none" frac="0" value="0"/>
  <signal id="Release" x="965" y="340" mode="input" type="boolean" min="0" max="1"/>
  <transition id="t034" x="250" y="180" priority="0">
    <name off_x="-10" off_y="-10" text="t034"/>
    <comment off_x="-10" off_y="20" text="-"/>
  </transition>
  <transition id="t035" x="500" y="180" priority="0">
    <name off_x="-10" off_y="-10" text="t035"/>
    <comment off_x="-10" off_y="20" text="-"/>
  </transition>
  <place id="p036" x="375" y="180" init_marking="0">
    <name off_x="-10" off_y="-10" text="p036"/>
    <comment off_x="-10" off_y="20" text="-"/>
  </place>
  <arc id="a037" type="normal" source="t034" target="p036"/>
  <arc id="a038" type="normal" source="p036" target="t035"/>
  <arc id="a039" type="read" source="p036" target="Ack"/>
  <arc id="a040" type="read" source="p036" target="o019.p036" c2_x="29" c2_y="0" c1_x="0" c1_y="0"/>
  <arc id="a041" type="read" source="o019.out" target="t034" c1_x="-24" c1_y="0" c2_x="0" c2_y="0"/>
  <transition id="t042" x="375" y="260" priority="0">
    <name off_x="-10" off_y="-10" text="t042"/>
    <comment off_x="-10" off_y="20" text="-"/>
  </transition>
  <transition id="t044" x="495" y="415" priority="0">
    <name off_x="-10" off_y="-10" text="t044"/>
    <comment off_x="-10" off_y="20" text="-"/>
  </transition>
  <place id="p045" x="385" y="415" init_marking="0">
    <name off_x="-10" off_y="-10" text="p045"/>
    <comment off_x="-10" off_y="20" text="-"/>
  </place>
  <transition id="t046" x="270" y="415" priority="0">
    <name off_x="-10" off_y="-10" text="t046"/>
    <comment off_x="-10" off_y="20" text="-"/>
  </transition>
  <arc id="a047" type="read" source="t042" target="t034"/>
  <arc id="a048" type="read" source="t042" target="t035"/>
  <arc id="a051" type="normal" source="p045" target="t046"/>
  <arc id="a052" type="normal" source="t044" target="p045"/>
  <arc id="a055" type="read" source="Delay" target="t046"/>
  <operation id="o056" x="390" y="490" rot="0" shape="arrow" size="16">
    <name off_x="-11" off_y="-16" text="o056"/>
    <input off_x="-16" off_y="0" name="Req" id="o056.Req" type="boolean" min="0" max="1" dynamic="all"/>
    <output off_x="16" off_y="0" name="out" id="o056.out" type="range" min="-32768" max="32767" dynamic="type" frac="0">
      <expression>
        <operand type="literal" value="1"/>
        <operator type="when"/>
        <operand type="sub-expression">
          <operand type="sub-expression">
            <operand type="signal" idRef="Req"/>
            <operator type="equal"/>
            <operand type="literal" value="0"/>
            <operator type="and"/>
            <operand type="signal" idRef="Req" delay="1"/>
            <operator type="equal"/>
            <operand type="literal" value="1"/>
          </operand>
          <operator type="or"/>
          <operand type="sub-expression">
            <operand type="signal" idRef="Req"/>
            <operator type="equal"/>
            <operand type="literal" value="1"/>
            <operator type="and"/>
            <operand type="signal" idRef="Req" delay="1"/>
            <operator type="equal"/>
            <operand type="literal" value="0"/>
          </operand>
        </operand>
        <text>1 WHEN ((Req = 0 AND Req[-1] = 1) OR (Req = 1 AND Req[-1] = 0))</text>
      </expression>
      <expression>
        <operand type="literal" value="0"/>
        <text>0 OTHERWISE</text>
      </expression>
    </output>
  </operation>
  <arc id="a057" type="read" source="Req" target="o056.Req"/>
  <arc id="a058" type="read" source="o056.out" target="t044" c1_x="54" c1_y="0" c2_x="0" c2_y="0"/>
  <place id="p060" x="500" y="260" init_marking="0">
    <name off_x="-10" off_y="-10" text="p060"/>
    <comment off_x="-10" off_y="20" text="-"/>
  </place>
  <arc id="a062" type="normal" source="p060" target="t042"/>
  <arc id="a064" type="read" source="p060" target="o023.p060"/>
  <operation id="o065" x="210" y="260" rot="0" shape="arrow" size="24">
    <name off_x="-19" off_y="-24" text="o065"/>
    <input off_x="-24" off_y="-8" name="InternalData" id="o065.InternalData" type="range" min="0" max="255" dynamic="all" frac="0"/>
    <input off_x="-24" off_y="8" name="InData" id="o065.InData" type="range" min="0" max="255" dynamic="all" frac="0"/>
    <output off_x="24" off_y="0" name="out" id="o065.out" type="boolean" min="0" max="1" dynamic="type" frac="0">
      <expression>
        <operand type="signal" idRef="InternalData"/>
        <operator type="equal"/>
        <operand type="signal" idRef="InData"/>
        <text>InternalData = InData</text>
      </expression>
    </output>
  </operation>
  <arc id="a066" type="read" source="o065.out" target="t042"/>
  <arc id="a067" type="read" source="InData" target="o065.InData" view="symbolic"/>
  <arc id="a068" type="read" source="InternalData" target="o065.InternalData" view="symbolic"/>
  <place id="p069" x="670" y="340" init_marking="1">
    <name off_x="-10" off_y="-10" text="p069"/>
    <comment off_x="0" off_y="20" text="-"/>
  </place>
  <place id="p071" x="270" y="340" init_marking="0">
    <name off_x="-10" off_y="-10" text="p071"/>
    <comment off_x="0" off_y="20" text="-"/>
  </place>
  <transition id="t072" x="500" y="340" priority="0">
    <name off_x="-10" off_y="-10" text="t072"/>
    <comment off_x="-10" off_y="20" text="-"/>
  </transition>
  <arc id="a073" type="normal" source="t046" target="p071"/>
  <arc id="a074" type="normal" source="p071" target="t072"/>
  <arc id="a075" type="normal" source="t072" target="p060"/>
  <arc id="a076" type="normal" source="p069" target="t072"/>
  <arc id="a077" type="normal" source="t097" target="p069"/>
  <operation id="o087" x="880" y="340" rot="-180" shape="arrow" size="16">
    <name off_x="-11" off_y="-16" text="o087"/>
    <input off_x="16" off_y="0" name="Release" id="o087.Release" type="boolean" min="0" max="1" dynamic="all"/>
    <output off_x="-16" off_y="0" name="out" id="o087.out" type="range" min="-32768" max="32767" dynamic="type" frac="0">
      <expression>
        <operand type="literal" value="1"/>
        <operator type="when"/>
        <operand type="sub-expression">
          <operand type="signal" idRef="Release"/>
          <operator type="equal"/>
          <operand type="literal" value="1"/>
          <operator type="and"/>
          <operand type="signal" idRef="Release" delay="1"/>
          <operator type="equal"/>
          <operand type="literal" value="0"/>
        </operand>
        <text>1 WHEN (Release = 1 AND Release[-1] = 0)</text>
      </expression>
      <expression>
        <operand type="literal" value="0"/>
        <text>0 OTHERWISE</text>
      </expression>
    </output>
  </operation>
  <arc id="a089" type="read" source="Release" target="o087.Release"/>
  <transition id="t093" x="780" y="440" priority="0">
    <name off_x="-10" off_y="-10" text="t093"/>
    <comment off_x="-10" off_y="20" text="-"/>
  </transition>
  <place id="p094" x="900" y="440" init_marking="0">
    <name off_x="-10" off_y="-10" text="p094"/>
    <comment off_x="-10" off_y="20" text="-"/>
  </place>
  <arc id="a095" type="normal" source="t093" target="p094"/>
  <arc id="a096" type="read" source="p094" target="NewData"/>
  <transition id="t097" x="785" y="340" priority="0">
    <name off_x="-10" off_y="-10" text="t097"/>
    <comment off_x="-10" off_y="20" text="-"/>
  </transition>
  <arc id="a098" type="normal" source="p094" target="t097" c2_x="40" c2_y="5" c1_x="0" c1_y="-20"/>
  <operation id="o099" x="660" y="440" rot="0" shape="arrow" size="24">
    <name off_x="-19" off_y="-24" text="o099"/>
    <input off_x="-24" off_y="-8" name="p069" id="o099.p069" type="range" min="0" max="255" dynamic="all" frac="0"/>
    <input off_x="-24" off_y="8" name="o065" id="o099.o065" type="boolean" min="0" max="1" dynamic="all" frac="0"/>
    <output off_x="24" off_y="0" name="out" id="o099.out" type="boolean" min="0" max="1" dynamic="type" frac="0">
      <expression>
        <operand type="signal" idRef="p069"/>
        <operator type="equal"/>
        <operand type="literal" value="0"/>
        <operator type="and"/>
        <operand type="signal" idRef="o065"/>
        <operator type="equal"/>
        <operand type="literal" value="1"/>
        <text>p069 = 0 AND o065 = 1</text>
      </expression>
    </output>
  </operation>
  <arc id="a100" type="read" source="p069" target="o099.p069" c2_x="-26" c2_y="-12" c1_x="-35" c1_y="0"/>
  <arc id="a101" type="read" source="o099.out" target="t093"/>
  <arc id="a102" type="read" source="o065.out" target="o099.o065" view="symbolic"/>
  <arc id="a103" type="read" source="o087.out" target="t097"/>
  <operation id="o104" x="830" y="510" rot="-180" shape="arrow" size="16">
    <name off_x="-11" off_y="-16" text="o104"/>
    <input off_x="16" off_y="0" name="p094" id="o104.p094" type="range" min="0" max="255" dynamic="all" frac="0"/>
    <output off_x="-16" off_y="0" name="out" id="o104.out" type="range" min="0" max="255" dynamic="type" frac="0">
      <expression>
        <operand type="signal" idRef="p094" neg="true"/>
        <text>NOT(p094)</text>
      </expression>
    </output>
  </operation>
  <arc id="a105" type="read" source="p094" target="o104.p094" c2_x="34" c2_y="-5" c1_x="0" c1_y="0"/>
  <arc id="a106" type="read" source="o104.out" target="t093" c1_x="-14" c1_y="-5" c2_x="0" c2_y="0"/>
</net>
