Advertisement
Guest User

Untitled

a guest
Mar 26th, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. module myTask_tester;
  3. logic [1:0] sel;
  4. logic a,b;
  5. logic val;
  6.  
  7. // a = sel[0]
  8. // b = sel[1]
  9. // c = a
  10. // d = b
  11. //                c & 'b & 'a & 'b             c' d a'            ab              cda          db
  12. assign ref_val =  sel[1]&~sel[0]&~a&~b | ~sel[1]&sel[0]&~a  | a&b | sel[1]&sel[0]&a | sel[0]&b;
  13.  
  14. initial begin
  15.     b = 0;
  16.     forever #10 b = ~b; //d
  17. end
  18.  
  19. initial begin
  20.     a = 0;
  21.     forever @(negedge b) a = ~a;
  22. end
  23.  
  24. initial begin
  25.     sel[1] = 0;
  26.     forever @(negedge a) sel[1] = ~sel[1];
  27. end
  28.  
  29. initial begin
  30.     sel[0] = 0;
  31.     forever @(negedge sel[1]) sel[0] = ~sel[0];
  32. end
  33.  
  34. initial begin
  35.     repeat(16)
  36.     begin
  37.     #11 $strobe("%d %d %d %d = %d = %d %d", sel[0], sel[1], a, b, ref_val, out, ref_val == out);
  38.     end
  39.     #9 $stop;
  40. end
  41.  
  42.  
  43. myTask uut_inst(sel, a, b, out);
  44.  
  45. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement