Advertisement
Guest User

Untitled

a guest
Oct 31st, 2014
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module mymodule(clk, clrn, din, div)
  2.     input clk;
  3.     input clrn;
  4.     input din;
  5.     output div[1:0];
  6.    
  7.     reg clk;
  8.     reg clrn;
  9.     reg din;
  10.     reg div[1:0];
  11.     reg d1;
  12.     reg d2;
  13.    
  14.     `DEFINE START 0
  15.     `DEFINE FIRST 1
  16.     `DEFINE SECOND 2
  17.     `DEFINE STOP 3
  18.    
  19.     reg status[1:0];
  20.    
  21.     // on start
  22.    
  23.     always @ (posedge clk or posedge clrn)
  24.     begin
  25.     if (clrn)
  26.     begin
  27.         div <= 0;
  28.         state <= `START;
  29.     end else
  30.     begin
  31.         case (state)
  32.         begin
  33.         `START:
  34.             if(din == 0)
  35.             begin
  36.                 state <= `FIRST;
  37.             end
  38.             else
  39.             begin
  40.                 state <= `START;
  41.             end
  42.         `FIRST:
  43.             d1 <= din;
  44.             state <= `SECOND;
  45.         `SECOND
  46.             d2 <= din;
  47.             state <= `STOP;
  48.         `STOP
  49.             if(din == 1)
  50.             begin
  51.                 div <= {d2, d1};
  52.             end
  53.             state <= `START;
  54.            
  55.         endcase
  56.     end
  57. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement