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

Subversion Repositories iicmb

[/] [iicmb/] [trunk/] [src/] [mbyte.vhd] - Diff between revs 2 and 8

Show entire file | Details | Blame | View Log

Rev 2 Rev 8
Line 127... Line 127...
  signal   state           : state_type                         := s_idle;
  signal   state           : state_type                         := s_idle;
  signal   cnt             : integer range 0 to 8               := 0;
  signal   cnt             : integer range 0 to 8               := 0;
  signal   sbuf            : std_logic_vector(7 downto 0)       := (others => '0');
  signal   sbuf            : std_logic_vector(7 downto 0)       := (others => '0');
  signal   ack             : std_logic                          := '0';
  signal   ack             : std_logic                          := '0';
  signal   cycle_cnt       : integer range 0 to c_cycle_cnt_max := 0;
  signal   cycle_cnt       : integer range 0 to c_cycle_cnt_max := 0;
  signal   us_cnt          : unsigned( 7 downto 0)              := to_unsigned(0, 8);
  signal   ms_cnt          : unsigned( 7 downto 0)              := to_unsigned(0, 8);
 
 
begin
begin
 
 
  mrsp_data <= sbuf;
  mrsp_data <= sbuf;
  fsm_state <= to_std_logic_vector(state);
  fsm_state <= to_std_logic_vector(state);
Line 188... Line 188...
        mrsp_wr   <= '0';
        mrsp_wr   <= '0';
        mrsp_id   <= mrsp_done;
        mrsp_id   <= mrsp_done;
        bus_id    <= 0;
        bus_id    <= 0;
        captured  <= '0';
        captured  <= '0';
        cycle_cnt <= 0;
        cycle_cnt <= 0;
        us_cnt    <= to_unsigned(0, 8);
        ms_cnt    <= to_unsigned(0, 8);
      else
      else
        -- Default:
        -- Default:
        mbc_wr    <= '0';
        mbc_wr    <= '0';
        mrsp_wr   <= '0';
        mrsp_wr   <= '0';
        ------
        ------
Line 217... Line 217...
                  end if;
                  end if;
                when mcmd_wait =>
                when mcmd_wait =>
                  -- Wait for specified period:
                  -- Wait for specified period:
                  state     <= s_wait;
                  state     <= s_wait;
                  cycle_cnt <= 0;
                  cycle_cnt <= 0;
                  us_cnt    <= unsigned(mcmd_data);
                  ms_cnt    <= unsigned(mcmd_data);
                when others =>
                when others =>
                  -- Other commands are rejected in 'Idle' state
                  -- Other commands are rejected in 'Idle' state
                  state     <= s_idle;
                  state     <= s_idle;
                  byte_response(mrsp_error);
                  byte_response(mrsp_error);
              end case;
              end case;
Line 231... Line 231...
          -- 'Idle' state ----------------------------------
          -- 'Idle' state ----------------------------------
 
 
          -- 'Wait' state ----------------------------------
          -- 'Wait' state ----------------------------------
          when s_wait =>
          when s_wait =>
            captured  <= '0';
            captured  <= '0';
            if (us_cnt = 0) then
            if (ms_cnt = 0) then
              state     <= s_idle;
              state     <= s_idle;
              byte_response(mrsp_done);
              byte_response(mrsp_done);
            else
            else
              if (cycle_cnt < c_cycle_cnt_thr) then
              if (cycle_cnt < c_cycle_cnt_thr) then
                cycle_cnt <= cycle_cnt + c_cycle_cnt_inc;
                cycle_cnt <= cycle_cnt + c_cycle_cnt_inc;
              else
              else
                cycle_cnt <= cycle_cnt - c_cycle_cnt_thr;
                cycle_cnt <= cycle_cnt - c_cycle_cnt_thr;
                us_cnt    <= us_cnt - 1;
                ms_cnt    <= ms_cnt - 1;
              end if;
              end if;
            end if;
            end if;
          -- 'Wait' state ----------------------------------
          -- 'Wait' state ----------------------------------
 
 
          -- 'Bus is Taken' state --------------------------
          -- 'Bus is Taken' state --------------------------

powered by: WebSVN 2.1.0

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