efpip_pru.C

#include <stream.h>
#include <block.h>
#include <strio.h>
#include "all.h"
#include "new_ents.h"
 
main(int argc,char ** argv)
{
        efa * efa1 = new efa("efa1");
        block * pcells1 = new block("pcells1");
        for (int i= 3;i>=0;i--)
          for (int j= 0;j>=0;j--)
               pcells1->add(new pcell(name_gen("pcell",i,j)
               ,new addrclass(i,j),3)) ;
        pcells1->set_top_block();
        pcells1->add_coupling("out","in");
        efa1->add(pcells1);
        ef * ef1 = new ef("ef1") ;
        adgenr * adgenr1 = new adgenr("adgenr1",10);

Note: constructors must be hand taylored

ef1->add(adgenr1); transd * transd1 = new transd("transd1",100); ef1->add(transd1); pcells1->add_coupling("finalout",ef1,"in");

Note: block output coupling was relocated to occur after ef1

adgenr1->add_coupling(adgenr1,"out",transd1,"ariv"); adgenr1->add_coupling(adgenr1,"out",ef1,"out"); transd1->add_coupling(transd1,"out",ef1,"result"); transd1->add_coupling(transd1,"out",adgenr1,"stop"); ef1->add_coupling(ef1,"start",adgenr1,"start"); ef1->add_coupling(ef1,"in",transd1,"solved"); efa1->add(ef1); pcells1->add_coupling(pcells1,"out",ef1,"in"); ef1->add_coupling(ef1,"result",efa1,"out"); ef1->add_coupling(ef1,"out",pcells1,"in"); efa1->add_coupling(efa1,"start",ef1,"start"); efa1->initialize(); efa1->inject("start",new entity("null")); efa1->start_sim(argc,argv); }