線路的尖峰毛刺造成FPGA工作不正常
使用EP2C35 FPGA 設(shè)計(jì)了多個串口工作,出現(xiàn)了幾個問題. 第一次, 由于內(nèi)核電源1.2V 供電不是完整平面,而是帶狀線供電,EP2C35 在代碼容量大的情況下,而且輸入FPGA 信號變換頻繁, 造成整個EP2C35 所有的D觸發(fā)器停止翻轉(zhuǎn). 經(jīng)過多次驗(yàn)證, 只要輸入的FPGA 的IO 信號 太多, 并且有2M 串口信號進(jìn)入, 任何一個可能動作, 都會造成FPGA 的時鐘在D觸發(fā)器停止翻轉(zhuǎn). 查閱Alter 的關(guān)于電源方面的資料
本文引用地址:http://www.ex-cimer.com/article/190098.htmaltera 提供此方面的資料顯示, 如果FPGA電源的完整性得不到保證, FPGA可能會出現(xiàn)意想不到的后果! 聯(lián)想到本次FPGA內(nèi)核電源的PI 特性不好, 估計(jì)出現(xiàn)這個問題可能是 FPGA 電路板的問題引起.
為了驗(yàn)證上面想法的正確性, 我們對FPGA的內(nèi)核1.2V電源的平面重新進(jìn)行分割并制板,然后把在上面電源完整行不好造成D觸發(fā)器停止翻轉(zhuǎn)的程序,在新板上測試,居然發(fā)現(xiàn)問題解決了! 得出一個結(jié)論,FPGA正??煽康墓ぷ? 需要一個優(yōu)質(zhì)的電源來保證的.
第二次, 串口模塊在新設(shè)計(jì)板上工作時, 出現(xiàn)一個怪現(xiàn)象. 單個串口程序模塊與另外一塊板進(jìn)行串口通信時,串口通信工作正常.然而, 多個串口模塊在新的FPGA板上工作時,發(fā)現(xiàn)一個問題, 串口通信居然不正確,頻繁的出錯. 串口模塊在兩塊相同的EP2C35板上通信, 結(jié)果串口通信模塊正常工作. 問題怪哉乎!
經(jīng)過多次,對比和比較驗(yàn)證,發(fā)現(xiàn)問題居然還是出現(xiàn)在EP2C35的硬件設(shè)計(jì)上, EP2C35用作輸入IO時,所有IO線并行走線,線路間干擾造成串口通信接收工作不正常. 當(dāng)兩個EP2C35模塊相互通信工作正常,由于所有的IO翻轉(zhuǎn)時鐘都是同源,線路間干擾較小.當(dāng)EP2C35模塊與其他FPGA 的串口通信模塊串口通信時,由于時鐘翻轉(zhuǎn)與別的串口輸入翻轉(zhuǎn)存在相位誤差,產(chǎn)生高頻干擾(線路間),引起串口通信不正常工作
找到問題存在,解決這個問題方法:1.增加PCB層數(shù),輸入FPGA的IO線特別處理,增加間距和線寬;2.輸入FPGA IO 口線串電阻,加電容,進(jìn)行高頻濾波;3. 軟件濾波.
評論