作者Acme ( )
看板Electronics
標題Re: [問題] 一些數位ic design遇到的問題
時間Fri Apr 10 23:10:38 2009
1.2.4 :
會有數千個 fanout 你如果不用 DFF sample ,
如何保證到所有的邏輯閘會在同一個 cycle 內 ?
所以要視為不同 clk domain,先 Double Sync 解掉Meta-stable
Double Sync完,看你要加 Buffer 或是分成很多的 DFF
加的 Buffer 只要沒有 timing violation 即可
要加 buffer 給 tool 去加即可
如果怎麼加都有 viloation , 那就再分 DFF
3: 我估 fanout 都用 BUF1 的數十倍去估
5: clk uncertainty 一般設 0.3
propagating delay和clk latency ? 這個要設嗎? (synthesis script不用)
如果有跑 STA , 應該就會幫你列出來
你只要把 violation 的 修掉即可
※ 引述《bbuc (C&C++完美經典)》之銘言:
: 各位好,我是一個做數位design的研究生
: 關於design中設計的方式遇到一些問題
: 希望有識者能不吝給予指教
: 在與他人討論的過程中
: 我了解到一顆IC的input與output都必須要用register檔住
: 因此在作為control訊號的input port就有些問題
: 由於是一個multi-mode的電路
: 在我原本的寫法
: input port作為電路內部的control訊號來切換mode時(非clk/rst)
: 可能會有數千個fanout
: 因為整個電路的動作都被這個訊號所控制(如控制mux)
: 如果我用register擋住這個訊號
: synthesis時似乎因為fanout過大而使得這個儲存控制訊號的register變得很大
: delay也較長
: 而不擋時似乎在syn這個階段比較不會有這個問題
: 我將我想問的問題條列如下:
: 1.是否真的一定要用register檔住input,不能直接由input進去控制
: (此訊號在同一mode下為constant)
: 2.若一定要用register檔住,fan out又過大的話,可以在synthesis時用
: set max fanout指令來解決嗎? 這個指令似乎是用加buffer的方式來解決
: 那麼這些buffer會不會造成timing的延遲呢
: 3.max fanout一般適當的值是多少? (操作頻率希望能高於150MHz)
: 4.有人建議我用手刻clock tree的方式去分這些訊號,請問這樣是正統的寫法嗎?
: 5.這是額外的問題....因為我們是新實驗室, 很多問題找不到人問
: 請問一般而言clock uncertainty應設為多少呢?
: 另外propagating delay和clk latency應該怎麼設呢?
: 雖然ic design lab有做過,但不知道實際量產的design有沒有一個較標準的值呢?
: 不知道有沒有違反問問題的倫理或是板規
: 若有請告知 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.169.41.80
1F:推 bbuc:謝謝你回答 04/10 23:44
2F:→ colinshih:對於同步設計, clk latency必需考慮 04/11 00:57
3F:→ Acme:tree長的再怎麼長,只要都有balance,應該就可以... 04/11 01:10
4F:→ Acme:雖然,長的越長越不好.... 04/11 01:11
※ 編輯: Acme 來自: 118.169.41.80 (04/11 01:17)
5F:→ colinshih:這是uncertainty issue,latency則是bottom up時 IP toIP 04/11 01:35
6F:→ Acme:IP to IP 只要是同個clk domain,不也是要Balance ? 04/11 11:03
7F:→ Acme:latency只是要讓每條tree長度差不多吧..不過這是CTS的issue.. 04/11 11:07
8F:推 jordanplus:Sync 2級不是一定的喔,請記得評估MTBF來決定 04/22 14:07