Wielder2927

Untitled

Jul 13th, 2025
1,150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module tb;
  2.   typedef int unsigned uint32_t;
  3.  
  4.   typedef logic [1:0] tid_t;
  5.  
  6.   typedef tid_t tid_q[$];
  7.  
  8.   tid_q tid_queue;
  9.  
  10.   initial begin
  11.     main();
  12.     #1000ns;
  13.     $finish;
  14.   end
  15.  
  16.   task automatic main();
  17.     gen_stimulus(1);
  18.     gen_stimulus(2);
  19.     gen_stimulus(3);
  20.     gen_stimulus(4);
  21.   endtask
  22.  
  23.   task automatic gen_stimulus(uint32_t transfers);
  24.     if (transfers == 0) begin
  25.       $display("tid_queue = %p", tid_queue);
  26.       return;
  27.     end
  28.     else begin
  29.       for(tid_t i = 0; i <= 2'b11; i++) begin
  30.         tid_queue.push_back(i);
  31.         gen_stimulus(transfers - 1);
  32.         void'(tid_queue.pop_back());
  33.         if (i == 2'b11) begin
  34.           break;
  35.         end
  36.       end
  37.     end
  38.   endtask
  39. endmodule
  40.  
Advertisement
Add Comment
Please, Sign In to add comment