Changes between Version 4 and Version 5 of DsxArchitectureCreation
- Timestamp:
- Feb 14, 2007, 10:00:46 PM (18 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
DsxArchitectureCreation
v4 v5 1 1 = Generic Architectures = 2 3 [[PageOutline]] 2 4 3 5 == The concept == … … 37 39 38 40 # Cache ports connexion 39 cache0.cache ( mips0.cache )40 vgmn.getTarget() ( cache0.vci )41 cache0.cache // mips0.cache 42 vgmn.getTarget() // cache0.vci 41 43 42 44 reset = Segment( ’reset’, 43 45 address = 0xbfc00000, 44 46 type = Cached ) 47 excep = Segment( ’excep’, 48 address = 0x80000080, 49 type = Cached ) 45 50 code = Segment( ’code’, type = Cached ) 46 51 data = Segment( ’data’, type = Uncached ) 47 ram = MultiRam( ’ram’, reset, code, data )52 ram = MultiRam( ’ram’, reset, excep, code, data ) 48 53 49 54 # Connections 50 vgmn.getInit() ( ram.vci )55 vgmn.getInit() // ram.vci 51 56 52 57 # Declare base component 53 self.setBase( vgmn )58 self.setBase(vgmn) 54 59 55 60 # Add configuration utilities … … 68 73 69 74 We 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.75 We will set `nram` default value to 1. 71 76 72 We'll add in ram0 (which always exists) two more segments.77 We'll add in `ram0` (which always exists) two more segments: `excep` and `reset`. 73 78 74 We'll set those attributes:79 We'll those attributes in instance objet (accessible through `object.name`): 75 80 * `vgmn`: the interconnect 76 * `cpu`: a n arrayof all the cpus77 * `ram`: a n arrayof all the ram chips78 * `cram`: a n arrayof all the cached ram segments79 * `uram`: a n arrayof all the uncached ram segments81 * `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 80 85 81 86 This way, we'll be able to refer to `platform.ram[2]` or `platform.cpu[0]`. … … 95 100 96 101 # Cache ports connexion 97 cache.cache ( cpu.cache )98 vgmn.getTarget() ( cache.vci )102 cache.cache // cpu.cache 103 vgmn.getTarget() // cache.vci 99 104 self.cpu.append( cpu ) 100 105 … … 107 112 ram = MultiRam( ’ram%d’%i, cram, uram) 108 113 109 vgmn.getInit() ( ram.vci )114 vgmn.getInit() // ram.vci 110 115 self.ram.append( ram ) 111 116 self.cram.append( cram ) … … 121 126 self.setConfig(’mapping_table’, MappingTable()) 122 127 }}} 128 129 In this platform 130 * argument `nram` is optional with default value being 1 131 * arguments `ncpu` is mandatory