-- Copyright © 1993 by McGraw-Hill, Inc. and Zainalabedin Navabi
-- FIGURE 6.28
-- (A) PROCEDURE DECLARATION OF ASSIGN_BITS
-- AND OTHER NECCESSERY PROCEDURE DECLERATIONS :
TYPE qit IS ('0', '1', 'Z', 'X');
TYPE logic_data IS FILE OF CHARACTER;
PROCEDURE assign_bits ( SIGNAL s : OUT qit;
file_name : IN STRING; period : IN TIME);
--
-- (B) THE SUBPROGRAM BODY FOR ASSIGN_BITS PROCEDURE :
PROCEDURE assign_bits (
SIGNAL s : OUT BIT; file_name : IN STRING; period : IN TIME)
IS
VARIABLE char : CHARACTER;
VARIABLE current : TIME := 0 NS;
FILE input_value_file : logic_data IS IN file_name;
BEGIN
WHILE NOT ENDFILE (input_value_file) LOOP
READ (input_value_file, char);
IF char = '0' OR char = '1' THEN
current := current + period;
IF char = '0' THEN
s <= TRANSPORT '0' AFTER current;
ELSIF char = '1' THEN
s <= TRANSPORT '1' AFTER current;
END IF;
END IF;
END LOOP;
END assign_bits;
--