Stochastic Analysis Tasks
  
    
    
     
   
   Formal Definition
  
   Stochastic analysis tasks provide a means of managing queues. 
  
   Simplified Syntax
  
   $q_initialize(identifier, 
   type, length, status) ; 
   $q_add(identifier, job, 
   information, status) ; 
   $q_remove(identifiers, job, 
   information, status) ; 
   $q_full(identifier, status) ; 
   $q_exam(identifier, 
   statistic_code, statistic_value, status) ; 
  
   Description
  
   All statistic analysis tasks include identifier, and status 
   arguments. The identifier is a unique integer value identifying the 
   queue. The status argument is an output integer parameter giving 
   information about the correctness of the specified task execution. 
  
    
    
     | 
       
       Status  | 
     
       
       Message  | 
     
    
     | 
       
       0  | 
     
       
       The queue generation was successful.  | 
     
    
     | 
       
       1  | 
     
       
       The queue cannot be increased; queue is full.  | 
     
    
     | 
       
       2  | 
     
       
       The identifier is undefined; please define an identifier.  | 
     
    
     | 
       
       3  | 
     
       
       Cannot remove a value; queue is empty.  | 
     
    
     | 
       
       4  | 
     
       
       The queue cannot be generated; this type is unsupported.  | 
     
    
     | 
       
       5  | 
     
       
       The length parameter is <= 0; the queue cannot be generated.  | 
     
    
     | 
       
       6  | 
     
       
       The identifier is duplicated; please define new identifier.  | 
     
    
     | 
       
       7  | 
     
       
       The queue cannot be generated; insufficient memory.  | 
     
    
  
   $q_initialize creates a 
   queue. Parameter type 
   determines the type of a queue. In case of 1, the created queue is 
   FIFO and in case of 2 the queue is LIFO. Parameter length 
   is an integer value specifying the maximum number of entries. 
  
   $q_add adds a new entry to 
   the queue. Parameter job 
   identifies the job. The special user-defined parameter, information,
    can maintain any information useful for the user. 
  
   $q_remove receives data from 
   the queue. Parameters of this task are the same as those of the $q_add
    task. 
  
   $q_full checks to see of the 
   queue identified by the identifier parameter is full. 
  
   $q_exam returns statistical 
   information about the queue. Parameter statistic_code 
   determines what you need to check and returns the result in statistic_value.
    The following table lists all possible values of statistic_code: 
  
    
    
    
     | 
       
       Statistic_code  | 
     
       
       Statistic_value  | 
     
    
     | 
       
       1  | 
     
       
       Length of queue.  | 
     
    
     | 
       
       2  | 
     
       
       Mean interarrival time.  | 
     
    
     | 
       
       3  | 
     
       
       Maximum length of queue.  | 
     
    
     | 
       
       4  | 
     
       
       Shortest wait time.  | 
     
    
     | 
       
       5  | 
     
       
       Longest wait time for jobs still in the queue.  | 
     
    
     | 
       
       6  | 
     
       
       Average wait time in the queue.  | 
     
    
  
   Examples
  Example 1 
   
   always @(posedge clk) 
   begin 
   // check if queue1 is full 
   $q_full(queue1, status); 
   // if full then show message and remove one item 
   if (status) begin 
     $display("Queue 
   is full); 
     $q_remove(queue1, 1, 
   info, status); 
   end 
   // add a new item to queue1 
   $q_add(queue1, 1, info, status); 
   // show message if there was an error 
   if (status) 
     $display("Error %d,status); 
   end 
     
   end 
  
   This example shows how to add a new element to the queues. 
  
   Important Notes
  
  
    
 
    |