Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2007-2-15 14:45:38 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
各位板友,新年快樂:* X( B3 i) R" f8 @9 P
想請教各位版友一些問題,我目前有兩套程式,一套是CCD影像程式,另一套是USB的驅動程式,原本要將影像儲存到CPLD�必須先跑CCD程式,將CCD程式下載到FPGA後,等螢幕出現影像再按一KEY[2]鍵將影像定格後,再跑USB程式將USB下載到FPGA後, E+ B1 g' ?; i% k& C5 b" O$ ]
即能將FPGA內部的影像檔傳送到CPLD,但是我現在想要合成CCD與USB程式,不想分兩次驅動,但實際的語法我修改了好幾次都
2 N9 }9 S/ {1 K( a9 ^- D% l: g" [失敗,影像還是能跑出來,但是下載到CPLD的畫面是黑色的(無影像存在),所以,想請教各位高手,能否幫我看一下程式,給我ㄧ些提示與建議.....& d$ `3 k5 {4 L# c5 {: |
因為程式很長,所以我只列出目過前修改後最主要的程式碼...
( i' `" j$ _* R" d+ ?- F3 z% N1 r3 h6 M
//        USB JTAG3 C- |7 l) q+ s0 p
wire TDI;$ R+ A& n7 h( `5 q6 e
wire [7:0] mRXD_DATA,mTXD_DATA;     ----------------------------我增加的程式碼" i; F  l% p' [( m7 L8 j1 b6 t/ x9 E2 h
wire mRXD_Ready,mTXD_Done,mTXD_Start;  ----------------------------我增加的程式碼# t+ p; T* T, X* e  W; F1 N
reg mTCK;* a1 m9 q$ e- Z- W( t+ m! P. |
reg TDO;                                                 ----------------------------我增加的程式碼
2 j% i0 P2 G4 @; j6 Ereg [7:0] oRXD_DATA,oTXD_DATA;      ----------------------------我增加的程式碼! k7 E. j6 p/ w5 g% d
reg oRXD_Ready,oTXD_Done,oTXD_Start;   ----------------------------我增加的程式碼+ [0 P# H  R2 R& i% F* _5 I
//        All inout port turn to tri-state
& e0 {) \0 T' ~assign        OTG_DATA        =        16'hzzzz;0 n$ g% }' c6 h* m( o: c4 o, L( c; H+ j
assign        SD_DAT                =        1'bz;5 \5 L! \5 |. l9 J% Z( r
assign        GPIO_1                =        36'hzzzzzzzzz;( h+ m& o% T8 R2 i2 P
//        Audio
  l- I) M2 A! y! Q8 ]; Iassign        AUD_ADCLRCK        =        AUD_DACLRCK;
/ W0 F8 r- R4 W+ v' Vassign        AUD_XCK                =        AUD_CTRL_CLK;
* s  E1 r# }+ e% Q* R  c5 z9 \$ n0 k$ R% u" J
always@(posedge CLOCK_50)        CCD_MCLK        <=         ~CCD_MCLK;
( P6 s8 K; c1 X( x1 q+ _9 ~' h7 g7 V7 k5 o# e: ~' ^, V( S
always@(posedge CCD_PIXCLK)
9 B" k; w3 V  _begin
+ G& p5 v) x& d1 XrCCD_DATA        <=        CCD_DATA;
. X7 A5 B3 s8 M8 M) b9 z1 A% urCCD_LVAL        <=        CCD_LVAL;
  z* p  y4 U6 {. T2 |% e* FrCCD_FVAL        <=        CCD_FVAL;  _& a# Q9 y5 k% j- D
  if (!KEY[0]) begin                                    從這一行開始是我增加USB的程式碼合成到CCD程式裡面
2 ~. b# ?2 X2 a) V& B% C5 e7 ~7 P     mTCK   <=   TCK;
" ]& q0 U, d' s     oRXD_DATA  <=  mRXD_DATA;
5 I- Y- @6 b. z  V     oTXD_DATA  <=  mTXD_DATA;
+ C1 z9 C/ y7 T' ]. C     oRXD_Ready  <=  mRXD_Ready;5 \+ L- y1 G8 j+ Y  M8 i. h2 s
     oTXD_Done  <=  mTXD_Done;7 Z1 g4 z8 p5 H7 T" i, J
     oTXD_Start  <=  mTXD_Start;( Z) b( _* W7 g3 U
  end                      結束...................
8 H% Y2 x1 V5 e. X( c' g0 g  else begin 0 M3 O, o: }  [- |
     mTCK   <=  ~TCK;
% R9 E( H& Z+ O4 E# m1 t2 N9 i  end3 M4 P+ }* n9 F) Q' j5 a- ~
end
3 h$ F& p5 ^' G5 Oassign        mVGA_R        =        Read_DATA2[9:0];* |' g8 k9 R' T- L+ t) Y
assign        mVGA_G        =        {Read_DATA1[14:10],Read_DATA2[14:10]};
# C' W$ H1 X$ V" x/ B/ G( wassign        mVGA_B        =        Read_DATA1[9:0];
/ E2 p% d$ e/ r3 j3 u8 b5 bendmodule
3 y) s4 C; M. t2 i4 ~' D& s; t, N  t/ B
原本單獨驅動FPGA的USB程式碼~* W- ?8 h: ~! w7 [0 f

* I! f! M$ L, L8 c$ wmodule DE2_USB_API/ A5 ?: h0 L* E7 @$ }! D0 I
////////////////////        USB JTAG link        ////////////////////////////
, c# u& d) G; Kinput                          TDI;                                // CPLD -> FPGA (data in)
7 y% {2 c# K( Z- h2 `; n0 |input                          TCK;                                // CPLD -> FPGA (clk)
% A" ~2 g0 f- N) ]: n* hinput                          TCS;                                // CPLD -> FPGA (CS)0 p$ F7 h' E  S1 }) w; H7 S
output                         TDO;                                // FPGA -> CPLD (data out)
' U- @, h% \9 L! z4 z& E) K2 v  G2 \* N  }* Q
//        USB JTAG
- q" Y6 H9 s5 ~' |; Hwire [7:0] mRXD_DATA,mTXD_DATA;
* u; _' D1 i/ m5 v1 o$ ^  N$ P" y0 dwire mRXD_Ready,mTXD_Done,mTXD_Start;
8 Q; p! P# _0 X- ^9 }5 O4 zwire mTCK;  ?' r0 ~5 r2 C: R: i9 f
endmodule
' k- P1 q, ?1 ?& H) I
3 t' N; I. ?7 I. W1 f想要將上面的USB程式合成到CCD程式裡面.....2 @. g# l, o3 J: _9 }4 a
但不曉得語法應怎麼表達才能完整,我的構想是等影像跑出來後,按原本CCD程式設定好的KEY[2]鍵將影像定格後.( ?, j( g$ y7 Y- ?; i, P
再按KEY[0]鍵來驅動USB程式將影像下載到CPLD......
' s; U6 u9 y* |% `. Y7 V但改來改去下載的結果都失敗(但CCD影像是成功的)( c2 R+ `* i0 _+ ?* ~& j  {
所以想請教各位高手,能否提示一下正確的語法.........
3 L, @; w& V9 I) \謝謝.............
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2007-2-15 15:57:14 | 只看該作者
請問 CCD_PIXCLK 如何產生?
2 T; E6 V4 J) `5 W按了KEY[2]鍵將影像定格後還會有CCD_PIXCLK嗎?
3#
 樓主| 發表於 2007-2-15 16:53:00 | 只看該作者

回復 #2 masonchung 的帖子

masonchung 版主您好:
4 J' U+ f4 E; x) {) P+ x7 J" c2 b我還是將我的程式碼貼上去好了& X( r7 P9 X% \- [' n) g0 R
因程式太長,所以分2次po  A8 a( ~0 ?7 `
* ~# x2 |6 H; Q# k- f4 l& `
module DE2_CCD
% Y8 g. L) [& {% J% H8 i8 w////////////////////////        Clock Input                 ////////////////////////; @2 h0 T1 m. A& A. q* Z7 W
input                        CLOCK_27;                                //        27 MHz
5 ]% j( c7 c2 s* R& Vinput                        CLOCK_50;                                //        50 MHz
8 }, l; z- s, i/ vinput                        EXT_CLOCK;                                //        External Clock+ m3 R- r. x. A9 s
////////////////////////        Push Button                ////////////////////////
6 n. [! U% g. F, I5 l) x6 s' N) R" Kinput        [3:0]        KEY;                                        //        Pushbutton[3:0]6 b; x6 W$ u$ T/ p- e& a
////////////////////////        DPDT Switch                ////////////////////////
$ L; e( p# C2 C8 l3 h* cinput        [17:0]        SW;                                                //        Toggle Switch[17:0]
$ @/ g! i" k% E2 J' f6 p6 D////////////////////////        7-SEG Dispaly        ////////////////////////7 @8 J1 Q8 p4 \" `
output        [6:0]        HEX0;                                        //        Seven Segment Digit 0! L/ q: B3 I! @8 A# [0 x
output        [6:0]        HEX1;                                        //        Seven Segment Digit 1
4 w9 J9 F1 `8 ^  f5 [2 E( Soutput        [6:0]        HEX2;                                        //        Seven Segment Digit 2: @8 ~% T! [9 O5 f) J* u7 _
output        [6:0]        HEX3;                                        //        Seven Segment Digit 35 _( @6 r5 M: |8 @
output        [6:0]        HEX4;                                        //        Seven Segment Digit 4: ?9 {3 w0 b9 i. I* f
output        [6:0]        HEX5;                                        //        Seven Segment Digit 5
! q) R# Q! Q0 m3 p. w, _output        [6:0]        HEX6;                                        //        Seven Segment Digit 69 h) T# f6 s& u/ l8 w
output        [6:0]        HEX7;                                        //        Seven Segment Digit 76 [  E: e/ |# L, g; e9 U
////////////////////////////        LED                ////////////////////////////
" B% `. u& l; F, ooutput        [8:0]        LEDG;                                        //        LED Green[8:0]# j( e0 U9 X% K" d  u
output        [17:0]        LEDR;                                        //        LED Red[17:0]) D' z# Z2 j& u) g& P3 t  \
////////////////////////////        UART        ////////////////////////////: b6 h6 g5 l. `/ u6 V1 ]6 T, e% b
output                        UART_TXD;                                //        UART Transmitter' a: i# s. L+ N) `; N
input                        UART_RXD;                                //        UART Receiver, L, Q; u" }( {. s& z+ O; Y
////////////////////////////        IRDA        ////////////////////////////
* D+ d3 S5 |" M) Koutput                        IRDA_TXD;                                //        IRDA Transmitter
3 c, \% d  n% r; d6 J( V0 j% t. ?input                        IRDA_RXD;                                //        IRDA Receiver
; t3 G" t- l* ?///////////////////////                SDRAM Interface        ////////////////////////' s$ [" E6 \8 \2 a
inout        [15:0]        DRAM_DQ;                                //        SDRAM Data bus 16 Bits! M9 {4 d! G0 S& C4 ~4 c; X) ?
output        [11:0]        DRAM_ADDR;                                //        SDRAM Address bus 12 Bits$ D% b. V3 _' M6 I# P
output                        DRAM_LDQM;                                //        SDRAM Low-byte Data Mask 8 X+ U+ }2 y% ]9 S
output                        DRAM_UDQM;                                //        SDRAM High-byte Data Mask
, f& o8 L6 }* moutput                        DRAM_WE_N;                                //        SDRAM Write Enable
# L  u* e, }7 ^output                        DRAM_CAS_N;                                //        SDRAM Column Address Strobe+ X1 o9 f! W- m( i4 l( t
output                        DRAM_RAS_N;                                //        SDRAM Row Address Strobe, J! f2 X4 f8 J+ `+ |1 _! o
output                        DRAM_CS_N;                                //        SDRAM Chip Select" g. o) V+ e; I9 M
output                        DRAM_BA_0;                                //        SDRAM Bank Address 0$ E( W1 g; R+ Z! m$ `
output                        DRAM_BA_1;                                //        SDRAM Bank Address 0
6 W' M5 l0 c. koutput                        DRAM_CLK;                                //        SDRAM Clock
( o3 M3 p1 ^" W' Soutput                        DRAM_CKE;                                //        SDRAM Clock Enable9 T9 i. x; `- t  k" \* e5 {6 O
////////////////////////        SRAM Interface        ////////////////////////
6 D8 d- @9 g# Yinout        [15:0]        SRAM_DQ;                                //        SRAM Data bus 16 Bits
5 I# H' B1 d0 n$ h( m3 g. t) Z) O4 Houtput        [17:0]        SRAM_ADDR;                                //        SRAM Address bus 18 Bits: A6 L" U; _, z' `$ k9 V( \: [
output                        SRAM_UB_N;                                //        SRAM High-byte Data Mask
: r% f0 G3 O! r0 w  M1 V/ doutput                        SRAM_LB_N;                                //        SRAM Low-byte Data Mask
' ]0 F+ @9 j, }, \: ~3 Joutput                        SRAM_WE_N;                                //        SRAM Write Enable
' ^# b+ L7 g5 S' I) T7 U$ \output                        SRAM_CE_N;                                //        SRAM Chip Enable+ v$ {& U7 h; Y- N2 X7 J+ Y! \; G
output                        SRAM_OE_N;                                //        SRAM Output Enable4 \$ |  l& t2 k/ E* a5 |
////////////////////        ISP1362 Interface        ////////////////////////: g3 U4 Z! O  p4 @1 o- Z, C
inout        [15:0]        OTG_DATA;                                //        ISP1362 Data bus 16 Bits
# n# H4 g) u+ p2 W- Ioutput        [1:0]        OTG_ADDR;                                //        ISP1362 Address 2 Bits
; g8 X% }% G7 y8 R" J  W7 R) Routput                        OTG_CS_N;                                //        ISP1362 Chip Select7 X& F  T+ L6 a0 J2 ~$ M
output                        OTG_RD_N;                                //        ISP1362 Write
1 F1 T0 N, k0 }3 m% Joutput                        OTG_WR_N;                                //        ISP1362 Read
8 n0 e, L0 s( L! V3 n0 goutput                        OTG_RST_N;                                //        ISP1362 Reset
4 |: H+ z8 D0 R7 n: ]' X' }output                        OTG_FSPEED;                                //        USB Full Speed,        0 = Enable, Z = Disable- j. u8 ^. z+ p2 t7 |
output                        OTG_LSPEED;                                //        USB Low Speed,         0 = Enable, Z = Disable0 X8 P" Z( u. ^  z6 T
input                        OTG_INT0;                                //        ISP1362 Interrupt 0# ?% k0 }% q/ ~5 h" N* [0 W
input                        OTG_INT1;                                //        ISP1362 Interrupt 1
) Y) _, o3 @1 t0 Z4 zinput                        OTG_DREQ0;                                //        ISP1362 DMA Request 0
+ F; b- }$ t. p" I# }input                        OTG_DREQ1;                                //        ISP1362 DMA Request 15 M6 E5 H$ i. O* a$ F7 m6 g0 V
output                        OTG_DACK0_N;                        //        ISP1362 DMA Acknowledge 0
9 b4 u3 ?+ {1 Noutput                        OTG_DACK1_N;                        //        ISP1362 DMA Acknowledge 1& i8 M' a7 v+ Q1 q: f
////////////////////        LCD Module 16X2        ////////////////////////////. ]) N( L9 ^! w
inout        [7:0]        LCD_DATA;                                //        LCD Data bus 8 bits
) v2 P, B, I( I5 b4 @' t: a) soutput                        LCD_ON;                                        //        LCD Power ON/OFF
2 C. L( v2 Q( V% z9 |; ?3 b, l% Noutput                        LCD_BLON;                                //        LCD Back Light ON/OFF
( G1 w( d0 x. e3 U& Noutput                        LCD_RW;                                        //        LCD Read/Write Select, 0 = Write, 1 = Read) B+ J, G" x9 W! v; M  @" I) I5 T- E
output                        LCD_EN;                                        //        LCD Enable1 e0 F6 d& @. w1 z" o
output                        LCD_RS;                                        //        LCD Command/Data Select, 0 = Command, 1 = Data8 y. a+ [: L8 O$ x
////////////////////        SD Card Interface        ////////////////////////
1 D0 C6 E& H' A! o. M9 [& Tinout                        SD_DAT;                                        //        SD Card Data
3 i- K! a, I6 n* c; oinout                        SD_DAT3;                                //        SD Card Data 31 M2 E" J. \6 N: T2 u
inout                        SD_CMD;                                        //        SD Card Command Signal
# K  p8 L! Q3 L8 J! y8 I7 b; L. h( Eoutput                        SD_CLK;                                        //        SD Card Clock6 X! [5 }1 a9 ]
////////////////////////        I2C                ////////////////////////////////
1 ~; v7 ?0 W* a9 Z8 f( e: }inout                        I2C_SDAT;                                //        I2C Data0 W9 X( Q; g5 O
output                        I2C_SCLK;                                //        I2C Clock4 d" J6 n7 P; F" L) j
///////////////////        USB JTAG link        ////////////////////////////
( V4 O1 C( d* L" j3 Yinput                          TDI;                                        // CPLD -> FPGA (data in)* Y5 q  t* a# N  J: m4 P+ Q& |
input                          TCK;                                        // CPLD -> FPGA (clk)" c5 g% }5 Y% e9 p' Q# E
input                          TCS;                                        // CPLD -> FPGA (CS)4 _& {" W. I- W6 O9 a
output                         TDO;                                        // FPGA -> CPLD (data out)
/ I% @; q: F; l# `////////////////////////        VGA                        ////////////////////////////) e! l/ t- j$ d' _3 {- q8 G% N8 J
output                        VGA_CLK;                                   //        VGA Clock) o3 A( O7 A/ J
output                        VGA_HS;                                        //        VGA H_SYNC
% J3 w/ S7 O7 goutput                        VGA_VS;                                        //        VGA V_SYNC
% B  m9 o7 n$ q. _6 Q# G4 {1 @" @output                        VGA_BLANK;                                //        VGA BLANK4 \" ~, o. V8 Y9 x8 W/ z  z* {
output                        VGA_SYNC;                                //        VGA SYNC+ q1 T5 X8 R: a! \
output        [9:0]        VGA_R;                                   //        VGA Red[9:0]8 G* Q. Y# I1 a0 W- ~& }  q  p- p
output        [9:0]        VGA_G;                                         //        VGA Green[9:0]
4 m' F* o+ J$ Y. r+ P. K: Coutput        [9:0]        VGA_B;                                   //        VGA Blue[9:0]
. }% @' _4 S8 o, }, i  }& L////////////////////        Audio CODEC                ////////////////////////////& @4 G* y2 @. E; n
inout                        AUD_ADCLRCK;                        //        Audio CODEC ADC LR Clock9 B! f( U6 W. g6 n4 R% h
input                        AUD_ADCDAT;                                //        Audio CODEC ADC Data' L$ G) g  T. U# B# c4 p" ?
inout                        AUD_DACLRCK;                        //        Audio CODEC DAC LR Clock
" T; l5 |2 |% a, b% B9 Moutput                        AUD_DACDAT;                                //        Audio CODEC DAC Data  X  `+ \$ J- U$ A2 C; q
inout                        AUD_BCLK;                                //        Audio CODEC Bit-Stream Clock
, w- d7 D. l6 Q1 r3 ~9 ]  i  m; I4 g1 Joutput                        AUD_XCK;                                //        Audio CODEC Chip Clock
( O" X8 ~6 x; t////////////////////        TV Devoder                ////////////////////////////
4 h  \7 L/ x1 q$ W2 \: a- t( ^input        [7:0]        TD_DATA;                            //        TV Decoder Data bus 8 bits
4 d! I2 }' D" Tinput                        TD_HS;                                        //        TV Decoder H_SYNC: }' S0 |% Z- _$ g, Q) \4 j# D
input                        TD_VS;                                        //        TV Decoder V_SYNC
: n8 ^9 u+ m; u, a; `# U( [0 Koutput                        TD_RESET;                                //        TV Decoder Reset
) {; ]4 ]% j6 g# O, P! p////////////////////////        GPIO        ////////////////////////////////
4 b6 O" Z- ~/ i3 W( r+ \( H, linout        [35:0]        GPIO_1;                                        //        GPIO Connection 1
# v5 B. J: U1 v* \1 n- g+ l" K& z6 \. Y' y0 f' ?
assign        LCD_ON                =        1'b1;
$ j  N( q* k* p# F2 zassign        LCD_BLON        =        1'b1;' E% k8 H% Y4 k. }
assign        TD_RESET        =        1'b1;
4 n7 w7 g& c* w  E  R2 ]5 y( g( j4 p; `
//        All inout port turn to tri-state
5 I; h* q( H3 s2 iassign        SRAM_DQ                =        16'hzzzz;+ p3 W0 J1 k6 l8 e( L8 a& w
assign        OTG_DATA        =        16'hzzzz;& a5 ]4 m5 |) K' c8 P2 G
assign        LCD_DATA        =        8'hzz;
7 a2 k* f7 x4 P8 q: hassign        SD_DAT                =        1'bz;( r) O8 o* v  D9 F6 b0 b) s. a5 [& |
assign        I2C_SDAT        =        1'bz;
0 Q+ s3 t2 E6 O- F: T6 P3 d; Y0 Cassign        ENET_DATA        =        16'hzzzz;* g0 |/ m. s3 E" M& W( Y6 D
assign        AUD_ADCLRCK        =        1'bz;0 _" f/ Z# W. X) j
assign        AUD_DACLRCK        =        1'bz;
# z6 n( I1 n# J. C- t) yassign        AUD_BCLK        =        1'bz;
4#
 樓主| 發表於 2007-2-15 17:05:19 | 只看該作者
//        CCD" ]5 W# g" X5 Y7 P# x, U
wire        [9:0]        CCD_DATA;) I2 U! \) D2 G# [2 [$ }9 t
wire                        CCD_SDAT;. w3 E$ h0 Z% m
wire                        CCD_SCLK;
5 ]) {) `0 v7 Pwire                        CCD_FLASH;
' `" t! S' Z9 lwire                        CCD_FVAL;
  Z. I( ?8 `/ T( g0 m& j. M) N3 twire                        CCD_LVAL;& V  t$ H0 P/ |7 I0 h. S. u
wire                        CCD_PIXCLK;
* v' d& X8 n0 q8 S2 J# \$ \9 jreg                                CCD_MCLK;        //        CCD Master Clock  F" ~. b& e% f4 G# ]7 q5 h9 c

* i# \! J8 o  b; b' E* O  e- fwire        [15:0]        Read_DATA1;
4 z3 a5 G+ z9 z, qwire        [15:0]        Read_DATA2;
/ x7 F, w& f* nwire                        VGA_CTRL_CLK;
( v# ^. S% E7 V( D# e% u, a0 ewire                        AUD_CTRL_CLK;
2 f) m/ F2 ~# J) ?5 m$ d$ j4 i4 Gwire        [9:0]        mCCD_DATA;
' d. w8 @1 W* V: w( n; u# bwire                        mCCD_DVAL;+ A* Q( M4 x0 B0 Y
wire                        mCCD_DVAL_d;
+ Y* Z3 h- L/ m% A" qwire        [10:0]        X_Cont;
  M* k6 m3 x+ y! I1 dwire        [10:0]        Y_Cont;# I4 C* ~& C; t
wire        [9:0]        X_ADDR;# \% J) Q3 C  Z2 G2 k; S
wire        [31:0]        Frame_Cont;' F8 _4 Z4 r4 b! h! A
wire        [9:0]        mCCD_R;
9 j" q2 U6 j& ~2 _* p' R. Vwire        [9:0]        mCCD_G;
$ @3 ?% B8 f- Q  `* k, r: {9 B+ {+ Xwire        [9:0]        mCCD_B;' Z4 g1 w$ q( P  K- l. C+ a
wire        [9:0]        mVGA_R;
+ v$ k  ]% c3 A- {7 Uwire        [9:0]        mVGA_G;
0 M: d( \/ X- j3 owire        [9:0]        mVGA_B;
4 s5 e+ i8 x* j4 \! q3 H; [wire                        DLY_RST_0;
8 L  }. C9 a. c' e' u% {1 Lwire                        DLY_RST_1;3 N( `1 @5 f, F. _
wire                        DLY_RST_2;3 p! j, j( O* |& m& t
wire                        Read;
4 J2 P0 G+ k. p( Z) z+ ?# Dreg                [9:0]        rCCD_DATA;3 h" m. J4 O: A% ?! a2 V7 e
reg                                rCCD_LVAL;
9 D" d$ N- ~9 `$ preg                                rCCD_FVAL;
8 G4 u; u8 j- e9 h
% f% O  Q4 C6 M! ^5 {0 I9 C- C//        For Sensor 1
+ p4 z# Z6 U" \* iassign        CCD_DATA[0]        =        GPIO_1[0];
7 x3 ]$ E; @+ e( m: Massign        CCD_DATA[1]        =        GPIO_1[1];
6 j6 n3 R) F0 x/ e( d$ j* I$ Yassign        CCD_DATA[2]        =        GPIO_1[5];
3 d4 C5 g& s7 e& t( rassign        CCD_DATA[3]        =        GPIO_1[3];+ G" {( o* Z4 \) [
assign        CCD_DATA[4]        =        GPIO_1[2];
1 U3 x' r& h$ c4 n) vassign        CCD_DATA[5]        =        GPIO_1[4];
3 N0 s) x* N7 r$ v" Nassign        CCD_DATA[6]        =        GPIO_1[6];
* I3 m; h# `3 Cassign        CCD_DATA[7]        =        GPIO_1[7];
5 `7 ~% ~  {! M# g! u/ E( n9 Kassign        CCD_DATA[8]        =        GPIO_1[8];& L# H# T, n6 j5 o4 O% y
assign        CCD_DATA[9]        =        GPIO_1[9];" u& D; u; v9 @- D# T8 h
assign        GPIO_1[11]        =        CCD_MCLK;
7 z" d- a2 y5 [( m9 `" Wassign        CCD_FVAL        =        GPIO_1[13];
5 X4 p' E9 Z3 Q1 V& O: O6 sassign        CCD_LVAL        =        GPIO_1[12];3 U  y( M& [( C* K  ]: [
assign        CCD_PIXCLK        =        GPIO_1[10];% ?) B* F* S6 C
% P, F( M! o: |7 j% F
assign        LEDR                =        SW;, h: u4 F9 [- @; R# I
assign        LEDG                =        Y_Cont;
% y' i  z5 Y8 _& {assign        VGA_CTRL_CLK=        CCD_MCLK;
1 r# h* k$ V* N$ \. sassign        VGA_CLK                =        ~CCD_MCLK;
3 K4 ]9 l8 V4 [/ s% R9 C! o. E- }: ?% p  r  s/ F1 l7 S) c
VGA_Controller                u1        (        //        Host Side2 {1 N; U) g2 p' T) q
                                                        .oRequest(Read),5 G2 b( z$ V; X! H+ d; d! E
                                                        .iRed(                DISP_R        ),
, N" Q$ M5 c2 G* ~' y6 V$ Z                                                        .iGreen(        DISP_G        ),0 q( E5 |: |* c
                                                        .iBlue(                DISP_B        ),
7 s' ~# u3 o" u& V7 v4 B; W% C                                                        //        VGA Side) ?- ~' d- R' |& D8 C: {8 q. N
                                                        .oVGA_R(VGA_R),0 Y2 q5 L- f7 v+ k4 g: ^6 s- ?) s
                                                        .oVGA_G(VGA_G),& u0 k. |; {$ H, i9 F) a2 x% w1 \
                                                        .oVGA_B(VGA_B),# }! Y& @" T; `0 x6 e
                                                        .oVGA_HS(VGA_HS),
  r- ~4 ~- ^/ u  U2 a( ~2 Y                                                        .oVGA_VS(VGA_VS),
6 u6 N$ e% a4 @0 }! d' J  i3 p                                                        .oVGA_SYNC(VGA_SYNC),
8 }( V" o- s8 z# y) K: _                                                        .oVGA_BLANK(VGA_BLANK),) s& ]0 X% s; w1 w* k: E
                                                        //        Control Signal) j" @" \3 ]* u& g2 A2 K$ c
                                                        .iCLK(VGA_CTRL_CLK),4 L/ g6 f1 V$ Z. L
                                                        .iRST_N(DLY_RST_2)        );
; t. E5 x& s/ g9 D( L4 R9 ~
: D' U; K# p3 |- R5 i; gReset_Delay                        u2        (        .iCLK(CLOCK_50),
8 B5 O  l, u/ e; x                                                        .iRST(KEY[0]),+ W: @" p0 d" K$ Y( s; k, b. [
                                                        .oRST_0(DLY_RST_0),
" h  M. D' y6 d( S                                                        .oRST_1(DLY_RST_1),4 R+ G( g5 J  n; s  J3 d7 _
                                                        .oRST_2(DLY_RST_2)        );$ I1 M' \" h/ n  o& G
. A  S* ]& v0 g5 h- Q* r
CCD_Capture                        u3        (        .oDATA(mCCD_DATA),* p1 s5 u) ]5 n4 b# J. e
                                                        .oDVAL(mCCD_DVAL),7 e- a, J, O. o' o
                                                        .oX_Cont(X_Cont),+ W& S' J1 j4 t% `- |8 m- I/ m1 X
                                                        .oY_Cont(Y_Cont),: M- ^8 h: i1 z2 A/ d3 Q1 f
                                                        .oFrame_Cont(Frame_Cont),
/ q  v& s* E6 A  t* Y7 Y. o" }" ~                                                        .iDATA(rCCD_DATA),5 _3 m- [3 l! n
                                                        .iFVAL(rCCD_FVAL),0 a% ?. n) u4 a5 F
                                                        .iLVAL(rCCD_LVAL),
) R2 M: p! y1 ?                                                        .iSTART(!KEY[3]),
5 y+ W8 n6 ]" v4 W6 x, f                                                        .iEND(!KEY[2]),  m9 g7 n/ z/ t
                                                        .iCLK(CCD_PIXCLK),  O! V4 E; j4 W
                                                        .iRST(DLY_RST_1)        );
7 r, e9 B0 E" T) y* Y7 O5 x4 {: ~# O' c& ~& ~
RAW2RGB                                u4        (        .oRed(mCCD_R),9 P- w0 p5 W4 J0 Q7 c2 z  W
                                                        .oGreen(mCCD_G),
! Z, F; M( ?9 a                                                        .oBlue(mCCD_B),
6 ^8 O+ Z9 S' I+ U- E# \1 l3 ?+ N                                                        .oDVAL(mCCD_DVAL_d),; g( a, G: m( _) g
                                                        .iX_Cont(X_Cont),9 r. O& {  V8 y, X; s- ?
                                                        .iY_Cont(Y_Cont),
, V0 k4 }# f7 `. V: W                                                        .iDATA(mCCD_DATA),! `+ d' C0 d4 f: o
                                                        .iDVAL(mCCD_DVAL),
1 n2 Q; ^" t1 J8 a* K                                                        .iCLK(CCD_PIXCLK),
: C0 f; d- R; s; B6 L# B6 W                                                        .iRST(DLY_RST_1)        );
/ o# a8 w) }1 ]4 z; X6 O. j1 j0 m  R) L
SEG7_LUT_8                         u5        (        .oSEG0(HEX0),.oSEG1(HEX1),
& v  l; B6 i; ]0 s: g. e                                                        .oSEG2(HEX2),.oSEG3(HEX3),8 f& G. J0 \4 E0 w9 i5 ^+ Q
                                                        .oSEG4(HEX4),.oSEG5(HEX5),/ [" T! ~5 t/ |) t, Z) J" y+ z4 L! w
                                                        .oSEG6(HEX6),.oSEG7(HEX7),
$ V5 X! \! V* G                                                        .iDIG(Frame_Cont) );% _9 E5 J3 A) s' `

: u: C* r' x/ n" }Sdram_Control_4Port        u6        (        //        HOST Side9 ~! J; _# L) P4 s
                                                    .REF_CLK(CLOCK_50),
" Y0 ]/ N7 I( n8 |0 j0 M- W                                                    .RESET_N(1'b1),
2 t  P  s* y/ g! P2 J( A: t                                                        //        FIFO Write Side 1
0 L0 L6 S! \- r, }% q0 z                                                    .WR1_DATA(        {mCCD_G[9:5],
$ f2 a# G& k# e                                                                                 mCCD_B[9:0]}),
' Q/ i3 V8 H2 x                                                        .WR1(mCCD_DVAL_d),/ T. E& A0 e7 Q6 Z3 H8 c
                                                        .WR1_ADDR(0),. t' b- L' u% @# e) |: O9 B
                                                        .WR1_MAX_ADDR(640*512),4 N: ^& U% m8 E) I' _! n
                                                        .WR1_LENGTH(9'h100),
& U4 d4 R9 E/ [                                                        .WR1_LOAD(!DLY_RST_0),' d' f' V: F$ E5 Z
                                                        .WR1_CLK(CCD_PIXCLK),
, \+ ]7 T3 u% K) d                                                        //        FIFO Write Side 26 f( E# P( Y5 n0 |6 I
                                                    .WR2_DATA(        {mCCD_G[4:0],
9 \  a6 T) M* P5 O* U' J                                                                                 mCCD_R[9:0]}),1 S: x1 [" c* a$ g
                                                        .WR2(mCCD_DVAL_d),& T7 @: p) K" z; h( Z+ Q
                                                        .WR2_ADDR(22'h100000),
3 t; T) u' S9 C                                                        .WR2_MAX_ADDR(22'h100000+640*512),4 G0 @6 W( j. A6 n4 q8 G
                                                        .WR2_LENGTH(9'h100),
4 U: w% K( O2 `! @# x+ ?# y                                                        .WR2_LOAD(!DLY_RST_0),
4 @* c0 @0 T9 z  S6 j; U                                                        .WR2_CLK(CCD_PIXCLK),
7 B5 S8 l' K& g: E' `5 j                                                        //        FIFO Read Side 1
- S4 N, r2 J+ x# U* G                                                    .RD1_DATA(Read_DATA1),
' V- `5 }. B" l; L) J9 u                                                .RD1(Read),  C  T  \4 t  [. T6 ~/ {3 W
                                                .RD1_ADDR(640*16),
3 `" S0 T! e$ L7 J                                                        .RD1_MAX_ADDR(640*496),$ h# L! b! u7 A6 v3 r; a- q
                                                        .RD1_LENGTH(9'h100),% b" [# n7 O4 S7 E
                                                .RD1_LOAD(!DLY_RST_0),
) Z! E8 B0 U- i. b) [, z- H) |                                                        .RD1_CLK(VGA_CTRL_CLK),
1 f9 t: K, _# Y* I                                                        //        FIFO Read Side 2
( x# g3 d5 M% ~' W8 z9 k  B                                                    .RD2_DATA(Read_DATA2),& i# u& c5 N  K7 i/ J# ~% f9 D
                                                .RD2(Read),
; D/ G+ I* \4 Z! n: h) S                                                .RD2_ADDR(22'h100000+640*16),
. l- C) L$ |! \" r+ e0 b* w; {                                                        .RD2_MAX_ADDR(22'h100000+640*496),
. B# f! [7 a4 }5 N7 P9 P                                                        .RD2_LENGTH(9'h100),
9 O  [' H# F! p0 c$ w/ S                                                .RD2_LOAD(!DLY_RST_0),
! r' }; u  z( _! H/ }                                                        .RD2_CLK(VGA_CTRL_CLK),
% V" l6 A! [4 K3 x                                                        //        SDRAM Side( O' s. g) h" N% x3 E" V
                                                    .SA(DRAM_ADDR),* E2 z6 r, }1 {- Y; y. \
                                                    .BA({DRAM_BA_1,DRAM_BA_0}),$ V( u: g' [1 g! d1 v1 p& X$ @
                                                    .CS_N(DRAM_CS_N),- T' ?  W. ]4 E$ Q+ E( E5 ~
                                                    .CKE(DRAM_CKE),  w+ [0 G  P" ~
                                                    .RAS_N(DRAM_RAS_N),) q. s0 D$ E/ p4 M
                                            .CAS_N(DRAM_CAS_N),! S# r; M& W. G2 F
                                            .WE_N(DRAM_WE_N),6 M+ @3 p# ?* ~1 W/ N2 [* T( b0 a( O1 ~
                                                    .DQ(DRAM_DQ),
6 V4 G$ z6 a; i8 L0 n                                            .DQM({DRAM_UDQM,DRAM_LDQM})," I' t2 I" _  m4 [/ o6 [& s. G
                                                        .SDR_CLK(DRAM_CLK)        );/ M. Y2 ~; [, v
  T  f+ m( W3 [
I2C_CCD_Config                 u7        (        //        Host Side( n- r3 S+ q) U- I( p
                                                        .iCLK(CLOCK_50)," M5 ^$ d, {- M4 h1 M
                                                        .iRST_N(1'b1),
0 Q8 U6 W6 N* Z$ o: Z                                                        .iExposure(16'h0600),2 i5 K8 t! n% y' M. T5 h; w
                                                        //        I2C Side7 I! ]+ g/ e; U' J& x3 U
                                                        .I2C_SCLK(GPIO_1[14]),
2 S# Q* D+ Z- i                                                        .I2C_SDAT(GPIO_1[15])        );" Z1 H: {# ], v, C+ J( e
/////////////////////////////////////////////////////////////////////* b4 f, S; B" E! N
wire                [9:0]        DISP_R;
- D% c$ E" E- G. Y. Iwire                [9:0]        DISP_G;3 C1 C7 ]1 {# e
wire                [9:0]        DISP_B;
* O5 `7 `3 k  N7 `, a' @3 S, p+ K' U9 L3 o9 ^2 I
//        To Display& {& J. t/ Q* W* T: v" d
assign        DISP_R        =        SW[17]        ?        mVGA_R        :        //        Red
7 Q  ?" J. B% o6 B7 C7 ^                                        SW[16]        ?        mVGA_G        :        //        Green
# V" {, S( K8 B, N5 B                                        SW[15]        ?        mVGA_B        :        //        Blue
! s$ I. B0 Y8 s! [) G( [& u                                                                mVGA_R        ;        //        Color# S! l+ J) K: F% F3 a
assign        DISP_G        =        SW[17]        ?        mVGA_R        :        //        Red" w' m6 G* [/ }* X$ j2 L$ h
                                        SW[16]        ?        mVGA_G        :        //        Green
1 _( N5 m9 v8 ^1 K6 z# T                                        SW[15]        ?        mVGA_B        :        //        Blue
+ J% D1 o# v! n( I# t8 q                                                                mVGA_G        ;        //        Color5 W2 s5 @3 k! r! j9 `
assign        DISP_B        =        SW[17]        ?        mVGA_R        :        //        Red* D9 R: |6 P4 P8 T8 Q  e
                                        SW[16]        ?        mVGA_G        :        //        Green
. U- c+ K5 l! _# R' u1 j' f                                        SW[15]        ?        mVGA_B        :        //        Blue
9 \7 o8 i( {3 s, `- g8 k' F                                                                mVGA_B        ;        //        Color
: f, i4 p2 A6 `8 `, ~
( t, m; G8 B) j2 e* w; \//        SDRAM. Y5 G8 r0 l9 y8 b3 v5 w
wire [21:0] mSD_ADDR;3 ^& A( i; `2 a  ~5 g" G9 c) i
wire [15:0] mSD2RS_DATA,mRS2SD_DATA;& A8 F! `2 |7 D, w& x
wire mSD_WR,mSD_RD,mSD_Done;
+ Q  B9 d7 w/ a# A( }# S* b//        SRAM Async Port
/ s& L( M, Y5 R/ T" ywire [15:0]        mSRAM_VGA_DATA;
0 y) R, R2 l! c# O' Wwire                DLY_RST;
% W+ O7 B! m5 Q7 o; ^
7 ?9 s4 L1 C- M9 T% j! M6 r//        VGA% g3 Q7 c8 f  L& K4 y5 A. M, |# b
wire [9:0] mOSD_R;+ I4 {! F' N  p
wire [9:0] mOSD_G;+ }& m5 E8 P( s# c; Y! M% Q
wire [9:0] mOSD_B;
# m/ v+ `# O  x, G8 G+ I4 d. ~* zwire [9:0] mVIN_R;
# p0 P/ D6 S4 p$ u$ c. x- xwire [9:0] mVIN_G;
2 T9 s4 @4 }0 [2 }; m& Kwire [9:0] mVIN_B;5 c/ Y) w8 B/ O; {0 P8 U
wire [19:0]        mVGA_ADDR;
; _2 `4 v1 f& twire [9:0]        mCursor_X;
5 O' t9 a, X. Y. G7 {+ b' G! Fwire [9:0]        mCursor_Y;: N6 x& u  e9 `/ x, V, k! |& ~
wire [9:0]        mCursor_R;) B1 g+ g+ C' V' \1 I% q/ |
wire [9:0]        mCursor_G;
1 R0 F, f! o1 g9 i+ Y* dwire [9:0]        mCursor_B;
9 g4 I, e& Y2 F$ W! E+ A! z7 F1 owire [1:0]        mOSD_CUR_EN;
% |7 S5 ^& L! q( \# {8 _' H& h//        Async Port Select5 e" g7 q8 F9 R9 ~0 G
wire [2:0] mSDR_Select;, [& b' e. o- }# N
//        External IO  d4 w( H( }6 w4 C% {
wire [7:0] mExt_IO;7 R7 C, U8 g9 {2 z; v  [( u; r
//        SDRAM Async Port. ]) c. G5 r. Z; a( \% x0 D  i5 V6 g
wire [15:0] mSDR_AS_DATAOUT_1;" C3 j9 k* h: |, A
wire [15:0] mSDR_AS_DATAOUT_2;
" Z# |$ `/ X' L& K' \: n+ _9 swire [15:0] mSDR_AS_DATAOUT_3;
! K# C! c) J- R4 p- q4 D6 J3 hwire [21:0] mSDR_AS_ADDR_1        = 0;
, e( x, W1 j2 Ewire [21:0] mSDR_AS_ADDR_2        = 0;7 S: w2 _$ y- X& {: d" k
wire [21:0] mSDR_AS_ADDR_3        = 0;: B/ T6 n" X0 S2 M: a2 x1 W
wire [15:0] mSDR_AS_DATAIN_1= 0;8 W2 {6 h, ^, n1 V+ ~. I- r, y
wire [15:0] mSDR_AS_DATAIN_2= 0;
9 x! V& l8 T) {wire [15:0] mSDR_AS_DATAIN_3= 0;
; N$ z9 ^4 z: C$ G2 Hwire                 mSDR_AS_WR_n_1        = 0;; ]$ g( }0 K1 X. w1 }
wire                 mSDR_AS_WR_n_2        = 0;0 O4 p: @7 H1 \! J( S/ q) V
wire                 mSDR_AS_WR_n_3        = 0;5 q: C* X* {7 z( p- t
//        USB JTAG
0 U! B1 s- s! w; _. E' Uwire TDI;
! ^% P  ?7 Q2 I" T& g& twire [7:0] mRXD_DATA,mTXD_DATA;) F$ k; ]4 `+ ^
wire mRXD_Ready,mTXD_Done,mTXD_Start;9 L* z% l' g9 S9 W
reg mTCK;: n3 D7 a+ }5 D8 ^
reg TDO;
, Q# d8 a4 F, {" w. freg [7:0] oRXD_DATA,oTXD_DATA;; a& ]/ {% [7 ?+ R8 y7 f; y% \) U
reg oRXD_Ready,oTXD_Done,oTXD_Start;' V6 I; N, M1 d4 b. i# q
//        All inout port turn to tri-state+ ~7 P8 |5 C& _
assign        OTG_DATA        =        16'hzzzz;
3 ?- U5 I1 o4 Sassign        SD_DAT                =        1'bz;% f3 J/ N- D8 c0 ]) |
assign        GPIO_1                =        36'hzzzzzzzzz;
) r& y. w" D7 J4 J/ a9 M" J//        Audio! }0 i7 Y6 m/ Q/ E6 `
assign        AUD_ADCLRCK        =        AUD_DACLRCK;/ {  Z9 S1 u: M% m
assign        AUD_XCK                =        AUD_CTRL_CLK;
( g+ v4 J7 {/ f; W( V: m- K5 N" _; f8 A: m4 T
always@(posedge CLOCK_50)        CCD_MCLK        <=         ~CCD_MCLK;
# j$ z( p: ~  n/ B
0 ~( P& e/ Y2 p' \) a4 valways@(posedge CCD_PIXCLK)
/ |/ _. h" L8 ], v6 A$ g. T3 q: E2 k: mbegin. \. N3 W; K8 |& w
rCCD_DATA        <=        CCD_DATA;; K5 X+ }. E* a
rCCD_LVAL        <=        CCD_LVAL;! T  L. l5 u' |) A+ \) {
rCCD_FVAL        <=        CCD_FVAL;
# n5 }+ r% S: H9 [: g2 e/ G" ^  if (!KEY[0]) begin2 c3 f4 M7 @6 J
     mTCK   <=   TCK;
5 V" B& }) A6 e9 Q     oRXD_DATA  <=  mRXD_DATA;
$ r( c6 R  M$ J9 g+ y     oTXD_DATA  <=  mTXD_DATA;$ e, z  B: E1 V+ k8 Z
     oRXD_Ready  <=  mRXD_Ready;; G0 W4 n! {/ T, B. N
     oTXD_Done  <=  mTXD_Done;8 _( V9 d" V6 @: F7 [+ c1 [
     oTXD_Start  <=  mTXD_Start;
) Z% g( Y; ~+ x4 u% `  end9 Q& P2 ?0 A2 t$ P
  else begin
( Z, g$ T+ [( U7 z( T: K     mTCK   <=  ~TCK;' ~9 v, N; h6 b6 T& D
  end
4 F* Y  u- [2 `/ C- k- Kend
% r! k* y: A7 x- f# p7 m9 ?+ lassign        mVGA_R        =        Read_DATA2[9:0];4 r2 K& e. h+ [6 |; N0 Q* _" K$ v5 F; v
assign        mVGA_G        =        {Read_DATA1[14:10],Read_DATA2[14:10]};, c  a) N) _' D& a: \# D+ J6 m- A" k
assign        mVGA_B        =        Read_DATA1[9:0];
8 `  }0 Y6 j, z" o. Nendmodule
; [4 N: F& B# o$ J' C& E$ [2 j0 ^0 O, y! Q; y; l/ }; q
以上是我自己修改過後的CCD+USB程式,CCD影像還是能成功的執行,但卻無法驅動USB程式下載影像檔
) b' i& H( ^; B( V* \+ J先說明一下驅動的流程.....: W( M  ^0 @( i$ u/ F- L
在驅動CCD程式之後,先按KEY[3]鍵,VGA螢幕就會出現CCD所攝取到的動態影像,& K# ]  Z- j5 b  Y# [
待調整好CCD位置,按KEY[2]鍵,即可定格影像選取所欲下載的畫面...
! l' V% g8 i4 e! m4 |" H只要再按KEY[3]鍵,即可回復原先的動態影像....+ A! a5 c5 u$ I8 a3 @9 C
而通常存取畫面都是再按KEY[2]鍵等影像定格後,再驅動USB程式.3 B: d+ M3 `2 L! J, q7 |- d
將USB程式下載到FPGA之後,即可在CPLD裡使用一套程式download由USB傳回來的影像檔.... K. i) j9 V) I6 k
等檔案download完成後,在開啟一個影像軟體打開下載後的檔案....2 [' [& Z! e* K) J+ v8 \: c; _
即可得到CCD所攝取到的畫面........
: R3 ~* p1 Q  p以上是整各程式驅動的內容及流程..# r- S$ j/ H- x9 |5 R/ D" S% |! T
請各位高手給予一些建議與討論....
+ D. \  O* d" M. n+ @謝謝.......
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 | 只看該作者
嗯~~不是耶!!! Q5 L+ F; E; R* h: t9 U  J  |
其實CCD和USB程式分2次下載到FPGA的時候,USB已經將CCD的程式給覆蓋掉了....
# K+ X8 |1 i0 [: m  @, O0 n; |0 K# f& _USB傳送的影像其實是按KEY[2]鍵,影像停格時儲存在SDRAM裡面的資料....
8 u) |/ G. f  r漏掉了一像沒有說...其實在驅動USB之後,在CPLD裡download的檔案是從SDRAM裡面擷取到的資料...
* _7 f( b# e/ Z/ {2 B% Z& f原本CCD主程式裡其實是有一些程式可以刪掉,對影像的出現沒有影響的...
6 u. \, T0 H. Y$ Y" }5 G9 [所以真正關鍵的程式是在CCD程式碼和SDRAM與mVGA及PIXCLK的迴圈之中......
# u) Q- h3 c, N+ a而USB的程式碼只有簡單幾個關鍵KEY,我再PO一次...
: V$ q4 F2 [. a" R5 s- b
5 ^$ a+ m% s1 n- M  t' kmodule DE2_USB_API
/ d# _4 E  A+ w2 B  E////////////////////        USB JTAG link        ////////////////////////////
, e! ]$ r' [( u" Einput                          TDI;                                // CPLD -> FPGA (data in): W! g5 J& r* D( J3 t+ f" a6 D
input                          TCK;                                // CPLD -> FPGA (clk)! V$ M( R' V0 ?0 o* w  |
input                          TCS;                                // CPLD -> FPGA (CS)  x* D& Y. J2 l; l+ H4 f9 i; Y4 C
output                       TDO;                                // FPGA -> CPLD (data out)
. c- r3 v0 l+ G* \# J6 \" O" h0 |0 i: R3 O% L5 _
//        USB JTAG% F! U; q5 Y) T8 C) z+ O
wire [7:0] mRXD_DATA,mTXD_DATA;
5 P* |8 ]% F3 {" Gwire mRXD_Ready,mTXD_Done,mTXD_Start;( B. Q% ]% ]2 Z5 \. U# I) f4 C, r
wire mTCK;
& Z; C7 R5 j9 k( _( X7 t0 bendmodule' @$ n# E; p" N& f# ~- H

# i  i& q( h& B7 D在驅動這個USB程式之後,就能覆蓋掉CCD程式,將儲存在SDRAM裡的最後資料傳輸至CPLD裡面.....4 S6 Q5 W2 ~1 l
所以現在我覺得問題是在...
+ p# x& [3 l# \' k/ [. j2 o如何在合成CCD與USB程式,按KEY[2]鍵將影像存入SDRAM之後....
) w5 @5 |2 e, W& j4 L" b再行驅動USB程式....將資料傳輸至CPLD之中...
; N, P2 z" S% \0 u, u6 T而前提是.........驅動USB的方式是依據FPGA裡面所提供的按鍵..如我想設定的KEY[0]鍵 ....
8#
發表於 2007-2-25 00:25:07 | 只看該作者
damy 大大...我是很想幫忙看一下啦- C5 c! Q6 }, ~. T* s- n4 k+ `
不過看到一大堆SOURCE CODE頭就昏了, 而且我猜這並不是全部的SOURCE CODE吧!0 r; v' }1 O8 R$ u, J! R" E- G

6 F5 ]) b/ Z3 l8 z8 H你願意的話我倒是也願意在MSN上幫你看看 (雖然我不見得能幫到忙, 不過試試也好)
0 v% u7 D/ F' v  D我想你會有一些設計的方塊圖, 如果有的話應該有助於我瞭解你的設計.
4 }- @/ H/ G' T. C8 g3 o7 e/ }我比較習慣從整個系統往模組再往電路看.
9#
發表於 2007-2-25 00:27:35 | 只看該作者
另外FPGA跟CPLD的編號能給我一下嗎?我可以從編號去猜一下你的設計會有多大, 要是能上傳你的report檔的話更好
10#
 樓主| 發表於 2007-2-25 16:16:45 | 只看該作者

回復 #9 tommywgt 的帖子

我是用Altera公司的QuartusⅡ軟體去模擬的哦!!5 R% U  d. g' [0 g2 s: w
另外,這套程式要配合友x公司的FPGA產品才能驗證....
11#
發表於 2007-2-25 19:54:42 | 只看該作者
tommywgt大大 加油喔∼; t; }$ z+ k2 `5 u8 g# Z/ m4 ]6 ~
小弟沒有這些裝備只能猜測問題點而已3 ~, F" Q( Z6 s3 t
拍謝拉
12#
發表於 2007-2-25 19:58:45 | 只看該作者
@@...好巧, 我也沒那些裝備...7 c2 y1 ^# n" e8 ~1 D9 M
) U1 a; H: a" [
說真的, 目前為止你提供的資訊很有限, . u5 O6 z  B: J9 N' C3 S) j
我先建議你回到RTL simulation環境看一下問題在不在? 
13#
 樓主| 發表於 2007-2-25 20:35:49 | 只看該作者
嗯~~用描述的比較不清楚.... c" ?% H3 j* D, {
說真的...6 w; ]& E* X* {, R" W
那套程式和軟體也是花了我幾個月的時間才稍微弄懂它的架構
# Y2 K9 R$ f; S( G7 }$ n, hpost上去的程式是完整的..., k4 n7 g  B) m+ @$ j  f
因為主程式和副程式沒有顏色上的區別,所以看起來會很吃力..7 y. b5 r% C0 s* @1 Y: }
如果tommywgt版主有興趣.....
; p4 ^4 i$ l) m, |可以到
2 N4 d4 s* [, m" v. Thttps://www.altera.com/support/s ... a_ie_al_ap_ht_1_022
# x" U: o4 p7 U' v
0 N( g2 v/ I* T7 R下載 Quartus II Web Edition (v6.1) 軟體7 N7 Y2 h4 ~0 e1 X, k1 F
免費使用期限三個月,期限一到,只要再重新註冊就好了4 v. `: ~' p, x  J- `
程式的部份....如您有興趣,我可以寄給您.....
14#
發表於 2007-2-25 23:54:26 | 只看該作者
Quartus II 我有完整版的/ h2 o$ D0 x9 s( _$ L6 s/ E! o5 L
1 j2 @% R( e1 i. @' N5 A, x
興趣是還好啦, 但是如果能幫上你的忙的話我倒也是很樂意.
; g( b" i0 q4 k. k- W9 ~; f6 n! ]0 P8 x: m% X+ h6 y% J
你可以寄到我的gmail去 chiatsun.wu@gmail.com
2 i9 h/ A1 P4 D& }: ~最好是完整的project file (要zip起來哦) 另外有多資料的話是最好不過.
$ A* G! V! G6 T( G/ M# o, X3 z我手上有一片我自己做的EP2S90的實驗版, 連MPEG1/2/4都放的下, 我想放你那個project應該沒問題. 另外最好是有ModelSim能RUN的test bench file.  x+ E+ S2 V# y  L5 A" I
2 q. `% i5 l2 p  T' Q
我會找點時間幫你看看. 另外可以的話最好請給我你的MSN, 因為只能利用下班時間看, 所以也許不會一下子看完, 但是我會找多點時間的.
, w# }+ e  i4 D: X8 j" f: z8 |# G; D& R" n5 U* v
我不敢說交給我, 但是如果照你所說的, 問題應該不會太大才對.
15#
發表於 2007-2-27 16:44:13 | 只看該作者
看来在搞影像处理方面的人才还不少喽,小弟也在搞这方面的,不知能否能帮得上前面的大哥,
& r- o4 M- g; J/ o/ {MSN︴email]Gzwb_345@hotmail.com[/email]
7 O! ?+ i$ _- T, J/ ^! M0 Fmail:  shine_zeng@163.com
16#
發表於 2007-2-27 18:10:52 | 只看該作者
哇...這個照片...帥6 J6 a' z9 S& ~# h' `5 r% C

% q+ v. e' A- z. q0 {% B1 O本人的照片也upload來看看吧
17#
發表於 2007-2-28 23:47:38 | 只看該作者
damy加油哦
/ x. v- |3 z1 u& w9 d: f有什麼問題的話歡迎你再提出來
* B; Y; r% Z9 ?; k# _8 \7 o) v另外也多參與論壇哦
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-20 12:35 AM , Processed in 0.131516 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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