Line 20... |
Line 20... |
// You should have received a copy of the GNU General Public License
|
// You should have received a copy of the GNU General Public License
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
//
|
//
|
// ============================================================================
|
// ============================================================================
|
//
|
//
|
|
// The following line is to enable simulation versions of some modules.
|
|
// Comment out for synthesis.
|
`define SIM 1'b1
|
`define SIM 1'b1
|
|
|
//`define SUPPORT_SMT 1'b1
|
//`define SUPPORT_SMT 1'b1
|
`define SUPPORT_VECTOR 1'b1
|
//`define SUPPORT_VECTOR 1'b1
|
//`define SUPPORT_DCI 1'b1 // dynamically compressed instructions
|
//`define SUPPORT_DCI 1'b1 // dynamically compressed instructions
|
//`define DEBUG_LOGIC 1'b1
|
//`define DEBUG_LOGIC 1'b1
|
`define L1_ICACHE_SIZE 4 // 2 or 4 for 2 or 4 kB
|
`define L1_ICACHE_SIZE 2 // 2 or 4 for 2 or 4 kB
|
|
|
// One way to tweak the size of the core a little bit is to limit the number
|
// One way to tweak the size of the core a little bit is to limit the number
|
// of address bits processed. The test system for instance has only 512MB of
|
// of address bits processed. The test system for instance has only 512MB of
|
// memory, so the address size is limited to 32 bits.
|
// memory, so the address size is limited to 32 bits.
|
`define AMSB 31
|
`define AMSB 31
|
Line 53... |
Line 56... |
|
|
// The WAYS config define affects things like the number of ports on the
|
// The WAYS config define affects things like the number of ports on the
|
// register file, the number of ports on the instruction cache, and how
|
// register file, the number of ports on the instruction cache, and how
|
// many entries are contained in the fetch buffers. It also indirectly
|
// many entries are contained in the fetch buffers. It also indirectly
|
// affects how many instructions are queued.
|
// affects how many instructions are queued.
|
`define WAYS 2 // number of ways parallel (1-3 3 not working yet)
|
`define WAYS 1 // number of ways parallel (1-3 3 not working yet)
|
`define NUM_IDU 2 // number of instruction decode units (1-3)
|
`define NUM_IDU 1 // number of instruction decode units (1-3)
|
`define NUM_ALU 2 // number of ALU's (1-2)
|
`define NUM_ALU 1 // number of ALU's (1-2)
|
`define NUM_MEM 2 // number of memory queues (1-3)
|
`define NUM_MEM 1 // number of memory queues (1-3)
|
`define NUM_FPU 2 // number of floating-point units (0-2)
|
`define NUM_FPU 1 // number of floating-point units (0-2)
|
// Note that even with just a single commit bus, multiple instructions may
|
// Note that even with just a single commit bus, multiple instructions may
|
// commit if they do not target any registers. Up to three instruction may
|
// commit if they do not target any registers. Up to three instruction may
|
// commit even with just a single bus.
|
// commit even with just a single bus.
|
`define NUM_CMT 2 // number of commit busses (1-2)
|
`define NUM_CMT 1 // number of commit busses (1-2)
|
// Comment out the following to remove FCU enhancements (branch predictor, BTB, RSB)
|
// Comment out the following to remove FCU enhancements (branch predictor, BTB, RSB)
|
`define FCU_ENH 1
|
`define FCU_ENH 1
|
// Comment out the following to remove bypassing logic on the functional units
|
// Comment out the following to remove bypassing logic on the functional units
|
`define FU_BYPASS 1
|
`define FU_BYPASS 1
|
|
|