This page is a little excerpt of all available soclib components, please see documentation on SoCLib's main site for a complete list.
Interconnects
Vgmn
- functionality : a generic VCI compliant micro-network
- Arguments:
instance name
min_latency
(one-way)fifo_size
mt
a mapping table (mandatory for root interconnects)
- Example:
my_mt = arch.create('common:mapping_table', 'mt0', …) my_vgmn = arch.create('caba:vci_vgmn', "my_vgmn", min_latency = 10, fifo_depth = 8, mt = my_mt)
- Defined ports:
to_initiator.new()
andto_target.new()
: local ports, allocated on demand
LocalCrossbar
- functionality : a VCI compliant crossbar interconnect
- Arguments:
instance name
- Example:
my_lc = arch.create('caba:vci_local_crossbar', "lc0")
- Defined ports:
to_initiator.new()
andto_target.new()
: local ports, allocated on demand
VCI Initiators
Xcache
- functionality: a n-associative cache controler (separated instruction & data cache) wrapping a given ISS, it can be considered as a CPU with an embedded cache.
- Arguments:
instance name
dcache_sets
: number of lines in data cachedcache_words
: number of words per line in data cachedcache_ways
: associativity of the data cacheicache_sets
: number of lines in instruction cacheicache_words
: number of words per line in instruction cacheicache_ways
: associativity of the instruction cacheiss_t
: type of ISS to be wrapped in the cache, at least "common:mips32el", "common:mips32eb" and "common:ppc405" are supportedident
: cpu number
- Example:
my_cpu0 = arch.create('caba:vci_xcache_wrapper', 'cpu0', ident = 0, icache_ways = 1, icache_sets = 32, icache_words = 8, dcache_ways = 1, dcache_sets = 32, dcache_words = 8, iss_t = "common:mips32el", )
- Defined ports:
irq[n]
: to the CPU interruptsvci
: to the VCI micro-network
VCI Targets
MultiRam
- !Mandatory arguments:
name
- Example:
my_ram = arch.create('caba:vci_ram', "my_ram")
- Defined ports:
vci
: to the micro-network
- Adding a segment:
- Arguments: name, base address, size, cacheability
my_ram.addSegment( 'boot', 0xbfc00000, 0x1000, true )
- Arguments: name, base address, size, cacheability
MultiTty
- functionality: a TTY controler
- Mandatory arguments:
instance name
- a list of names
- Example:
my_tty = arch.create('caba:vci_multi_tty', "my_tty_controler", names = ["TTY0", "TTY1", "TT2"])
- Defined ports:
vci
: to the micro-networkirq[n]
: interrupt line (0 <= n < nb of ttys)
Last modified 15 years ago
Last modified on Apr 14, 2010, 9:53:07 AM