Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2007-3-9 09:45:15 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
可能是自己沒注意吧.最近將以前電路重新改寫,以維持較佳的模組化.2 ]! N/ s9 j0 O# X1 `8 \

$ Y/ R9 h% I) E8 A% L2 A: p發現
% [+ O: N- P6 Y1 {/ j5 Xalways @(negedge clk or ....) 合成出來的電路會因為 clock 繞的不好 產生 data及clock  skew 問題., t  Z4 X+ ?" h3 D
2 Z+ Z! z+ U7 u" M) ]! ^8 n
後來想到去年的電路 coding style 是( R' [2 s& v  y" P+ `" Q
always @(posedge clk or ....)7 c3 I0 ~' s$ I6 S0 C

* `. U6 r6 N3 U# [' ^" b- I當下立刻改成! H2 I9 O. X" d" G
assign clk1 = ~clk;  D9 T5 X: m3 g
always @(posedge clk1 or ....)
% r; t" l2 c8 ^5 ~5 P/ p- }; `' A/ @& [9 z' W, |
結果,所有問題迎刃而解. 霎時, 心中只有一個字.
5 c( p( V4 X  F/ @  B0 d4 ]+ J' n- b' N% Z
[ 本帖最後由 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 輸出
4 Y5 W9 l2 Z' Z9 {不管此為 PLL 或 gated clock9 Y# a( s, s* x" V4 B1 v' K
這樣在 timing constraint 的掌握度才能更好

評分

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

查看全部評分

3#
發表於 2007-3-9 18:07:43 | 只看該作者
jimy大大說的沒錯
- t; @- x2 m3 b  m* o$ D$ o$ f在coding style中, 使用同一個clock source也是很重要的, 9 V4 L, D7 j8 O
在設計時, 有多少的timing budget也是要好好考量的0 e  l; ?; C: n% V: d
相同的邏輯不同寫法而造成不同的合成結果本來就是可以接受的, 所以才會有所謂的coding style問題.
& O0 `# Z& R9 T; ~; l3 I% D9 N: _0 z/ v$ ]
不過只是個反向的clock就錯了 (會不會只是timing沒有meet?)是會令人心中出現一個大字沒錯...
1 P5 \! o$ j! y2 z) J8 y- w% A# X7 {& B& {* t* W( h
有時不得已時, 還是會需要寫這樣子的code的, 感謝你的分享, 以後遇到時可以留意一下下.
4#
 樓主| 發表於 2007-3-12 10:22:30 | 只看該作者
實際應用是同步電路,頻率只有 30MHz. DATA input 定義在clock falling edge 時必須capture. 因此 RTL coding 才會是 @(negedge clk or ....)! Q$ }' h& W2 ]/ {7 U( L
老實說, FPGA的表現和預期差距是大了點, 況且我還是用GLOBAL clock pin. Netlist post-sim 記得是OK的.: ]/ O! B1 u* y$ C4 c2 j9 V

* L' y( X9 F, `5 B1 O! u% W. P- J6 C6 i[ 本帖最後由 thjan65 於 2007-3-12 10:25 AM 編輯 ]
5#
發表於 2007-3-12 15:13:20 | 只看該作者

回復 #4 thjan65 的帖子

因為在 FPGA 中都是只有 posedge clock 的 primitive,
" E3 a- N& b- y! X  l" x  |所以你寫 negedge clock 的話, 它得在 FF 前加個 inverter gate, * N8 h3 s6 O# l9 x4 I
這樣就變成 gated clock 了, 所以 timing 的 analysis 會不好
) O7 O  u/ S$ O' v# F9 g' P' Z6 \# s0 N6 E4 }0 H' e7 Y* {
那你後來的改法: assign clk1 = ~clk;
+ ]+ z$ W" ?. r, l這樣如果是用 quartus 的話(別的tool我不知道)
" _4 [3 n4 G/ R) E) {, J/ w, p0 I& n! d它認得出 clk1 會是另外一個 clock source
7 V* f) C" U! r7 ~所以 timing analysis 會比較好
6#
發表於 2007-3-12 15:26:05 | 只看該作者
30MHz...." W7 @9 I& }% I9 l" \( @5 x# W! s

2 V& T- v6 v0 G. z# Y7 I% J  @- ^好爛...還是好x呢?  ....哈0 I# ?4 u' R; t6 ?1 r  x

& G# N: M# [5 l以後寫code時小心點, 感謝經驗分享!
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2025-2-23 07:10 AM , Processed in 0.169010 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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