Circuit

 

Component: At circuit structural level, components are NMOS/PMOS

Connector: connectors are wire,

Interface: input/output ports

Link:

Example: We have the following inverter example:

 

 

 

 

 

From xADL2.0 point of view, the above structure may look like:

 

 

<! - - Namespace Declaration - ->

<?xml version = “1.0”  encoding = “UTF-8” ?>

<xArch  xmlns = “http://www.ics.uci.edu/pub/arch/xArch/instance.xsd”

xmlns:instance = “http://www.ics.uci.edu/pub/arch/xArch/instance.xsd”

xmlns:types = “http://www.ics.uci.edu/pub/arch/xArch/types.xsd”

xmlns:xlink = “http://www.w3.org/1999/xlink”

xmlns:xsi = “http://www.w3.org/2000/10/XMLSchema-instance”>

 

<types:archStructure xsi:type = “types:ArchStructure”>

 

<! - - Component: PMOS description - ->

<types:component instance:id = “PMOSComp” xsi:type = “types:Component”>

                  <types:description xsi:type = “instance:Description”>PMOS</types:description>

<types:interface instance:id = “PMOSCompRight” xsi:type = “types:Interface”>

<types:description xsi:type = “instance:Description”> PMOS.Right </types:description>

<types:direction xsi:type = “instance:Direction” >out</types:direction>

<types:type xlink:type = “simple” xlink:href = “ #tRightType”/>

</types:interface>

<types:interface instance:id = “PMOSCompLeft” xsi:type = “types:Interface”>

<types:description xsi:type = “instance:Description”> PMOS.Left </types:description>

<types:direction xsi:type = “instance:Direction” >in</types:direction>

<types:type xlink:type = “simple” xlink:href = “ #tLeftType”/>

</types:interface>

<types:type xlink:type = “simple” xlink:href = “#tPMOS” />

</types:component>

 

<! - - Component: NMOS Description - ->

<types:component instance:id = “NMOSComp” xsi:type = “types:Component”>

      <types:description xsi:type = “instance:Description”>NMOS</types:description>

      <types:interface instance:id = “PMOSCompRight” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”> NMOS.Right </types:description>

      <types:direction xsi:type = “instance:Direction” >out</types:direction>

      <types:type xlink:type = “simple” xlink:href = “ #tRightType”/>

</types:interface>

<types:interface instance:id = “NMOSCompLeft” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”> NMOS.Left </types:description>

      <types:direction xsi:type = “instance:Direction” >in</types:direction>

      <types:type xlink:type = “simple” xlink:href = “ #tLeftType”/>

</types:interface>

<types:type xlink:type = “simple” xlink:href = “#tNMOS” />

</types:component>

 

<! - - Component (Power Supply): VDD Description - ->

<types:component instance:id = “VDDComp” xsi:type = “types:Component”>

<types:description xsi:type = “instance:Description”>VDD</types:description>

<types:interface instance:id = “VDDCompRight” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”> VDD.Right </types:description>

      <types:direction xsi:type = “instance:Direction” >out</types:direction>

      <types:type xlink:type = “simple” xlink:href = “ #tRightType”/>

</types:interface>

<types:type xlink:type = “simple” xlink:href = “#tVDD” />

</types:component>

 

<! - - Component: Ground Description -->

<types:component instance:id = “GNDComp” xsi:type = “types:Component”>

      <types:description xsi:type = “instance:Description”>GND</types:description>

      <types:interface instance:id = “GNDCompRight” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”> GND.Right </types:description>

      <types:direction xsi:type = “instance:Direction” >out</types:direction>

      <types:type xlink:type = “simple” xlink:href = “ #tRightType”/>

      </types:interface>

<types:type xlink:type = “simple” xlink:href = “#tGND” />

</types:component>

 

<! - - Interface (Input Port): In Description - - >

<types:interface instance:id = “In” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”> In</types:description>

      <types:direction xsi:type = “instance:Direction” >in</types:direction>

      <types:type xlink:type = “simple” xlink:href = “ #tInputType”/>

</types:interface>

 

<! - - Interface (Output Port): Out Description - - >

<types:interface instance:id = “Out” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>Out</types:description>

      <types:direction xsi:type = “instance:Direction” >out</types:direction>

      <types:type xlink:type = “simple” xlink:href = “ #tOutputType”/>

</types:interface>

 

<!- - Connector:Con1(In-PMOS-NMOS) Description- - >

      <types:connector instance:id = “Con1” xsi:type = “types:Connector”>

      <types:description xsi:type = “instance:Description” >Wire on integrated circuit</types:description>

      <types:interface instance:id = “Con1Left” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>Wire.Left</types:description>

      <types:direction xsi:type = “instance:Direction:>in</types:direction>

      <types:type xlink:type = “simple” xlink:href = “#tLeftType”/>

      </types:interface>

      <types:interface instance:id = “Con1Right1” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>Wire.Right1</types:description>

      <types:direction xsi:type = “instance:Direction:>out</types:direction>

      <types:type xlink:type = “simple” xlink:href = “#tRightType”/>

      </types:interface>

                        <types:interface instance:id = “Con1Right2” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>Wire.Right2</types:description>

      <types:direction xsi:type = “instance:Direction:>out</types:direction>

      <types:type xlink:type = “simple” xlink:href = “#tRightType”/>

      </types:interface>

      <types:type xlink:type = “simple” xlink:href= “#tWire” />

      </types:connector>

 

<!- - Connector:Con2(PMOS-VDD) Description- - >

      <types:connector instance:id = “Con2” xsi:type = “types:Connector”>

      <types:description xsi:type = “instance:Description” >Wire on integrated circuit</types:description>

      <types:interface instance:id = “Con2Left” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>Wire.Left</types:description>

      <types:direction xsi:type = “instance:Direction:>in</types:direction>

      <types:type xlink:type = “simple” xlink:href = “#tLeftType”/>

      </types:interface>

      <types:interface instance:id = “Con2Right” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>Wire.Right</types:description>

      <types:direction xsi:type = “instance:Direction:>out</types:direction>

      <types:type xlink:type = “simple” xlink:href = “#tRightType”/>

      </types:interface>

      <types:type xlink:type = “simple” xlink:href= “#tWire” />

      </types:connector>

 

<!- - Connector:Con3(PMOS-NMOS) Description- - >

      <types:connector instance:id = “Con3” xsi:type = “types:Connector”>

      <types:description xsi:type = “instance:Description” >Wire on integrated circuit</types:description>

      <types:interface instance:id = “Con3Left” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>Wire.Left</types:description>

      <types:direction xsi:type = “instance:Direction:>in</types:direction>

      <types:type xlink:type = “simple” xlink:href = “#tLeftType”/>

      </types:interface>

      <types:interface instance:id = “Con3Right1” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>Wire.Right1</types:description>

      <types:direction xsi:type = “instance:Direction:>out</types:direction>

      <types:type xlink:type = “simple” xlink:href = “#tRightType”/>

      </types:interface>

<types:interface instance:id = “Con3Right2” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>Wire.Right2</types:description>

      <types:direction xsi:type = “instance:Direction:>out</types:direction>

      <types:type xlink:type = “simple” xlink:href = “#tRightType”/>

      </types:interface>

      <types:type xlink:type = “simple” xlink:href= “#tWire” />

      </types:connector>

 

<!- - Connector:Con4(GND-NMOS) Description- - >

      <types:connector instance:id = “Con4” xsi:type = “types:Connector”>

      <types:description xsi:type = “instance:Description” >Wire on integrated circuit</types:description>

      <types:interface instance:id = “Con4Left” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>Wire.Left</types:description>

      <types:direction xsi:type = “instance:Direction:>in</types:direction>

      <types:type xlink:type = “simple” xlink:href = “#tLeftType”/>

      </types:interface>

      <types:interface instance:id = “Con4Right” xsi:type = “types:Interface”>

      <types:description xsi:type = “instance:Description”>Wire.Right</types:description>

      <types:direction xsi:type = “instance:Direction:>out</types:direction>

      <types:type xlink:type = “simple” xlink:href = “#tRightType”/>

      </types:interface>

      <types:type xlink:type = “simple” xlink:href= “#tWire” />

      </types:connector>

 

<! - - Link: PMOS-Con3-NMOS Description - - >

<types:link instance:id = “link1” xsi:type = “types:Link”>

      <types:description xsi:type = “instance:Description”>PMOS-Con3</types:description>

      <types:point xsi:type = “types:Point”>

      <instance:anchorOnInterface xlink:href = “#PMOSLeft” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

      </types:point>

      <types:point xsi:type = “types:Point”>

      <instance:anchorOnInterface xlink:href = “#Con3Left” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

      </types:point>

</types:link>

<types:link instance:id = “link2” xsi:type = “types:Link”>

      <types:description xsi:type = “instance:Description”>Con3-NMOS</types:description>

      <types:point xsi:type = “types:Point”>

      <instance:anchorOnInterface xlink:href = “#Con3Right” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

      </types:point>

      <types:point xsi:type = “types:Point”>

      <instance:anchorOnInterface xlink:href = “#NMOSLeft” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

      </types:point>

</types:link>

 

<! - - Link: PMOS-Con1-NMOS Description - - >

<types:link instance:id = “link3” xsi:type = “types:Link”>

      <types:description xsi:type = “instance:Description”>PMOS-Con1</types:description>

      <types:point xsi:type = “types:Point”>

      <instance:anchorOnInterface xlink:href = “#PMOSRight” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

      </types:point>

      <types:point xsi:type = “types:Point”>

      <instance:anchorOnInterface xlink:href = “#Con1Right1” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

      </types:point>

</types:link>

<types:link instance:id = “link4” xsi:type = “types:Link”>

      <types:description xsi:type = “instance:Description”>NMOS-Con1</types:description>

      <types:point xsi:type = “types:Point”>

      <instance:anchorOnInterface xlink:href = “#Con1Right2” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

      </types:point>

      <types:point xsi:type = “types:Point”>

      <instance:anchorOnInterface xlink:href = “#NMOSLeft” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

      </types:point>

</types:link>

 

<! - - Link: PMOS-Con2-VDD Description - - >

<types:link instance:id = “link5” xsi:type = “types:Link”>

<types:description xsi:type = “instance:Description”>VDD-Con2</types:description>

<types:point xsi:type = “types:Point”>

<instance:anchorOnInterface xlink:href = “#Con2Left” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

</types:point>

<types:point xsi:type = “types:Point”>

<instance:anchorOnInterface xlink:href = “#VDDRight” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

</types:point>

</types:link>

<types:link instance:id = “link6” xsi:type = “types:Link”>

<types:description xsi:type = “instance:Description”>Con2-PMOS</types:description>

<types:point xsi:type = “types:Point”>

      <instance:anchorOnInterface xlink:href = “#Con2Right” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

</types:point>

<types:point xsi:type = “types:Point”>

      <instance:anchorOnInterface xlink:href = “#PMOSRight” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

</types:point>

</types:link>

 

<! - - Link: NMOS-Con4-GND Description - - >

<types:link instance:id = “link7” xsi:type = “types:Link”>

<types:description xsi:type = “instance:Description”>NMOS-Con4</types:description>

<types:point xsi:type = “types:Point”>

<instance:anchorOnInterface xlink:href = “#NMOSRight” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

</types:point>

<types:point xsi:type = “types:Point”>

<instance:anchorOnInterface xlink:href = “#Con4Left” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

</types:point>

</types:link>

<types:link instance:id = “link8” xsi:type = “types:Link”>

<types:description xsi:type = “instance:Description”>Con4-GND</types:description>

<types:point xsi:type = “types:Point”>

<instance:anchorOnInterface xlink:href = “#Con4Right” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

</types:point>

<types:point xsi:type = “types:Point”>

<instance:anchorOnInterface xlink:href = “#GNDLeft” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

</types:point>

</types:link>

 

<! - - Link: Con1-In Description - - >

<types:link instance:id = “link9” xsi:type = “types:Link”>

<types:description xsi:type = “instance:Description”>Con1-In</types:description>

<types:point xsi:type = “types:Point”>

<instance:anchorOnInterface xlink:href = “#Con1Left” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

</types:point>

<types:point xsi:type = “types:Point”>

<instance:anchorOnInterface xlink:href = “#In” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

</types:point>

</types:link>

 

<! - - Link: Con3-Out Description - - >

<types:link instance:id = “link10” xsi:type = “types:Link”>

<types:description xsi:type = “instance:Description”>Con3-Out</types:description>

<types:point xsi:type = “types:Point”>

<instance:anchorOnInterface xlink:href = “#Con3Right2” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

</types:point>

<types:point xsi:type = “types:Point”>

<instance:anchorOnInterface xlink:href = “#Out” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

</types:point>

</types:link>

 

</types:archStructure>

… …