Advertisement
Sb93

Lab5

Nov 14th, 2024
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // SCROLL.V
  2.  
  3. module scroll(
  4.     input clk,rst,
  5.     output [15:0] display
  6.     );
  7.  
  8.     reg [3:0] count;
  9.  
  10.     always @(posedge clk)
  11.     begin
  12.          if (rst)
  13.              count <= 4'b0000;
  14.          else
  15.              count <= count + 1'b1;
  16.     end
  17.  
  18.     wire [3:0] a,b,c,d;
  19.  
  20.     assign a = count;
  21.     assign b = count+1;
  22.     assign c = count+2;
  23.     assign d = count+3;
  24.  
  25.     wire [3:0] seg_a, seg_b, seg_c, seg_d;
  26.  
  27.     convert conv_a (.in(a),.out(seg_a));
  28.     convert conv_b (.in(b),.out(seg_b));
  29.     convert conv_c (.in(c),.out(seg_c));
  30.     convert conv_d (.in(d),.out(seg_d));
  31.  
  32.     assign display = {seg_a,seg_b,seg_c,seg_d};
  33.  
  34. endmodule
  35.  
  36.  
  37.  
  38. // CONVERT.V
  39.  
  40. module convert (
  41.     input [3:0] in,
  42.     output [3:0] out
  43.     );
  44.    
  45.     always @ *
  46.         case (in)
  47.             4'd0 : out = 4'hA;
  48.             4'd1 : out = 4'hA;
  49.             4'd2 : out = 4'hC;
  50.             4'd3 : out = 4'h0;
  51.             4'd4 : out = 4'hF;
  52.             4'd5 : out = 4'hF;
  53.             4'd6 : out = 4'hE;
  54.             4'd7 : out = 4'hE;
  55.             4'd8 : out = 4'hA;
  56.             4'd9 : out = 4'h1;
  57.             4'd10 : out = 4'h5;
  58.             4'd11 : out = 4'hA;
  59.             4'd12 : out = 4'h9;
  60.             4'd13 : out = 4'h0;
  61.             4'd14 : out = 4'h0;
  62.             4'd15 : out = 4'hD;
  63.             default: out = 4'hA;
  64.         endcase
  65.  
  66. endmodule
  67.  
  68.  
  69.  
  70. // LAB5_TOP.V
  71.  
  72. module Lab5_top(input clk, rst, sel, output [6:0] seg_L, output [3:0] anode_L);
  73.  
  74.     // declare necessary wires here
  75.     wire [15:0] value;
  76.     wire s_clk;
  77.  
  78.     // instantiate modules here
  79.     scroll uut1 (.clk(s_clk),.rst(rst),.display(value));
  80.     slow_clkgen uut2 (.clk(clk),.rst(rst),clk_out(s_clk));
  81.     seg7_driver uut3 (.clk(clk), .rst(rst), .sel(sel), .value(value), .anode_d(4'b0000), .seg_L(seg_L), .anode_L(anode_L));
  82.  
  83. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement