Advertisement
Guest User

Untitled

a guest
Feb 26th, 2017
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.68 KB | None | 0 0
  1. module PosEdgeDFF(clk, data, clr, Q, Qnot);
  2.  
  3. input clk, data, clr; //clr is active low;
  4. output Q, Qnot;
  5.  
  6. wire w1, w2, w3, w4, w5;
  7.  
  8. nand(w1, w4, w2);
  9. nand(w2, w1, clr, clk);
  10. nand(w3, w2, clk, w4);
  11. nand(w4, w3, clr, data);
  12.  
  13. nand(Q, w2, Qnot);
  14. nand(Qnot, w3, clr, Q);
  15.  
  16. endmodule
  17.  
  18. `timescale 1ns/1ps
  19. module PosEdgeDFF_tb();
  20.  
  21. reg clk, data, clr;
  22. wire Q, Qnot;
  23. PosEdgeDFF uut(clk, data, clr, Q, Qnot);
  24.  
  25. always begin
  26. #5 clk = ~clk;
  27. end
  28.  
  29. always begin
  30. #1 data = ~data;
  31. end
  32.  
  33. initial begin
  34. clk = 0;
  35. data = 0;
  36. clr = 0;
  37. #1;
  38. clr = 1;
  39. #80;
  40. $finish;
  41. end
  42. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement