Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2007-2-15 14:45:38 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
各位板友,新年快樂:
* ^' T3 q7 V, O; r. X想請教各位版友一些問題,我目前有兩套程式,一套是CCD影像程式,另一套是USB的驅動程式,原本要將影像儲存到CPLD�必須先跑CCD程式,將CCD程式下載到FPGA後,等螢幕出現影像再按一KEY[2]鍵將影像定格後,再跑USB程式將USB下載到FPGA後6 j6 C  p/ G/ Q$ ~' @4 l3 Y
即能將FPGA內部的影像檔傳送到CPLD,但是我現在想要合成CCD與USB程式,不想分兩次驅動,但實際的語法我修改了好幾次都& K; Y9 p8 i3 e1 f5 ]* K: ^& L
失敗,影像還是能跑出來,但是下載到CPLD的畫面是黑色的(無影像存在),所以,想請教各位高手,能否幫我看一下程式,給我ㄧ些提示與建議.....$ L. B6 `8 [( U: S; X9 n) M
因為程式很長,所以我只列出目過前修改後最主要的程式碼..., J% l9 Z! d# ?1 P% A7 z9 v# `  z

8 i$ @6 U1 O; S//        USB JTAG
1 f9 j2 a! J" O/ ?' n3 O; Mwire TDI;  U3 N9 d$ v1 y% {% l
wire [7:0] mRXD_DATA,mTXD_DATA;     ----------------------------我增加的程式碼$ U: V9 p0 }; b! K
wire mRXD_Ready,mTXD_Done,mTXD_Start;  ----------------------------我增加的程式碼
* b* M- a$ t$ w2 ~1 ^reg mTCK;# S+ w" [% w, N) y
reg TDO;                                                 ----------------------------我增加的程式碼2 t0 u: f! E3 V/ f, U% P
reg [7:0] oRXD_DATA,oTXD_DATA;      ----------------------------我增加的程式碼
  j1 f, Q5 W" ?# Treg oRXD_Ready,oTXD_Done,oTXD_Start;   ----------------------------我增加的程式碼! O5 o, T- \% \! n! z# x4 V9 t
//        All inout port turn to tri-state
# r8 N, m6 q# f' E" V/ N8 gassign        OTG_DATA        =        16'hzzzz;
( I2 ~, p2 E; lassign        SD_DAT                =        1'bz;
5 Q1 \+ ]* q  a4 ^assign        GPIO_1                =        36'hzzzzzzzzz;0 r# r/ \* i' {3 U0 v) D' i
//        Audio
+ E3 Y, S, R. X2 Nassign        AUD_ADCLRCK        =        AUD_DACLRCK;
/ @7 k8 |$ ^0 J* Oassign        AUD_XCK                =        AUD_CTRL_CLK;- p& W( h' ?) g2 T) D: l
* e/ T% O" R8 n8 q" R
always@(posedge CLOCK_50)        CCD_MCLK        <=         ~CCD_MCLK;' s8 B3 w" P# R  b, P5 K) G! y

7 x# c* w( Q& E! `( E; u9 ~; talways@(posedge CCD_PIXCLK)% w, D/ t& V* g8 y
begin; a* K9 J" l' R, J/ x( v* x
rCCD_DATA        <=        CCD_DATA;
  o! h5 i# [( {* y& orCCD_LVAL        <=        CCD_LVAL;
4 Y' j2 ], u- j3 t* }2 VrCCD_FVAL        <=        CCD_FVAL;% n# }6 _( v  E( z8 \( D: f
  if (!KEY[0]) begin                                    從這一行開始是我增加USB的程式碼合成到CCD程式裡面5 H7 s" S. v0 G: p6 o- B2 i  E. C. F
     mTCK   <=   TCK;  K) O/ {  n/ Q
     oRXD_DATA  <=  mRXD_DATA;) G0 D! t, R  \# T- j# f0 J( y" F
     oTXD_DATA  <=  mTXD_DATA;/ m$ ]7 j" \" h; E+ m
     oRXD_Ready  <=  mRXD_Ready;
* ^1 ^/ q2 @4 ?) U' T     oTXD_Done  <=  mTXD_Done;
. V0 d7 D: X3 D) F8 B0 T     oTXD_Start  <=  mTXD_Start;
) v8 h, h2 x- X2 `& v$ Q  end                      結束...................
7 J7 Q* C8 i+ K& |8 k: [  else begin
* \6 s. H% Z; w0 O7 ^& B0 r     mTCK   <=  ~TCK;. w: D- x% L0 U3 g- [; Y
  end
& h7 D2 h0 |2 i3 e% Hend- P" u8 D  d1 m8 a
assign        mVGA_R        =        Read_DATA2[9:0];. q2 l4 h0 Z8 x9 Y9 W0 I
assign        mVGA_G        =        {Read_DATA1[14:10],Read_DATA2[14:10]};
% g: f7 j, ]! f( T! g4 T# A" }; C6 oassign        mVGA_B        =        Read_DATA1[9:0];
) T  u! [% t" h, zendmodule
% p& A# {' v7 m
/ o4 u9 b( X+ x) `) U/ L8 [原本單獨驅動FPGA的USB程式碼~
/ h2 Y- ^9 S0 t8 [  k3 x$ n. L; {
% J& f' p. c% d) e; smodule DE2_USB_API) c3 F! |6 w% `8 C. d* p( q* c
////////////////////        USB JTAG link        ////////////////////////////6 p/ d/ x. R1 E8 i* U6 T- e7 X+ I
input                          TDI;                                // CPLD -> FPGA (data in)
/ {# K0 |$ y( U9 [* pinput                          TCK;                                // CPLD -> FPGA (clk)  L0 x' G/ p1 x. \2 `" e
input                          TCS;                                // CPLD -> FPGA (CS): a1 D) X0 [' w/ R3 Z7 {
output                         TDO;                                // FPGA -> CPLD (data out)
' ~" ]% l' f1 }3 J  D4 ?( b. E6 |, Y# |* p  q
//        USB JTAG2 s% I: x' W$ s, ?  c
wire [7:0] mRXD_DATA,mTXD_DATA;# x' ]1 ^3 o  c5 `) H: ^8 ^7 Y' w
wire mRXD_Ready,mTXD_Done,mTXD_Start;
: b) C/ U* X  n  ]wire mTCK;
+ ~2 B5 q1 [# p! p4 A  Lendmodule
6 ~. K9 E' d/ X. H+ J( `
2 P1 d2 m6 {* ^. [8 S# r2 j想要將上面的USB程式合成到CCD程式裡面.....0 V$ ^' p. V% A& Q$ m2 g
但不曉得語法應怎麼表達才能完整,我的構想是等影像跑出來後,按原本CCD程式設定好的KEY[2]鍵將影像定格後.2 S, e# O: p; B6 ~9 r3 _+ n+ z& E' Y
再按KEY[0]鍵來驅動USB程式將影像下載到CPLD......: H, f: T6 b4 A1 M5 z' P$ ^
但改來改去下載的結果都失敗(但CCD影像是成功的)5 N' V) i; f" V* n& S) u
所以想請教各位高手,能否提示一下正確的語法.........- a* l6 N4 h& S$ O! T
謝謝.............
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2007-2-15 15:57:14 | 只看該作者
請問 CCD_PIXCLK 如何產生?8 g) ^5 f1 {$ z7 y" G
按了KEY[2]鍵將影像定格後還會有CCD_PIXCLK嗎?
3#
 樓主| 發表於 2007-2-15 16:53:00 | 只看該作者

回復 #2 masonchung 的帖子

masonchung 版主您好:! J/ `9 p8 Z- I, l
我還是將我的程式碼貼上去好了- r1 g1 f( ?: ^9 A5 A' x& o  e
因程式太長,所以分2次po
/ C7 Z% Z2 x4 ^! K1 D
8 k" b- [0 N# ?+ xmodule DE2_CCD& Y, L  E3 U2 i/ z( o' p" D
////////////////////////        Clock Input                 ////////////////////////* v/ F# |% f- T
input                        CLOCK_27;                                //        27 MHz0 W2 [: b( m1 P  J' |5 R0 y: P# L
input                        CLOCK_50;                                //        50 MHz
" _0 W* l) ?* e8 y7 m& q4 Rinput                        EXT_CLOCK;                                //        External Clock1 W% |, J9 O+ q" u8 M
////////////////////////        Push Button                ////////////////////////" C' e2 r3 E8 N
input        [3:0]        KEY;                                        //        Pushbutton[3:0]
: J% y7 ^, T1 O, y1 j' e////////////////////////        DPDT Switch                ////////////////////////
8 i; i' _4 f9 p0 E& d8 b5 i# Xinput        [17:0]        SW;                                                //        Toggle Switch[17:0]- [/ X1 H# U5 |/ ?
////////////////////////        7-SEG Dispaly        ////////////////////////
; e; n2 l- c3 G' [0 z# Toutput        [6:0]        HEX0;                                        //        Seven Segment Digit 0
& ?8 {! h* S7 Ooutput        [6:0]        HEX1;                                        //        Seven Segment Digit 1) e( m& _! q: ]2 c0 |
output        [6:0]        HEX2;                                        //        Seven Segment Digit 2
; ]! o5 X( f+ B- ^* c$ d, G- joutput        [6:0]        HEX3;                                        //        Seven Segment Digit 3  `! @; N4 U" [( P: }
output        [6:0]        HEX4;                                        //        Seven Segment Digit 4
8 q* }9 `* C+ a1 M- e; t& L  Houtput        [6:0]        HEX5;                                        //        Seven Segment Digit 5& l3 s3 |! B0 l! D
output        [6:0]        HEX6;                                        //        Seven Segment Digit 6
& f4 F: D1 y% W9 P4 Xoutput        [6:0]        HEX7;                                        //        Seven Segment Digit 7
1 ?! {& w* ^  O2 o////////////////////////////        LED                ////////////////////////////+ i8 n' K, x3 g& k4 u( R  H
output        [8:0]        LEDG;                                        //        LED Green[8:0]" |) @8 w. W6 d- K4 N6 l" ~3 j4 e) A1 q
output        [17:0]        LEDR;                                        //        LED Red[17:0]
6 U: }: d* T7 Z7 w! \////////////////////////////        UART        ////////////////////////////) V: x( c% A8 `# U* j! Y
output                        UART_TXD;                                //        UART Transmitter' V9 A, |% I  d: _2 ~: H1 H* m, f
input                        UART_RXD;                                //        UART Receiver- _. z  z0 S" Q! N& |7 u' H
////////////////////////////        IRDA        ////////////////////////////
$ k: I3 y  V$ g, @output                        IRDA_TXD;                                //        IRDA Transmitter
8 y$ k/ [; h% [: D9 u% ainput                        IRDA_RXD;                                //        IRDA Receiver
- q3 ]# _2 l& Y, E( C/ t///////////////////////                SDRAM Interface        ////////////////////////
9 ^/ T$ f; C4 a7 L5 minout        [15:0]        DRAM_DQ;                                //        SDRAM Data bus 16 Bits8 w3 W' K2 H6 }0 K# ~$ Y- [  b* A
output        [11:0]        DRAM_ADDR;                                //        SDRAM Address bus 12 Bits6 l, R) L! W. c
output                        DRAM_LDQM;                                //        SDRAM Low-byte Data Mask 8 _3 _" U$ l  V2 u! h
output                        DRAM_UDQM;                                //        SDRAM High-byte Data Mask
+ v& i: U& h1 }output                        DRAM_WE_N;                                //        SDRAM Write Enable2 k" p# |, V  H" Z0 K3 G
output                        DRAM_CAS_N;                                //        SDRAM Column Address Strobe
: @/ U- o/ \+ T" R6 e$ boutput                        DRAM_RAS_N;                                //        SDRAM Row Address Strobe) R& h  e8 ~- A/ c! h, N! L$ Q
output                        DRAM_CS_N;                                //        SDRAM Chip Select
" c/ L) w" x' ^( n- qoutput                        DRAM_BA_0;                                //        SDRAM Bank Address 0
% [: {& _* e" S6 G% \% v8 A% q7 ooutput                        DRAM_BA_1;                                //        SDRAM Bank Address 0" _5 J) Z, w0 V3 d! k
output                        DRAM_CLK;                                //        SDRAM Clock
+ ]3 S6 L- n5 {/ qoutput                        DRAM_CKE;                                //        SDRAM Clock Enable' R% u7 d$ G) g* ^
////////////////////////        SRAM Interface        ////////////////////////
5 O. Q7 P5 n  N8 i4 J  finout        [15:0]        SRAM_DQ;                                //        SRAM Data bus 16 Bits" c! o6 L% B$ D; @1 m* @% w5 f
output        [17:0]        SRAM_ADDR;                                //        SRAM Address bus 18 Bits
+ Y9 I1 B0 u0 k; T* Q6 }) m4 c1 d8 foutput                        SRAM_UB_N;                                //        SRAM High-byte Data Mask
* ~! X+ j6 U  ooutput                        SRAM_LB_N;                                //        SRAM Low-byte Data Mask
: r' X6 Z6 f% \- T( [) |( u9 \output                        SRAM_WE_N;                                //        SRAM Write Enable% \& `5 Z9 D8 Q1 u
output                        SRAM_CE_N;                                //        SRAM Chip Enable
3 S! r0 X1 n& ~) k7 T* Aoutput                        SRAM_OE_N;                                //        SRAM Output Enable/ ?# Z# [/ K8 D5 f1 O+ s/ [
////////////////////        ISP1362 Interface        ///////////////////////// w  }# n3 N$ m' U9 e
inout        [15:0]        OTG_DATA;                                //        ISP1362 Data bus 16 Bits
# m) O. x7 d3 Poutput        [1:0]        OTG_ADDR;                                //        ISP1362 Address 2 Bits
- u9 |+ N' x7 C0 e3 F. W& moutput                        OTG_CS_N;                                //        ISP1362 Chip Select5 v: |/ m3 d% T0 ^  w/ j: j
output                        OTG_RD_N;                                //        ISP1362 Write1 n3 e3 h5 }* p7 G& T
output                        OTG_WR_N;                                //        ISP1362 Read
$ Y( q/ N# _; @" Z- Y. W3 coutput                        OTG_RST_N;                                //        ISP1362 Reset9 |! d7 W9 a$ M; g
output                        OTG_FSPEED;                                //        USB Full Speed,        0 = Enable, Z = Disable
5 t# @5 C1 |: ]( i% `' J' Y  joutput                        OTG_LSPEED;                                //        USB Low Speed,         0 = Enable, Z = Disable8 _& S' W- V& w/ a9 Z% U: ~: A, F
input                        OTG_INT0;                                //        ISP1362 Interrupt 0
2 f% m8 L; S' k0 W( x2 I+ }input                        OTG_INT1;                                //        ISP1362 Interrupt 1
3 U, _* K* \' ~input                        OTG_DREQ0;                                //        ISP1362 DMA Request 0
1 [0 G# F( N" Q; g. P. w; oinput                        OTG_DREQ1;                                //        ISP1362 DMA Request 1% s! w  H$ ]. v7 n0 i+ J4 R
output                        OTG_DACK0_N;                        //        ISP1362 DMA Acknowledge 0
, E) W" A. {, K& K+ c) o& Eoutput                        OTG_DACK1_N;                        //        ISP1362 DMA Acknowledge 18 k( E: g7 i8 {8 A
////////////////////        LCD Module 16X2        ////////////////////////////6 @5 S1 k# X  p
inout        [7:0]        LCD_DATA;                                //        LCD Data bus 8 bits9 {9 J# J& d  N! Y' L* G! @' U8 H
output                        LCD_ON;                                        //        LCD Power ON/OFF
' D# m) `* l1 houtput                        LCD_BLON;                                //        LCD Back Light ON/OFF
4 t4 s4 T0 }4 d7 V) W/ U& poutput                        LCD_RW;                                        //        LCD Read/Write Select, 0 = Write, 1 = Read4 ~9 A$ z. I: `
output                        LCD_EN;                                        //        LCD Enable
# a" L5 d. W# p. O0 _& `+ Zoutput                        LCD_RS;                                        //        LCD Command/Data Select, 0 = Command, 1 = Data' U# E7 P1 O% U0 t: q1 I) s+ Y) o
////////////////////        SD Card Interface        ////////////////////////! N- r+ A) @+ Z" R7 H( h
inout                        SD_DAT;                                        //        SD Card Data+ Y1 d# ]1 |: U! W$ t' L8 y
inout                        SD_DAT3;                                //        SD Card Data 3
* \' y1 j' w. [inout                        SD_CMD;                                        //        SD Card Command Signal* b6 I: \: ?+ ?' W& e
output                        SD_CLK;                                        //        SD Card Clock+ l9 [$ |9 N9 J% o/ p; w% J5 W9 ^
////////////////////////        I2C                ////////////////////////////////
/ N. {8 l$ H3 f2 O3 dinout                        I2C_SDAT;                                //        I2C Data
) q/ _; k# W, I, J1 `output                        I2C_SCLK;                                //        I2C Clock
) ]. D9 V8 g) B5 H0 A6 H: a. s& V///////////////////        USB JTAG link        ////////////////////////////
& s, b! G" d& ]9 H4 f8 \; }# p7 Dinput                          TDI;                                        // CPLD -> FPGA (data in)8 ~, r% k$ t& h+ n3 I/ L- A
input                          TCK;                                        // CPLD -> FPGA (clk)
0 ]. k6 q. ?& f4 Rinput                          TCS;                                        // CPLD -> FPGA (CS)
' p/ R. v) L3 Y6 \output                         TDO;                                        // FPGA -> CPLD (data out)# {$ P6 Q0 O+ v/ _
////////////////////////        VGA                        ////////////////////////////
) c, Z9 @$ w! o6 v  ]8 w9 o; H) [output                        VGA_CLK;                                   //        VGA Clock; P# M; e) t5 f) N$ f
output                        VGA_HS;                                        //        VGA H_SYNC
: Y8 _4 ]+ }2 }. h8 C9 koutput                        VGA_VS;                                        //        VGA V_SYNC
5 {5 F& c8 f7 g' ^output                        VGA_BLANK;                                //        VGA BLANK  K) Z3 y/ H, a1 B4 @3 _
output                        VGA_SYNC;                                //        VGA SYNC% A# o) i5 C) e9 o  M' v! h' B: }
output        [9:0]        VGA_R;                                   //        VGA Red[9:0]
- F* I$ \/ V' `8 Zoutput        [9:0]        VGA_G;                                         //        VGA Green[9:0]+ y" M2 r' o  X, w( p' @1 Y1 _
output        [9:0]        VGA_B;                                   //        VGA Blue[9:0]
! p1 P* s& V+ S- G////////////////////        Audio CODEC                ///////////////////////////// B5 H' {; |9 x4 X6 W
inout                        AUD_ADCLRCK;                        //        Audio CODEC ADC LR Clock
& b" Z+ l3 O+ _# M2 I  m5 \! r" a. Winput                        AUD_ADCDAT;                                //        Audio CODEC ADC Data2 E8 \/ r$ T' e6 `+ j1 V
inout                        AUD_DACLRCK;                        //        Audio CODEC DAC LR Clock) k, V) t4 ]+ L, ~
output                        AUD_DACDAT;                                //        Audio CODEC DAC Data6 c0 S* E+ D% B; f. O: D* V9 |
inout                        AUD_BCLK;                                //        Audio CODEC Bit-Stream Clock
; J' {! f8 ]8 z( doutput                        AUD_XCK;                                //        Audio CODEC Chip Clock
: `5 z/ h) j. Z  B8 O. Q////////////////////        TV Devoder                ////////////////////////////
( i, I& A3 R/ Rinput        [7:0]        TD_DATA;                            //        TV Decoder Data bus 8 bits6 s. z- P! A. z% l
input                        TD_HS;                                        //        TV Decoder H_SYNC
& j- H4 Z( P/ j5 v/ r, oinput                        TD_VS;                                        //        TV Decoder V_SYNC( |3 k+ c, ?0 q4 o" N- f9 U
output                        TD_RESET;                                //        TV Decoder Reset
+ g/ P3 r/ W7 y1 _$ x* w* j////////////////////////        GPIO        ////////////////////////////////
4 }2 P5 Z" R2 O! N: ]: Kinout        [35:0]        GPIO_1;                                        //        GPIO Connection 19 Z! w+ S* r* e& u, ~: x
, }3 ?; X8 B/ F/ K7 H7 q. E. c
assign        LCD_ON                =        1'b1;
9 M& T0 N" X( u+ \, Xassign        LCD_BLON        =        1'b1;
+ V2 `+ w" p7 k( F# Tassign        TD_RESET        =        1'b1;  _; Z( p. J+ x5 e; ]
& L( }% g3 N( ]* w8 f+ e
//        All inout port turn to tri-state& J( y. u- w9 @! S+ q/ B# A
assign        SRAM_DQ                =        16'hzzzz;+ t. j% q8 T; _, R
assign        OTG_DATA        =        16'hzzzz;
: \$ F* E/ c( k4 vassign        LCD_DATA        =        8'hzz;
+ \- q" [9 f- R3 ]- h4 zassign        SD_DAT                =        1'bz;
, g( {; W6 e7 z' A0 B  ?! bassign        I2C_SDAT        =        1'bz;
3 I8 x, N1 Y3 y; k8 r' Oassign        ENET_DATA        =        16'hzzzz;
5 o- X6 \# |5 y3 kassign        AUD_ADCLRCK        =        1'bz;
: F" ^7 h8 i7 ?! D6 z: `assign        AUD_DACLRCK        =        1'bz;9 O. O2 E$ K1 |/ ^
assign        AUD_BCLK        =        1'bz;
4#
 樓主| 發表於 2007-2-15 17:05:19 | 只看該作者
//        CCD
8 d: M. X( h0 O5 jwire        [9:0]        CCD_DATA;' J' ?6 {5 Y; k, q: v
wire                        CCD_SDAT;- Y! c3 @' q  A9 R- z, c" W
wire                        CCD_SCLK;
4 O- S. h# e6 Twire                        CCD_FLASH;
2 |; @4 x# W; D3 n" M9 d: zwire                        CCD_FVAL;
8 k9 y2 o3 L; R* n! \9 `wire                        CCD_LVAL;
6 o% e; w) r- n6 _/ u- N# Uwire                        CCD_PIXCLK;2 `  T, f/ t$ W% I3 d# S
reg                                CCD_MCLK;        //        CCD Master Clock+ h; j; B4 _7 ~4 I4 d
, Z2 Q; n" s5 Q+ j" o  R! k
wire        [15:0]        Read_DATA1;/ G2 k! \/ I( l- n! i
wire        [15:0]        Read_DATA2;, n0 a4 `  F! _
wire                        VGA_CTRL_CLK;& ~' e: Z4 g4 @# N
wire                        AUD_CTRL_CLK;  s: E3 m2 e  Y; I9 v, k/ P
wire        [9:0]        mCCD_DATA;  h$ N! G# F2 I& Q; s
wire                        mCCD_DVAL;9 B& a; n) J. {- O% t3 L
wire                        mCCD_DVAL_d;( E, D! \7 \3 j9 q9 Z0 k
wire        [10:0]        X_Cont;* q) P; s: w- J" d
wire        [10:0]        Y_Cont;
  J; y$ [# Z# @2 }3 ewire        [9:0]        X_ADDR;1 ]+ L4 W4 r% T, [% t4 V. }
wire        [31:0]        Frame_Cont;
1 b4 `; T* p. a5 Y' Lwire        [9:0]        mCCD_R;
3 }% Z5 ?: \8 }  V  p& ?! Nwire        [9:0]        mCCD_G;
4 a3 T8 U1 w0 g  ]wire        [9:0]        mCCD_B;
% E5 i5 S8 _5 }+ I9 ~" U, v( [" ~wire        [9:0]        mVGA_R;7 C, q7 M* n/ `; Q" P9 V% V9 v
wire        [9:0]        mVGA_G;
+ v. k& i. F8 [$ D, y! ?; H" c" awire        [9:0]        mVGA_B;
8 g; H, b: I6 v5 F+ iwire                        DLY_RST_0;  P3 \6 Q; w3 f, f- ^6 B7 b
wire                        DLY_RST_1;1 E2 Q4 s7 E! G% L
wire                        DLY_RST_2;- K+ R3 t; k: X6 E# l
wire                        Read;
+ O; C: o, D+ O' f+ Mreg                [9:0]        rCCD_DATA;
) s$ d* _' V6 u; A2 `3 a. m, @8 V7 [reg                                rCCD_LVAL;
1 @* U' n( e# K3 vreg                                rCCD_FVAL;
- v8 a1 [% g7 V; v2 X( Q8 l7 y6 T7 h4 f1 L& B* @" a
//        For Sensor 1
" f0 W  }" W6 Zassign        CCD_DATA[0]        =        GPIO_1[0];( n4 ?8 O6 q) _% p
assign        CCD_DATA[1]        =        GPIO_1[1];
: D( `" P- q0 kassign        CCD_DATA[2]        =        GPIO_1[5];
2 n; A- f- i; C! N. ^assign        CCD_DATA[3]        =        GPIO_1[3];6 n7 o. |  ~7 T/ v; V! e
assign        CCD_DATA[4]        =        GPIO_1[2];) {) Y+ D" W, {5 x9 o
assign        CCD_DATA[5]        =        GPIO_1[4];
7 D' y: ^2 c- r/ ?9 uassign        CCD_DATA[6]        =        GPIO_1[6];# I  k/ f+ j- X
assign        CCD_DATA[7]        =        GPIO_1[7];
  i  X: T: K$ o" eassign        CCD_DATA[8]        =        GPIO_1[8];; Y0 i: x- {$ [7 T! c- ]
assign        CCD_DATA[9]        =        GPIO_1[9];
: J% N: y+ y0 U& I* l4 M6 A3 ~! rassign        GPIO_1[11]        =        CCD_MCLK;! r9 b  m1 _& ~# k; ]+ s
assign        CCD_FVAL        =        GPIO_1[13];0 e$ r. C* ^% W9 S: }- L: s* U# V
assign        CCD_LVAL        =        GPIO_1[12];  a+ K1 r! b$ `8 ?/ w
assign        CCD_PIXCLK        =        GPIO_1[10];
0 k! u0 f! Z8 w! y
# ^) K$ Y7 h! Lassign        LEDR                =        SW;
6 G& n! |1 P+ L' |assign        LEDG                =        Y_Cont;
4 p# L' T: q' ]. Iassign        VGA_CTRL_CLK=        CCD_MCLK;
1 g; ^0 S9 J3 [: q& }& Yassign        VGA_CLK                =        ~CCD_MCLK;1 ~) z5 I$ H- b2 C7 i6 M6 G# V
8 o! d/ O; u/ x4 X# c" u3 f
VGA_Controller                u1        (        //        Host Side7 G+ R" E: b: Y6 L: `
                                                        .oRequest(Read),
, ^- E$ [: z, `) m1 L' a1 b* f                                                        .iRed(                DISP_R        ),  }) F# _7 h+ E: j
                                                        .iGreen(        DISP_G        ),3 f; ~  j5 x$ t6 P2 e
                                                        .iBlue(                DISP_B        ),
& A5 E7 l6 g. b! G$ G% ?                                                        //        VGA Side! V0 k6 W+ t4 n  g& c+ b& S
                                                        .oVGA_R(VGA_R),
5 [/ `" N% T7 F# Z# z3 W! t                                                        .oVGA_G(VGA_G),: M$ ?+ p  y: R; u4 |0 @4 [
                                                        .oVGA_B(VGA_B),
+ j- s9 A- S" P1 O) T                                                        .oVGA_HS(VGA_HS),8 q+ O' l$ P' ^1 H7 t
                                                        .oVGA_VS(VGA_VS),
4 c/ y+ X: @. Z4 B' O- R                                                        .oVGA_SYNC(VGA_SYNC)," w$ d1 J1 _3 H5 b( p* k. x# q% X
                                                        .oVGA_BLANK(VGA_BLANK),0 e+ O" d' |7 O5 O$ W
                                                        //        Control Signal1 i+ Y- y7 x6 h& c; a
                                                        .iCLK(VGA_CTRL_CLK),+ F9 i1 y) _" E0 ?/ F' V. T
                                                        .iRST_N(DLY_RST_2)        );
' {0 N% W! l9 a8 l- u! T5 Q) Y3 ?$ _- E9 F% ]4 s5 ^
Reset_Delay                        u2        (        .iCLK(CLOCK_50),
* }/ {1 H, A2 ]4 p+ O+ v                                                        .iRST(KEY[0]),
6 i# g! s5 B' M4 m/ ~% z- {                                                        .oRST_0(DLY_RST_0),
- K# P7 }: r" @4 `: X5 x. r7 n                                                        .oRST_1(DLY_RST_1),
) A2 ^+ ~5 e) \                                                        .oRST_2(DLY_RST_2)        );% ^7 t8 R! T  o

9 P6 E, T% {; S. o" W( uCCD_Capture                        u3        (        .oDATA(mCCD_DATA),& X) {% R# g0 G% A/ d1 j. D* V( a2 t* F
                                                        .oDVAL(mCCD_DVAL),
4 }3 t$ F7 I& a. ^$ p                                                        .oX_Cont(X_Cont),: b1 ]* Q- [0 }5 k' P' s
                                                        .oY_Cont(Y_Cont),
. E* Q$ A  |/ j( S3 Q! t                                                        .oFrame_Cont(Frame_Cont),
9 u- v) v9 r: ]+ V                                                        .iDATA(rCCD_DATA),
0 A6 y7 b% H* v& A) F6 Z# a                                                        .iFVAL(rCCD_FVAL),) e. O5 ?; ?; v/ j8 t( i* y
                                                        .iLVAL(rCCD_LVAL),) I$ E) A0 T$ e  G$ J; A: O
                                                        .iSTART(!KEY[3]),
. f1 N1 {0 ~$ G6 Q) d                                                        .iEND(!KEY[2]),
7 B* c0 |1 L: q6 h3 g4 h3 R                                                        .iCLK(CCD_PIXCLK),
  {  G& G- e( |5 l5 P                                                        .iRST(DLY_RST_1)        );9 u8 z3 p7 d0 j# h' t9 B
  ]1 `/ X/ j6 \& C8 V
RAW2RGB                                u4        (        .oRed(mCCD_R),8 Z/ I9 ?) _5 h6 c) {
                                                        .oGreen(mCCD_G),/ I7 i, O, n. c) d/ [
                                                        .oBlue(mCCD_B),( x% l7 Y. u$ r4 R( m
                                                        .oDVAL(mCCD_DVAL_d),
. V; g8 T7 Y3 z6 f: J& Q+ C                                                        .iX_Cont(X_Cont),% }( B4 B2 c  _
                                                        .iY_Cont(Y_Cont),
& k, k4 e1 G# L1 l  I' J                                                        .iDATA(mCCD_DATA),7 A9 m/ {" f! Y& ?
                                                        .iDVAL(mCCD_DVAL),
+ r0 r2 h# N4 s                                                        .iCLK(CCD_PIXCLK),3 B3 I5 O6 S! [, ~4 I  U( P8 o6 l
                                                        .iRST(DLY_RST_1)        );
' r9 y# G* S, s; a' S5 o& d; J% N9 Y$ F% _7 j$ P
SEG7_LUT_8                         u5        (        .oSEG0(HEX0),.oSEG1(HEX1),
2 t9 h8 X- w8 y4 e( x; H9 m                                                        .oSEG2(HEX2),.oSEG3(HEX3),
6 m3 f3 X& s# a6 A                                                        .oSEG4(HEX4),.oSEG5(HEX5),
2 ^1 J7 V4 A: I! ~- Q, I% K/ h                                                        .oSEG6(HEX6),.oSEG7(HEX7),- c( s3 J. a9 Y
                                                        .iDIG(Frame_Cont) );+ ]% E+ B  X. ^' f# S) S, ?
/ d4 ?' L. [- n0 \( ]
Sdram_Control_4Port        u6        (        //        HOST Side
0 x. l+ c4 L' `  f$ R                                                    .REF_CLK(CLOCK_50),- O$ g4 V* [* s2 c) A) i9 ?
                                                    .RESET_N(1'b1),
! B4 s. M* j5 L9 I                                                        //        FIFO Write Side 1# t* Q/ s  T' ?; W
                                                    .WR1_DATA(        {mCCD_G[9:5],: |, T. U! Z9 \) O# ?( B; L* L
                                                                                 mCCD_B[9:0]}),
6 g. i* m% ?0 z                                                        .WR1(mCCD_DVAL_d),, K$ u: d2 d" w1 R" H0 Y
                                                        .WR1_ADDR(0),
$ l3 \/ y2 V' Q6 s                                                        .WR1_MAX_ADDR(640*512),6 m  ^8 N# v8 F9 ~1 _) L
                                                        .WR1_LENGTH(9'h100),# B' m' v0 Y) H" n! E
                                                        .WR1_LOAD(!DLY_RST_0),
- I9 \* A$ ^3 @" M0 x                                                        .WR1_CLK(CCD_PIXCLK),+ L8 w' k- t) W7 m
                                                        //        FIFO Write Side 2: c9 d* u; g5 R7 x2 o- d- [
                                                    .WR2_DATA(        {mCCD_G[4:0],1 _" H( D: a- Y+ k3 \  h. w
                                                                                 mCCD_R[9:0]}),+ j4 q* G* {' }8 W2 g
                                                        .WR2(mCCD_DVAL_d),
' u$ K- p- H2 _                                                        .WR2_ADDR(22'h100000),) c" ]- [/ L3 t+ D) j* _
                                                        .WR2_MAX_ADDR(22'h100000+640*512),$ G% D/ W) P9 k7 j9 [/ V% b; [
                                                        .WR2_LENGTH(9'h100),
: O2 e0 y7 \$ |( K3 V" S! O2 x                                                        .WR2_LOAD(!DLY_RST_0),! P, ]5 f9 O8 ]2 A* M8 m* r
                                                        .WR2_CLK(CCD_PIXCLK),
! p* F2 r, P/ ~, ^                                                        //        FIFO Read Side 1
3 Z% ^; S0 n. @9 x* }                                                    .RD1_DATA(Read_DATA1),
' _6 j2 a) Q, q! K$ u  r                                                .RD1(Read),- W+ c% A4 @$ ?8 z
                                                .RD1_ADDR(640*16),5 G! V, x* p% e3 G9 X: H; X/ S) n
                                                        .RD1_MAX_ADDR(640*496),
; ^# ~( O) ]7 o, w                                                        .RD1_LENGTH(9'h100),) P  V! b9 t  w, w: x
                                                .RD1_LOAD(!DLY_RST_0),
, n) v/ X5 u, x- z, @                                                        .RD1_CLK(VGA_CTRL_CLK),3 `5 X  J1 t1 A# ?' w$ ?, ^
                                                        //        FIFO Read Side 2
1 k* i5 F9 l& ?/ Q                                                    .RD2_DATA(Read_DATA2),+ i; m! a0 y6 G+ c. y0 v6 P1 P& ?
                                                .RD2(Read),
- g0 g' I$ N* X" F) K9 A$ D2 O2 o) P                                                .RD2_ADDR(22'h100000+640*16),
: X) d" x; S- |/ d% h7 \9 m" S9 O                                                        .RD2_MAX_ADDR(22'h100000+640*496),
9 l$ R) L) B% R# v# J7 _( F                                                        .RD2_LENGTH(9'h100),( H# q) K9 J/ q7 z9 G7 K
                                                .RD2_LOAD(!DLY_RST_0),
" R( {1 h0 R5 t$ O8 H5 U                                                        .RD2_CLK(VGA_CTRL_CLK),/ O* T9 E2 y) _& ~1 q3 U
                                                        //        SDRAM Side
  Z4 k. L9 i. W  H$ i2 D5 M                                                    .SA(DRAM_ADDR),
) c, v3 L0 m/ a0 |* G2 J                                                    .BA({DRAM_BA_1,DRAM_BA_0}),! J7 ^: {/ l# b. a/ K2 `0 Z
                                                    .CS_N(DRAM_CS_N),, Q2 Z2 c" \) Y5 @- X2 ~4 P; r
                                                    .CKE(DRAM_CKE),5 J* z3 q8 n1 ^  h
                                                    .RAS_N(DRAM_RAS_N),
. _, C9 {/ B$ O                                            .CAS_N(DRAM_CAS_N),
- e2 \- [  e- ^! U3 Z6 {' `1 I                                            .WE_N(DRAM_WE_N),) c! B& z6 B6 a/ U
                                                    .DQ(DRAM_DQ),
* g; d/ i+ C# H& m2 Y                                            .DQM({DRAM_UDQM,DRAM_LDQM}),- }# c5 _. r/ s4 L: @5 e5 L
                                                        .SDR_CLK(DRAM_CLK)        );
4 X& i2 d8 d2 a# n0 A# K# Z+ U  u8 h5 ~
I2C_CCD_Config                 u7        (        //        Host Side) h7 b9 l) o0 v' F- A. P
                                                        .iCLK(CLOCK_50),2 x/ d$ m3 a% J1 `; x: N% P
                                                        .iRST_N(1'b1),
/ `* Q7 j) k) C5 N3 m                                                        .iExposure(16'h0600),- E4 X% l8 }- N; B$ w
                                                        //        I2C Side
8 g5 y/ x5 O2 E1 j% @9 D                                                        .I2C_SCLK(GPIO_1[14]),5 o( \; |! A2 y- K1 |$ A% \
                                                        .I2C_SDAT(GPIO_1[15])        );
# `9 B. p) C9 \/////////////////////////////////////////////////////////////////////4 C2 |, Q  c  [4 V) h* R# j! g
wire                [9:0]        DISP_R;
" Z- t- s8 u! ~: v' z# jwire                [9:0]        DISP_G;: [3 `: O* w; t! |/ Q, I
wire                [9:0]        DISP_B;
# Z" f1 B# X2 V/ ]; I. f, X* X
4 Z! b" E' z) K& n; R//        To Display
1 s% o% T# q% @8 cassign        DISP_R        =        SW[17]        ?        mVGA_R        :        //        Red4 F9 g2 L( [  `. S; v
                                        SW[16]        ?        mVGA_G        :        //        Green
0 |8 ^0 @1 h6 T! u9 E3 A9 f                                        SW[15]        ?        mVGA_B        :        //        Blue& R" I9 x7 r( i# l: s
                                                                mVGA_R        ;        //        Color
. r$ z9 e- ^1 X' k7 e+ `% W! ?) [assign        DISP_G        =        SW[17]        ?        mVGA_R        :        //        Red
. k0 s. E+ ]( V6 T                                        SW[16]        ?        mVGA_G        :        //        Green
* G8 b' n) t' b$ g                                        SW[15]        ?        mVGA_B        :        //        Blue
& w: m( b' E6 E* ]                                                                mVGA_G        ;        //        Color
" l: n% R# `, o' {assign        DISP_B        =        SW[17]        ?        mVGA_R        :        //        Red( S  ^  G, L# O: c3 l
                                        SW[16]        ?        mVGA_G        :        //        Green! u6 c& Y6 z5 n) a& }. H/ \* n
                                        SW[15]        ?        mVGA_B        :        //        Blue  }! m9 G2 y+ f( n# A
                                                                mVGA_B        ;        //        Color
7 r  `+ I$ N7 z* \2 o3 \# {* z& Y/ t9 l$ q
//        SDRAM
9 H' N  H; c9 d7 I" Z9 |8 owire [21:0] mSD_ADDR;
# M3 z) m( v; q! v8 @wire [15:0] mSD2RS_DATA,mRS2SD_DATA;# R( L1 P& Z: M1 T. q& H6 r( w
wire mSD_WR,mSD_RD,mSD_Done;
2 e5 J- A' P2 w. F: C* Z//        SRAM Async Port7 }' D$ {5 B3 N. v3 B% I+ O
wire [15:0]        mSRAM_VGA_DATA;- o5 ~! A: [( u2 k! r
wire                DLY_RST;
5 J5 h1 \; K$ X9 W4 u+ O$ E' f) V( k( r- c9 C
//        VGA- W( S7 L  x# K: m  m
wire [9:0] mOSD_R;: [- S5 i" Y3 R% ]3 y0 [" n' l; a
wire [9:0] mOSD_G;
5 w: ^6 E/ e5 P& |& c, rwire [9:0] mOSD_B;' q. h! `. m$ [+ q
wire [9:0] mVIN_R;
5 ]: b" Q# c$ D2 d; J4 k5 qwire [9:0] mVIN_G;' k6 X7 S3 w/ X
wire [9:0] mVIN_B;( ]; H  K! S, O' O+ D9 g
wire [19:0]        mVGA_ADDR;
# a- ]; \5 ]" o! `! pwire [9:0]        mCursor_X;5 G6 m, j+ T; m
wire [9:0]        mCursor_Y;
* ?+ z9 Y+ \4 `1 Q( p- \wire [9:0]        mCursor_R;0 K/ A: I; A" _" K1 O( q& {
wire [9:0]        mCursor_G;2 ?% d1 {7 j! y% x2 Y- c/ H" t3 u
wire [9:0]        mCursor_B;. m3 E$ R* c; P3 \
wire [1:0]        mOSD_CUR_EN;
( e7 Z/ q8 C4 f; Y* o//        Async Port Select- w0 a) N: T- i  r/ C/ }
wire [2:0] mSDR_Select;
1 w! q+ p' i. E* T5 b4 c//        External IO6 k# @  G! D9 o
wire [7:0] mExt_IO;
; h) y& n) }& _) @7 z! P//        SDRAM Async Port8 L) F) t* c9 r! ?
wire [15:0] mSDR_AS_DATAOUT_1;; ^4 _+ Y& c9 p4 q& Q
wire [15:0] mSDR_AS_DATAOUT_2;. ]5 @; h# ~. G: r6 D& t
wire [15:0] mSDR_AS_DATAOUT_3;
, Q5 Y( V# Q6 x3 F2 y2 Y' g, ^% B+ Kwire [21:0] mSDR_AS_ADDR_1        = 0;7 K2 a) \$ o4 n5 X, d. W
wire [21:0] mSDR_AS_ADDR_2        = 0;
  g% ]9 \0 T2 t- Q% Swire [21:0] mSDR_AS_ADDR_3        = 0;
1 u  S* k# }6 s, K8 B- r% Cwire [15:0] mSDR_AS_DATAIN_1= 0;
% \! `- ?2 |; G% K5 pwire [15:0] mSDR_AS_DATAIN_2= 0;
$ r4 }, x0 W/ p# V: h! Hwire [15:0] mSDR_AS_DATAIN_3= 0;- V0 o: X) Z" c5 z9 b# p0 j
wire                 mSDR_AS_WR_n_1        = 0;2 [# Y- ^: ?& ]0 P( E
wire                 mSDR_AS_WR_n_2        = 0;3 P% _6 P8 [' d- Q& o% l! }( `
wire                 mSDR_AS_WR_n_3        = 0;/ M- K. U! e3 l& T
//        USB JTAG" _* ~2 e; l0 m, l0 q
wire TDI;
5 P0 ^. C6 O% b5 C! R& y: Zwire [7:0] mRXD_DATA,mTXD_DATA;
  j2 C: k2 w4 l: f0 ]2 uwire mRXD_Ready,mTXD_Done,mTXD_Start;
: e' z0 l4 |& d0 V2 p5 Ireg mTCK;
& \! |& R" }# q6 v, f( B# g! ~reg TDO;
( l9 ]9 k3 K$ c( |! Greg [7:0] oRXD_DATA,oTXD_DATA;
  f4 j* I7 `; o$ vreg oRXD_Ready,oTXD_Done,oTXD_Start;
. J( a8 \9 |$ ^  D. G2 v//        All inout port turn to tri-state
7 s/ `0 @+ m3 A6 Massign        OTG_DATA        =        16'hzzzz;# ~6 P6 S; h* S3 I; _
assign        SD_DAT                =        1'bz;
+ j: ?7 g1 X; ]( _, h+ ]# {assign        GPIO_1                =        36'hzzzzzzzzz;
0 Q; U0 Z; U* x//        Audio
: S( V5 U" z" Z/ Passign        AUD_ADCLRCK        =        AUD_DACLRCK;
$ U' X4 H5 `7 d; h" Z6 zassign        AUD_XCK                =        AUD_CTRL_CLK;5 P) ]' U" X: b5 V
( l9 M6 ?+ z# Q- d
always@(posedge CLOCK_50)        CCD_MCLK        <=         ~CCD_MCLK;  n! O3 l/ s( d! P
1 I8 N/ j/ n7 n
always@(posedge CCD_PIXCLK); [+ j3 C' T2 o/ M8 m1 j' X/ J
begin+ w( J* X6 c, d( g. a7 D
rCCD_DATA        <=        CCD_DATA;
. k0 L2 n2 S2 \$ p  V7 I! _rCCD_LVAL        <=        CCD_LVAL;
7 U0 f2 j0 j8 p2 p& \1 krCCD_FVAL        <=        CCD_FVAL;/ H, v  v! P6 p8 I. P. u9 _
  if (!KEY[0]) begin, d- O- z0 {; G9 P2 S8 v: f
     mTCK   <=   TCK;! U9 U# D- v7 `* v$ R* w; u5 i
     oRXD_DATA  <=  mRXD_DATA;
" n- Z) m# h( u9 E6 L$ k5 f     oTXD_DATA  <=  mTXD_DATA;9 e. O: v+ k5 w: ]" e! [
     oRXD_Ready  <=  mRXD_Ready;
7 U* @5 B! a( i, s( b# @     oTXD_Done  <=  mTXD_Done;
# A( M! |; @" y7 h& a; E" D     oTXD_Start  <=  mTXD_Start;( T% {: n( I% a- j, B- P
  end
5 N) V! W* b5 L  else begin
( n. G/ C1 @5 v3 T& d6 J2 }5 Y! A     mTCK   <=  ~TCK;8 J1 L" H7 q2 b( c! _  g  u
  end
9 m$ o; N: l4 Y* J% ~end0 Z/ S4 x, z$ `
assign        mVGA_R        =        Read_DATA2[9:0];- h& f3 ]% u" k; t3 s
assign        mVGA_G        =        {Read_DATA1[14:10],Read_DATA2[14:10]};
$ D; z4 [$ M/ s6 }+ X7 x. S! I) s* Y6 Aassign        mVGA_B        =        Read_DATA1[9:0];/ e* Q1 |' R' }# D: r' E& Y) j
endmodule
3 k) J/ m5 W8 H& d' ]
  g1 \6 |9 H! K/ f- U以上是我自己修改過後的CCD+USB程式,CCD影像還是能成功的執行,但卻無法驅動USB程式下載影像檔7 u# a" X! z6 `3 L7 [
先說明一下驅動的流程.....
' G9 _( }/ q6 }. i) \在驅動CCD程式之後,先按KEY[3]鍵,VGA螢幕就會出現CCD所攝取到的動態影像,
3 `: g1 Q! F8 c- N待調整好CCD位置,按KEY[2]鍵,即可定格影像選取所欲下載的畫面...
, k- z. ?5 \# S' |1 f- l/ h只要再按KEY[3]鍵,即可回復原先的動態影像....
  N* R' @, @) u8 h" ^( L而通常存取畫面都是再按KEY[2]鍵等影像定格後,再驅動USB程式.
' q# |* A. F6 p將USB程式下載到FPGA之後,即可在CPLD裡使用一套程式download由USB傳回來的影像檔...
' H3 u+ J$ E7 x7 l1 Y& [+ B# q等檔案download完成後,在開啟一個影像軟體打開下載後的檔案....# Z2 f5 Q' K  |  v$ g$ l
即可得到CCD所攝取到的畫面........
1 V1 d& u, f2 H( P( z9 O以上是整各程式驅動的內容及流程..& B% T8 W5 w3 B3 L
請各位高手給予一些建議與討論....
4 q; b0 a2 g, s  _( T  r/ C2 M謝謝.......
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 | 只看該作者
嗯~~不是耶!!' K: ?( D2 }# B
其實CCD和USB程式分2次下載到FPGA的時候,USB已經將CCD的程式給覆蓋掉了....
9 W6 k5 M  P% v9 uUSB傳送的影像其實是按KEY[2]鍵,影像停格時儲存在SDRAM裡面的資料....6 j6 `/ x8 Z) t$ H4 L4 n' K; b) M
漏掉了一像沒有說...其實在驅動USB之後,在CPLD裡download的檔案是從SDRAM裡面擷取到的資料.... x4 D) G9 {4 ]' W, M
原本CCD主程式裡其實是有一些程式可以刪掉,對影像的出現沒有影響的...3 \  \. n# J7 A* e# Y0 N/ D" ^
所以真正關鍵的程式是在CCD程式碼和SDRAM與mVGA及PIXCLK的迴圈之中......* {) [; {) M! l! J4 d0 h: ~
而USB的程式碼只有簡單幾個關鍵KEY,我再PO一次...9 N5 c8 @5 K- y: G: p+ Y- M

6 Y. P2 j* u1 V/ r8 Ymodule DE2_USB_API
$ R* ~! x+ ?- a; a) O0 R4 }////////////////////        USB JTAG link        ////////////////////////////
% N$ N- F- P! l+ ]2 O0 A9 Qinput                          TDI;                                // CPLD -> FPGA (data in)
3 J+ ~8 w2 k: ^4 k- }& G+ p9 dinput                          TCK;                                // CPLD -> FPGA (clk)
: ?- ]" s; j3 I( S8 s' A7 S$ Ninput                          TCS;                                // CPLD -> FPGA (CS)
" L3 f; l8 X& S) d- Ooutput                       TDO;                                // FPGA -> CPLD (data out)
4 a* F1 f: }, T6 c+ g! @9 w7 l- K8 C+ p  }
//        USB JTAG+ C$ t8 q* R- [. h( l7 v* h
wire [7:0] mRXD_DATA,mTXD_DATA;! I* O0 B3 Q, T) e5 m
wire mRXD_Ready,mTXD_Done,mTXD_Start;$ Z  q$ p. {6 F4 ]+ u5 m
wire mTCK;
+ H: I$ H$ T. R- E6 V" Rendmodule# v3 o$ i% [" M6 b) b1 v

) m% H, k5 u5 ^- k在驅動這個USB程式之後,就能覆蓋掉CCD程式,將儲存在SDRAM裡的最後資料傳輸至CPLD裡面.....
, R  j$ Y% D( e7 X所以現在我覺得問題是在...
! n2 N6 o/ q$ Z如何在合成CCD與USB程式,按KEY[2]鍵將影像存入SDRAM之後....
3 D# o2 |1 q# D$ ?* b再行驅動USB程式....將資料傳輸至CPLD之中...0 ?( L4 d. z8 u
而前提是.........驅動USB的方式是依據FPGA裡面所提供的按鍵..如我想設定的KEY[0]鍵 ....
8#
發表於 2007-2-25 00:25:07 | 只看該作者
damy 大大...我是很想幫忙看一下啦
5 y: G/ l+ q8 C9 A不過看到一大堆SOURCE CODE頭就昏了, 而且我猜這並不是全部的SOURCE CODE吧!
4 G& Z2 M# {7 U$ z5 d% }" J, {/ |+ o. T6 Q9 e5 w+ q6 f) J
你願意的話我倒是也願意在MSN上幫你看看 (雖然我不見得能幫到忙, 不過試試也好)
3 }7 X9 C$ S2 O. P* h' s+ M/ N/ n我想你會有一些設計的方塊圖, 如果有的話應該有助於我瞭解你的設計.
* J! I$ l' @1 i- k4 D' i我比較習慣從整個系統往模組再往電路看.
9#
發表於 2007-2-25 00:27:35 | 只看該作者
另外FPGA跟CPLD的編號能給我一下嗎?我可以從編號去猜一下你的設計會有多大, 要是能上傳你的report檔的話更好
10#
 樓主| 發表於 2007-2-25 16:16:45 | 只看該作者

回復 #9 tommywgt 的帖子

我是用Altera公司的QuartusⅡ軟體去模擬的哦!!9 i, X# R; r  W/ Q! C4 R5 N
另外,這套程式要配合友x公司的FPGA產品才能驗證....
11#
發表於 2007-2-25 19:54:42 | 只看該作者
tommywgt大大 加油喔∼& k  `. T: I' T8 i# Q! p7 }
小弟沒有這些裝備只能猜測問題點而已
  K& k% y0 Q& \, F+ J% w) ]4 y. I拍謝拉
12#
發表於 2007-2-25 19:58:45 | 只看該作者
@@...好巧, 我也沒那些裝備...
6 U  f% Y9 Z  ^3 H: l; d
' ?; i+ F  r: F/ S# i說真的, 目前為止你提供的資訊很有限, 0 u; [0 u$ c% h1 J
我先建議你回到RTL simulation環境看一下問題在不在? 
13#
 樓主| 發表於 2007-2-25 20:35:49 | 只看該作者
嗯~~用描述的比較不清楚...4 l$ E. H7 V& l1 q' g1 f1 m+ _
說真的...
) N1 ~0 F& g( E7 \8 q* C那套程式和軟體也是花了我幾個月的時間才稍微弄懂它的架構
7 H/ D. \; X5 e6 Kpost上去的程式是完整的...# R3 @& R" t8 z! p8 f" n; h
因為主程式和副程式沒有顏色上的區別,所以看起來會很吃力..1 z7 Z, V7 x) }4 f: y8 @
如果tommywgt版主有興趣.....1 o  _/ o& l9 P1 j
可以到
. Q2 i0 J+ y, ?' _- w# P+ shttps://www.altera.com/support/s ... a_ie_al_ap_ht_1_022
: K5 J, n2 Q, f; C' I# M9 I2 l/ k# I3 a7 V
下載 Quartus II Web Edition (v6.1) 軟體
2 G8 `; P4 ^% g: i3 L6 e免費使用期限三個月,期限一到,只要再重新註冊就好了; m$ u- C' Y! p: D
程式的部份....如您有興趣,我可以寄給您.....
14#
發表於 2007-2-25 23:54:26 | 只看該作者
Quartus II 我有完整版的& q3 p8 [; ?( O) X, N# u

% F2 }) U8 S  B* D2 |; Y興趣是還好啦, 但是如果能幫上你的忙的話我倒也是很樂意.2 H( q- v$ }/ u& P0 ^5 m- r
! [, H' m; J1 K- j  {& \# e% y
你可以寄到我的gmail去 chiatsun.wu@gmail.com  e, _) B! m) _3 K
最好是完整的project file (要zip起來哦) 另外有多資料的話是最好不過.
0 K% I- G( T1 t. q* i, j我手上有一片我自己做的EP2S90的實驗版, 連MPEG1/2/4都放的下, 我想放你那個project應該沒問題. 另外最好是有ModelSim能RUN的test bench file.6 @3 Q' b  W, T! n9 Q' `

3 J, h/ u1 G; L我會找點時間幫你看看. 另外可以的話最好請給我你的MSN, 因為只能利用下班時間看, 所以也許不會一下子看完, 但是我會找多點時間的.$ x6 I4 f# T1 q7 Y, c

7 u2 o+ M/ ]  B- ^- j; m' b& `我不敢說交給我, 但是如果照你所說的, 問題應該不會太大才對.
15#
發表於 2007-2-27 16:44:13 | 只看該作者
看来在搞影像处理方面的人才还不少喽,小弟也在搞这方面的,不知能否能帮得上前面的大哥,
5 d4 J( Q* p/ ^7 {MSN︴email]Gzwb_345@hotmail.com[/email]* @; w, f3 v$ t, v: m
mail:  shine_zeng@163.com
16#
發表於 2007-2-27 18:10:52 | 只看該作者
哇...這個照片...帥) N2 E) a5 `3 l0 y. `5 _
3 s" B5 {; L4 \2 ?7 R7 ]4 D
本人的照片也upload來看看吧
17#
發表於 2007-2-28 23:47:38 | 只看該作者
damy加油哦% G- @0 p. T2 L% |# E5 y  o8 @
有什麼問題的話歡迎你再提出來
& |* O2 |$ f3 S另外也多參與論壇哦
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-7 07:26 PM , Processed in 0.128008 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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