Changes between Version 4 and Version 5 of DsxArchitectureCreation


Ignore:
Timestamp:
Feb 14, 2007, 10:00:46 PM (17 years ago)
Author:
Nicolas Pouillon
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DsxArchitectureCreation

    v4 v5  
    11= Generic Architectures =
     2
     3[[PageOutline]]
    24
    35== The concept ==
     
    3739
    3840        # Cache ports connexion
    39         cache0.cache( mips0.cache )
    40         vgmn.getTarget()( cache0.vci )
     41        cache0.cache // mips0.cache
     42        vgmn.getTarget() // cache0.vci
    4143
    4244        reset = Segment( ’reset’,
    4345                         address = 0xbfc00000,
    4446                         type = Cached )
     47        excep = Segment( ’excep’,
     48                         address = 0x80000080,
     49                         type = Cached )
    4550        code = Segment( ’code’, type = Cached )
    4651        data = Segment( ’data’, type = Uncached )
    47         ram = MultiRam( ’ram’, reset, code, data )
     52        ram = MultiRam( ’ram’, reset, excep, code, data )
    4853
    4954        # Connections
    50         vgmn.getInit()( ram.vci )
     55        vgmn.getInit() // ram.vci
    5156
    5257        # Declare base component
    53         self.setBase( vgmn )
     58        self.setBase(vgmn)
    5459
    5560        # Add configuration utilities
     
    6873
    6974We will define a one-level architecture using a Vgmn, with two parameters: number of Cpus (`ncpu`) and number of Ram components (`nram`).
    70 By default, we will set `nram` to 1.
     75We will set `nram` default value to 1.
    7176
    72 We'll add in ram0 (which always exists) two more segments.
     77We'll add in `ram0` (which always exists) two more segments: `excep` and `reset`.
    7378
    74 We'll set those attributes:
     79We'll those attributes in instance objet (accessible through `object.name`):
    7580 * `vgmn`: the interconnect
    76  * `cpu`: an array of all the cpus
    77  * `ram`: an array of all the ram chips
    78  * `cram`: an array of all the cached ram segments
    79  * `uram`: an array of all the uncached ram segments
     81 * `cpu`: a list of all the cpus
     82 * `ram`: a list of all the ram chips
     83 * `cram`: a list of all the cached ram segments
     84 * `uram`: a list of all the uncached ram segments
    8085
    8186This way, we'll be able to refer to `platform.ram[2]` or `platform.cpu[0]`.
     
    95100
    96101            # Cache ports connexion
    97             cache.cache( cpu.cache )
    98             vgmn.getTarget()( cache.vci )
     102            cache.cache // cpu.cache
     103            vgmn.getTarget() // cache.vci
    99104            self.cpu.append( cpu )
    100105
     
    107112            ram = MultiRam( ’ram%d’%i, cram, uram)
    108113
    109             vgmn.getInit()( ram.vci )
     114            vgmn.getInit() // ram.vci
    110115            self.ram.append( ram )
    111116            self.cram.append( cram )
     
    121126        self.setConfig(’mapping_table’, MappingTable())
    122127}}}
     128
     129In this platform
     130 * argument `nram` is optional with default value being 1
     131 * arguments `ncpu` is mandatory