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