|
最近在跑合成時
' i5 w7 G' C, [# F5 m9 R6 x! L6 I發現到DFF用negedge trigger會有問題
! e6 Z2 U1 A+ E- I$ C* k }如下面所寫的code
# Q* n0 f6 S0 {, F) M8 gmodule DFF (H,clk,reset,H_new);3 ^$ {, [4 v8 }' Q3 p
input H,clk,reset;7 e% F+ v' b# z0 K( L. {
output H_new;5 {+ @/ b- J8 U6 A
reg H_new;4 j2 j/ B2 N2 H" |7 D' I/ f, L
5 ^% \$ G( e. aalways @ (negedge clk or negedge reset)
" V7 A1 P6 h/ Tbegin0 E5 f0 i- R r1 R& U- t$ Y+ J
if (reset==1'b0)
1 c, d- d+ e/ {0 j3 `8 ]$ l H_new<=1'b1;: T0 e' O! y& U* n R
else
, ~$ e! `3 u: u H_new<=H;
2 Z" e! U) G- ?3 @2 Rend0 r6 B1 o" A1 L0 i1 B8 B
endmodule4 O' C$ J: E6 |( W2 f* g% i; L
+ u& {3 h& j s' u0 L/ U1 W
我發現到合成出來的檔案
& p9 } U' J2 D: |/ L, [除了flip-flop外 還會加入一堆DLY4X1的硬體5 z5 ^+ ^7 B1 U
如果是用posedge clk的話 合出來是正常的# g9 z5 x- `1 ?) D/ [
# r% `( i. c/ a$ `
就算我新生一個clk_bar把clk反向
! [9 {2 h( H3 Q, u: X% b( W並將clk_bar改成posedge trigger
- t$ J1 u& E) ^/ ?; H% T合出來的硬體還是會像原先用negedge clk一樣會多了一些DLY4X1的硬體9 [3 P! g9 |8 Q* a
由於我需要negedge trigger的function
7 k& P- R+ `$ _2 M) y' u2 X但在合成時卻無法正確合出來
6 u5 H' U. K j0 T5 `" A請問該問題該如何解決
) z- P8 @+ _* v( i謝謝 |
|