// Hint for LSU EE 4702-1 Spring 2000 Homework 4.

// An easier version of the hint for homework 4.

// The iterator function is a convenient method for implementing
// a pattern of missing marks.


module hint();

   parameter marks = 4;

   reg       pd;
   time      markon, markoff;

   integer   pattern[99:0];

   function integer iterator;
      input reset;

      integer pptr;

      begin
         if( reset ) pptr = 0;
         iterator = pattern[pptr];
         pptr = pptr + 1;
         if( pptr >= marks ) pptr = 0;
      
      end
      
   endfunction // iterator

   initial begin:I
      integer i, pattern_number, dummy;
      //...;

      for( pattern_number = 0; pattern_number < 5;
           pattern_number = pattern_number + 1 ) begin

         case( pattern_number )
           // All Present
           0: for( i=0; i<marks; i=i+1 ) pattern[i] = 1;
           // One missing.
           1:;// Insert code here.
           // Maximum missing, spread out.
           2:;// Insert code here.
           // Maximum missing, big gap.
           3:;// Insert code here.
           // Some other interesting pattern.
           4:;// Insert code here.
         endcase // case( pattern_number )

         // Reset iterator.
         dummy = iterator(1);

         
         // Lots of other code here.
         

         // Code below may need to be changed slightly to work in
         // testbench.
         forever begin
            if( iterator(0) ) pd <= 1;
            #markon;
            pd <= 0;
            #markoff;
         end

      end

   end
   
endmodule // hint