Advertisement
Guest User

Untitled

a guest
Jun 15th, 2019
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module counter(SW, HEX, KEY);
  2.     input [2:0] SW;
  3.     input [0] KEY;
  4.     output [6:0] HEX0, HEX1;
  5.     wire [3:0] w0, w1;
  6.  
  7.     bcounter8 bc0(
  8.         .Enable(SW[1]),
  9.         .Clock(KEY[0]),
  10.         .Clear_b(SW[0]),
  11.         .q({w1, w0})
  12.     );
  13.  
  14.     seven_seg_decoder s0(
  15.         .b(w0),
  16.         .a(HEX0)
  17.     );
  18.    
  19.     seven_seg_decoder s1(
  20.         .b(w1),
  21.         .a(HEX1)
  22.     );
  23.  
  24. endmodule
  25.  
  26.  
  27. module bcounter8(Enable, Clock, Clear_b, q)
  28.  
  29.     input Enable, Clock, Clear_b;
  30.     output [7:0] q;
  31.  
  32.     wire w1, w2, w3, w4, w5, w6, w7;
  33.  
  34.     assign w1 = q[0] & Enable;
  35.     assign w2 = w1 & q[1];
  36.     assign w3 = w2 & q[2];
  37.     assign w4 = w3 & q[3];
  38.     assign w5 = w4 & q[4];
  39.     assign w6 = w5 & q[5];
  40.     assign w7 = w6 & q[6];
  41.  
  42.  
  43.     tflipflop t0(
  44.         .t(Enable),
  45.         .clk(Clock),
  46.         .reset_n(Clear_b),
  47.         .q(q[0])
  48.     );
  49.  
  50.     tflipflop t1(
  51.         .t(w1),
  52.         .clk(Clock),
  53.         .reset_n(Clear_b),
  54.         .q(q[1])
  55.     );
  56.  
  57.     tflipflop t2(
  58.         .t(w2),
  59.         .clk(Clock),
  60.         .reset_n(Clear_b),
  61.         .q(q[2])
  62.     );
  63.  
  64.     tflipflop t3(
  65.         .t(w3),
  66.         .clk(Clock),
  67.         .reset_n(Clear_b),
  68.         .q(q[3])
  69.     );
  70.  
  71.     tflipflop t4(
  72.         .t(w4),
  73.         .clk(Clock),
  74.         .reset_n(Clear_b),
  75.         .q(q[4])
  76.     );
  77.  
  78.     tflipflop t5(
  79.         .t(w5),
  80.         .clk(Clock),
  81.         .reset_n(Clear_b),
  82.         .q(q[5])
  83.     );
  84.  
  85.     tflipflop t6(
  86.         .t(w6),
  87.         .clk(Clock),
  88.         .reset_n(Clear_b),
  89.         .q(q[6])
  90.     );
  91.  
  92.     tflipflop t7(
  93.         .t(w7),
  94.         .clk(Clock),
  95.         .reset_n(Clear_b),
  96.         .q(q[7])
  97.     );
  98. endmodule
  99.  
  100. module tflipflop(t, clk, reset_n, q);
  101.     input t, clk, reset_n;
  102.     output reg q;
  103.  
  104.     always @ (posedge clk, negedge reset_n)
  105.     begin
  106.         if (reset_n == 1'b0)
  107.             q <= 1'b0;
  108.         else if (t == 1'b1)
  109.             q <= ~q;
  110.  
  111.     end
  112. endmodule
  113.  
  114. module seven_seg_decoder(a,b);
  115.     input [3:0]b;
  116.     output [6:0]a;
  117.    
  118.     assign a[0] = (~b[3]&b[2]&~b[1]&~b[0])|(~b[3]&~b[2]&~b[1]&b[0])|(b[3]&b[2]&~b[1]&b[0])|(b[3]&~b[2]&b[1]&b[0]);
  119.     assign a[1] = (~b[3]&b[2]&~b[1]&b[0])|(b[3]&b[1]&b[0])|(b[2]&b[1]&~b[0])|(b[3]&b[2]&~b[0]);
  120.     assign a[2] = (~b[3]&~b[2]&b[1]&~b[0])|(b[3]&b[2]&b[1])|(b[3]&b[2]&~b[0]);
  121.     assign a[3] = (~b[3]&b[2]&~b[1]&~b[0])|(~b[2]&~b[1]&b[0])|(b[2]&b[1]&b[0])|(b[3]&~b[2]&b[1]&~b[0]);
  122.     assign a[4] = (~b[3]&b[2]&~b[1])|(~b[2]&~b[1]&b[0])|(~b[3]&b[0]);
  123.     assign a[5] = (b[3]&b[2]&~b[1]&b[0])|(~b[3]&~b[2]&b[0])|(~b[3]&b[1]&b[0])|(~b[3]&~b[2]&b[1]);
  124.     assign a[6] = (~b[3]&~b[2]&~b[1])|(b[3]&b[2]&~b[1]&~b[0])|(~b[3]&b[2]&b[1]&b[0]);
  125.    
  126. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement