|
各位先進好~% f3 z, d N: G/ V
我是剛從學校進入這領域的新生,說不上是初學者
. i1 _ c! W8 L& d3 {: c, P2 F! N因為若要設計一些簡單的project,這點我還堪用' o$ P! w' j' q. e- c9 p
另外,小弟也用過兩大FPGA廠商的EDA相關的Tool : Xilinx ISE 、Quartus II 、ModelSim ...等
i9 J" v- X6 [ G! }, G5 T( ~7 O2 c6 L+ g
不過最近剛近公司,開始學著看程式卻發覺有一些寫法我不太懂。
) x6 X; \& t& E( Z# D是關於 `ifdef ... `else .. `endif
: _6 K+ s- ^( h+ u& C k7 y, B$ v$ Q( a) z+ L& s
下面舉某段code 請哪位有經驗的大大能幫我解釋一下
$ i9 ^. F8 q+ Z, _( |( \ U G1 n5 i+ U% n9 D5 w5 P5 Q$ _7 S- Z
`ifdef ASYNC_RESET
* u, @ K( o2 c( r always @(posedge clk or negedge rst)
! e! k& c& _) S8 [`else* D1 X4 C6 H {2 ~: H
always @(posedge clk)2 @) X& X, O. S, J! Q
`endif
j- _' a* c8 }' ~2 @, {8 e if(!rst) state <= POR; A# t1 z) b4 {. C/ y: [0 P# }
else
- {' m% l, ^% D! s! f if(vbus) state <= POR;
. G6 l1 L1 C! a; ] else state <= next_state;7 f9 x- Q* r- _8 G+ h* m; }
6 b! s; ~+ h. j( G1 E' o
請各為大大賜教了!2 z# d9 ^2 d" C- C! a$ U- @7 [- E
0 A7 J+ k1 j4 z3 }我是在猜想說,若條件符合者 是以always@(posedge clk or negedge rst) 再接到 if ..else
) e1 g @/ ~$ b. ^不過這條件判斷是以ASYNC_RESET為依據嗎?2 ]. C- F; } [/ }0 y. I) {, |( ^
但我在程式中找不到這個ASYNC_RESET的相關程式斷落.. |
|