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

          新聞中心

          EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于1553B總線協(xié)議的解碼器設(shè)計(jì)和FPGA實(shí)現(xiàn)

          基于1553B總線協(xié)議的解碼器設(shè)計(jì)和FPGA實(shí)現(xiàn)

          作者: 時(shí)間:2011-04-14 來(lái)源:網(wǎng)絡(luò) 收藏


          2 EDA設(shè)計(jì)
          本文設(shè)計(jì)的ManchesterII型碼選擇ALTERA公司的Cyclone系列的EPlC6Q240C6芯片作為目標(biāo)器件,在QuartusII9.0集成環(huán)境中,使用Verilog HDL硬件描述語(yǔ)言和原理圖混合輸入方法實(shí)現(xiàn),使設(shè)計(jì)簡(jiǎn)潔有效。
          的功能是將總線中串行輸入的數(shù)據(jù)轉(zhuǎn)變成并行數(shù)據(jù),并檢查數(shù)據(jù)和奇偶校驗(yàn)位是否正確,為下游的處理器提供正確的數(shù)據(jù)。如圖3所示,包括同步模塊、同步頭檢出模塊、數(shù)據(jù)處理模塊、狀態(tài)機(jī)模塊。設(shè)計(jì)采用16M時(shí)鐘的工作頻率。

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

          c.JPG


          數(shù)據(jù)信號(hào)和使能信號(hào)可以在時(shí)鐘信號(hào)的一個(gè)周期之內(nèi)的任意時(shí)間來(lái)領(lǐng),也就是說(shuō)無(wú)法定位數(shù)據(jù)信號(hào)和使能信號(hào)對(duì)于時(shí)鐘信號(hào)上升沿的時(shí)間間隔,這將使各模塊內(nèi)部的時(shí)鐘計(jì)數(shù)器無(wú)法準(zhǔn)確地計(jì)時(shí),使?fàn)顟B(tài)機(jī)無(wú)法準(zhǔn)確地進(jìn)行狀態(tài)跳變。
          同步模塊的作用相當(dāng)于一個(gè)D觸發(fā)器,它可以使數(shù)據(jù)信號(hào)和使能信號(hào)相對(duì)于時(shí)鐘信號(hào)的上升沿有固定的時(shí)間間隔,這個(gè)時(shí)間間隔就是同步模塊的tco,即時(shí)鐘輸出延時(shí)。這樣就為下游模塊的時(shí)鐘計(jì)算和時(shí)序約束提供了一個(gè)固定的參數(shù),為各模塊的時(shí)鐘計(jì)數(shù)器準(zhǔn)確計(jì)時(shí)和狀態(tài)機(jī)正確跳變奠定了基礎(chǔ)。
          如圖4所示,同步模塊中Din和Din_n管腳(Din_n為Din的方向輸入信號(hào))接收來(lái)自模擬收發(fā)器的數(shù)據(jù)信號(hào),read管腳接收模擬收發(fā)器發(fā)出的使能信號(hào)。產(chǎn)生與16MHz時(shí)鐘的上升沿同步的數(shù)據(jù)信號(hào)和使能信號(hào)。

          d.JPG



          關(guān)鍵詞: 1553B FPGA 總線協(xié)議 解碼器

          評(píng)論


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