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

Subversion Repositories atlas_core

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /atlas_core
    from Rev 13 to Rev 14
    Reverse comparison

Rev 13 → Rev 14

/trunk/core/rtl/ATLAS_pkg.vhd
1,10 → 1,10
-- ########################################################
-- # << ATLAS Project - System Package >> #
-- # << ATLAS Project - Prject Package >> #
-- # **************************************************** #
-- # All architecture configurations, options, signal #
-- # definitions and components are listed here. #
-- # **************************************************** #
-- # Last modified: 17.04.2013 #
-- # Last modified: 27.04.2013 #
-- # **************************************************** #
-- # by Stephan Nolting 4788, Hanover, Germany #
-- ########################################################
45,6 → 45,14
constant branch_slots_en_c : boolean := false; -- use branch delay slots (highly experimental!!!)
 
 
-- Interrupt/Exception Vectors ------------------------------------------------------------
-- -------------------------------------------------------------------------------------------
constant res_int_vec_c : std_logic_vector(15 downto 0) := x"0000"; -- use boot address instead!
constant irq0_int_vec_c : std_logic_vector(15 downto 0) := x"0001"; -- external int line 0 IRQ
constant irq1_int_vec_c : std_logic_vector(15 downto 0) := x"0002"; -- external int line 1 IRQ
constant swi_int_vec_c : std_logic_vector(15 downto 0) := x"0003"; -- software IRQ
 
 
-- Wishbone Bus Constants -----------------------------------------------------------------
-- -------------------------------------------------------------------------------------------
constant wb_classic_cyc_c : std_logic_vector(2 downto 0) := "000"; -- classic cycle
65,7 → 73,7
constant msr_sys_o_flag_c : natural := 7; -- system mode overflow flag
constant msr_sys_n_flag_c : natural := 8; -- system mode negative flag
constant msr_sys_t_flag_c : natural := 9; -- system mode transfer flag
constant msr_usr_cp_ptc_c : natural := 10; -- user coprocessor protected
constant msr_usr_cp_ptc_c : natural := 10; -- user coprocessor protection
constant msr_xint_en_c : natural := 11; -- enable external interrupts (global)
constant msr_xint0_en_c : natural := 12; -- enable external interrupt 0
constant msr_xint1_en_c : natural := 13; -- enable external interrupt 1
94,16 → 102,7
constant flag_t_c : natural := 4; -- user mode transfer flag
constant flag_bus_width_c : natural := 5; -- size of flag bus
 
 
-- Tochter aus Elysium,
-- Wir betreten feuertrunken,
-- Himmlische, dein Heiligthum!
-- Deine Zauber binden wieder
-- Was die Mode streng geteilt;
 
 
 
 
-- Main Control Bus -----------------------------------------------------------------------
-- -------------------------------------------------------------------------------------------
-- Global Control --
184,14 → 183,15
constant ctrl_use_offs_c : natural := 54; -- use loaded offset
 
-- -- EX Forwarding --
-- constant ctrl_a_ex_ma_fw_c : natural := 55;
-- constant ctrl_a_ex_wb_fw_c : natural := 56;
-- constant ctrl_b_ex_ma_fw_c : natural := 57;
-- constant ctrl_b_ex_wb_fw_c : natural := 58;
-- constant ctrl_c_ex_wb_fw_c : natural := 59;
-- constant ctrl_a_ex_ma_fw_c : natural := 55; -- obsolete
-- constant ctrl_a_ex_wb_fw_c : natural := 56; -- obsolete
-- constant ctrl_b_ex_ma_fw_c : natural := 57; -- obsolete
-- constant ctrl_b_ex_wb_fw_c : natural := 58; -- obsolete
-- constant ctrl_c_ex_wb_fw_c : natural := 59; -- obsolete
 
-- Bus Size --
constant ctrl_width_c : natural := 55; -- control bus size
-- constant ctrl_width_c : natural := 60; -- obsolete
 
-- Progress Redefinitions --
constant ctrl_wb_en_c : natural := ctrl_rd_wb_c; -- valid write back
300,7 → 300,10
-- M: Mean Creek
-- S: Mumford & Sons - Lover of the Light
-- M: 127 Hours
-- M: Hart of Dixie
-- M: Nick und Norah - Soundtack einer Nacht
 
 
-- Functions ------------------------------------------------------------------------------
-- -------------------------------------------------------------------------------------------
function log2(temp : natural) return natural; -- logarithm base 2
648,7 → 651,6
end component;
 
 
 
end atlas_core_package;
 
package body atlas_core_package is
667,5 → 669,4
end function log2;
 
 
 
end atlas_core_package;
/trunk/core/rtl/SYS_REG.vhd
6,7 → 6,7
-- # processing circuits are implemented within this #
-- # unit. #
-- # **************************************************** #
-- # Last modified: 17.04.2013 #
-- # Last modified: 27.04.2013 #
-- # **************************************************** #
-- # by Stephan Nolting 4788, Hanover, Germany #
-- ########################################################
80,8 → 80,8
 
-- Interrupt System --
signal INT_REQ : std_logic;
signal INT_VECTOR : std_logic_vector(1 downto 0);
signal XINT_SYNC : std_logic_vector(1 downto 0);
signal INT_VECTOR : std_logic_vector(15 downto 0);
signal XINT_SYNC : std_logic_vector(01 downto 0);
signal XINT_0_TAKEN : std_logic;
signal XINT_1_TAKEN : std_logic;
 
118,17 → 118,17
-- exception priority list and encoding --
if ((xint0_valid_v = '1') and (XINT_SYNC(0) = '1')) then -- external interrupt 0
INT_REQ <= '1';
INT_VECTOR <= "01"; -- ext int 0 vector
INT_VECTOR <= irq0_int_vec_c;
elsif ((xint1_valid_v = '1') and (XINT_SYNC(1) = '1')) then -- external interrupt 1
INT_REQ <= '1';
INT_VECTOR <= "10"; -- ext int 1 vector
INT_VECTOR <= irq1_int_vec_c;
elsif ((EXC_POS_I = '1') and (EX_CTRL_BUS_I(ctrl_syscall_c) = '1')) then
-- software interrupt: system call // msr/coprocessor access violation // undefined instruction
INT_REQ <= '1';
INT_VECTOR <= "11"; -- sw int vector
INT_VECTOR <= swi_int_vec_c;
else -- no exception
INT_REQ <= '0';
INT_VECTOR <= "00"; -- irrelevant [hw reset vector]
INT_VECTOR <= res_int_vec_c; -- irrelevant, use boot address config instaed!
end if;
end process EXC_SYS;
 
231,8 → 231,7
 
-- Exception PC Update --------------------------------------------------
if (INT_REQ = '1') then
SYS_REG_PC <= (others => '0');
SYS_REG_PC(2 downto 1) <= INT_VECTOR;
SYS_REG_PC <= INT_VECTOR;
 
-- Manual/Branch PC Update ----------------------------------------------
elsif (VALID_BRANCH = '1') or ((EX_CTRL_BUS_I(ctrl_en_c) = '1') and (EX_CTRL_BUS_I(ctrl_ctx_down_c) = '1')) then -- valid automatic/manual update/goto user mode
/trunk/core/doc/Atlas Processor Datasheet.pdf Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream

powered by: WebSVN 2.1.0

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