LOGIN   :::   RECOVER PASS   :::   GET ACCOUNT    
Browse
  • Projects
  • Code (CVS)
  • Forums
  • News
  • Articles
  • Polls
  •  
    OpenCores
  • FAQ
  • CVS HowTo
  • Mission
  • Media
  • Tools
  • Advertise
  • Mirrors
  • Logos
  • Contact us
  • Job Opportunity
  •  
    Tools
  • Search
      
  • Download Cores (CVSGet)
  •  
    More
  • Wishbone
  • Perlilog
  • EDA tools
  • OpenTech CD
  •  
    Navigation: All forums > Cvs-checkins > Message List > Message Post

    Message

    Reply | Reply all
    Date Prev | Date Next | Thread Prev | Thread Next Date Index | Thread Index

    From: cvs at opencores.org<cvs@o...>
    Date: Sat Apr 14 20:38:10 CEST 2007
    Subject: [cvs-checkins] MODIFIED: jop ...
    Top
    Date: 00/07/04 14:20:38

    Modified: jop/vhdl/core extension.vhd jop_types.vhd jopcpu.vhd
    Log:
    Hardware implementation of iaload and iastore


    Revision Changes Path
    1.11 jop/vhdl/core/extension.vhd

    http://www.opencores.org/cvsweb.shtml/jop/vhdl/core/extension.vhd.diff?r1=1.10&r2=1.11

    (In the diff below, changes in quantity of whitespace are not shown.)

    Index: extension.vhd
    ===================================================================
    RCS file: /cvsroot/martin/jop/vhdl/core/extension.vhd,v
    retrieving revision 1.10
    retrieving revision 1.11
    diff -u -b -r1.10 -r1.11
    --- extension.vhd 13 Apr 2007 17:17:21 -0000 1.10
    +++ extension.vhd 14 Apr 2007 18:38:09 -0000 1.11
    @@ -94,7 +94,7 @@
    signal wraddr_msb : std_logic;
    signal was_a_mem_rd : std_logic;

    - signal was_a_aload : std_logic; -- select memory for array load
    + signal was_a_iaload : std_logic; -- select memory for array load

    signal wr_dly : std_logic; -- generate a bsy with delayed wr

    @@ -148,7 +148,7 @@
    elsif rising_edge(clk) then

    if (ext_addr=LDMRD) then
    - if was_a_mem_rd='1' or was_a_aload='1' then
    + if was_a_mem_rd='1' or was_a_iaload='1' then
    exr <= mem_out.dout;
    else
    exr <= sc_io_in.rd_data;
    @@ -174,9 +174,11 @@
    mem_scio_wr <= '0';
    wraddr_wr <= '0';
    mem_in.bc_rd <= '0';
    + mem_in.iaload <= '0';
    + mem_in.iastore <= '0';
    mul_wr <= '0';
    wr_dly <= '0';
    - was_a_aload <= '0';
    + was_a_iaload <= '0';


    elsif rising_edge(clk) then
    @@ -184,6 +186,8 @@
    mem_scio_wr <= '0';
    wraddr_wr <= '0';
    mem_in.bc_rd <= '0';
    + mem_in.iaload <= '0';
    + mem_in.iastore <= '0';
    mul_wr <= '0';

    wr_dly <= wr;
    @@ -193,7 +197,7 @@
    -- the data to be written (e.g. read address for the memory interface)
    --
    if wr='1' then
    - was_a_aload <= '0';
    + was_a_iaload <= '0';

    if ext_addr=STMRA then
    mem_scio_rd <= '1'; -- start memory or io read
    @@ -202,7 +206,10 @@
    elsif ext_addr=STMWD then
    mem_scio_wr <= '1'; -- start memory or io write
    elsif ext_addr=STALD then
    - was_a_aload <= '0';
    + mem_in.iaload <= '1'; -- start an array load
    + was_a_iaload <= '0';
    + elsif ext_addr=STAST then
    + mem_in.iastore <= '1'; -- start an array store
    elsif ext_addr=STMUL then
    mul_wr <= '1'; -- start multiplier
    -- elsif ext_addr=STBCR then



    1.4 jop/vhdl/core/jop_types.vhd

    http://www.opencores.org/cvsweb.shtml/jop/vhdl/core/jop_types.vhd.diff?r1=1.3&r2=1.4

    (In the diff below, changes in quantity of whitespace are not shown.)

    Index: jop_types.vhd
    ===================================================================
    RCS file: /cvsroot/martin/jop/vhdl/core/jop_types.vhd,v
    retrieving revision 1.3
    retrieving revision 1.4
    diff -u -b -r1.3 -r1.4
    --- jop_types.vhd 13 Apr 2007 17:17:21 -0000 1.3
    +++ jop_types.vhd 14 Apr 2007 18:38:09 -0000 1.4
    @@ -39,6 +39,8 @@
    wr : std_logic;
    addr_wr : std_logic; bc_rd : std_logic; + iaload : std_logic; + iastore : std_logic; end record; type mem_out_type is record @@ -48,9 +50,15 @@ end record; type exception_type is record - spov : std_logic; + spov : std_logic; -- stack overflow + np : std_logic; -- null pointer + ab : std_logic; -- array out of bounds end record; + constant EXC_SPOV : std_logic_vector(2 downto 0) := "001"; + constant EXC_NP : std_logic_vector(2 downto 0) := "010"; + constant EXC_AB : std_logic_vector(2 downto 0) := "011"; + type irq_in_type is record irq : std_logic; -- interrupt request (positiv edge sensitive) irq_ena : std_logic; -- interrupt enable (pendig int is fired on ena) 1.3 jop/vhdl/core/jopcpu.vhd http://www.opencores.org/cvsweb.shtml/jop/vhdl/core/jopcpu.vhd.diff?r1=1.2&r2=1.3 (In the diff below, changes in quantity of whitespace are not shown.) Index: jopcpu.vhd =================================================================== RCS file: /cvsroot/martin/jop/vhdl/core/jopcpu.vhd,v retrieving revision 1.2 retrieving revision 1.3 diff -u -b -r1.2 -r1.3 --- jopcpu.vhd 13 Apr 2007 17:17:21 -0000 1.2 +++ jopcpu.vhd 14 Apr 2007 18:38:09 -0000 1.3 @@ -124,7 +124,11 @@ port map ( clk => clk, reset => reset, - din => stack_tos, + ain => stack_tos, + bin => stack_nos, + + np_exc => exc_req.np, + ab_exc => exc_req.ab, mem_in => mem_in, mem_out => mem_out,

     
    Copyright (c) 1999 OPENCORES.ORG. All rights reserved.