NVC code coverage report

File:  ../../Sources/A22_errval_mapping.vhd

     0:   ---------------------------------------------------------------------------------- 
     1:   -- Engineer:    Vitor Mendes Camilo 
     2:   -- 
     3:   -- Module Name: A22_errval_mapping - Behavioral 
     4:   -- 
     5:   -- Description:                         Code segment A.22 
     6:   --                                      Errval mapping for run interruption sample 
     7:   -- 
     8:   ---------------------------------------------------------------------------------- 
     9:    
    10:   library ieee; 
    11:     use ieee.std_logic_1164.all; 
    12:     use ieee.numeric_std.all; 
    13:     use work.openjls_pkg.all; 
    14:    
    15:   entity a22_errval_mapping is 
    16:     generic ( 
    17:       ERROR_WIDTH         : natural := CO_ERROR_VALUE_WIDTH_STD; 
    18:       MAPPED_ERRVAL_WIDTH : natural := CO_MAPPED_ERROR_VAL_WIDTH_STD 
    19:     ); 
    20:     port ( 
    21:       iErrval             : in    signed (ERROR_WIDTH - 1 downto 0); 
    22:       iRiType             : in    std_logic; 
    23:       iMap                : in    std_logic; 
    24:       oEmErrVal           : out   unsigned (MAPPED_ERRVAL_WIDTH - 1 downto 0) 
    25:     ); 
    26:   end entity a22_errval_mapping; 
    27:    
    28:   architecture behavioral of a22_errval_mapping is 
    29:    
    30:   begin 
    31:    
    32:     p_errval_map : process (iErrval, iRiType, iMap) is 
    33:    
    34:       variable vRI       : integer; 
    35:       variable vMap      : integer; 
    36:       variable vEmErrval : integer; 
    37:    
    38:     begin 
    39:    
    40:       vRI  := std_to_int(iRiType); 
    41:       vMap := std_to_int(iMap); 
    42:    
    43:       vEmErrval := 2 * abs(to_integer(iErrval)) - vRI - vMap; 
    44:    
    45:       -- Clamp to 0 to absorb delta-cycle transients during sReg4 transitions 
    46:       -- (A.21's iNn/iNq go through an extra delta via sNnExt/sNqExt, so iMap 
    47:       -- may briefly trail iErrval/iRItype before A.21's process re-evaluates). 
    48:       -- The settled value is always non-negative when inputs are coherent. 
    49:       if (vEmErrval < 0) then 
    50:         vEmErrval := 0; 
    51:       end if; 
    52:    
    53:       oEmErrVal <= to_unsigned(vEmErrval, oEmErrVal'length); 
    54:    
    55:     end process p_errval_map; 
    56:    
    57:   end architecture behavioral;