<?xml version="1.0" encoding="UTF-8"?>
<net name="SimpleBuffer_Receiver_2Phase" type="iopt-flow">
  <place id="p003" x="585" y="355" init_marking="0">
    <name off_x="-10" off_y="-10" text="Ack"/>
    <comment off_x="0" off_y="20" text="-"/>
  </place>
  <transition id="t006" x="330" y="175" priority="0">
    <name off_x="-10" off_y="-10" text="t006"/>
    <comment off_x="-10" off_y="20" text="-"/>
  </transition>
  <event id="Delay" x="505" y="120" mode="input"/>
  <signal id="Ack" x="650" y="355" mode="output" type="boolean" min="0" max="1" dynamic="none" frac="0" value="0"/>
  <arc id="a017" type="read" source="p003" target="Ack"/>
  <signal id="Req" x="870" y="175" mode="input" type="boolean" min="0" max="1"/>
  <signal id="NewData" x="330" y="385" mode="output" type="boolean" min="0" max="1" dynamic="none" frac="0" value="0"/>
  <place id="p038" x="330" y="310" init_marking="0">
    <name off_x="-10" off_y="-10" text="DataReady"/>
    <comment off_x="0" off_y="20" text="-"/>
  </place>
  <transition id="t040" x="205" y="310" priority="0">
    <name off_x="-10" off_y="-10" text="t040"/>
    <comment off_x="-10" off_y="20" text="-"/>
  </transition>
  <arc id="a042" type="read" source="p038" target="NewData"/>
  <arc id="a046" type="normal" source="p038" target="t040"/>
  <arc id="a047" type="normal" source="t006" target="p038"/>
  <place id="p017" x="270" y="240" init_marking="1">
    <name off_x="-10" off_y="-10" text="DataReady_cmpl"/>
    <comment off_x="0" off_y="20" text="-"/>
  </place>
  <arc id="a018" type="normal" source="t040" target="p017"/>
  <arc id="a019" type="normal" source="p017" target="t006"/>
  <operation id="o020" x="770" y="185" rot="-180" shape="arrow" size="16">
    <name off_x="-11" off_y="-16" text="o020"/>
    <input off_x="16" off_y="0" name="Req" id="o020.Req" type="boolean" min="0" max="1" dynamic="all"/>
    <output off_x="-16" off_y="0" name="out" id="o020.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="a021" type="read" source="Req" target="o020.Req"/>
  <transition id="t023" x="680" y="175" priority="0">
    <name off_x="-10" off_y="-10" text="t023"/>
    <comment off_x="-10" off_y="20" text="-"/>
  </transition>
  <place id="p024" x="585" y="175" init_marking="0">
    <name off_x="-10" off_y="-10" text="ReqReceived"/>
    <comment off_x="0" off_y="20" text="-"/>
  </place>
  <arc id="a025" type="read" source="o020.out" target="t023"/>
  <arc id="a026" type="normal" source="t023" target="p024"/>
  <transition id="t028" x="530" y="280" priority="0">
    <name off_x="-10" off_y="-10" text="t028"/>
    <comment off_x="-10" off_y="20" text="-"/>
  </transition>
  <transition id="t029" x="585" y="245" priority="0">
    <name off_x="-10" off_y="-10" text="t029"/>
    <comment off_x="-10" off_y="20" text="-"/>
  </transition>
  <arc id="a032" type="normal" source="p003" target="t029"/>
  <arc id="a033" type="normal" source="t028" target="p003"/>
  <place id="p035" x="685" y="280" init_marking="1">
    <name off_x="-10" off_y="-10" text="Ack_cmpl"/>
    <comment off_x="0" off_y="20" text="-"/>
  </place>
  <arc id="a036" type="normal" source="t029" target="p035"/>
  <arc id="a037" type="normal" source="p035" target="t028"/>
  <transition id="t059" x="505" y="175" priority="0">
    <name off_x="-10" off_y="-10" text="t059"/>
    <comment off_x="-10" off_y="20" text="-"/>
  </transition>
  <place id="p060" x="420" y="175" init_marking="0">
    <name off_x="-10" off_y="-10" text="Buffer"/>
    <comment off_x="0" off_y="20" text="-"/>
  </place>
  <arc id="a061" type="normal" source="p024" target="t059"/>
  <arc id="a062" type="normal" source="t059" target="p060"/>
  <arc id="a063" type="normal" source="p060" target="t006"/>
  <arc id="a064" type="read" source="Delay" target="t059"/>
  <arc id="a065" type="read" source="t059" target="t028"/>
  <arc id="a066" type="read" source="t059" target="t029"/>
  <event id="Release" x="205" y="175" mode="input"/>
  <arc id="a020" type="read" source="Release" target="t040"/>
  <operation id="o021" x="385" y="115" rot="0" shape="arrow" size="24">
    <name off_x="-19" off_y="-24" text="o021"/>
    <input off_x="-24" off_y="-8" name="p060" id="o021.p060" type="range" min="0" max="255" dynamic="all" frac="0"/>
    <input off_x="-24" off_y="8" name="BufferSize" id="o021.BufferSize" type="range" min="0" max="255" dynamic="all" frac="0"/>
    <output off_x="24" off_y="0" name="out" id="o021.out" type="boolean" min="0" max="1" dynamic="type" frac="0">
      <expression>
        <operand type="signal" idRef="p060"/>
        <operator type="less"/>
        <operand type="signal" idRef="BufferSize"/>
        <text>p060 &lt; BufferSize</text>
      </expression>
    </output>
  </operation>
  <arc id="a024" type="read" source="p060" target="o021.p060" view="symbolic"/>
  <signal id="BufferSize" x="255" y="125" mode="input" type="range" min="0" max="255" frac="0" value="0" dynamic="none"/>
  <arc id="a027" type="read" source="BufferSize" target="o021.BufferSize"/>
  <arc id="a028" type="read" source="o021.out" target="t059"/>
  <signal id="Buffer" x="420" y="265" mode="output" type="range" min="0" max="255" dynamic="type" frac="0"/>
  <arc id="a030" type="read" source="p060" target="Buffer"/>
</net>
