data/full_repos/permissive/519309743/circuito-parte3.v
data/verilator_xmls/8a286230-be0d-410d-8de8-e255abe94701.xml
module contador4b(clk, reset, q, qe, qee, qs, qes, qees, a1, b1, c1, d1, e1, f1, g1, a2, b2, c2, d2, e2, f2, g2, a3, b3, c3, d3, e3, f3, g3);

  input clk;
  input reset;
 


  output reg[3:0] q;
  output reg[3:0] qe;
  output reg[3:0] qee;
  output reg[3:0] qs;
  output reg[3:0] qes;
  output reg[3:0] qees;
  output a1, b1, c1, d1, e1, f1, g1;
  output a2, b2, c2, d2, e2, f2, g2;
  output a3, b3, c3, d3, e3, f3, g3;


  initial begin
    q = 4'b0000;
    qe = 4'b0000;
    qee = 4'b0000;
  end
  

  always @(posedge clk) begin


    if (reset) begin
      	q = 4'b0000;
    	qe = 4'b0000;
    	qee = 4'b0000;
    end
    

      q = q + 4'b0001;


      if (q == 4'b1010) begin
        q = 4'b0000;
        qe = qe + 4'b0001;
      end


      if (qe == 4'b1010) begin
        qe = 4'b0000;
        qee = qee + 4'b0001;
      end


      if (qee == 4'b1010) begin
        qee = 4'b0000;
      end   
  end
  


  always @(posedge clk) begin
    qs <= q;
    qes <= qe;
    qees <= qee;
  end
  
  


  
  assign {a1, b1, c1, d1, e1, f1, g1} = ( qs == 4'b0000 ) ? 7'b1111110 :
                                        ( qs == 4'b0001 ) ? 7'b0110000 :
                                        ( qs == 4'b0010 ) ? 7'b1101101 :
                                        ( qs == 4'b0011 ) ? 7'b1111001 :
                                        ( qs == 4'b0100 ) ? 7'b0110011 :
                                        ( qs == 4'b0101 ) ? 7'b1011011 :
                                        ( qs == 4'b0110 ) ? 7'b1011111 :
                                        ( qs == 4'b0111 ) ? 7'b1110000 :
                                        ( qs == 4'b1000 ) ? 7'b1111111 :
                                        ( qs == 4'b1001 ) ? 7'b1111011 :
													7'b1001111 ;
  

  
    assign {a2, b2, c2, d2, e2, f2, g2} = ( qes == 4'b0000 ) ? 7'b1111110 : 
                                          ( qes == 4'b0001 ) ? 7'b0110000 : 
                                          ( qes == 4'b0010 ) ? 7'b1101101 : 
                                          ( qes == 4'b0011 ) ? 7'b1111001 : 
                                          ( qes == 4'b0100 ) ? 7'b0110011 : 
                                          ( qes == 4'b0101 ) ? 7'b1011011 : 
                                          ( qes == 4'b0110 ) ? 7'b1011111 : 
                                          ( qes == 4'b0111 ) ? 7'b1110000 : 
                                          ( qes == 4'b1000 ) ? 7'b1111111 : 
                                          ( qes == 4'b1001 ) ? 7'b1111011 : 
													7'b1001111 ; 
  
    assign {a3, b3, c3, d3, e3, f3, g3} = ( qees == 4'b0000 ) ? 7'b1111110 : 
                                          ( qees == 4'b0001 ) ? 7'b0110000 : 
                                          ( qees == 4'b0010 ) ? 7'b1101101 : 
                                          ( qees == 4'b0011 ) ? 7'b1111001 : 
                                          ( qees == 4'b0100 ) ? 7'b0110011 : 
                                          ( qees == 4'b0101 ) ? 7'b1011011 : 
                                          ( qees == 4'b0110 ) ? 7'b1011111 : 
                                          ( qees == 4'b0111 ) ? 7'b1110000 : 
                                          ( qees == 4'b1000 ) ? 7'b1111111 : 
                                          ( qees == 4'b1001 ) ? 7'b1111011 : 
													7'b1001111 ; 
endmodule
module contador4b(clk, reset, q, qe, qee, qs, qes, qees, a1, b1, c1, d1, e1, f1, g1, a2, b2, c2, d2, e2, f2, g2, a3, b3, c3, d3, e3, f3, g3);


  input clk;
  input reset;
 


  output reg[3:0] q;
  output reg[3:0] qe;
  output reg[3:0] qee;
  output reg[3:0] qs;
  output reg[3:0] qes;
  output reg[3:0] qees;
  output a1, b1, c1, d1, e1, f1, g1;
  output a2, b2, c2, d2, e2, f2, g2;
  output a3, b3, c3, d3, e3, f3, g3;


  initial begin
    q = 4'b0000;
    qe = 4'b0000;
    qee = 4'b0000;
  end
  

  always @(posedge clk) begin


    if (reset) begin
      	q = 4'b0000;
    	qe = 4'b0000;
    	qee = 4'b0000;
    end
    

      q = q + 4'b0001;


      if (q == 4'b1010) begin
        q = 4'b0000;
        qe = qe + 4'b0001;
      end


      if (qe == 4'b1010) begin
        qe = 4'b0000;
        qee = qee + 4'b0001;
      end


      if (qee == 4'b1010) begin
        qee = 4'b0000;
      end   
  end
  


  always @(posedge clk) begin
    qs <= q;
    qes <= qe;
    qees <= qee;
  end
  
  


  
  assign {a1, b1, c1, d1, e1, f1, g1} = ( qs == 4'b0000 ) ? 7'b1111110 :
                                        ( qs == 4'b0001 ) ? 7'b0110000 :
                                        ( qs == 4'b0010 ) ? 7'b1101101 :
                                        ( qs == 4'b0011 ) ? 7'b1111001 :
                                        ( qs == 4'b0100 ) ? 7'b0110011 :
                                        ( qs == 4'b0101 ) ? 7'b1011011 :
                                        ( qs == 4'b0110 ) ? 7'b1011111 :
                                        ( qs == 4'b0111 ) ? 7'b1110000 :
                                        ( qs == 4'b1000 ) ? 7'b1111111 :
                                        ( qs == 4'b1001 ) ? 7'b1111011 :
													7'b1001111 ;
  

  
    assign {a2, b2, c2, d2, e2, f2, g2} = ( qes == 4'b0000 ) ? 7'b1111110 : 
                                          ( qes == 4'b0001 ) ? 7'b0110000 : 
                                          ( qes == 4'b0010 ) ? 7'b1101101 : 
                                          ( qes == 4'b0011 ) ? 7'b1111001 : 
                                          ( qes == 4'b0100 ) ? 7'b0110011 : 
                                          ( qes == 4'b0101 ) ? 7'b1011011 : 
                                          ( qes == 4'b0110 ) ? 7'b1011111 : 
                                          ( qes == 4'b0111 ) ? 7'b1110000 : 
                                          ( qes == 4'b1000 ) ? 7'b1111111 : 
                                          ( qes == 4'b1001 ) ? 7'b1111011 : 
													7'b1001111 ; 
  
    assign {a3, b3, c3, d3, e3, f3, g3} = ( qees == 4'b0000 ) ? 7'b1111110 : 
                                          ( qees == 4'b0001 ) ? 7'b0110000 : 
                                          ( qees == 4'b0010 ) ? 7'b1101101 : 
                                          ( qees == 4'b0011 ) ? 7'b1111001 : 
                                          ( qees == 4'b0100 ) ? 7'b0110011 : 
                                          ( qees == 4'b0101 ) ? 7'b1011011 : 
                                          ( qees == 4'b0110 ) ? 7'b1011111 : 
                                          ( qees == 4'b0111 ) ? 7'b1110000 : 
                                          ( qees == 4'b1000 ) ? 7'b1111111 : 
                                          ( qees == 4'b1001 ) ? 7'b1111011 : 
													7'b1001111 ; 
endmodule