| 1 |
2 |
takar |
----------------------------------------------------------------------------------------------
|
| 2 |
|
|
--
|
| 3 |
|
|
-- Input file : config_Pkg.vhd
|
| 4 |
|
|
-- Design name : config_Pkg
|
| 5 |
|
|
-- Author : Tamar Kranenburg
|
| 6 |
|
|
-- Company : Delft University of Technology
|
| 7 |
|
|
-- : Faculty EEMCS, Department ME&CE
|
| 8 |
|
|
-- : Systems and Circuits group
|
| 9 |
|
|
--
|
| 10 |
|
|
-- Description : Configuration parameters for the design
|
| 11 |
|
|
--
|
| 12 |
|
|
----------------------------------------------------------------------------------------------
|
| 13 |
|
|
|
| 14 |
|
|
LIBRARY ieee;
|
| 15 |
|
|
USE ieee.std_logic_1164.ALL;
|
| 16 |
|
|
USE ieee.std_logic_unsigned.ALL;
|
| 17 |
|
|
|
| 18 |
|
|
PACKAGE config_Pkg IS
|
| 19 |
|
|
|
| 20 |
|
|
----------------------------------------------------------------------------------------------
|
| 21 |
|
|
-- CORE PARAMETERS
|
| 22 |
|
|
----------------------------------------------------------------------------------------------
|
| 23 |
|
|
-- Implement external interrupt
|
| 24 |
|
|
CONSTANT CFG_INTERRUPT : boolean := true; -- Disable or enable external interrupt [0,1]
|
| 25 |
|
|
|
| 26 |
|
|
-- Implement hardware multiplier
|
| 27 |
|
|
CONSTANT CFG_USE_HW_MUL : boolean := true; -- Disable or enable multiplier [0,1]
|
| 28 |
|
|
|
| 29 |
|
|
-- Implement hardware barrel shifter
|
| 30 |
|
|
CONSTANT CFG_USE_BARREL : boolean := true; -- Disable or enable barrel shifter [0,1]
|
| 31 |
|
|
|
| 32 |
|
|
-- Debug mode
|
| 33 |
|
|
CONSTANT CFG_DEBUG : boolean := true; -- Resets some extra registers for better readability
|
| 34 |
|
|
-- and enables feedback (report) [0,1]
|
| 35 |
|
|
-- Set CFG_DEBUG to zero to obtain best performance.
|
| 36 |
|
|
|
| 37 |
|
|
-- Memory parameters
|
| 38 |
|
|
CONSTANT CFG_DMEM_SIZE : positive := 32; -- Data memory bus size in 2LOG # elements
|
| 39 |
|
|
CONSTANT CFG_IMEM_SIZE : positive := 16; -- Instruction memory bus size in 2LOG # elements
|
| 40 |
|
|
CONSTANT CFG_BYTE_ORDER : boolean := true; -- Switch between MSB (1, default) and LSB (0) byte order policy
|
| 41 |
|
|
|
| 42 |
|
|
-- Register parameters
|
| 43 |
|
|
CONSTANT CFG_REG_FORCE_ZERO : boolean := true; -- Force data to zero if register address is zero [0,1]
|
| 44 |
|
|
CONSTANT CFG_REG_FWD_WB : boolean := true; -- Forward writeback to loosen register memory requirements [0,1]
|
| 45 |
|
|
CONSTANT CFG_MEM_FWD_WB : boolean := true; -- Forward memory result in stead of introducing stalls [0,1]
|
| 46 |
|
|
|
| 47 |
|
|
----------------------------------------------------------------------------------------------
|
| 48 |
|
|
-- CONSTANTS (currently not configurable / not tested)
|
| 49 |
|
|
----------------------------------------------------------------------------------------------
|
| 50 |
|
|
CONSTANT CFG_DMEM_WIDTH : positive := 32; -- Data memory width in bits
|
| 51 |
|
|
CONSTANT CFG_IMEM_WIDTH : positive := 32; -- Instruction memory width in bits
|
| 52 |
|
|
CONSTANT CFG_GPRF_SIZE : positive := 5; -- General Purpose Register File Size in 2LOG # elements
|
| 53 |
|
|
|
| 54 |
|
|
----------------------------------------------------------------------------------------------
|
| 55 |
|
|
-- BUS PARAMETERS
|
| 56 |
|
|
----------------------------------------------------------------------------------------------
|
| 57 |
|
|
|
| 58 |
|
|
TYPE memory_map_type IS ARRAY(natural RANGE <>) OF std_ulogic_vector(CFG_DMEM_WIDTH - 1 DOWNTO 0);
|
| 59 |
|
|
CONSTANT CFG_NUM_SLAVES : positive := 2;
|
| 60 |
|
|
CONSTANT CFG_MEMORY_MAP : memory_map_type(0 TO CFG_NUM_SLAVES) := (X"00000000", X"00FFFFFF", X"FFFFFFFF");
|
| 61 |
|
|
|
| 62 |
|
|
END config_Pkg;
|