-- 表示タイミングの定義
library ieee;
use ieee.std_logic_1164.all;
package disp_timing_pack is
constant H_ACTIVE_VIDEO : integer := 640;
constant H_FRONT_PORCH : integer := 16;
constant H_SYNC_PULSE : integer := 96;
constant H_BACK_PORCH : integer := 48;
constant H_SUM : integer := H_ACTIVE_VIDEO + H_FRONT_PORCH + H_SYNC_PULSE + H_BACK_PORCH;
constant V_ACTIVE_VIDEO : integer := 480;
constant V_FRONT_PORCH : integer := 11;
constant V_SYNC_PULSE : integer := 2;
constant V_BACK_PORCH : integer := 31;
constant V_SUM : integer := V_ACTIVE_VIDEO + V_FRONT_PORCH + V_SYNC_PULSE + V_BACK_PORCH;
constant H_DISPLAY_SIZE : integer := H_ACTIVE_VIDEO/8; -- 横80桁
constant V_DISPLAY_SIZE : integer := V_ACTIVE_VIDEO/8; -- 縦60行
end disp_timing_pack;
-- CharDispCtrlerTest.vhd
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
USE ieee.std_logic_arith.all;
library unisim;
use unisim.vcomponents.all;
entity CharDispCtrlerTest is
port(
clk : in std_logic;
reset : in std_logic;
-- dvi_reset : in std_logic;
dvi_xclk_p : out std_logic;
dvi_xclk_n : out std_logic;
dvi_reset_b : out std_logic;
dvi_hsync : out std_logic;
dvi_vsync : out std_logic;
dvi_de : out std_logic;
dvi_d : out std_logic_vector(11 downto 0);
dvi_sda : out std_logic;
dvi_scl : out std_logic
);
end CharDispCtrlerTest;
architecture RTL of CharDispCtrlerTest is
...
-- CH7301C へ出力する
dvi_reset_b <= '1';
ODDR_dvi_xclk_p : ODDR generic map(
DDR_CLK_EDGE => "SAME_EDGE", -- "OPPOSITE_EDGE" or "SAME_EDGE"
INIT => '0', -- Initial value for Q port (’1’ or ’0’)
SRTYPE => "SYNC") -- Reset Type ("ASYNC" or "SYNC")
port map(
Q => dvi_xclk_p,
C => clk90,
CE => '1',
D1 => '1',
D2 => '0',
R => reset_node,
S => '0'
);
ODDR_dvi_xclk_n : ODDR generic map(
DDR_CLK_EDGE => "SAME_EDGE", -- "OPPOSITE_EDGE" or "SAME_EDGE"
INIT => '1', -- Initial value for Q port (’1’ or ’0’)
SRTYPE => "SYNC") -- Reset Type ("ASYNC" or "SYNC")
port map(
Q => dvi_xclk_n,
C => clk90,
CE => '1',
D1 => '0',
D2 => '1',
R => reset_node,
S => '0'
);
ODDR_dvi_d0 : ODDR generic map(
DDR_CLK_EDGE => "SAME_EDGE", -- "OPPOSITE_EDGE" or "SAME_EDGE"
INIT => '0', -- Initial value for Q port (’1’ or ’0’)
SRTYPE => "SYNC") -- Reset Type ("ASYNC" or "SYNC")
port map(
Q => dvi_d(0),
C => clk0,
CE => '1',
D1 => VGA_BLUE, -- B[0]
D2 => VGA_GREEN, -- G[4]
R => reset_node,
S => '0'
);
ODDR_dvi_d1 : ODDR generic map(
DDR_CLK_EDGE => "SAME_EDGE", -- "OPPOSITE_EDGE" or "SAME_EDGE"
INIT => '0', -- Initial value for Q port (’1’ or ’0’)
SRTYPE => "SYNC") -- Reset Type ("ASYNC" or "SYNC")
port map(
Q => dvi_d(1),
C => clk0,
CE => '1',
D1 => VGA_BLUE, -- B[1]
D2 =>VGA_GREEN, -- G[5]
R => reset_node,
S => '0'
);
ODDR_dvi_d2 : ODDR generic map(
DDR_CLK_EDGE => "SAME_EDGE", -- "OPPOSITE_EDGE" or "SAME_EDGE"
INIT => '0', -- Initial value for Q port (’1’ or ’0’)
SRTYPE => "SYNC") -- Reset Type ("ASYNC" or "SYNC")
port map(
Q => dvi_d(2),
C => clk0,
CE => '1',
D1 => VGA_BLUE, -- B[2]
D2 => VGA_GREEN, -- G[6]
R => reset_node,
S => '0'
);
ODDR_dvi_d3 : ODDR generic map(
DDR_CLK_EDGE => "SAME_EDGE", -- "OPPOSITE_EDGE" or "SAME_EDGE"
INIT => '0', -- Initial value for Q port (’1’ or ’0’)
SRTYPE => "SYNC") -- Reset Type ("ASYNC" or "SYNC")
port map(
Q => dvi_d(3),
C => clk0,
CE => '1',
D1 => VGA_BLUE, -- B[3]
D2 => VGA_GREEN, -- G[7]
R => reset_node,
S => '0'
);
ODDR_dvi_d4 : ODDR generic map(
DDR_CLK_EDGE => "SAME_EDGE", -- "OPPOSITE_EDGE" or "SAME_EDGE"
INIT => '0', -- Initial value for Q port (’1’ or ’0’)
SRTYPE => "SYNC") -- Reset Type ("ASYNC" or "SYNC")
port map(
Q => dvi_d(4),
C => clk0,
CE => '1',
D1 => VGA_BLUE, -- B[4]
D2 => VGA_RED, -- R[0]
R => reset_node,
S => '0'
);
ODDR_dvi_d5 : ODDR generic map(
DDR_CLK_EDGE => "SAME_EDGE", -- "OPPOSITE_EDGE" or "SAME_EDGE"
INIT => '0', -- Initial value for Q port (’1’ or ’0’)
SRTYPE => "SYNC") -- Reset Type ("ASYNC" or "SYNC")
port map(
Q => dvi_d(5),
C => clk0,
CE => '1',
D1 => VGA_BLUE, -- B[5]
D2 => VGA_RED, -- R[1]
R => reset_node,
S => '0'
);
ODDR_dvi_d6 : ODDR generic map(
DDR_CLK_EDGE => "SAME_EDGE", -- "OPPOSITE_EDGE" or "SAME_EDGE"
INIT => '0', -- Initial value for Q port (’1’ or ’0’)
SRTYPE => "SYNC") -- Reset Type ("ASYNC" or "SYNC")
port map(
Q => dvi_d(6),
C => clk0,
CE => '1',
D1 => VGA_BLUE, -- B[6]
D2 => VGA_RED, -- R[2]
R => reset_node,
S => '0'
);
ODDR_dvi_d7 : ODDR generic map(
DDR_CLK_EDGE => "SAME_EDGE", -- "OPPOSITE_EDGE" or "SAME_EDGE"
INIT => '0', -- Initial value for Q port (’1’ or ’0’)
SRTYPE => "SYNC") -- Reset Type ("ASYNC" or "SYNC")
port map(
Q => dvi_d(7),
C => clk0,
CE => '1',
D1 => VGA_BLUE, -- B[7]
D2 => VGA_RED, -- R[3]
R => reset_node,
S => '0'
);
ODDR_dvi_d8 : ODDR generic map(
DDR_CLK_EDGE => "SAME_EDGE", -- "OPPOSITE_EDGE" or "SAME_EDGE"
INIT => '0', -- Initial value for Q port (’1’ or ’0’)
SRTYPE => "SYNC") -- Reset Type ("ASYNC" or "SYNC")
port map(
Q => dvi_d(8),
C => clk0,
CE => '1',
D1 => VGA_GREEN, -- G[0]
D2 => VGA_RED, -- R[4]
R => reset_node,
S => '0'
);
ODDR_dvi_d9 : ODDR generic map(
DDR_CLK_EDGE => "SAME_EDGE", -- "OPPOSITE_EDGE" or "SAME_EDGE"
INIT => '0', -- Initial value for Q port (’1’ or ’0’)
SRTYPE => "SYNC") -- Reset Type ("ASYNC" or "SYNC")
port map(
Q => dvi_d(9),
C => clk0,
CE => '1',
D1 => VGA_GREEN, -- G[1]
D2 => VGA_RED, -- R[5]
R => reset_node,
S => '0'
);
ODDR_dvi_d10 : ODDR generic map(
DDR_CLK_EDGE => "SAME_EDGE", -- "OPPOSITE_EDGE" or "SAME_EDGE"
INIT => '0', -- Initial value for Q port (’1’ or ’0’)
SRTYPE => "SYNC") -- Reset Type ("ASYNC" or "SYNC")
port map(
Q => dvi_d(10),
C => clk0,
CE => '1',
D1 => VGA_GREEN, -- G[2]
D2 => VGA_RED, -- R[6]
R => reset_node,
S => '0'
);
ODDR_dvi_d11 : ODDR generic map(
DDR_CLK_EDGE => "SAME_EDGE", -- "OPPOSITE_EDGE" or "SAME_EDGE"
INIT => '0', -- Initial value for Q port (’1’ or ’0’)
SRTYPE => "SYNC") -- Reset Type ("ASYNC" or "SYNC")
port map(
Q => dvi_d(11),
C => clk0,
CE => '1',
D1 => VGA_GREEN, -- G[3]
D2 => VGA_RED, -- R[7]
R => reset_node,
S => '0'
);
-- I2C 設定レジスタ設定回路
I2C_setting_inst : SCCB_Reg_Controller port map(
clk => clk0,
reset => reset_node,
SCL => dvi_scl,
SDA => dvi_sda
);
end RTL;
INST "dvi_de" IOB = FORCE;
INST "dvi_hsync" IOB = FORCE;
INST "dvi_vsync" IOB = FORCE;
日 | 月 | 火 | 水 | 木 | 金 | 土 |
---|---|---|---|---|---|---|
- | - | - | - | - | 1 | 2 |
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 | - | - | - | - | - | - |