Application module: Network functional design view | ISO/TS 10303-1704:2018-11(E) © ISO |
This clause specifies the information requirements for the Network functional design view application module. The information requirements are specified as the Application Reference Model (ARM) of this application module.
NOTE 1 A graphical representation of the information requirements is given in Annex C.
NOTE 2 The mapping specification is specified in 5.1. It shows how the information requirements are met by using common resources and constructs defined or imported in the MIM schema of this application module.
This clause defines the information requirements to which implementations shall conform using the EXPRESS language as defined in ISO 10303-11. The following begins the Network_functional_design_view_arm schema and identifies the necessary external references.
EXPRESS specification:
*)
SCHEMA Network_functional_design_view_arm;
(*
The following EXPRESS interface statements specify the elements imported from the ARMs of other application modules.
EXPRESS specification:
*)
USE FROM
Assembly_structure_arm;
--
ISO/TS 10303-1026
USE FROM
Functional_usage_view_arm;
--
ISO/TS 10303-1705
USE FROM
Model_parameter_arm;
--
ISO/TS 10303-1703
USE FROM
Requirement_assignment_arm;
--
ISO/TS 10303-1233
(*
NOTE 1 The schemas referenced above are specified in the following part of ISO 10303:
Assembly_structure_arm ISO/TS 10303-1026 Functional_usage_view_arm ISO/TS 10303-1705 Model_parameter_arm ISO/TS 10303-1703 Requirement_assignment_arm ISO/TS 10303-1233
NOTE 2 See Annex C, Figures C.1, C.2and C.3 for a graphical representation of this schema.
This subclause specifies the ARM types for this application module. The ARM types and definitions are specified below.
The bus_structural_definition_or_node type allows for the designation of the data types Functional_unit_network_node_definition, and Bus_structural_definition.
EXPRESS specification:
*)
TYPE
bus_structural_definition_or_node =
SELECT
(Functional_unit_network_node_definition,
Bus_structural_definition);
END_TYPE;
(*
The nfdv_pa_or_parameter_assignment_override type allows for the designation of the data types Parameter_assignment, and Parameter_assignment_override.
EXPRESS specification:
*)
TYPE
nfdv_pa_or_parameter_assignment_override =
SELECT
(Parameter_assignment,
Parameter_assignment_override);
END_TYPE;
(*
The nfdw_requirement_assignment_item type is an extension of the requirement_assignment_item type. It adds the data type Functional_unit to the list of alternate data types.
EXPRESS specification:
*)
TYPE
nfdw_requirement_assignment_item =
SELECT
BASED_ON
requirement_assignment_item
WITH
(Functional_unit);
END_TYPE;
(*
This subclause specifies the ARM entities for this module. Each ARM application entity is an atomic element that embodies a unique application concept and contains attributes specifying the data elements of the entity. The ARM entities and definitions are specified below.
A Bus_element_link is a directed definitional and structural relationship between two nodes of a bus. A Bus_element_link has a single scope established by the composed_bus attribute. When the precedent_element or subsequent_element references a Bus_structural_definition the Bus_element_link is defining a composition relationship between a bus and a sub-bus. When the precedent_element or subsequent_element references a Functional_unit_network_node_definition the Bus_element_link is defining a leaf node of the bus by the reference.
NOTE 1 The elements that are related to a bus by a Bus_element_link are themselves independent of the bus.
NOTE 2 A node may participate in more than one bus.
NOTE 3 A single Bus_element_link may establish a sub-bus relationship as well as a leaf node relationship. This may be used when the bus is a collection of address, data, and control elements.
EXPRESS specification:
*)
ENTITY Bus_element_link;
precedent_element : bus_structural_definition_or_node;
subsequent_element : bus_structural_definition_or_node;
INVERSE
composed_bus : Bus_structural_definition FOR composition;
UNIQUE
UR1: precedent_element, subsequent_element;
WHERE
WR1: precedent_element <> subsequent_element;
END_ENTITY;
(*
Attribute definitions:
precedent_element: the first bus_structural_definition_or_node for the Bus_element_link. It may be a Functional_unit_network_node_definition or a Bus_structural_definition
subsequent_element: the second bus_structural_definition_or_node for the Bus_element_link. It may be a Functional_unit_network_node_definition or a Bus_structural_definition
composed_bus: the Bus_structural_definition the Bus_element_link is helping to compose.
Formal propositions:
UR1: The combination of precedent_element and subsequent_element shall be unique within a population of Bus_element_links.
WR1: The precedent_element and the subsequent_element can not be the same Bus_element_link.
A Bus_structural_definition is the description of the structure of the bus. If a bus were to be represented by a graph, the Bus_structural_definition would be a root node for the bus in that representation.
EXAMPLE A computer bus may be composed of data and addresses buses, each of which has its own internal structure. The computer bus would not be directly referencing nodes in the netlist. Only the address and data buses would directly reference nodes.
NOTE 1 A bus is a composition concept. Once defined, the bus definition can be used in various connectivity related aspects of the design. Several of the possible usages are conflicting and rules are provided to ensure unambiguous data. The structure of the reference model prohibits certain conflicting usages from occurring simultaneously.
NOTE 2 The ordering of elements in the bus is defined by the set of Bus_element_link. Because the definition is acyclic, the first element is the element that is referenced by exactly one Bus_element_link. where that Bus_element_link references the element with the precedent_element. The last element in the bus is also referenced by exactly one Bus_element_link. That last element is referenced by the subsequent_element.
NOTE 3 Leaf nodes of the bus are Functional_unit_network_node_definition.
NOTE 4 Reuse of a bus is most easily accomplished by creating a Functional_unit_network_definition as a template. Applications will need to copy the relevant bus structure into target members of Functional_unit_network_definition.
EXPRESS specification:
*)
ENTITY Bus_structural_definition;
bus_name : STRING;
composition : SET[1:?] OF Bus_element_link;
INVERSE
external_bus_access : SET[0:1] OF Functional_unit_network_terminal_definition_bus_assignment FOR connected_bus;
UNIQUE
UR1: bus_name;
WHERE
WR1: consistent_bus_structural_definition(composition);
END_ENTITY;
(*
Attribute definitions:
bus_name: specifies the string identifying the Bus_structural_definition.
NOTE 5 A project may establish project wide default names for buses. The identifier should then be globally unique within that project.
composition: a set of Bus_element_link for the Bus_structural_definition. There shall be one or more Bus_element_link for each Bus_structural_definition.
external_bus_access: specifies an inverse relationship that specifies that the existence of the Bus_structural_definition is dependent on the existence of the Functional_unit_network_terminal_definition_bus_assignment that specifies the Bus_structural_definition as its connected_bus. There shall be zero or one Functional_unit_network_terminal_definition_bus_assignment for a particular Bus_structural_definition. The value of this attribute need not be specified.
Formal propositions:
UR1: The bus_name shall be unique within a population of Bus_structural_definitions.
WR1: The Bus_element_links must be defined consistently for a composition.
A Functional_unit is a type of Product_view_definition. A Functional_unit is an occurrence of a Functional_unit_definition in the composition of a Functional_unit_network_definition. Property values may be defined in the definition or may be specified in this Application Object.
EXAMPLE 1 Resistance, Capacitance, Inductance primitive models for a specific simulation engine contain only the underlying linear equations to characterize the dynamic behaviour and there is an infinite number of values for the controlling variable. The specific value assigned is applied at the Functional_unit.
EXAMPLE 2 A processor model is obtained from a simulation model supplier with fixed value parameters. In this case the values would not be modified in the Functional_unit.
EXAMPLE 3 Figure 1 is an illustration of a multi-level hierarchical network showing hierarchical decomposition relationships. In the illustration, the upper portion is a network definition of a two bit adder, while the lines between the upper portion and the lower portion represent the identification that the lower portion is the definition of two of the blocks in the upper portion. The network definition of the two bit adder is composed of two one bit adders, each included by reference. The network definition of a one bit adder is shown in the lower portion of Figure 1. The one bit adder is composed of two NOR gates, two AND gates and one OR gate. Each gate may be further decomposed but for clarity is not in this illustration. The three levels of hierarchical decomposition are the two bit adder, the one bit adder and the leaf elements, the gates. The leaf elements are not dependent on the upper levels but each upper level is dependent on the lower levels. There would be at least four symbols and five usage views needed to support the two bit adder: symbol and corresponding usage view for NOR, AND, OR and one bit adder; usage view for two bit adder. If a designer wished to use the two bit adder to create e.g., a four bit adder, a symbol for the two bit adder would also be needed.
NOTE The illustration in Figure 1 is a composite of several diagrams. The upper portion of Figure 1 shows two schematic diagrams. The lower portion of Figure 1 shows a symbol diagram. In a typical workflow each diagram would have its own editing context and physical file. For clarity, only ADDER2 is shown defined by the ADDER but of course both ADDER1 and ADDER2 are defined by the ADDER.
EXPRESS specification:
*)
ENTITY Functional_unit
SUBTYPE OF (Product_view_definition);
composed_network : Functional_unit_network_definition;
definition : Functional_unit_definition;
SELF\Product_view_definition.id RENAMED reference_designation : STRING;
functional_property :
OPTIONAL
SET[1:?] OF nfdv_pa_or_parameter_assignment_override;
DERIVE
SELF\Product_view_definition.defined_version : Functional_version := definition\Functional_unit_definition.defined_version;
INVERSE
access_mechanisms : SET[1:?] OF Functional_unit_terminal FOR accessed_functional_unit;
UNIQUE
UR1: reference_designation, composed_network;
END_ENTITY;
(*
Attribute definitions:
composed_network: specifies the role of the Functional_unit_network_definition for the Functional_unit.
definition: specifies the role of the Functional_unit_definition for the Functional_unit.
reference_designation: specifies the name that identifies the Functional_unit, in the context of the Functional_unit_network_definition.
functional_property: specifies the role of the nfdv_pa_or_parameter_assignment_override for the Functional_unit. There shall be one or more nfdv_pa_or_parameter_assignment_override for the Functional_unit. The value of this attribute need not be specified. When a member of Parameter_assignment_override is provided, the interpretation shall be that the value provided for that member replaces the value provided by the member of Parameter_assignment for the Functional_unit_definition in the role of definition when the assigned_parameter are identical.
defined_version: an attribute inherited from the Product_view_definition shall be redeclared as the Product_version for the Functional_unit.
access_mechanisms: an inverse relationship that specifies that the existence of the Functional_unit is dependent on the existence of the Functional_unit_terminal that specifies the Functional_unit as its accessed_functional_unit. There shall be one or more Functional_unit_terminals for a Functional_unit.
Formal propositions:
UR1: The combination of reference_designation and composed_network shall be unique within a population of Functional_units.
A Functional_unit_network_definition is a type of Functional_unit_definition that is composed of one or more Functional_unit, several members of Functional_unit_network_node_definition and relevant assignments.
NOTE In industrial usage, a Functional_unit_network_definition may be represented by the structural portion of a SPICE netlist but there are no specific mappings to SPICE included in this standard. An AP or AM that uses this AM may specialize the Functional_unit_network_definition to differentiate between design elements and test and evaluation artifacts.
EXPRESS specification:
*)
ENTITY Functional_unit_network_definition
SUBTYPE OF (Functional_unit_definition);
usage_view : Functional_unit_usage_view;
END_ENTITY;
(*
Attribute definitions:
usage_view: specifies the role of the Functional_unit_usage_view for the Functional_unit_network_definition.
A Functional_unit_network_node_definition is a type of Product_view_definition. A Functional_unit_network_node_definition is the definition of a node in the Functional_unit_network_definition.
EXPRESS specification:
*)
ENTITY Functional_unit_network_node_definition
SUBTYPE OF (Product_view_definition);
associated_functional_unit_definition : Functional_unit_network_definition;
SELF\Product_view_definition.additional_characterization RENAMED functional_unit_network_node_name : STRING;
DERIVE
SELF\Product_view_definition.defined_version : Functional_version := associated_functional_unit_definition.defined_version;
valid_conservative_node : LOGICAL := (( SIZEOF ( USEDIN ( SELF , 'NETWORK_FUNCTIONAL_DESIGN_VIEW_ARM.BUS_ELEMENT_LINK.PRECEDENT_ELEMENT' )) +
SIZEOF ( USEDIN ( SELF , 'NETWORK_FUNCTIONAL_DESIGN_VIEW_ARM.BUS_ELEMENT_LINK.SUBSEQUENT_ELEMENT' )) +
SIZEOF ( USEDIN ( SELF , 'NETWORK_FUNCTIONAL_DESIGN_VIEW_ARM.FUNCTIONAL_UNIT_TERMINAL_NODE_ASSIGNMENT.COMPOSED_NODE')) +
SIZEOF ( external_node_access ) ) > 1 );
INVERSE
external_node_access : SET[0:1] OF Functional_unit_network_terminal_definition_node_assignment FOR composed_node;
UNIQUE
UR1: functional_unit_network_node_name, associated_functional_unit_definition;
WHERE
WR1: EXISTS(valid_conservative_node);
END_ENTITY;
(*
Attribute definitions:
associated_functional_unit_definition: specifies the Functional_unit_network_definition that the Functional_unit_network_node_definition is helping to compose.
functional_unit_network_node_name: an attribute identifies the Functional_unit_network_node_definition in the context of the associated_functional_unit_definition.
defined_version: an attribute inherited from the Product_view_definition shall be redeclared as the Functional_version for the Functional_unit_network_node_definition.
valid_conservative_node: an attribute is TRUE only if the sum of usages of Functional_unit_network_node_definition in Bus_element_link as precedent_element or subsequent_element, and in Functional_unit_terminal_node_assignment as composed_node, and size of external_node_access is greater than one.
external_node_access: specifies an inverse relationship that specifies that the existence of the Functional_unit_network_node_definition is dependent on the existence of the Functional_unit_network_terminal_definition_node_assignment that specifies the Functional_unit_network_node_definition as its composed_node. There shall be no more than one Functional_unit_network_terminal_definition_node_assignment for a particular Functional_unit_network_node_definition.
Formal propositions:
UR1: The combination of functional_unit_network_node_name and associated_functional_unit_definition shall be unique within a population of Functional_unit_network_node_definitions.
WR1: The valid_conservative_node shall be provided.
Informal propositions:
IP1: A member of Functional_unit_network_node_definition that is helping to compose an approved electrical or thermal network definition shall be referenced by at least one of the following: a member of Bus_element_link; a member of Functional_unit_terminal_node_assignment.
IP2: A member of Functional_unit_network_node_definition that is helping to compose an approved electrical or thermal network definition shall be referenced by no more than one member of Functional_unit_network_terminal_definition_node_assignment.
IP3: Each member of Functional_unit_network_node_definition shall be referenced by no more than one member of Aggregate_connectivity_requirement for a specific physical partition.
NOTE Some nodes are not connected to external terminals.
EXPRESS specification:
*)
ENTITY Functional_unit_network_terminal_definition_bus_assignment;
connected_bus : Bus_structural_definition;
connected_terminal : Functional_unit_usage_view_terminal_definition;
UNIQUE
UR1: connected_bus, connected_terminal;
END_ENTITY;
(*
Attribute definitions:
connected_bus: specifies the role of the Bus_structural_definition for the Functional_unit_network_terminal_definition_bus_assignment.
connected_terminal: specifies the role of the Functional_unit_usage_view_terminal_definition for the Functional_unit_network_terminal_definition_bus_assignment.
Formal propositions:
UR1: The combination ofconnected_bus and connected_terminal shall be unique within a population of Functional_unit_network_terminal_definition_bus_assignments.
EXPRESS specification:
*)
ENTITY Functional_unit_network_terminal_definition_node_assignment;
composed_node : Functional_unit_network_node_definition;
connected_terminal : Functional_unit_usage_view_terminal_definition;
UNIQUE
UR1: composed_node, connected_terminal;
END_ENTITY;
(*
Attribute definitions:
composed_node: specifies the role of the Functional_unit_network_node_definition for the Functional_unit_network_terminal_definition_node_assignment.
connected_terminal: specifies the role of the Functional_unit_usage_view_terminal_definition for the Functional_unit_network_terminal_definition_node_assignment.
Formal propositions:
UR1: The combination of composed_node and connected_terminal shall be unique within a population of Functional_unit_network_terminal_definition_node_assignments.
EXPRESS specification:
*)
ENTITY Functional_unit_terminal;
accessed_functional_unit : Functional_unit;
definition : Functional_unit_usage_view_terminal_definition;
INVERSE
bus_assignment : SET[0:1] OF Functional_unit_terminal_bus_assignment FOR connected_terminal;
node_assignment : SET[0:1] OF Functional_unit_terminal_node_assignment FOR connected_terminal;
END_ENTITY;
(*
Attribute definitions:
accessed_functional_unit: specifies the Functional_unit whose functionality is accessed by the Functional_unit_terminal.
definition: specifies the role of the Functional_unit_usage_view_terminal_definition for the Functional_unit_terminal.
bus_assignment: an inverse relationship that specifies that the existence of the Functional_unit_terminal is dependent on the existence of the Functional_unit_terminal_bus_assignment that specifies the Functional_unit_terminal as its connected_terminal. There shall be no more than one Functional_unit_terminal_bus_assignment for a Functional_unit_terminal.
node_assignment: an inverse relationship that specifies that the existence of the Functional_unit_terminal is dependent on the existence of the Functional_unit_terminal_node_assignment that specifies the Functional_unit_terminal as its connected_terminal. There shall be no more than one Functional_unit_terminal_node_assignment for a Functional_unit_terminal.
A Functional_unit_terminal_bus_assignment is the relationship between the structural definition of a bus and a terminal that is assigned to the bus. The members of Functional_unit_terminal that are assigned to the same bus by this application object are defined to be connected to each other.
NOTE There are cardinality constraints levied to ensure that the cardinality as resolved through all the references is identical.
EXPRESS specification:
*)
ENTITY Functional_unit_terminal_bus_assignment;
connected_bus : Bus_structural_definition;
connected_terminal : Functional_unit_terminal;
END_ENTITY;
(*
Attribute definitions:
connected_bus: specifies the role of the Bus_structural_definition for the Functional_unit_terminal_bus_assignment.
connected_terminal: specifies the role of the Functional_unit_terminal for the Functional_unit_terminal_bus_assignment.
EXPRESS specification:
*)
ENTITY Functional_unit_terminal_node_assignment;
composed_node : Functional_unit_network_node_definition;
connected_terminal : Functional_unit_terminal;
END_ENTITY;
(*
Attribute definitions:
composed_node: specifies the role of the Functional_unit_network_node_definition for the Functional_unit_terminal_node_assignment.
connected_terminal: specifies the role of the Functional_unit_terminal for the Functional_unit_terminal_node_assignment.
This subclause specifies the ARM subtype constraint for this module. The subtype constraint places a constraint on the possible super-type / subtype instantiations. The ARM subtype constraint and definition is specified below.
The functional_unit_definition_subtypes constraint specifies a constraint that applies to instances of Functional_unit_definition and enforces the rule that its subtypes Functional_unit_network_definition and Functional_unit_usage_view are exclusive.
EXPRESS specification:
*)
SUBTYPE_CONSTRAINT functional_unit_definition_subtypes FOR Functional_unit_definition;
ONEOF (Functional_unit_network_definition,
Functional_unit_usage_view);
END_SUBTYPE_CONSTRAINT;
(*
This subclause specifies the ARM function for this module. The ARM function and definition is specified below.
It returns True if the size of the set of Bus_element_links specified by the input is smaller by one than the size of the set composed of precedent_elements and subsequent_elements of members of input, and if there does not exist an item that is refered by more than two members of input as a precedent_element or a subsequent_element.
It returns False otherwise.
EXPRESS specification:
*)
FUNCTION consistent_bus_structural_definition (input : SET[0:?] OF Bus_element_link) : BOOLEAN;
LOCAL vertex : SET OF bus_structural_definition_or_node := []; edge : INTEGER := SIZEOF(input); vc : INTEGER := 0; vertex_degree : INTEGER := 0; END_LOCAL; REPEAT i := 1 TO SIZEOF(input) BY 1; vertex := vertex + input[i].precedent_element; vertex := vertex + input[i].subsequent_element; END_REPEAT; vc := SIZEOF(vertex); IF (vc <> (edge + 1)) THEN RETURN(FALSE); END_IF; REPEAT i := 1 TO vc BY 1; vertex_degree := 0; REPEAT j := 1 TO SIZEOF(input) BY 1; IF input[j].precedent_element = vertex[i] THEN vertex_degree := vertex_degree + 1; END_IF; IF input[j].subsequent_element = vertex[i] THEN vertex_degree := vertex_degree + 1; END_IF; END_REPEAT; IF (vertex_degree > 2) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE);
END_FUNCTION;
(*
Argument definitions:
input: the specified set of Bus_element_links.
*)
END_SCHEMA; -- Network_functional_design_view_arm
(*
© ISO 2018 — All rights reserved