Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 4062|回復: 5
打印 上一主題 下一主題

閒談.近日使用altera cyclone 1c12 發現一個問題

[複製鏈接]
跳轉到指定樓層
1#
發表於 2007-3-9 09:45:15 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
可能是自己沒注意吧.最近將以前電路重新改寫,以維持較佳的模組化.
0 T! z8 M/ u1 x5 g) q
- V; M$ M: [' m0 u8 O; S發現
" `+ ]$ P( m6 F5 ~! Dalways @(negedge clk or ....) 合成出來的電路會因為 clock 繞的不好 產生 data及clock  skew 問題.
  i, w' Q& L5 M' G: y  j1 M% |
6 I' j( r' @" r& {8 H9 {$ r* _後來想到去年的電路 coding style 是1 m) Y% Z, i% Q
always @(posedge clk or ....); Q/ N5 B5 z4 U
$ k$ X  y% Z* {9 \+ Z5 C8 q! j
當下立刻改成+ T0 d, u3 S# T2 j
assign clk1 = ~clk;
8 K7 j+ G! }7 J; f( d, u5 F! s* z, Jalways @(posedge clk1 or ....)
  P; W/ O+ |1 y5 w3 A" p1 o
- [+ {, ^! o% I結果,所有問題迎刃而解. 霎時, 心中只有一個字.
" {) B( t4 ]2 ~0 ^$ s% }5 P2 j" v5 {: m
[ 本帖最後由 thjan65 於 2007-3-9 09:50 AM 編輯 ]

評分

參與人數 1Chipcoin +2 收起 理由
chip123 + 2 是哪個字呢?來向知己訴!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2007-3-9 10:50:57 | 只看該作者
其實更好的 sytle 應該是要將 clock 都從 clock generator 的 module 輸出- P4 M+ _; {* J! W1 @
不管此為 PLL 或 gated clock
) y- o/ Z1 K4 l! t( c" D' {這樣在 timing constraint 的掌握度才能更好

評分

參與人數 1Chipcoin +3 收起 理由
chip123 + 3 好上加好,精益求精!

查看全部評分

3#
發表於 2007-3-9 18:07:43 | 只看該作者
jimy大大說的沒錯9 w* Z' x5 e$ k8 V' P+ e" U$ x
在coding style中, 使用同一個clock source也是很重要的, # o! j7 \# `* _3 M/ ^! B
在設計時, 有多少的timing budget也是要好好考量的
- ^& C+ U- y1 x8 @& r相同的邏輯不同寫法而造成不同的合成結果本來就是可以接受的, 所以才會有所謂的coding style問題.
" f9 x2 p  C  O5 Z" l
& `* O7 }. z; f2 A4 H0 o不過只是個反向的clock就錯了 (會不會只是timing沒有meet?)是會令人心中出現一個大字沒錯.../ X  ~" E0 f0 Q" x" p5 b+ I. H& H3 q

' s4 n& T) O8 A2 C有時不得已時, 還是會需要寫這樣子的code的, 感謝你的分享, 以後遇到時可以留意一下下.
4#
 樓主| 發表於 2007-3-12 10:22:30 | 只看該作者
實際應用是同步電路,頻率只有 30MHz. DATA input 定義在clock falling edge 時必須capture. 因此 RTL coding 才會是 @(negedge clk or ....)$ \% Y) E" z  X' d
老實說, FPGA的表現和預期差距是大了點, 況且我還是用GLOBAL clock pin. Netlist post-sim 記得是OK的.
/ D1 J2 `  M# s* b. k/ ?
3 G! o( m- G5 u% g  Q3 E[ 本帖最後由 thjan65 於 2007-3-12 10:25 AM 編輯 ]
5#
發表於 2007-3-12 15:13:20 | 只看該作者

回復 #4 thjan65 的帖子

因為在 FPGA 中都是只有 posedge clock 的 primitive,
( |/ E# V, N$ P" J$ f0 Z所以你寫 negedge clock 的話, 它得在 FF 前加個 inverter gate, ! z' W7 V* H+ c
這樣就變成 gated clock 了, 所以 timing 的 analysis 會不好
5 U! C: X) v- @& {% Z2 s* ^  m" ^+ b( u6 n
那你後來的改法: assign clk1 = ~clk;
4 p( }# m2 Q. ]  q6 R3 ]& B這樣如果是用 quartus 的話(別的tool我不知道)% }+ w$ M, f5 }- _! F$ b# Q0 N
它認得出 clk1 會是另外一個 clock source3 d2 V4 b2 C; Z' l
所以 timing analysis 會比較好
6#
發表於 2007-3-12 15:26:05 | 只看該作者
30MHz....- t$ \" Q( Q* z

; a* s' V- |, A; ]; A/ X& j好爛...還是好x呢?  ....哈6 u# V$ c3 C' o; K; {  x8 c

+ w: d$ S8 O0 F以後寫code時小心點, 感謝經驗分享!
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

首頁|手機版|Chip123 科技應用創新平台 |新契機國際商機整合股份有限公司

GMT+8, 2025-1-6 10:53 PM , Processed in 0.158009 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表