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

Subversion Repositories rise

[/] [rise/] [trunk/] [vhdl/] [rise_pack_syn.vhd] - Rev 150

Go to most recent revision | Compare with Previous | Blame | View Log

-------------------------------------------------------------------------------
-- File: rise_pack.vhd
-- Author: Jakob Lechner, Urban Stadler, Harald Trinkl, Christian Walter
-- Created: 2006-11-29
-- Last updated: 2006-11-29
 
-- Description:
-- Package for RISE project.
-------------------------------------------------------------------------------
 
 
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.STD_LOGIC_ARITH.all;
use work.RISE_CONST_PACK.all;
 
package RISE_PACK_SPECIFIC is
 
  constant OPCODE_WIDTH : integer := CONST_OPCODE_WIDTH;
  constant COND_WIDTH : integer := CONST_COND_WIDTH;
 
  subtype OPCODE_T is std_logic_vector(OPCODE_WIDTH-1 downto 0);
  subtype COND_T is std_logic_vector(COND_WIDTH-1 downto 0);
 
 
  -- RISE OPCODES --
  -- load opcodes
  constant OPCODE_LD_IMM        : OPCODE_T := CONST_OPCODE_LD_IMM;
  constant OPCODE_LD_IMM_HB     : OPCODE_T := CONST_OPCODE_LD_IMM_HB;
  constant OPCODE_LD_DISP       : OPCODE_T := CONST_OPCODE_LD_DISP;
  constant OPCODE_LD_DISP_MS    : OPCODE_T := CONST_OPCODE_LD_DISP_MS;
  constant OPCODE_LD_REG        : OPCODE_T := CONST_OPCODE_LD_REG;
 
  -- store opcodes
  constant OPCODE_ST_DISP       : OPCODE_T := CONST_OPCODE_ST_DISP;
 
  -- arithmethic opcodes
  constant OPCODE_ADD           : OPCODE_T := CONST_OPCODE_ADD;
  constant OPCODE_ADD_IMM       : OPCODE_T := CONST_OPCODE_ADD_IMM;
  constant OPCODE_SUB           : OPCODE_T := CONST_OPCODE_SUB;
  constant OPCODE_SUB_IMM       : OPCODE_T := CONST_OPCODE_SUB_IMM;
  constant OPCODE_NEG           : OPCODE_T := CONST_OPCODE_NEG;
  constant OPCODE_ARS           : OPCODE_T := CONST_OPCODE_ARS;
  constant OPCODE_ALS           : OPCODE_T := CONST_OPCODE_ALS;
 
  -- logical opcodes
  constant OPCODE_AND : OPCODE_T := CONST_OPCODE_AND;
  constant OPCODE_NOT : OPCODE_T := CONST_OPCODE_NOT;
  constant OPCODE_EOR : OPCODE_T := CONST_OPCODE_EOR;
  constant OPCODE_LS :  OPCODE_T := CONST_OPCODE_LS;
  constant OPCODE_RS :  OPCODE_T := CONST_OPCODE_RS;
 
  -- program control
  constant OPCODE_JMP : OPCODE_T := CONST_OPCODE_JMP;
 
  -- other
  constant OPCODE_TST : OPCODE_T := CONST_OPCODE_TST;
  constant OPCODE_NOP : OPCODE_T := CONST_OPCODE_NOP;
 
  -- CONDITION CODES --
  constant COND_UNCONDITIONAL   : COND_T := CONST_COND_UNCONDITIONAL;
  constant COND_NOT_ZERO        : COND_T := CONST_COND_NOT_ZERO; 
  constant COND_ZERO            : COND_T := CONST_COND_ZERO;
  constant COND_CARRY           : COND_T := CONST_COND_CARRY;
  constant COND_NEGATIVE        : COND_T := CONST_COND_NEGATIVE;
  constant COND_OVERFLOW        : COND_T := CONST_COND_OVERFLOW;
  constant COND_ZERO_NEGATIVE   : COND_T := CONST_COND_ZERO_NEGATIVE;
 
  function svector2opcode (v : std_logic_vector) return OPCODE_T;
  function svector2cond (v : std_logic_vector) return COND_T;
 
end RISE_PACK_SPECIFIC;
 
package body RISE_PACK_SPECIFIC is
 
-- purpose: converts std_logic_vector to enum type
  function svector2opcode (v : std_logic_vector) return OPCODE_T is
    variable v_tmp : CONST_OPCODE_T;
  begin  -- svector2opcode
    v_tmp := v;
    return v_tmp;
  end svector2opcode;
 
-- purpose: converts std_logic_vector to enum type
  function svector2cond (v : std_logic_vector) return COND_T is
    variable v_tmp : CONST_COND_T;
  begin  -- svector2cond
    v_tmp := v;
    return v_tmp;
  end svector2cond;
 
end RISE_PACK_SPECIFIC;
 
 
 

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

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