| 
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -5,13 +5,16 @@ library work;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				use work.common.all;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				package crhelpers is
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    function fxm_to_num(fxm: std_ulogic_vector(7 downto 0)) return integer;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    function num_to_fxm(num: integer) return std_ulogic_vector;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    subtype crnum_t is integer range 0 to 7;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    subtype crmask_t is std_ulogic_vector(7 downto 0);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    function fxm_to_num(fxm: crmask_t) return crnum_t;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    function num_to_fxm(num: crnum_t) return crmask_t;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				end package crhelpers;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				package body crhelpers is
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    function fxm_to_num(fxm: std_ulogic_vector(7 downto 0)) return integer is
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    function fxm_to_num(fxm: crmask_t) return crnum_t is
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    begin
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        -- If multiple fields are set (undefined), match existing
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        -- hardware by returning the first one.
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -27,7 +30,7 @@ package body crhelpers is
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        return 7;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    end;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    function num_to_fxm(num: integer) return std_ulogic_vector is
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    function num_to_fxm(num: crnum_t) return crmask_t is
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    begin
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        case num is
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            when 0 =>
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
			
			 | 
			 | 
			
				
 
 |