HiLeS_To_VHdl/ArcFrom_Functional [ Rules ]

[ Top ] [ Rules ]

SUMMARY

Transfotrm an Arc from a HiLeS Functional block to a Vhdl Signal, Port and asosciation. ($Rev: 465 $)

DESCRIPTION

Diffrently form Structural Blocks, arc's from a Functional Block to a transition are connected to the transitions' c_t port. Create one vhdl!Signal, one vhdl!SignalPort and one vhdl!Association.

SEE ALSO

DOMAIN

SPECIFICATION

        relation ArcFrom_Functional
        {
            checkonly domain HiLeS arc:Arc {
                activity = a:Activity{},
                name = nn,
                behavior = nb:Behavior{},
            }
            enforce domain vhdl s_c_t:Signal {
                s_c_t.identifier = "c_t_" + arc.from_point.owner.name + "_" + arc.to_node.name;
                s_c_t.subtype = new vhdl!Subtype;
                s_c_t.subtype.type = vhdl!Types#std_logic;
            }
            enforce domain vhdl sp_c_t:SignalPort {
                sp_c_t.identifier = arc.from_point.name + "_c_t";
                sp_c_t.mode = vhdl!PortMode#out;
                sp_c_t.subtype = new vhdl!Subtype;
                sp_c_t.subtype.type = vhdl!Types#std_logic;
            }
            enforce domain vhdl a_c_t:Association {
                a_c_t.formalPart = sp_c_t.identifier;
                a_c_t.actual = new vhdl!Actual;
                a_c_t.actual.signal = s_c_t;
            }
            when {
                ActivityPetriNet(a, pn, arch);
                arc.from_point.isDefined() and arc.from_point.owner.isTypeOf(hiles!Functional)
            }
            where {
                StrcuturalBlockBehavior(getParentBlock(nb), sb, pt1, pt2);
                sb.associated = p2;
            }
        }