Chip123 科技應用創新平台
標題:
閒談.近日使用altera cyclone 1c12 發現一個問題
[打印本頁]
作者:
thjan65
時間:
2007-3-9 09:45 AM
標題:
閒談.近日使用altera cyclone 1c12 發現一個問題
可能是自己沒注意吧.最近將以前電路重新改寫,以維持較佳的模組化.
8 b b2 J: E% k! v ~
( w3 @0 M$ `, p6 M7 q; j7 _* _
發現
# r: ~. c0 ]- o
always @(negedge clk or ....) 合成出來的電路會因為 clock 繞的不好 產生 data及clock skew 問題.
; D7 E9 l, f1 K% v
) P: V: Y! J4 c( p
後來想到去年的電路 coding style 是
0 d7 H, ~) B/ i( y9 m6 I" [% o- m
always @(posedge clk or ....)
* m4 t8 @2 Q/ z7 A0 U4 `
* ~- C: e1 U' C
當下立刻改成
6 h( w, n5 b- i) A; Y x. S
assign clk1 = ~clk;
- |2 V* D: c! a
always @(posedge clk1 or ....)
! t' L3 G0 Q5 j& w/ u6 g1 t! i: G
6 Y3 A$ p" H& X5 _
結果,所有問題迎刃而解. 霎時, 心中只有一個字.
- D9 m+ T) a6 m
( X! B8 g7 L$ M+ I6 p$ ~! T
[
本帖最後由 thjan65 於 2007-3-9 09:50 AM 編輯
]
作者:
jimy
時間:
2007-3-9 10:50 AM
其實更好的 sytle 應該是要將 clock 都從 clock generator 的 module 輸出
) W! ]- p5 c$ A2 r- w& L" Z
不管此為 PLL 或 gated clock
5 {& s; Q) F8 s6 E5 ]
這樣在 timing constraint 的掌握度才能更好
作者:
tommywgt
時間:
2007-3-9 06:07 PM
jimy大大說的沒錯
. G% x8 R/ C) S5 Y3 {( n: l
在coding style中, 使用同一個clock source也是很重要的,
- x2 [) W5 @4 v+ ~2 `5 |) l5 k+ M1 t
在設計時, 有多少的timing budget也是要好好考量的
7 g: ^, S& M3 v0 K& }" v' F
相同的邏輯不同寫法而造成不同的合成結果本來就是可以接受的, 所以才會有所謂的coding style問題.
% i9 s: [% a: A. Q' S$ w" [
& W+ v. Y1 o' a" ]5 e$ d9 k) V% x
不過只是個反向的clock就錯了 (會不會只是timing沒有meet?)是會令人心中出現一個大字沒錯...
1 R4 c4 b- @0 u. U
# _7 [/ f* F& d& v1 _ Q5 g
有時不得已時, 還是會需要寫這樣子的code的, 感謝你的分享, 以後遇到時可以留意一下下.
作者:
thjan65
時間:
2007-3-12 10:22 AM
實際應用是同步電路,頻率只有 30MHz. DATA input 定義在clock falling edge 時必須capture. 因此 RTL coding 才會是 @(negedge clk or ....)
! D" R, y: Z- e' H
老實說, FPGA的表現和預期差距是大了點, 況且我還是用GLOBAL clock pin. Netlist post-sim 記得是OK的.
) K+ x( [) f/ {& r. h4 v
/ L7 }$ C/ _( F/ ]
[
本帖最後由 thjan65 於 2007-3-12 10:25 AM 編輯
]
作者:
jimy
時間:
2007-3-12 03:13 PM
標題:
回復 #4 thjan65 的帖子
因為在 FPGA 中都是只有 posedge clock 的 primitive,
/ {* ]- c! l8 M) v
所以你寫 negedge clock 的話, 它得在 FF 前加個 inverter gate,
5 T: s) X% U8 u. Z
這樣就變成 gated clock 了, 所以 timing 的 analysis 會不好
2 S5 E& N- ]2 v
* t' M9 t# G/ W, J
那你後來的改法: assign clk1 = ~clk;
5 R$ n2 f7 d; a7 G" x# D
這樣如果是用 quartus 的話(別的tool我不知道)
5 x7 N/ f) E& _- y4 O
它認得出 clk1 會是另外一個 clock source
% Y# m/ [. G/ H3 ^- i, v& }
所以 timing analysis 會比較好
作者:
tommywgt
時間:
2007-3-12 03:26 PM
30MHz....
; U/ v; [- F$ @' t4 N0 T
& O/ w/ ^) X' \0 P2 o
好爛...還是好x呢? ....哈
! \. n$ @3 }8 x$ q, }% I! H! {
+ X) M+ _9 `, f5 ^
以後寫code時小心點, 感謝經驗分享!
歡迎光臨 Chip123 科技應用創新平台 (http://free.vireal.world/chip123_website/innoingbbs/)
Powered by Discuz! X3.2