Network List
Networklist can be used to map:
- Interfaces to Interfaces
- Interfaces To Components
- Components to Components
For the ATML demonstrations the UUT is built directly from common components resistors capacitors transistors etc. Describing these components is a edge use case for the ATML hardware descriptions. What is described below will be changed in future releases of the 'dot' standards and therefore replicating its use should be considered carefully.
Conceptually a NetworkList is a series on Networks, where each Network is a collection of nodes which are all jointed together, where each is identified by an XPath (within the document) to an Port.
Note: A lot of these connections where written by hand, mainly because of the lack of tools available, its a tedious and error prone exercise. if you do need to do it yourself, and do not have the necessary tool support, try and check each XPath with a XML checker. XMLSpy and Liquid XML have a such features which may be of use.
Walkthrough
In generating the NetworkList, for every set of pins, represented
by their ports are connected together, a c:Network
element is added with each c:Node
representing each port
As an example the following identifies that the interface port
Vin is connected to
capacitor C1 input
<hc:Path>//uut:Hardware/hc:Interface/c:Ports/c:Port[@name="Vin"]</hc:Path>
</hc:Node>
<hc:Path>//uut:Hardware/hc:Components/hc:Component[@ID="C1"]/c:Definition/hc:Interface/c:Ports/c:Port[@name="a"]</hc:Path>
</hc:Node>
</hc:Network>
or alternatively that capacitor C1
output is connected to switch K1
input is connected
<hc:Path>//uut:Hardware/hc:Components/hc:Component[@ID="C1"]/c:Definition/hc:Interface/c:Ports/c:Port[@name="b"]</hc:Path>
</hc:Node>
<hc:Path>//uut:Hardware/hc:Components/hc:Component[@ID="K1"]/c:Definition/hc:Interface/c:Ports/c:Port[@name="in"]</hc:Path>
</hc:Node>
</hc:Network>
There is no limit to the number of nodes that can be connected in
a single network, in the following example not only are there
multiple nodes but the GND XPath finds multiple Ports to connect
<hc:Path>//uut:Hardware/hc:Interface/c:Ports/c:Port[@name="GND"]</hc:Path>
</hc:Node>
<hc:Path>//uut:Hardware/hc:Components/hc:Component[@ID="K2"]/c:Definition/hc:Interface/c:Ports/c:Port[@name="out"]</hc:Path>
</hc:Node>
<hc:Path>//uut:Hardware/hc:Components/hc:Component[@ID="K6"]/c:Definition/hc:Interface/c:Ports/c:Port[@name="out"]</hc:Path>
</hc:Node>
<hc:Path>//uut:Hardware/hc:Components/hc:Component[@ID="R7"]/c:Definition/hc:Interface/c:Ports/c:Port[@name="b"]</hc:Path>
</hc:Node>
<hc:Path>//uut:Hardware/hc:Components/hc:Component[@ID="R5"]/c:Definition/hc:Interface/c:Ports/c:Port[@name="b"]</hc:Path>
</hc:Node>
<hc:Path>//uut:Hardware/hc:Components/hc:Component[@ID="IC1"]/c:Definition/hc:Interface/c:Ports/c:Port[@name="GND"]</hc:Path>
</hc:Node>
<hc:Path>//uut:Hardware/hc:Components/hc:Component[@ID="IC1"]/c:Definition/hc:Interface/c:Ports/c:Port[@name="CS"]</hc:Path>
</hc:Node>
<hc:Path>//uut:Hardware/hc:Components/hc:Component[@ID="IC1"]/c:Definition/hc:Interface/c:Ports/c:Port[@name="B1"]</hc:Path>
</hc:Node>
<hc:Path>//uut:Hardware/hc:Components/hc:Component[@ID="MOD1"]/c:Definition/hc:Interface/c:Ports/c:Port[@name="GND"]</hc:Path>
</hc:Node>
<hc:Path>//uut:Hardware/hc:Components/hc:Component[@ID="IC4"]/c:Definition/hc:Interface/c:Ports/c:Port[@name="GND"]</hc:Path>
</hc:Node>
<hc:Path>//uut:Hardware/hc:Components/hc:Component[@ID="IC2"]/c:Definition/hc:Interface/c:Ports/c:Port[@name="GND"]</hc:Path>
</hc:Node>
<hc:Path>//uut:Hardware/hc:Components/hc:Component[@ID="IC3"]/c:Definition/hc:Interface/c:Ports/c:Port[@name="GND"]</hc:Path>
</hc:Node>
<hc:Path>//uut:Hardware/hc:Components/hc:Component[@ID="C4"]/c:Definition/hc:Interface/c:Ports/c:Port[@name="b"]</hc:Path>
</hc:Node>
<hc:Path>//uut:Hardware/hc:Components/hc:Component[@ID="C5"]/c:Definition/hc:Interface/c:Ports/c:Port[@name="b"]</hc:Path>
</hc:Node>
</hc:Network>