|
各位先進好~
& _# W: T& ~% a& R我是剛從學校進入這領域的新生,說不上是初學者, G1 |) t4 }, r7 T4 t M
因為若要設計一些簡單的project,這點我還堪用
* U$ S" e7 C' O, Y9 M. X另外,小弟也用過兩大FPGA廠商的EDA相關的Tool : Xilinx ISE 、Quartus II 、ModelSim ...等" k+ z( l# N" E
, v: U) r3 ]8 l9 A* z
不過最近剛近公司,開始學著看程式卻發覺有一些寫法我不太懂。- ^+ m5 @: q' g5 w2 I/ F
是關於 `ifdef ... `else .. `endif
' o, w1 F0 R. l0 K* {4 u5 C" q( y3 }, E5 V# x; N, `( p
下面舉某段code 請哪位有經驗的大大能幫我解釋一下
& c/ v/ L5 @5 k U9 {! U5 g. ?& v# C5 u6 p! _
`ifdef ASYNC_RESET% F. @9 W. `$ J! W- r; N
always @(posedge clk or negedge rst)& ^) \+ a0 J4 O) V
`else
, d$ y" h, Y3 l! s8 a always @(posedge clk)
: G. @# y) E- M+ c* J p`endif
& B. B0 X) Y( R0 X- K% @ if(!rst) state <= POR;' p9 }3 K* Q3 ~3 B8 E5 z
else
, \1 b8 q2 l3 s( L' A if(vbus) state <= POR;) ^3 |5 l+ @ n' \5 O% k
else state <= next_state;
" u3 l# c6 l2 v4 m- |; C" M, t# {& ~% _, x+ T( C, ], D- [
請各為大大賜教了! l5 P. S6 A# E6 T
+ a' u ^# I1 t3 p! t2 N我是在猜想說,若條件符合者 是以always@(posedge clk or negedge rst) 再接到 if ..else: }) h3 Y9 e% r! m8 q1 a
不過這條件判斷是以ASYNC_RESET為依據嗎?3 m* q6 K2 o0 V% P
但我在程式中找不到這個ASYNC_RESET的相關程式斷落.. |
|