OpenCores
URL https://opencores.org/ocsvn/vhld_tb/vhld_tb/trunk

Subversion Repositories vhld_tb

[/] [vhld_tb/] [trunk/] [examples/] [packet_gen/] [vhdl/] [packet_gen_tb_bhv.vhd] - Blame information for rev 19

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 19 sckoarn
-------------------------------------------------------------------------------
2
--             Copyright -----------------------------------
3
--                        All Rights Reserved
4
-------------------------------------------------------------------------------
5
-- $Author:  $
6
--
7
-- $date:  $
8
--
9
-- $Id:  $
10
--
11
-- $Source:  $
12
--
13
-- Description :
14
--          This file was generated by TTB Gen Plus Beta 2.0
15
--            on 01 May 2011 20:35:06
16
------------------------------------------------------------------------------
17
-- This software contains concepts confidential to ----------------
18
-- ---------. and is only made available within the terms of a written
19
-- agreement.
20
-------------------------------------------------------------------------------
21
-- Revision History:
22
-- $Log:  $
23
--
24
-------------------------------------------------------------------------------
25
 
26
 
27
architecture bhv of packet_gen_tb is
28
 
29
 
30
 
31
  signal tb_clk            : std_logic;
32
 
33
-------------------------------------------------------------------------
34
-- Component defintion
35
 
36
-------------------------------------------------------------------------------
37
-- USER Component instantiations
38
--for all: Arbitor      use entity tb_objects.arbitor(bhv);
39
 
40
 
41
  begin
42
 
43
-------------------------------------------------------------------------------
44
-- clock driver process
45
-- the main clock generator
46
clock_driver:
47
  process
48
  begin
49
    tb_clk <=  '0';
50
    wait for 20 ns;
51
    tb_clk <=  '1';
52
    wait for 20 ns;
53
  end process clock_driver;
54
 
55
  --------------------------------------------------------------------------
56
  -- Read_file Process:
57
  --
58
  -- This process is the main process of the testbench.  This process reads
59
  -- the stumulus file, parses it, creates lists of records, then uses these
60
  -- lists to exicute user instructions.  There are two passes through the
61
  -- script.  Pass one reads in the stimulus text file, checks it, creates
62
  -- lists of valid instructions, valid list of variables and finialy a list
63
  -- of user instructions(the sequence).  The second pass through the file,
64
  -- records are drawn from the user instruction list, variables are converted
65
  -- to integers and put through the elsif structure for exicution.
66
  --------------------------------------------------------------------------
67
  Read_file: process
68
    variable current_line : text_line;  -- The current input line
69
    variable inst_list    : inst_def_ptr;  -- the instruction list
70
    variable defined_vars : var_field_ptr; -- defined variables
71
    variable inst_sequ    : stim_line_ptr; -- the instruction sequence
72
    variable file_list    : file_def_ptr;  -- pointer to the list of file names
73
    variable last_sequ_num: integer;
74
    variable last_sequ_ptr: stim_line_ptr;
75
 
76
    variable instruction  : text_field;   -- instruction field
77
    variable par1         : integer;      -- paramiter 1
78
    variable par2         : integer;      -- paramiter 2
79
    variable par3         : integer;      -- paramiter 3
80
    variable par4         : integer;      -- paramiter 4
81
    variable par5         : integer;      -- paramiter 5
82
    variable par6         : integer;      -- paramiter 6
83
    variable txt          : stm_text_ptr;
84
    variable nbase        : base;         -- the number base to use
85
    variable len          : integer;      -- length of the instruction field
86
    variable file_line    : integer;      -- Line number in the stimulus file
87
    variable file_name    : text_line;    -- the file name the line came from
88
    variable v_line       : integer := 0; -- sequence number
89
    variable stack        : stack_register; -- Call stack
90
    variable stack_ptr    : integer  := 0;  -- call stack pointer
91
    variable wh_stack     : stack_register; -- while stack
92
    variable wh_dpth      : integer := 0;   -- while depth
93
    variable wh_ptr       : integer  := 0;  -- while pointer
94
    variable loop_num         : integer := 0;
95
    variable curr_loop_count  : int_array := (others => 0);
96
    variable term_loop_count  : int_array := (others => 0);
97
    variable loop_line        : int_array := (others => 0);
98
 
99
    variable messages     : boolean  := TRUE;
100
    variable if_state     : boolean  := FALSE;
101
    variable wh_state     : boolean  := FALSE;
102
    variable wh_end       : boolean  := FALSE;
103
    variable rand         : std_logic_vector(31 downto 0);
104
    variable rand_back    : std_logic_vector(31 downto 0);
105
    variable valid        : integer;
106
 
107
    --  scratchpad variables
108
    variable i            : integer;
109
    variable temp_int     : integer;
110
    variable temp_index   : integer;
111
    variable temp_str     : text_field;
112
    variable v_temp_vec1  : std_logic_vector(31 downto 0);
113
    variable v_temp_vec2  : std_logic_vector(31 downto 0);
114
 
115
    --------------------------------------------------------------------------
116
    --  Area for Procedures which may be usefull to more than one instruction.
117
    --    By coding here commonly used  code sections ...
118
    --    you know the benifits.
119
    ---------------------------------------------------------------------
120
    -----------------------------------------------------------------
121
    -- This procedure writes to the arbitor model access port
122
--    procedure arb_write(add: in integer; .....
123
--    end arb_write;
124
 
125
 
126
  begin  -- process Read_file
127
 
128
    request    <=  '0';
129
    stm_in     <=  stm_neut;
130
    --fname   <=  "";
131
 
132
 
133
    -----------------------------------------------------------------------
134
    --           Stimulus file instruction definition
135
    --  This is where the instructions used in the stimulus file are defined.
136
    --  Syntax is
137
    --     define_instruction(inst_def_ptr, instruction, paramiters)
138
    --           inst_def_ptr: is a record pointer defined in tb_pkg_header
139
    --           instruction:  the text instruction name  ie. "ADD_VAR"
140
    --           paramiters:   the number of fields or paramiters passed
141
    --
142
    --  Some basic instruction are created here, the user should create new
143
    --  instructions below the standard ones.
144
    ------------------------------------------------------------------------
145
    define_instruction(inst_list, "DEFINE_VAR", 2);  -- Define a Variable
146
    define_instruction(inst_list, "EQU_VAR", 2);
147
    define_instruction(inst_list, "ADD_VAR", 2);
148
    define_instruction(inst_list, "SUB_VAR", 2);
149
    define_instruction(inst_list, "CALL", 1);
150
    define_instruction(inst_list, "RETURN_CALL", 0);
151
    define_instruction(inst_list, "JUMP", 1);
152
    define_instruction(inst_list, "LOOP", 1);
153
    define_instruction(inst_list, "END_LOOP", 0);
154
    define_instruction(inst_list, "IF", 3);
155
    define_instruction(inst_list, "ELSEIF", 3);
156
    define_instruction(inst_list, "ELSE", 0);
157
    define_instruction(inst_list, "END_IF", 0);
158
    define_instruction(inst_list, "WHILE", 3);
159
    define_instruction(inst_list, "END_WHILE", 0);
160
    define_instruction(inst_list, "MESSAGES_OFF", 0);
161
    define_instruction(inst_list, "MESSAGES_ON", 0);
162
    define_instruction(inst_list, "ABORT", 0);       -- Error exit from sim
163
    define_instruction(inst_list, "FINISH", 0);      -- Normal exit from sim
164
    define_instruction(inst_list, "INCLUDE", 1);     -- Include a script file
165
    --  Start User defined instructions
166
 
167
    --  End User defined instructions
168
    define_instruction(inst_list, "RESET_SYS", 0);
169
    define_instruction(inst_list, "REQUEST", 0);
170
    define_instruction(inst_list, "WRITE_STM", 2);
171
    define_instruction(inst_list, "SET_FN", 0);
172
    define_instruction(inst_list, "TEST_INST", 7);
173
    ------------------------------------------------------------------------
174
    -- Read, test, and load the stimulus file
175
    read_instruction_file(stimulus_file, inst_list, defined_vars, inst_sequ,
176
                          file_list);
177
 
178
    -- initialize last info
179
    last_sequ_num  := 0;
180
    last_sequ_ptr  := inst_sequ;
181
------------------------------------------------------------------------
182
-- Using the Instruction record list, get the instruction and implement
183
-- it as per the statements in the elsif tree.
184
  while(v_line < inst_sequ.num_of_lines) loop
185
    v_line := v_line + 1;
186
    access_inst_sequ(inst_sequ, defined_vars, file_list, v_line, instruction,
187
         par1, par2, par3, par4, par5, par6, txt, len, file_name, file_line,
188
         last_sequ_num, last_sequ_ptr);
189
 
190
--------------------------------------------------------------------------
191
    --if(instruction(1 to len) = "DEFINE_VAR") then
192
    --  null;  -- This instruction was implemented while reading the file
193
 
194
--------------------------------------------------------------------------
195
    if(instruction(1 to len) = "INCLUDE") then
196
      null;  -- This instruction was implemented while reading the file
197
 
198
--------------------------------------------------------------------------
199
    elsif(instruction(1 to len) = "ABORT") then
200
      assert (false)
201
        report "The test has aborted due to an error!!"
202
      severity failure;
203
 
204
--------------------------------------------------------------------------
205
    elsif(instruction(1 to len) = "FINISH") then
206
      assert (false)
207
        report "Test Finished with NO errors!!"
208
      severity failure;
209
 
210
--------------------------------------------------------------------------
211
    elsif(instruction(1 to len) = "EQU_VAR") then
212
      update_variable(defined_vars, par1, par2, valid);
213
 
214
--------------------------------------------------------------------------
215
    elsif(instruction(1 to len) = "ADD_VAR") then
216
      index_variable(defined_vars, par1, temp_int, valid);
217
      if(valid /= 0) then
218
        temp_int  :=  temp_int + par2;
219
        update_variable(defined_vars, par1, temp_int, valid);
220
      else
221
        assert (false)
222
          report "ADD_VAR Error: Not a valid Variable??"
223
        severity failure;
224
      end if;
225
 
226
--------------------------------------------------------------------------
227
    elsif(instruction(1 to len) = "SUB_VAR") then
228
      index_variable(defined_vars, par1, temp_int, valid);
229
      if(valid /= 0) then
230
        temp_int  :=  temp_int - par2;
231
        update_variable(defined_vars, par1, temp_int, valid);
232
      else
233
        assert (false)
234
          report "SUB_VAR Error: Not a valid Variable??"
235
        severity failure;
236
      end if;
237
 
238
--------------------------------------------------------------------------
239
    elsif(instruction(1 to len) = "CALL") then
240
      if(stack_ptr >= 7) then
241
        assert (false)
242
          report "Call Error: Stack over run, calls to deeply nested!!"
243
        severity failure;
244
      end if;
245
      stack(stack_ptr)  :=  v_line;
246
      stack_ptr  :=  stack_ptr + 1;
247
      v_line       :=  par1 - 1;
248
 
249
--------------------------------------------------------------------------
250
    elsif(instruction(1 to len) = "RETURN_CALL") then
251
      if(stack_ptr <= 0) then
252
        assert (false)
253
          report "Call Error: Stack under run??"
254
        severity failure;
255
      end if;
256
      stack_ptr  :=  stack_ptr - 1;
257
      v_line  :=  stack(stack_ptr);
258
 
259
--------------------------------------------------------------------------
260
    elsif(instruction(1 to len) = "JUMP") then
261
      v_line    :=  par1 - 1;
262
      wh_state  :=  false;
263
      wh_stack  := (others => 0);
264
      wh_dpth   := 0;
265
      wh_ptr    := 0;
266
      stack     := (others => 0);
267
      stack_ptr := 0;
268
 
269
--------------------------------------------------------------------------------
270
     elsif (instruction(1 to len) = "LOOP") then
271
    loop_num := loop_num + 1;
272
        loop_line(loop_num) := v_line;
273
        curr_loop_count(loop_num) := 0;
274
        term_loop_count(loop_num) := par1;
275
    assert (messages)
276
          report LF & "Executing LOOP Command" &
277
                 LF & "  Nested Loop:" & HT & integer'image(loop_num) &
278
                 LF & "  Loop Length:" & HT & integer'image(par1)
279
          severity note;
280
 
281
--------------------------------------------------------------------------------
282
     elsif (instruction(1 to len) = "END_LOOP") then
283
        curr_loop_count(loop_num) := curr_loop_count(loop_num) + 1;
284
        if (curr_loop_count(loop_num) = term_loop_count(loop_num)) then
285
          loop_num := loop_num - 1;
286
        else
287
          v_line := loop_line(loop_num);
288
        end if;
289
 
290
--------------------------------------------------------------------------------
291
     elsif (instruction(1 to len) = "IF") then
292
       if_state  :=  false;
293
       case par2 is
294
         when 0 => if(par1 = par3) then if_state  :=  true; end if;
295
         when 1 => if(par1 > par3) then if_state  :=  true; end if;
296
         when 2 => if(par1 < par3) then if_state  :=  true; end if;
297
         when 3 => if(par1 /= par3) then if_state :=  true; end if;
298
         when 4 => if(par1 >= par3) then if_state :=  true; end if;
299
         when 5 => if(par1 <= par3) then if_state :=  true; end if;
300
         when others =>
301
           assert (false)
302
             report LF & "ERROR:  IF instruction got an unexpected value" &
303
                 LF & "  in parameter 2!" & LF &
304
                  "Found on line " & integer'image(file_line) & " in file " & file_name
305
             severity failure;
306
       end case;
307
 
308
       if(if_state = false) then
309
         v_line := v_line + 1;
310
         access_inst_sequ(inst_sequ, defined_vars, file_list, v_line, instruction,
311
            par1, par2, par3, par4, par5, par6, txt, len, file_name, file_line,
312
            last_sequ_num, last_sequ_ptr);
313
         while(instruction(1 to len) /= "ELSE" and
314
               instruction(1 to len) /= "ELSEIF" and
315
               instruction(1 to len) /= "END_IF") loop
316
           if(v_line < inst_sequ.num_of_lines) then
317
             v_line := v_line + 1;
318
             access_inst_sequ(inst_sequ, defined_vars, file_list, v_line, instruction,
319
                 par1, par2, par3, par4, par5, par6, txt, len, file_name, file_line,
320
                 last_sequ_num, last_sequ_ptr);
321
           else
322
             assert (false)
323
              report LF & "ERROR:  IF instruction unable to find terminating" &
324
                     LF & "    ELSE, ELSEIF or END_IF statement."
325
              severity failure;
326
           end if;
327
         end loop;
328
         v_line := v_line - 1;  -- re-align so it will be operated on.
329
       end if;
330
 
331
--------------------------------------------------------------------------------
332
     elsif (instruction(1 to len) = "ELSEIF") then
333
       if(if_state = true) then  -- if the if_state is true then skip to the end
334
         v_line := v_line + 1;
335
         access_inst_sequ(inst_sequ, defined_vars, file_list, v_line, instruction,
336
             par1, par2, par3, par4, par5, par6, txt, len, file_name, file_line,
337
             last_sequ_num, last_sequ_ptr);
338
         while(instruction(1 to len) /= "END_IF") loop
339
           if(v_line < inst_sequ.num_of_lines) then
340
             v_line := v_line + 1;
341
             access_inst_sequ(inst_sequ, defined_vars, file_list, v_line, instruction,
342
                 par1, par2, par3, par4, par5, par6, txt, len, file_name, file_line,
343
                 last_sequ_num, last_sequ_ptr);
344
           else
345
             assert (false)
346
              report LF & "ERROR:  IF instruction unable to find terminating" &
347
                     LF & "    ELSE, ELSEIF or END_IF statement."
348
              severity failure;
349
           end if;
350
         end loop;
351
         v_line := v_line - 1;  -- re-align so it will be operated on.
352
 
353
       else
354
         case par2 is
355
           when 0 => if(par1 = par3) then if_state  :=  true; end if;
356
           when 1 => if(par1 > par3) then if_state  :=  true; end if;
357
           when 2 => if(par1 < par3) then if_state  :=  true; end if;
358
           when 3 => if(par1 /= par3) then if_state :=  true; end if;
359
           when 4 => if(par1 >= par3) then if_state :=  true; end if;
360
           when 5 => if(par1 <= par3) then if_state :=  true; end if;
361
           when others =>
362
             assert (false)
363
               report LF & "ERROR:  ELSEIF instruction got an unexpected value" &
364
                   LF & "  in parameter 2!" & LF &
365
                    "Found on line " & integer'image(file_line) & " in file " & file_name
366
               severity failure;
367
         end case;
368
 
369
         if(if_state = false) then
370
           v_line := v_line + 1;
371
           access_inst_sequ(inst_sequ, defined_vars, file_list, v_line, instruction,
372
               par1, par2, par3, par4, par5, par6, txt, len, file_name, file_line,
373
               last_sequ_num, last_sequ_ptr);
374
           while(instruction(1 to len) /= "ELSE" and
375
                 instruction(1 to len) /= "ELSEIF" and
376
                 instruction(1 to len) /= "END_IF") loop
377
             if(v_line < inst_sequ.num_of_lines) then
378
               v_line := v_line + 1;
379
               access_inst_sequ(inst_sequ, defined_vars, file_list, v_line, instruction,
380
                   par1, par2, par3, par4, par5, par6, txt, len, file_name, file_line,
381
                   last_sequ_num, last_sequ_ptr);
382
             else
383
               assert (false)
384
                report LF & "ERROR:  ELSEIF instruction unable to find terminating" &
385
                       LF & "    ELSE, ELSEIF or END_IF statement."
386
                severity failure;
387
             end if;
388
           end loop;
389
           v_line := v_line - 1;  -- re-align so it will be operated on.
390
         end if;
391
       end if;
392
 
393
--------------------------------------------------------------------------------
394
     elsif (instruction(1 to len) = "ELSE") then
395
       if(if_state = true) then  -- if the if_state is true then skip the else
396
         v_line := v_line + 1;
397
         access_inst_sequ(inst_sequ, defined_vars, file_list, v_line, instruction,
398
             par1, par2, par3, par4, par5, par6, txt, len, file_name, file_line,
399
             last_sequ_num, last_sequ_ptr);
400
         while(instruction(1 to len) /= "END_IF") loop
401
           if(v_line < inst_sequ.num_of_lines) then
402
             v_line := v_line + 1;
403
             access_inst_sequ(inst_sequ, defined_vars, file_list, v_line, instruction,
404
                 par1, par2, par3, par4, par5, par6, txt, len, file_name, file_line,
405
                 last_sequ_num, last_sequ_ptr);
406
           else
407
             assert (false)
408
              report LF & "ERROR:  IF instruction unable to find terminating" &
409
                     LF & "    ELSE, ELSEIF or END_IF statement."
410
              severity failure;
411
           end if;
412
         end loop;
413
         v_line := v_line - 1;  -- re-align so it will be operated on.
414
       end if;
415
 
416
--------------------------------------------------------------------------------
417
     elsif (instruction(1 to len) = "END_IF") then
418
       null;  -- instruction is a place holder for finding the end of IF.
419
 
420
--------------------------------------------------------------------------------
421
     elsif (instruction(1 to len) = "WHILE") then
422
       wh_state  :=  false;
423
       case par2 is
424
         when 0 => if(par1 =  par3) then wh_state :=  true; end if;
425
         when 1 => if(par1 >  par3) then wh_state :=  true; end if;
426
         when 2 => if(par1 <  par3) then wh_state :=  true; end if;
427
         when 3 => if(par1 /= par3) then wh_state :=  true; end if;
428
         when 4 => if(par1 >= par3) then wh_state :=  true; end if;
429
         when 5 => if(par1 <= par3) then wh_state :=  true; end if;
430
         when others =>
431
           assert (false)
432
             report LF & "ERROR:  WHILE instruction got an unexpected value" &
433
                 LF & "  in parameter 2!" & LF &
434
                  "Found on line " & integer'image(file_line) & " in file " & file_name
435
             severity failure;
436
       end case;
437
 
438
       if(wh_state = true) then
439
         wh_stack(wh_ptr) :=  v_line;
440
         wh_ptr  := wh_ptr + 1;
441
       else
442
         wh_end := false;
443
         while(wh_end /= true) loop
444
           if(v_line < inst_sequ.num_of_lines) then
445
             v_line := v_line + 1;
446
             access_inst_sequ(inst_sequ, defined_vars, file_list, v_line, instruction,
447
                 par1, par2, par3, par4, par5, par6, txt, len, file_name, file_line,
448
                 last_sequ_num, last_sequ_ptr);
449
           else
450
             assert (false)
451
               report LF & "ERROR:  WHILE instruction unable to find terminating" &
452
                      LF & "    END_WHILE statement."
453
             severity failure;
454
           end if;
455
 
456
           -- if is a while need to escape it
457
           if(instruction(1 to len) = "WHILE") then
458
             wh_dpth := wh_dpth + 1;
459
           -- if is the end_while we are looking for
460
           elsif(instruction(1 to len) = "END_WHILE") then
461
             if(wh_dpth = 0) then
462
               wh_end := true;
463
             else
464
               wh_dpth := wh_dpth - 1;
465
             end if;
466
           end if;
467
         end loop;
468
       end if;
469
 
470
--------------------------------------------------------------------------------
471
     elsif (instruction(1 to len) = "END_WHILE") then
472
       if(wh_ptr > 0) then
473
         v_line  :=  wh_stack(wh_ptr - 1) - 1;
474
         wh_ptr  := wh_ptr - 1;
475
       end if;
476
 
477
--------------------------------------------------------------------------------
478
     elsif (instruction(1 to len) = "MESSAGES_OFF") then
479
       messages  := TRUE;
480
--------------------------------------------------------------------------------
481
     elsif (instruction(1 to len) = "MESSAGES_ON") then
482
       messages  := FALSE;
483
 
484
 
485
--------------------------------------------------------------------------------
486
--------------------------------------------------------------------------------
487
--  USER Istruction area.  Add all user instructions below this
488
--------------------------------------------------------------------------------
489
--------------------------------------------------------------------------------
490
    elsif (instruction(1 to len) = "RESET_SYS") then
491
      STM_IN.rst_n   <=  '1';
492
      wait until tb_clk'event and tb_clk = '1';
493
      STM_IN.rst_n   <=  '0';
494
      wait until tb_clk'event and tb_clk = '1';
495
      STM_IN.rst_n   <=  '1';
496
      wait for 0 ps;
497
 
498
--------------------------------------------------------------------------------
499
    elsif (instruction(1 to len) = "SET_FN") then
500
      i := 1;
501
      while(txt(i) /= nul) loop
502
        fname(i)  <=  txt(i);
503
        i := i + 1;
504
      end loop;
505
--------------------------------------------------------------------------------
506
    elsif (instruction(1 to len) = "REQUEST") then
507
      request  <=  '1';
508
      wait until tb_clk'event and tb_clk = '0';
509
      request  <=  '0';
510
      wait until tb_clk'event and tb_clk = '1';
511
 
512
--------------------------------------------------------------------------------
513
    elsif (instruction(1 to len) = "WRITE_STM") then
514
      v_temp_vec1     :=  std_logic_vector(conv_unsigned(par1, 32));
515
      v_temp_vec2     :=  std_logic_vector(conv_unsigned(par2, 32));
516
      STM_IN.addr   <=  v_temp_vec1;
517
      STM_IN.wdat   <=  v_temp_vec2;
518
      STM_IN.rwn    <=  '0';
519
      wait for 1 ps;
520
      STM_IN.req_n  <=  '0';
521
      wait until STM_OUT.ack_n'event and STM_OUT.ack_n = '0';
522
      STM_IN.req_n  <=  '1';
523
      STM_IN.addr   <=  (others => 'Z');
524
      STM_IN.wdat   <=  (others => 'Z');
525
      STM_IN.rwn    <=  '1';
526
      wait for 1 ps;
527
 
528
--------------------------------------------------------------------------------
529
    elsif (instruction(1 to len) = "TEST_INST") then
530
      temp_int  :=  0;
531
      if(par1 >= 0) then
532
        temp_int  :=  temp_int + 1;
533
        if(par2 >= 0) then
534
          temp_int  :=  temp_int + 1;
535
          if(par3 >= 0) then
536
            temp_int  :=  temp_int + 1;
537
            if(par4 >= 0) then
538
              temp_int  :=  temp_int + 1;
539
              if(par5 >= 0) then
540
                temp_int  :=  temp_int + 1;
541
                if(par6 >= 0) then
542
                  temp_int  :=  temp_int + 1;
543
                end if;
544
              end if;
545
            end if;
546
          end if;
547
        end if;
548
      end if;
549
      print("TEST_INST had " & integer'image(temp_int) & " parameters passed.");
550
 
551
--------------------------------------------------------------------------------
552
--  USER Istruction area.  Add all user instructions above this
553
--------------------------------------------------------------------------------
554
    --------------------------------------------------------------------------
555
    -- catch those little mistakes
556
    else
557
      assert (false)
558
        report LF & "ERROR:  Seems the command  " & instruction(1 to len) & " was defined but" & LF &
559
                    "was not found in the elsif chain, please check spelling."
560
        severity failure;
561
    end if;  -- else if structure end
562
    -- after the instruction is finished print out any txt and sub vars
563
    txt_print_wvar(defined_vars, txt, hex);
564
  end loop;  -- Main Loop end
565
 
566
  assert (false)
567
    report LF & "The end of the simulation! It was not terminated as expected." & LF
568
  severity failure;
569
 
570
  end process Read_file;
571
 
572
 
573
end bhv;
574
-------------------------------------------------------------------------------
575
-- Revision History:
576
--  version 1.4
577
-- $Log: not supported by cvs2svn $
578
-- Revision 1.3  2007/11/14 02:35:56  sckoarn
579
-- Fix to WHILE instruction: Change if_state typo to wh_state
580
--
581
-- Revision 1.2  2007/09/02 04:04:04  sckoarn
582
-- Update of version 1.2 tb_pkg
583
-- See documentation for details
584
--
585
-- Revision 1.1.1.1  2007/04/06 04:06:48  sckoarn
586
-- Import of the vhld_tb
587
--
588
--
589
-------------------------------------------------------------------------------

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.