Physical Device

 Component: For CMOS device, major components are source, drain and fate.

 Connector: n-channel for NMOS, p-channel for PMOS

 Interface:

 Link:

 Example: Take the following conducting NMOS for example,

 

 

 

AS the above conducting NMOS example, we could say there are three components: Gate, Source and Drain, n-channel function as connector of Source and Drain. So, we may have the following simplified xADL-like figure:

 

 

 

 

 

 

 

 

 

<! - - 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: Gate Description - ->

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

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

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

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

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

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

</types:interface>

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

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

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

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

</types:interface>

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

</types:component>

 

<! - - Component: Source Description - ->

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

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

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

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

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

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

</types:interface>

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

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

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

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

</types:interface>

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

</types:component>

 

<! - - Component: Drain Description - ->

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

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

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

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

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

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

</types:interface>

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

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

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

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

</types:interface>

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

</types:component>

 

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

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

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

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

<types:description xsi:type = “instance:Description”> VDS.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 = “#tVDS” />

</types:component>

 

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

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

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

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

<types:description xsi:type = “instance:Description”> VGS.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 = “#tVGS” />

</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>

 

 

<! - - Connector: nChannel Description - ->    

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

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

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

<types:description xsi:type = “instance:Description”>nChannel.Left1</types:description>

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

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

</types:interface>

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

<types:description xsi:type = “instance:Description”>nChannel.Left2</types:description>

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

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

</types:interface>

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

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

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

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

</types:interface>

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

</types:connector>

 

<! - - Connector: Con1 Description - -> 

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

<types:description xsi:type = “instance:Description” >Con1-wire on physical material</types:description>

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

<types:description xsi:type = “instance:Description”>Con1.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 = “Con1Right” xsi:type = “types:Interface”>

<types:description xsi:type = “instance:Description”>Con1.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= “#tCon1” />

</types:connector>

 

<! - - Connector: Con2 Description - -> 

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

<types:description xsi:type = “instance:Description” >Con2- wire on physical material </types:description>

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

<types:description xsi:type = “instance:Description”>Con2.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”>Con2.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= “#tCon2” />

</types:connector>

 

<! - - Connector: Con3 Description - -> 

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

<types:description xsi:type = “instance:Description” >Con3- wire on physical material </types:description>

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

<types:description xsi:type = “instance:Description”>Con3.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 = “Con3Right” xsi:type = “types:Interface”>

<types:description xsi:type = “instance:Description”>Con3.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= “#tCon3” />

</types:connector>

 

<! - -Link: Source-nChannel Description - ->

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

<types:description xsi:type = “instance:Description”>Source-nChannel</types:description>

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

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

</types:point>

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

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

</types:point>

</types:link>

 

<! - -Link: Drain-nChannel Description - ->

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

<types:description xsi:type = “instance:Description”>Drain-nChannel</types:description>

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

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

</types:point>

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

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

</types:point>

</types:link>

 

<! - -Link: GND-Con1-Source Description - ->

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

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

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

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

</types:point>

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

<instance:anchorOnInterface xlink:href = “#Con1Left” 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”>Source-Con1</types:description>

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

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

</types:point>

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

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

</types:point>

</types:link>

 

<! - -Link: VGS-Con2-Gate Description - ->

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

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

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

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

</types:point>

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

<instance:anchorOnInterface xlink:href = “#Con2Left” 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”>Gate-Con2</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 = “#GateLeft” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

</types:point>

</types:link>

 

<! - -Link: nChannel-Gate Description - ->

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

<types:description xsi:type = “instance:Description”>Gate-nChannel</types:description>

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

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

</types:point>

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

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

</types:point>

</types:link>

 

<! - -Link: VDS-Con3-Drain Description - ->

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

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

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

<instance:anchorOnInterface xlink:href = “#VDSRight” 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 = “link9” xsi:type = “types:Link”>

<types:description xsi:type = “instance:Description”>Drain-Con3</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 = “#DrainLeft” xsi:type = “instance:XMLLink” xlink:type = “simple”/>

</types:point>

</types:link>

 

</types:archStructure>

… …