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