Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2007-2-15 14:45:38 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
各位板友,新年快樂:
8 V' D9 M* S# W( M想請教各位版友一些問題,我目前有兩套程式,一套是CCD影像程式,另一套是USB的驅動程式,原本要將影像儲存到CPLD�必須先跑CCD程式,將CCD程式下載到FPGA後,等螢幕出現影像再按一KEY[2]鍵將影像定格後,再跑USB程式將USB下載到FPGA後
0 E+ G% E, a5 r7 ~! F& E" @即能將FPGA內部的影像檔傳送到CPLD,但是我現在想要合成CCD與USB程式,不想分兩次驅動,但實際的語法我修改了好幾次都3 N# c% X) b7 {6 O+ G: l
失敗,影像還是能跑出來,但是下載到CPLD的畫面是黑色的(無影像存在),所以,想請教各位高手,能否幫我看一下程式,給我ㄧ些提示與建議.....  V! u: S  g- M& S
因為程式很長,所以我只列出目過前修改後最主要的程式碼...
2 I  N- E- [# O$ N7 s5 J& u6 F# y7 X! Q
//        USB JTAG  f; |1 A7 C* q4 B  g
wire TDI;( K- u9 O2 A7 C3 f7 b
wire [7:0] mRXD_DATA,mTXD_DATA;     ----------------------------我增加的程式碼$ `& q5 |2 p! A3 j- C6 N& R( {
wire mRXD_Ready,mTXD_Done,mTXD_Start;  ----------------------------我增加的程式碼4 G4 w: Q6 p3 p% k" U
reg mTCK;
; P' C' g' ^, ?/ B& V0 S  k' o/ Sreg TDO;                                                 ----------------------------我增加的程式碼( H! i* n, }1 Y
reg [7:0] oRXD_DATA,oTXD_DATA;      ----------------------------我增加的程式碼7 R, _* H! y# I: |/ E! K
reg oRXD_Ready,oTXD_Done,oTXD_Start;   ----------------------------我增加的程式碼4 S( @/ s/ s2 W/ P9 \+ W- K
//        All inout port turn to tri-state, V( o9 n: J2 Q0 P6 j4 d
assign        OTG_DATA        =        16'hzzzz;
0 O" d) m# I% `assign        SD_DAT                =        1'bz;2 g, I- T+ \5 n$ h8 g1 a+ ^- E
assign        GPIO_1                =        36'hzzzzzzzzz;! g- J8 m( y1 ^1 P6 l  a
//        Audio; a  U: K# R7 R/ E, n
assign        AUD_ADCLRCK        =        AUD_DACLRCK;
1 e$ o9 E6 J2 F; K* ~assign        AUD_XCK                =        AUD_CTRL_CLK;) A& t5 P8 a. @+ g

: E& a3 C3 l: {0 Z6 ]0 n: jalways@(posedge CLOCK_50)        CCD_MCLK        <=         ~CCD_MCLK;# R6 `" E, \& t' Z

+ l4 E% y& q' `# Q& S; malways@(posedge CCD_PIXCLK)
$ T+ Y& [9 y# y! J8 B: lbegin" i; y* `) P: [4 y" S
rCCD_DATA        <=        CCD_DATA;0 \8 H+ n0 H' }: _- R
rCCD_LVAL        <=        CCD_LVAL;
& z7 Y4 G1 N  F$ s- T/ ~: |rCCD_FVAL        <=        CCD_FVAL;% m2 j) Y5 _7 E; r) ]
  if (!KEY[0]) begin                                    從這一行開始是我增加USB的程式碼合成到CCD程式裡面
' S" c2 U9 O; D* J. H     mTCK   <=   TCK;
8 `% y( r0 h7 p2 {  G* @5 S5 \     oRXD_DATA  <=  mRXD_DATA;! }% l7 [8 [; c& H
     oTXD_DATA  <=  mTXD_DATA;2 H$ O3 v+ l6 G- X/ d8 [. y
     oRXD_Ready  <=  mRXD_Ready;4 p" v! M0 l4 \2 y) [
     oTXD_Done  <=  mTXD_Done;
6 y4 s) z1 H! Q/ d  `4 K     oTXD_Start  <=  mTXD_Start;$ C- K" E. Y& [. K7 K  L
  end                      結束...................
- \( B2 q. y: L  else begin 5 F- s4 @" s( O: x
     mTCK   <=  ~TCK;
. m# O# s; B! l; R7 F# ^1 V' \( ~  end' B; x8 i. G! H: C/ T
end4 m) n5 n: V4 M) Z4 I
assign        mVGA_R        =        Read_DATA2[9:0];
1 Q  L& o$ ^& t' `1 xassign        mVGA_G        =        {Read_DATA1[14:10],Read_DATA2[14:10]};
$ t; v4 Q% i' E  C- ~assign        mVGA_B        =        Read_DATA1[9:0];3 V; [  d% @' O5 R) \& ]
endmodule
6 ]1 N; E" v$ d+ f8 b* @/ |: A, i3 H" U, ^
原本單獨驅動FPGA的USB程式碼~
/ k8 O6 R" o3 a0 v* u; |
. m/ I( N5 P. R3 Q, E7 ?module DE2_USB_API
+ @$ b# _6 ]: v4 U) W0 V; q////////////////////        USB JTAG link        ////////////////////////////  v' }+ @3 ?- R0 t" M; G
input                          TDI;                                // CPLD -> FPGA (data in)0 K6 W/ h. l  }3 w9 V
input                          TCK;                                // CPLD -> FPGA (clk)! w7 g! y# g/ \
input                          TCS;                                // CPLD -> FPGA (CS)
7 d3 A. l* |" v! o! Q0 l- houtput                         TDO;                                // FPGA -> CPLD (data out)' t& [$ S2 b6 E

/ V$ U" r) j( x* u7 P6 e  Q//        USB JTAG0 c  y* v( L" X* c  k7 r. N
wire [7:0] mRXD_DATA,mTXD_DATA;
% ^' l+ W& E: l* Cwire mRXD_Ready,mTXD_Done,mTXD_Start;
9 y9 Q( N, d8 R9 a0 jwire mTCK;9 f" i3 \  i. k
endmodule
; E/ \; m+ u6 r% \" L% _) B
$ ~) {/ B1 E0 p: I, M& B想要將上面的USB程式合成到CCD程式裡面.....
8 H+ n! `! q. T1 @" W; j但不曉得語法應怎麼表達才能完整,我的構想是等影像跑出來後,按原本CCD程式設定好的KEY[2]鍵將影像定格後.% ]4 C' J- v0 ?6 \1 f
再按KEY[0]鍵來驅動USB程式將影像下載到CPLD......0 z5 D* c. b$ G, `
但改來改去下載的結果都失敗(但CCD影像是成功的)
/ _3 F. K% |) [/ _9 R所以想請教各位高手,能否提示一下正確的語法.........4 J+ ^& K: y. K% B6 p
謝謝.............
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2007-2-15 15:57:14 | 只看該作者
請問 CCD_PIXCLK 如何產生?0 a9 f. y* h- K2 G5 f/ [
按了KEY[2]鍵將影像定格後還會有CCD_PIXCLK嗎?
3#
 樓主| 發表於 2007-2-15 16:53:00 | 只看該作者

回復 #2 masonchung 的帖子

masonchung 版主您好:5 O! h' E) T% t& F# C
我還是將我的程式碼貼上去好了
* Q% ?6 x+ O0 T  E9 H1 Z8 @因程式太長,所以分2次po
; m6 o/ _( b" [3 E; @; b0 V) Y2 l
module DE2_CCD
4 m; _$ r1 M% k6 ~6 C# t7 V$ i////////////////////////        Clock Input                 ////////////////////////
# s4 r4 |' P- u, T9 {input                        CLOCK_27;                                //        27 MHz) t/ F  h$ B% c0 Z' S4 z
input                        CLOCK_50;                                //        50 MHz! j; P$ G. b( t& n
input                        EXT_CLOCK;                                //        External Clock4 o; [7 f4 b% ?" y% _
////////////////////////        Push Button                ////////////////////////" J% T- y, i0 e+ @* B/ W& @! ?$ u8 z
input        [3:0]        KEY;                                        //        Pushbutton[3:0]3 F) ~# Z5 l$ M! N/ `1 v
////////////////////////        DPDT Switch                ////////////////////////
* w0 k$ p! _- v% Vinput        [17:0]        SW;                                                //        Toggle Switch[17:0]$ y7 Y! V; ]& R! w- \
////////////////////////        7-SEG Dispaly        ////////////////////////) m0 V, s+ y7 f5 f8 w  Q6 f
output        [6:0]        HEX0;                                        //        Seven Segment Digit 0% q0 ^9 ?; B# l; n. N
output        [6:0]        HEX1;                                        //        Seven Segment Digit 1) q. ?6 _3 i/ b& Y; j3 f$ [  {* S
output        [6:0]        HEX2;                                        //        Seven Segment Digit 2' y/ _$ e5 ?% @% U2 U2 e
output        [6:0]        HEX3;                                        //        Seven Segment Digit 3+ l6 O2 P% O3 p  n8 x$ m% Q
output        [6:0]        HEX4;                                        //        Seven Segment Digit 4
. U1 P. [. t4 e" {& X  }2 e' {output        [6:0]        HEX5;                                        //        Seven Segment Digit 5" C) X3 R" p3 [  P3 k
output        [6:0]        HEX6;                                        //        Seven Segment Digit 6
" Y5 K0 c( u5 N  Coutput        [6:0]        HEX7;                                        //        Seven Segment Digit 7) g- s" q: d9 E; c% n
////////////////////////////        LED                ////////////////////////////) b  C2 w$ N5 I3 Y5 @
output        [8:0]        LEDG;                                        //        LED Green[8:0]" ^* J: ^5 p, Y) I
output        [17:0]        LEDR;                                        //        LED Red[17:0]
+ S8 F3 }/ b' b  v$ y$ r, z////////////////////////////        UART        ////////////////////////////
( \: v* B% {9 w/ [output                        UART_TXD;                                //        UART Transmitter
4 n7 ?  b% T4 \. \9 y1 Rinput                        UART_RXD;                                //        UART Receiver5 m7 L1 N6 E% x( k- S; J6 x: \
////////////////////////////        IRDA        ////////////////////////////
% y9 Y) b. B/ f4 E! [4 C$ Loutput                        IRDA_TXD;                                //        IRDA Transmitter; F% {6 h; ]/ Y9 h  G
input                        IRDA_RXD;                                //        IRDA Receiver
* s3 y( d( k5 ~9 M9 f+ R, b///////////////////////                SDRAM Interface        ////////////////////////9 q& y& R! F5 f
inout        [15:0]        DRAM_DQ;                                //        SDRAM Data bus 16 Bits, A6 t5 v7 [& }
output        [11:0]        DRAM_ADDR;                                //        SDRAM Address bus 12 Bits$ I' @) R  q: w! L2 F: C+ m
output                        DRAM_LDQM;                                //        SDRAM Low-byte Data Mask
) F0 j) o7 C" v6 P) coutput                        DRAM_UDQM;                                //        SDRAM High-byte Data Mask
9 f4 Q9 M0 y5 A- t! Goutput                        DRAM_WE_N;                                //        SDRAM Write Enable/ W6 L) ^4 y, {% k3 O& z) Z& Z
output                        DRAM_CAS_N;                                //        SDRAM Column Address Strobe5 {  j* {+ m$ `2 F$ s8 f
output                        DRAM_RAS_N;                                //        SDRAM Row Address Strobe5 \- f9 l6 @* \0 M0 P. ~) s
output                        DRAM_CS_N;                                //        SDRAM Chip Select8 j+ |( u8 v7 F7 {6 K7 }; c
output                        DRAM_BA_0;                                //        SDRAM Bank Address 0
* y; _3 k$ p  |* s0 x& _output                        DRAM_BA_1;                                //        SDRAM Bank Address 06 q% J+ F0 F% g/ E0 [0 D% h
output                        DRAM_CLK;                                //        SDRAM Clock  R* A0 Q1 I/ U* M& N2 x
output                        DRAM_CKE;                                //        SDRAM Clock Enable7 N. G* N* |& V  F; p
////////////////////////        SRAM Interface        ////////////////////////
+ x' V" t$ j' Z+ z7 D  binout        [15:0]        SRAM_DQ;                                //        SRAM Data bus 16 Bits
9 G5 {' z0 B4 j, D+ c( Y1 }output        [17:0]        SRAM_ADDR;                                //        SRAM Address bus 18 Bits* C: f0 S0 X, g
output                        SRAM_UB_N;                                //        SRAM High-byte Data Mask / K# V! ~, n- S$ k0 M
output                        SRAM_LB_N;                                //        SRAM Low-byte Data Mask : W! Y# n; \' J  K1 N
output                        SRAM_WE_N;                                //        SRAM Write Enable6 Y- k5 [& z  W
output                        SRAM_CE_N;                                //        SRAM Chip Enable
# O7 L- @* |. N7 m* K  boutput                        SRAM_OE_N;                                //        SRAM Output Enable
' t3 S; D) n% B  k+ @- Q////////////////////        ISP1362 Interface        ////////////////////////
& v/ V# ]. ?; i# i) Oinout        [15:0]        OTG_DATA;                                //        ISP1362 Data bus 16 Bits
/ E) o7 s$ k$ Q, s. ~3 S! Routput        [1:0]        OTG_ADDR;                                //        ISP1362 Address 2 Bits
* p/ D  [8 C, Moutput                        OTG_CS_N;                                //        ISP1362 Chip Select
3 R. o4 F4 ]; q% o; \  e' r& D; Poutput                        OTG_RD_N;                                //        ISP1362 Write7 d& k2 P- t# n! ~7 K5 W; ]
output                        OTG_WR_N;                                //        ISP1362 Read% R; c6 k* r! F
output                        OTG_RST_N;                                //        ISP1362 Reset
, F( ^2 t9 M1 M& f: |* a) goutput                        OTG_FSPEED;                                //        USB Full Speed,        0 = Enable, Z = Disable, O2 O  X5 `7 \4 h
output                        OTG_LSPEED;                                //        USB Low Speed,         0 = Enable, Z = Disable
  e8 f* l! A- G  _9 Ninput                        OTG_INT0;                                //        ISP1362 Interrupt 09 V) W" p/ _, ~! |5 @" S' M
input                        OTG_INT1;                                //        ISP1362 Interrupt 1
6 M9 `# X% j2 e) qinput                        OTG_DREQ0;                                //        ISP1362 DMA Request 0
) A* J/ t3 o# M* _2 ]input                        OTG_DREQ1;                                //        ISP1362 DMA Request 1- ~4 V0 `4 @; ?  s+ F
output                        OTG_DACK0_N;                        //        ISP1362 DMA Acknowledge 0
$ h$ c$ v3 X6 ioutput                        OTG_DACK1_N;                        //        ISP1362 DMA Acknowledge 10 e: ^2 S3 T: f9 P: t  D
////////////////////        LCD Module 16X2        ////////////////////////////# m2 z$ G: L' C4 U/ y
inout        [7:0]        LCD_DATA;                                //        LCD Data bus 8 bits4 S5 e8 s1 z: y* R+ o2 m% [2 h
output                        LCD_ON;                                        //        LCD Power ON/OFF& i& }4 P7 W( P# v" T
output                        LCD_BLON;                                //        LCD Back Light ON/OFF
, b+ i; C* @& b8 V8 G$ _5 V5 Houtput                        LCD_RW;                                        //        LCD Read/Write Select, 0 = Write, 1 = Read/ x4 }2 N) d5 M* g& C  ]5 X) S2 D
output                        LCD_EN;                                        //        LCD Enable, N/ ]& F  R, H+ F" v$ i
output                        LCD_RS;                                        //        LCD Command/Data Select, 0 = Command, 1 = Data
7 k! R' c. ^0 I  @# |9 `0 l////////////////////        SD Card Interface        ////////////////////////3 O) R) E( L: Y6 x% }" s
inout                        SD_DAT;                                        //        SD Card Data
" {& R- ^! y: h1 D( U/ t* ?inout                        SD_DAT3;                                //        SD Card Data 3
0 h& x5 K9 ~6 ~inout                        SD_CMD;                                        //        SD Card Command Signal. O8 F; s/ Z+ u
output                        SD_CLK;                                        //        SD Card Clock
( z! C9 `4 K* s$ |////////////////////////        I2C                ////////////////////////////////
9 D& R, R2 x2 x( zinout                        I2C_SDAT;                                //        I2C Data
& V/ ]: y( a5 ?9 {# m- }output                        I2C_SCLK;                                //        I2C Clock
5 k7 q/ k  J$ x+ l2 D& {///////////////////        USB JTAG link        ////////////////////////////
; r7 t( x9 n& e) Y. Kinput                          TDI;                                        // CPLD -> FPGA (data in)2 W5 a$ k- A" r8 k" [# J
input                          TCK;                                        // CPLD -> FPGA (clk)+ Y8 ]: y6 P$ t( Y2 }
input                          TCS;                                        // CPLD -> FPGA (CS)
$ `: ^3 ^  b; Houtput                         TDO;                                        // FPGA -> CPLD (data out). t1 M. j+ y" Q$ N6 @, }
////////////////////////        VGA                        ////////////////////////////7 r8 l5 ^& G4 U8 c) t
output                        VGA_CLK;                                   //        VGA Clock
8 ^3 I, q0 W- houtput                        VGA_HS;                                        //        VGA H_SYNC. H  }, `/ s0 W! c2 f
output                        VGA_VS;                                        //        VGA V_SYNC) w% u; ]1 [0 k0 d9 N
output                        VGA_BLANK;                                //        VGA BLANK# q) F$ X2 [, g0 P3 D
output                        VGA_SYNC;                                //        VGA SYNC4 ?" `* T, K$ E+ A  e
output        [9:0]        VGA_R;                                   //        VGA Red[9:0]& L  H* [' J/ P- s+ v
output        [9:0]        VGA_G;                                         //        VGA Green[9:0]
' R2 z5 p  J1 z- B. Woutput        [9:0]        VGA_B;                                   //        VGA Blue[9:0]
6 @+ w$ z) w$ }0 W" d. f' q" v  E1 K////////////////////        Audio CODEC                ////////////////////////////
5 S5 Q) G" }: vinout                        AUD_ADCLRCK;                        //        Audio CODEC ADC LR Clock/ y3 d  J0 [" c3 k" `# ~. l, @
input                        AUD_ADCDAT;                                //        Audio CODEC ADC Data
/ h1 |1 C# ^% w1 }6 W; r; _inout                        AUD_DACLRCK;                        //        Audio CODEC DAC LR Clock
$ K, \) ^. ~1 Z) ^* _output                        AUD_DACDAT;                                //        Audio CODEC DAC Data0 \) \% E5 h  s
inout                        AUD_BCLK;                                //        Audio CODEC Bit-Stream Clock
3 @8 M& E1 _7 o5 w  N+ @5 q4 c7 Houtput                        AUD_XCK;                                //        Audio CODEC Chip Clock3 `5 F% s' [3 N( `
////////////////////        TV Devoder                ////////////////////////////
/ ^1 K$ B- [, h: Y) minput        [7:0]        TD_DATA;                            //        TV Decoder Data bus 8 bits
$ B- b. w# e4 o$ Rinput                        TD_HS;                                        //        TV Decoder H_SYNC
& Y8 N1 R7 ]2 J& t5 ~9 Dinput                        TD_VS;                                        //        TV Decoder V_SYNC
( x* n- Z) n3 P5 p5 joutput                        TD_RESET;                                //        TV Decoder Reset
9 `, h2 d- P; J////////////////////////        GPIO        ////////////////////////////////
7 v2 c' D% u8 j, p" tinout        [35:0]        GPIO_1;                                        //        GPIO Connection 19 ^0 J, W& o# d$ i
1 g3 G$ j3 D& X6 G+ u9 b- K( H) p
assign        LCD_ON                =        1'b1;
0 M! k$ G- r1 D- Passign        LCD_BLON        =        1'b1;  M  u+ W6 l; _( k
assign        TD_RESET        =        1'b1;7 R6 z; o) P0 w! N
! Q; @4 Q* O8 h! C# X+ N' Z( B
//        All inout port turn to tri-state
( d2 Y5 O% h3 S1 ~assign        SRAM_DQ                =        16'hzzzz;1 K" Y6 C( n* l1 c# e
assign        OTG_DATA        =        16'hzzzz;) {, X+ j1 T3 _$ W; D) @
assign        LCD_DATA        =        8'hzz;- \( @2 K9 X& X# S( y+ y6 Y. y
assign        SD_DAT                =        1'bz;! g7 I! Z9 J; M  b2 D( l' a9 G1 o
assign        I2C_SDAT        =        1'bz;
+ L; r5 t1 A" \8 C: E! bassign        ENET_DATA        =        16'hzzzz;) N9 D! l. ~5 \$ \
assign        AUD_ADCLRCK        =        1'bz;
/ Q9 _+ s2 G7 x5 s' R5 passign        AUD_DACLRCK        =        1'bz;
/ o3 r% L4 X3 |; [& A$ [' @, Fassign        AUD_BCLK        =        1'bz;
4#
 樓主| 發表於 2007-2-15 17:05:19 | 只看該作者
//        CCD
8 E/ p! u$ o$ r) \; g) I0 dwire        [9:0]        CCD_DATA;
& T. E" _* q/ p2 kwire                        CCD_SDAT;) c& O. s4 O( e/ i- \. b
wire                        CCD_SCLK;5 W$ T; O7 U, D/ F( @- R
wire                        CCD_FLASH;
2 [' T8 L/ A; `( |( b; v" {& v- s' Qwire                        CCD_FVAL;/ r- j: B$ z7 \8 V
wire                        CCD_LVAL;
% x7 Y- c2 [% [; ?. n; _+ e  swire                        CCD_PIXCLK;
- q1 A. W& c9 V) Y! l8 |7 _reg                                CCD_MCLK;        //        CCD Master Clock
2 G6 K, K* P" ]2 i
; C9 M) m; i- u  u" H5 Ywire        [15:0]        Read_DATA1;
  L9 W0 D1 b! t1 X0 U/ N. Kwire        [15:0]        Read_DATA2;
' m$ E+ f$ K. s# U% C2 kwire                        VGA_CTRL_CLK;& F/ x: z; w: s! v
wire                        AUD_CTRL_CLK;
9 ^9 V- X7 c& q: y0 \# ~& S  K2 Kwire        [9:0]        mCCD_DATA;7 Y2 c/ X% t: k7 H- T
wire                        mCCD_DVAL;
& \' ~3 F4 L) u( {$ Ywire                        mCCD_DVAL_d;" O/ H, c4 ^6 y3 w# u; ^
wire        [10:0]        X_Cont;7 t5 }* _* I. x
wire        [10:0]        Y_Cont;7 Y% o$ {0 a" T7 o7 J0 j1 o
wire        [9:0]        X_ADDR;
4 E0 s7 t/ V; I0 Z9 B, ^3 iwire        [31:0]        Frame_Cont;5 ?% g. Q/ h$ W5 G' @
wire        [9:0]        mCCD_R;5 [/ o! X, S& [
wire        [9:0]        mCCD_G;$ v7 \9 [# S2 m( G/ b* Z
wire        [9:0]        mCCD_B;
3 m5 `* w. n" n- r$ V& x7 y% Xwire        [9:0]        mVGA_R;
  X: y; _- g" a5 D! O- gwire        [9:0]        mVGA_G;1 e9 W1 g5 w1 o2 F* Q  d
wire        [9:0]        mVGA_B;
! F. l& h- B* y  n0 ~wire                        DLY_RST_0;
  y4 @. Y3 F+ f+ \6 mwire                        DLY_RST_1;7 A1 w7 e+ o* V* s! G
wire                        DLY_RST_2;
) c  Z8 S/ Z! l( U5 Uwire                        Read;$ R2 k) D( V$ T: U. U2 u0 @
reg                [9:0]        rCCD_DATA;
. o; A' v6 Y  |" a! I3 A, K0 j# Q+ X4 lreg                                rCCD_LVAL;
  j& ~1 J+ e! }8 o- _, ireg                                rCCD_FVAL;9 a$ b* Y. h/ b/ B, A' d' O- z

$ S- M0 M: z6 x$ L//        For Sensor 1+ F" t& w& S+ _1 q9 j
assign        CCD_DATA[0]        =        GPIO_1[0];8 n' c! _5 Y0 R
assign        CCD_DATA[1]        =        GPIO_1[1];
# r# y! [4 `) U0 \# ^2 T! cassign        CCD_DATA[2]        =        GPIO_1[5];
# R2 [0 H% R; h) X0 W. o" w( h: passign        CCD_DATA[3]        =        GPIO_1[3];
8 [7 B: m! ~% j# sassign        CCD_DATA[4]        =        GPIO_1[2];! _. w# x" S8 m' w+ D1 I
assign        CCD_DATA[5]        =        GPIO_1[4];+ z9 y1 w2 |1 r2 u/ N
assign        CCD_DATA[6]        =        GPIO_1[6];5 x1 H: |7 j8 S, C0 q
assign        CCD_DATA[7]        =        GPIO_1[7];
6 P2 y4 K0 \6 q7 cassign        CCD_DATA[8]        =        GPIO_1[8];' L! N' {# s6 k1 c7 J% V9 F& Y
assign        CCD_DATA[9]        =        GPIO_1[9];8 o8 ^, {" I( t0 X
assign        GPIO_1[11]        =        CCD_MCLK;3 l2 Z7 R1 R1 F  X
assign        CCD_FVAL        =        GPIO_1[13];
. I* A/ u/ E! A8 i" Bassign        CCD_LVAL        =        GPIO_1[12];0 F* `" B  R) Z8 w1 V
assign        CCD_PIXCLK        =        GPIO_1[10];( X0 G8 a, x6 F
# t. |) d+ k7 N6 \5 ^0 g* V" X
assign        LEDR                =        SW;  K: R  e& e# \' S* ~
assign        LEDG                =        Y_Cont;
  [" Z6 M/ M( ^# nassign        VGA_CTRL_CLK=        CCD_MCLK;/ o* ]0 W! _6 [+ \2 x; i
assign        VGA_CLK                =        ~CCD_MCLK;" d' Y& j9 B5 X2 Q" T1 W

- `( F7 @( |7 Y0 M+ ~/ ^# U$ { VGA_Controller                u1        (        //        Host Side
7 m) A. c& v3 N, R" e( O                                                        .oRequest(Read),3 \& ^2 w3 J4 i1 N( ~
                                                        .iRed(                DISP_R        ),
. ^2 M6 p4 ~* R% E) }% @                                                        .iGreen(        DISP_G        ),6 ^2 B& O/ q$ H' n0 l
                                                        .iBlue(                DISP_B        ),
! L- N( r  j* X8 d# S8 @) J6 f                                                        //        VGA Side
+ z, K: q7 }& R& ?0 h0 n4 @                                                        .oVGA_R(VGA_R),
0 j- E* d4 K& N! o0 P' X                                                        .oVGA_G(VGA_G),2 G" i3 X( W9 ~0 z+ h1 b
                                                        .oVGA_B(VGA_B),& q3 O1 S" ^5 L  a. H
                                                        .oVGA_HS(VGA_HS),
2 y2 {! y8 c6 t  _3 Y8 O  ^; ]                                                        .oVGA_VS(VGA_VS),- x! f) p* B' e# f. d, Q' q, ?
                                                        .oVGA_SYNC(VGA_SYNC),
# v) h) T8 l$ }" c0 A                                                        .oVGA_BLANK(VGA_BLANK),4 _* i6 O/ e" m" Q0 \
                                                        //        Control Signal
' g! O* l9 q  a# d+ J( z                                                        .iCLK(VGA_CTRL_CLK),
- C$ E2 Y" K  d9 Q                                                        .iRST_N(DLY_RST_2)        );4 ~1 n8 J+ x4 r, f2 A0 ]! Q

1 |  R! E, I2 Z  }4 B& FReset_Delay                        u2        (        .iCLK(CLOCK_50),8 `  _3 w2 s% V/ P+ g& C6 i
                                                        .iRST(KEY[0]),
# ?5 ?6 L- p3 ]                                                        .oRST_0(DLY_RST_0),8 P2 ]4 Y% e- Z$ ~3 ^' u+ u( [
                                                        .oRST_1(DLY_RST_1),
5 Y8 I: P( m; \                                                        .oRST_2(DLY_RST_2)        );( F* }. m9 d& Q0 k% b

- A( x. s6 A2 Z( JCCD_Capture                        u3        (        .oDATA(mCCD_DATA),
! L4 t8 ~) E% d# R) V- D; k# c5 B+ z                                                        .oDVAL(mCCD_DVAL),
$ a1 R+ o3 {- i' J                                                        .oX_Cont(X_Cont),8 }  s  R0 i# T" T
                                                        .oY_Cont(Y_Cont),5 U' i  J8 C) I) |( c
                                                        .oFrame_Cont(Frame_Cont),
. ]0 O3 y- g% [7 y                                                        .iDATA(rCCD_DATA),# ]1 L* c3 m6 k" y8 ]3 v
                                                        .iFVAL(rCCD_FVAL),  Z5 U/ P/ ]9 i9 Q2 d0 B
                                                        .iLVAL(rCCD_LVAL),6 v& K) a5 g* p% n/ x$ t6 @
                                                        .iSTART(!KEY[3]),
, I! N- g6 G* d                                                        .iEND(!KEY[2]),- v# A; n0 S) C8 j  K5 E
                                                        .iCLK(CCD_PIXCLK),: s# w6 [# `$ q4 G5 q5 M
                                                        .iRST(DLY_RST_1)        );
$ q0 \  l9 H) J
6 @: I& h; z9 Z: L" P& QRAW2RGB                                u4        (        .oRed(mCCD_R),8 ~, D" ?- s1 V3 N: f
                                                        .oGreen(mCCD_G),
$ c# f: i  L( z1 j                                                        .oBlue(mCCD_B),
  L: ]+ S# e# p! W                                                        .oDVAL(mCCD_DVAL_d),
1 C  W7 ~, ]0 Y                                                        .iX_Cont(X_Cont),
  j  L# k+ q; ^9 p# u( J3 X) \# P                                                        .iY_Cont(Y_Cont),5 f' N7 H. m1 c# Y2 c7 r
                                                        .iDATA(mCCD_DATA),
% g, F+ m& A' q$ W                                                        .iDVAL(mCCD_DVAL),
/ j- ^( n& J$ Y' A* f3 s                                                        .iCLK(CCD_PIXCLK),: w2 g' j$ C: u2 y/ i2 Q
                                                        .iRST(DLY_RST_1)        );
8 }2 ^3 ^4 X( e5 C' M
9 M+ T1 Z+ s" \( {' sSEG7_LUT_8                         u5        (        .oSEG0(HEX0),.oSEG1(HEX1),
( q/ o* t: k5 e0 s% _                                                        .oSEG2(HEX2),.oSEG3(HEX3),# \, N1 h; d* M0 W& w" U
                                                        .oSEG4(HEX4),.oSEG5(HEX5),4 Q; M# w" w' L1 z  T
                                                        .oSEG6(HEX6),.oSEG7(HEX7),* p3 W; x) r) ^9 R% N+ @
                                                        .iDIG(Frame_Cont) );" z7 W$ m9 z2 a* {. s
9 m8 f% Y/ w& `
Sdram_Control_4Port        u6        (        //        HOST Side
" z6 p! M! \7 F" z2 O                                                    .REF_CLK(CLOCK_50),
& m- f0 Q+ F  M                                                    .RESET_N(1'b1),
- Z- H$ |& {& J8 ^                                                        //        FIFO Write Side 1- a! X8 W9 A5 a1 }) U( [
                                                    .WR1_DATA(        {mCCD_G[9:5],
: @. x& [7 Z: ?& A2 [- `) B                                                                                 mCCD_B[9:0]}),
$ d9 N6 G. V) H/ z) X                                                        .WR1(mCCD_DVAL_d),
) S" e! s2 I! w( h  R2 U7 b: L$ g% Q                                                        .WR1_ADDR(0),3 t& R" A0 d/ R, ^' f: o
                                                        .WR1_MAX_ADDR(640*512),
' U/ ?& S  c! D& Y9 Y" u6 w5 S9 y' \                                                        .WR1_LENGTH(9'h100),
& N5 w  I/ C5 x# Z1 }8 K; Q                                                        .WR1_LOAD(!DLY_RST_0),& c3 O- {) U+ Q' X! W
                                                        .WR1_CLK(CCD_PIXCLK),
' U+ L5 E5 x: l8 c! A& H2 E  W                                                        //        FIFO Write Side 2
) t) n0 \9 ~' A& T5 f# S                                                    .WR2_DATA(        {mCCD_G[4:0],2 w5 v  x* M# h: R$ }& }
                                                                                 mCCD_R[9:0]}),+ `# R$ P  C: }1 {: c+ p: A/ V1 D! b
                                                        .WR2(mCCD_DVAL_d),
& D5 x' F* L0 r) {/ p" @6 F                                                        .WR2_ADDR(22'h100000),) Y# M9 A  i8 h) Y5 M1 s' |: A/ n! ]
                                                        .WR2_MAX_ADDR(22'h100000+640*512),% F+ \9 I9 J7 i" w- J3 [
                                                        .WR2_LENGTH(9'h100),
* j8 J# r4 {% k- p                                                        .WR2_LOAD(!DLY_RST_0),
: G( j- _( I' V+ ]' M1 u( w                                                        .WR2_CLK(CCD_PIXCLK),& a4 u' u5 m6 m: P; `& I+ g
                                                        //        FIFO Read Side 1  Q) O- a/ L/ `9 ?0 A( \' p
                                                    .RD1_DATA(Read_DATA1),
$ |  z- C' |$ G                                                .RD1(Read),9 z! Q0 f( R: W  v# _" U
                                                .RD1_ADDR(640*16),
4 j5 T7 M) ~  s& ^- I! N: z8 i                                                        .RD1_MAX_ADDR(640*496),
$ {! n  V4 J+ w; m" k( }                                                        .RD1_LENGTH(9'h100),# e# h# R5 _8 r& s6 i% f
                                                .RD1_LOAD(!DLY_RST_0),; c9 ~. P0 ~: ]& q& N! h# ~; d
                                                        .RD1_CLK(VGA_CTRL_CLK),
& w* E7 K8 c! o/ A0 Q                                                        //        FIFO Read Side 2
3 |* q" A! u; b5 u  s. m& ^                                                    .RD2_DATA(Read_DATA2),
1 [% [) Y+ o; x1 M$ f1 b                                                .RD2(Read),
: Z& o+ f, T5 L( P( I0 U1 M                                                .RD2_ADDR(22'h100000+640*16),
# ^3 p) A7 P9 f  h2 j) }, a                                                        .RD2_MAX_ADDR(22'h100000+640*496),
( s; l+ c- r# {' S& Z+ n- [# Y: V                                                        .RD2_LENGTH(9'h100),5 s8 U% K% Q. y
                                                .RD2_LOAD(!DLY_RST_0),
1 g2 D# n- x8 y3 Z: T# x                                                        .RD2_CLK(VGA_CTRL_CLK),
$ s* S& u1 ^2 t/ M9 a3 l: _; N% c: n5 R                                                        //        SDRAM Side6 \) P  k1 l  a. q
                                                    .SA(DRAM_ADDR),
9 c6 ~+ t' p, ]# f0 C* ^% G                                                    .BA({DRAM_BA_1,DRAM_BA_0}),
3 X! f4 N/ y" `* m                                                    .CS_N(DRAM_CS_N),+ U3 w8 a. o0 ]# L1 X
                                                    .CKE(DRAM_CKE),
- ^" ]" P/ }) c: y5 U: `9 Y2 Y' \                                                    .RAS_N(DRAM_RAS_N),0 E8 r. g3 `" W0 ~7 b" A
                                            .CAS_N(DRAM_CAS_N),( g" x4 I9 K% r3 x/ ]4 O2 L
                                            .WE_N(DRAM_WE_N),% y3 R9 y. c6 w* g. o3 {. T
                                                    .DQ(DRAM_DQ),
' F5 Q: Z6 X4 z9 I                                            .DQM({DRAM_UDQM,DRAM_LDQM}),# F9 L6 D: d+ p4 w3 B$ I6 ^
                                                        .SDR_CLK(DRAM_CLK)        );
6 C7 y% {0 M% B$ O
5 M. R$ ]' e: Z* g1 KI2C_CCD_Config                 u7        (        //        Host Side
# p- J. R4 t; \8 c) i, y8 y                                                        .iCLK(CLOCK_50),3 K) m6 [! v1 ^, ~6 d: a
                                                        .iRST_N(1'b1),, \1 Y8 y4 v5 `3 B4 g& t0 ]3 T: ^, t
                                                        .iExposure(16'h0600),
% C* A3 b) u7 ~& M                                                        //        I2C Side' ?' |% G6 `' @1 D9 Q+ ^* \% p$ u
                                                        .I2C_SCLK(GPIO_1[14]),
1 g* c/ ^% y0 b# V6 H                                                        .I2C_SDAT(GPIO_1[15])        );
3 A9 X9 U0 T3 E' Y& C4 X  g/ A/////////////////////////////////////////////////////////////////////& _& R- S+ y* Z% y4 q
wire                [9:0]        DISP_R;
' r6 O6 d. C4 E3 N$ s$ F0 D( [wire                [9:0]        DISP_G;3 l5 t( Y6 V4 d; S$ C$ o  `
wire                [9:0]        DISP_B;  d- ?, k6 ?4 E& r% _0 U
3 @3 s1 G. t! _& U: h1 N
//        To Display
7 o7 Q9 J9 B# S9 E* V: L) kassign        DISP_R        =        SW[17]        ?        mVGA_R        :        //        Red
7 U! d. c' z* K4 ^                                        SW[16]        ?        mVGA_G        :        //        Green
# a6 j) i) O! B3 Z5 l7 c                                        SW[15]        ?        mVGA_B        :        //        Blue/ q$ O0 K; U- A4 D; Y- H
                                                                mVGA_R        ;        //        Color
9 R& _+ V9 [: p& W4 }' c" Aassign        DISP_G        =        SW[17]        ?        mVGA_R        :        //        Red
+ h5 c# D& u" D0 m# m! {                                        SW[16]        ?        mVGA_G        :        //        Green
& z' M" Z5 B, v0 z" a9 k  v3 q                                        SW[15]        ?        mVGA_B        :        //        Blue
- e& ]: i9 ]: J2 z                                                                mVGA_G        ;        //        Color6 p) W* w8 q7 {9 X
assign        DISP_B        =        SW[17]        ?        mVGA_R        :        //        Red/ Y$ A+ V9 o# p
                                        SW[16]        ?        mVGA_G        :        //        Green) O2 t5 h+ z% B6 Q( m2 I
                                        SW[15]        ?        mVGA_B        :        //        Blue
, K- d: X# o- Y6 [                                                                mVGA_B        ;        //        Color3 w, U% d8 }4 T9 w8 [8 r+ W

3 H1 Y0 J. J; j: i6 @//        SDRAM
* a6 x" X9 H3 m% w* wwire [21:0] mSD_ADDR;4 i" \* ^6 x+ L2 O, ~; w7 {
wire [15:0] mSD2RS_DATA,mRS2SD_DATA;
/ h( J6 t; Q3 P! p5 }! _4 `8 R3 I* r! N6 |wire mSD_WR,mSD_RD,mSD_Done;7 M7 F! Z& P$ z5 r' N
//        SRAM Async Port
3 A: _9 R  Y" j; v" g/ r: y, Awire [15:0]        mSRAM_VGA_DATA;
. Y" ?. }3 V8 o1 l2 m) l0 jwire                DLY_RST;+ @) B) u! r: U4 y5 t
5 @; o. S3 L- P3 X* j. ?6 J) Y! N% q& G
//        VGA
0 u$ D9 s' I- c7 f2 p1 ?* ]( ewire [9:0] mOSD_R;% ^& ^5 P: W0 v5 d0 W
wire [9:0] mOSD_G;5 d# V; @. F$ \0 t, M5 ?* f  `0 M
wire [9:0] mOSD_B;
+ J8 g* p9 `; x8 v: d& s6 hwire [9:0] mVIN_R;) o1 _# T! G8 V& v
wire [9:0] mVIN_G;
- P8 C1 m% E$ Mwire [9:0] mVIN_B;
1 p6 \) ?) Y8 |( [wire [19:0]        mVGA_ADDR;# U% W2 A" ^1 w/ K
wire [9:0]        mCursor_X;, d" S! E' `4 F2 m# Y* a. H
wire [9:0]        mCursor_Y;. m, L% U0 V7 [# M2 K5 i
wire [9:0]        mCursor_R;. q& @5 F+ [& F$ b5 [2 O
wire [9:0]        mCursor_G;
; O& V, J: q2 m5 E& K- rwire [9:0]        mCursor_B;
( l. k; @' z  f  F; H. Bwire [1:0]        mOSD_CUR_EN;
5 J! q6 ~: p+ ]) ?; Y//        Async Port Select
6 W% U7 |% Z: \% a8 Y" G/ ~/ c' ~wire [2:0] mSDR_Select;
) T( x2 D3 M* \: \) z//        External IO
6 ]' J- o7 V$ u. bwire [7:0] mExt_IO;5 _! M. X% A* H, d3 O3 a
//        SDRAM Async Port3 z4 b! A. O  j$ ?8 [; c) r9 g% h
wire [15:0] mSDR_AS_DATAOUT_1;) `1 q) s/ E+ s
wire [15:0] mSDR_AS_DATAOUT_2;
  d( s1 B0 h8 Q+ y* R9 Y' W4 r1 [wire [15:0] mSDR_AS_DATAOUT_3;
  d% E: `6 E) B, u: D# l9 fwire [21:0] mSDR_AS_ADDR_1        = 0;  x. T& S0 b9 R( b3 o& Z/ O
wire [21:0] mSDR_AS_ADDR_2        = 0;
) q! c$ J9 e( |3 ywire [21:0] mSDR_AS_ADDR_3        = 0;$ V* \- j5 P6 h6 \9 @$ C
wire [15:0] mSDR_AS_DATAIN_1= 0;/ g+ |; H9 ?, t. M; c3 U' J, q: s! \
wire [15:0] mSDR_AS_DATAIN_2= 0;8 L$ h# ~& A" Q' i& a' b
wire [15:0] mSDR_AS_DATAIN_3= 0;
8 C4 Q+ z" C; U  u7 l: D4 Ywire                 mSDR_AS_WR_n_1        = 0;- R  A' U' E* I% I  q3 }( N" q# H' w
wire                 mSDR_AS_WR_n_2        = 0;/ Q) s+ p! l/ [
wire                 mSDR_AS_WR_n_3        = 0;
) ~2 E) L2 d" x) o0 H/ ~//        USB JTAG3 c8 L, B' b$ y7 C1 c" J
wire TDI;0 S& g% g% P- f8 H  D" H
wire [7:0] mRXD_DATA,mTXD_DATA;
# V( a. u' {' D% b1 S$ Swire mRXD_Ready,mTXD_Done,mTXD_Start;! a+ \: @$ m0 t1 }1 W
reg mTCK;. }& j8 P- V" K& ~
reg TDO;, J0 r7 P& M; C2 u) U/ U
reg [7:0] oRXD_DATA,oTXD_DATA;
! A1 q6 U! z6 D3 ~reg oRXD_Ready,oTXD_Done,oTXD_Start;3 Q( W3 z6 Y7 u; G( }9 R& E; `
//        All inout port turn to tri-state7 I- w7 e" T7 F
assign        OTG_DATA        =        16'hzzzz;
* Y9 a% L: w( w2 j1 E* w8 Sassign        SD_DAT                =        1'bz;
0 z/ Q4 A* G: K6 @. C+ V- u9 P  Aassign        GPIO_1                =        36'hzzzzzzzzz;
7 f% K5 v7 |9 D* W- t//        Audio; M4 X1 N5 A5 Y% {  b
assign        AUD_ADCLRCK        =        AUD_DACLRCK;* b7 ]2 g! m+ m: s% \
assign        AUD_XCK                =        AUD_CTRL_CLK;
- D4 g9 R+ s( Q' G; S/ s5 T5 F  i$ G. n; v- P
always@(posedge CLOCK_50)        CCD_MCLK        <=         ~CCD_MCLK;3 |% P4 [. s8 X; f2 o
# Q4 ~/ Q: g  u. D3 M
always@(posedge CCD_PIXCLK)
# ^, t" |, t/ S6 t) J  pbegin
' t7 K. f6 E* E$ o* grCCD_DATA        <=        CCD_DATA;  ~- C, C# [# l8 Q- t* @" [+ W
rCCD_LVAL        <=        CCD_LVAL;
$ k  s! X. i' O( Q* `, M  YrCCD_FVAL        <=        CCD_FVAL;
* W5 }7 N1 x: W3 J  if (!KEY[0]) begin, C4 ]2 g# q# W
     mTCK   <=   TCK;
" o, _' c+ k) z: X* g     oRXD_DATA  <=  mRXD_DATA;
0 D, u) t  p( v) k# ~9 M     oTXD_DATA  <=  mTXD_DATA;
+ g6 ^. Y$ H1 x# ~, U3 R9 C7 o     oRXD_Ready  <=  mRXD_Ready;
  Q7 n: |* U: ?2 D7 i     oTXD_Done  <=  mTXD_Done;
8 U( H' g; z$ J: [; X, J     oTXD_Start  <=  mTXD_Start;$ C8 R: n. |" i
  end' ]3 C8 s- S" ?3 a  g- V2 b
  else begin
2 C8 f3 {6 W0 C- C/ M" r" L. t, M8 f# x     mTCK   <=  ~TCK;. }4 z+ S8 a& A5 V
  end  L8 I# k/ H! W. S2 i
end
( q8 y& ]! s- b( z: O) Gassign        mVGA_R        =        Read_DATA2[9:0];4 _, y0 n! a' M; E: a7 @
assign        mVGA_G        =        {Read_DATA1[14:10],Read_DATA2[14:10]};
: Z% q9 z  R7 k+ Z; V: g( Y0 fassign        mVGA_B        =        Read_DATA1[9:0];
- H! k. z$ J9 G8 sendmodule; o+ ?) j! ]1 ?2 E

1 J6 _: C. N& ^& C以上是我自己修改過後的CCD+USB程式,CCD影像還是能成功的執行,但卻無法驅動USB程式下載影像檔
. K0 z6 P* R: G5 H( D) X# K先說明一下驅動的流程.....0 l! P! B( ~+ j2 A" _% c& P
在驅動CCD程式之後,先按KEY[3]鍵,VGA螢幕就會出現CCD所攝取到的動態影像,. F0 o/ [$ k+ T3 y6 P- s
待調整好CCD位置,按KEY[2]鍵,即可定格影像選取所欲下載的畫面...7 c2 p! R3 U9 |! c
只要再按KEY[3]鍵,即可回復原先的動態影像....- m7 O1 Z5 }" ~* j8 w/ x* K
而通常存取畫面都是再按KEY[2]鍵等影像定格後,再驅動USB程式.
! `( ^) |4 J0 l4 {將USB程式下載到FPGA之後,即可在CPLD裡使用一套程式download由USB傳回來的影像檔...
+ H% _/ o" ^) F4 D# A' S等檔案download完成後,在開啟一個影像軟體打開下載後的檔案....* o/ L1 M1 E/ x7 ~2 f* J8 r. s* l. P
即可得到CCD所攝取到的畫面........
. }/ w6 C" N6 X. Y- C- b5 X$ |; ?以上是整各程式驅動的內容及流程..
) j6 i; V- c4 ]# F0 D9 W請各位高手給予一些建議與討論....
. A) S7 Y8 q- [謝謝.......
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 | 只看該作者
嗯~~不是耶!!2 [6 J$ B( s9 c1 l  l
其實CCD和USB程式分2次下載到FPGA的時候,USB已經將CCD的程式給覆蓋掉了....
5 f4 t& ^- k" o% b$ Q4 H  sUSB傳送的影像其實是按KEY[2]鍵,影像停格時儲存在SDRAM裡面的資料....
1 ?) _! i* u8 _漏掉了一像沒有說...其實在驅動USB之後,在CPLD裡download的檔案是從SDRAM裡面擷取到的資料...% X, {& [5 t. ?9 e0 I) R7 |* T
原本CCD主程式裡其實是有一些程式可以刪掉,對影像的出現沒有影響的...
; O: W! p3 T- P9 V所以真正關鍵的程式是在CCD程式碼和SDRAM與mVGA及PIXCLK的迴圈之中......
- F5 n) d1 `' t5 H: D而USB的程式碼只有簡單幾個關鍵KEY,我再PO一次...- A  G  Y( r9 d6 e7 P

! K) m7 q: R) V) T, m; @1 V5 G( tmodule DE2_USB_API
3 b' j& }+ @; O////////////////////        USB JTAG link        ////////////////////////////1 l: N* I9 r) D2 o6 }  r
input                          TDI;                                // CPLD -> FPGA (data in)
* u  j" c8 p: G* ?# T" p2 linput                          TCK;                                // CPLD -> FPGA (clk)
* x1 s( h3 l* u6 Minput                          TCS;                                // CPLD -> FPGA (CS)
. j# q% _  K9 routput                       TDO;                                // FPGA -> CPLD (data out)/ ^+ ?, t6 K& M! m, }/ l

0 l" J, B% L$ W0 e' n$ I5 Z//        USB JTAG  b  r+ p7 [4 h5 ?5 s
wire [7:0] mRXD_DATA,mTXD_DATA;
5 T# e  c" S! F3 W  fwire mRXD_Ready,mTXD_Done,mTXD_Start;& S+ F% K8 y1 r+ I7 {
wire mTCK;* R% Y  N1 j0 ~
endmodule
& u& V( j6 D1 Q% U
0 T% [9 `& t0 w" d! I7 t在驅動這個USB程式之後,就能覆蓋掉CCD程式,將儲存在SDRAM裡的最後資料傳輸至CPLD裡面.....
- L5 M5 w0 |& r# u6 A3 p* j所以現在我覺得問題是在...9 ?6 o2 M7 n2 a; A& l
如何在合成CCD與USB程式,按KEY[2]鍵將影像存入SDRAM之後....
) ~2 `# s: T) G2 h2 F; ?+ a再行驅動USB程式....將資料傳輸至CPLD之中...
' I5 x# @8 N) M0 ]# f+ z' H而前提是.........驅動USB的方式是依據FPGA裡面所提供的按鍵..如我想設定的KEY[0]鍵 ....
8#
發表於 2007-2-25 00:25:07 | 只看該作者
damy 大大...我是很想幫忙看一下啦, z8 S5 j9 k/ @  ^) p
不過看到一大堆SOURCE CODE頭就昏了, 而且我猜這並不是全部的SOURCE CODE吧!
8 [% ^. {# U( {; B6 o4 p$ [: O4 n3 ?% z% p( o& ]0 W
你願意的話我倒是也願意在MSN上幫你看看 (雖然我不見得能幫到忙, 不過試試也好)
. H5 @! i/ @# g- s% e7 C( [. Q我想你會有一些設計的方塊圖, 如果有的話應該有助於我瞭解你的設計.
+ ~" }) e! D7 z- b. K8 S, z& h我比較習慣從整個系統往模組再往電路看.
9#
發表於 2007-2-25 00:27:35 | 只看該作者
另外FPGA跟CPLD的編號能給我一下嗎?我可以從編號去猜一下你的設計會有多大, 要是能上傳你的report檔的話更好
10#
 樓主| 發表於 2007-2-25 16:16:45 | 只看該作者

回復 #9 tommywgt 的帖子

我是用Altera公司的QuartusⅡ軟體去模擬的哦!!8 C# A* u* o! x/ y3 J- \" ~
另外,這套程式要配合友x公司的FPGA產品才能驗證....
11#
發表於 2007-2-25 19:54:42 | 只看該作者
tommywgt大大 加油喔∼  Z% q, G. w3 U
小弟沒有這些裝備只能猜測問題點而已" f+ O: G: D. L4 s0 `: C
拍謝拉
12#
發表於 2007-2-25 19:58:45 | 只看該作者
@@...好巧, 我也沒那些裝備...% z4 M' p& o* ?4 x3 T

" k# U/ T  n$ j! N  u3 P說真的, 目前為止你提供的資訊很有限, : A! Z6 W6 M) L8 F+ Y
我先建議你回到RTL simulation環境看一下問題在不在? 
13#
 樓主| 發表於 2007-2-25 20:35:49 | 只看該作者
嗯~~用描述的比較不清楚...
. k0 }$ |7 W; F說真的...
- A- c" P4 }5 `* ]6 R8 T那套程式和軟體也是花了我幾個月的時間才稍微弄懂它的架構* X: X8 ^7 m4 F6 G5 r
post上去的程式是完整的...
' w9 X, Z+ m) m) ?1 H, H因為主程式和副程式沒有顏色上的區別,所以看起來會很吃力..- O2 f, z3 O( R9 V
如果tommywgt版主有興趣.....* k, R2 A4 o) X/ A, X# @7 Y
可以到 % j. B( Q/ y- z! `' b
https://www.altera.com/support/s ... a_ie_al_ap_ht_1_022
' l$ J3 E/ R. _- W
; |: [% }& ]3 z! S& h, k+ \下載 Quartus II Web Edition (v6.1) 軟體
1 m: j9 b; l; U/ Z4 z) W$ l免費使用期限三個月,期限一到,只要再重新註冊就好了
) @: M8 C5 |( k$ O程式的部份....如您有興趣,我可以寄給您.....
14#
發表於 2007-2-25 23:54:26 | 只看該作者
Quartus II 我有完整版的) P! ^% c" |  P

8 E  O2 w/ @& q興趣是還好啦, 但是如果能幫上你的忙的話我倒也是很樂意." m1 d* t9 x: I) D' e
" p0 V6 @5 c/ v
你可以寄到我的gmail去 chiatsun.wu@gmail.com1 S7 Q+ j3 x# |. x* F/ B
最好是完整的project file (要zip起來哦) 另外有多資料的話是最好不過.
- h: g# I, ^- n. j' O$ X我手上有一片我自己做的EP2S90的實驗版, 連MPEG1/2/4都放的下, 我想放你那個project應該沒問題. 另外最好是有ModelSim能RUN的test bench file.1 @- N* D* W8 q3 _# P+ V4 ~
8 m/ h: q8 A) l7 i9 u( k
我會找點時間幫你看看. 另外可以的話最好請給我你的MSN, 因為只能利用下班時間看, 所以也許不會一下子看完, 但是我會找多點時間的.
( A; m  ^/ ?$ m
: ]0 `- r$ ?; e: ?) Q9 c我不敢說交給我, 但是如果照你所說的, 問題應該不會太大才對.
15#
發表於 2007-2-27 16:44:13 | 只看該作者
看来在搞影像处理方面的人才还不少喽,小弟也在搞这方面的,不知能否能帮得上前面的大哥,
) L! c) x- t& X9 v  S# W- HMSN︴email]Gzwb_345@hotmail.com[/email]: p3 `7 `2 D+ I
mail:  shine_zeng@163.com
16#
發表於 2007-2-27 18:10:52 | 只看該作者
哇...這個照片...帥
% l7 i$ O0 z+ }5 L8 _$ R+ \! L( ~* T4 U4 O0 H* Y! O7 p) K
本人的照片也upload來看看吧
17#
發表於 2007-2-28 23:47:38 | 只看該作者
damy加油哦
* g7 G2 Q3 Q; X- b, Z# s( T有什麼問題的話歡迎你再提出來
. s% _( u1 L$ G7 j) f8 _另外也多參與論壇哦
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-7 06:24 PM , Processed in 0.159520 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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