URL
https://opencores.org/ocsvn/vhld_tb/vhld_tb/trunk
Subversion Repositories vhld_tb
Compare Revisions
- This comparison shows the changes necessary to convert path
/vhld_tb/trunk
- from Rev 14 to Rev 17
- ↔ Reverse comparison
Rev 14 → Rev 17
/source/tb_pkg_body.vhd
1,12 → 1,10
------------------------------------------------------------------------------- |
-- Copyright 2007 Ken Campbell |
-- Copyright 2009 Ken Campbell |
------------------------------------------------------------------------------- |
-- $Author: sckoarn $ |
-- |
-- $Date: 2008-02-24 01:34:11 $ |
-- |
-- $Name: not supported by cvs2svn $ |
-- |
-- $Id: tb_pkg_body.vhd,v 1.3 2008-02-24 01:34:11 sckoarn Exp $ |
-- |
-- $Source: /home/marcus/revision_ctrl_test/oc_cvs/cvs/vhld_tb/source/tb_pkg_body.vhd,v $ |
1005,6 → 1003,7
variable temp_var: var_field_ptr; |
variable current_ptr: var_field_ptr; |
variable index: integer := 1; |
variable len: integer := 0; |
|
begin |
-- if this is NOT the first one |
1033,10 → 1032,11
temp_var.var_value := stim_to_integer(p2,name,line_num); -- convert text_field to integer |
temp_var.var_index := index; |
current_ptr.next_rec := temp_var; |
else |
else -- this is an inline variable |
while(current_ptr.next_rec /= null) loop |
-- if we have defined the current before then die |
assert(current_ptr.var_name(1 to (length - 1)) /= p1(1 to (length - 1))) |
len := fld_len(current_ptr.var_name); |
assert(current_ptr.var_name(1 to len) /= p1(1 to (length - 1))) |
report LF & "Error: Attemping to add a duplicate Inline Variable definition " |
& " on line " & (integer'image(line_num)) & " of file " & name |
severity failure; |
1045,7 → 1045,8
index := index + 1; |
end loop; |
-- if we have defined the current before then die. This checks the last one |
assert(current_ptr.var_name(1 to (length - 1)) /= p1(1 to (length - 1))) |
len := fld_len(current_ptr.var_name); |
assert(current_ptr.var_name(1 to len) /= p1(1 to (length - 1))) |
report LF & "Error: Attemping to add a duplicate Inline Variable definition " |
& " on line " & (integer'image(line_num)) & " of file " & name |
severity failure; |
/examples/example1/vhdl/example_dut_tb_bhv.vhd
49,6 → 49,8
variable defined_vars : var_field_ptr; -- defined variables |
variable inst_sequ : stim_line_ptr; -- the instruction sequence |
variable file_list : file_def_ptr; -- pointer to the list of file names |
variable last_sequ_num: integer; |
variable last_sequ_ptr: stim_line_ptr; |
|
variable instruction : text_field; -- instruction field |
variable par1 : integer; -- paramiter 1 |
152,6 → 154,10
-- Read, test, and load the stimulus file |
read_instruction_file(stimulus_file, inst_list, defined_vars, inst_sequ, |
file_list); |
|
-- initialize last info |
last_sequ_num := 0; |
last_sequ_ptr := inst_sequ; |
|
------------------------------------------------------------------------ |
-- Using the Instruction record list, get the instruction and implement |
159,7 → 165,8
while(v_line < inst_sequ.num_of_lines) loop |
v_line := v_line + 1; |
access_inst_sequ(inst_sequ, defined_vars, file_list, v_line, instruction, |
par1, par2, par3, par4, par5, par6, txt, len, file_name, file_line); |
par1, par2, par3, par4, par5, par6, txt, len, file_name, file_line, |
last_sequ_num, last_sequ_ptr); |
|
-------------------------------------------------------------------------- |
if(instruction(1 to len) = "DEFINE_VAR") then |
281,15 → 288,17
|
if(if_state = false) then |
v_line := v_line + 1; |
access_inst_sequ(inst_sequ, defined_vars, v_line, instruction, |
par1, par2, par3, par4, par5, par6, txt, len, file_name, file_line); |
access_inst_sequ(inst_sequ, defined_vars, file_list, v_line, instruction, |
par1, par2, par3, par4, par5, par6, txt, len, file_name, file_line, |
last_sequ_num, last_sequ_ptr); |
while(instruction(1 to len) /= "ELSE" and |
instruction(1 to len) /= "ELSEIF" and |
instruction(1 to len) /= "END_IF") loop |
if(v_line < inst_sequ.num_of_lines) then |
v_line := v_line + 1; |
access_inst_sequ(inst_sequ, defined_vars, v_line, instruction, |
par1, par2, par3, par4, par5, par6, txt, len, file_name, file_line); |
access_inst_sequ(inst_sequ, defined_vars, file_list, v_line, instruction, |
par1, par2, par3, par4, par5, par6, txt, len, file_name, file_line, |
last_sequ_num, last_sequ_ptr); |
else |
assert (false) |
report LF & "ERROR: IF instruction unable to find terminating" & |
304,13 → 313,15
elsif (instruction(1 to len) = "ELSEIF") then |
if(if_state = true) then -- if the if_state is true then skip to the end |
v_line := v_line + 1; |
access_inst_sequ(inst_sequ, defined_vars, v_line, instruction, |
par1, par2, par3, par4, par5, par6, txt, len, file_name, file_line); |
access_inst_sequ(inst_sequ, defined_vars, file_list, v_line, instruction, |
par1, par2, par3, par4, par5, par6, txt, len, file_name, file_line, |
last_sequ_num, last_sequ_ptr); |
while(instruction(1 to len) /= "END_IF") loop |
if(v_line < inst_sequ.num_of_lines) then |
v_line := v_line + 1; |
access_inst_sequ(inst_sequ, defined_vars, v_line, instruction, |
par1, par2, par3, par4, par5, par6, txt, len, file_name, file_line); |
access_inst_sequ(inst_sequ, defined_vars, file_list, v_line, instruction, |
par1, par2, par3, par4, par5, par6, txt, len, file_name, file_line, |
last_sequ_num, last_sequ_ptr); |
else |
assert (false) |
report LF & "ERROR: IF instruction unable to find terminating" & |
338,15 → 349,17
|
if(if_state = false) then |
v_line := v_line + 1; |
access_inst_sequ(inst_sequ, defined_vars, v_line, instruction, |
par1, par2, par3, par4, par5, par6, txt, len, file_name, file_line); |
access_inst_sequ(inst_sequ, defined_vars, file_list, v_line, instruction, |
par1, par2, par3, par4, par5, par6, txt, len, file_name, file_line, |
last_sequ_num, last_sequ_ptr); |
while(instruction(1 to len) /= "ELSE" and |
instruction(1 to len) /= "ELSEIF" and |
instruction(1 to len) /= "END_IF") loop |
if(v_line < inst_sequ.num_of_lines) then |
v_line := v_line + 1; |
access_inst_sequ(inst_sequ, defined_vars, v_line, instruction, |
par1, par2, par3, par4, par5, par6, txt, len, file_name, file_line); |
access_inst_sequ(inst_sequ, defined_vars, file_list, v_line, instruction, |
par1, par2, par3, par4, par5, par6, txt, len, file_name, file_line, |
last_sequ_num, last_sequ_ptr); |
else |
assert (false) |
report LF & "ERROR: ELSEIF instruction unable to find terminating" & |
362,13 → 375,15
elsif (instruction(1 to len) = "ELSE") then |
if(if_state = true) then -- if the if_state is true then skip the else |
v_line := v_line + 1; |
access_inst_sequ(inst_sequ, defined_vars, v_line, instruction, |
par1, par2, par3, par4, par5, par6, txt, len, file_name, file_line); |
access_inst_sequ(inst_sequ, defined_vars, file_list, v_line, instruction, |
par1, par2, par3, par4, par5, par6, txt, len, file_name, file_line, |
last_sequ_num, last_sequ_ptr); |
while(instruction(1 to len) /= "END_IF") loop |
if(v_line < inst_sequ.num_of_lines) then |
v_line := v_line + 1; |
access_inst_sequ(inst_sequ, defined_vars, v_line, instruction, |
par1, par2, par3, par4, par5, par6, txt, len, file_name, file_line); |
access_inst_sequ(inst_sequ, defined_vars, file_list, v_line, instruction, |
par1, par2, par3, par4, par5, par6, txt, len, file_name, file_line, |
last_sequ_num, last_sequ_ptr); |
else |
assert (false) |
report LF & "ERROR: IF instruction unable to find terminating" & |
409,8 → 424,9
while(wh_end /= true) loop |
if(v_line < inst_sequ.num_of_lines) then |
v_line := v_line + 1; |
access_inst_sequ(inst_sequ, defined_vars, v_line, instruction, |
par1, par2, par3, par4, par5, par6, txt, len, file_name, file_line); |
access_inst_sequ(inst_sequ, defined_vars, file_list, v_line, instruction, |
par1, par2, par3, par4, par5, par6, txt, len, file_name, file_line, |
last_sequ_num, last_sequ_ptr); |
else |
assert (false) |
report LF & "ERROR: WHILE instruction unable to find terminating" & |