Changes between Version 18 and Version 19 of SoclibComponents


Ignore:
Timestamp:
Mar 4, 2008, 7:49:31 PM (16 years ago)
Author:
Nicolas Pouillon
Comment:

API update

Legend:

Unmodified
Added
Removed
Modified
  • SoclibComponents

    v18 v19  
    66
    77 * functionality : a generic VCI compliant micro-network
    8  * Mandatory arguments:
     8 * Arguments:
    99   * `instance name`
    10  * Optional arguments:
    1110   * `min_latency` (one-way)
     11   * `fifo_size`
    1212 * Example:
    1313{{{
    14 my_vgmn = Vgmn("my_vgmn", 10)
     14my_vgmn = arch.create('caba:vci_vgmn', "my_vgmn", min_latency = 10, fifo_size = 8)
    1515}}}
    1616 * Defined ports:
    17    * `getBoth()`, `getInit()` and `getTarget()`: local ports, allocated on demand
     17   * `to_initiator.new()` and `to_target.new()`: local ports, allocated on demand
    1818
    1919== A.2) !LocalCrossbar ==
    2020
    2121 * functionality : a VCI compliant crossbar interconnect
    22  * Mandatory arguments:
     22 * Arguments:
    2323   * `instance name`
    2424 * Example:
    2525{{{
    26 my_lc = LocalCrossbar("lc0")
     26my_lc = arch.create('caba:vci_local_crossbar', "lc0")
    2727}}}
    2828 * Defined ports:
    29    * `getBoth()`, `getInit()` and `getTarget()`: local ports, allocated on demand
    30    * `upstream`, bidirectional port to upper-level interconnect
     29   * `to_initiator.new()` and `to_target.new()`: local ports, allocated on demand
    3130
    3231= B) VCI Initiators =
     
    3534
    3635 * functionality: a direct mapping cache controler (separated instruction & data cache)
    37  * Mandatory arguments:
     36 * Arguments:
    3837   * `instance name`
    39  * Optional arguments:
    4038   * `dcache_lines` : number of lines in data cache
    4139   * `dcache_words` : number of words per line in data cache
     
    4442 * Example:
    4543{{{
    46 my_cache = Xcache( "my_cache",
     44my_cache = arch.create('caba:vci_vgmn', "my_cache",
    4745                   dcache_lines = 32,
    4846                   dcache_words = 8,
     
    5149}}}
    5250 * Defined ports:
    53    * `cache`: to the CPU
     51   * `dcache`: to the CPU
     52   * `icache`: to the CPU
    5453   * `vci`: to the VCI micro-network
    5554
     
    5857== C.1) Mips ==
    5958
     59This component is special as it is in fact a wrapped ISS.
     60
    6061 * Functionality : a MIPS R3000 micro-processor
    61  * Mandatory arguments:
     62 * Arguments:
    6263    * `name`
     64    * `ident`: cpu id
    6365 * Example:
    6466{{{
    65 my_proc = Mips("my_proc")
     67my_proc = arch.create('caba:iss_wrapper', "my_proc", iss_t = 'common:mipsel', ident = 0 )
    6668}}}
    6769 * Defined ports:
    68    * `cache`: to the cache's cache port
     70   * `dcache`: to the cache's dcache port
     71   * `icache`: to the cache's icache port
    6972   * `irq[n]`: interrupt line (0 <= n < 6)
    7073
     
    7578 * !Mandatory arguments:
    7679   * `name`
    77  * Optional arguments:
    78    * a list of segments, allocated with Segment()
    7980 * Example:
    8081{{{
    81 my_ram = MultiRam("my_ram", seg1, seg2, seg3)
     82my_ram = arch.create('caba:vci_ram', "my_ram")
    8283}}}
    8384 * Defined ports:
    8485   * `vci`: to the micro-network
     86 * Adding a segment:
     87   * Arguments: name, base address, size, cacheability
     88{{{
     89my_ram.addSegment( 'boot', 0xbfc00000, 0x100, true )
     90}}}
    8591
    8692== D.2) !MultiTty ==
    8793
    88  * functionality: a TTY controler (up to  256 TTYs)
     94 * functionality: a TTY controler
    8995 * Mandatory arguments:
    9096   * `instance name`
    91    * an ordered  list ot names (one name per emulated terminal)
     97   * a list of names
    9298 * Example:
    9399{{{
    94 my_tty = MultiTty("my_tty_controler", "TTY0", "TTY1", "TT2")
     100my_tty = arch.create('caba:vci_multi_tty', "my_tty_controler", ["TTY0", "TTY1", "TT2"])
    95101}}}
    96102 * Defined ports:
    97103   * `vci`: to the micro-network
    98104   * `irq[n]`: interrupt line (0 <= n < nb of ttys)
    99 
    100 == D.3) Locks ==
    101 
    102  * functionality : a locks controler
    103  * Mandatory arguments:
    104    * `instance name`
    105  * Example:
    106 {{{
    107 my_locks = Locks("my_locks_controler")
    108 }}}
    109  * Defined ports:
    110    * `vci`: to the micro-network