OpenCores
URL https://opencores.org/ocsvn/xulalx25soc/xulalx25soc/trunk

Subversion Repositories xulalx25soc

[/] [xulalx25soc/] [trunk/] [rtl/] [cpu/] [cpudefs.v] - Diff between revs 117 and 118

Show entire file | Details | Blame | View Log

Rev 117 Rev 118
Line 27... Line 27...
// Creator:     Dan Gisselquist, Ph.D.
// Creator:     Dan Gisselquist, Ph.D.
//              Gisselquist Technology, LLC
//              Gisselquist Technology, LLC
//
//
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
//
//
// Copyright (C) 2015, Gisselquist Technology, LLC
// Copyright (C) 2015-2016, Gisselquist Technology, LLC
//
//
// This program is free software (firmware): you can redistribute it and/or
// This program is free software (firmware): you can redistribute it and/or
// modify it under the terms of  the GNU General Public License as published
// modify it under the terms of  the GNU General Public License as published
// by the Free Software Foundation, either version 3 of the License, or (at
// by the Free Software Foundation, either version 3 of the License, or (at
// your option) any later version.
// your option) any later version.
Line 75... Line 75...
// includes the multiply.  (This parameter may still be overridden, as with
// includes the multiply.  (This parameter may still be overridden, as with
// any parameter ...)  If the multiply is not included and
// any parameter ...)  If the multiply is not included and
// OPT_ILLEGAL_INSTRUCTION is set, then the multiply will create an illegal
// OPT_ILLEGAL_INSTRUCTION is set, then the multiply will create an illegal
// instruction that will then trip the illegal instruction trap.
// instruction that will then trip the illegal instruction trap.
//
//
 
// Either not defining this value, or defining it to zero will disable the
 
// hardware multiply.  A value of '1' will cause the multiply to occurr in one
 
// clock cycle only--often at the expense of the rest of the CPUs speed.
 
// A value of 2 will cause the multiply to have a single delay cycle, 3 will
 
// have two delay cycles, and 4 (or more) will have 3 delay cycles.
//
//
`define OPT_MULTIPLY    2
`define OPT_MULTIPLY    4
//
//
//
//
//
//
// OPT_DIVIDE controls whether or not the divide instruction is built and
// OPT_DIVIDE controls whether or not the divide instruction is built and
// included into the ZipCPU by default.  Set this option and a parameter will
// included into the ZipCPU by default.  Set this option and a parameter will
Line 109... Line 114...
//
//
// `define      OPT_IMPLEMENT_FPU
// `define      OPT_IMPLEMENT_FPU
//
//
//
//
//
//
// OPT_NEW_INSTRUCTION_SET controls whether or not the new instruction set
 
// is in use.  The new instruction set contains space for floating point
 
// operations, signed and unsigned divide instructions, as well as bit reversal
 
// and ... at least two other operations yet to be defined.  The decoder alone
 
// uses about 70 fewer LUTs, although in practice this works out to 12 fewer
 
// when all works out in the wash.  Further, floating point and divide
 
// instructions will cause an illegal instruction exception if they are not
 
// implemented--so software capability can be built to use these instructions
 
// immediately, even if the hardware is not yet ready.
 
//
 
// This option is likely to go away in the future, obsoleting the previous
 
// instruction set, so I recommend setting this option and switching to the
 
// new instruction set as soon as possible.
 
//
 
`define OPT_NEW_INSTRUCTION_SET
 
//
 
//
 
//
 
//
 
//
 
//
//
// OPT_SINGLE_FETCH controls whether or not the prefetch has a cache, and 
// OPT_SINGLE_FETCH controls whether or not the prefetch has a cache, and 
// whether or not it can issue one instruction per clock.  When set, the
// whether or not it can issue one instruction per clock.  When set, the
// prefetch has no cache, and only one instruction is fetched at a time.
// prefetch has no cache, and only one instruction is fetched at a time.
// This effectively sets the CPU so that only one instruction is ever 
// This effectively sets the CPU so that only one instruction is ever 
Line 224... Line 209...
//
//
`define OPT_PIPELINED_BUS_ACCESS
`define OPT_PIPELINED_BUS_ACCESS
//
//
//
//
//
//
`ifdef  OPT_NEW_INSTRUCTION_SET
 
//
 
//
//
//
//
// The new instruction set also defines a set of very long instruction words.
// The new instruction set also defines a set of very long instruction words.
// Well, calling them "very long" instruction words is probably a misnomer,
// Well, calling them "very long" instruction words is probably a misnomer,
// although we're going to do it.  They're really 2x16-bit instructions---
// although we're going to do it.  They're really 2x16-bit instructions---
Line 251... Line 234...
// simulator all need to be updated as well ....
// simulator all need to be updated as well ....
//
//
`define OPT_VLIW
`define OPT_VLIW
//
//
//
//
`endif // OPT_NEW_INSTRUCTION_SET
 
//
 
//
//
`endif  // OPT_SINGLE_FETCH
`endif  // OPT_SINGLE_FETCH
//
//
//
//
//
//

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.