Browse Prior Art Database

Single Threaded Debugging in a Parallel Execution Environment

IP.com Disclosure Number: IPCOM000112180D
Original Publication Date: 1994-Apr-01
Included in the Prior Art Database: 2005-Mar-26
Document File: 4 page(s) / 99K

Publishing Venue

IBM

Related People

Graves, JS: AUTHOR [+2]

Abstract

The VHSIC Hardware Description Language (VHDL) defines how a process (a set of sequential instructions) executes in parallel with other processes. It also defines the mechanism use for inter-process communication. Parallel execution environments exploit these definitions to improve performance. Disclosed is an algorithm that allows a single-threaded view of VHDL ([LRM]) source code while allowing parallel execution of the code being debugged.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 49% of the total text.

Single Threaded Debugging in a Parallel Execution Environment

      The VHSIC Hardware Description Language (VHDL) defines how a
process (a set of sequential instructions) executes in parallel with
other processes.  It also defines the mechanism use for inter-process
communication.  Parallel execution environments exploit these
definitions to improve performance.  Disclosed is an algorithm that
allows a single-threaded view of VHDL ([LRM]) source code while
allowing parallel execution of the code being debugged.

In the algorithm, the user chooses between several step methods.

time      Given a list of scheduled processes for the current
          simulation time, execute all unexecuted scheduled
          processes.  Advance simulation time to the next time at
          which an event occurs to generate a new list.

          Note:  This could be as soon as 1 simulation delta from the
          current simulation time.

concurrent At the beginning of any given simulation time, there may
             be a number of scheduled processes, the first of which
is
             automatically selected and displayed.  This step method
             conceptually executes the displayed process, and
displays
             the next scheduled process.  This step may then be
             repeated.  When the list of scheduled processes has been
             exhausted, advance simulation time to the next time at
             which an event occurs to generate a new list.

into      Display the appropriate sequential statement within the
             currently selected process or subprogram, disable
             concurrent step commands, and enable sequential step
             commands.

out of    Finish executing the process statement (until it suspends)
             or subprogram.  Display the containing process or
             subprogram, enable concurrent step commands, and disable
             sequential step commands.

sequential Execute the indicated sequential statement and display the
          next statement that will be executed.

1.  get the scheduled process list

2.  select and display the first scheduled process

3.  <user selects step method>
     a.  if time step method
         1)  execute all scheduled processes until they suspend
         2)  advance simulation time to the next event
         3)  go to step 1 (get the scheduled process list)
     b.  if concurrent step method
         1)  if this is the last scheduled process, advance
simulation
            time to the next event and go to step 1 (get the
            scheduled process list)
         2)  else if this is the first scheduled process, save the
            'current' sta...