---------------------------------------------------------------------------- -- This file is a part of the LEON VHDL model -- Copyright (C) 1999 European Space Agency (ESA) -- -- This library is free software; you can redistribute it and/or -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2 of the License, or (at your option) any later version. -- -- See the file COPYING.LGPL for the full details of the license. ----------------------------------------------------------------------------- -- Entity: device -- File: device.vhd -- Author: Jiri Gaisler - Gaisler Research -- Description: package to select current device configuration ------------------------------------------------------------------------------ library IEEE; use IEEE.std_logic_1164.all; use work.target.all; package device is ----------------------------------------------------------------------------- -- Automatically generated by tkonfig/mkdevice ----------------------------------------------------------------------------- constant apbslvcfg_tkconfig : apb_slv_config_vector(0 to APB_SLV_MAX-1) := ( -- first last index enable function PADDR[9:0] ( "0000000000", "0000001000", 0, true), -- memory controller, 0x00 - 0x08 ( "0000001100", "0000010000", 1, false), -- AHB status reg., 0x0C - 0x10 ( "0000010100", "0000011000", 2, true), -- cache controller, 0x14 - 0x18 ( "0000011100", "0000100000", 3, false), -- write protection, 0x1C - 0x20 ( "0000100100", "0000100100", 4, true), -- config register, 0x24 - 0x24 ( "0001000000", "0001101100", 5, true), -- timers, 0x40 - 0x6C ( "0001110000", "0001111100", 6, true), -- uart1, 0x70 - 0x7C ( "0010000000", "0010001100", 7, true), -- uart2, 0x80 - 0x8C ( "0010010000", "0010011100", 8, true), -- interrupt ctrl 0x90 - 0x9C ( "0010100000", "0010101100", 9, true), -- I/O port 0xA0 - 0xAC ( "0010110000", "0010111100", 10, false),-- 2nd interrupt ctrl 0xB0 - 0xBC ( "0011000000", "0011001100", 11, false), -- DSU uart 0xC0 - 0xCC ( "0100000000", "0111111100", 12, false), -- PCI configuration 0x100- 0x1FC ( "1000000000", "1011111100", 13, false), -- PCI arbiter 0x200- 0x2FC ----------------- AMBA SLAVE ------------------------------ ( "1100000000", "1111111100", 14, true), -- Register File 0x300- 0x3FC others => apb_slv_config_void); constant apb_tkconfig : apb_config_type := (table => apbslvcfg_tkconfig); constant ahbslvcfg_tkconfig : ahb_slv_config_vector(0 to AHB_SLV_MAX-1) := ( -- first last index split enable function HADDR[31:28] ("0000", "0111", 0, false, true), -- memory controller, 0x0- 0x7 ("1000", "1000", 1, false, true), -- APB bridge, 128 MB 0x8- 0x8 ("1001", "1001", 2, false, false), -- DSU 128 MB 0x9- 0x9 ("1010", "1111", 3, false, false), -- PCI initiator 0xA- 0xF ("0110", "0110", 4, false, false), -- AHB RAM module 0x4- 0x4 others => ahb_slv_config_void); constant ahb_tkconfig : ahb_config_type := ( masters => 1, defmst => 0, split => false, slvtable => ahbslvcfg_tkconfig, testmod => false); constant syn_tkconfig : syn_config_type := ( targettech => gen, infer_pads => false, infer_ram => false, infer_regf => false, infer_rom => true, infer_mult => false, rftype => 2); constant iu_tkconfig : iu_config_type := ( nwindows => 8, multiplier => none, mulpipe => false, divider => none, mac => false, fpuen => 0, cpen => false, fastjump => true, icchold => true, lddelay => 1, fastdecode => true, watchpoints => 0, impl => 0, version => 0, rflowpow => false); constant fpu_tkconfig : fpu_config_type := (core => meiko, interface => none, fregs => 0, version => 0); constant cache_tkconfig : cache_config_type := ( isets => 2, isetsize => 1, ilinesize => 8, ireplace => rnd, ilock => 0, dsets => 2, dsetsize => 1, dlinesize => 8, dreplace => rnd, dlock => 0, dsnoop => none, drfast => false, dwfast => false, cachetable => cachetbl_std); constant mctrl_tkconfig : mctrl_config_type := ( bus8en => true, bus16en => false, wendfb => false, ramsel5 => false, sdramen => false, sdinvclk => false); constant peri_tkconfig : peri_config_type := ( cfgreg => true, ahbstat => false, wprot => false, wdog => true, irq2cfg => irq2none, ahbram => false, ahbrambits => 11); constant debug_tkconfig : debug_config_type := ( enable => true, uart => false, iureg => false, fpureg => false, nohalt => false, pclow => 2, dsuenable => false, dsutrace => false, dsumixed => false, dsudpram => false, tracelines => 64); constant boot_tkconfig : boot_config_type := (boot => memory, ramrws => 0, ramwws => 0, sysclk => 25000000, baud => 19200, extbaud => false, pabits => 11); constant pci_tkconfig : pci_config_type := ( pcicore => none, ahbmasters => 0, ahbslaves => 0, arbiter => false, fixpri => false, prilevels => 4, pcimasters => 4, vendorid => 16#0000#, deviceid => 16#0000#, subsysid => 16#0000#, revisionid => 16#00#, classcode =>16#000000#, pmepads => false, p66pad => false, pcirstall => false); constant tkconfig : config_type := ( synthesis => syn_tkconfig, iu => iu_tkconfig, fpu => fpu_tkconfig, cp => cp_none, cache => cache_tkconfig, ahb => ahb_tkconfig, apb => apb_tkconfig, mctrl => mctrl_tkconfig, boot => boot_tkconfig, debug => debug_tkconfig, pci => pci_tkconfig, peri => peri_tkconfig); ----------------------------------------------------------------------------- -- end of automatic configuration ----------------------------------------------------------------------------- ---------------------------------------------------------------------- -- This is the current device configuration ---------------------------------------------------------------------- constant conf : config_type := tkconfig; end;