|
最近在跑合成時
" }. G9 [4 |, a: ^, a% {發現到DFF用negedge trigger會有問題1 B3 w/ K2 g3 m4 I3 B& U# x
如下面所寫的code
: \0 o- H2 [% W* e5 A% fmodule DFF (H,clk,reset,H_new);, ]- b2 _- z" _% X$ N
input H,clk,reset;
" K4 L4 Z4 @& d' z" r8 P. q0 Uoutput H_new;$ Z4 q7 E8 U' S' A5 W
reg H_new;
. q, l+ _; f S& {9 n! q V# P2 u0 i8 \2 k% I8 _
always @ (negedge clk or negedge reset)
8 p: N7 Q# V8 Cbegin
3 Y2 S6 b' _ {; o$ d1 X if (reset==1'b0)0 M; E0 X7 B# @% b
H_new<=1'b1;/ {+ m! y# X" W
else( {8 ]4 |5 I; ^5 f# Z$ i* k8 f
H_new<=H;
# b. V$ p1 H8 \0 Xend. d' R* h: y% L0 z8 ~7 h. |
endmodule4 ^5 c' |- v2 V$ A
0 H; U* }" Z8 M4 D$ K8 q. Q我發現到合成出來的檔案
4 P$ m4 ]. U8 m$ o/ s除了flip-flop外 還會加入一堆DLY4X1的硬體) A+ [! k2 L9 U) Z: x
如果是用posedge clk的話 合出來是正常的) b8 r- m- b4 [" b: x4 x6 A
6 h! J( f. M3 \; V+ y就算我新生一個clk_bar把clk反向, m! p c- d7 r/ m8 a
並將clk_bar改成posedge trigger$ z) R4 T$ L2 ]0 s& [5 C
合出來的硬體還是會像原先用negedge clk一樣會多了一些DLY4X1的硬體
/ [) E- ^1 A$ Y2 e; p/ Z$ R* P9 b2 E& K' a由於我需要negedge trigger的function1 x) J7 \( I4 j, c1 j
但在合成時卻無法正確合出來
# g$ X+ U9 B& p y! V. _* P1 k9 l- W請問該問題該如何解決
$ `7 l- V# Y& |6 D: n* e) S2 x& [謝謝 |
|