Changes between Version 18 and Version 19 of SoclibComponents
- Timestamp:
- Mar 4, 2008, 7:49:31 PM (17 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SoclibComponents
v18 v19 6 6 7 7 * functionality : a generic VCI compliant micro-network 8 * Mandatory arguments:8 * Arguments: 9 9 * `instance name` 10 * Optional arguments:11 10 * `min_latency` (one-way) 11 * `fifo_size` 12 12 * Example: 13 13 {{{ 14 my_vgmn = Vgmn("my_vgmn", 10)14 my_vgmn = arch.create('caba:vci_vgmn', "my_vgmn", min_latency = 10, fifo_size = 8) 15 15 }}} 16 16 * Defined ports: 17 * ` getBoth()`, `getInit()` and `getTarget()`: local ports, allocated on demand17 * `to_initiator.new()` and `to_target.new()`: local ports, allocated on demand 18 18 19 19 == A.2) !LocalCrossbar == 20 20 21 21 * functionality : a VCI compliant crossbar interconnect 22 * Mandatory arguments:22 * Arguments: 23 23 * `instance name` 24 24 * Example: 25 25 {{{ 26 my_lc = LocalCrossbar("lc0")26 my_lc = arch.create('caba:vci_local_crossbar', "lc0") 27 27 }}} 28 28 * 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 31 30 32 31 = B) VCI Initiators = … … 35 34 36 35 * functionality: a direct mapping cache controler (separated instruction & data cache) 37 * Mandatory arguments:36 * Arguments: 38 37 * `instance name` 39 * Optional arguments:40 38 * `dcache_lines` : number of lines in data cache 41 39 * `dcache_words` : number of words per line in data cache … … 44 42 * Example: 45 43 {{{ 46 my_cache = Xcache("my_cache",44 my_cache = arch.create('caba:vci_vgmn', "my_cache", 47 45 dcache_lines = 32, 48 46 dcache_words = 8, … … 51 49 }}} 52 50 * Defined ports: 53 * `cache`: to the CPU 51 * `dcache`: to the CPU 52 * `icache`: to the CPU 54 53 * `vci`: to the VCI micro-network 55 54 … … 58 57 == C.1) Mips == 59 58 59 This component is special as it is in fact a wrapped ISS. 60 60 61 * Functionality : a MIPS R3000 micro-processor 61 * Mandatory arguments:62 * Arguments: 62 63 * `name` 64 * `ident`: cpu id 63 65 * Example: 64 66 {{{ 65 my_proc = Mips("my_proc")67 my_proc = arch.create('caba:iss_wrapper', "my_proc", iss_t = 'common:mipsel', ident = 0 ) 66 68 }}} 67 69 * 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 69 72 * `irq[n]`: interrupt line (0 <= n < 6) 70 73 … … 75 78 * !Mandatory arguments: 76 79 * `name` 77 * Optional arguments:78 * a list of segments, allocated with Segment()79 80 * Example: 80 81 {{{ 81 my_ram = MultiRam("my_ram", seg1, seg2, seg3)82 my_ram = arch.create('caba:vci_ram', "my_ram") 82 83 }}} 83 84 * Defined ports: 84 85 * `vci`: to the micro-network 86 * Adding a segment: 87 * Arguments: name, base address, size, cacheability 88 {{{ 89 my_ram.addSegment( 'boot', 0xbfc00000, 0x100, true ) 90 }}} 85 91 86 92 == D.2) !MultiTty == 87 93 88 * functionality: a TTY controler (up to 256 TTYs)94 * functionality: a TTY controler 89 95 * Mandatory arguments: 90 96 * `instance name` 91 * a n ordered list ot names (one name per emulated terminal)97 * a list of names 92 98 * Example: 93 99 {{{ 94 my_tty = MultiTty("my_tty_controler", "TTY0", "TTY1", "TT2")100 my_tty = arch.create('caba:vci_multi_tty', "my_tty_controler", ["TTY0", "TTY1", "TT2"]) 95 101 }}} 96 102 * Defined ports: 97 103 * `vci`: to the micro-network 98 104 * `irq[n]`: interrupt line (0 <= n < nb of ttys) 99 100 == D.3) Locks ==101 102 * functionality : a locks controler103 * 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