Advertisement
Guest User

task

a guest
Dec 21st, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module contTest;
  2. parameter T = 10;
  3. parameter X = 5;
  4. parameter M = 3;
  5. parameter N = 8;
  6.  
  7. reg clk = 1;
  8. reg reset;
  9.  
  10. reg [M-1:0] addr_in;
  11. reg [N-1:0] data_in;
  12. reg rd_in;
  13. reg wr_in;
  14. wire busy;
  15. wire [M-1:0] addr_resp;
  16. wire [N-1:0] data_resp;
  17. wire finish;
  18.  
  19. wire [M-1:0] mem_addr;
  20. wire [N-1:0] mem_data;
  21. wire mem_wr;
  22. wire mem_rd;
  23.  
  24.  
  25. always
  26.     #(T/2) clk <= ~clk;
  27.  
  28. controller #(.T(T), .X(X), .M(M), .N(N))DUT(.clk(clk), .reset(reset), .addr_in(addr_in), .data_in(data_in),
  29.                 .wr_in(wr_in), .rd_in(rd_in), .busy(busy), .addr_resp(addr_resp), .data_resp(data_resp),
  30.                 .finish(finish), .mem_addr(mem_addr), .mem_data(mem_data), .mem_wr(mem_wr), .mem_rd(mem_rd));
  31.                        
  32. mem  #(.T(T), .X(X), .M(M), .N(N))mem1(.addr(mem_addr), .data(mem_data), .clk(clk), .rd(mem_rd), .wr(mem_wr));
  33.  
  34. initial begin
  35.     init;
  36.     #T @(posedge clk)
  37.     writeCnt('b011, 'b01101);
  38.     #(6*T) @(posedge clk)
  39.     writeCnt('b001, 'b01001);
  40.     #(10*T) @(posedge clk)
  41.     readCnt('b011);
  42. end
  43.  
  44. task init;
  45.     begin
  46.         addr_in <= 'b0;
  47.         data_in <= 'b1;
  48.         rd_in <= 0;
  49.         wr_in <= 0;
  50.         reset <= 1;
  51.         #(2*T) @(posedge clk)
  52.         reset <= 0;
  53.   end
  54. endtask
  55.  
  56. task writeCnt(input [M-1:0] addrVal, input [N-1:0] dataVal);
  57.   begin
  58.     addr_in <= addrVal;
  59.     data_in <= dataVal;
  60.     wr_in <= 1;
  61.     #(T) @(posedge clk)
  62.     wr_in <= 0;
  63.   end
  64. endtask
  65.  
  66. task readCnt(input [M-1:0] addrVal);
  67.   begin
  68.     addr_in <= addrVal;
  69.     rd_in <= 1;
  70.     #(T) @(posedge clk)
  71.     rd_in <= 0;
  72.   end
  73. endtask
  74.  
  75. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement