bsp3: erster versuch
[dide_16.git] / bsp3 / Angabe / vga_control_arc.vhd
index 0c4425b2e4d4ed6eae21ea1fa448f18611263741..0b33ff935e325f8197c80cf4fe2b43b66aa4b9ec 100644 (file)
@@ -40,12 +40,46 @@ architecture behav of vga_control is
   attribute syn_preserve of behav : architecture is true;
 
 
-
-begin  
-    
+  DRAW_SQUARE_syn: process(clk, reset)
+  begin
+    if (reset = RES_ACT) then   -- draw black screen upon reset
       r <= COLR_OFF;
       g <= COLR_OFF;
       b <= COLR_OFF;
+    elsif (clk'event and clk = '1') then     -- synchronous capture
+      r <= r_next;
+      g <= g_next;
+      b <= b_next;
+    end if;
+  end process;
+
+
+  DRAW_SQUARE_next: process (column_counter, v_enable, h_enable)
+  begin
+    if v_enable = ENABLE and h_enable = ENABLE then        
+      if (column_counter >= X_MIN and column_counter < X2_MIN)    -- if pixel within the rectangle borders
+        r_next <= COLR_OFF;
+        g_next <= COLR_OFF;
+        b_next <= COLR_ON;
+      elsif (column_counter >= X2_MIN and column_counter < X3_MIN)    -- if pixel within the rectangle borders
+        r_next <= COLR_OFF;
+        g_next <= COLR_ON;
+        b_next <= COLR_ON;
+         elsif (column_counter >= X3_MIN and column_counter < X_MAX)    -- if pixel within the rectangle borders
+        r_next <= COLR_ON;
+        g_next <= COLR_OFF;
+        b_next <= COLR_ON;
+      else                                                           -- if somewhere else on screen...
+        r_next <= COLR_OFF;
+        g_next <= COLR_OFF;                                          -- ... draw background color
+        b_next <= COLR_OFF;
+      end if;
+    else                                                             -- if out of screen...
+      r_next <= COLR_OFF;
+      g_next <= COLR_OFF;                                            -- ... do not activate any color
+      b_next <= COLR_OFF;                                            --     (black screen)
+    end if;
+  end process;
 
 end behav;