Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 7706|回復: 16
打印 上一主題 下一主題

[問題求助] 請問版上各位高手,可以提示我一下verilog程式語法嗎?

[複製鏈接]
跳轉到指定樓層
1#
發表於 2007-2-15 14:45:38 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
各位板友,新年快樂:
* G2 A% b7 d7 t9 V想請教各位版友一些問題,我目前有兩套程式,一套是CCD影像程式,另一套是USB的驅動程式,原本要將影像儲存到CPLD�必須先跑CCD程式,將CCD程式下載到FPGA後,等螢幕出現影像再按一KEY[2]鍵將影像定格後,再跑USB程式將USB下載到FPGA後
. u8 N( D0 k8 |即能將FPGA內部的影像檔傳送到CPLD,但是我現在想要合成CCD與USB程式,不想分兩次驅動,但實際的語法我修改了好幾次都  q6 e5 K+ n3 d) B  |
失敗,影像還是能跑出來,但是下載到CPLD的畫面是黑色的(無影像存在),所以,想請教各位高手,能否幫我看一下程式,給我ㄧ些提示與建議.....
) h9 P6 d9 B6 m$ X2 B/ A& b1 X因為程式很長,所以我只列出目過前修改後最主要的程式碼...
7 i* m8 u! N6 _  k
$ w1 B7 _9 D& x$ F//        USB JTAG
! Y) u' i, }! S' dwire TDI;
$ D2 ?  i& D8 @7 hwire [7:0] mRXD_DATA,mTXD_DATA;     ----------------------------我增加的程式碼
/ ^- X! R* ~% x7 ?3 x$ e1 l* }8 ?wire mRXD_Ready,mTXD_Done,mTXD_Start;  ----------------------------我增加的程式碼) z- r0 R8 ]4 M% x7 V
reg mTCK;
( \+ ]( l* @% |1 {5 w% w. ~7 ^reg TDO;                                                 ----------------------------我增加的程式碼: |7 B  U- P2 r% x, ]
reg [7:0] oRXD_DATA,oTXD_DATA;      ----------------------------我增加的程式碼
) H( @, L9 w) y( r, s. m7 k+ vreg oRXD_Ready,oTXD_Done,oTXD_Start;   ----------------------------我增加的程式碼
& m/ y. g& ]( H/ c; Y& `3 J//        All inout port turn to tri-state9 m" Y7 [( F' F: F' \/ w# l
assign        OTG_DATA        =        16'hzzzz;
6 @. p3 V% W2 B. p4 C% Lassign        SD_DAT                =        1'bz;
; g# |7 G2 X. m& kassign        GPIO_1                =        36'hzzzzzzzzz;9 t: V* k4 C/ }6 h2 F- v6 q
//        Audio/ ?- G0 b$ l3 N8 H/ E6 n7 q
assign        AUD_ADCLRCK        =        AUD_DACLRCK;' [1 I  A) s. x) `6 ]0 J
assign        AUD_XCK                =        AUD_CTRL_CLK;; C& M* `. H, A1 i" b$ Z7 z0 Q% h- [
7 w+ A& a& Y8 ~
always@(posedge CLOCK_50)        CCD_MCLK        <=         ~CCD_MCLK;1 W! m1 M3 B4 ~" g3 c
0 Q+ z  a- q3 v0 \' p2 z' B
always@(posedge CCD_PIXCLK)
8 g5 u' n/ n& W7 I0 hbegin6 |# T9 c* S' s% f9 b
rCCD_DATA        <=        CCD_DATA;0 }2 \7 L, e: J: T
rCCD_LVAL        <=        CCD_LVAL;! N# O+ M7 ~) Y  n& u
rCCD_FVAL        <=        CCD_FVAL;. f# ~8 H( T! _9 }7 p& |
  if (!KEY[0]) begin                                    從這一行開始是我增加USB的程式碼合成到CCD程式裡面1 Z) w8 B9 e; Q( ], M4 h
     mTCK   <=   TCK;: S! x& R4 z4 T8 t
     oRXD_DATA  <=  mRXD_DATA;+ c7 }: Y, s, N. X/ }
     oTXD_DATA  <=  mTXD_DATA;
% F4 E4 u! L1 Y/ g     oRXD_Ready  <=  mRXD_Ready;. x4 V" @, K, }$ k5 b$ K
     oTXD_Done  <=  mTXD_Done;; N; u3 U6 o- E! l5 D' l" I8 w/ v2 K
     oTXD_Start  <=  mTXD_Start;
& {* m$ ~$ n, y3 W8 |5 x  end                      結束...................
) b/ N# c- [' k, K+ }& d* U  else begin * C& Y9 t0 m# Q9 d- [, O
     mTCK   <=  ~TCK;
$ ^) y' @- I, w  end
* `' W$ |& d) D8 i7 N! a# J1 ]. Nend* W- i) P; F& E, q
assign        mVGA_R        =        Read_DATA2[9:0];9 m9 B! t( ]" j% _% t
assign        mVGA_G        =        {Read_DATA1[14:10],Read_DATA2[14:10]};
5 l- E) u9 H$ H* w* ?! N9 ?0 Z; hassign        mVGA_B        =        Read_DATA1[9:0];9 ^; U/ U& A6 {3 M; v4 j
endmodule7 s1 Z5 V. J/ C0 [! G8 j

2 t/ i9 T2 ^/ `1 S; T( y" Y原本單獨驅動FPGA的USB程式碼~/ Q! D: y7 E( J/ Q8 q1 k& V1 W+ ]

% l9 m" l2 f; p8 W+ @! Hmodule DE2_USB_API% V' S1 p* I) n2 A( L' h0 c
////////////////////        USB JTAG link        ////////////////////////////
8 @  @" E  T( j5 binput                          TDI;                                // CPLD -> FPGA (data in)
% I0 j: s: J5 |. Winput                          TCK;                                // CPLD -> FPGA (clk)- v5 F4 W! E" V2 V+ b
input                          TCS;                                // CPLD -> FPGA (CS)9 {) [. n4 ^) I' n; Z# y& L, [$ U
output                         TDO;                                // FPGA -> CPLD (data out)
3 n) H- s6 m/ e% B  R; ~" V+ U! ^5 d4 D
//        USB JTAG
5 W3 f* R3 j" R2 ~wire [7:0] mRXD_DATA,mTXD_DATA;
3 \% p& h' l9 p7 s+ A$ G1 Fwire mRXD_Ready,mTXD_Done,mTXD_Start;5 \. O( V% `& r7 {, u
wire mTCK;
" ^0 M/ s2 E1 t# j5 Gendmodule
' B) Y* O' F5 M3 k8 C+ N! V: l7 s/ ]" f
想要將上面的USB程式合成到CCD程式裡面.....
+ _# j" |+ s9 v$ V但不曉得語法應怎麼表達才能完整,我的構想是等影像跑出來後,按原本CCD程式設定好的KEY[2]鍵將影像定格後.
! G; e1 i2 p' G6 k' Z  M* S再按KEY[0]鍵來驅動USB程式將影像下載到CPLD......
* R( _& \# {5 E3 D! _但改來改去下載的結果都失敗(但CCD影像是成功的)
+ g1 C% Y; u+ B6 G; Z  Q' w) ]( E所以想請教各位高手,能否提示一下正確的語法.........
/ B( `# j+ ^5 q( g! N# h* Q8 J- s謝謝.............
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2007-2-15 15:57:14 | 只看該作者
請問 CCD_PIXCLK 如何產生?4 B# M7 ?- k5 [. w0 q. w; h
按了KEY[2]鍵將影像定格後還會有CCD_PIXCLK嗎?
3#
 樓主| 發表於 2007-2-15 16:53:00 | 只看該作者

回復 #2 masonchung 的帖子

masonchung 版主您好:$ }$ C% P; O! g  ?' }$ S( B1 B
我還是將我的程式碼貼上去好了
; b! m! I: E6 ?因程式太長,所以分2次po, z. q$ ^0 H- w/ ?  i# q1 d
% S+ C) F9 `" A) U
module DE2_CCD. C5 T- w9 o$ I0 z" L0 h
////////////////////////        Clock Input                 ////////////////////////  H' R/ B+ i/ @+ _6 ]% {
input                        CLOCK_27;                                //        27 MHz
8 F6 f. ?* T  x& \input                        CLOCK_50;                                //        50 MHz; M1 A5 m' W6 l) J# I. E
input                        EXT_CLOCK;                                //        External Clock
/ F2 ~8 i+ D4 ?- g2 {% o3 M6 }% C) {////////////////////////        Push Button                ////////////////////////
; I. Q# [5 l! Y! D: Pinput        [3:0]        KEY;                                        //        Pushbutton[3:0]
  U# V/ ]8 W% F- J////////////////////////        DPDT Switch                ////////////////////////
; S' h) P; \5 y1 Q8 hinput        [17:0]        SW;                                                //        Toggle Switch[17:0]
0 h7 |9 x) E# ^& h////////////////////////        7-SEG Dispaly        ////////////////////////
% C: j7 U% {0 j, z. U0 V' v8 ~output        [6:0]        HEX0;                                        //        Seven Segment Digit 0* i/ E7 p% Y0 h, M- O, r
output        [6:0]        HEX1;                                        //        Seven Segment Digit 1" G! V  a: e4 D  |, F
output        [6:0]        HEX2;                                        //        Seven Segment Digit 22 n3 j3 _* l) `$ N
output        [6:0]        HEX3;                                        //        Seven Segment Digit 3: y. Y" l' e/ u8 o1 v% I4 f8 N" C
output        [6:0]        HEX4;                                        //        Seven Segment Digit 4- e' V3 F# I' y
output        [6:0]        HEX5;                                        //        Seven Segment Digit 5& F3 u+ f0 X" D8 g  t' I# Z: M
output        [6:0]        HEX6;                                        //        Seven Segment Digit 6) Q0 Q' V' w9 j7 M/ H! b
output        [6:0]        HEX7;                                        //        Seven Segment Digit 7
- `! h: R$ ~8 Z0 z7 W! k* i/ y////////////////////////////        LED                ////////////////////////////
& a8 Z+ j0 `( @' S2 \' woutput        [8:0]        LEDG;                                        //        LED Green[8:0]
# |0 g( m7 n2 G6 D- H4 qoutput        [17:0]        LEDR;                                        //        LED Red[17:0]$ u- i% I$ H7 y( o2 F
////////////////////////////        UART        ////////////////////////////
) Q# M- r' `1 N2 F* _% Y+ Noutput                        UART_TXD;                                //        UART Transmitter5 r% u) K2 V' L7 Q9 ~- W
input                        UART_RXD;                                //        UART Receiver
# ?# O1 W9 k3 b8 V( ^////////////////////////////        IRDA        ///////////////////////////// e) ?* L1 [' j# X. X
output                        IRDA_TXD;                                //        IRDA Transmitter
; A4 k4 s( d8 W* }* x, ^input                        IRDA_RXD;                                //        IRDA Receiver
" g9 ?0 `- l; g- L# [///////////////////////                SDRAM Interface        ////////////////////////2 ?2 h( D' A* o$ e
inout        [15:0]        DRAM_DQ;                                //        SDRAM Data bus 16 Bits
( O( F& P8 _2 ^6 ~/ d& Coutput        [11:0]        DRAM_ADDR;                                //        SDRAM Address bus 12 Bits. @9 q4 m" O$ j7 ?8 i, x
output                        DRAM_LDQM;                                //        SDRAM Low-byte Data Mask " G* W$ @! b; P5 m& m
output                        DRAM_UDQM;                                //        SDRAM High-byte Data Mask) l! ~  p: h0 R
output                        DRAM_WE_N;                                //        SDRAM Write Enable3 o; R' r- L5 c9 w
output                        DRAM_CAS_N;                                //        SDRAM Column Address Strobe; q1 R+ j! a" E7 _0 \
output                        DRAM_RAS_N;                                //        SDRAM Row Address Strobe
* e# i% q% I+ s7 V; o0 poutput                        DRAM_CS_N;                                //        SDRAM Chip Select
" s4 y4 a8 |) r$ y2 I& c. Eoutput                        DRAM_BA_0;                                //        SDRAM Bank Address 08 `5 {9 F1 r" O5 a
output                        DRAM_BA_1;                                //        SDRAM Bank Address 0
- k+ D5 M3 E, `* Doutput                        DRAM_CLK;                                //        SDRAM Clock
2 {. Q1 W7 T" k2 Aoutput                        DRAM_CKE;                                //        SDRAM Clock Enable
$ h* A7 y2 T0 C( y: n# F6 I  k////////////////////////        SRAM Interface        ////////////////////////- a* T+ Y  b! q8 l$ g0 N
inout        [15:0]        SRAM_DQ;                                //        SRAM Data bus 16 Bits9 Y) u. I6 g2 G5 G9 j
output        [17:0]        SRAM_ADDR;                                //        SRAM Address bus 18 Bits
2 ?* j* T% h# E; ?& Q2 @; T% ]8 a2 foutput                        SRAM_UB_N;                                //        SRAM High-byte Data Mask & S4 p+ S" o: i; ^0 U7 f/ F2 c
output                        SRAM_LB_N;                                //        SRAM Low-byte Data Mask
: i) O/ g# L) v# t* ?. foutput                        SRAM_WE_N;                                //        SRAM Write Enable9 Q) M4 k1 D' K0 W: E
output                        SRAM_CE_N;                                //        SRAM Chip Enable
1 z1 _( A" {3 Boutput                        SRAM_OE_N;                                //        SRAM Output Enable* c# t! @+ G, v6 L) }9 n
////////////////////        ISP1362 Interface        ////////////////////////: p0 ]3 L6 h5 c2 j$ o; B
inout        [15:0]        OTG_DATA;                                //        ISP1362 Data bus 16 Bits# p' M6 ~# Y+ \1 e+ o7 R( ~
output        [1:0]        OTG_ADDR;                                //        ISP1362 Address 2 Bits3 u8 Z. _9 K: ]5 s2 C6 a
output                        OTG_CS_N;                                //        ISP1362 Chip Select7 T$ f0 Y- y9 z5 Z  Q( i% X' u( o
output                        OTG_RD_N;                                //        ISP1362 Write
& D5 Z0 Z" ]7 g2 I$ w/ N6 @2 Goutput                        OTG_WR_N;                                //        ISP1362 Read
8 o( O& h% R7 U/ W6 n' E' }$ c: ~9 x% ^) K6 ooutput                        OTG_RST_N;                                //        ISP1362 Reset1 a5 \. n5 z: R2 ^
output                        OTG_FSPEED;                                //        USB Full Speed,        0 = Enable, Z = Disable
8 _! W2 f6 J# `- X- P& R2 Joutput                        OTG_LSPEED;                                //        USB Low Speed,         0 = Enable, Z = Disable( f- S, h/ m# M+ _' @& |. w
input                        OTG_INT0;                                //        ISP1362 Interrupt 0
% ]% h& w" t! I. kinput                        OTG_INT1;                                //        ISP1362 Interrupt 1& c) D8 F% u& ?; B7 K: a
input                        OTG_DREQ0;                                //        ISP1362 DMA Request 0
( ?; }; w7 C& R6 ~# ]input                        OTG_DREQ1;                                //        ISP1362 DMA Request 1
4 G  X! Q" o2 [) p& n! ~output                        OTG_DACK0_N;                        //        ISP1362 DMA Acknowledge 0
' {2 ~3 P6 o; v! E* H  J* Boutput                        OTG_DACK1_N;                        //        ISP1362 DMA Acknowledge 1. X* I% _9 u$ |& X8 Q
////////////////////        LCD Module 16X2        ////////////////////////////# v8 U1 v+ @) r/ O8 Y
inout        [7:0]        LCD_DATA;                                //        LCD Data bus 8 bits
" r, i  ]+ P7 I% koutput                        LCD_ON;                                        //        LCD Power ON/OFF
* q  M" R' F* u- q, n9 ooutput                        LCD_BLON;                                //        LCD Back Light ON/OFF2 u) F3 O& e& D6 z
output                        LCD_RW;                                        //        LCD Read/Write Select, 0 = Write, 1 = Read
( Z) ]1 W5 w0 l6 l- D/ Zoutput                        LCD_EN;                                        //        LCD Enable1 P' i' M, X/ o# }# P0 ^
output                        LCD_RS;                                        //        LCD Command/Data Select, 0 = Command, 1 = Data
5 K7 t9 y5 f, ]* Q: {////////////////////        SD Card Interface        ////////////////////////; m9 Y; M4 u3 p- L( f) X
inout                        SD_DAT;                                        //        SD Card Data' ^, I* C+ |/ G2 n
inout                        SD_DAT3;                                //        SD Card Data 3
- c6 ^: j& s3 [inout                        SD_CMD;                                        //        SD Card Command Signal8 [* _  S6 s( Z" \; v
output                        SD_CLK;                                        //        SD Card Clock: _# K/ }& D, l- z4 O
////////////////////////        I2C                ////////////////////////////////! R7 L- K  C6 h& z2 S( p) J' F
inout                        I2C_SDAT;                                //        I2C Data
+ k% y# Y! _$ }* ~2 O0 ^output                        I2C_SCLK;                                //        I2C Clock
* D- O. L7 K, d1 S  T9 D///////////////////        USB JTAG link        ////////////////////////////( u- j- m! o. _' u6 e* B
input                          TDI;                                        // CPLD -> FPGA (data in)1 T" B+ A; T- @7 K8 J# P* O4 M" H0 _
input                          TCK;                                        // CPLD -> FPGA (clk)
) m- t8 N+ s+ y2 v9 \6 Xinput                          TCS;                                        // CPLD -> FPGA (CS)2 Q# e, P; ]' C& D
output                         TDO;                                        // FPGA -> CPLD (data out), ]$ u0 ?- a& g* q' M2 b2 K1 ?$ t
////////////////////////        VGA                        ////////////////////////////+ [0 a; i# u: s
output                        VGA_CLK;                                   //        VGA Clock
+ t" N5 Y3 E0 Loutput                        VGA_HS;                                        //        VGA H_SYNC
5 }1 z# m/ ~: K4 Ooutput                        VGA_VS;                                        //        VGA V_SYNC
# p) v& A$ z  n' Moutput                        VGA_BLANK;                                //        VGA BLANK$ \! R) U. ^- A$ C% I& P
output                        VGA_SYNC;                                //        VGA SYNC4 ~- b$ D1 W$ K+ R" D3 V
output        [9:0]        VGA_R;                                   //        VGA Red[9:0]
6 H. b' h4 y8 m7 ~2 J# [output        [9:0]        VGA_G;                                         //        VGA Green[9:0]
0 D! T% ~, V5 s4 W$ T! N2 v& @output        [9:0]        VGA_B;                                   //        VGA Blue[9:0]7 Y1 ]/ w1 b2 Q9 L& z' F" O
////////////////////        Audio CODEC                ////////////////////////////9 S" L0 @: U3 u/ B* C$ I
inout                        AUD_ADCLRCK;                        //        Audio CODEC ADC LR Clock
% ^& [$ m8 f+ K  n$ ~input                        AUD_ADCDAT;                                //        Audio CODEC ADC Data( f7 Q& s, E( ~: b: o: P
inout                        AUD_DACLRCK;                        //        Audio CODEC DAC LR Clock
  L& x4 T# K( D# j! Youtput                        AUD_DACDAT;                                //        Audio CODEC DAC Data
% m5 {/ h7 `3 q6 T( _% ?0 kinout                        AUD_BCLK;                                //        Audio CODEC Bit-Stream Clock
8 Y+ `. ?8 `" h9 Uoutput                        AUD_XCK;                                //        Audio CODEC Chip Clock
" {& z/ I) o. Z0 v8 ~////////////////////        TV Devoder                ////////////////////////////
# V0 ^, v+ d7 q  ]input        [7:0]        TD_DATA;                            //        TV Decoder Data bus 8 bits
" b- P, t2 _' y. K+ ]/ {input                        TD_HS;                                        //        TV Decoder H_SYNC
: c* K& e! a8 O, @input                        TD_VS;                                        //        TV Decoder V_SYNC
" W' o! |  Z% f0 ~1 A4 [4 w% Uoutput                        TD_RESET;                                //        TV Decoder Reset4 f3 k% y" W/ k
////////////////////////        GPIO        ////////////////////////////////
, j8 C) ?% k8 L0 M$ O5 w7 Winout        [35:0]        GPIO_1;                                        //        GPIO Connection 1
/ `3 T& |( n, y: I7 d7 P" q3 d
% _4 d8 q/ u+ z4 Uassign        LCD_ON                =        1'b1;: L. `& T% [2 s/ v5 m: ?1 v3 d  l
assign        LCD_BLON        =        1'b1;
# l4 J  a7 k. R- y5 b5 Y- X' l) Tassign        TD_RESET        =        1'b1;
4 G/ P  G$ r% b9 R, D+ i4 [' b) p) c, t
//        All inout port turn to tri-state
1 e' H9 c3 B4 L/ Q* L' Wassign        SRAM_DQ                =        16'hzzzz;& ^; o: o) g6 g
assign        OTG_DATA        =        16'hzzzz;  I" c% z. O& z7 w' E
assign        LCD_DATA        =        8'hzz;
1 h, e6 {6 N  x0 lassign        SD_DAT                =        1'bz;
  k4 Z& D6 B6 O: `" l, R( G& Bassign        I2C_SDAT        =        1'bz;
% s( b7 s1 J/ @' ~assign        ENET_DATA        =        16'hzzzz;3 S' d3 Z1 W; a9 g
assign        AUD_ADCLRCK        =        1'bz;4 t9 G+ j9 t# Y) c% |
assign        AUD_DACLRCK        =        1'bz;
; F" k8 w. R' {' iassign        AUD_BCLK        =        1'bz;
4#
 樓主| 發表於 2007-2-15 17:05:19 | 只看該作者
//        CCD
8 _3 r: A7 s) L# S. Awire        [9:0]        CCD_DATA;
" U$ L# D) v0 x# Awire                        CCD_SDAT;2 l' `) t7 y) g, ~. t
wire                        CCD_SCLK;1 ^7 U$ n& q+ }) p* j# F! }+ J& w8 t1 Y
wire                        CCD_FLASH;
! }7 L% D8 {' Z$ Y* Owire                        CCD_FVAL;
% J  `. {2 S" G+ e$ O( m" ]wire                        CCD_LVAL;
& C, f' b0 ?1 D/ I9 o4 Owire                        CCD_PIXCLK;  i; A) f9 k# {& z; D  q
reg                                CCD_MCLK;        //        CCD Master Clock( p+ b- A0 D1 S( x* g6 {6 Y4 y

/ d6 `) ]1 Y) M  swire        [15:0]        Read_DATA1;- }* X9 o* u  |' U' f
wire        [15:0]        Read_DATA2;
6 \4 L9 ?+ B. k7 A  S; M2 x) Cwire                        VGA_CTRL_CLK;* S  f8 _. o6 B% I' ]7 m
wire                        AUD_CTRL_CLK;
' f. \9 v. B# Y8 }; ?" F  \% r" Jwire        [9:0]        mCCD_DATA;
) l4 k5 ]  ^; u8 Xwire                        mCCD_DVAL;) u7 ~: r( H+ m; \: u
wire                        mCCD_DVAL_d;
0 z3 @0 {& |% c4 pwire        [10:0]        X_Cont;( T/ u. v- M/ N
wire        [10:0]        Y_Cont;: f) y1 I: p, P4 r. m
wire        [9:0]        X_ADDR;3 [3 o. N8 K0 j& T: P
wire        [31:0]        Frame_Cont;! L* {6 K0 k6 ~, g- o* t
wire        [9:0]        mCCD_R;
% g9 c8 o% w" Xwire        [9:0]        mCCD_G;
9 J( }6 J, ?* z* q6 Uwire        [9:0]        mCCD_B;; }/ P& k" q- B! ^
wire        [9:0]        mVGA_R;
% k7 i+ x5 g% x" F% S6 Y6 n  Vwire        [9:0]        mVGA_G;, N1 B1 p' U- v! @: S9 H
wire        [9:0]        mVGA_B;
) j& H: g1 l8 u& }' H& iwire                        DLY_RST_0;# q$ }8 v/ D1 @& y* Q9 G' U; B: \
wire                        DLY_RST_1;
, u" X( Q+ f1 n5 f8 Ewire                        DLY_RST_2;7 [6 A- a; ]" Z& z
wire                        Read;
2 b( t$ l" h, y0 g* Treg                [9:0]        rCCD_DATA;* s; s7 [$ N) N6 S
reg                                rCCD_LVAL;
2 h1 Y6 T: V8 z+ O* Yreg                                rCCD_FVAL;
  n* a9 d1 t: K$ f3 Z
8 ]( f3 Z3 R5 T7 Z1 y//        For Sensor 11 n+ s+ w4 x% e: \: r0 v
assign        CCD_DATA[0]        =        GPIO_1[0];
! v7 m, w5 k) a. s8 Rassign        CCD_DATA[1]        =        GPIO_1[1];  j' ?* L3 v  x" }
assign        CCD_DATA[2]        =        GPIO_1[5];
# H. L5 q! G: E" P8 i3 Rassign        CCD_DATA[3]        =        GPIO_1[3];$ A, N) ]4 P( S5 r! K& H
assign        CCD_DATA[4]        =        GPIO_1[2];. A# k. ~- R- ~/ v! {+ Q. ^# H5 i
assign        CCD_DATA[5]        =        GPIO_1[4];# f8 w" f& d4 q/ U  p; @
assign        CCD_DATA[6]        =        GPIO_1[6];! _$ _- U! \: e7 j4 J/ I
assign        CCD_DATA[7]        =        GPIO_1[7];. J. a) J" R3 I5 ]5 Y$ S' |
assign        CCD_DATA[8]        =        GPIO_1[8];
' W6 ^, ?  B4 J2 u% T8 y  j2 |  s4 m# xassign        CCD_DATA[9]        =        GPIO_1[9];
8 }) C1 ^$ G0 F! Z2 xassign        GPIO_1[11]        =        CCD_MCLK;
$ y: c  s6 I6 S7 g6 kassign        CCD_FVAL        =        GPIO_1[13];
- ?! G0 J6 \; ^2 l7 S6 S2 dassign        CCD_LVAL        =        GPIO_1[12];1 n- \5 i$ O" {3 v1 A: _7 f
assign        CCD_PIXCLK        =        GPIO_1[10];
0 `* ~9 D5 f0 D' ]; r: D; y  Q5 p( c# f4 b2 B4 F
assign        LEDR                =        SW;
& h, F5 C: t2 i9 l4 }assign        LEDG                =        Y_Cont;
7 r. v. g. _/ massign        VGA_CTRL_CLK=        CCD_MCLK;
: n  M" Q/ M+ }. eassign        VGA_CLK                =        ~CCD_MCLK;
' C# _; ~! X: G0 {! N% @4 p1 K. O" p0 ~# D5 L2 _
VGA_Controller                u1        (        //        Host Side
. c# n: S0 [( O8 Y+ X) b                                                        .oRequest(Read),
2 f  `' u/ y6 l, U                                                        .iRed(                DISP_R        ),$ S! G7 J+ c/ J7 t* v
                                                        .iGreen(        DISP_G        ),
5 f5 X) u# H  |                                                        .iBlue(                DISP_B        ),
, t9 }0 e+ C( w                                                        //        VGA Side# Z) @& s3 e' ], @/ J
                                                        .oVGA_R(VGA_R),8 P: J3 v3 N) A) `$ \! o4 p
                                                        .oVGA_G(VGA_G),' T, X, J/ F  ?, j; q7 x, g
                                                        .oVGA_B(VGA_B),
0 [% `( y, o) Q2 O                                                        .oVGA_HS(VGA_HS),  i+ [* o3 F4 a' j/ E. y
                                                        .oVGA_VS(VGA_VS),# @% X8 i: V7 j, y& v* U$ C, C
                                                        .oVGA_SYNC(VGA_SYNC),
1 q) `6 W: \: h/ \, _8 @. B                                                        .oVGA_BLANK(VGA_BLANK),. F( H% T( O. g) h9 M, E& _% [
                                                        //        Control Signal9 S! x' x7 n! {
                                                        .iCLK(VGA_CTRL_CLK),3 N( S  O5 W5 D2 U0 K& S
                                                        .iRST_N(DLY_RST_2)        );  q- n* x! S8 d2 C. u

3 n9 V; j, Z& |Reset_Delay                        u2        (        .iCLK(CLOCK_50),
6 r6 t3 a8 ]% E# R9 z/ \                                                        .iRST(KEY[0]),5 Q# ], ?  Y' ^8 ~/ A* [3 I2 B
                                                        .oRST_0(DLY_RST_0),! D! t. U' F1 v. ~
                                                        .oRST_1(DLY_RST_1),3 l8 J% u, g3 h1 t& d7 e0 T- ?0 Y. l
                                                        .oRST_2(DLY_RST_2)        );
5 b3 E4 L( |  \3 h  D: W
% R+ L" U" I8 RCCD_Capture                        u3        (        .oDATA(mCCD_DATA),
4 U! u( f) C# Q, I2 Z+ h                                                        .oDVAL(mCCD_DVAL),, n: e0 \  w6 \, v$ `. c
                                                        .oX_Cont(X_Cont),& l$ t" E0 l4 s5 q8 k
                                                        .oY_Cont(Y_Cont),- K, z2 S/ s) {( Y4 W0 f2 E
                                                        .oFrame_Cont(Frame_Cont),
. Q* L% x: f9 j; F                                                        .iDATA(rCCD_DATA),
" z; P) n8 o; d! K7 _7 y, F' O' [                                                        .iFVAL(rCCD_FVAL),
6 d2 m: u1 O* P! H6 u  g) P                                                        .iLVAL(rCCD_LVAL),, h* D; C/ W# g
                                                        .iSTART(!KEY[3]),4 m7 w+ |8 }8 v
                                                        .iEND(!KEY[2]),
( o$ Y. f0 _* Q  j                                                        .iCLK(CCD_PIXCLK),
" s$ S' N7 a6 ^6 f% P" l. f+ ^" K                                                        .iRST(DLY_RST_1)        );8 k% ]: t+ ~4 h. Q

8 D* b8 V7 @) H6 I8 r; E% bRAW2RGB                                u4        (        .oRed(mCCD_R),
, J) K9 m# x) T! F; L                                                        .oGreen(mCCD_G),% ~" k0 R  W' P8 |
                                                        .oBlue(mCCD_B)," g7 V0 m& H& V. J* L
                                                        .oDVAL(mCCD_DVAL_d),
# y8 E4 }' Y, h( c3 M% {- [                                                        .iX_Cont(X_Cont),
7 p0 M/ u, U9 l' t! t                                                        .iY_Cont(Y_Cont),% u, ^8 O$ L; G9 l4 b
                                                        .iDATA(mCCD_DATA),: z, c* p4 Z+ R1 d, S; d
                                                        .iDVAL(mCCD_DVAL),
8 K4 c/ Q& ]5 A1 P- S2 B                                                        .iCLK(CCD_PIXCLK),
+ \* A- Y9 f+ t* X7 c7 F                                                        .iRST(DLY_RST_1)        );. m: l7 Z3 p' u0 c/ B3 k$ `
$ y8 E' [: m4 y
SEG7_LUT_8                         u5        (        .oSEG0(HEX0),.oSEG1(HEX1),
2 q7 |5 B) e8 R4 P                                                        .oSEG2(HEX2),.oSEG3(HEX3),
- ]4 \9 D! S5 m. f) L! |8 Z0 U8 C6 \                                                        .oSEG4(HEX4),.oSEG5(HEX5),
& O, i, N0 }. b, N( |& e; R                                                        .oSEG6(HEX6),.oSEG7(HEX7),- H1 s; w3 F2 N/ [& A
                                                        .iDIG(Frame_Cont) );: U; B* @/ I; p0 x, V. @, J3 v% O
+ B9 w% X8 S7 A0 b# S1 k; Y0 q
Sdram_Control_4Port        u6        (        //        HOST Side* m0 s) g# o& }4 Z! ?, d9 ]
                                                    .REF_CLK(CLOCK_50),/ R5 D5 C  y6 _' v, S+ a! s
                                                    .RESET_N(1'b1),: q/ B5 l+ Q+ {* G  W  O9 r& D" I
                                                        //        FIFO Write Side 1* k, ]4 V: g7 ?% v8 y9 i
                                                    .WR1_DATA(        {mCCD_G[9:5],
7 t  u' A+ _8 E                                                                                 mCCD_B[9:0]}),+ d% a$ A/ C! e% c
                                                        .WR1(mCCD_DVAL_d),5 S& U1 s6 W- z, {2 C
                                                        .WR1_ADDR(0),
2 z2 z0 _- ?; L3 A3 F1 i                                                        .WR1_MAX_ADDR(640*512),
, D2 i( x" h, [- S7 G; \7 I: ]                                                        .WR1_LENGTH(9'h100),6 c6 K+ M. }6 l' }
                                                        .WR1_LOAD(!DLY_RST_0),* q, W  N/ S# g8 j7 |" D. O
                                                        .WR1_CLK(CCD_PIXCLK),, E7 W$ ]2 H  a5 I- f: ~3 [
                                                        //        FIFO Write Side 2
! o, l4 \* n5 J- f" l                                                    .WR2_DATA(        {mCCD_G[4:0],4 p) k. y0 ]/ q" a3 g' A8 ?
                                                                                 mCCD_R[9:0]}),2 N2 D# X+ ?( w$ v
                                                        .WR2(mCCD_DVAL_d),. h2 s. m+ V5 W* V8 d" ^/ x
                                                        .WR2_ADDR(22'h100000),& t5 P" S% n/ i0 d8 |
                                                        .WR2_MAX_ADDR(22'h100000+640*512),
4 f# ~- v- u! l% k. ]3 ~" j7 {                                                        .WR2_LENGTH(9'h100),
. E) L+ T" I1 R# a6 I/ s                                                        .WR2_LOAD(!DLY_RST_0),
, `1 j/ b, z& i' D! [                                                        .WR2_CLK(CCD_PIXCLK),
, P6 F. i9 m) {1 H7 j  \                                                        //        FIFO Read Side 1. P+ q+ w! c1 x
                                                    .RD1_DATA(Read_DATA1),, y  X) S% b4 J3 z3 K2 ^" }6 I! [! A
                                                .RD1(Read),+ F1 W$ l7 ], H* W
                                                .RD1_ADDR(640*16),* U6 U! q/ k- i$ V7 d& g
                                                        .RD1_MAX_ADDR(640*496),
3 @" q+ M7 |( G0 U% L                                                        .RD1_LENGTH(9'h100),
! q3 N+ ^) K, T2 C6 _                                                .RD1_LOAD(!DLY_RST_0),4 x' Y% l( \5 D" x2 x
                                                        .RD1_CLK(VGA_CTRL_CLK),
- K! t: K9 I& V' p% [                                                        //        FIFO Read Side 2
# c* q- |7 Y* f+ J& P                                                    .RD2_DATA(Read_DATA2),
! i  y+ k  ?8 `4 Q2 U                                                .RD2(Read),* K- ?& c  E" w) x$ d+ @7 @
                                                .RD2_ADDR(22'h100000+640*16),
; e4 @0 |( x' ~' V. r                                                        .RD2_MAX_ADDR(22'h100000+640*496),
; k7 G3 @/ V. M# x% B4 |) X                                                        .RD2_LENGTH(9'h100),
0 r( g7 V! C1 L" h/ k7 I: o                                                .RD2_LOAD(!DLY_RST_0),
: R; ~. N6 \2 S6 ~$ C                                                        .RD2_CLK(VGA_CTRL_CLK),
9 ~: H; G6 d/ F$ r3 f9 K                                                        //        SDRAM Side
0 h) G/ M7 K. ]: t0 S: [( ~                                                    .SA(DRAM_ADDR),
0 [: i- I$ m2 o6 q                                                    .BA({DRAM_BA_1,DRAM_BA_0}),
9 f: p2 V1 |8 b8 }/ }                                                    .CS_N(DRAM_CS_N),
4 y% X/ n" G/ [* g/ a+ }                                                    .CKE(DRAM_CKE),
% y9 h- ?; k! P- j5 v! _  g$ Q1 Y                                                    .RAS_N(DRAM_RAS_N),
3 t2 _7 ^: S8 T9 i; N1 E/ w# _$ P                                            .CAS_N(DRAM_CAS_N),) y" q0 |. X1 w( |& z- a8 ]
                                            .WE_N(DRAM_WE_N),
9 A, a1 G3 k2 {( X+ n                                                    .DQ(DRAM_DQ),# u! \/ h2 O' ~# L. O- X7 f" q* x, ^+ ]0 Z
                                            .DQM({DRAM_UDQM,DRAM_LDQM}),
3 j. y7 S+ u) F  @$ h$ i  X* i                                                        .SDR_CLK(DRAM_CLK)        );
& `; ?. U5 X# U% T6 B" @0 Y( }+ C! i$ V, w% _( E( E; o! Z- f4 c
I2C_CCD_Config                 u7        (        //        Host Side" i" p2 u, Q/ V: @, r7 v
                                                        .iCLK(CLOCK_50),2 Y8 D: x/ Z4 [' g8 j' m
                                                        .iRST_N(1'b1),
" ^/ P1 b- O6 _( F; R                                                        .iExposure(16'h0600),
4 ^8 |6 H: Z) H# I                                                        //        I2C Side7 z0 ~0 G/ |+ N
                                                        .I2C_SCLK(GPIO_1[14]),' ^4 ^1 y) Q9 {9 U
                                                        .I2C_SDAT(GPIO_1[15])        );
3 q& R/ y5 g+ g4 G9 x# d! m1 \/////////////////////////////////////////////////////////////////////
, y8 A# X) y: s! f1 K( fwire                [9:0]        DISP_R;
; Z) U4 q6 ?* q! _9 h4 A1 Mwire                [9:0]        DISP_G;' m6 r( G6 @2 h7 P7 N& [! f. x4 H) O
wire                [9:0]        DISP_B;
/ }. o! E! u0 u3 ?; d8 z3 x
7 |6 B$ H8 u. g: E5 C) \) U( j; ~//        To Display, ]  o0 E/ `6 v
assign        DISP_R        =        SW[17]        ?        mVGA_R        :        //        Red
3 S* ~; m2 ^1 t+ F$ ]                                        SW[16]        ?        mVGA_G        :        //        Green9 Q% N: v/ y1 S7 \5 s7 c. _$ ?
                                        SW[15]        ?        mVGA_B        :        //        Blue* y# p9 T9 C, [$ b8 E) g
                                                                mVGA_R        ;        //        Color2 {- z) b, @- z3 l. h, R$ e- \
assign        DISP_G        =        SW[17]        ?        mVGA_R        :        //        Red" }( x9 e& K% A0 d. r1 _
                                        SW[16]        ?        mVGA_G        :        //        Green
  Z8 w& S% f4 ^1 R                                        SW[15]        ?        mVGA_B        :        //        Blue4 B- S1 M. ]6 E( a1 N/ c8 P- {. k
                                                                mVGA_G        ;        //        Color
5 k  k6 Z/ P" C+ kassign        DISP_B        =        SW[17]        ?        mVGA_R        :        //        Red
' U1 v  N- b5 l" V5 N' Y5 b                                        SW[16]        ?        mVGA_G        :        //        Green/ s2 D) Q  n' p  u
                                        SW[15]        ?        mVGA_B        :        //        Blue
( [; Z3 d% Z6 H0 D+ p7 `& R; h                                                                mVGA_B        ;        //        Color8 ~4 v6 R1 [& u) v9 c

% T' ?% y0 _/ D//        SDRAM
+ h6 _; g. R% m4 H3 L# ^; Qwire [21:0] mSD_ADDR;
+ ~3 @9 [  l$ X. _wire [15:0] mSD2RS_DATA,mRS2SD_DATA;9 K+ z8 t: h0 Y9 Y6 R8 y
wire mSD_WR,mSD_RD,mSD_Done;
! B1 e  S7 O  _$ S//        SRAM Async Port7 Z8 A/ _8 u: ^3 z$ ^4 u' H" C
wire [15:0]        mSRAM_VGA_DATA;
1 i5 Q3 d( ]. D- \! O5 kwire                DLY_RST;! T* e8 T& N; Y. O/ ^' z& V1 y

" e5 c! E6 |6 C$ s6 i//        VGA
; H7 Y1 C5 p; M5 X9 r4 ~wire [9:0] mOSD_R;
* e; i+ S; M5 g- E0 pwire [9:0] mOSD_G;
+ G5 @, i9 |) Iwire [9:0] mOSD_B;. a. S4 s5 U) p, r/ J
wire [9:0] mVIN_R;
4 J5 ?  F6 f/ m/ j, ]* zwire [9:0] mVIN_G;7 s7 ^. O% y' E7 Y( T
wire [9:0] mVIN_B;( A9 l% Y$ i* ]- D% A8 e! Q
wire [19:0]        mVGA_ADDR;% L$ C9 T; n# l! T! }7 x
wire [9:0]        mCursor_X;' ^+ C) S* V, B/ T! L( D
wire [9:0]        mCursor_Y;
2 W1 x: \; K1 I6 C+ C  @wire [9:0]        mCursor_R;
. Y( N+ \( O+ h+ Owire [9:0]        mCursor_G;+ ?0 u2 k" V  z# ?. g$ h7 w
wire [9:0]        mCursor_B;$ u) A* M# |. D! `3 t' H
wire [1:0]        mOSD_CUR_EN;* m5 |5 `  w2 c: ^. T; A$ b; t
//        Async Port Select
. K! ~6 H" |7 b% S3 H/ H/ wwire [2:0] mSDR_Select;6 N& E5 R- s+ t' b
//        External IO& {* c- o# V) \& T: C  ^& j
wire [7:0] mExt_IO;
& }$ ~% U6 x8 J1 q$ ]2 L//        SDRAM Async Port
7 c0 N7 k5 U* @wire [15:0] mSDR_AS_DATAOUT_1;
# J/ y! C7 N% N" Twire [15:0] mSDR_AS_DATAOUT_2;
. g, Z; r; g; X& T5 uwire [15:0] mSDR_AS_DATAOUT_3;' W0 N; ^4 E& w" }
wire [21:0] mSDR_AS_ADDR_1        = 0;/ V9 R6 h1 J6 S/ J  h6 K  y; b
wire [21:0] mSDR_AS_ADDR_2        = 0;
8 \5 S# c; P1 A% l9 _% f/ awire [21:0] mSDR_AS_ADDR_3        = 0;4 J; Q; Z7 s  K; C- S9 c( b
wire [15:0] mSDR_AS_DATAIN_1= 0;! g9 [. y5 ]7 u* Q
wire [15:0] mSDR_AS_DATAIN_2= 0;
" a4 n  t/ K2 }/ b' k/ R# C' kwire [15:0] mSDR_AS_DATAIN_3= 0;. ?2 t- x+ L$ H9 g- z# g0 u( I7 I: J
wire                 mSDR_AS_WR_n_1        = 0;, K' Y6 Z% `. N
wire                 mSDR_AS_WR_n_2        = 0;$ E8 e6 v5 w5 l
wire                 mSDR_AS_WR_n_3        = 0;
, l" R" |2 y/ _5 f3 L  G//        USB JTAG
/ @8 p4 p: x, a( Q% l! j7 awire TDI;
' ?* {2 W- h  ~# @wire [7:0] mRXD_DATA,mTXD_DATA;8 ~: N  N+ D6 z+ c% Q" _
wire mRXD_Ready,mTXD_Done,mTXD_Start;
5 ~# b, }- a5 F7 {reg mTCK;/ }8 @- T  S- H! ^- L6 b
reg TDO;
9 k/ k  c( r2 l( t& H/ \# oreg [7:0] oRXD_DATA,oTXD_DATA;
' A! |% r/ d+ |, r, }5 o- xreg oRXD_Ready,oTXD_Done,oTXD_Start;% C( E  E  P/ @5 p
//        All inout port turn to tri-state% ]) a3 f- r4 Y4 N" B. _
assign        OTG_DATA        =        16'hzzzz;
& d: p; b7 V( J$ }1 s& n+ e. ~assign        SD_DAT                =        1'bz;( V( s7 T, m8 ]+ I. j
assign        GPIO_1                =        36'hzzzzzzzzz;+ k8 J3 U2 J7 s: _% \& W
//        Audio
" W5 B: p; K/ f) \assign        AUD_ADCLRCK        =        AUD_DACLRCK;
; f6 A4 J; x; M+ [) U  C/ H- ^& Jassign        AUD_XCK                =        AUD_CTRL_CLK;
5 j- F" X! Z$ V9 F
' T* X( O) F- t" C: |, Y5 y1 w6 ~; Walways@(posedge CLOCK_50)        CCD_MCLK        <=         ~CCD_MCLK;( N& ^! {# p9 {, [- [8 t
5 Z2 R% g% ]8 Z3 m( a6 a
always@(posedge CCD_PIXCLK)* K& C1 ~+ Y0 r7 \
begin, z2 I3 y3 |! b3 [6 e6 A
rCCD_DATA        <=        CCD_DATA;
0 L* v# v' P% ]/ m8 ]9 FrCCD_LVAL        <=        CCD_LVAL;" Y$ V! h1 v% S: e# w, f7 k. D& [
rCCD_FVAL        <=        CCD_FVAL;2 u' x& B+ e7 X6 X6 w6 r0 h
  if (!KEY[0]) begin- N7 L3 h+ W0 n7 T& o
     mTCK   <=   TCK;
, ]7 p8 o0 {8 k/ v; ^( l2 M" M- S     oRXD_DATA  <=  mRXD_DATA;
( n( U& @, l9 V- L3 m+ g7 C: \     oTXD_DATA  <=  mTXD_DATA;
1 y1 y, _- G5 h; B! j3 ]     oRXD_Ready  <=  mRXD_Ready;
. o1 C) W' v2 F6 R2 S3 ]     oTXD_Done  <=  mTXD_Done;
9 c+ [7 r, L1 \9 J     oTXD_Start  <=  mTXD_Start;
: ~* M4 }% ~+ j5 u) i  end
9 O3 x6 ?8 H7 ]  j  else begin
' h$ v6 ?& x0 Z+ W3 g! n     mTCK   <=  ~TCK;
. A& h0 F: W" p" i  end
: i8 }% _  }. `( D0 k3 {5 Bend
+ _. U: g3 f+ W  O: b. D6 c* vassign        mVGA_R        =        Read_DATA2[9:0];
6 q4 l; K% Q5 ]; O$ Lassign        mVGA_G        =        {Read_DATA1[14:10],Read_DATA2[14:10]};" I. i. D: s$ i) w
assign        mVGA_B        =        Read_DATA1[9:0];5 {! c+ k" `3 u* U. p
endmodule
  n) w4 |0 G. w" s& S3 F" w* e5 h" V% v, d& Y& X8 b
以上是我自己修改過後的CCD+USB程式,CCD影像還是能成功的執行,但卻無法驅動USB程式下載影像檔
/ G' N2 G7 t3 a% v5 F; S1 Z先說明一下驅動的流程.....* R+ z( e# G; q! g! U
在驅動CCD程式之後,先按KEY[3]鍵,VGA螢幕就會出現CCD所攝取到的動態影像,# E! u8 n0 L7 X' u; O
待調整好CCD位置,按KEY[2]鍵,即可定格影像選取所欲下載的畫面...
- l% ]& k. Z' T7 J+ J只要再按KEY[3]鍵,即可回復原先的動態影像....
, O# S* J6 o6 E$ l4 t6 T# [; `而通常存取畫面都是再按KEY[2]鍵等影像定格後,再驅動USB程式.
! F+ {$ A; m+ y8 G$ v3 t% f- v8 G- h5 T將USB程式下載到FPGA之後,即可在CPLD裡使用一套程式download由USB傳回來的影像檔...
8 u0 m( g7 ?, s1 c等檔案download完成後,在開啟一個影像軟體打開下載後的檔案....$ X( d; i4 ?" k- a
即可得到CCD所攝取到的畫面........
* g. d* x6 C( \7 C  N3 J! ~) M/ L以上是整各程式驅動的內容及流程..2 z  ?) u# S0 @
請各位高手給予一些建議與討論....5 a% `4 ?8 c; J- w. X2 |
謝謝.......
5#
發表於 2007-2-15 18:58:16 | 只看該作者
masonchung 大大...你先看一下囉...這幾天比較忙, 有空我再來看看好了...
6#
發表於 2007-2-15 19:11:45 | 只看該作者
我是覺得為啥USB沒傳影像的原因可能在CCD_PIXCLK沒動作...
7#
 樓主| 發表於 2007-2-16 14:03:26 | 只看該作者
嗯~~不是耶!!
, O& \4 d- j9 y* c8 v其實CCD和USB程式分2次下載到FPGA的時候,USB已經將CCD的程式給覆蓋掉了....
# D* \% z6 n/ t' q, NUSB傳送的影像其實是按KEY[2]鍵,影像停格時儲存在SDRAM裡面的資料....
. l$ v  L% m! n) e, x. n  U5 X漏掉了一像沒有說...其實在驅動USB之後,在CPLD裡download的檔案是從SDRAM裡面擷取到的資料...
5 p0 V) R" f: ^" V+ O% {" S原本CCD主程式裡其實是有一些程式可以刪掉,對影像的出現沒有影響的..." o( h( \$ C& z: K3 P& Z1 E
所以真正關鍵的程式是在CCD程式碼和SDRAM與mVGA及PIXCLK的迴圈之中......
: k6 Y6 _, h0 F而USB的程式碼只有簡單幾個關鍵KEY,我再PO一次.../ A& L6 v/ s6 [" D6 f; k

0 z5 o$ d- H1 a* l, Vmodule DE2_USB_API
  I6 p% H* q  V- m6 ^////////////////////        USB JTAG link        ////////////////////////////
6 t% D( E: N! d8 ^( Winput                          TDI;                                // CPLD -> FPGA (data in)" @/ ^/ e5 g  C7 X! V
input                          TCK;                                // CPLD -> FPGA (clk)
; e: R2 |( P6 P0 T2 K) X3 ninput                          TCS;                                // CPLD -> FPGA (CS)0 m$ O2 t1 E& l! @/ |
output                       TDO;                                // FPGA -> CPLD (data out)
! l1 F9 F  ~, i6 M% b) g  r" h. w  C9 O/ J6 d8 x9 Z8 g
//        USB JTAG
3 d# v* a9 E5 |, T3 P1 y; W5 u+ Hwire [7:0] mRXD_DATA,mTXD_DATA;
4 V5 e5 |. P* f# B2 A" ]" pwire mRXD_Ready,mTXD_Done,mTXD_Start;% |) t  o$ |& l, i* U& c/ q. x
wire mTCK;& L" u& j! s7 w# e; N
endmodule% N! m. U4 j, c! S5 y$ h; l

* h9 M9 {6 e* x3 @5 h; r$ B在驅動這個USB程式之後,就能覆蓋掉CCD程式,將儲存在SDRAM裡的最後資料傳輸至CPLD裡面.....
9 F2 s8 H- F- U7 p$ N' n所以現在我覺得問題是在...
# _2 W0 ?% K/ i% I如何在合成CCD與USB程式,按KEY[2]鍵將影像存入SDRAM之後....
+ [! T6 r; F4 M" L再行驅動USB程式....將資料傳輸至CPLD之中...
; u+ X2 s- K9 L4 ~; z8 V' q5 N6 e而前提是.........驅動USB的方式是依據FPGA裡面所提供的按鍵..如我想設定的KEY[0]鍵 ....
8#
發表於 2007-2-25 00:25:07 | 只看該作者
damy 大大...我是很想幫忙看一下啦
% v2 s* u! }9 G不過看到一大堆SOURCE CODE頭就昏了, 而且我猜這並不是全部的SOURCE CODE吧!% A; u5 U4 y/ ?$ H7 z1 m0 q3 f

; b7 B1 K! n+ r  i0 W& _& b" K你願意的話我倒是也願意在MSN上幫你看看 (雖然我不見得能幫到忙, 不過試試也好)
5 U+ c. [6 n) f我想你會有一些設計的方塊圖, 如果有的話應該有助於我瞭解你的設計.5 L) ]! X+ M8 w
我比較習慣從整個系統往模組再往電路看.
9#
發表於 2007-2-25 00:27:35 | 只看該作者
另外FPGA跟CPLD的編號能給我一下嗎?我可以從編號去猜一下你的設計會有多大, 要是能上傳你的report檔的話更好
10#
 樓主| 發表於 2007-2-25 16:16:45 | 只看該作者

回復 #9 tommywgt 的帖子

我是用Altera公司的QuartusⅡ軟體去模擬的哦!!, e+ D, ^( {. _7 E5 x
另外,這套程式要配合友x公司的FPGA產品才能驗證....
11#
發表於 2007-2-25 19:54:42 | 只看該作者
tommywgt大大 加油喔∼
: x/ B5 E, ^" E( r小弟沒有這些裝備只能猜測問題點而已% a+ ~0 J8 ^# E* q
拍謝拉
12#
發表於 2007-2-25 19:58:45 | 只看該作者
@@...好巧, 我也沒那些裝備...+ H- I7 o# A4 I+ |

2 P! r8 C. [: P說真的, 目前為止你提供的資訊很有限, " C# f3 y$ j3 N  c8 u, ?7 J
我先建議你回到RTL simulation環境看一下問題在不在? 
13#
 樓主| 發表於 2007-2-25 20:35:49 | 只看該作者
嗯~~用描述的比較不清楚..., E3 @$ Q  V% S
說真的...
2 j  h6 d% j6 m- G' o5 @' p那套程式和軟體也是花了我幾個月的時間才稍微弄懂它的架構
. T& |7 v8 s" s3 r$ ~7 Apost上去的程式是完整的...
/ V) b0 i# _7 ]* K# q因為主程式和副程式沒有顏色上的區別,所以看起來會很吃力..
: T0 b/ I: R% x1 p, t- P如果tommywgt版主有興趣.....
# A/ i: y9 {7 T8 U" t可以到 1 e) G4 W/ H" a# c0 b" E
https://www.altera.com/support/s ... a_ie_al_ap_ht_1_022
9 v7 h- a2 R8 |7 N& R( f
; `, F7 a% H2 A下載 Quartus II Web Edition (v6.1) 軟體
6 F3 C9 Q0 A, A8 ?  M- y免費使用期限三個月,期限一到,只要再重新註冊就好了3 V  u3 V2 l: `- M& Z2 d
程式的部份....如您有興趣,我可以寄給您.....
14#
發表於 2007-2-25 23:54:26 | 只看該作者
Quartus II 我有完整版的6 Z5 m1 x- n2 q7 i
7 w( F, j2 X( J+ S6 s
興趣是還好啦, 但是如果能幫上你的忙的話我倒也是很樂意.5 p& V/ ^% e3 S6 P
6 v# |, \; v) _+ D  |
你可以寄到我的gmail去 chiatsun.wu@gmail.com5 G3 K: ^, e! r& i8 y
最好是完整的project file (要zip起來哦) 另外有多資料的話是最好不過.
3 j' b) k7 B/ p: `8 x我手上有一片我自己做的EP2S90的實驗版, 連MPEG1/2/4都放的下, 我想放你那個project應該沒問題. 另外最好是有ModelSim能RUN的test bench file.' a+ _  M4 [, S  z

) @2 q: q3 k# Q& t& x5 S我會找點時間幫你看看. 另外可以的話最好請給我你的MSN, 因為只能利用下班時間看, 所以也許不會一下子看完, 但是我會找多點時間的.0 B2 H$ X, b+ {

1 a9 |8 n# D  g我不敢說交給我, 但是如果照你所說的, 問題應該不會太大才對.
15#
發表於 2007-2-27 16:44:13 | 只看該作者
看来在搞影像处理方面的人才还不少喽,小弟也在搞这方面的,不知能否能帮得上前面的大哥,) o" v# V' N2 v! l
MSN︴email]Gzwb_345@hotmail.com[/email]
- E5 w" ^0 @( I' w3 Kmail:  shine_zeng@163.com
16#
發表於 2007-2-27 18:10:52 | 只看該作者
哇...這個照片...帥+ p# R& C+ Y0 V8 H. ?6 K8 K

7 ], B# P$ h8 I5 ^/ X本人的照片也upload來看看吧
17#
發表於 2007-2-28 23:47:38 | 只看該作者
damy加油哦1 v3 I' M; y. f" h
有什麼問題的話歡迎你再提出來% J% G1 T, v' i/ ~4 o" O
另外也多參與論壇哦
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

首頁|手機版|Chip123 科技應用創新平台 |新契機國際商機整合股份有限公司

GMT+8, 2024-6-3 03:10 AM , Processed in 0.171022 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表