|
最近在跑合成時 q3 e Q5 O0 y# W2 R
發現到DFF用negedge trigger會有問題
4 b# U; m0 k& U- {2 h+ E g1 q F如下面所寫的code
$ m1 |2 |! N$ w$ z# fmodule DFF (H,clk,reset,H_new);' G1 a( k; Z/ U& \
input H,clk,reset;
! T' Y( K( ~+ n0 O7 Z6 loutput H_new;
* x2 S! L0 n$ [* T( _8 k5 vreg H_new;
8 F+ }# m# V7 a9 {, X$ Q' U0 C& ^, l' O- ] O- A; v
always @ (negedge clk or negedge reset)5 h" P0 z; h* |9 P, v
begin
) Y1 L' k/ J1 s+ Q9 @ if (reset==1'b0)
3 M3 ]& }; ~ L H_new<=1'b1;, _; P, @& J) F' D# ?- V9 C6 @% x
else" k& V0 o6 \! T \
H_new<=H;' f; Z: v/ g! R/ Y
end
* T# Z* `+ N3 Z* ]' m6 yendmodule
, }: @, ?5 z0 W7 I% O& C% m( l8 L H7 a+ F! n
我發現到合成出來的檔案: x2 _! q- t2 X. R, N7 S2 f
除了flip-flop外 還會加入一堆DLY4X1的硬體
7 T$ f9 A+ l/ F& D J如果是用posedge clk的話 合出來是正常的 Q3 O; U" f) o* j D0 ?/ W
2 I* ]) a7 v, I& x& Z$ W# z& M; e
就算我新生一個clk_bar把clk反向
/ _6 j& G2 e, f8 p. j並將clk_bar改成posedge trigger
6 O- r% h: h6 b# d% X# p合出來的硬體還是會像原先用negedge clk一樣會多了一些DLY4X1的硬體3 D9 F: w: |5 V* I! {8 d! ~
由於我需要negedge trigger的function/ Q4 U7 \- p* B2 \, r
但在合成時卻無法正確合出來
4 c/ D! r: k3 o+ r請問該問題該如何解決; e2 |' B/ [) [( C7 A- f7 t: h: |
謝謝 |
|