mirror of
				https://github.com/Klagarge/Cursor.git
				synced 2025-10-31 14:09:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			128 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			VHDL
		
	
	
	
	
	
			
		
		
	
	
			128 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			VHDL
		
	
	
	
	
	
| LIBRARY std;
 | |
|   USE std.textio.all;
 | |
| LIBRARY ieee;
 | |
|   USE ieee.std_logic_1164.all;
 | |
|   USE ieee.numeric_std.all;
 | |
| 
 | |
| PACKAGE testUtils IS
 | |
| 
 | |
|   --============================================================================
 | |
|   -- console output
 | |
|   --
 | |
| 
 | |
|   procedure print(value : string);
 | |
| 
 | |
| 
 | |
|   --============================================================================
 | |
|   -- string manipulation
 | |
|   --
 | |
| 
 | |
|                                                       -- conversion to lowercase
 | |
|   function lc(value : string) return string;
 | |
|   procedure lc(value : inout line);
 | |
|                                                       -- conversion to uppercase
 | |
|   function uc(value : string) return string;
 | |
|   procedure uc(value : inout line);
 | |
|                                             -- expand a string to a given length
 | |
|   function pad(
 | |
|     value           : string;
 | |
|     string_length   : natural;
 | |
|     fill_char       : character := ' ';
 | |
|     right_justify   : boolean := false
 | |
|   ) return string;
 | |
|                      -- remove separator characters at beginning and end of line
 | |
|   procedure rm_side_separators(
 | |
|     value : inout line;
 | |
|     separators : in string
 | |
|   );
 | |
|   procedure rm_side_separators(
 | |
|     value : inout line
 | |
|   );
 | |
|                            -- remove multiple occurences of separator characters
 | |
|   procedure trim_line(
 | |
|     value : inout line;
 | |
|     separators : in string
 | |
|   );
 | |
| 
 | |
|   procedure trim_line(
 | |
|     value : inout line
 | |
|    );
 | |
|                                 -- remove all occurences of separator characters
 | |
|   procedure rm_all_separators(
 | |
|     value : inout line;
 | |
|     separators : in string
 | |
|   );
 | |
| 
 | |
|   procedure rm_all_separators(
 | |
|     value : inout line
 | |
|   );
 | |
|                                                    -- find and remove first word
 | |
|   procedure read_first(
 | |
|     value : inout line;
 | |
|     separators : in string;
 | |
|     first : out line
 | |
|   );
 | |
| 
 | |
|   procedure read_first(
 | |
|     value : inout line;
 | |
|     first : out line
 | |
|    );
 | |
|                                                     -- find and remove last word
 | |
|   procedure read_last(
 | |
|     value : inout line;
 | |
|     separators : in string;
 | |
|     last : out line
 | |
|   );
 | |
| 
 | |
|   procedure read_last(
 | |
|     value : inout line;
 | |
|     last : out line
 | |
|    );
 | |
| 
 | |
| 
 | |
|   --============================================================================
 | |
|   -- formatted string output
 | |
|   --
 | |
|   -- format codes:
 | |
|   --  code  integer real std_logic std_(u)logic_vector (un)signed time
 | |
|   --    b       v            v               v              v           binary
 | |
|   --    c                                                               character
 | |
|   --    d       v     v      v               v              v           decimal
 | |
|   --    e                                                               real numbers, with power of 10 exponent
 | |
|   --    f       v     v                                                 fixed point real numbers
 | |
|   --    s                                                               string
 | |
|   --    ts                                                          v   time in seconds
 | |
|   --    tm                                                          v   time in milliseconds
 | |
|   --    tu                                                          v   time in microseconds
 | |
|   --    tn                                                          v   time in nanoseconds
 | |
|   --    tp                                                          v   time in picoseconds
 | |
|   --    x       v            v               v              v           hexadecimal
 | |
|   --    X       v            v               v              v           hexadecimal with upper-case letters
 | |
| 
 | |
|   function sprintf(format : string; value : integer          ) return string;
 | |
|   function sprintf(format : string; value : real             ) return string;
 | |
|   function sprintf(format : string; value : std_logic        ) return string;
 | |
|   function sprintf(format : string; value : std_ulogic_vector) return string;
 | |
|   function sprintf(format : string; value : std_logic_vector ) return string;
 | |
|   function sprintf(format : string; value : unsigned         ) return string;
 | |
|   function sprintf(format : string; value : signed           ) return string;
 | |
|   function sprintf(format : string; value : time             ) return string;
 | |
| 
 | |
|   --============================================================================
 | |
|   -- formatted string input
 | |
|   --
 | |
|   subtype nibbleUlogicType is std_ulogic_vector(3 downto 0);
 | |
|   subtype nibbleUnsignedType is unsigned(3 downto 0);
 | |
| 
 | |
|   function sscanf(value : character) return natural;
 | |
|   function sscanf(value : character) return nibbleUlogicType;
 | |
|   function sscanf(value : character) return nibbleUnsignedType;
 | |
|   function sscanf(value : string   ) return natural;
 | |
|   function sscanf(value : string   ) return unsigned;
 | |
|   function sscanf(value : string   ) return std_ulogic_vector;
 | |
|   function sscanf(value : string   ) return time;
 | |
| 
 | |
|   procedure sscanf(value : inout line; time_val : out time);
 | |
| 
 | |
| END testUtils;
 |