diff options
author | James McKenzie <root@ka-ata-killa.panaceas.james.local> | 2025-04-27 02:56:46 +0100 |
---|---|---|
committer | James McKenzie <root@ka-ata-killa.panaceas.james.local> | 2025-04-27 02:56:46 +0100 |
commit | cea9fa29986b62dcf08eaadd156df423f6de5d1b (patch) | |
tree | f4837359ed01de91d16a29a44383dbecbafc1ba1 | |
parent | 1b2a1318c6e00dacdb70682332558abf3263a5d2 (diff) | |
download | hp_instrument_lcds-cea9fa29986b62dcf08eaadd156df423f6de5d1b.tar.gz hp_instrument_lcds-cea9fa29986b62dcf08eaadd156df423f6de5d1b.tar.bz2 hp_instrument_lcds-cea9fa29986b62dcf08eaadd156df423f6de5d1b.zip |
note quite working
-rw-r--r-- | spartan6/hp_lcd_driver/hp_lcd_driver.ucf | 14 | ||||
-rw-r--r-- | spartan6/hp_lcd_driver/hp_lcd_driver.vhdl | 3 | ||||
-rw-r--r-- | spartan6/hp_lcd_driver/tmds_output.vhdl | 83 |
3 files changed, 75 insertions, 25 deletions
diff --git a/spartan6/hp_lcd_driver/hp_lcd_driver.ucf b/spartan6/hp_lcd_driver/hp_lcd_driver.ucf index e4a5fc2..bef419f 100644 --- a/spartan6/hp_lcd_driver/hp_lcd_driver.ucf +++ b/spartan6/hp_lcd_driver/hp_lcd_driver.ucf @@ -12,3 +12,17 @@ NET "b_out" IOSTANDARD = LVCMOS33; NET "g_out" IOSTANDARD = LVCMOS33; NET "hsync_out" IOSTANDARD = LVCMOS33; NET "vsync_out" IOSTANDARD = LVCMOS33; + +#NET "hdmi_c_p" LOC = P142; +#NET "hdmi_c_n" LOC = P141; +#NET "hdmi_r_p" LOC = P140; +#NET "hdmi_r_n" LOC = P139; +#NET "hdmi_g_p" LOC = P138; +#NET "hdmi_g_n" LOC = P137; +#NET "hdmi_b_p" LOC = P44; +#NET "hdmi_b_n" LOC = P43; + + + + + diff --git a/spartan6/hp_lcd_driver/hp_lcd_driver.vhdl b/spartan6/hp_lcd_driver/hp_lcd_driver.vhdl index a5fc8d7..a6de250 100644 --- a/spartan6/hp_lcd_driver/hp_lcd_driver.vhdl +++ b/spartan6/hp_lcd_driver/hp_lcd_driver.vhdl @@ -161,7 +161,8 @@ begin g<= x"ff" when rd_data(0)='1' else x"ff" when rd_data(1)='1' else x"00"; - b<=x"00"; + b<= x"ff" when rd_data(1)='1' else + x"00"; diff --git a/spartan6/hp_lcd_driver/tmds_output.vhdl b/spartan6/hp_lcd_driver/tmds_output.vhdl index 3d169ee..096b5b7 100644 --- a/spartan6/hp_lcd_driver/tmds_output.vhdl +++ b/spartan6/hp_lcd_driver/tmds_output.vhdl @@ -41,8 +41,8 @@ signal b_p10:std_logic_vector(9 downto 0); signal phy_reset: std_logic; signal bufpll_lock:std_logic; signal upper:std_logic; -signal ioclk: std_logic; -signal serdesstrobe:std_logic; +signal ioclk: std_logic_vector(3 downto 0); +signal serdesstrobe:std_logic_vector(3 downto 0); begin @@ -86,17 +86,54 @@ begin ); -ioclk_buf: BUFPLL +ioclk_buf_0: BUFPLL generic map ( DIVIDE => 5) port map ( PLLIN => pclk_x10, GCLK => pclk_x2, LOCKED => pclk_locked, - IOCLK => ioclk, - SERDESSTROBE => serdesstrobe + IOCLK => ioclk(0), + SERDESSTROBE => serdesstrobe(0) ); + +ioclk_buf_1: BUFPLL + generic map ( DIVIDE => 5) + port map ( + PLLIN => pclk_x10, + GCLK => pclk_x2, + LOCKED => pclk_locked, + IOCLK => ioclk(1), + SERDESSTROBE => serdesstrobe(1) + ); + + + +ioclk_buf_2: BUFPLL + generic map ( DIVIDE => 5) + port map ( + PLLIN => pclk_x10, + GCLK => pclk_x2, + LOCKED => pclk_locked, + IOCLK => ioclk(2), + SERDESSTROBE => serdesstrobe(2) + ); + + + +ioclk_buf_3: BUFPLL + generic map ( DIVIDE => 5) + port map ( + PLLIN => pclk_x10, + GCLK => pclk_x2, + LOCKED => pclk_locked, + IOCLK => ioclk(3), + SERDESSTROBE => serdesstrobe(3) + ); + + + phy_reset <= not sys_rst_n or not bufpll_lock; process (pclk_x2) begin @@ -108,26 +145,24 @@ ioclk_buf: BUFPLL end process; ---phy_c : entity work.tmds_phy --- port map ( --- reset => phy_reset, --- pclk_x2 => pclk_x2, --- serdesstrobe => serdesstrobe, --- ioclk => ioclk, --- upper => upper, --- din => "1111100000", --- tmds_out_p => tmds_c_out_p, --- tmds_out_n => tmds_c_out_n ---); -tmds_c_out_p <= '0'; -tmds_c_out_n <= '1'; +phy_c : entity work.tmds_phy + port map ( + reset => phy_reset, + pclk_x2 => pclk_x2, + serdesstrobe => serdesstrobe(0), + ioclk => ioclk(0), + upper => upper, + din => "1111100000", + tmds_out_p => tmds_c_out_p, + tmds_out_n => tmds_c_out_n +); phy_r : entity work.tmds_phy port map ( reset => phy_reset, pclk_x2 => pclk_x2, - serdesstrobe => serdesstrobe, - ioclk=>ioclk, + serdesstrobe => serdesstrobe(1), + ioclk=>ioclk(1), upper=>upper, din => r_p10, tmds_out_p => tmds_r_out_p, @@ -139,8 +174,8 @@ phy_g : entity work.tmds_phy port map ( reset => phy_reset, pclk_x2 => pclk_x2, - serdesstrobe => serdesstrobe, - ioclk=>ioclk, + serdesstrobe => serdesstrobe(2), + ioclk=>ioclk(2), upper=>upper, din => g_p10, tmds_out_p => tmds_g_out_p, @@ -152,8 +187,8 @@ phy_b : entity work.tmds_phy port map ( reset => phy_reset, pclk_x2 => pclk_x2, - serdesstrobe => serdesstrobe, - ioclk=>ioclk, + serdesstrobe => serdesstrobe(3), + ioclk=>ioclk(3), upper=>upper, din => b_p10, tmds_out_p => tmds_b_out_p, |