Advertisement
Krystian102

Untitled

Apr 2nd, 2020
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module zad4(
  2.     input CLOCK_50,
  3.     output [0:6] HEX0, HEX1, HEX2, HEX3);
  4.    
  5.     turn_word(CLOCK_50, HEX0, HEX1,HEX2,HEX3);
  6.    
  7. endmodule
  8.  
  9. module turn_word(
  10.     input clk,
  11.     output [0:6] h0, h1, h2, h3);
  12.    
  13.     wire left, right;
  14.     assign left=1;
  15.     assign right=0;
  16.    
  17.     reg [1:0] combination;
  18.     wire clockTact;
  19.    
  20.     display_word(combination,h0,h1,h2,h3);
  21.     counter_to_make_delay(clk,1,clockTact);
  22.    
  23.     always@(posedge clockTact)
  24.         begin
  25.             if(left==1)
  26.                 begin
  27.                     if(combination==2'b00)
  28.                         combination<=3;
  29.                     else
  30.                         combination<=combination-1;
  31.                 end
  32.             if(right==1)
  33.                 begin
  34.                     if(combination==2'b11)
  35.                         combination<=0;
  36.                     else
  37.                         combination<=combination+1;
  38.                 end
  39.         end
  40.    
  41. endmodule
  42.  
  43. module counter_to_make_delay(
  44.     input clk, aclr,
  45.     output reg clockTact);
  46.    
  47.     reg [25:0] i;
  48.    
  49.     always@(posedge clk, negedge aclr)
  50.         if(!aclr)
  51.             begin
  52.                 i<=0;
  53.                 clockTact<=0;
  54.             end
  55.         else
  56.             begin
  57.                 if(i==3)
  58.                     begin
  59.                         i<=0;
  60.                         clockTact<=1;
  61.                     end
  62.                 else
  63.                     begin
  64.                         i<=i+1;
  65.                         clockTact<=0;
  66.                     end
  67.             end
  68.    
  69. endmodule
  70.  
  71. module display_word(
  72.     input [1:0] combination,
  73.     output [0:6] h0, h1, h2, h3);
  74.    
  75.     reg [1:0] char0 = 2'b00; //spacja
  76.     reg [1:0] char1 = 2'b01; // 1
  77.     reg [1:0] char2 = 2'b10; // E
  78.     reg [1:0] char3 = 2'b11; // d
  79.    
  80.     decoder_hex(char0,h0);
  81.     decoder_hex(char1,h1);
  82.     decoder_hex(char2,h2);
  83.     decoder_hex(char3,h3);
  84.    
  85.     always@(*)
  86.         case(combination)
  87.             2'b00:
  88.                 begin
  89.                     char0<=2'b00;
  90.                     char1<=2'b01;
  91.                     char2<=2'b10;
  92.                     char3<=2'b11;
  93.                 end
  94.             2'b01:
  95.                 begin
  96.                     char0<=2'b01;
  97.                     char1<=2'b10;
  98.                     char2<=2'b11;
  99.                     char3<=2'b00;
  100.                 end
  101.             2'b10:
  102.                 begin
  103.                     char0<=2'b10;
  104.                     char1<=2'b11;
  105.                     char2<=2'b00;
  106.                     char3<=2'b01;
  107.                 end
  108.             2'b11:
  109.                 begin
  110.                     char0<=2'b11;
  111.                     char1<=2'b00;
  112.                     char2<=2'b01;
  113.                     char3<=2'b10;
  114.                 end
  115.             endcase
  116.    
  117. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement