X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=cpu%2Fsrc%2Falu_pkg.vhd;h=033d15625a9e5ee9270e14b8cca841828fd238e9;hb=1968f329b10681b760faec9369aa893cd2af8d44;hp=13285d9eb3e461f2463018c83a39a030f6ff986d;hpb=9b61bb3513cd762f9714fb94ab434b4cbc616ea3;p=calu.git diff --git a/cpu/src/alu_pkg.vhd b/cpu/src/alu_pkg.vhd index 13285d9..033d156 100755 --- a/cpu/src/alu_pkg.vhd +++ b/cpu/src/alu_pkg.vhd @@ -1,22 +1,36 @@ +-- `Deep Thought', a softcore CPU implemented on a FPGA +-- +-- Copyright (C) 2010 Markus Hofstaetter +-- Copyright (C) 2010 Martin Perner +-- Copyright (C) 2010 Stefan Rebernig +-- Copyright (C) 2010 Manfred Schwarz +-- Copyright (C) 2010 Bernhard Urban +-- +-- This program is free software: you can redistribute it and/or 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 your option) any later version. +-- +-- This program 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 General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see . + library IEEE; use IEEE.std_logic_1164.all; use IEEE.numeric_std.all; use work.common_pkg.all; +use work.extension_pkg.all; --use work.core_extension.all; package alu_pkg is - type status_rec is record - zero : std_logic; - oflo : std_logic; - sign : std_logic; - carry : std_logic; - end record; - - subtype status_t is byte_t; --type alu_interal_rec is record -- --end record alu_internal_rec; @@ -26,14 +40,12 @@ package alu_pkg is result_addr : gp_addr_t; status : status_rec; - --stackpointer : gp_register_t; alu_jump : std_logic; brpr : std_logic; reg_op : std_logic; mem_op : std_logic; - --new_val : std_logic; mem_en : std_logic; hw_op : std_logic; @@ -42,7 +54,7 @@ package alu_pkg is end record alu_result_rec; - constant SHIFT_WIDTH : integer := 4; --log2c(gp_register_t'length); + constant SHIFT_WIDTH : integer := 5; --log2c(gp_register_t'length); constant COND_ZERO : condition_t := "0001"; constant COND_NZERO : condition_t := "0000"; @@ -84,11 +96,24 @@ package alu_pkg is op_group : in op_info_t; left_operand : in gp_register_t; right_operand : in gp_register_t; + + displacement : in gp_register_t; + prog_cnt : in instr_addr_t; + brpr : in std_logic; + op_detail : in op_opt_t; + alu_state : in alu_result_rec; + pval : in gp_register_t; + pval_nxt : in gp_register_t; + alu_result : out alu_result_rec; - addr : out gp_register_t; - data : out gp_register_t + addr : out word_t; --memaddr + data : out gp_register_t; --mem data --ureg + + pinc : out std_logic; + pwr_en : out std_logic; + paddr : out paddr_t ); end component alu;