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

Subversion Repositories core_arm

[/] [core_arm/] [trunk/] [vhdl/] [arm/] [armcmd_comp.vhd] - Rev 5

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

-- $(lic)
-- $(help_generic)
-- $(help_local)
 
library IEEE;
use IEEE.std_logic_1164.all;
use work.armcmd.all;
use work.armshiefter.all;
use work.armpctrl.all;
use work.gendc_lib.all;
 
package armcmd_comp is
 
-------------------------------------------------------------------------------
-- Arithmetic commands
 
type armcmd_al_typ_in is record
 
   ctrli    : acm_ctrlin;
 
end record;
 
type armcmd_al_typ_out is record
 
   ctrlo    : acm_ctrlout;
 
   -- rrstg
   r1_src    : acm_regsrc;           -- (micro.r1)
   r2_src    : acm_regsrc;           -- (micro.r2)
   rd_src    : acm_rdsrc;            -- (pctrl.wr.wrop_rd)
 
   -- rsstg:
   rsop_op1_src : apc_rsop_opsrc;    -- EXSTG operand1 source (pctrl.rs.rsop_op1_src)
   rsop_op2_src : apc_rsop_opsrc;    -- EXSTG operand2 source (pctrl.rs.rsop_op2_src)
   rsop_buf2_src : apc_rsop_bufsrc;  -- RSSTG buffer1 source (pctrl.rs.rsop_buf2_src)
 
 
end record;
 
component armcmd_al
  port ( 
    rst     : in  std_logic;
    clk     : in  std_logic;
    i       : in  armcmd_al_typ_in;
    o       : out armcmd_al_typ_out
    );
end component;
 
-------------------------------------------------------------------------------
-- ctrl commands (msr,mrs,b)
 
type armcmd_sr_typ_in is record
 
   ctrli    : acm_ctrlin;
 
   deid  : std_logic_vector(2 downto 0);  -- (destg.pctrl.id)
 
   exid  : std_logic_vector(2 downto 0);  -- (exstg.pctrl.id)
   exvalid : std_logic;                   -- (exstg.pctrl.valid)
 
   wrid  : std_logic_vector(2 downto 0);  -- (wrstg.pctrl.id) 
   wrvalid : std_logic;                   -- (wrstg.pctrl.valid)
 
end record;
 
type armcmd_sr_typ_out is record
 
   ctrlo    : acm_ctrlout;
 
   -- rrstg:
   r2_src    : acm_regsrc;                 -- (micro.r2)
   rd_src    : acm_rdsrc;                  -- (pctrl.wr.wrop_rd)
 
   -- rsstg:
   rsop_styp        : ash_styp;            -- RSSTG shieft op (pctrl.rs.rsop_styp)
   rsop_sdir        : ash_sdir;            -- RSSTG shieft dir (pctrl.rs.rsop_sdir)
   rsop_op2_src     : apc_rsop_opsrc;      -- EXSTG operand2 source (pctrl.rs.rsop_op2_src)
 
   -- exstg:
   exop_setcpsr : std_logic;               -- EXSTG set cpsr (pctrl.ex.exop_setcpsr)
 
end record;
 
component armcmd_sr
  port ( 
    rst     : in  std_logic;
    clk     : in  std_logic;
    i       : in  armcmd_sr_typ_in;
    o       : out armcmd_sr_typ_out
    );
end component;
 
type armcmd_bl_typ_in is record
 
   ctrli    : acm_ctrlin;
 
 
end record;
 
type armcmd_bl_typ_out is record
 
   ctrlo    : acm_ctrlout;
 
   r1_src    : acm_regsrc;  -- (micro.r1)
   r2_src    : acm_regsrc;  -- (micro.r2)
   rd_src    : acm_rdsrc;   -- (pctrl.wr.wrop_rd)
 
   rsop_op2_src     : apc_rsop_opsrc;    -- EXSTG operand1 source (pctrl.rs.rsop_op2_src)
 
   data2            : std_logic_vector(31 downto 0); -- immidiate 1 (pctlr.data2)
 
end record;
 
component armcmd_bl
  port ( 
    rst     : in  std_logic;
    clk     : in  std_logic;
    i       : in  armcmd_bl_typ_in;
    o       : out armcmd_bl_typ_out
    );
end component;
 
-------------------------------------------------------------------------------
-- memory commands (ldr, str, ldm, stm)
 
type armcmd_ld_typ_in is record
 
   ctrli    : acm_ctrlin;
 
   ctrlmemo : acm_ctrlmemout;
 
end record;
 
type armcmd_ld_typ_out is record
 
   ctrlo    : acm_ctrlout;
 
   ctrlmemo : acm_ctrlmemout;
 
   rsop_styp        : ash_styp;  -- RSSTG shieft op (pctrl.rs.rsop_styp)
   rsop_sdir        : ash_sdir;  -- RSSTG shieft dir (pctrl.rs.rsop_sdir)
 
end record;
 
component armcmd_ld 
  port ( 
    rst     : in  std_logic;
    clk     : in  std_logic;
    i       : in  armcmd_ld_typ_in;
    o       : out armcmd_ld_typ_out
    );
end component;
 
type armcmd_st_typ_in is record
 
   ctrli    : acm_ctrlin;
 
   ctrlmemo : acm_ctrlmemout;
 
end record;
 
type armcmd_st_typ_out is record
 
   ctrlo    : acm_ctrlout;
 
   ctrlmemo : acm_ctrlmemout;
 
   rsop_styp        : ash_styp;  -- RSSTG shieft op (pctrl.rs.rsop_styp)
   rsop_sdir        : ash_sdir;  -- RSSTG shieft dir (pctrl.rs.rsop_sdir)
 
end record;
 
component armcmd_st 
  port ( 
    rst     : in  std_logic;
    clk     : in  std_logic;
    i       : in  armcmd_st_typ_in;
    o       : out armcmd_st_typ_out
    );
end component;
 
type armcmd_lm_typ_in is record
 
   ctrli    : acm_ctrlin;
 
   ctrlmulti : acm_ctrlmult_in;
 
end record;
 
type armcmd_lm_typ_out is record
 
   ctrlo    : acm_ctrlout;
 
   ctrlmemo : acm_ctrlmemout;
 
end record;
 
component armcmd_lm
  port ( 
    rst     : in  std_logic;
    clk     : in  std_logic;
    i       : in  armcmd_lm_typ_in;
    o       : out armcmd_lm_typ_out
    );
end component;
 
type armcmd_sm_typ_in is record
 
   ctrli    : acm_ctrlin;
 
   ctrlmulti : acm_ctrlmult_in;
 
end record;
 
type armcmd_sm_typ_out is record
 
   ctrlo    : acm_ctrlout;
 
   ctrlmemo : acm_ctrlmemout;
 
end record;
 
component armcmd_sm
  port ( 
    rst     : in  std_logic;
    clk     : in  std_logic;
    i       : in  armcmd_sm_typ_in;
    o       : out armcmd_sm_typ_out
    );
end component;
 
type armcmd_sw_typ_in is record
 
   ctrli    : acm_ctrlin;
 
   ctrlmemo : acm_ctrlmemout;
 
end record;
 
type armcmd_sw_typ_out is record
 
   ctrlo    : acm_ctrlout;
 
   ctrlmemo : acm_ctrlmemout;
 
end record;
 
component armcmd_sw
  port ( 
    rst     : in  std_logic;
    clk     : in  std_logic;
    i       : in  armcmd_sw_typ_in;
    o       : out armcmd_sw_typ_out
    );
end component;
 
-------------------------------------------------------------------------------
-- Coprocessor commands
 
type armcmd_cr_typ_in is record
 
   ctrli    : acm_ctrlin;
 
   fromCP_busy : std_logic;
 
end record;
 
type armcmd_cr_typ_out is record
 
   ctrlo    : acm_ctrlout;
 
   r1_src    : acm_regsrc;           -- (micro.r1)
   rd_src    : acm_rdsrc;            -- (pctrl.wr.wrop_rd)
 
end record;
 
component armcmd_cr
  port ( 
    rst     : in  std_logic;
    clk     : in  std_logic;
    i       : in  armcmd_cr_typ_in;
    o       : out armcmd_cr_typ_out
    );
end component;
 
type armcmd_cl_typ_in is record
 
   ctrli    : acm_ctrlin;
 
   ctrlmemo : acm_ctrlmemout;
   fromCP_busy : std_logic;
   fromCP_last : std_logic;
 
end record;
 
type armcmd_cl_typ_out is record
 
   ctrlo    : acm_ctrlout;
 
   ctrlmemo : acm_ctrlmemout;
 
end record;
 
component armcmd_cl
  port ( 
    rst     : in  std_logic;
    clk     : in  std_logic;
    i       : in  armcmd_cl_typ_in;
    o       : out armcmd_cl_typ_out
    );
end component;
 
type armcmd_cs_typ_in is record
 
   ctrli    : acm_ctrlin;
 
   ctrlmemo : acm_ctrlmemout;
   fromCP_busy : std_logic;
   fromCP_last : std_logic;
 
end record;
 
type armcmd_cs_typ_out is record
 
   ctrlo    : acm_ctrlout;
 
   ctrlmemo : acm_ctrlmemout;
 
end record;
 
component armcmd_cs
  port ( 
    rst     : in  std_logic;
    clk     : in  std_logic;
    i       : in  armcmd_cs_typ_in;
    o       : out armcmd_cs_typ_out
    );
end component;
 
end armcmd_comp;
 

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.