|
最近在跑合成時
. q4 {1 W4 l f& a- v4 H$ ^$ z0 d發現到DFF用negedge trigger會有問題& B% Q' e5 {. N6 ]0 [
如下面所寫的code" b. g" J" S9 a8 }! _, g
module DFF (H,clk,reset,H_new);3 N ~. d$ {/ I. X- T8 }" J0 `
input H,clk,reset;' `2 ~: O3 }1 j2 B& e1 M H1 d
output H_new;( \7 Q- L, @$ x
reg H_new;; Z: o# I5 \9 u# c8 d7 A
4 t9 I+ V0 L8 w, [% k' o6 yalways @ (negedge clk or negedge reset)
+ b4 P" V& j" L% k4 xbegin: S: D+ [( Q) t
if (reset==1'b0)
0 `8 {( ~5 z4 g5 J3 |! n H_new<=1'b1;. z; x. d1 u3 I# h/ n
else
( o8 g- W& e2 G4 d0 h4 O/ d H H_new<=H;
& q. ^1 ]% ?" }$ f: L/ D- Fend* {$ T5 y; ~% W
endmodule
5 L- o8 S) L' s1 z; D/ E2 P2 w" \# ]2 C
我發現到合成出來的檔案
- ]4 t8 s7 A( R除了flip-flop外 還會加入一堆DLY4X1的硬體& G) w5 {' @0 |' q" E+ e1 \
如果是用posedge clk的話 合出來是正常的5 H t& w' I: }" Q" L, n) E
8 [* ]+ W: U2 o8 k7 V0 p, H
就算我新生一個clk_bar把clk反向
: X" k; \5 X$ ?* B$ G並將clk_bar改成posedge trigger1 H$ {9 f/ W' d" f k7 s
合出來的硬體還是會像原先用negedge clk一樣會多了一些DLY4X1的硬體/ \& b( z4 y5 c+ x3 ^6 U# `
由於我需要negedge trigger的function
) }0 P- q* D' Q6 Q4 r+ c' K但在合成時卻無法正確合出來0 U) J, k9 v& h$ L/ q/ A
請問該問題該如何解決7 Y% ]) W {, @
謝謝 |
|