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

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于FPGA的實(shí)時(shí)數(shù)字化光纖傳輸系統(tǒng)

          基于FPGA的實(shí)時(shí)數(shù)字化光纖傳輸系統(tǒng)

          作者: 時(shí)間:2012-05-22 來源:網(wǎng)絡(luò) 收藏


          3 軟件設(shè)計(jì)
          設(shè)計(jì)采用自頂向下的模塊化設(shè)計(jì)方法,用Verilog硬件語言編程,實(shí)現(xiàn)對光纖接口處芯片、A/D和 D/A轉(zhuǎn)換器等外圍電路的控制。
          3.1 發(fā)送端程序設(shè)計(jì)
          發(fā)送端邏輯設(shè)計(jì)主要包括采樣存儲邏輯、校驗(yàn)、成幀及編碼邏輯和光發(fā)送器接口邏輯。
          3.1.1 采樣存儲邏輯
          采樣存儲邏輯完成數(shù)據(jù)的采集以及實(shí)時(shí)存儲。其邏輯形式及原理框圖如圖5所示。

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


          AT84AS001是ADC芯片。輸入的差分?jǐn)?shù)據(jù)直接接到FPGA的專用差分引腳。采集存儲控制邏輯包括LVDS接收以及數(shù)據(jù)重組等模塊,通過LVDS接收器將雙沿時(shí)鐘變?yōu)閱窝兀瑪?shù)據(jù)重組模塊進(jìn)行數(shù)據(jù)重新排序,還原原始數(shù)據(jù)流。最后在FIFO中進(jìn)行緩存。
          3.1.2 校驗(yàn)、成幀及編碼邏輯
          校驗(yàn)、成幀及編碼邏輯完成數(shù)據(jù)格式轉(zhuǎn)換,將處理后的數(shù)據(jù)進(jìn)行CRC編碼、成幀、8B/10B編碼和并串轉(zhuǎn)換。算法流程如圖6所示。


          3.1.3 光發(fā)送器接口邏輯
          光發(fā)送器接口邏輯完成幀數(shù)據(jù)到高速串行數(shù)據(jù)流的轉(zhuǎn)換。直接利用FPGA內(nèi)部的專用收發(fā)器,其結(jié)構(gòu)如圖7所示。


          幀數(shù)據(jù)首先南發(fā)射相位補(bǔ)償FIFO模塊進(jìn)行相位補(bǔ)償,抵消時(shí)鐘相位差,然后通過字節(jié)串行器將數(shù)據(jù)轉(zhuǎn)換為8位,接著進(jìn)行8B/10B編碼,并由串行器轉(zhuǎn)換為高速數(shù)據(jù)流,由專用差分輸出口輸出。
          3.2 接收端FPGA程序設(shè)計(jì)
          發(fā)送端FPGA邏輯設(shè)計(jì)主要包括光接收器接口邏輯和解碼、解幀及校驗(yàn)邏輯。
          3.2.1 光接收器接口邏輯
          TLK1501有一個(gè)狀態(tài)機(jī),負(fù)責(zé)監(jiān)測不同的工作狀態(tài),即同步捕獲模式、同步模式和誤碼檢測模式。上電或復(fù)位后,狀態(tài)機(jī)進(jìn)入同步捕獲模式,當(dāng)接收到3個(gè)連續(xù)的IDLE碼或載波擴(kuò)展碼或1個(gè)有效數(shù)據(jù)或錯(cuò)誤延時(shí),即進(jìn)入同步模式。在同步模式下進(jìn)行數(shù)據(jù)的正常接收與發(fā)送。在這個(gè)模式下,TLK1501接收到一個(gè)無效代碼,狀態(tài)機(jī)立即進(jìn)入誤碼檢測模式。檢測模式收到4個(gè)連續(xù)無效代碼時(shí),TLK1501立即重新進(jìn)入捕獲模式。TLK1501同步狀態(tài)機(jī)如圖8所示。

          h.jpg



          評論


          相關(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); })();