DVI support -- initial demo works
[fleet.git] / ships / Dvi.ship
index 4541769..3d88be3 100644 (file)
@@ -25,30 +25,86 @@ percolate up:    dvi_xclk_p  1
 percolate up:    dvi_de      1
 percolate up:    dvi_reset_b 1
 
+percolate down:  gpio_sw_c    1
+
 percolate up:    gpio_led_c   1
 percolate up:    gpio_led_e   1
 percolate up:    gpio_led_n   1
 percolate up:    gpio_led_s   1
 percolate up:    gpio_led_w   1
 
+percolate up:    gpio_led_0   1
+percolate up:    gpio_led_1   1
+percolate up:    gpio_led_2   1
+percolate up:    gpio_led_3   1
 percolate up:    gpio_led_4   1
 percolate up:    gpio_led_5   1
 percolate up:    gpio_led_6   1
 percolate up:    gpio_led_7   1
 
-== TeX ==============================================================
+percolate down:  dvi_gpio1   1
+percolate up:    dvi_iic_scl 1
+percolate inout: dvi_iic_sda 1
 
-== Fleeterpreter ====================================================
-//percolate down:  dvi_gpio1   1
-//percolate up:    dvi_iic_scl 1
-//percolate inout: dvi_iic_sda 1
+== FPGA ==============================================================
 
-  public void service() { }
+wire [11:0] dvi_d;
+assign dvi_d0  = dvi_d[0];
+assign dvi_d1  = dvi_d[1];
+assign dvi_d2  = dvi_d[2];
+assign dvi_d3  = dvi_d[3];
+assign dvi_d4  = dvi_d[4];
+assign dvi_d5  = dvi_d[5];
+assign dvi_d6  = dvi_d[6];
+assign dvi_d7  = dvi_d[7];
+assign dvi_d8  = dvi_d[8];
+assign dvi_d9  = dvi_d[9];
+assign dvi_d10 = dvi_d[10];
+assign dvi_d11 = dvi_d[11];
+
+dvi_video_test my_dvi_video_test(
+  .CLK_P(clk),
+  .CLK_N(clk),
+  .I2C_SDA(dvi_iic_sda),
+  .I2C_SCL(dvi_iic_scl),
+
+  .DVI_D(dvi_d),
+  .DVI_H(dvi_h),
+  .DVI_V(dvi_v),
+  .DVI_DE(dvi_de),
+  .DVI_XCLK_N(dvi_xclk_n),
+  .DVI_XCLK_P(dvi_xclk_p),
+  .DVI_RESET_B(dvi_reset_b),
+
+  .VGA_PIXEL_CLK(1'b0),
+  .VGA_Y_GREEN(8'b0),
+  .VGA_CBCR_RED(8'b0),
+  .VGA_BLUE(8'b0),
+  .VGA_HSYNC(1'b0),
+  .VGA_VSYNC(1'b0),
+  .VGA_ODD_EVEN_B(1'b0),
+  .VGA_SOGOUT(1'b0),
+  .VGA_CLAMP(1'b0),
+  .VGA_COAST(1'b0),
+
+  .SOGOUT(),
+  .PIXEL_X_COORD(),
+  .PIXEL_Y_COORD(),
+  .TOTAL_PIXEL_COUNT(),
+  .VGA_DATA_VALID(),
+  .Y(),
+  .HSYNC(),
+  .VSYNC(),
+  .DVI_PIXEL_COUNT(),
+  .DVI_X_COORD(),
+  .DVI_Y_COORD(),
+  .DVI_DATA_VALID()
+
+ );
 
-== FleetSim ==============================================================
 
-== FPGA ==============================================================
 
+/*
   assign dvi_de      = 1;
   assign dvi_reset_b = 1;
 
@@ -64,31 +120,51 @@ percolate up:    gpio_led_7   1
   assign dvi_d9      = 0;
   assign dvi_d10     = 1;
   assign dvi_d11     = 0;
-
+*/
   assign gpio_led_n = 1;
   assign gpio_led_s = 0;
 
-//  assign gpio_led_0 = dvi_gpio1;
-//  assign gpio_led_1 = 0;
-//  assign gpio_led_2 = 1;
-//  assign gpio_led_3 = 0;
-//  assign gpio_led_4 = 1;
+  assign gpio_led_0 = dvi_gpio1;
+  assign gpio_led_1 = gpio_sw_c;
+  //assign gpio_led_2 = dvi_xclk_p;
+  //assign gpio_led_3 = 0;
+  //assign gpio_led_4 = 1;
   assign gpio_led_5 = 0;
   assign gpio_led_6 = 1;
   assign gpio_led_7 = 0;
-
+/*
   wire dvi_xclk_p_unbuffered;
   wire dvi_xclk_n_unbuffered;
   wire dvi_xclk_fb;
-
+*/
 /*
+  reg initialized;
+  always @(posedge clk) begin
+    if (rst) begin
+      initialized <= 0;
+    end else begin
+      if (!initialized && gpio_sw_c) begin
+      end
+    end
+  end
+*/
+/*
+i2c_video_programmer my_i2c_video_programmer
+  ( .CLK200Mhz(clk),
+    .RST(rst),
+    .I2C_SDA(dvi_iic_sda),
+    .I2C_SCL(dvi_iic_scl)
+  );
+
+
   BUFG GBUF_FOR_DVI_CLOCK_N (.I(dvi_xclk_n_unbuffered), .O(dvi_xclk_n));
   BUFG GBUF_FOR_DVI_CLOCK_P (.I(dvi_xclk_p_unbuffered), .O(dvi_xclk_p));
-  DCM  // 25Mhz VGA clock
+  DCM  // 36Mhz DVI clock
    #(
-      .CLKFX_MULTIPLY(4),
-      .CLKFX_DIVIDE(16),
-      .CLKIN_PERIOD("20 ns")
+      .CLKFX_MULTIPLY(9),
+      .CLKFX_DIVIDE(25),
+      .CLKIN_PERIOD("10 ns"),
+      .DLL_FREQUENCY_MODE("LOW")
     ) vgadcm (
       .CLKIN    (clk),
       .CLKFB    (dvi_xclk_fb),
@@ -96,7 +172,7 @@ percolate up:    gpio_led_7   1
       .CLKFX180 (dvi_xclk_n_unbuffered),
       .CLK0     (dvi_xclk_fb)
     );
-*/
+
 
   wire [31:0] vga_pixel_addr_;
   wire        vga_pixel_r;
@@ -128,8 +204,8 @@ percolate up:    gpio_led_7   1
        .fbwb_ack_i(vga_pixel_a_),
        .fbwb_dat_i(vga_pixel_data),
 
-       /* VGA signals */
-        .vga_clk(dvi_xclk),
+       // VGA signals
+        .vga_clk(dvi_xclk_p),
         .vga_psave(vga_psave),
         .vga_hsync(dvi_h),
         .vga_vsync(dvi_v),