wiki:MjpegCourse/VgmnNoirqMono

Version 5 (modified by Nicolas Pouillon, 16 years ago) (diff)

--

import soclib

def VgmnNoirqMono():
	pf = soclib.Architecture(cell_size = 4,
							 plen_size = 1,
							 addr_size = 32,
							 rerror_size = 1,
							 clen_size = 1,
							 rflag_size = 1,
							 srcid_size = 8,
							 pktid_size = 1,
							 trdid_size = 1,
							 wrplen_size = 1
							 )
	pf.create('common:mapping_table',
			  'mapping_table',
			  addr_bits = [8],
			  srcid_bits = [8],
			  cacheability_mask = 0xc00000)
	pf.create('common:elf_loader', 'loader')

	vgmn = pf.create('caba:vci_vgmn', 'vgmn0', *** remplir ***)

	mips = pf.create('caba:iss_wrapper', 'mips0', iss_t='common:mipsel', *** remplir ***)
	xcache = pf.create('caba:vci_xcache', 'xcache0',
					   icache_lines = 16,
					   icache_words = 8,
					   dcache_lines = 16,
					   dcache_words = 8)
	mips.dcache // xcache.dcache
	mips.icache // xcache.icache

	vgmn.to_initiator.new() // xcache.vci

	for i in range(2):
		ram = pf.create('caba:vci_ram', 'ram%d'%i)
		base = 0x10000000*i+0x10000000
		ram.addSegment('cram%d'%i, base, 0x100000, True)
		ram.addSegment('uram%d'%i, base + 0x200000, 0x100000, False)
		ram.vci // vgmn.to_target.new()
	ram.addSegment('boot', *** remplir ***) # Mips boot address, 0x100 octets, cacheable
	ram.addSegment('excep', *** remplir ***) # Mips exception address, 0x100 octets, cacheable

	tty = pf.create('caba:vci_multi_tty', 'tty0', names = ['tty0'])
	tty.addSegment('tty0', 0x90000000, 0x20, False)
	tty.vci // vgmn.to_target.new()

	return pf

Attachments (1)

Download all attachments as: .zip