added verilog. update info.yaml
diff --git a/info.yaml b/info.yaml
index baccf02..10be67a 100644
--- a/info.yaml
+++ b/info.yaml
@@ -1,11 +1,10 @@
 --- 
 # TinyTapeout project information
 project:
-  wokwi_id:    344526633802138196        # If using wokwi, set this to your project's ID
-#  source_files:        # If using an HDL, set wokwi_id as 0 and uncomment and list your source files here
-#    - verilog/rtl/counter.v
-#    - verilog/rtl/decoder.v
-#  top_module:  "seven_segment_seconds"      # put the name of your top module here, make it unique by prepending your github username
+  wokwi_id:    0        # If using wokwi, set this to your project's ID
+  source_files:        # If using an HDL, set wokwi_id as 0 and uncomment and list your source files here
+    - verilog/rtl/vga_clock.v
+  top_module:  "thorkn_vgaclock"      # put the name of your top module here, make it unique by prepending your github username
 
 # As everyone will have access to all designs, try to make it easy for someone new to your design to know what
 # it does and how to operate it.
@@ -21,7 +20,7 @@
   how_it_works: ""      # Longer description of how the project works
   how_to_test:  ""      # Instructions on how someone could test your project, include things like what buttons do what and how to set the clock if needed
   external_hw:  ""      # Describe any external hardware needed
-  language:     "wokwi" # other examples include Verilog, Amaranth, VHDL, etc
+  language:     "Verilog" # other examples include Verilog, Amaranth, VHDL, etc
   doc_link:     ""      # URL to longer form documentation, eg the README.md in your repository
   clock_hz:     0       # Clock frequency in Hz (if required) we are expecting max clock frequency to be ~6khz. Provided on input 0.
   picture:      ""      # relative path to a picture in your repository
@@ -35,12 +34,12 @@
     - none
     - none
   outputs:
-    - segment a         # a description of what the outputs do
-    - segment b
-    - segment c
-    - segment d
-    - segment e
-    - segment f
-    - segment g
+    - io_h_sync         # a description of what the outputs do
+    - io_v_sync
+    - io_r
+    - io_g
+    - io_b
+    - none
+    - none
     - none
 
diff --git a/verilog/rtl/vga_clock.v b/verilog/rtl/vga_clock.v
new file mode 100644
index 0000000..8707136
--- /dev/null
+++ b/verilog/rtl/vga_clock.v
@@ -0,0 +1,486 @@
+// Generator : SpinalHDL v1.8.0    git head : 4e3563a282582b41f4eaafc503787757251d23ea
+// Component : VgaClock
+
+`timescale 1ns/1ps
+
+module thorkn_vgaclock (
+  output              io_h_sync,
+  output              io_v_sync,
+  output              io_r,
+  output              io_g,
+  output              io_b,
+  input               clk,
+  input               reset
+);
+
+  wire                vga_sync_gen_io_h_sync;
+  wire                vga_sync_gen_io_v_sync;
+  wire                vga_sync_gen_io_activevideo;
+  wire       [9:0]    vga_sync_gen_io_x;
+  wire       [9:0]    vga_sync_gen_io_y;
+  wire                vga_content_io_r;
+  wire                vga_content_io_g;
+  wire                vga_content_io_b;
+
+  VgaSyncGen vga_sync_gen (
+    .io_h_sync      (vga_sync_gen_io_h_sync     ), //o
+    .io_v_sync      (vga_sync_gen_io_v_sync     ), //o
+    .io_activevideo (vga_sync_gen_io_activevideo), //o
+    .io_x           (vga_sync_gen_io_x[9:0]     ), //o
+    .io_y           (vga_sync_gen_io_y[9:0]     ), //o
+    .clk            (clk                        ), //i
+    .reset          (reset                      )  //i
+  );
+  VgaContent vga_content (
+    .io_x           (vga_sync_gen_io_x[9:0]     ), //i
+    .io_y           (vga_sync_gen_io_y[9:0]     ), //i
+    .io_activevideo (vga_sync_gen_io_activevideo), //i
+    .io_r           (vga_content_io_r           ), //o
+    .io_g           (vga_content_io_g           ), //o
+    .io_b           (vga_content_io_b           ), //o
+    .clk            (clk                        ), //i
+    .reset          (reset                      )  //i
+  );
+  assign io_h_sync = vga_sync_gen_io_h_sync; // @[VgaClock.scala 20:15]
+  assign io_v_sync = vga_sync_gen_io_v_sync; // @[VgaClock.scala 21:15]
+  assign io_r = vga_content_io_r; // @[VgaClock.scala 27:10]
+  assign io_g = vga_content_io_g; // @[VgaClock.scala 28:10]
+  assign io_b = vga_content_io_b; // @[VgaClock.scala 29:10]
+
+endmodule
+
+module VgaContent (
+  input      [9:0]    io_x,
+  input      [9:0]    io_y,
+  input               io_activevideo,
+  output reg          io_r,
+  output reg          io_g,
+  output reg          io_b,
+  input               clk,
+  input               reset
+);
+
+  wire       [5:0]    clock_counters_io_seconds;
+  wire       [5:0]    clock_counters_io_minutes;
+  wire       [3:0]    clock_counters_io_hours;
+  wire                _zz_when_VgaContent_l33;
+  wire       [9:0]    _zz_when_VgaContent_l33_1;
+  wire       [9:0]    _zz_when_VgaContent_l33_2;
+  wire                _zz_when_VgaContent_l33_3;
+  wire       [9:0]    _zz_when_VgaContent_l33_4;
+  wire       [9:0]    _zz_when_VgaContent_l39;
+  wire       [8:0]    _zz_when_VgaContent_l39_1;
+  wire       [8:0]    _zz_when_VgaContent_l39_2;
+  wire       [9:0]    _zz_when_VgaContent_l45;
+  wire       [8:0]    _zz_when_VgaContent_l45_1;
+  wire       [8:0]    _zz_when_VgaContent_l45_2;
+  wire       [9:0]    _zz_when_VgaContent_l51;
+  wire       [8:0]    _zz_when_VgaContent_l51_1;
+  wire       [8:0]    _zz_when_VgaContent_l51_2;
+  wire                when_VgaContent_l22;
+  wire                when_VgaContent_l33;
+  wire                when_VgaContent_l39;
+  wire                when_VgaContent_l45;
+  wire                when_VgaContent_l51;
+
+  assign _zz_when_VgaContent_l39_1 = (9'h1a4 - _zz_when_VgaContent_l39_2);
+  assign _zz_when_VgaContent_l39 = {1'd0, _zz_when_VgaContent_l39_1};
+  assign _zz_when_VgaContent_l39_2 = (clock_counters_io_seconds * 3'b110);
+  assign _zz_when_VgaContent_l45_1 = (9'h1a4 - _zz_when_VgaContent_l45_2);
+  assign _zz_when_VgaContent_l45 = {1'd0, _zz_when_VgaContent_l45_1};
+  assign _zz_when_VgaContent_l45_2 = (clock_counters_io_minutes * 3'b110);
+  assign _zz_when_VgaContent_l51_1 = (9'h1a4 - _zz_when_VgaContent_l51_2);
+  assign _zz_when_VgaContent_l51 = {1'd0, _zz_when_VgaContent_l51_1};
+  assign _zz_when_VgaContent_l51_2 = (clock_counters_io_hours * 5'h1e);
+  assign _zz_when_VgaContent_l33 = (((((((((((io_y == _zz_when_VgaContent_l33_1) || (io_y == _zz_when_VgaContent_l33_2)) || (io_y == 10'h05a)) || (io_y == 10'h078)) || (io_y == 10'h096)) || (io_y == 10'h097)) || (io_y == 10'h0b4)) || (io_y == 10'h0d2)) || (io_y == 10'h0f0)) || (io_y == 10'h0f1)) || (io_y == 10'h10e));
+  assign _zz_when_VgaContent_l33_3 = (io_y == 10'h12c);
+  assign _zz_when_VgaContent_l33_4 = 10'h14a;
+  assign _zz_when_VgaContent_l33_1 = 10'h03c;
+  assign _zz_when_VgaContent_l33_2 = 10'h03d;
+  ClockCounters clock_counters (
+    .io_seconds (clock_counters_io_seconds[5:0]), //o
+    .io_minutes (clock_counters_io_minutes[5:0]), //o
+    .io_hours   (clock_counters_io_hours[3:0]  ), //o
+    .clk        (clk                           ), //i
+    .reset      (reset                         )  //i
+  );
+  assign when_VgaContent_l22 = ((((io_x < 10'h004) || (10'h27b < io_x)) || (io_y < 10'h004)) || (10'h1db < io_y)); // @[BaseType.scala 305:24]
+  always @(*) begin
+    if(io_activevideo) begin
+      if(when_VgaContent_l22) begin
+        io_r = 1'b0; // @[VgaContent.scala 23:18]
+      end else begin
+        if(when_VgaContent_l33) begin
+          io_r = 1'b1; // @[VgaContent.scala 34:18]
+        end else begin
+          if(when_VgaContent_l39) begin
+            io_r = 1'b0; // @[VgaContent.scala 40:18]
+          end else begin
+            if(when_VgaContent_l45) begin
+              io_r = 1'b0; // @[VgaContent.scala 46:18]
+            end else begin
+              if(when_VgaContent_l51) begin
+                io_r = 1'b0; // @[VgaContent.scala 52:18]
+              end else begin
+                io_r = 1'b0; // @[VgaContent.scala 57:18]
+              end
+            end
+          end
+        end
+      end
+    end else begin
+      io_r = 1'b0; // @[VgaContent.scala 62:14]
+    end
+  end
+
+  always @(*) begin
+    if(io_activevideo) begin
+      if(when_VgaContent_l22) begin
+        io_g = 1'b0; // @[VgaContent.scala 24:18]
+      end else begin
+        if(when_VgaContent_l33) begin
+          io_g = 1'b0; // @[VgaContent.scala 35:18]
+        end else begin
+          if(when_VgaContent_l39) begin
+            io_g = 1'b1; // @[VgaContent.scala 41:18]
+          end else begin
+            if(when_VgaContent_l45) begin
+              io_g = 1'b1; // @[VgaContent.scala 47:18]
+            end else begin
+              if(when_VgaContent_l51) begin
+                io_g = 1'b1; // @[VgaContent.scala 53:18]
+              end else begin
+                io_g = 1'b0; // @[VgaContent.scala 58:18]
+              end
+            end
+          end
+        end
+      end
+    end else begin
+      io_g = 1'b0; // @[VgaContent.scala 63:14]
+    end
+  end
+
+  always @(*) begin
+    if(io_activevideo) begin
+      if(when_VgaContent_l22) begin
+        io_b = 1'b1; // @[VgaContent.scala 25:18]
+      end else begin
+        if(when_VgaContent_l33) begin
+          io_b = 1'b0; // @[VgaContent.scala 36:18]
+        end else begin
+          if(when_VgaContent_l39) begin
+            io_b = 1'b0; // @[VgaContent.scala 42:18]
+          end else begin
+            if(when_VgaContent_l45) begin
+              io_b = 1'b0; // @[VgaContent.scala 48:18]
+            end else begin
+              if(when_VgaContent_l51) begin
+                io_b = 1'b0; // @[VgaContent.scala 54:18]
+              end else begin
+                io_b = 1'b0; // @[VgaContent.scala 59:18]
+              end
+            end
+          end
+        end
+      end
+    end else begin
+      io_b = 1'b0; // @[VgaContent.scala 64:14]
+    end
+  end
+
+  assign when_VgaContent_l33 = (((10'h03c <= io_x) && (io_x < 10'h244)) && (((((((_zz_when_VgaContent_l33 || _zz_when_VgaContent_l33_3) || (io_y == _zz_when_VgaContent_l33_4)) || (io_y == 10'h14b)) || (io_y == 10'h168)) || (io_y == 10'h186)) || (io_y == 10'h1a4)) || (io_y == 10'h1a5))); // @[BaseType.scala 305:24]
+  assign when_VgaContent_l39 = ((((10'h1a4 <= io_x) && (io_x < 10'h208)) && (io_y <= 10'h1a4)) && (_zz_when_VgaContent_l39 <= io_y)); // @[BaseType.scala 305:24]
+  assign when_VgaContent_l45 = ((((10'h10e <= io_x) && (io_x < 10'h172)) && (io_y <= 10'h1a4)) && (_zz_when_VgaContent_l45 <= io_y)); // @[BaseType.scala 305:24]
+  assign when_VgaContent_l51 = ((((10'h078 <= io_x) && (io_x < 10'h0dc)) && (io_y <= 10'h1a4)) && (_zz_when_VgaContent_l51 <= io_y)); // @[BaseType.scala 305:24]
+
+endmodule
+
+module VgaSyncGen (
+  output reg          io_h_sync,
+  output reg          io_v_sync,
+  output reg          io_activevideo,
+  output reg [9:0]    io_x,
+  output reg [9:0]    io_y,
+  input               clk,
+  input               reset
+);
+
+  wire       [9:0]    _zz_h_counter_valueNext;
+  wire       [0:0]    _zz_h_counter_valueNext_1;
+  wire       [9:0]    _zz_v_counter_valueNext;
+  wire       [0:0]    _zz_v_counter_valueNext_1;
+  reg                 h_counter_willIncrement;
+  wire                h_counter_willClear;
+  reg        [9:0]    h_counter_valueNext;
+  reg        [9:0]    h_counter_value;
+  wire                h_counter_willOverflowIfInc;
+  wire                h_counter_willOverflow;
+  reg                 v_counter_willIncrement;
+  wire                v_counter_willClear;
+  reg        [9:0]    v_counter_valueNext;
+  reg        [9:0]    v_counter_value;
+  wire                v_counter_willOverflowIfInc;
+  wire                v_counter_willOverflow;
+  wire                when_VgaSyncGen_l29;
+  wire                when_VgaSyncGen_l36;
+  wire                when_VgaSyncGen_l44;
+  function  zz_h_counter_willIncrement(input dummy);
+    begin
+      zz_h_counter_willIncrement = 1'b0; // @[Utils.scala 536:23]
+      zz_h_counter_willIncrement = 1'b1; // @[Utils.scala 540:41]
+    end
+  endfunction
+  wire  _zz_1;
+
+  assign _zz_h_counter_valueNext_1 = h_counter_willIncrement;
+  assign _zz_h_counter_valueNext = {9'd0, _zz_h_counter_valueNext_1};
+  assign _zz_v_counter_valueNext_1 = v_counter_willIncrement;
+  assign _zz_v_counter_valueNext = {9'd0, _zz_v_counter_valueNext_1};
+  assign _zz_1 = zz_h_counter_willIncrement(1'b0);
+  always @(*) h_counter_willIncrement = _zz_1;
+  assign h_counter_willClear = 1'b0; // @[Utils.scala 537:19]
+  assign h_counter_willOverflowIfInc = (h_counter_value == 10'h31f); // @[BaseType.scala 305:24]
+  assign h_counter_willOverflow = (h_counter_willOverflowIfInc && h_counter_willIncrement); // @[BaseType.scala 305:24]
+  always @(*) begin
+    if(h_counter_willOverflow) begin
+      h_counter_valueNext = 10'h0; // @[Utils.scala 552:17]
+    end else begin
+      h_counter_valueNext = (h_counter_value + _zz_h_counter_valueNext); // @[Utils.scala 554:17]
+    end
+    if(h_counter_willClear) begin
+      h_counter_valueNext = 10'h0; // @[Utils.scala 558:15]
+    end
+  end
+
+  always @(*) begin
+    v_counter_willIncrement = 1'b0; // @[Utils.scala 536:23]
+    if(h_counter_willOverflow) begin
+      v_counter_willIncrement = 1'b1; // @[Utils.scala 540:41]
+    end
+  end
+
+  assign v_counter_willClear = 1'b0; // @[Utils.scala 537:19]
+  assign v_counter_willOverflowIfInc = (v_counter_value == 10'h20b); // @[BaseType.scala 305:24]
+  assign v_counter_willOverflow = (v_counter_willOverflowIfInc && v_counter_willIncrement); // @[BaseType.scala 305:24]
+  always @(*) begin
+    if(v_counter_willOverflow) begin
+      v_counter_valueNext = 10'h0; // @[Utils.scala 552:17]
+    end else begin
+      v_counter_valueNext = (v_counter_value + _zz_v_counter_valueNext); // @[Utils.scala 554:17]
+    end
+    if(v_counter_willClear) begin
+      v_counter_valueNext = 10'h0; // @[Utils.scala 558:15]
+    end
+  end
+
+  assign when_VgaSyncGen_l29 = ((10'h010 <= h_counter_value) && (h_counter_value <= 10'h070)); // @[BaseType.scala 305:24]
+  always @(*) begin
+    if(when_VgaSyncGen_l29) begin
+      io_h_sync = 1'b0; // @[VgaSyncGen.scala 30:19]
+    end else begin
+      io_h_sync = 1'b1; // @[VgaSyncGen.scala 32:19]
+    end
+  end
+
+  assign when_VgaSyncGen_l36 = ((10'h00b <= v_counter_value) && (v_counter_value <= 10'h00d)); // @[BaseType.scala 305:24]
+  always @(*) begin
+    if(when_VgaSyncGen_l36) begin
+      io_v_sync = 1'b0; // @[VgaSyncGen.scala 37:19]
+    end else begin
+      io_v_sync = 1'b1; // @[VgaSyncGen.scala 39:19]
+    end
+  end
+
+  assign when_VgaSyncGen_l44 = ((10'h0a0 <= h_counter_value) && (10'h02c <= v_counter_value)); // @[BaseType.scala 305:24]
+  always @(*) begin
+    if(when_VgaSyncGen_l44) begin
+      io_activevideo = 1'b1; // @[VgaSyncGen.scala 45:24]
+    end else begin
+      io_activevideo = 1'b0; // @[VgaSyncGen.scala 49:24]
+    end
+  end
+
+  always @(*) begin
+    if(when_VgaSyncGen_l44) begin
+      io_x = (h_counter_value - 10'h0a0); // @[VgaSyncGen.scala 46:14]
+    end else begin
+      io_x = 10'h0; // @[VgaSyncGen.scala 50:14]
+    end
+  end
+
+  always @(*) begin
+    if(when_VgaSyncGen_l44) begin
+      io_y = (v_counter_value - 10'h02c); // @[VgaSyncGen.scala 47:14]
+    end else begin
+      io_y = 10'h0; // @[VgaSyncGen.scala 51:14]
+    end
+  end
+
+  always @(posedge clk or posedge reset) begin
+    if(reset) begin
+      h_counter_value <= 10'h0; // @[Data.scala 400:33]
+      v_counter_value <= 10'h0; // @[Data.scala 400:33]
+    end else begin
+      h_counter_value <= h_counter_valueNext; // @[Reg.scala 39:30]
+      v_counter_value <= v_counter_valueNext; // @[Reg.scala 39:30]
+    end
+  end
+
+
+endmodule
+
+module ClockCounters (
+  output     [5:0]    io_seconds,
+  output     [5:0]    io_minutes,
+  output     [3:0]    io_hours,
+  input               clk,
+  input               reset
+);
+
+  wire       [24:0]   _zz_c_counter_valueNext;
+  wire       [0:0]    _zz_c_counter_valueNext_1;
+  wire       [5:0]    _zz_s_counter_valueNext;
+  wire       [0:0]    _zz_s_counter_valueNext_1;
+  wire       [5:0]    _zz_m_counter_valueNext;
+  wire       [0:0]    _zz_m_counter_valueNext_1;
+  wire       [3:0]    _zz_h_counter_valueNext;
+  wire       [0:0]    _zz_h_counter_valueNext_1;
+  reg                 c_counter_willIncrement;
+  wire                c_counter_willClear;
+  reg        [24:0]   c_counter_valueNext;
+  reg        [24:0]   c_counter_value;
+  wire                c_counter_willOverflowIfInc;
+  wire                c_counter_willOverflow;
+  reg                 s_counter_willIncrement;
+  wire                s_counter_willClear;
+  reg        [5:0]    s_counter_valueNext;
+  reg        [5:0]    s_counter_value;
+  wire                s_counter_willOverflowIfInc;
+  wire                s_counter_willOverflow;
+  reg                 m_counter_willIncrement;
+  wire                m_counter_willClear;
+  reg        [5:0]    m_counter_valueNext;
+  reg        [5:0]    m_counter_value;
+  wire                m_counter_willOverflowIfInc;
+  wire                m_counter_willOverflow;
+  reg                 h_counter_willIncrement;
+  wire                h_counter_willClear;
+  reg        [3:0]    h_counter_valueNext;
+  reg        [3:0]    h_counter_value;
+  wire                h_counter_willOverflowIfInc;
+  wire                h_counter_willOverflow;
+  function  zz_c_counter_willIncrement(input dummy);
+    begin
+      zz_c_counter_willIncrement = 1'b0; // @[Utils.scala 536:23]
+      zz_c_counter_willIncrement = 1'b1; // @[Utils.scala 540:41]
+    end
+  endfunction
+  wire  _zz_1;
+
+  assign _zz_c_counter_valueNext_1 = c_counter_willIncrement;
+  assign _zz_c_counter_valueNext = {24'd0, _zz_c_counter_valueNext_1};
+  assign _zz_s_counter_valueNext_1 = s_counter_willIncrement;
+  assign _zz_s_counter_valueNext = {5'd0, _zz_s_counter_valueNext_1};
+  assign _zz_m_counter_valueNext_1 = m_counter_willIncrement;
+  assign _zz_m_counter_valueNext = {5'd0, _zz_m_counter_valueNext_1};
+  assign _zz_h_counter_valueNext_1 = h_counter_willIncrement;
+  assign _zz_h_counter_valueNext = {3'd0, _zz_h_counter_valueNext_1};
+  assign _zz_1 = zz_c_counter_willIncrement(1'b0);
+  always @(*) c_counter_willIncrement = _zz_1;
+  assign c_counter_willClear = 1'b0; // @[Utils.scala 537:19]
+  assign c_counter_willOverflowIfInc = (c_counter_value == 25'h17d783f); // @[BaseType.scala 305:24]
+  assign c_counter_willOverflow = (c_counter_willOverflowIfInc && c_counter_willIncrement); // @[BaseType.scala 305:24]
+  always @(*) begin
+    if(c_counter_willOverflow) begin
+      c_counter_valueNext = 25'h0; // @[Utils.scala 552:17]
+    end else begin
+      c_counter_valueNext = (c_counter_value + _zz_c_counter_valueNext); // @[Utils.scala 554:17]
+    end
+    if(c_counter_willClear) begin
+      c_counter_valueNext = 25'h0; // @[Utils.scala 558:15]
+    end
+  end
+
+  always @(*) begin
+    s_counter_willIncrement = 1'b0; // @[Utils.scala 536:23]
+    if(c_counter_willOverflow) begin
+      s_counter_willIncrement = 1'b1; // @[Utils.scala 540:41]
+    end
+  end
+
+  assign s_counter_willClear = 1'b0; // @[Utils.scala 537:19]
+  assign s_counter_willOverflowIfInc = (s_counter_value == 6'h3b); // @[BaseType.scala 305:24]
+  assign s_counter_willOverflow = (s_counter_willOverflowIfInc && s_counter_willIncrement); // @[BaseType.scala 305:24]
+  always @(*) begin
+    if(s_counter_willOverflow) begin
+      s_counter_valueNext = 6'h0; // @[Utils.scala 552:17]
+    end else begin
+      s_counter_valueNext = (s_counter_value + _zz_s_counter_valueNext); // @[Utils.scala 554:17]
+    end
+    if(s_counter_willClear) begin
+      s_counter_valueNext = 6'h0; // @[Utils.scala 558:15]
+    end
+  end
+
+  always @(*) begin
+    m_counter_willIncrement = 1'b0; // @[Utils.scala 536:23]
+    if(s_counter_willOverflow) begin
+      m_counter_willIncrement = 1'b1; // @[Utils.scala 540:41]
+    end
+  end
+
+  assign m_counter_willClear = 1'b0; // @[Utils.scala 537:19]
+  assign m_counter_willOverflowIfInc = (m_counter_value == 6'h3b); // @[BaseType.scala 305:24]
+  assign m_counter_willOverflow = (m_counter_willOverflowIfInc && m_counter_willIncrement); // @[BaseType.scala 305:24]
+  always @(*) begin
+    if(m_counter_willOverflow) begin
+      m_counter_valueNext = 6'h0; // @[Utils.scala 552:17]
+    end else begin
+      m_counter_valueNext = (m_counter_value + _zz_m_counter_valueNext); // @[Utils.scala 554:17]
+    end
+    if(m_counter_willClear) begin
+      m_counter_valueNext = 6'h0; // @[Utils.scala 558:15]
+    end
+  end
+
+  always @(*) begin
+    h_counter_willIncrement = 1'b0; // @[Utils.scala 536:23]
+    if(m_counter_willOverflow) begin
+      h_counter_willIncrement = 1'b1; // @[Utils.scala 540:41]
+    end
+  end
+
+  assign h_counter_willClear = 1'b0; // @[Utils.scala 537:19]
+  assign h_counter_willOverflowIfInc = (h_counter_value == 4'b1011); // @[BaseType.scala 305:24]
+  assign h_counter_willOverflow = (h_counter_willOverflowIfInc && h_counter_willIncrement); // @[BaseType.scala 305:24]
+  always @(*) begin
+    if(h_counter_willOverflow) begin
+      h_counter_valueNext = 4'b0000; // @[Utils.scala 552:17]
+    end else begin
+      h_counter_valueNext = (h_counter_value + _zz_h_counter_valueNext); // @[Utils.scala 554:17]
+    end
+    if(h_counter_willClear) begin
+      h_counter_valueNext = 4'b0000; // @[Utils.scala 558:15]
+    end
+  end
+
+  assign io_seconds = s_counter_value; // @[ClockCounters.scala 33:16]
+  assign io_minutes = m_counter_value; // @[ClockCounters.scala 34:16]
+  assign io_hours = h_counter_value; // @[ClockCounters.scala 35:16]
+  always @(posedge clk or posedge reset) begin
+    if(reset) begin
+      c_counter_value <= 25'h0; // @[Data.scala 400:33]
+      s_counter_value <= 6'h0; // @[Data.scala 400:33]
+      m_counter_value <= 6'h0; // @[Data.scala 400:33]
+      h_counter_value <= 4'b0000; // @[Data.scala 400:33]
+    end else begin
+      c_counter_value <= c_counter_valueNext; // @[Reg.scala 39:30]
+      s_counter_value <= s_counter_valueNext; // @[Reg.scala 39:30]
+      m_counter_value <= m_counter_valueNext; // @[Reg.scala 39:30]
+      h_counter_value <= h_counter_valueNext; // @[Reg.scala 39:30]
+    end
+  end
+
+
+endmodule