Advertisement
Guest User

Untitled

a guest
Jan 12th, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module controlCommand (
  2.     input clk,  // clock
  3.     input rst,  // reset
  4.     input [8:0] cmd,
  5.     output oe,
  6.     output cl,
  7.     output la,
  8.     output busy
  9.   );
  10.  
  11.   assign oe = regOe;
  12.   assign cl = regCl;
  13.   assign la = regLa;
  14.   assign busy = regBusy;
  15.  
  16.   reg regOe;
  17.   reg regCl;
  18.   reg regLa;
  19.   reg regBusy;
  20.  
  21.   reg [10:0] cnt;
  22.  
  23.  
  24.   always @(negedge clk) begin
  25.       cnt = cnt + 1;
  26.       regCl <= 1'b0;
  27.   end
  28.  
  29.   /* Sequential Logic */
  30.   always @(posedge clk) begin
  31.     if (rst) begin
  32.       // Add flip-flop reset values here
  33.     end else begin
  34.       if(cmd > 0) begin
  35.         regBusy <= 1'b1;  
  36.         if(cnt == 0) begin
  37.           regLa <= 1'b1;        
  38.         end else if(cnt < (cmd + 1)) begin
  39.           regCl <= 1'b1;
  40.         end else if(cnt > cmd) begin
  41.           regLa <= 1'b0;
  42.           regBusy <= 1'b0;
  43.         end  
  44.       end
  45.     end
  46.   end
  47.  
  48. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement