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

Subversion Repositories rise

[/] [rise/] [trunk/] [vhdl/] [wb_stage.vhd] - Diff between revs 91 and 95

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 91 Rev 95
Line 47... Line 47...
begin  -- wb_stage_rtl
begin  -- wb_stage_rtl
 
 
  clear_out <= '0';  -- clear_out output is unused at the moment.
  clear_out <= '0';  -- clear_out output is unused at the moment.
 
 
  process (reset, mem_wb_register)
  process (reset, mem_wb_register)
    variable sr_test_value : REGISTER_T;
 
  begin
  begin
    if reset = '0' then
    if reset = '0' then
      clear_reg_lock0 <= '0';
      clear_reg_lock0 <= '0';
      lock_reg_addr0  <= (others => 'X');
      lock_reg_addr0  <= (others => 'X');
      clear_reg_lock1 <= '0';
      clear_reg_lock1 <= '0';
Line 101... Line 100...
      -- write back of SR --
      -- write back of SR --
      if mem_wb_register.aluop2(ALUOP2_SR_BIT) = '1' then
      if mem_wb_register.aluop2(ALUOP2_SR_BIT) = '1' then
        -- calculate SR value
        -- calculate SR value
        sr              <= mem_wb_register.sr;
        sr              <= mem_wb_register.sr;
        if mem_wb_register.aluop1(ALUOP1_LD_MEM_BIT) = '1' then
        if mem_wb_register.aluop1(ALUOP1_LD_MEM_BIT) = '1' then
          sr_test_value := mem_wb_register.mem_reg;
           if mem_wb_register.mem_reg = CONV_STD_LOGIC_VECTOR(0, REGISTER_WIDTH) then
        else
 
          sr_test_value := mem_wb_register.reg;
 
        end if;
 
        if sr_test_value = CONV_STD_LOGIC_VECTOR(0, REGISTER_WIDTH) then
 
          sr( SR_REGISTER_ZERO ) <= '1';
          sr( SR_REGISTER_ZERO ) <= '1';
        end if;
        end if;
        if sr_test_value( REGISTER_WIDTH - 1 ) = '1' then
           if mem_wb_register.mem_reg( REGISTER_WIDTH - 1 ) = '1' then
          sr( SR_REGISTER_NEGATIVE ) <= '1';
          sr( SR_REGISTER_NEGATIVE ) <= '1';
        end if;
        end if;
 
        end if;
        sr_enable       <= '1';
        sr_enable       <= '1';
        clear_reg_lock1 <= '1';
        clear_reg_lock1 <= '1';
        lock_reg_addr1  <= SR_REGISTER_ADDR;
        lock_reg_addr1  <= SR_REGISTER_ADDR;
      else
      else
        sr              <= ( others => 'X' );
        sr              <= ( others => 'X' );

powered by: WebSVN 2.1.0

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