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
  • Find Resources
  • 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: Wed Jan 23 10:09:47 CET 2008
    Subject: [cvs-checkins] MODIFIED: tg68 ...
    Top
    Date: 00/08/01 23:10:09

    Modified: tg68/VHDL TG68.vhd
    Log:
    bugfix Timing


    Revision Changes Path
    1.3 tg68/VHDL/TG68.vhd

    http://www.opencores.org/cvsweb.shtml/tg68/VHDL/TG68.vhd.diff?r1=1.2&r2=1.3

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

    Index: TG68.vhd
    ===================================================================
    RCS file: /cvsroot/tobiflex/tg68/VHDL/TG68.vhd,v
    retrieving revision 1.2
    retrieving revision 1.3
    diff -u -b -r1.2 -r1.3
    --- TG68.vhd 28 Nov 2007 13:44:57 -0000 1.2
    +++ TG68.vhd 23 Jan 2008 09:09:46 -0000 1.3
    @@ -3,7 +3,7 @@
    -- --
    -- This is the TOP-Level for TG68_fast to generate 68K Bus signals --
    -- --
    --- Copyright (c) 2007 Tobias Gubener <tobiflex@o...> --
    +-- Copyright (c) 2007-2008 Tobias Gubener <tobiflex@o...> --
    -- --
    -- This source file is free software: you can redistribute it and/or modify --
    -- it under the terms of the GNU Lesser General Public License as published --
    @@ -21,6 +21,9 @@
    ------------------------------------------------------------------------------
    ------------------------------------------------------------------------------
    --
    +-- Revision 1.02 2008/01/23
    +-- bugfix Timing
    +--
    -- Revision 1.01 2007/11/28
    -- add MOVEP
    -- Bugfix Interrupt in MOVEQ
    @@ -55,7 +58,8 @@
    as : out std_logic;
    uds : out std_logic;
    lds : out std_logic;
    - rw : out std_logic
    + rw : out std_logic;
    + drive_data : out std_logic --enable for data_out driver
    );
    end TG68;

    @@ -96,17 +100,21 @@
    SIGNAL lds_in : std_logic;
    SIGNAL state : std_logic_vector(1 downto 0);
    SIGNAL clkena : std_logic;
    + SIGNAL n_clk : std_logic;
    + SIGNAL cpuIPL : std_logic_vector(2 downto 0);


    BEGIN

    + n_clk <= NOT clk;
    +
    TG68_fast_inst: TG68_fast
    PORT MAP (
    - clk => not clk, -- : in std_logic;
    + clk => n_clk, -- : in std_logic;
    reset => reset, -- : in std_logic;
    clkena_in => clkena, -- : in std_logic;
    data_in => data_in, -- : in std_logic_vector(15 downto 0);
    - IPL => IPL, -- : in std_logic_vector(2 downto 0);
    + IPL => cpuIPL, -- : in std_logic_vector(2 downto 0);
    test_IPL => '0', -- : in std_logic;
    address => addr, -- : out std_logic_vector(31 downto 0);
    data_write => data_out, -- : out std_logic_vector(15 downto 0);
    @@ -117,20 +125,13 @@
    LDS => lds_in -- : out std_logic;
    );

    --- clkena <= '1' WHEN clkena_in='1' AND ((clkena_e OR decode)='1')
    --- ELSE '0';
    -
    -
    PROCESS (clk)
    BEGIN
    - IF rising_edge(clk) THEN
    --- IF clkena_in='1' AND ((clkena_e OR decode)='1') THEN
    IF clkena_in='1' AND (clkena_e='1' OR state="01") THEN
    clkena <= '1';
    ELSE
    clkena <= '0';
    END IF;
    - END IF;
    END PROCESS;

    PROCESS (clk, reset, state, as_s, as_e, rw_s, rw_e, uds_s, uds_e, lds_s, lds_e)
    @@ -179,6 +180,7 @@
    END IF;
    WHEN "11" =>
    S_state <= "00";
    + WHEN OTHERS => null;
    END CASE;
    END IF; END IF; @@ -189,6 +191,8 @@ uds_e <= '1'; lds_e <= '1'; clkena_e <= '0'; + cpuIPL <= "111"; + drive_data <= '0'; ELSIF falling_edge(clk) THEN IF clkena_in='1' THEN as_e <= '1'; @@ -196,12 +200,15 @@ uds_e <= '1'; lds_e <= '1'; clkena_e <= '0'; + drive_data <= '0'; CASE S_state IS - WHEN "00" => - WHEN "01" => + WHEN "00" => null; + WHEN "01" => drive_data <= NOT wr; WHEN "10" => as_e <= '0'; uds_e <= uds_in; lds_e <= lds_in; + cpuIPL <= IPL; + drive_data <= NOT wr; IF state="01" THEN clkena_e <= '1'; waitm <= '0'; @@ -209,7 +216,7 @@ clkena_e <= NOT dtack; waitm <= dtack; END IF; - WHEN "11" => + WHEN OTHERS => null; END CASE; END IF; END IF;

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