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

          關(guān) 閉

          新聞中心

          EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于VHDL的MTM總線主模塊有限狀態(tài)機(jī)設(shè)計(jì)

          基于VHDL的MTM總線主模塊有限狀態(tài)機(jī)設(shè)計(jì)

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


          3 仿真驗(yàn)證
          QuartusⅡ是Altera公司推出的集成開發(fā)軟件,使用QuartusⅡ可以完成從輸入、綜合適配、仿真到編程下載整個(gè)過程,Quart usⅡ也可以直接調(diào)用Synplify Pro、以及ModelSim等第3方EDA工具來完成任務(wù)的綜合和仿真。
          文中利用QuartusⅡ9.0版本軟件和Cyclone系列EP1C6Q240C6芯片對(duì)所設(shè)計(jì)的機(jī)的代碼進(jìn)行了時(shí)序仿真和功能仿真,分別如圖4、圖5所示。

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

          g.JPG


          通過波形圖可以觀察到,該機(jī)可以很好的實(shí)現(xiàn)主機(jī)的狀態(tài)轉(zhuǎn)換。當(dāng)M1輸入為“0”時(shí)(此時(shí)M2、M3為無關(guān)狀態(tài)),按照從高到低進(jìn)行消息傳送,直到進(jìn)入“PAUSE”(暫停狀態(tài))然后狀態(tài)回到“xfer16”(S16)繼續(xù)進(jìn)行消息傳送;當(dāng)M1輸入為“1”時(shí),主無條件進(jìn)入“waiting”(等待狀態(tài));在主模塊處于“waiting”狀態(tài)時(shí)若M3輸入為“1”狀態(tài)轉(zhuǎn)入“idle”(空閑狀態(tài))再次由高到低位的消息傳送。

          h.JPG


          使用語(yǔ)言描述,語(yǔ)法更為嚴(yán)謹(jǐn),描述更為清晰簡(jiǎn)潔;采用“單進(jìn)程”式狀態(tài)機(jī)描述可以有效地節(jié)省FPGA芯片的資源(表1),從而進(jìn)一步減少功耗,提高系統(tǒng)的穩(wěn)定性。

          4 結(jié)束語(yǔ)
          文中通過研究的基本結(jié)構(gòu)和主從模塊間的通訊協(xié)議,分析了主狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換,并使用語(yǔ)言設(shè)計(jì)了該狀態(tài)機(jī),并使用QuartusⅡ開發(fā)軟件對(duì)該狀態(tài)機(jī)進(jìn)行了仿真和驗(yàn)證,仿真結(jié)果表明該程序可以正確描述主狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換,該狀態(tài)機(jī)使用“單進(jìn)程”式描述,與“三進(jìn)程”和“雙進(jìn)程”式相比程序簡(jiǎn)潔明了并且能夠有效地節(jié)省資源,減少功耗,提高系統(tǒng)的穩(wěn)定性。


          上一頁(yè) 1 2 3 4 下一頁(yè)

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