Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] 關於Verilog語法一問?

[複製鏈接]
跳轉到指定樓層
1#
發表於 2007-1-11 19:14:52 | 顯示全部樓層 回帖獎勵 |倒序瀏覽 |閱讀模式
各位先進好~
* c9 y) ^- f7 f. m+ N3 @我是剛從學校進入這領域的新生,說不上是初學者
( _5 l6 y7 H5 p/ P8 A: g因為若要設計一些簡單的project,這點我還堪用0 Z' T) h, N0 S+ s8 f+ l
另外,小弟也用過兩大FPGA廠商的EDA相關的Tool : Xilinx ISE 、Quartus II 、ModelSim ...等
) [& w+ e6 _$ i8 q, o* c1 p" f* r3 }: f( g
不過最近剛近公司,開始學著看程式卻發覺有一些寫法我不太懂。
  x; D) }7 z! p& x  R% d0 U, b( v是關於 `ifdef ... `else .. `endif
8 V! H! X2 {  ^6 ^& p5 s0 X: \  _, t5 ~/ A2 l2 o0 v5 n
下面舉某段code  請哪位有經驗的大大能幫我解釋一下0 b' @" u2 b9 x# b2 [6 F

8 ?8 y2 C: ]- d* i8 H6 ?`ifdef ASYNC_RESET* p; z9 z3 c. o
        always @(posedge clk or negedge rst); ?( R) B8 x2 m7 n8 H
`else( M# ?! b& N% Z, Z8 h
        always @(posedge clk)( A1 W( C. E9 ~, p* F
`endif
0 H: E6 g! r9 i        if(!rst)        state <= POR;0 u% P: m; Y! _: T
        else
8 r1 y+ T9 h% B1 k  F& o                    if(vbus)   state <= POR;
" i. v' f( p# o! ]& C4 b$ d" e8 r        else          state <= next_state;. L$ `7 y1 A7 `
; X6 H. y  C7 c! d+ i
請各為大大賜教了!
7 p, j+ q! m) Y. a  a4 l7 H. \  o" h& K
我是在猜想說,若條件符合者 是以always@(posedge clk or negedge rst) 再接到 if ..else. y  C/ l) F+ Q4 e" G8 l8 ?3 V0 z' }
不過這條件判斷是以ASYNC_RESET為依據嗎?& t1 O6 ]' [6 M: v: G. g
但我在程式中找不到這個ASYNC_RESET的相關程式斷落..
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
 樓主| 發表於 2007-1-22 15:30:27 | 顯示全部樓層

回復 #3 sakho 的帖子

首先感謝masonchung 版大及 sakho大 及另外兩位先進的回覆
: \& {" C5 B  A  D+ w+ s我在看過回文後有找到定義檔  difines.v的檔案 5 c/ Q# J( C( e! R. ~
找的結果是 被mask掉的一行定義??
" G+ _7 Q* K% a9 d9 ?: b! c7 x$ x3 _3 K" D7 A# o
這結果讓我有點失望,因為在其他相關檔案中也不曾有這行的定義
+ H9 Z. h! j% d. E但是這個`ifdef `else `end卻又一直的出現6 H4 h" |, h; h7 z: m
以下是我在define找到的描述及定義程式片斷( p/ C0 t# s, O" m$ f, l
`ifdef TEST_IMPL/ d+ R& h9 ?" F0 X
        // Do not modify this section+ F, J8 s  S: e# J4 Q! u8 G& t2 M. K  z7 N
        // this is to run the test bench
" g% d9 M, d' w2 m( S$ p9 F1 b! I        `define UFC_HADR        17; @! G7 v, ]% u$ }( A+ m  g
        `define RF_SEL        (!wb_addr_i[17])$ c% d3 `; |& ^/ A, X0 o; \# L
        `define MEM_SEL (wb_addr_i[17])
' z) q# q! @; n( e" f7 {  ]        `define SSRAM_HADR 14. x( H" D% S" D% U! Z
        //`define ASYNC_RESET1 Y. A4 S7 \6 L, C
`else
7 M/ ^; p4 i, N        // Modify this section to suit your implementation
5 {; y6 q5 P+ C: _        `define UFC_HADR        12
, V( \) i  d! U5 p$ r# e8 Q        // Address Decoding for Register File select
# E8 i9 j4 ^6 S! [) D! a1 m8 m; i        `define RF_SEL        (!wb_addr_i[12])6 C+ _3 M3 b; k% W, O. K
        // Address Decoding for Buffer Memory select
  q" h. @8 @3 n3 ?1 q  k( F8 }        `define MEM_SEL        (wb_addr_i[12])/ E" h+ w( o8 c$ R6 }
        `define SSRAM_HADR        9
/ u6 \  J; `" ^3 g0 R4 H7 B        // The next statement determines if reset is async or sync.0 s& c2 F$ x- l' f& t
        // If the define is uncommented the reset will be ASYNC.8 r% c* K1 U/ P3 o  f
        //`define ASYNC_RESET% Y1 t3 }$ E+ i' C+ z8 D3 |
`endif& x# C4 a: y3 K2 E
在看過TEST_IMPL的定義也只是對特定的變數做定義,也沒有跟ASYNC_RESET
- A8 F& A1 R( \* n有相關的定義..看到最後真被搞糊塗了.. ( X1 Q- m6 @, l& i5 P6 G. S3 ^

" h# w# Q. K6 Z/ Y- {9 D; b另外我是在windows XP的UltraEdit 觀看程式的,好像沒辦法用grep尋找 ORz
3#
 樓主| 發表於 2007-1-22 15:40:58 | 顯示全部樓層
在回文後再看過walltsou大的回文思考時,突然想到
: c4 ^; s5 W& K3 P% X, I照walltsou大所說的+ Q4 U; a. l1 |4 }: A
若 有 定義AYNC_RESET則執行 always@(posedge clk or negedge rst)
) l% b. T  g" r, V; N( J9 H( |若 否 則執行 always@(posedge clk)
7 M; P' r  a* q4 a9 q% o
) ^. Y6 O5 N) G) v# P5 r所以再看到我前一封回文的 被mask程式 那也就是說這程式也只會執行 否的部份囉??1 c# l7 k9 b8 P- X. a2 J- M/ f
那這樣我又有個問題(不好意思問題好多 ^^")+ I6 n; w7 Q; Z+ O
若照這樣看來不就僅僅在posedge clk時有動作,那若有rst訊號來也不就都不會有動作?
4#
 樓主| 發表於 2007-1-22 23:41:25 | 顯示全部樓層
感謝 garywlee大  詳盡的解說,看過解說後我能夠有所瞭解`ifdef `else `end語法使用上的時機及電路在合成方式
6 f) \7 s6 Q; s2 G* W我會好好的研究同步與非同步的使用,謝謝
( h, @# h4 H: ]0 ~/ c  f9 t1 j5 b* z! Z7 A. o
另外我會好好的寫code的,若自己沒看過其他人寫過的code還不太有所長進,自己寫的東西跟以前做專題那種Code Style沒兩樣 Orz; o4 c7 E/ u: e9 Q, x! x
也謝謝tommywgt的回覆,我再自行問您 FPGA內建LA的使用方式
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-3 05:17 PM , Processed in 0.104006 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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