Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2014
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module D_FF(q, d, clk, reset);
  2.     output q;
  3.     input d, clk, reset;
  4.     reg q;
  5.     always @(posedge reset or negedge clk)
  6.         if(reset) q <= 1'b0;
  7.         else q <= d;
  8. endmodule
  9.  
  10. module ticker(q, clk, reset);
  11.     output [2:0]q;
  12.     input clk, reset;
  13.     wire d0, d1, d2;
  14.    
  15.     wire q0n, q1n, q2n, d00, d01;
  16.    
  17.     not not0(q0n, q[0]);
  18.     not not1(q1n, q[1]);
  19.     not not2(q2n, q[2]);
  20.    
  21.     //D0
  22.     and and00(d00, q[1], q[0]);
  23.     or or0(d01, q1n, d00);
  24.     and and01(d0, q2n, d01);
  25.    
  26.     //D1
  27.     and (d1, q2n, q[0]);
  28.    
  29.     //D2
  30.     and(d2, q2n, q[1], q[0]);
  31.    
  32.     D_FF dff0(q[0], d0, clk, reset);
  33.     D_FF dff1(q[1], d1, clk, reset);
  34.     D_FF dff2(q[2], d2, clk, reset);
  35. endmodule
  36.  
  37. module reverse(qout, qin);
  38.     output [2:0]qout;
  39.     input [2:0]qin;
  40.    
  41.     reg [2:0]qout;
  42.    
  43.     always @* qout[0] = qin[2];
  44.     always @* qout[1] = qin[1];
  45.     always @* qout[2] = qin[0];
  46. endmodule
  47.  
  48. module resetgenerator(resetout, resetin, selector);
  49.     output resetout;
  50.     input resetin, selector;   
  51.     wire rnors;
  52.    
  53.     nor nor0(rnors, resetin, selector);
  54.     or or0(resetout, rnors, resetin);
  55. endmodule
  56.  
  57. module taillights(qleft, qright, left, right, emergency, clk, reset);
  58.     output [2:0]qleft;
  59.     output [2:0]qright;
  60.     input left, right, emergency;
  61.     input clk, reset;
  62.     wire [2:0]qrightrev;
  63.     wire resetl, resetr, releft, reright;
  64.    
  65.     or orl(releft, left, emergency);
  66.     or orr(reright, right, emergency);
  67.    
  68.     resetgenerator rl(resetl, reset, releft);
  69.     resetgenerator rr(resetr, reset, reright);
  70.    
  71.     ticker tl(qleft, clk, resetl);
  72.     ticker tr(qrightrev, clk, resetr);
  73.     reverse rrev(qright, qrightrev);
  74. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement