SOGO論壇
  登入   註冊   找回密碼
查看: 3639|回覆: 6
列印 上一主題 下一主題

[心得分享] 魔鬼藏在細節裡 [複製連結]

Rank: 5Rank: 5

狀態︰ 離線
跳轉到指定樓層
1
發表於 2012-3-4 22:20:21 |只看該作者 |倒序瀏覽 | x 4
我曾經在一家為 Wi-Fi 打造智慧天線 SoC 的新創公司工作。這大約是2002-2003年之間的事了,當時 802.11n 甚至都還沒出現呢!我們的工作目標是開發產品的 MAC 和實體層。
為了在建置 ASIC 以前先測試這款系統,我們購買了兩個相同的 FPGA 原型板;一個作為發射器,另一個則是接收器。

這兩塊原型板分別採用賽靈思(Xilinx) Virtex XCV2000 (分別有2百萬閘)。設計本身約2百萬閘分佈於兩個 FPGA 。我負責實驗室支援以及MAC硬體(後來還加上MAC韌體),所以我開始架設起測試硬體。

FPGA原型板僅用於實體層驗證作業。針對除錯作業,我們採用一款示波器、一款邏輯分析儀,我還提議使用 Xilinx 的 ChipScope 技術,這是一種可嵌入於FPGA的JTAG-based虛擬邏輯分析儀。測試程序是以測試向量來執行設計,看看所得到的反應是否能與模擬作業相容。由於我們想要在不受外在干擾的情況下擷取許多內部訊號,因此所用的這款邏輯分析儀其實並不是一款理想的選擇。此外,由於這款低成本邏輯分析儀性能較低階,它的探棒還會和板上的低速訊號產生干擾。

FPGA 工程師下載設計後就開始進行測試。在經過初步的除錯與調整後,我們已經準備好傳送數據封包並測試VHDL程式碼的功能了。在操作這些原型板時,每塊板上的功耗約4-5A/5V,作業時脈為80MHz。在測試進行期間,由於測試向量無法與模擬搭配起來,FPGA工程師一直忙著找出問題所在。在其它 VHDL 問題逐步解決後,FPGA工程師才能繼續進行下一階段作業。但他仍無法找到設計合成或繞線的任何其他錯誤。因此,他請求我們的協助。

我們都不願相信硬體會有什麼問題。我的意思是指真正的硬體問題(與VHDL語言無關)。我開始用示波器探測原型板。 FPGA 工程師堅持得查看電源供應器的狀況。一開始我發現電源供應器時好時壞。在原型板上大約有三條跳線可通過輸入電流到內部穩壓器,但總有一兩次會出現跳線接觸不良的情形。我便用鉗子和焊接的方式來調緊跳線。


連接RF部份的FPGA原型板

然而問題並沒有解決。由於可用的示波器僅有100MHz低頻寬,加上探棒上接地線雜訊太大,讓我們無法看到乾淨的訊號,於是我用一條很短的導線在探棒上設置接地。我們可以看到在訊號傳送期間形成約1.8V的FPGA功耗,這與內部邏輯作業是一致的。


示波器波形模擬圖,X軸表示時間,Y軸表示電壓。

電源軌出現了週期性電壓驟降的情形。根據 FPGA 資料表中的電壓應該高於1.75V,但在某些情況下,電壓約1.70V左右。 FPGA 工程師確定這就是問題所在。雖然我不相信這就是造成間歇性問題的解答,但我仍然答應會去解決這個問題。

檢查過原型板的原理圖(幸好我們還有原理圖)以及板卡本身後,我簡直不敢相信,每個電源接腳竟然只有10nF的超低去耦電容!根據過去的經驗法則是在每個IC添加100nF以及電解或鉭電容,但經驗豐富的高速設計者都知道這在速度不斷攀升時是行不通的。一般來說,數位IC必須添加兩種電容類型。除了這裡用的去耦電容以外,通常用濾波電容器以進行旁路,那麼就能再加進更多電容來補償瞬間需要大量突波電流的開關電路。

這就是我們面對的情況。我已經測量到開關電壓壓降了。當然,由於頻寬與接地的問題,我們這台頻寬為100MHz的示波器只能勉強捕捉到清楚的訊號,這讓事情變得更加棘手。更不用提 FM 收音機頻率(87-108MHz)正干擾著我們的測量作業。而附近山區的電台天線在為我們的收音機提供良好的訊號雜訊比(SNR)之餘......也為我們的量測作業帶來了令人傷腦筋的 SNR 。真是夢靨一場!

如果每塊原型板消耗4-5A的電流,表示每個FPGA功耗約2A,那麼我們有多少開關電流呢?10nF的電容器能容納多大的電流?


FPGA原型板上的去耦電容結構

我只好在每個FPGA周圍放置許多這樣的小型結構。這些結構對於機械應力非常敏感,即使只是輕微的壓力施加在電容器上,也可能摧毀小型的PCB焊墊。但出乎我的意料之外的是,在經過一番「手術」重建後,這款設計竟可順利作業了!

沒錯。就算是小至mV範圍的壓降也足以干擾到邏輯時序,而使得設計間歇性地出現一些問題。

這次的測試作業我們更加瞭解電源層以及在各種情況下什麼才是重要的。我還發現,即使一點點不相容的小細節也會導致攸關設計成敗的重大差別。還有,當然,我們才不告訴開發板設計者這些新發現呢!



喜歡嗎?分享這篇文章給親朋好友︰
               感謝作者     

Rank: 2

狀態︰ 離線
2
發表於 2012-3-17 10:23:28 |只看該作者
"就算是小至mV範圍的壓降也足以干擾到邏輯時序" --- 說的沒錯,有些設計就是未將電源穩定的問題考慮進去才會造成不可預知的災難.

Rank: 4

數位軟體勳章

狀態︰ 離線
3
發表於 2012-4-2 20:00:30 |只看該作者
魔鬼,藏在細節裡 ( The Devils in the Detail ) 這句話深具意義,不僅是 " 管理學 " 的一種精神也是一種工作態度,成功來自於細節。

單晶片微電腦 AT89C52 控制沖床動作,啟動 sensor 是一個 NPN 近接開關,原本想說已是電子信號,可不是一般的 limit switch,沖
床衝壓動力是油壓缸,原本電氣控制箱內已有 relay 電磁接觸器,MCU 是事後追加改善動作。試俥結果:偶而沖床會自行啟動,問題來了
?從細節著手:偵測 sensor 動作,軟體增加 debounce 以後就不曾發生誤動作了!

Rank: 3Rank: 3

狀態︰ 離線
4
發表於 2014-7-3 01:45:44 |只看該作者
真的太恐怖了
真的要連電源有可能影響都要考慮進去
以後要小心點做了......

狀態︰ 離線
5
發表於 2014-7-22 22:58:51 |只看該作者
真的太恐怖了
真的要連電源有可能影響都要考慮進去
以後要小心點做了......

Rank: 2

狀態︰ 離線
6
發表於 2015-8-29 03:18:43 |只看該作者
經驗分享一下,高速訊號 也很吃layout,要Shield 要matching 要阻抗控制,才能確保訊號完整度。
請注意︰利用多帳號發表自問自答的業配文置入性行銷廣告者,將直接禁訪或刪除帳號及全部文章!
您需要登錄後才可以回覆 登入 | 註冊


本論壇為非營利自由討論平台,所有個人言論不代表本站立場。文章內容如有涉及侵權,請通知管理人員,將立即刪除相關文章資料。侵權申訴或移除要求:abuse@oursogo.com

GMT+8, 2024-4-27 02:02

© 2004-2024 SOGO論壇 OURSOGO.COM
回頂部