月別アーカイブ: 2014年11月

ツッコミされないソースコード素材

漫画とかでソースコードとか演出に使う時に、ツッコミを受けないための素材です。
全部自分で書いたものです。
商用/同人/改変フリーで引用元の記載もいりません。
VHDLなのでソフト系の技術者には分からないのがウリです。

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
entity DVDP is
 Port ( ADRGB : out STD_LOGIC_VECTOR (15 downto 0);
 CLK : in STD_LOGIC;
 RESET : in STD_LOGIC;
 VSYNC : out STD_LOGIC;
 HSYNC : out STD_LOGIC;
 DE : out STD_LOGIC;
 DCLK : out STD_LOGIC;
 CLK574 : out STD_LOGIC;
 SRAMD : inout STD_LOGIC_VECTOR (7 downto 0);
 SRAM_WR : out STD_LOGIC;
 SRAM_OE : out STD_LOGIC;
 MAINRAM_A : out STD_LOGIC_VECTOR (13 downto 0);
 MAINRAM_D : in STD_LOGIC_VECTOR (7 downto 0);
 PALROM_A : out STD_LOGIC_VECTOR (10 downto 0);
 PALROM_D : in STD_LOGIC_VECTOR (15 downto 0);
 LINEBUF_WR : out STD_LOGIC;
 LINEBUF_AIN : out STD_LOGIC_VECTOR (9 downto 0);
 LINEBUF_DIN : in STD_LOGIC_VECTOR (15 downto 0);
 LINEBUF_DOUT : out STD_LOGIC_VECTOR (15 downto 0);
 LINEBUF_AOUT : out STD_LOGIC_VECTOR (9 downto 0);
 TEST_DIN : in STD_LOGIC_VECTOR (7 downto 0);
 TEST_A : out STD_LOGIC_VECTOR (11 downto 0));
end DVDP;
 
architecture Behavioral of DVDP is
signal HCOUNT : std_logic_vector(9 downto 0);
signal VCOUNT : std_logic_vector(8 downto 0);
signal RGB : std_logic_vector(15 downto 0);
signal HSYNC_IN : std_logic;
signal VSYNC_IN : std_logic;
signal DISP_H : std_logic;
signal DISP_V : std_logic;
signal VIDEO_A : std_logic_vector(12 downto 0);
signal temp_ADDR : std_logic_vector(15 downto 0);
signal crosshatch : std_logic;
 
begin
 crosshatch <= '1' when (HCOUNT(4 downto 0)="00000") or (VCOUNT(3 downto 0)="0000") else '0';
 
 ADRGB <= RGB;
 HSYNC <= HSYNC_IN;
 VSYNC <= VSYNC_IN;
  
 SRAM_WR <= '1';
 SRAM_OE <= '1';
 MAINRAM_A <= "00000000000000";
 PALROM_A <="00000000000";
 LINEBUF_WR <= '0';
 LINEBUF_DOUT <="0000000000000000";
 LINEBUF_AOUT <= "0000000000";
 TEST_A <="000000000000";
  
 DE <= DISP_H and DISP_V;
 DCLK <= HCOUNT(0);
 CLK574 <= not HCOUNT(0);
 
 process (HCOUNT,VCOUNT) begin
 if (crosshatch='1') then
 RGB <= "1111111111111111";
 else
 RGB <= "00000" & HCOUNT(9 downto 4) & VCOUNT(8 downto 4);
 end if;
 end process;
  
 process (VCOUNT) begin
 if (VCOUNT >= "011110111" and VCOUNT <= "011111101") then
 VSYNC_IN <= '0';
 else
 VSYNC_IN <= '1';
 end if;
 if (VCOUNT < "011100000") then --224
 DISP_V <= '1';
 else
 DISP_V <= '0';
 end if;
 end process;
  
 process (HCOUNT) begin
 if (HCOUNT >= "1010100101" and HCOUNT <= "1011101000") then
 HSYNC_IN <= '0';
 else
 HSYNC_IN <= '1';
 end if;
  
 if (HCOUNT <= "1000000000") then
 DISP_H <='1';
 else
 DISP_H <='0';
 end if;
 end process;
 
 process (CLK,RESET) begin
 if (RESET = '1') then
 HCOUNT <= "0000000000";
 VCOUNT <= "000000000";
 elsif (CLK'event and CLK='1') then
 if ( HCOUNT = "1110001101" ) then --909
 HCOUNT <= "0000000000";
 if (VCOUNT = "100000101") then --261
 VCOUNT <= "000000000";
 else
 VCOUNT <= VCOUNT + '1';
 end if;
 else
 HCOUNT <= HCOUNT + '1' ;
 end if;
  
 end if;
 end process;
 
 
end Behavioral;