Predefined Types

SCL automatically provides several predefined types .

type bit is ('0','1');

type bit_vector is array (integer range <>) of bit;

type boolean is (false,true);

type byte is range 0 to 16#FF#;

type character is
   (
   nul , soh , stx , etx , eot , enq , ack , bel ,
    bs ,  ht ,  lf ,  vt ,  ff ,  cr ,  so ,  si ,
   dle , dc1 , dc2 , dc3 , dc4 , nak , syn , etb ,
   can ,  em , sub , esc , fsp , gsp , rsp , usp ,
   ' ' , '!' ,'\"' , '#' , '$' , '%' , '&' , ''' ,
   '(' , ')' , '*' , '+' , ',' , '-' , '.' , '/' ,
   '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' ,
   '8' , '9' , ':' , ';' , '<' , '=' , '>' , '?' ,
   '@' , 'A' , 'B' , 'C' , 'D' , 'E' , 'F' , 'G' ,
   'H' , 'I' , 'J' , 'K' , 'L' , 'M' , 'N' , 'O' ,
   'P' , 'Q' , 'R' , 'S' , 'T' , 'U' , 'V' , 'W' ,
   'X' , 'Y' , 'Z' , '[' ,'\\' , ']' , '^' , '_' ,
   '`' , 'a' , 'b' , 'c' , 'd' , 'e' , 'f' , 'g' ,
   'h' , 'i' , 'j' , 'k' , 'l' , 'm' , 'n' , 'o' ,
   'p' , 'q' , 'r' , 's' , 't' , 'u' , 'v' , 'w' ,
   'x' , 'y' , 'z' , '{' , '|' , '}' , '~' , del ,
   c128, c129, c130, c131, c132, c133, c134, c135,
   c136, c137, c138, c139, c140, c141, c142, c143,
   c144, c145, c146, c147, c148, c149, c150, c151,
   c152, c153, c154, c155, c156, c157, c158, c159,
   '' , '' , '' , '' , '' , '' , '' , '' ,
   '' , '' , '' , '' , '' , '' , '' , '' ,
   '' , '' , '' , '' , '' , '' , '' , '' ,
   '' , '' , '' , '' , '' , '' , '' , '' ,
   '' , '' , '' , '' , '' , '' , '' , '' ,
   '' , '' , '' , '' , '' , '' , '' , '' ,
   '' , '' , '' , '' , '' , '' , '' , '' ,
   '' , '' , '' , '' , '' , '' , '' , '' ,
   '' , '' , '' , '' , '' , '' , '' , '' ,
   '' , '' , '' , '' , '' , '' , '' , '' ,
   '' , '' , '' , '' , '' , '' , '' , '' ,
   '' , '' , '' , '' , '' , '' , '' , ''  
   );

type cycle is range -9223372036854775807 to 9223372036854775807
   units ic;
   end units;

type daddress is range 0 to 16#FF_FFFF#;

type file_open_kind is (read_mode,write_mode,append_mode);

type file_open_status is (open_ok,status_error,name_error,mode_error);

type frequency is range 0 to 1e9
   units hz;
      khz = 1000 hz;
      mhz = 1000 khz;
   end units;

type integer is range -10#2_147_483_647# to 10#2_147_483_647#;

type line is access string;

type paddress is range 0 to 16#FF_FFFF#;

type severity_level is (note,warning,error,failure);

type string is array (integer range <>) of character;

type text is file of string;

type time is range -9223372036854775807 to 9223372036854775807
   units ps;
      ns = 1000 ps;
      us = 1000 ns;
      ms = 1000 us;
      sec = 1000 ms;
      min = 60 sec;
      hr = 60 min;
   end units;

type vector_file_mode is (binary_mode,hex_mode,formatted_mode,dec_mode);

type voltage is range -9223372036854775807 to 9223372036854775807
   units mV;
      V = 1000 mV;
   end units;

type word is range 0 to 16#FFFF#;