URL
https://opencores.org/ocsvn/amber/amber/trunk
Subversion Repositories amber
[/] [amber/] [trunk/] [hw/] [vlog/] [amber23/] [a23_localparams.vh] - Rev 88
Go to most recent revision | Compare with Previous | Blame | View Log
////////////////////////////////////////////////////////////////// // // // Parameters file for Amber 2 Core // // // // This file is part of the Amber project // // http://www.opencores.org/project,amber // // // // Description // // Holds general parameters that are used is several core // // modules // // // // Author(s): // // - Conor Santifort, csantifort.amber@gmail.com // // // ////////////////////////////////////////////////////////////////// // // // Copyright (C) 2010 Authors and OPENCORES.ORG // // // // This source file may be used and distributed without // // restriction provided that this copyright statement is not // // removed from the file and that any derivative work contains // // the original copyright notice and the associated disclaimer. // // // // This source file 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.1 of the License, or (at your option) any // // later version. // // // // This source is distributed in the hope that it will be // // useful, but WITHOUT ANY WARRANTY; without even the implied // // warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR // // PURPOSE. See the GNU Lesser General Public License for more // // details. // // // // You should have received a copy of the GNU Lesser General // // Public License along with this source; if not, download it // // from http://www.opencores.org/lgpl.shtml // // // ////////////////////////////////////////////////////////////////// // Instruction Types localparam [3:0] REGOP = 4'h0, // Data processing MULT = 4'h1, // Multiply SWAP = 4'h2, // Single Data Swap TRANS = 4'h3, // Single data transfer MTRANS = 4'h4, // Multi-word data transfer BRANCH = 4'h5, // Branch CODTRANS = 4'h6, // Co-processor data transfer COREGOP = 4'h7, // Co-processor data operation CORTRANS = 4'h8, // Co-processor register transfer SWI = 4'h9; // software interrupt // Opcodes localparam [3:0] AND = 4'h0, // Logical AND EOR = 4'h1, // Logical Exclusive OR SUB = 4'h2, // Subtract RSB = 4'h3, // Reverse Subtract ADD = 4'h4, // Add ADC = 4'h5, // Add with Carry SBC = 4'h6, // Subtract with Carry RSC = 4'h7, // Reverse Subtract with Carry TST = 4'h8, // Test (using AND operator) TEQ = 4'h9, // Test Equivalence (using EOR operator) CMP = 4'ha, // Compare (using Subtract operator) CMN = 4'hb, // Compare Negated ORR = 4'hc, // Logical OR MOV = 4'hd, // Move BIC = 4'he, // Bit Clear (using AND & NOT operators) MVN = 4'hf; // Move NOT // Condition Encoding localparam [3:0] EQ = 4'h0, // Equal / Z set NE = 4'h1, // Not equal / Z clear CS = 4'h2, // Carry set / C set CC = 4'h3, // Carry clear / C clear MI = 4'h4, // Minus / N set PL = 4'h5, // Plus / N clear VS = 4'h6, // Overflow / V set VC = 4'h7, // No overflow / V clear HI = 4'h8, // Unsigned higher / C set and Z clear LS = 4'h9, // Unsigned lower // or same / C clear or Z set GE = 4'ha, // Signed greater // than or equal / N == V LT = 4'hb, // Signed less than / N != V GT = 4'hc, // Signed greater // than / Z == 0, N == V LE = 4'hd, // Signed less than // or equal / Z == 1, N != V AL = 4'he, // Always NV = 4'hf; // Never // Any instruction with a condition field of 0b1111 is UNPREDICTABLE. // Shift Types localparam [1:0] LSL = 2'h0, LSR = 2'h1, ASR = 2'h2, RRX = 2'h3, ROR = 2'h3; // Modes localparam [1:0] SVC = 2'b11, // Supervisor IRQ = 2'b10, // Interrupt FIRQ = 2'b01, // Fast Interrupt USR = 2'b00; // User // One-Hot Mode encodings localparam [5:0] OH_USR = 0, OH_IRQ = 1, OH_FIRQ = 2, OH_SVC = 3;
Go to most recent revision | Compare with Previous | Blame | View Log