<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 線路的尖峰毛刺造成FPGA工作不正常

          線路的尖峰毛刺造成FPGA工作不正常

          作者: 時間:2012-07-30 來源:網(wǎng)絡(luò) 收藏

          使用EP2C35 設(shè)計(jì)了多個串口工作,出現(xiàn)了幾個問題. 第一次, 由于內(nèi)核電源1.2V 供電不是完整平面,而是帶狀線供電,EP2C35 在代碼容量大的情況下,而且輸入 信號變換頻繁, 造成整個EP2C35 所有的D觸發(fā)器停止翻轉(zhuǎn). 經(jīng)過多次驗(yàn)證, 只要輸入的 的IO 信號 太多, 并且有2M 串口信號進(jìn)入, 任何一個可能動作, 都會造成FPGA 的時鐘在D觸發(fā)器停止翻轉(zhuǎn). 查閱Alter 的關(guān)于電源方面的資料

          本文引用地址:http://www.ex-cimer.com/article/190098.htm

          altera 提供此方面的資料顯示, 如果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. 軟件濾波.



          關(guān)鍵詞: FPGA 線路 尖峰 毛刺

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();