| 221 | Hardware components have input/output ports, and are connected through signals, |
| 222 | but those signals are implicit in the DSX/L description. To connect the port a of component c1 to the port b of component c2, DSX/L define the // operator : |
| 223 | {{{ |
| 224 | c1.a // c2.b |
| 225 | }}} |
| 226 | Depending on the component type, the port designation can vary: |
| 227 | * When the number of ports is fixed, the ports are attributs : My_Proc0.cache define the cache port of the MIPS processor. |
| 228 | * When the number of port is not fixed (typivally for interconnect component, the ports are accessed through a dedicated method : the getTarget() method of the !LocalCrossbar component returns a VCI target port. |
| 229 | The following example describes asimple system with two processor and on e embedded memory: |
| 230 | {{{ |
| 231 | # components instanciacion |
| 232 | My_Proc0 = Mips( 'proc0' ) |
| 233 | My_Cache0 = Xcache( 'cache0' ) |
| 234 | My_Proc1 = Mips( 'proc1' ) |
| 235 | My_Cache1 = Xcache( 'cache1' ) |
| 236 | My_Ram = MultiRam( 'ram' ) |
| 237 | My_Crossbar = LocalCrossbar( 'crossbar' ) |
| 238 | |
| 239 | # components connexion |
| 240 | My_Proc0.cache // My_Cache0.cache |
| 241 | My_Proc1.cache // My_Cache1.cache |
| 242 | My_Crossbar.getTarget() // My_cache0.vci |
| 243 | My_Crossbar.getTarget() // My_cache1.vci |
| 244 | My_Crossbar.getInitiator() // My_cache0.vci |
| 245 | |
| 246 | |
| 247 | }}} |
| 248 | }}} |
| 249 | |