1


2

 Copyright (C) 1996 Morgan Kaufmann Publishers, Inc

3


4

 This file is part of VESTs (Vhdl tESTs).

5


6

 VESTs is free software; you can redistribute it and/or modify it

7

 under the terms of the GNU General Public License as published by the

8

 Free Software Foundation; either version 2 of the License, or (at

9

 your option) any later version.

10


11

 VESTs is distributed in the hope that it will be useful, but WITHOUT

12

 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or

13

 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License

14

 for more details.

15


16

 You should have received a copy of the GNU General Public License

17

 along with VESTs; if not, write to the Free Software Foundation,

18

 Inc., 59 Temple Place, Suite 330, Boston, MA 021111307 USA

19


20

 

21



22

 $Id: ch_05_pk_test.vhd,v 1.2 20011024 23:30:59 paw Exp $

23

 $Revision: 1.2 $

24



25

 

26


27

package stimulus_generators is

28


29

procedure all_possible_values ( signal bv : out bit_vector;

30

delay_between_values : in delay_length );

31


32

end package stimulus_generators;

33


34

package body stimulus_generators is

35


36

type digit_table is array ( natural range 0 to 1 ) of bit;

37

constant digit : digit_table := ( '0', '1' );

38


39

function natural_to_bv ( nat : in natural;

40

length : in natural ) return bit_vector is

41


42

variable temp : natural := nat;

43

variable result : bit_vector(0 to length  1);

44


45

begin

46

for index in result'reverse_range loop

47

result(index) := digit( temp rem 2 );

48

temp := temp / 2;

49

end loop;

50

return result;

51

end function natural_to_bv;

52


53

procedure all_possible_values ( signal bv : out bit_vector;

54

delay_between_values : in delay_length ) is

55

begin

56

bv <= natural_to_bv(0, bv'length);

57

for value in 1 to 2**bv'length  1 loop

58

wait for delay_between_values;

59

bv <= natural_to_bv(value, bv'length);

60

end loop;

61

end procedure all_possible_values;

62


63

end package body stimulus_generators;
