Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2007-2-15 14:45:38 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
各位板友,新年快樂:! s# e6 c  w& g5 ?
想請教各位版友一些問題,我目前有兩套程式,一套是CCD影像程式,另一套是USB的驅動程式,原本要將影像儲存到CPLD�必須先跑CCD程式,將CCD程式下載到FPGA後,等螢幕出現影像再按一KEY[2]鍵將影像定格後,再跑USB程式將USB下載到FPGA後( J* @! `4 \5 J# z- r* H& {
即能將FPGA內部的影像檔傳送到CPLD,但是我現在想要合成CCD與USB程式,不想分兩次驅動,但實際的語法我修改了好幾次都- [: [# n  |/ e2 e" d8 a+ L
失敗,影像還是能跑出來,但是下載到CPLD的畫面是黑色的(無影像存在),所以,想請教各位高手,能否幫我看一下程式,給我ㄧ些提示與建議...... J7 K1 X5 r* D, p
因為程式很長,所以我只列出目過前修改後最主要的程式碼...6 A3 e: v& g# {& J- S9 G

# M: c$ J9 g6 p//        USB JTAG# y! J1 O' C3 m2 L6 s
wire TDI;
7 M: I9 W% K+ b9 dwire [7:0] mRXD_DATA,mTXD_DATA;     ----------------------------我增加的程式碼  o5 a& Y9 V5 V1 }: M1 n
wire mRXD_Ready,mTXD_Done,mTXD_Start;  ----------------------------我增加的程式碼0 Q$ z) C0 n. S0 r4 W: T) \( I
reg mTCK;% v3 f* {% Z! }' A
reg TDO;                                                 ----------------------------我增加的程式碼
& j9 E0 N2 z$ e( ]4 A8 _reg [7:0] oRXD_DATA,oTXD_DATA;      ----------------------------我增加的程式碼( }9 u3 _, k3 g: S5 Y
reg oRXD_Ready,oTXD_Done,oTXD_Start;   ----------------------------我增加的程式碼2 G+ v0 _5 u. N" _( O, I' |
//        All inout port turn to tri-state* E- L+ D4 b1 [2 F# M" C
assign        OTG_DATA        =        16'hzzzz;. W$ s1 a1 r  X* N5 j
assign        SD_DAT                =        1'bz;
( h% c9 y5 b: C6 kassign        GPIO_1                =        36'hzzzzzzzzz;2 `- s/ Q$ `5 c5 b; `$ R4 v5 {
//        Audio) p+ O& o) p7 p0 ^' O, K: Y
assign        AUD_ADCLRCK        =        AUD_DACLRCK;
; u- M- v7 E/ I0 T4 b5 Gassign        AUD_XCK                =        AUD_CTRL_CLK;! v1 W2 }4 g5 p, S

  b! J% F% t: s! |always@(posedge CLOCK_50)        CCD_MCLK        <=         ~CCD_MCLK;) Y: R8 C  b: i  O1 V' H

: e  q. w1 F4 `5 kalways@(posedge CCD_PIXCLK)% j4 F1 G% I1 e5 m! z8 f2 A
begin
9 n  H% w% u7 ~. a4 P, t2 drCCD_DATA        <=        CCD_DATA;
2 n& C8 y5 a, r, i; y7 _/ S: g! ErCCD_LVAL        <=        CCD_LVAL;+ p2 j3 ?. q" X
rCCD_FVAL        <=        CCD_FVAL;
9 `% T6 W9 A* f9 _  if (!KEY[0]) begin                                    從這一行開始是我增加USB的程式碼合成到CCD程式裡面
6 g. Y( t. @2 a3 l     mTCK   <=   TCK;
5 J8 _0 E) R5 J     oRXD_DATA  <=  mRXD_DATA;0 l+ h, x: X2 @- c6 Z0 B$ j# y
     oTXD_DATA  <=  mTXD_DATA;; ]; b$ S' `% H: Y- W' x3 y
     oRXD_Ready  <=  mRXD_Ready;2 L9 `1 ?) V3 t1 J
     oTXD_Done  <=  mTXD_Done;
( N: P5 P" ^& M7 m. m7 Q     oTXD_Start  <=  mTXD_Start;- u9 d& E' O. m/ c1 y
  end                      結束...................) T1 X# c6 R  O9 D2 c. j% w
  else begin
5 e9 G% v0 G: V$ e$ g     mTCK   <=  ~TCK;: m+ w' s$ R5 |' }
  end2 t; u/ b7 G& X5 W6 F4 ^  z
end" [+ a. W) v( [: \3 A) {7 |6 f$ \/ k
assign        mVGA_R        =        Read_DATA2[9:0];/ h, W& v5 a! c- U& f# q, ?
assign        mVGA_G        =        {Read_DATA1[14:10],Read_DATA2[14:10]};
% F! m# r* G" g0 p4 F& @7 e! xassign        mVGA_B        =        Read_DATA1[9:0];! x1 {+ O& G( `* l5 W- \9 h. `- c
endmodule, n4 L6 u: x+ d, q& @$ ]

9 k' i9 u/ V5 ^- m  t原本單獨驅動FPGA的USB程式碼~
/ b6 u* i4 o& G) D+ M% s% f: v& k0 ?  F
module DE2_USB_API+ }5 Y2 f6 _/ O  U1 ?
////////////////////        USB JTAG link        ////////////////////////////
. p5 t+ `, i8 U5 I  I+ c  _* |input                          TDI;                                // CPLD -> FPGA (data in)
- W7 S! a/ h+ ?5 V$ W7 minput                          TCK;                                // CPLD -> FPGA (clk)/ e! J& ?  M/ F. h8 n
input                          TCS;                                // CPLD -> FPGA (CS)
; b  ]/ B8 C" ]/ n3 Loutput                         TDO;                                // FPGA -> CPLD (data out)
  m+ W/ Y' `, r2 W* i+ X0 u! P+ Z7 Q9 t/ G
//        USB JTAG: G* E) A4 r# S3 [
wire [7:0] mRXD_DATA,mTXD_DATA;* T8 z) k- Q+ Z* v/ X+ k6 ]. f7 Y/ ?- w
wire mRXD_Ready,mTXD_Done,mTXD_Start;% o4 b( J: k) H; h# v, U. K
wire mTCK;4 r  E( [6 ]. d) |, f: l* e
endmodule  B- D+ z0 \9 O" [  r! h) Z. j
" q: J- R1 b1 ~) m& O
想要將上面的USB程式合成到CCD程式裡面.....% L1 i9 r( `" l1 T
但不曉得語法應怎麼表達才能完整,我的構想是等影像跑出來後,按原本CCD程式設定好的KEY[2]鍵將影像定格後.
1 f6 [9 u6 R* S9 ]) K再按KEY[0]鍵來驅動USB程式將影像下載到CPLD......
/ \9 |8 S! S, M6 z, ^4 r但改來改去下載的結果都失敗(但CCD影像是成功的)
; r9 V, h9 @& C  Y3 e9 {6 x8 u" [所以想請教各位高手,能否提示一下正確的語法.........
& p3 d. w' b# B5 k, E謝謝.............
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2007-2-15 15:57:14 | 只看該作者
請問 CCD_PIXCLK 如何產生?
, a( N: g" N* ]/ X按了KEY[2]鍵將影像定格後還會有CCD_PIXCLK嗎?
3#
 樓主| 發表於 2007-2-15 16:53:00 | 只看該作者

回復 #2 masonchung 的帖子

masonchung 版主您好:* G" ~& C9 g  [, u" r4 X
我還是將我的程式碼貼上去好了
( p1 R' u6 o$ v% i5 S因程式太長,所以分2次po
2 n+ }  `# V. P1 y" i
% l5 x3 l% V+ Y. C$ D: C1 p- @module DE2_CCD
/ \, [9 v8 q% b- U3 a" m  Y////////////////////////        Clock Input                 ////////////////////////
$ W2 @7 ?4 Z; Einput                        CLOCK_27;                                //        27 MHz
- e$ z8 C5 t2 y0 vinput                        CLOCK_50;                                //        50 MHz9 k! W$ v9 h9 ^! r& b, @0 x+ q* J
input                        EXT_CLOCK;                                //        External Clock: I* ~+ B  I/ p2 a
////////////////////////        Push Button                ////////////////////////( v! X/ y8 C; |8 Z8 v
input        [3:0]        KEY;                                        //        Pushbutton[3:0]
1 k% a- i* D% k* U////////////////////////        DPDT Switch                ////////////////////////9 g0 a+ y  r7 Z
input        [17:0]        SW;                                                //        Toggle Switch[17:0]
& f, m  p2 S. c1 D# {5 \, v////////////////////////        7-SEG Dispaly        ////////////////////////0 y; _& \* W" ]/ [9 m
output        [6:0]        HEX0;                                        //        Seven Segment Digit 0
: k) V" p% Q1 [* g! Qoutput        [6:0]        HEX1;                                        //        Seven Segment Digit 1
1 t! Y, ^4 J, C- a$ w, {output        [6:0]        HEX2;                                        //        Seven Segment Digit 2
: ~3 _0 w# Q* V! f8 P9 |output        [6:0]        HEX3;                                        //        Seven Segment Digit 3
' q7 ?1 q! r8 w/ Y9 Koutput        [6:0]        HEX4;                                        //        Seven Segment Digit 42 ?* g, j6 o8 m6 \% Q6 O3 q7 l
output        [6:0]        HEX5;                                        //        Seven Segment Digit 5+ F9 J; E& u. _) a5 N' Q* E
output        [6:0]        HEX6;                                        //        Seven Segment Digit 6
% d0 k: a/ h7 m0 o4 V2 Foutput        [6:0]        HEX7;                                        //        Seven Segment Digit 75 r$ a- Z8 |& c% j
////////////////////////////        LED                ////////////////////////////8 f/ f6 x7 ?) T% l; i
output        [8:0]        LEDG;                                        //        LED Green[8:0]( n3 X/ Q: @: e2 P
output        [17:0]        LEDR;                                        //        LED Red[17:0]
# G# F0 m2 T$ g$ q7 |0 q////////////////////////////        UART        ////////////////////////////5 `% A+ \6 e8 [- y
output                        UART_TXD;                                //        UART Transmitter
; G& R+ Z1 R3 t/ O  X' Minput                        UART_RXD;                                //        UART Receiver3 \+ f0 [/ f$ _. @+ q7 M' y
////////////////////////////        IRDA        ////////////////////////////
" d8 N! _$ B" zoutput                        IRDA_TXD;                                //        IRDA Transmitter
; k9 A( I! ~, B' Y* p5 Sinput                        IRDA_RXD;                                //        IRDA Receiver! T+ N( _2 R0 V5 R2 B- J
///////////////////////                SDRAM Interface        ////////////////////////! S3 R! l: L$ S/ E3 z
inout        [15:0]        DRAM_DQ;                                //        SDRAM Data bus 16 Bits
( O+ n- ?* M; V5 Joutput        [11:0]        DRAM_ADDR;                                //        SDRAM Address bus 12 Bits
+ y; v6 V# m2 f2 n, |/ Xoutput                        DRAM_LDQM;                                //        SDRAM Low-byte Data Mask 2 b8 g4 E* Q( D4 b# d) w! Z  {
output                        DRAM_UDQM;                                //        SDRAM High-byte Data Mask
1 g4 P0 R* g% c0 @3 }5 I% A* Ooutput                        DRAM_WE_N;                                //        SDRAM Write Enable
' e% |- c( o; E( N( j7 Ioutput                        DRAM_CAS_N;                                //        SDRAM Column Address Strobe  k% m9 P+ E/ @. i6 P* E1 b
output                        DRAM_RAS_N;                                //        SDRAM Row Address Strobe! w$ u5 j& x5 w
output                        DRAM_CS_N;                                //        SDRAM Chip Select
! H/ e3 _; R( koutput                        DRAM_BA_0;                                //        SDRAM Bank Address 0$ }+ g; I5 |* ]4 z" m. Y  n
output                        DRAM_BA_1;                                //        SDRAM Bank Address 0" C% Z* r/ r+ u8 K
output                        DRAM_CLK;                                //        SDRAM Clock
' w3 h' I( \" S1 |output                        DRAM_CKE;                                //        SDRAM Clock Enable& w$ F7 i- D; i& t3 n
////////////////////////        SRAM Interface        ////////////////////////! [- S+ ^# @# \) I) X% Y: @
inout        [15:0]        SRAM_DQ;                                //        SRAM Data bus 16 Bits: Y7 @: b7 g% L2 ]3 U- Z' L
output        [17:0]        SRAM_ADDR;                                //        SRAM Address bus 18 Bits
9 T5 U& ]  Y6 x' x4 b2 b* z+ `output                        SRAM_UB_N;                                //        SRAM High-byte Data Mask + I+ A) K( u4 V8 K. W) t3 Z, I
output                        SRAM_LB_N;                                //        SRAM Low-byte Data Mask
/ Z0 D' V$ U' P  l0 x& O  ]& Aoutput                        SRAM_WE_N;                                //        SRAM Write Enable
( e# u: c- |6 v( Ooutput                        SRAM_CE_N;                                //        SRAM Chip Enable' n1 r" _# }3 u# y' x
output                        SRAM_OE_N;                                //        SRAM Output Enable2 k. [; ^- t$ [# V$ d& Z- q, c1 s
////////////////////        ISP1362 Interface        ////////////////////////8 f, R) D; q* H( t
inout        [15:0]        OTG_DATA;                                //        ISP1362 Data bus 16 Bits& e. q- p7 R1 C1 ~8 _9 K. w6 D
output        [1:0]        OTG_ADDR;                                //        ISP1362 Address 2 Bits" R- `) z2 @- V5 p9 B0 [1 M
output                        OTG_CS_N;                                //        ISP1362 Chip Select, e' U$ Q. X8 B% x" ]4 r: Q
output                        OTG_RD_N;                                //        ISP1362 Write
3 X7 G  k& c" @- {6 i; toutput                        OTG_WR_N;                                //        ISP1362 Read
% v/ i+ N- O2 e  joutput                        OTG_RST_N;                                //        ISP1362 Reset
2 d( J( n! o* V( aoutput                        OTG_FSPEED;                                //        USB Full Speed,        0 = Enable, Z = Disable
. x+ l# X, i- W. Z2 ^9 }8 Aoutput                        OTG_LSPEED;                                //        USB Low Speed,         0 = Enable, Z = Disable
1 S# d/ b7 l, E7 H3 D! Z2 d0 Sinput                        OTG_INT0;                                //        ISP1362 Interrupt 0; [4 B' u" o5 d* t
input                        OTG_INT1;                                //        ISP1362 Interrupt 15 ^) x/ Q% p1 X' Q( t) D( Q
input                        OTG_DREQ0;                                //        ISP1362 DMA Request 0. s9 e& q+ S7 }$ K/ D3 s  B
input                        OTG_DREQ1;                                //        ISP1362 DMA Request 1
; g$ u7 @& Z# r% woutput                        OTG_DACK0_N;                        //        ISP1362 DMA Acknowledge 0
; z$ p8 E# j" w2 coutput                        OTG_DACK1_N;                        //        ISP1362 DMA Acknowledge 1
) r, Z6 b: x" W- V  j////////////////////        LCD Module 16X2        ////////////////////////////5 M& c  {4 Z% o3 r& G4 d* D
inout        [7:0]        LCD_DATA;                                //        LCD Data bus 8 bits6 X/ R: @/ P" o. G# u# F+ u
output                        LCD_ON;                                        //        LCD Power ON/OFF
" F* l- Q" Z: X1 m' [  Goutput                        LCD_BLON;                                //        LCD Back Light ON/OFF9 u0 V9 ]1 @! L! l/ A
output                        LCD_RW;                                        //        LCD Read/Write Select, 0 = Write, 1 = Read
( I( g! i# M6 C, T& n2 W# Moutput                        LCD_EN;                                        //        LCD Enable
- v2 c& t5 G3 i+ Z/ ?output                        LCD_RS;                                        //        LCD Command/Data Select, 0 = Command, 1 = Data
& J5 X+ w+ q5 f5 o+ R////////////////////        SD Card Interface        ////////////////////////
; J, A! Z2 G, Q% ninout                        SD_DAT;                                        //        SD Card Data+ `2 P/ X- H0 i/ y, n! w
inout                        SD_DAT3;                                //        SD Card Data 3+ ~/ [: E1 }$ T
inout                        SD_CMD;                                        //        SD Card Command Signal& ?1 Z5 Y: z3 V: i  b5 Z
output                        SD_CLK;                                        //        SD Card Clock
: c( h, Q3 `1 @6 w. p* H) E////////////////////////        I2C                ////////////////////////////////- R4 D# ?% [1 o5 z1 e" S" V1 R
inout                        I2C_SDAT;                                //        I2C Data
* t% V' T2 A4 ]4 T6 Ooutput                        I2C_SCLK;                                //        I2C Clock
4 e5 |+ s, \2 h: w5 M///////////////////        USB JTAG link        ////////////////////////////4 ^6 e1 q3 w) T) z
input                          TDI;                                        // CPLD -> FPGA (data in)( M1 @' z+ X  X; \' O' N2 w
input                          TCK;                                        // CPLD -> FPGA (clk)
0 ?$ R- H3 r$ @) \) @; r" jinput                          TCS;                                        // CPLD -> FPGA (CS)0 ]; h% h% z+ I5 ?; z" u3 I, [: O
output                         TDO;                                        // FPGA -> CPLD (data out)% z; N5 Q, z; w. J
////////////////////////        VGA                        ////////////////////////////
& L$ s  t6 g) j7 [; joutput                        VGA_CLK;                                   //        VGA Clock6 x# `/ s! T; `6 g5 k. J
output                        VGA_HS;                                        //        VGA H_SYNC
+ e4 `: W* j1 \8 l9 i4 M% F$ j) goutput                        VGA_VS;                                        //        VGA V_SYNC$ Q* u- F- c" i. O" n$ m# k9 Z
output                        VGA_BLANK;                                //        VGA BLANK! @- S. e. t5 ]6 z) }
output                        VGA_SYNC;                                //        VGA SYNC
! q$ I- l- C8 Z3 a2 ~output        [9:0]        VGA_R;                                   //        VGA Red[9:0]
" d0 K4 |- [8 x9 D9 t: [  Poutput        [9:0]        VGA_G;                                         //        VGA Green[9:0]; t+ J6 n/ c4 F+ r
output        [9:0]        VGA_B;                                   //        VGA Blue[9:0]
! E$ i& ^: [" b8 o! k% }  N- M- b# T////////////////////        Audio CODEC                ////////////////////////////' U1 L# ^* X" w+ f. ]+ a
inout                        AUD_ADCLRCK;                        //        Audio CODEC ADC LR Clock
" c  d" R- W) m/ oinput                        AUD_ADCDAT;                                //        Audio CODEC ADC Data) }8 Y( q9 G0 j; T
inout                        AUD_DACLRCK;                        //        Audio CODEC DAC LR Clock
; o& y! l' o* i, R& [, R" G" Voutput                        AUD_DACDAT;                                //        Audio CODEC DAC Data4 r* w+ \, j6 ?1 ^) y1 U0 C# Q
inout                        AUD_BCLK;                                //        Audio CODEC Bit-Stream Clock
% i1 y; Z. a$ Qoutput                        AUD_XCK;                                //        Audio CODEC Chip Clock
: z7 N0 D5 p- M- G" n- U////////////////////        TV Devoder                ////////////////////////////
" z- Z% Q( T) Kinput        [7:0]        TD_DATA;                            //        TV Decoder Data bus 8 bits8 R' D$ F9 L3 K3 e+ X
input                        TD_HS;                                        //        TV Decoder H_SYNC
8 _6 X/ X0 {2 c6 v. Uinput                        TD_VS;                                        //        TV Decoder V_SYNC. h, O! y$ k) G  h( j8 a
output                        TD_RESET;                                //        TV Decoder Reset2 G: W5 [0 E1 G+ A9 A
////////////////////////        GPIO        ////////////////////////////////3 F: G7 l; G2 B- \; B* ]0 K
inout        [35:0]        GPIO_1;                                        //        GPIO Connection 1
4 v7 j4 D9 [% k
* d( Q  M' C  K* c% vassign        LCD_ON                =        1'b1;& W/ M) S9 T! m% U
assign        LCD_BLON        =        1'b1;$ ]1 [+ G3 |6 h: r
assign        TD_RESET        =        1'b1;
+ ^  F- x3 q3 f, {! W
* s8 g  v/ A% o# `( m- z2 q$ L//        All inout port turn to tri-state
0 h1 p, [7 x4 n: m5 i1 O5 Eassign        SRAM_DQ                =        16'hzzzz;
" \& J4 a2 {, i9 {7 `. y8 Eassign        OTG_DATA        =        16'hzzzz;& `" s! |% P3 c3 [9 V2 W
assign        LCD_DATA        =        8'hzz;
" m/ E8 n: p+ j) v+ tassign        SD_DAT                =        1'bz;
% g& S5 P, @. w7 yassign        I2C_SDAT        =        1'bz;
* U# M) ?, x* l4 c, \  ~assign        ENET_DATA        =        16'hzzzz;. }& \; w6 N+ T; V  d
assign        AUD_ADCLRCK        =        1'bz;3 l$ ?" S6 ~* G, ~: c2 _
assign        AUD_DACLRCK        =        1'bz;
1 K$ [& D6 F( o2 @assign        AUD_BCLK        =        1'bz;
4#
 樓主| 發表於 2007-2-15 17:05:19 | 只看該作者
//        CCD6 O& x; P4 {# W4 E
wire        [9:0]        CCD_DATA;
0 l0 g- H! {& Z# {( `/ awire                        CCD_SDAT;, ^; b- _5 h1 _* I
wire                        CCD_SCLK;( Y, p# D2 I  m* e5 B
wire                        CCD_FLASH;1 m; g/ n- W. d) b
wire                        CCD_FVAL;- [7 j9 E% ]* v/ T
wire                        CCD_LVAL;5 x( D, S9 K5 {8 ^  _* _
wire                        CCD_PIXCLK;  D; P$ H" j' s9 e+ N+ v
reg                                CCD_MCLK;        //        CCD Master Clock
' G% h0 ]4 R2 e" |5 h: e
& u3 S1 Y' b$ ywire        [15:0]        Read_DATA1;
/ c; Y, I4 `/ [5 ?8 B7 [2 y( Iwire        [15:0]        Read_DATA2;
3 ?  R" I9 y; E" R. dwire                        VGA_CTRL_CLK;
& S9 Z* {8 Q1 `! t* d- h+ e' H1 mwire                        AUD_CTRL_CLK;0 s4 a8 q2 S8 M& Y5 i3 m  h. `
wire        [9:0]        mCCD_DATA;7 i! x* c0 J/ H  N& q9 V3 @# Q6 C/ l( h
wire                        mCCD_DVAL;  L0 j4 i* v2 }! C/ r( o
wire                        mCCD_DVAL_d;
4 j$ b4 ?) S  Y& R* R% s1 I8 qwire        [10:0]        X_Cont;
8 F& U3 A2 x- Bwire        [10:0]        Y_Cont;
5 P' t6 y1 \3 d/ v' x) E) [wire        [9:0]        X_ADDR;
; |% S/ |1 f; `! }wire        [31:0]        Frame_Cont;
# y) c  Z1 x3 ~  vwire        [9:0]        mCCD_R;
- \7 i* C. B$ ]5 X! U1 iwire        [9:0]        mCCD_G;
3 W0 O: |! x1 n- ewire        [9:0]        mCCD_B;
* V5 W4 ?) ?) Kwire        [9:0]        mVGA_R;
' }# J- N6 n( c* }wire        [9:0]        mVGA_G;/ ^# A1 k3 M7 `0 U# j
wire        [9:0]        mVGA_B;
5 O! W, s& V  M% Z# Iwire                        DLY_RST_0;
, B4 B8 i$ s- o; {wire                        DLY_RST_1;, K% c  f5 q: d6 B: o
wire                        DLY_RST_2;, w0 |$ p& B" ]! Z. H
wire                        Read;. d; E8 M# S. h/ b
reg                [9:0]        rCCD_DATA;% [+ P* o- l( p+ M1 v* k. \8 t
reg                                rCCD_LVAL;3 X1 Z4 F+ {4 M9 |! p
reg                                rCCD_FVAL;
( v$ ~9 q) I; B! z' o3 f2 q
. T" b1 L# w; e1 d  d//        For Sensor 1- n0 N6 ^; S. S5 {2 A! y4 p" K) c
assign        CCD_DATA[0]        =        GPIO_1[0];" L, C+ R6 [) P; H
assign        CCD_DATA[1]        =        GPIO_1[1];% c' g6 `: c5 g9 d6 ~9 @
assign        CCD_DATA[2]        =        GPIO_1[5];
6 O' w: t; h1 l* t7 hassign        CCD_DATA[3]        =        GPIO_1[3];
" P- T3 r6 q5 F3 ]- I1 m" kassign        CCD_DATA[4]        =        GPIO_1[2];
4 n4 B2 j( u9 H/ W/ @( wassign        CCD_DATA[5]        =        GPIO_1[4];8 i4 T5 x; X- g2 e# C% |9 `
assign        CCD_DATA[6]        =        GPIO_1[6];! Z6 |) |% @3 h* O; X  c, _" r
assign        CCD_DATA[7]        =        GPIO_1[7];" S- s# {2 H0 @# \$ R: k
assign        CCD_DATA[8]        =        GPIO_1[8];
" o% W' W! Z& c+ `assign        CCD_DATA[9]        =        GPIO_1[9];3 E3 R+ E1 _' [% |/ t8 P% u1 P: \
assign        GPIO_1[11]        =        CCD_MCLK;& X* E3 V' c1 _$ F
assign        CCD_FVAL        =        GPIO_1[13];
1 a; P2 G5 G/ q9 A) R. aassign        CCD_LVAL        =        GPIO_1[12];9 B$ J/ ]' W3 a0 H
assign        CCD_PIXCLK        =        GPIO_1[10];2 l8 a! d" z, w5 m$ w+ c
6 @. F/ h$ d4 z
assign        LEDR                =        SW;
, a3 A" D) j9 J( K" h  q6 l4 yassign        LEDG                =        Y_Cont;
* T) C: Y+ m& [7 c* y2 e" \assign        VGA_CTRL_CLK=        CCD_MCLK;& _: |% b" w5 A! ~
assign        VGA_CLK                =        ~CCD_MCLK;( u5 `% g; g% O4 P" o
' P7 F$ X$ S- `- v: h2 d
VGA_Controller                u1        (        //        Host Side
+ z) A* [* @4 T4 t- c                                                        .oRequest(Read),, v7 F% M8 m" _
                                                        .iRed(                DISP_R        ),
/ o* Z. X! c) Q' V7 Y                                                        .iGreen(        DISP_G        ),
" c9 \$ P  U; m                                                        .iBlue(                DISP_B        ),
* f+ z4 _$ y, j! N6 R" w                                                        //        VGA Side' P( X% j2 Q0 W; b# O6 C# j2 b
                                                        .oVGA_R(VGA_R),
- \/ \  k% E$ K) ?: B0 T                                                        .oVGA_G(VGA_G),
4 W5 P& |) l' J$ s1 r/ B& Y                                                        .oVGA_B(VGA_B),
! X2 U* ]3 e! k& z                                                        .oVGA_HS(VGA_HS),
- f2 w3 l: n* A* E4 u( i$ x5 D* }2 h3 S                                                        .oVGA_VS(VGA_VS),$ b7 o; T, m3 f- M. s
                                                        .oVGA_SYNC(VGA_SYNC),4 I$ K6 n* J3 o: y, G# l
                                                        .oVGA_BLANK(VGA_BLANK),
' A8 n% R0 X2 A4 R8 k2 E                                                        //        Control Signal$ x# E/ k7 E: `2 Z3 y+ V
                                                        .iCLK(VGA_CTRL_CLK),) n1 [' Q1 u4 ^2 v% s
                                                        .iRST_N(DLY_RST_2)        );9 k& D2 }& j, u2 _8 ]% U3 t

# @& |  M! e; J, V- t/ @Reset_Delay                        u2        (        .iCLK(CLOCK_50),
$ J1 ]  s4 G9 d& E* n: A& l                                                        .iRST(KEY[0]),
' ^- J8 Y/ w* y% `$ C: U                                                        .oRST_0(DLY_RST_0),2 ]/ i: Z, O7 @8 H* W
                                                        .oRST_1(DLY_RST_1),: b8 `0 P( Z8 R. Z) h& o
                                                        .oRST_2(DLY_RST_2)        );- g* p' H7 G, p- g+ b
. X4 [- }2 V$ @% R/ p: Q7 k
CCD_Capture                        u3        (        .oDATA(mCCD_DATA),
8 J5 ^% R, f( Y+ G2 ?                                                        .oDVAL(mCCD_DVAL),* [$ [$ Y9 D& w% @
                                                        .oX_Cont(X_Cont),
' q) [! o4 G4 Y                                                        .oY_Cont(Y_Cont),$ c# G5 l3 w; a6 S
                                                        .oFrame_Cont(Frame_Cont),
  W! {/ e/ U1 M% L+ Z                                                        .iDATA(rCCD_DATA),9 C2 I- `3 z5 G$ M5 {4 _
                                                        .iFVAL(rCCD_FVAL),
; O$ ~) a; _/ U# _                                                        .iLVAL(rCCD_LVAL)," _/ {) a) M9 V7 [- x
                                                        .iSTART(!KEY[3]),  p* R, t* }3 `- F' r; i
                                                        .iEND(!KEY[2]),
4 s$ r5 u3 I/ i0 y, Y                                                        .iCLK(CCD_PIXCLK),* ?/ {( X) [; U. ?
                                                        .iRST(DLY_RST_1)        );
: d) K, o* k# h* N* ~* t& N1 q
+ Y* ?& R* f  b0 z. k! sRAW2RGB                                u4        (        .oRed(mCCD_R),' |  e/ H) |; _
                                                        .oGreen(mCCD_G),
- _! F+ b$ F& A- S% ]. d$ E: t8 {                                                        .oBlue(mCCD_B),
$ u1 z  d0 q: I8 W. v                                                        .oDVAL(mCCD_DVAL_d),  g  I$ a7 s# W( ^1 g$ @) H
                                                        .iX_Cont(X_Cont),; u/ I$ Q! T; L- d0 i) K
                                                        .iY_Cont(Y_Cont),% f+ n1 E0 o( a- l  G4 O8 B! u
                                                        .iDATA(mCCD_DATA),8 O% S  [  [( m' K) N6 _
                                                        .iDVAL(mCCD_DVAL),
' c4 R- B+ y- T" x  ]2 o                                                        .iCLK(CCD_PIXCLK),
5 N. O+ E" t" n+ R. F+ D                                                        .iRST(DLY_RST_1)        );
- h3 y- @) A; g/ i2 e* S4 {, _. w$ K/ s5 y* K
SEG7_LUT_8                         u5        (        .oSEG0(HEX0),.oSEG1(HEX1),  S9 I. h% b+ A
                                                        .oSEG2(HEX2),.oSEG3(HEX3),0 a9 L: t! S4 ^! Z
                                                        .oSEG4(HEX4),.oSEG5(HEX5),& G2 S% f! x. o$ j
                                                        .oSEG6(HEX6),.oSEG7(HEX7),' b8 P$ e6 i# G- a8 P! d5 h
                                                        .iDIG(Frame_Cont) );
  E& A+ ]# }* u, l$ d
1 o; l( ~* M% f" ^. X! V, Z5 KSdram_Control_4Port        u6        (        //        HOST Side3 t) J5 Z& X, A7 d7 ^
                                                    .REF_CLK(CLOCK_50),1 W/ p1 W, D1 @% }0 ?
                                                    .RESET_N(1'b1),
0 f3 [1 k0 Q) ?- B& ]                                                        //        FIFO Write Side 1' M  Y+ U; {" }$ G  @4 k: h
                                                    .WR1_DATA(        {mCCD_G[9:5],
9 j+ L' X: S: ?9 J0 ^                                                                                 mCCD_B[9:0]}),
' h+ {( w' V& K1 B( b" c                                                        .WR1(mCCD_DVAL_d),
5 Z- m& p! D* H7 G6 D' U( p                                                        .WR1_ADDR(0),+ q9 ]+ j& R1 H( {1 t$ N  p
                                                        .WR1_MAX_ADDR(640*512),
! i! A% O3 y: j) L3 V7 z$ i                                                        .WR1_LENGTH(9'h100),2 f0 S& {# j. T% b& ?2 R
                                                        .WR1_LOAD(!DLY_RST_0),
7 @1 }9 c. R5 y1 I* n                                                        .WR1_CLK(CCD_PIXCLK),) z) w! w& m1 P, W! R
                                                        //        FIFO Write Side 2
$ ~) D! a6 f( y. {1 |                                                    .WR2_DATA(        {mCCD_G[4:0],
$ [0 t- D* J& `                                                                                 mCCD_R[9:0]}),
, y" [( a( `" P8 E! ^                                                        .WR2(mCCD_DVAL_d),
  _/ `: y& R4 X" J" K# `; }3 {- C                                                        .WR2_ADDR(22'h100000),  ?) ]# |* K" v, ?" \+ \2 h
                                                        .WR2_MAX_ADDR(22'h100000+640*512),& o' ^' Q, [  B5 _. \
                                                        .WR2_LENGTH(9'h100),# Q! [8 B0 v/ R
                                                        .WR2_LOAD(!DLY_RST_0),
( K$ D; z4 @, W1 d  I                                                        .WR2_CLK(CCD_PIXCLK),
) D" f( h% A- t  v3 i                                                        //        FIFO Read Side 1# v; ^3 [4 ~' f( B& `
                                                    .RD1_DATA(Read_DATA1),
5 n" R8 j+ j% {4 Y* q% L                                                .RD1(Read),
, I6 A) V: c6 J& u6 ^                                                .RD1_ADDR(640*16),
, ?+ x1 H  X, z9 f5 {2 P5 |                                                        .RD1_MAX_ADDR(640*496),
( v* O, B0 x1 p, C- h                                                        .RD1_LENGTH(9'h100),
: C  ?, O& b% [; T+ {" M                                                .RD1_LOAD(!DLY_RST_0),
- @! R2 G& D% D                                                        .RD1_CLK(VGA_CTRL_CLK),* Q2 Z+ O% H( f5 C9 @% b8 S
                                                        //        FIFO Read Side 2
) L1 _; X5 ~0 R1 |# s) _                                                    .RD2_DATA(Read_DATA2),
( ?1 K& y' B) D# @' g- p                                                .RD2(Read),5 Y* [3 V  d: P) z+ W8 E8 O
                                                .RD2_ADDR(22'h100000+640*16),- _# S: _  N' }/ o0 T
                                                        .RD2_MAX_ADDR(22'h100000+640*496),$ D+ q( X  C7 k( @, n4 U
                                                        .RD2_LENGTH(9'h100),, G* U; q4 p; x9 Z8 {& Z$ l& U& z
                                                .RD2_LOAD(!DLY_RST_0),
* Y" z0 L0 s! J0 n* Y) @                                                        .RD2_CLK(VGA_CTRL_CLK),
+ h* A& t% U; J                                                        //        SDRAM Side
5 w$ b, {+ j. ?) P/ v# F! z  j7 H                                                    .SA(DRAM_ADDR),, d% x& r9 [7 d( W% G4 x
                                                    .BA({DRAM_BA_1,DRAM_BA_0}),* S3 D% n. M& h; h% R
                                                    .CS_N(DRAM_CS_N),* `9 ]) B8 R0 z5 Y
                                                    .CKE(DRAM_CKE),
+ P- w( ]$ K9 y0 N                                                    .RAS_N(DRAM_RAS_N),+ w& ~( [0 X5 t& i4 P
                                            .CAS_N(DRAM_CAS_N),
3 a' y  j- I% n! _5 ^                                            .WE_N(DRAM_WE_N),2 ^. G# m6 A8 y, [9 Y& u
                                                    .DQ(DRAM_DQ),
9 H7 `/ b; o' D' C% T                                            .DQM({DRAM_UDQM,DRAM_LDQM}),% p* }% T! W# f* a& ?1 ^% v
                                                        .SDR_CLK(DRAM_CLK)        );$ r9 K( A4 x8 @5 d

: ~$ w6 e7 X4 LI2C_CCD_Config                 u7        (        //        Host Side
$ ^% w# i- t. |$ S5 A5 u                                                        .iCLK(CLOCK_50),
; v) K2 s8 |2 @3 d9 V                                                        .iRST_N(1'b1),, U4 N+ d  V# j- ^2 T
                                                        .iExposure(16'h0600),
$ \6 `5 x' I- R& ^                                                        //        I2C Side
6 I+ y- B" j) K' G; t7 o7 R                                                        .I2C_SCLK(GPIO_1[14]),
$ }4 @$ _7 l4 W+ y: Z0 X( Y                                                        .I2C_SDAT(GPIO_1[15])        );
) V3 r0 d- D. a8 {5 S: L4 U. o" U/////////////////////////////////////////////////////////////////////& S, E3 R0 L: s( P& I8 t
wire                [9:0]        DISP_R;# Y. o& x/ P) e+ d, S2 b8 C
wire                [9:0]        DISP_G;, W5 c$ O- }0 P; j5 y' _% G& G
wire                [9:0]        DISP_B;
! \# L7 y* i3 T, E- _9 f' H% t, k* u% p
//        To Display* @! [$ K; Q6 L# A+ D
assign        DISP_R        =        SW[17]        ?        mVGA_R        :        //        Red
, s5 y1 X) `- {. }# I                                        SW[16]        ?        mVGA_G        :        //        Green
1 Q5 r8 ^8 b  Y' [% g7 X                                        SW[15]        ?        mVGA_B        :        //        Blue
. x1 W# c  p  x2 A" Y                                                                mVGA_R        ;        //        Color, o" A; N0 ?. o  M! E; R
assign        DISP_G        =        SW[17]        ?        mVGA_R        :        //        Red
# ]& \/ l3 e' y5 I                                        SW[16]        ?        mVGA_G        :        //        Green
* x. V+ y0 {3 E2 \* Z" H3 P                                        SW[15]        ?        mVGA_B        :        //        Blue
0 \3 w9 A3 \9 a* i  M+ ~                                                                mVGA_G        ;        //        Color
# l7 l2 x) x, g5 l8 B. c" _assign        DISP_B        =        SW[17]        ?        mVGA_R        :        //        Red2 ]% {" c, p8 V8 r8 Z* T6 `
                                        SW[16]        ?        mVGA_G        :        //        Green/ C) O/ D. _% F/ \/ H. Z
                                        SW[15]        ?        mVGA_B        :        //        Blue0 e$ R: g, t* B) E  F3 F! s( f
                                                                mVGA_B        ;        //        Color# c4 |4 \8 V5 @& C& M+ [- t: a
( F& Q/ Q# w" d
//        SDRAM
- Y, Y% l0 m# ]wire [21:0] mSD_ADDR;: D4 L: v8 s! l
wire [15:0] mSD2RS_DATA,mRS2SD_DATA;
+ w" ^" A: ?* {! m: Q! g$ H  @wire mSD_WR,mSD_RD,mSD_Done;
- }) x- C- I3 e  s- y//        SRAM Async Port
$ B8 E. h3 a+ X+ swire [15:0]        mSRAM_VGA_DATA;- K0 E. O& i6 @( r" x; o
wire                DLY_RST;# `% O- y5 E/ x. O$ G( j

* |  K/ b9 {, t, {# w0 S//        VGA
" q! J2 Z  d- c+ i1 p* u3 ?wire [9:0] mOSD_R;
1 p# `' c2 y: U3 \wire [9:0] mOSD_G;
0 v1 H% e, j6 N, L. o* L( }& Cwire [9:0] mOSD_B;0 g; }6 g/ ~' N. K- p
wire [9:0] mVIN_R;2 m& Y& H# O$ U2 {) ?, I7 J
wire [9:0] mVIN_G;
' E$ `2 Z5 ~! S- M  s% Q- kwire [9:0] mVIN_B;  o" g/ j" N) M0 j- @# E* D
wire [19:0]        mVGA_ADDR;. B- Y( |- }0 G
wire [9:0]        mCursor_X;
* h' Z; }* l. O* U7 G8 y7 m8 @8 iwire [9:0]        mCursor_Y;
) [" ?7 J$ j2 W8 C2 gwire [9:0]        mCursor_R;
7 R% k+ Q1 H% f1 Twire [9:0]        mCursor_G;) M. Z+ M! z9 ~# j& X
wire [9:0]        mCursor_B;. N  C) u8 T$ R. g. i- @
wire [1:0]        mOSD_CUR_EN;2 R* E7 M, v0 }# @! [
//        Async Port Select
5 e' a# k, S! p$ |/ q/ ^wire [2:0] mSDR_Select;
' M9 l: {4 N& c( i; y' t+ q//        External IO: t- i6 T" O% D7 k; T' i1 V
wire [7:0] mExt_IO;
9 F6 ]  a, m+ J  _! c//        SDRAM Async Port
1 v$ J- `  e0 ~wire [15:0] mSDR_AS_DATAOUT_1;
  t9 t+ f: g" I$ Hwire [15:0] mSDR_AS_DATAOUT_2;
& W, I" |% o/ v6 w" Dwire [15:0] mSDR_AS_DATAOUT_3;
6 x1 d6 S6 _" n2 X2 Y' _. jwire [21:0] mSDR_AS_ADDR_1        = 0;
* H4 u! e- g' ]6 t# J; i1 R& Pwire [21:0] mSDR_AS_ADDR_2        = 0;
* X. h  O; ~! J& S0 y! Xwire [21:0] mSDR_AS_ADDR_3        = 0;
5 \' U* n5 p( _/ jwire [15:0] mSDR_AS_DATAIN_1= 0;
: X7 L$ s5 i0 L4 V' a! C! nwire [15:0] mSDR_AS_DATAIN_2= 0;
+ O, V1 Y/ G" M8 n# O( m5 Zwire [15:0] mSDR_AS_DATAIN_3= 0;8 R5 ?1 Q1 L3 Z
wire                 mSDR_AS_WR_n_1        = 0;, r, N  p  x* c( S0 t
wire                 mSDR_AS_WR_n_2        = 0;2 \# x1 F0 n. n+ t5 j
wire                 mSDR_AS_WR_n_3        = 0;: ?/ N* R9 P8 z+ r  N0 x
//        USB JTAG" ?$ _4 \# h( ]9 W6 p8 f0 b- b
wire TDI;
* ~3 Z' K; l  A. twire [7:0] mRXD_DATA,mTXD_DATA;
" ~1 m9 M& L  p& i8 ?wire mRXD_Ready,mTXD_Done,mTXD_Start;
2 x  F$ T8 t2 T$ U- N6 nreg mTCK;8 s: w" w/ r/ d3 E/ B0 W. ^
reg TDO;
% P3 X3 J7 Z, H% ?3 D: l% _( v" yreg [7:0] oRXD_DATA,oTXD_DATA;5 Z5 n2 l* |) T2 u9 G; J& o$ G
reg oRXD_Ready,oTXD_Done,oTXD_Start;5 C$ H7 S6 Z' n- @5 z0 [
//        All inout port turn to tri-state1 M8 i8 F6 B5 I+ h- `9 ~# Z
assign        OTG_DATA        =        16'hzzzz;
/ T8 U: y* Q* ?: L4 Uassign        SD_DAT                =        1'bz;( w9 ~! j* T% N
assign        GPIO_1                =        36'hzzzzzzzzz;
6 H6 n! W8 Z* K1 [( i1 K* B//        Audio1 i: Y* }9 s" Q
assign        AUD_ADCLRCK        =        AUD_DACLRCK;
" `7 f. S0 P# U, P9 j9 \assign        AUD_XCK                =        AUD_CTRL_CLK;. {& D7 h9 T  Q7 k. @

! ^3 a4 U. X/ jalways@(posedge CLOCK_50)        CCD_MCLK        <=         ~CCD_MCLK;& }9 r4 L+ y0 n* @! h" h
0 \1 I+ w; p& y" W- e  d: T% G) V* Q
always@(posedge CCD_PIXCLK)" M" t2 L- Y3 e3 j: e) u+ r
begin
0 f  n/ Z! ]4 x, ^- k8 NrCCD_DATA        <=        CCD_DATA;
- M2 n4 o8 d- ^" CrCCD_LVAL        <=        CCD_LVAL;) y  c* I  b0 o: E3 l1 E7 l. Q
rCCD_FVAL        <=        CCD_FVAL;
, R3 s+ b; G6 a4 B7 [% Y; Q  if (!KEY[0]) begin
- T$ z1 D( ^8 V6 G$ Y* r7 E8 I8 S( c     mTCK   <=   TCK;
& j! _) }0 D3 J% I& u7 f7 H5 k     oRXD_DATA  <=  mRXD_DATA;( j! {: t4 n/ u' Y/ H# g
     oTXD_DATA  <=  mTXD_DATA;
8 r1 Y/ @4 ~5 F3 }! e     oRXD_Ready  <=  mRXD_Ready;
( S+ ~+ f0 {9 H- ~! I! X     oTXD_Done  <=  mTXD_Done;9 X# Z6 m" J9 j  `
     oTXD_Start  <=  mTXD_Start;7 o6 ]: R4 o! A" j4 n
  end
. J: S& B2 o( R9 E+ r; B  else begin & a6 Z& N* ]3 d1 ?
     mTCK   <=  ~TCK;
: @9 V: e! G. F# J: g4 |4 f  end
/ P* N3 H7 u( X7 V0 @end/ P6 y7 a5 x# S8 z4 w
assign        mVGA_R        =        Read_DATA2[9:0];
1 S/ @* c, F8 `; [assign        mVGA_G        =        {Read_DATA1[14:10],Read_DATA2[14:10]};
& C, S, U5 R3 Q. M% }1 Qassign        mVGA_B        =        Read_DATA1[9:0];
8 R; D5 a! e& Y2 y: o8 Wendmodule
  j+ l! O9 D) z6 T1 W" ~/ `2 e/ R5 \
以上是我自己修改過後的CCD+USB程式,CCD影像還是能成功的執行,但卻無法驅動USB程式下載影像檔
5 a. N0 U7 h; U7 T+ a. ~3 T先說明一下驅動的流程.....2 @9 E/ `! b0 |- e
在驅動CCD程式之後,先按KEY[3]鍵,VGA螢幕就會出現CCD所攝取到的動態影像,! ]1 K( X2 w- v7 L
待調整好CCD位置,按KEY[2]鍵,即可定格影像選取所欲下載的畫面...5 i5 I8 t$ M' E% F3 w
只要再按KEY[3]鍵,即可回復原先的動態影像....
9 f# r' b: |% Q3 X3 _* {# s& [. d而通常存取畫面都是再按KEY[2]鍵等影像定格後,再驅動USB程式.; }% O6 o6 j3 f$ H0 W
將USB程式下載到FPGA之後,即可在CPLD裡使用一套程式download由USB傳回來的影像檔...
+ k3 Q' R6 P$ s等檔案download完成後,在開啟一個影像軟體打開下載後的檔案....
% G0 w4 ?% D4 L$ e即可得到CCD所攝取到的畫面........
0 O2 O! ]& I3 F! ~. p* B; Y+ s以上是整各程式驅動的內容及流程..7 h. Z* x7 x, T+ n
請各位高手給予一些建議與討論....
2 F7 n+ ^  M8 r0 Q" J( @謝謝.......
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 | 只看該作者
嗯~~不是耶!!1 `- g! O8 Y/ Z% E' t& Z: l8 H4 @
其實CCD和USB程式分2次下載到FPGA的時候,USB已經將CCD的程式給覆蓋掉了....
, k$ P+ x9 C; v3 @% UUSB傳送的影像其實是按KEY[2]鍵,影像停格時儲存在SDRAM裡面的資料....# \! z9 |  k3 w) r: h6 z5 L' O
漏掉了一像沒有說...其實在驅動USB之後,在CPLD裡download的檔案是從SDRAM裡面擷取到的資料...8 W  K9 O$ g2 w9 y7 b4 \, m
原本CCD主程式裡其實是有一些程式可以刪掉,對影像的出現沒有影響的...
; D/ e" g( x7 S8 U( R" r5 o1 Z所以真正關鍵的程式是在CCD程式碼和SDRAM與mVGA及PIXCLK的迴圈之中......
( M$ c1 w6 F0 H0 {( S& r而USB的程式碼只有簡單幾個關鍵KEY,我再PO一次...
+ R  w0 m7 Q4 Z8 h2 W+ `
: o& m" F. c- ^: a9 r2 Rmodule DE2_USB_API
7 G. t9 b4 y! m. K& k( W, {////////////////////        USB JTAG link        ////////////////////////////. M: y, n! T" t8 }3 G0 s
input                          TDI;                                // CPLD -> FPGA (data in)
' u: t) f+ m7 |) Pinput                          TCK;                                // CPLD -> FPGA (clk)& u  E3 b) j+ {  @5 p
input                          TCS;                                // CPLD -> FPGA (CS)
, f$ K, d5 v0 }0 Y# \' ioutput                       TDO;                                // FPGA -> CPLD (data out)3 U0 b3 T( {, _- S/ {# E
0 C3 c( M1 c" k+ e
//        USB JTAG/ \. J2 Y9 V3 m* `4 g2 {
wire [7:0] mRXD_DATA,mTXD_DATA;
( X# k4 c/ d8 C6 Q* L+ Y8 r  m6 Uwire mRXD_Ready,mTXD_Done,mTXD_Start;
5 y9 Q2 e, |: L' Zwire mTCK;0 r( |  J: \' w4 W" R: N( F) H
endmodule
$ {. J) {( p; ]8 z3 I" e5 N
7 k. g' H* |4 x! O: E在驅動這個USB程式之後,就能覆蓋掉CCD程式,將儲存在SDRAM裡的最後資料傳輸至CPLD裡面.....6 n. e' y% P' z' O4 ?3 V
所以現在我覺得問題是在...
9 e1 W2 ^1 |1 K5 C& o, A' ^# O; M# F; [如何在合成CCD與USB程式,按KEY[2]鍵將影像存入SDRAM之後....
) `8 m+ f* @7 g; ^9 |6 K再行驅動USB程式....將資料傳輸至CPLD之中.../ Z4 t  z! }4 D+ L! m6 r% G
而前提是.........驅動USB的方式是依據FPGA裡面所提供的按鍵..如我想設定的KEY[0]鍵 ....
8#
發表於 2007-2-25 00:25:07 | 只看該作者
damy 大大...我是很想幫忙看一下啦
9 P) |9 S+ o& I6 e不過看到一大堆SOURCE CODE頭就昏了, 而且我猜這並不是全部的SOURCE CODE吧!
' V* K4 h  k- w# N% R: b7 p
. ^3 Y$ W8 G; C你願意的話我倒是也願意在MSN上幫你看看 (雖然我不見得能幫到忙, 不過試試也好)
  J- o! {9 q& u6 B# @我想你會有一些設計的方塊圖, 如果有的話應該有助於我瞭解你的設計." J; m0 h+ M  P$ z
我比較習慣從整個系統往模組再往電路看.
9#
發表於 2007-2-25 00:27:35 | 只看該作者
另外FPGA跟CPLD的編號能給我一下嗎?我可以從編號去猜一下你的設計會有多大, 要是能上傳你的report檔的話更好
10#
 樓主| 發表於 2007-2-25 16:16:45 | 只看該作者

回復 #9 tommywgt 的帖子

我是用Altera公司的QuartusⅡ軟體去模擬的哦!!1 w! V9 x! j( U$ n" x
另外,這套程式要配合友x公司的FPGA產品才能驗證....
11#
發表於 2007-2-25 19:54:42 | 只看該作者
tommywgt大大 加油喔∼1 j2 y; \/ D$ w& w5 a- K+ ~& R
小弟沒有這些裝備只能猜測問題點而已
9 D5 b9 y1 f3 U拍謝拉
12#
發表於 2007-2-25 19:58:45 | 只看該作者
@@...好巧, 我也沒那些裝備...
1 X' N( m3 A7 {4 f% ?; N* d5 ^! g' n9 G) e+ J( a0 ]' ~
說真的, 目前為止你提供的資訊很有限,
% |- Q7 _. O$ I( X2 t我先建議你回到RTL simulation環境看一下問題在不在? 
13#
 樓主| 發表於 2007-2-25 20:35:49 | 只看該作者
嗯~~用描述的比較不清楚...
6 e4 s( U7 m4 ]! V4 V說真的...
5 [5 \: ?8 f3 K4 T1 j8 j那套程式和軟體也是花了我幾個月的時間才稍微弄懂它的架構
: v% r8 M2 g6 k5 C4 x8 f- v- ?post上去的程式是完整的...! b7 ^% @  C, e
因為主程式和副程式沒有顏色上的區別,所以看起來會很吃力..
: I' m' T! R2 D如果tommywgt版主有興趣.....
" ]7 @5 b$ i4 B. v& }可以到 % s! A/ t, B; Z7 c
https://www.altera.com/support/s ... a_ie_al_ap_ht_1_0222 j$ O, e9 u+ Z/ w8 f- t4 a

; |# ]! A# P2 r, @! Z. m. N2 |4 T: f# V下載 Quartus II Web Edition (v6.1) 軟體
8 D& j- C4 m. s: v/ ]4 L免費使用期限三個月,期限一到,只要再重新註冊就好了
4 E5 ]8 g& V9 H; l2 k程式的部份....如您有興趣,我可以寄給您.....
14#
發表於 2007-2-25 23:54:26 | 只看該作者
Quartus II 我有完整版的
; `+ [/ E. p# t  o, i& L5 L/ f: q+ ?* C8 n/ y. p; r2 w+ N
興趣是還好啦, 但是如果能幫上你的忙的話我倒也是很樂意.; S7 c; F( \6 L4 p

  b$ x4 N  P3 P0 [/ ^你可以寄到我的gmail去 chiatsun.wu@gmail.com
7 a8 @, \& m9 M5 T. T! s最好是完整的project file (要zip起來哦) 另外有多資料的話是最好不過.
/ V" O: l) Q( ~我手上有一片我自己做的EP2S90的實驗版, 連MPEG1/2/4都放的下, 我想放你那個project應該沒問題. 另外最好是有ModelSim能RUN的test bench file.! j# b- \/ S4 H

- P2 }$ r  O/ H' M我會找點時間幫你看看. 另外可以的話最好請給我你的MSN, 因為只能利用下班時間看, 所以也許不會一下子看完, 但是我會找多點時間的.
; z7 j& {  \; i8 u% i1 D1 U) s% f9 _) S2 _( U) ?- ?7 ?
我不敢說交給我, 但是如果照你所說的, 問題應該不會太大才對.
15#
發表於 2007-2-27 16:44:13 | 只看該作者
看来在搞影像处理方面的人才还不少喽,小弟也在搞这方面的,不知能否能帮得上前面的大哥,) s$ R1 n7 k0 U* I# C1 D
MSN︴email]Gzwb_345@hotmail.com[/email]
2 F0 p. s* U( Omail:  shine_zeng@163.com
16#
發表於 2007-2-27 18:10:52 | 只看該作者
哇...這個照片...帥
+ i9 W2 r& I" `: u
" X, ^; |$ ?0 J, k/ h+ h本人的照片也upload來看看吧
17#
發表於 2007-2-28 23:47:38 | 只看該作者
damy加油哦
0 K$ f8 {8 B% ^. p有什麼問題的話歡迎你再提出來
* t) g* A9 D2 I% w2 e: V, A+ A另外也多參與論壇哦
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-1 02:14 PM , Processed in 0.138018 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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