HOME   PREV   NEXT (Automatic Synthesis of Glue and Interface Automata Continued)

Working Output

Wrap this up in a suitable wrapper and it works!

  SC_MODULE(xactor)
  {
  public:
    int state;
    bool call;
    bool DH;
    uint8_t DH_d, H8_d;
    void advance();

    void TLM_call(uint8_t d)
    {
      DH_d = d;
      DH = live;
      call = active;
      do { sc_wait(); } while (call != idle);
    }

    void process()
    {

      #include "generated_state_machine_code"
      printf("State Strobe=%i Ack=%i DL_d=%i, state=%i\n", Strobe, Ack, DL_d, state);
    }
  
    SC_CTOR(xactor)
    {
      SC_THREAD(process) ;
      ...
}

Here's the working output:

   State Strobe=0 Ack=0 DL_d=0, state=215
   State Strobe=0 Ack=0 DL_d=0, state=215
   State Strobe=0 Ack=0 DL_d=0, state=215
   State Strobe=0 Ack=0 DL_d=0, state=646
   State Strobe=0 Ack=0 DL_d=0, state=838
   State Strobe=1 Ack=0 DL_d=10, state=327
   netlevel4psink sink0: received data 10
   State Strobe=1 Ack=1 DL_d=10, state=807
   State Strobe=1 Ack=1 DL_d=10, state=794
   State Strobe=0 Ack=1 DL_d=10, state=775
   State Strobe=0 Ack=0 DL_d=10, state=786
   State Strobe=0 Ack=0 DL_d=10, state=790
   State Strobe=0 Ack=0 DL_d=10, state=502
   State Strobe=0 Ack=0 DL_d=10, state=646
   State Strobe=0 Ack=0 DL_d=10, state=646
   State Strobe=0 Ack=0 DL_d=10, state=646
   State Strobe=0 Ack=0 DL_d=10, state=646
   State Strobe=0 Ack=0 DL_d=10, state=838
   State Strobe=1 Ack=0 DL_d=10, state=327
   netlevel4psink sink0: received data 10
   State Strobe=1 Ack=1 DL_d=10, state=807
   State Strobe=1 Ack=1 DL_d=10, state=794
   State Strobe=0 Ack=1 DL_d=10, state=775
   State Strobe=0 Ack=0 DL_d=10, state=786
   State Strobe=0 Ack=0 DL_d=10, state=790
   State Strobe=0 Ack=0 DL_d=10, state=790
   State Strobe=0 Ack=0 DL_d=10, state=790