simparc_ses.h

 

#include <ses.h>


class simparc_ses: public ses
  public:

        simparc_ses():ses("simparc"){

        ent * efa = make_ent("efa");
        set_root(efa);
        asp * efa_dec = make_asp("efa_dec");

        add_asp_to_ent(efa_dec,efa);

        ent * ef = make_ent("ef");
        asp * ef_dec = make_asp("ef_dec");
        add_asp_to_ent(ef_dec,ef);
        ent * gener  = make_ent("gener");
        spec * genr_spec = make_spec("genr_spec");
        add_spec_to_ent(genr_spec,gener);
        ent * genr  = make_ent("genr");
        ent * adgenr  = make_ent("adgenr");
        add_ent_to_spec(genr,genr_spec);
        add_ent_to_spec(adgenr,genr_spec);

        ent * transd = make_ent("transd");
        add_ent_to_asp(gener,ef_dec);
        add_ent_to_asp(transd,ef_dec);
        add_coupling(ef_dec,ef, "in", transd, "solved");
        add_coupling(ef_dec,ef, "start", gener, "start");
        add_coupling(ef_dec,transd,"out",gener,"stop");
        add_coupling(ef_dec,transd, "out", ef, "result");
        add_coupling(ef_dec,gener, "out",ef, "out");
        add_coupling(ef_dec,gener, "out", transd, "ariv");


        ent * arch  = make_ent("arch");

        add_ent_to_asp(ef,efa_dec);
        add_ent_to_asp(arch,efa_dec);

        add_coupling(efa_dec,efa,"start",ef,"start");
        add_coupling(efa_dec,ef,"out",arch,"in");
        add_coupling(efa_dec,ef,"result",efa,"out");
        add_coupling(efa_dec,arch,"out",ef,"in");

        spec * arch_spec = make_spec("arch_spec");
        ent * proc = make_ent("proc");
        add_ent_to_spec(proc,arch_spec);
        add_spec_to_ent(arch_spec,arch);

        ent * dc = make_ent("dc");
        add_ent_to_spec(dc,arch_spec);

        ent * mul = make_ent("mul");
        add_ent_to_spec(mul,arch_spec);

        multent * pcells = make_multent("pcells",3,0); 
        pipeline block model 
        ent * pcell = make_ent("pcell");
        set_ent(pcells,pcell);
        add_coupling(pcells,"out","in");
        add_ent_to_spec(pcells,arch_spec);
        add_coupling(pcells,"finalout", ef, "in");


   }
};