2 Produced by NSL Core(version=20110302), IP ARCH, Inc. Sun Jan 08 12:30:56 2012
\r
3 Licensed to Yujiro_Kaneko::zyangalianhamster01@gmail.com :NON PROFIT USER:
\r
6 module vga_gen ( i_clk50 , i_fifo_rst , m_clock , p_reset , o_vsync , o_hsync , o_vga_r , o_vga_g , o_vga_b , o_dummy_rgb , o_vcnt , i_wrdata , fi_fifo_write , o_rdack , o_led );
\r
13 output [3:0] o_vga_r;
\r
14 output [3:0] o_vga_g;
\r
15 output [3:0] o_vga_b;
\r
16 output [2:0] o_dummy_rgb;
\r
17 output [9:0] o_vcnt;
\r
18 input [7:0] i_wrdata;
\r
19 input fi_fifo_write;
\r
23 wire [7:0] w_rddata;
\r
29 reg [2:0] r_bit_cnt;
\r
46 wire _u_FIFO_i_clk50;
\r
47 wire _u_FIFO_i_clk25;
\r
49 wire [7:0] _u_FIFO_i_wrdata;
\r
51 wire [7:0] _u_FIFO_o_rddata;
\r
52 wire _u_FIFO_o_rdack;
\r
122 vga_ram u_FIFO (.o_rdack(_u_FIFO_o_rdack), .o_rddata(_u_FIFO_o_rddata), .i_re(_u_FIFO_i_re), .i_wrdata(_u_FIFO_i_wrdata), .i_we(_u_FIFO_i_we), .i_clk25(_u_FIFO_i_clk25), .i_clk50(_u_FIFO_i_clk50), .i_rst(_u_FIFO_i_rst));
\r
124 assign fs_fifo_read = _reg_60|_net_15;
\r
125 assign w_rddata = _u_FIFO_o_rddata;
\r
126 assign fs_fifo_ack = _reg_66;
\r
127 assign fs_initialize = _net_0;
\r
128 assign _u_FIFO_i_rst = i_fifo_rst;
\r
129 assign _u_FIFO_i_clk50 = i_clk50;
\r
130 assign _u_FIFO_i_clk25 = m_clock;
\r
131 assign _u_FIFO_i_we = fi_fifo_write;
\r
132 assign _u_FIFO_i_wrdata = i_wrdata;
\r
133 assign _u_FIFO_i_re = fs_fifo_read;
\r
134 assign _net_0 = (r_trg)==(3'b011);
\r
135 assign _net_1 = (r_cnt)==(26'b01011111010111100001000000);
\r
136 assign _net_2 = ~_net_1;
\r
137 assign _net_3 = (r_hcnt) < (10'b1100011111);
\r
138 assign _net_4 = r_init_flg&_net_3;
\r
139 assign _net_5 = r_init_flg&(~_net_3);
\r
140 assign _net_6 = (r_vcnt) < (10'b1000000111);
\r
141 assign _net_7 = r_init_flg&(~_net_3);
\r
142 assign _net_8 = (r_init_flg&(~_net_3))&_net_6;
\r
143 assign _net_9 = (r_init_flg&(~_net_3))&(~_net_6);
\r
144 assign _net_10 = (((r_hcnt) < (10'b1010000000))&((r_vcnt) < (10'b0111100000)))&r_vsync;
\r
145 assign _net_11 = _net_10&r_init_flg;
\r
146 assign _net_12 = (r_bit_cnt)==(3'b111);
\r
147 assign _net_13 = _net_10&r_init_flg;
\r
148 assign _net_14 = (_net_10&r_init_flg)&_net_12;
\r
149 assign _net_15 = (_net_10&r_init_flg)&_net_12;
\r
150 assign _net_16 = ((_net_10&r_init_flg)&fs_fifo_ack)&r_reg_cnt;
\r
151 assign _net_17 = ~r_reg_cnt;
\r
152 assign _net_18 = (_net_10&r_init_flg)&fs_fifo_ack;
\r
153 assign _net_19 = ((_net_10&r_init_flg)&fs_fifo_ack)&_net_17;
\r
154 assign _net_20 = (r_reg_cnt)==(1'b0);
\r
155 assign _net_21 = _net_10&r_init_flg;
\r
156 assign _net_22 = (_net_10&r_init_flg)&_net_20;
\r
157 assign _net_23 = (_net_10&r_init_flg)&(~_net_20);
\r
158 assign _net_24 = (r_outcnt) < (3'b100);
\r
159 assign _net_25 = _net_10&_net_24;
\r
160 assign _net_26 = _net_10&(~_net_24);
\r
161 assign _net_27 = _net_10&(~_net_24);
\r
162 assign _net_28 = ~(r_outclr[4]);
\r
163 assign _net_29 = _net_10&_net_28;
\r
164 assign _net_30 = _net_10&(~_net_28);
\r
165 assign _net_31 = ~(r_outclr[5]);
\r
166 assign _net_32 = _net_10&_net_31;
\r
167 assign _net_33 = _net_10&(~_net_31);
\r
168 assign _net_34 = ~(r_outclr[6]);
\r
169 assign _net_35 = _net_10&_net_34;
\r
170 assign _net_36 = _net_10&(~_net_34);
\r
171 assign _net_37 = (r_hcnt)==(10'b1011101111);
\r
172 assign _net_38 = ~_net_10;
\r
173 assign _net_39 = (~_net_10)&_net_37;
\r
174 assign _net_40 = (r_hcnt)==(10'b1010001111);
\r
175 assign _net_41 = ~_net_10;
\r
176 assign _net_42 = (~_net_10)&_net_40;
\r
177 assign _net_43 = (r_hcnt)==(10'b1010000000);
\r
178 assign _net_44 = ~_net_10;
\r
179 assign _net_45 = (~_net_10)&_net_43;
\r
180 assign _net_46 = (~_net_10)&_net_43;
\r
181 assign _net_47 = (~_net_10)&_net_43;
\r
182 assign _net_48 = (~_net_10)&_net_43;
\r
183 assign _net_49 = (~_net_10)&_net_43;
\r
184 assign _net_50 = (~_net_10)&_net_43;
\r
185 assign _net_51 = ((~_net_10)&fs_fifo_ack)&r_reg_cnt;
\r
186 assign _net_52 = ~r_reg_cnt;
\r
187 assign _net_53 = (~_net_10)&fs_fifo_ack;
\r
188 assign _net_54 = ((~_net_10)&fs_fifo_ack)&_net_52;
\r
189 assign _net_55 = (r_vcnt)==(10'b0111101011);
\r
190 assign _net_56 = (r_vcnt)==(10'b0111101001);
\r
191 assign _net_57 = (r_vcnt)==(10'b0111100000);
\r
192 assign _net_62 = fs_initialize|_reg_61;
\r
193 assign _net_63 = fs_initialize|_reg_60|_reg_61;
\r
194 assign _net_64 = fs_initialize|_reg_59|_reg_60;
\r
195 assign _net_65 = fs_initialize|_reg_58|_reg_59;
\r
196 assign _net_68 = fs_fifo_read|_reg_66|_reg_67;
\r
197 assign o_vsync = r_vsync;
\r
198 assign o_hsync = r_hsync;
\r
199 assign o_vga_r = ((_net_45|_net_33)?4'b0000:4'b0)|
\r
200 ((_net_32)?~(r_outclr[3:0]):4'b0);
\r
201 assign o_vga_g = ((_net_46|_net_36)?4'b0000:4'b0)|
\r
202 ((_net_35)?~(r_outclr[3:0]):4'b0);
\r
203 assign o_vga_b = ((_net_47|_net_30)?4'b0000:4'b0)|
\r
204 ((_net_29)?~(r_outclr[3:0]):4'b0);
\r
205 assign o_dummy_rgb = ((_net_50)?3'b000:3'b0)|
\r
206 ((_net_23)?{{2{r_data2[r_bit_cnt]}},r_data2[r_bit_cnt]}:3'b0)|
\r
207 ((_net_22)?{{2{r_data1[r_bit_cnt]}},r_data1[r_bit_cnt]}:3'b0);
\r
208 assign o_vcnt = r_vcnt;
\r
209 assign o_rdack = _u_FIFO_o_rdack;
\r
210 assign o_led = r_led;
\r
211 always @(posedge m_clock or posedge p_reset)
\r
214 r_data1 <= 8'b00000000;
\r
215 else if ((_net_62)|(_net_51|_net_16))
\r
216 r_data1 <= ((_net_62) ?_u_FIFO_o_rddata:8'b0)|
\r
217 ((_net_51|_net_16) ?w_rddata:8'b0);
\r
220 always @(posedge m_clock or posedge p_reset)
\r
223 r_data2 <= 8'b00000000;
\r
224 else if ((_reg_59)|(_net_54|_net_19))
\r
225 r_data2 <= ((_reg_59) ?_u_FIFO_o_rddata:8'b0)|
\r
226 ((_net_54|_net_19) ?w_rddata:8'b0);
\r
229 always @(posedge m_clock or posedge p_reset)
\r
233 else if ((_net_14))
\r
234 r_reg_cnt <= ~r_reg_cnt;
\r
236 always @(posedge m_clock or posedge p_reset)
\r
239 r_bit_cnt <= 3'b000;
\r
240 else if ((_net_11))
\r
241 r_bit_cnt <= (r_bit_cnt)+(3'b001);
\r
243 always @(posedge m_clock or posedge p_reset)
\r
247 else if ((_net_56)|(_net_55))
\r
248 r_vsync <= ((_net_56) ?1'b0:1'b0)|
\r
249 ((_net_55) ?1'b1:1'b0);
\r
252 always @(posedge m_clock or posedge p_reset)
\r
256 else if ((_net_42)|(_net_39))
\r
257 r_hsync <= ((_net_42) ?1'b0:1'b0)|
\r
258 ((_net_39) ?1'b1:1'b0);
\r
261 always @(posedge m_clock or posedge p_reset)
\r
264 r_vcnt <= 10'b0000000000;
\r
265 else if ((_net_9)|(_net_8))
\r
266 r_vcnt <= ((_net_9) ?10'b0000000000:10'b0)|
\r
267 ((_net_8) ?(r_vcnt)+(10'b0000000001):10'b0);
\r
270 always @(posedge m_clock or posedge p_reset)
\r
273 r_hcnt <= 10'b0000000000;
\r
274 else if ((_net_5)|(_net_4))
\r
275 r_hcnt <= ((_net_5) ?10'b0000000000:10'b0)|
\r
276 ((_net_4) ?(r_hcnt)+(10'b0000000001):10'b0);
\r
279 always @(posedge m_clock or posedge p_reset)
\r
282 r_cnt <= 26'b00000000000000000000000000;
\r
283 else if ((_net_2)|(_net_1))
\r
284 r_cnt <= ((_net_2) ?(r_cnt)+(26'b00000000000000000000000001):26'b0)|
\r
285 ((_net_1) ?26'b00000000000000000000000000:26'b0);
\r
288 always @(posedge m_clock or posedge p_reset)
\r
291 r_outcnt <= 3'b000;
\r
292 else if ((_net_48|_net_26)|(_net_25))
\r
293 r_outcnt <= ((_net_48|_net_26) ?3'b000:3'b0)|
\r
294 ((_net_25) ?(r_outcnt)+(3'b001):3'b0);
\r
297 always @(posedge m_clock or posedge p_reset)
\r
300 r_outclr <= 7'b0000000;
\r
301 else if ((_net_49)|(_net_27))
\r
302 r_outclr <= ((_net_49) ?7'b0000000:7'b0)|
\r
303 ((_net_27) ?(r_outclr)+(7'b0000001):7'b0);
\r
306 always @(posedge p_reset)
\r
309 r_vcnt_hld <= 1'b0;
\r
311 always @(posedge m_clock or posedge p_reset)
\r
315 else if ((_net_1))
\r
318 always @(posedge m_clock or posedge p_reset)
\r
321 r_init_flg <= 1'b0;
\r
322 else if ((_reg_58))
\r
323 r_init_flg <= 1'b1;
\r
325 always @(posedge m_clock or posedge p_reset)
\r
329 else r_trg <= {r_trg[1:0],1'b1};
\r
331 always @(posedge p_reset)
\r
334 r_cnt1 <= 26'b00000000000000000000000000;
\r
336 always @(posedge p_reset)
\r
339 r_cnt2 <= 26'b00000000000000000000000000;
\r
341 always @(posedge p_reset)
\r
344 r_cnt3 <= 26'b00000000000000000000000000;
\r
346 always @(posedge p_reset)
\r
351 always @(posedge m_clock or posedge p_reset)
\r
355 else if ((_net_65))
\r
356 _reg_58 <= _reg_59;
\r
358 always @(posedge m_clock or posedge p_reset)
\r
362 else if ((_net_64))
\r
363 _reg_59 <= _reg_60;
\r
365 always @(posedge m_clock or posedge p_reset)
\r
369 else if ((_net_63))
\r
370 _reg_60 <= _reg_61|fs_initialize;
\r
372 always @(posedge m_clock or posedge p_reset)
\r
376 else if ((_reg_61))
\r
379 always @(posedge m_clock or posedge p_reset)
\r
383 else if ((_net_68))
\r
384 _reg_66 <= _reg_67|fs_fifo_read;
\r
386 always @(posedge m_clock or posedge p_reset)
\r
390 else if ((_reg_67))
\r
395 Produced by NSL Core(version=20110302), IP ARCH, Inc. Sun Jan 08 12:31:01 2012
\r
396 Licensed to Yujiro_Kaneko::zyangalianhamster01@gmail.com
\r