Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2014
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.10 KB | None | 0 0
  1. `timescale 1ns / 1ps
  2.  
  3. module testcounter(
  4. input wire clk,
  5. input wire resetn,
  6. input wire [31:0] num_to_count,
  7. output reg [7:0] output_signal
  8. );
  9.  
  10. reg [31:0] counter;
  11. reg [7:0] output_drive;
  12. initial begin
  13. counter = 0;
  14. end
  15.  
  16. initial begin
  17. output_drive = 0;
  18. end
  19.  
  20. always@(negedge resetn) begin
  21. counter <= 0;
  22. end
  23.  
  24. always@(posedge clk) begin
  25. if (counter == num_to_count) begin
  26. counter <= 0;
  27. output_drive <= output_drive ^ 8'hff;
  28. end
  29. else begin
  30. counter <= counter + 1;
  31. end
  32. output_signal <= output_drive;
  33. end
  34.  
  35.  
  36.  
  37. endmodule
  38.  
  39. module testcounter_testbench(
  40.  
  41. );
  42. reg clk;
  43. reg resetn;
  44. reg [31:0] num_to_count;
  45. wire [7:0] output_signal;
  46.  
  47. initial begin
  48. clk = 0;
  49. forever #1 clk = ~clk;
  50. end
  51.  
  52. initial begin
  53. num_to_count = 20;
  54. end
  55.  
  56. initial begin
  57. #7 resetn = 1;
  58. #35 resetn = 0;
  59. end
  60.  
  61. testcounter A1(.clk(clk),.resetn(resetn),.num_to_count(num_to_count),.output_signal(output_signal));
  62. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement