|
請問一下,有人可以幫我看看Verliog問題出在哪嗎? 畫面異常啊!!
, L7 m& z& W: q- y* i) `+ ^0 k% e% {
module vga_ctrl(clk, rst, R_in, G_in, B_in, oRequest, oVGA_H_SYNC, oVGA_V_SYNC, oVGA_SYNC, oVGA_BLANK, oVGA_CLOCK, oVGA_R, oVGA_G, oVGA_B);# |3 i# S# {* N6 _+ M8 n6 `
input clk;3 M: S8 v; f6 {5 J: _: M5 S
input rst;) D8 \) A! b( h" C1 w5 X
input [7:0] R_in;
, o( W3 \# ^* r/ O) |: N3 H% X4 } input [7:0] G_in;2 @! z! r5 C* ^+ |
input [7:0] B_in;. J) _# Z! A* g; K. p2 V
output oRequest;3 y W: b% G! U! u
output oVGA_H_SYNC;1 w$ Q5 P u6 G: {# ~
output oVGA_V_SYNC;
8 a/ I# `- w4 V( W3 F+ ?& ^; _, _ output oVGA_SYNC;
- j# P" D3 E5 w) U output oVGA_BLANK;3 I2 Z8 @) R' |, N! y4 F0 m. p/ g
output oVGA_CLOCK;
6 I. K$ d5 A* f* [% n5 R output [7:0] oVGA_R;
6 I- ], i( w+ Z% m& u output [7:0] oVGA_G;7 E1 O4 ?+ a$ }6 x. e# [# W
output [7:0] oVGA_B;
; J( m' Q$ A6 r # J. q2 Y% x6 N `* ^+ v
reg oVGA_H_SYNC,oVGA_V_SYNC;
: D) m( B0 ]$ y- ^9 l) P reg oRequest;
* c7 S/ |$ Q( ]8 o' L! W reg oVGA_SYNC;3 O; b% f5 C( v+ k5 V- V0 x
reg [7:0] oVGA_R;
9 G6 H' U7 j6 Q" r# \8 e reg [7:0] oVGA_G;5 Y$ Z" U- O, a; B9 S [6 E# o
reg [7:0] oVGA_B;! @# \+ ~4 A5 c. e
* `! f. A4 l; g! K, d' n9 E! }
parameter LENGHT = 1024;
5 G8 n' y. G0 _5 C# V J% u0 o5 S: [8 b parameter CNT_SIZE = clogb2(LENGHT);2 g E: K) s# p
6 [, T. v9 T. f0 p
`include "VGA_Param.h"
2 Z) T6 y1 M) `! k 7 G ]; d: s! |8 L1 ~7 ?& \3 a
reg [CNT_SIZE - 1:0] h_cnt,v_cnt;7 v4 X' D5 S% ?8 N; x5 g/ U
3 ^; l: _3 p* F
always @(posedge clk)
% m5 h9 p# Q1 ~begin
+ J0 J+ e+ q& `# R5 ? if (rst) begin
2 G# Q" W* i+ [4 k4 e- n$ H& k oVGA_R <= 8'd0;/ d M) u2 _0 i3 |/ B5 p* s
oVGA_G <= 8'd0;
' ` y! F8 e0 Q; H& K oVGA_B <= 8'd0;
+ R3 i1 z. r5 C3 x2 S7 E" r end2 t" u7 C1 G$ O/ v, X, G
else if(h_cnt>=(X_START-1) && h_cnt<(X_START+H_SYNC_ACT-1) && v_cnt>=Y_START && v_cnt<Y_START+V_SYNC_ACT) begin; u6 U4 U$ ~$ L+ n; x- W4 ]
oVGA_R <= R_in;
. G8 U# r8 Q! J! y- _' w oVGA_G <= G_in;# L0 @1 E6 J [
oVGA_B <= B_in;
1 d. ~. B7 o" k# P- m6 Z, V end( n5 P! P* e* Z/ r9 U
else begin& B! e" x& x" G) W& L
oVGA_R <= 8'd0;1 ]3 Z4 g3 J- j: Y- f( j$ d9 I
oVGA_G <= 8'd0;
$ }3 \# s" K( P/ N6 r2 y+ I9 y oVGA_B <= 8'd0;# j8 D1 j2 g+ n/ ?4 c. c3 ?
end I7 ^- {. m) Y' j- l
end
6 e- r. r" e2 d4 k: I3 E6 `
0 U. R$ X! [0 j5 F/ M; Xassign oVGA_R = (h_cnt>=X_START && h_cnt<X_START+H_SYNC_ACT && v_cnt>=Y_START && v_cnt<Y_START+V_SYNC_ACT) ? R_in : 10'd0;9 u: c6 p9 A( ^: k) @
assign oVGA_G = (h_cnt>=X_START && h_cnt<X_START+H_SYNC_ACT && v_cnt>=Y_START && v_cnt<Y_START+V_SYNC_ACT) ? G_in : 10'd0;9 [4 d( C/ s5 ~
assign oVGA_B = (h_cnt>=X_START && h_cnt<X_START+H_SYNC_ACT && v_cnt>=Y_START && v_cnt<Y_START+V_SYNC_ACT) ? B_in : 10'd0;5 w5 A. O6 K* k d- b- f
assign oVGA_CLOCK = ~ clk; |
|