<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è)計(jì)

          基于FPGA的三線制同步串行通信控制器設(shè)計(jì)

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

          3 仿真與驗(yàn)證

          利用Xilinx ISE和ModelSim SE工具平臺(tái)對(duì)IP核進(jìn)行綜合和功能仿真。數(shù)據(jù)發(fā)送仿真波形如圖4所示,數(shù)據(jù)接收仿真波形如圖5所示??梢钥闯?,仿真結(jié)果完全正確,符合設(shè)計(jì)的預(yù)定目標(biāo)。

          數(shù)據(jù)發(fā)送仿真波形
          圖4 數(shù)據(jù)發(fā)送仿真波形

          數(shù)據(jù)接收仿真波形
          圖5 數(shù)據(jù)接收仿真波形

          從圖4的仿真波形中可以看到,data信號(hào)線上是系統(tǒng)要向外圍串行設(shè)備發(fā)送的并行數(shù)據(jù),在各種控制信號(hào)邏輯組合滿足情況下,系統(tǒng)響應(yīng)發(fā)送中斷信號(hào)Int后,CPU先將待發(fā)送的數(shù)據(jù)暫存在04H地址緩沖寄存器中,在幀同步脈沖信號(hào)Sgate正脈沖觸發(fā)下,每個(gè)Sclk周期發(fā)送一位串行數(shù)據(jù)Sdata。圖中并行數(shù)據(jù)99H和E3H對(duì)應(yīng)的串行數(shù)據(jù)分別為“10011001”和“11100011”。

          同理,從圖5可知,當(dāng)開始接收數(shù)據(jù)時(shí),在Rgate正脈沖觸發(fā)下,Rdata數(shù)據(jù)信號(hào)線上待接收的二進(jìn)制串行數(shù)據(jù)通過串/并變換成“11101010”和“11010111”,并分別暫存在07H和06H所對(duì)應(yīng)的地址緩沖寄存器中,在接收中斷信號(hào)Int響應(yīng)下,將對(duì)應(yīng)的并行數(shù)據(jù)“EA”和“D7”傳送到系統(tǒng)數(shù)據(jù)總線上,CPU對(duì)數(shù)據(jù)進(jìn)行處理。

          本文在對(duì)通信機(jī)制進(jìn)行介紹的基礎(chǔ)上,對(duì)IP核進(jìn)行了結(jié)構(gòu)劃分和詳細(xì)設(shè)計(jì),并結(jié)合Xilinx公司的器件,采用VHDL硬件描述語言,對(duì)設(shè)計(jì)方案進(jìn)行了仿真與驗(yàn)證,通過功能仿真波形得出了設(shè)計(jì)方案的正確性,并被成功用于航天某工程項(xiàng)目中。因其兼具較高的數(shù)據(jù)傳輸率和IP核的可移植性,可以預(yù)見,其在通信領(lǐng)域中將具有更加廣闊的發(fā)展空間。


          上一頁 1 2 3 4 下一頁

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