Skip to content

Using feature-group specific flow paths has instance model errors for the "path not taken". #1984

@AaronGreenhouse

Description

@AaronGreenhouse

Summary

Flow path implementations can be between feature group features so as to be specify the exact route of the flow path. When the model is instantiated an end to end flow using such a flow path will follow that specific path only, and not all possible paths. This seems to be working fine. However, errors may be present on the instance model regarding the inability to connect the flow path with other incoming and outgoing connections because the flow path doesn't mention their start or end port, respectively.

Expected and Current Behavior

There should be no such such errors generated in this case because the point of specific flow path implementation is to indicate the exact path through the "feature group connection" that is of interest.

Steps to Reproduce

  1. Instantiate process top.specific
  2. You should get an instance model that has 8 semantic connections and 1 end to end flow e2e
  3. The model will have two errors attached to top_specific_instance
  • Cannot create end to end flow 'e2e' because flow 'fpath' does not connect to the start of the semantic connection 't.fg2.x_in1 -> q.fg2.x_in1'
  • Cannot create end to end flow 'e2e' because the end of the semantic connection 'q.fg1.x_in2 -> t.fg1.x_in2' does not connect to the start of flow 'fpath'

These 2 errors are not appropriate in this case.

package FGConnections
public
    feature group FG
    	features
	    	x_in1: in data port;
	    	x_in2: in data port;
	    	x_out1: out data port;
	    	x_out2: out data port;
    end FG;

	feature group FG_inverse inverse of FG
	end FG_inverse;

    subprogram sub
        features
            p1: in parameter;
            p2: out parameter;
        flows
            subPath: flow path p1 -> p2;
    end sub;
    
    thread th
    	features
    		fg1: feature group FG;
    		fg2: feature group FG_inverse;
    	flows
    		fpath: flow path fg1 -> fg2;
    end th;
    
    thread implementation th.specific
    	flows
    		fpath: flow path fg1.x_in1 -> fg2.x_in2;
    end th.specific;
        
    thread th2
    	features
    		fg1: feature group FG_inverse;
    		fg2: feature group FG;
    	flows
    		fsrc: flow source fg1;
    		fsnk: flow sink fg2;
    end th2;
    
    thread implementation th2.i
    	-- trivial
    end th2.i;
    
    process top
    end top;
    
    process implementation top.specific
        subcomponents
            t: thread th.specific;
            q: thread th2.i;
        connections
            c1: feature group q.fg1 <-> t.fg1;
            c2: feature group t.fg2 <-> q.fg2;
        flows
            e2e: end to end flow q.fsrc -> c1 -> t.fpath -> c2 -> q.fsnk;
    end top.specific;
end FGConnections;

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions