Changes between Version 9 and Version 10 of DsxDocumentation


Ignore:
Timestamp:
Jan 28, 2008, 1:07:04 PM (16 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DsxDocumentation

    v9 v10  
    202202
    203203In the present version of DSX, each hardware component must be described by a PYTHON
    204 class that defines the component interface, and the component parameters. The instance
    205 name is mandatory, but all other parameters have default values and can be skipped:
     204class that defines the component interface, and the component parameters.
     205The list of available components can be found in SoclibComponents.
     206For all components, the instance name is mandatory, but all other parameters have default values and can be skipped:
    206207{{{
    207208# creation of a MIPS R3000 processor core
    208 MY_proc0 = Mips( 'proc0' )
    209 
    210 # creation of a generic cache
     209My_Proc = Mips( 'proc' )
     210
     211# creation of a cache controler
     212My_Cache = Xcache( 'cache',
     213                        dcache_lines = 32,
     214                        dcache_words = 8,
     215                        dcache_lines = 32,
     216                        dcache_words = 8)
    211217}}}
    212218
    213219=== D2) Connecting the components ===
    214220
     221Hardware components have input/output ports, and are connected through signals,
     222but 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{{{
     224c1.a // c2.b
     225}}}
     226Depending 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.
     229The following example describes asimple system with two processor and on e embedded memory:
     230{{{
     231# components instanciacion
     232My_Proc0 = Mips( 'proc0' )
     233My_Cache0 = Xcache( 'cache0' )
     234My_Proc1 = Mips( 'proc1' )
     235My_Cache1 = Xcache( 'cache1' )
     236My_Ram = MultiRam( 'ram' )
     237My_Crossbar = LocalCrossbar( 'crossbar' )
     238                     
     239# components connexion
     240My_Proc0.cache // My_Cache0.cache
     241My_Proc1.cache // My_Cache1.cache
     242My_Crossbar.getTarget() // My_cache0.vci
     243My_Crossbar.getTarget() // My_cache1.vci
     244My_Crossbar.getInitiator() // My_cache0.vci
     245
     246
     247}}}
     248}}}
     249
    215250=== D3) Address space segmentation ===
    216251