5353 variable real_vector_5_downto_3 : real_vector (5 downto 3 );
5454 variable time_vector_5_downto_3 : time_vector (5 downto 3 );
5555
56- -- Temp variables to make test case pass Riviera-PRO 2016.10
57- variable range_left, range_right : integer ;
56+ -- Helper functions to make tests pass GHDL v0.37 and Riviera-PRO 2016.10
57+ function get_decoded_range_left ( constant vec: boolean_vector ) return integer is
58+ begin return vec'left ; end ;
59+
60+ function get_decoded_range_right ( constant vec: boolean_vector ) return integer is
61+ begin return vec'right ; end ;
62+
63+ function get_decoded_range_left ( constant vec: integer_vector ) return integer is
64+ begin return vec'left ; end ;
65+
66+ function get_decoded_range_right ( constant vec: integer_vector ) return integer is
67+ begin return vec'right ; end ;
68+
69+ function get_decoded_range_left ( constant vec: real_vector ) return integer is
70+ begin return vec'left ; end ;
71+
72+ function get_decoded_range_right ( constant vec: real_vector ) return integer is
73+ begin return vec'right ; end ;
74+
75+ function get_decoded_range_left ( constant vec: time_vector ) return integer is
76+ begin return vec'left ; end ;
77+
78+ function get_decoded_range_right ( constant vec: time_vector ) return integer is
79+ begin return vec'right ; end ;
5880
5981 begin
6082 test_runner_setup(runner, runner_cfg);
@@ -63,57 +85,49 @@ begin
6385 if run(" Test that boolean_vector can be encoded and decoded" ) then
6486 boolean_vector_5_downto_3 := (true , false , true );
6587 check_relation(decode_boolean_vector(encode_boolean_vector((true , false , true ))) = boolean_vector '(true , false , true ));
66- check_relation(decode_boolean_vector(encode_boolean_vector((0 => true ))) = boolean_vector '(0 => true ));
88+ check_relation(decode_boolean_vector(encode_boolean_vector((0 => true ))) = boolean_vector '(0 => true ));
6789 check_relation(decode_boolean_vector(encode_boolean_vector(null_boolean_vector)) = null_boolean_vector);
6890 check_relation(decode_boolean_vector(encode_boolean_vector(boolean_vector_5_downto_3)) = boolean_vector '(true , false , true ));
69- range_left := decode_boolean_vector(encode_boolean_vector(boolean_vector_5_downto_3))'left ;
70- range_right := decode_boolean_vector(encode_boolean_vector(boolean_vector_5_downto_3))'right ;
71- check_relation(range_left = 5 );
72- check_relation(range_right = 3 );
91+ check_relation(get_decoded_range_left(decode_boolean_vector(encode_boolean_vector(boolean_vector_5_downto_3))) = 5 );
92+ check_relation(get_decoded_range_right(decode_boolean_vector(encode_boolean_vector(boolean_vector_5_downto_3))) = 3 );
7393 elsif run(" Test that integer_vector can be encoded and decoded" ) then
7494 integer_vector_5_downto_3 := (- 42 , 0 , 17 );
7595 check_relation(decode_integer_vector(encode_integer_vector((- 2147483648 , - 2147483648 , - 2147483648 ))) = integer_vector '(- 2147483648 , - 2147483648 , - 2147483648 ));
7696 check_relation(decode_integer_vector(encode_integer_vector((- 42 , 0 , 17 ))) = integer_vector '(- 42 , 0 , 17 ));
77- check_relation(decode_integer_vector(encode_integer_vector((0 => - 42 ))) = integer_vector '(0 => - 42 ));
97+ check_relation(decode_integer_vector(encode_integer_vector((0 => - 42 ))) = integer_vector '(0 => - 42 ));
7898 check_relation(decode_integer_vector(encode_integer_vector(null_integer_vector)) = null_integer_vector);
7999 check_relation(decode_integer_vector(encode_integer_vector(integer_vector_5_downto_3)) = integer_vector '(- 42 , 0 , 17 ));
80- range_left := decode_integer_vector(encode_integer_vector(integer_vector_5_downto_3))'left ;
81- range_right := decode_integer_vector(encode_integer_vector(integer_vector_5_downto_3))'right ;
82- check_relation(range_left = 5 );
83- check_relation(range_right = 3 );
100+ check_relation(get_decoded_range_left(decode_integer_vector(encode_integer_vector(integer_vector_5_downto_3))) = 5 );
101+ check_relation(get_decoded_range_right(decode_integer_vector(encode_integer_vector(integer_vector_5_downto_3))) = 3 );
84102 elsif run(" Test that real_vector can be encoded and decoded" ) then
85103 real_vector_5_downto_3 := (- 42.42 , 0.001 , 17.17 );
86104 check_relation(decode_real_vector(encode_real_vector((- 42.42 , 0.001 , 17.17 ))) = real_vector '(- 42.42 , 0.001 , 17.17 ));
87105 check_relation(decode_real_vector(encode_real_vector((0 => - 42.42 ))) = real_vector '(0 => - 42.42 ));
88106 check_relation(decode_real_vector(encode_real_vector(null_real_vector)) = null_real_vector);
89107 check_relation(decode_real_vector(encode_real_vector(real_vector_5_downto_3)) = real_vector '(- 42.42 , 0.001 , 17.17 ));
90- range_left := decode_real_vector(encode_real_vector(real_vector_5_downto_3))'left ;
91- range_right := decode_real_vector(encode_real_vector(real_vector_5_downto_3))'right ;
92- check_relation(range_left = 5 );
93- check_relation(range_right = 3 );
108+ check_relation(get_decoded_range_left(decode_real_vector(encode_real_vector(real_vector_5_downto_3))) = 5 );
109+ check_relation(get_decoded_range_right(decode_real_vector(encode_real_vector(real_vector_5_downto_3))) = 3 );
94110 elsif run(" Test that time_vector can be encoded and decoded" ) then
95111 time_vector_5_downto_3 := (- 42 ms , 0 sec , 17 min );
96112 check_relation(decode_time_vector(encode_time_vector((- 42 ms , 0 sec , 17 min ))) = time_vector '(- 42 ms , 0 sec , 17 min ));
97- check_relation(decode_time_vector(encode_time_vector((0 => - 42 ms ))) = time_vector '(0 => - 42 ms ));
113+ check_relation(decode_time_vector(encode_time_vector((0 => - 42 ms ))) = time_vector '(0 => - 42 ms ));
98114 check_relation(decode_time_vector(encode_time_vector(null_time_vector)) = null_time_vector);
99115 check_relation(decode_time_vector(encode_time_vector(time_vector_5_downto_3)) = time_vector '(- 42 ms , 0 sec , 17 min ));
100- range_left := decode_time_vector(encode_time_vector(time_vector_5_downto_3))'left ;
101- range_right := decode_time_vector(encode_time_vector(time_vector_5_downto_3))'right ;
102- check_relation(range_left = 5 );
103- check_relation(range_right = 3 );
116+ check_relation(get_decoded_range_left(decode_time_vector(encode_time_vector(time_vector_5_downto_3))) = 5 );
117+ check_relation(get_decoded_range_right(decode_time_vector(encode_time_vector(time_vector_5_downto_3))) = 3 );
104118 elsif run(" Test that ufixed can be encoded and decoded" ) then
105- check_relation(decode_ufixed(encode_ufixed(to_ufixed(6.5 , 3 , - 3 ))) = to_ufixed(6.5 , 3 , - 3 ));
106- check_relation(decode_ufixed(encode_ufixed(to_ufixed(8.0 , 3 , 1 ))) = to_ufixed(8.0 , 3 , 1 ));
119+ check_relation(decode_ufixed(encode_ufixed(to_ufixed( 6.5 , 3 , - 3 ))) = to_ufixed(6.5 , 3 , - 3 ));
120+ check_relation(decode_ufixed(encode_ufixed(to_ufixed( 8.0 , 3 , 1 ))) = to_ufixed(8.0 , 3 , 1 ));
107121 check_relation(decode_ufixed(encode_ufixed(to_ufixed(0.25 , - 2 , - 4 ))) = to_ufixed(0.25 , - 2 , - 4 ));
108122 elsif run(" Test that sfixed can be encoded and decoded" ) then
109- check_relation(decode_sfixed(encode_sfixed(to_sfixed(6.5 , 3 , - 3 ))) = to_sfixed(6.5 , 3 , - 3 ));
110- check_relation(decode_sfixed(encode_sfixed(to_sfixed(8.0 , 4 , 1 ))) = to_sfixed(8.0 , 4 , 1 ));
111- check_relation(decode_sfixed(encode_sfixed(to_sfixed(0.25 , - 1 , - 4 ))) = to_sfixed(0.25 , - 1 , - 4 ));
112- check_relation(decode_sfixed(encode_sfixed(to_sfixed(- 6.5 , 3 , - 3 ))) = to_sfixed(- 6.5 , 3 , - 3 ));
113- check_relation(decode_sfixed(encode_sfixed(to_sfixed(- 8.0 , 4 , 1 ))) = to_sfixed(- 8.0 , 4 , 1 ));
123+ check_relation(decode_sfixed(encode_sfixed(to_sfixed( 6.5 , 3 , - 3 ))) = to_sfixed(6.5 , 3 , - 3 ));
124+ check_relation(decode_sfixed(encode_sfixed(to_sfixed( 8.0 , 4 , 1 ))) = to_sfixed(8.0 , 4 , 1 ));
125+ check_relation(decode_sfixed(encode_sfixed(to_sfixed(0.25 , - 1 , - 4 ))) = to_sfixed(0.25 , - 1 , - 4 ));
126+ check_relation(decode_sfixed(encode_sfixed(to_sfixed(- 6.5 , 3 , - 3 ))) = to_sfixed(- 6.5 , 3 , - 3 ));
127+ check_relation(decode_sfixed(encode_sfixed(to_sfixed(- 8.0 , 4 , 1 ))) = to_sfixed(- 8.0 , 4 , 1 ));
114128 check_relation(decode_sfixed(encode_sfixed(to_sfixed(- 0.25 , - 1 , - 4 ))) = to_sfixed(- 0.25 , - 1 , - 4 ));
115129 elsif run(" Test that float can be encoded and decoded" ) then
116- check_relation(decode_float(encode_float(to_float(real 'low , 11 , 52 ))) = to_float(real 'low , 11 , 52 ));
130+ check_relation(decode_float(encode_float(to_float(real 'low , 11 , 52 ))) = to_float(real 'low , 11 , 52 ));
117131 check_relation(decode_float(encode_float(to_float(real 'high , 11 , 52 ))) = to_float(real 'high , 11 , 52 ));
118132
119133 check_relation(to_string(decode_float(encode_float(positive_zero))) = to_string(positive_zero));
0 commit comments