Instruction Set Architecture layer and Register Transfer Level
Component: At ISA or RTL structural level, components are like: MUX((Multiplexes), ALU (Arithmetic Logic Unit), F.F. (Flip Flop), Register File and Memory.
Connector: Wire function as connector.
Interface: input/output ports
Link:
Example: Take a simplified datapath for ALU instruction:

And 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: Instruction memory Description - ->
<types:component instance:id = “InstructionMemoryComp” xsi:type = “types:Component”>
<types:description xsi:type = “instance:Description”>InstructionMemory</types:description>
<types:interface instance:id = “InstructionMemoryCompRight” xsi:type = “types:Interface”>
<types:description xsi:type = “instance:Description”> InstructionMemory.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 = “#tInstructionMemory” />
</types:component>
<! - - Component: GPR Description - ->
<types:component instance:id = “GPRComp” xsi:type = “types:Component”>
<types:description xsi:type = “instance:Description”>GPR</types:description>
<types:interface instance:id = “GPRCompRight1” xsi:type = “types:Interface”>
<types:description xsi:type = “instance:Description”> GPR.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 = “GPRCompRight2” xsi:type = “types:Interface”>
<types:description xsi:type = “instance:Description”> GPR.Right2 </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 = “GPRCompLeft1” xsi:type = “types:Interface”>
<types:description xsi:type = “instance:Description”> GPR.Left1 </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 = “GPRCompLeft2” xsi:type = “types:Interface”>
<types:description xsi:type = “instance:Description”> GPR.Left2 </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 = “#tGPR” />
</types:component>
<! - - Component: ALU Description - ->
<types:component instance:id = “ALUComp” xsi:type = “types:Component”>
<types:description xsi:type = “instance:Description”>ALU</types:description>
<types:interface instance:id = “ALUCompRight” xsi:type = “types:Interface”>
<types:description xsi:type = “instance:Description”> ALU.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 = “ALUCompLeft1” xsi:type = “types:Interface”>
<types:description xsi:type = “instance:Description”> ALU.Left1</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 = “ALUCompLeft” xsi:type = “types:Interface”>
<types:description xsi:type = “instance:Description”> ALU.Left2 </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 = “#tMemory” />
</types:component>
<! - - Connector: Wire1 Description - ->
<types:connector instance:id = “wire1” xsi:type = “types:Connector”>
<types:description xsi:type = “instance:Description” > wire on board</types:description>
<types:interface instance:id = “wire1Left” 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 = “wire1Right” 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: Wire2 Description - ->
<types:connector instance:id = “wire2” xsi:type = “types:Connector”>
<types:description xsi:type = “instance:Description” > wire on board</types:description>
<types:interface instance:id = “wire2Left” 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 = “wire2Right” 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: Wire3 Description - ->
<types:connector instance:id = “wire3” xsi:type = “types:Connector”>
<types:description xsi:type = “instance:Description” > wire on board</types:description>
<types:interface instance:id = “wire3Left” 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 = “wire3Right” 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: Wire4 Description - ->
<types:connector instance:id = “wire4” xsi:type = “types:Connector”>
<types:description xsi:type = “instance:Description” > wire on board</types:description>
<types:interface instance:id = “wire4Left” 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 = “wire4Right” 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: InstructionMemory-GPR Description - ->
<types:link instance:id = “link1” xsi:type = “types:Link”>
<types:description xsi:type = “instance:Description”>InstructionMemory-GPR</types:description>
<types:point xsi:type = “types:Point”>
<instance:anchorOnInterface xlink:href = “#InstructionMemoryLeft” xsi:type = “instance:XMLLink” xlink:type = “simple”/>
</types:point>
<types:point xsi:type = “types:Point”>
<instance:anchorOnInterface xlink:href = “#wire1left” xsi:type = “instance:XMLLink” xlink:type = “simple”/>
</types:point>
</types:link>
<! - - Link: InstructionMemory-GPR Description - ->
<types:link instance:id = “link2” xsi:type = “types:Link”>
<types:description xsi:type = “instance:Description”>InstructionMemory-GPR</types:description>
<types:point xsi:type = “types:Point”>
<instance:anchorOnInterface xlink:href = “#GPRLeft” xsi:type = “instance:XMLLink” xlink:type = “simple”/>
</types:point>
<types:point xsi:type = “types:Point”>
<instance:anchorOnInterface xlink:href = “#wire1Right” xsi:type = “instance:XMLLink” xlink:type = “simple”/>
</types:point>
</types:link>
<! - - Link: GPR-ALU Description -- >
<types:link instance:id = “link3” xsi:type = “types:Link”>
<types:description xsi:type = “instance:Description”> GPR-ALU</types:description>
<types:point xsi:type = “types:Point”>
<instance:anchorOnInterface xlink:href = “#GPRRight1” xsi:type = “instance:XMLLink” xlink:type = “simple”/>
</types:point>
<types:point xsi:type = “types:Point”>
<instance:anchorOnInterface xlink:href = “#Wire2Left” xsi:type = “instance:XMLLink” xlink:type = “simple”/>
</types:point>
</types:link>
<! - - Link: GPR-ALU Description - - >
<types:link instance:id = “link4” xsi:type = “types:Link”>
<types:description xsi:type = “instance:Description”> GPR-ALU</types:description>
<types:point xsi:type = “types:Point”>
<instance:anchorOnInterface xlink:href = “#ALULeft1” xsi:type = “instance:XMLLink” xlink:type = “simple”/>
</types:point>
<types:point xsi:type = “types:Point”>
<instance:anchorOnInterface xlink:href = “#Wire2Right” xsi:type = “instance:XMLLink” xlink:type = “simple”/>
</types:point>
</types:link>
<! - - Link: GPR-ALU Description - ->
<types:link instance:id = “link5” xsi:type = “types:Link”>
<types:description xsi:type = “instance:Description”> GPR-ALU</types:description>
<types:point xsi:type = “types:Point”>
<instance:anchorOnInterface xlink:href = “#GPRRight2” xsi:type = “instance:XMLLink” xlink:type = “simple”/>
</types:point>
<types:point xsi:type = “types:Point”>
<instance:anchorOnInterface xlink:href = “#Wire3Left” xsi:type = “instance:XMLLink” xlink:type = “simple”/>
</types:point>
</types:link>
<! - - Link: GPR-ALU Description - ->
<types:link instance:id = “link6” xsi:type = “types:Link”>
<types:description xsi:type = “instance:Description”> GPR-ALU</types:description>
<types:point xsi:type = “types:Point”>
<instance:anchorOnInterface xlink:href = “#Wire3Right” xsi:type = “instance:XMLLink” xlink:type = “simple”/>
</types:point>
<types:point xsi:type = “types:Point”>
<instance:anchorOnInterface xlink:href = “#ALULeft2” xsi:type = “instance:XMLLink” xlink:type = “simple”/>
</types:point>
</types:link>
<! - - Link: GPR-ALU Description- ->
<types:link instance:id = “link7” xsi:type = “types:Link”>
<types:description xsi:type = “instance:Description”> GPR-ALU</types:description>
<types:point xsi:type = “types:Point”>
<instance:anchorOnInterface xlink:href = “#Wire4Left” xsi:type = “instance:XMLLink” xlink:type = “simple”/>
</types:point>
<types:point xsi:type = “types:Point”>
<instance:anchorOnInterface xlink:href = “#ALURight” xsi:type = “instance:XMLLink” xlink:type = “simple”/>
</types:point>
</types:link>
<! - - Link:GPR-ALU Description - ->
<types:link instance:id = “link8” xsi:type = “types:Link”>
<types:description xsi:type = “instance:Description”> GPR-ALU</types:description>
<types:point xsi:type = “types:Point”>
<instance:anchorOnInterface xlink:href = “#Wire4Right” xsi:type = “instance:XMLLink” xlink:type = “simple”/>
</types:point>
<types:point xsi:type = “types:Point”>
<instance:anchorOnInterface xlink:href = “#GPRLeft2” xsi:type = “instance:XMLLink” xlink:type = “simple”/>
</types:point>
</types:link>
</types:archStructure>