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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于OuartusⅡ的電子搶答器設計

          基于OuartusⅡ的電子搶答器設計

          作者: 時間:2012-10-06 來源:網(wǎng)絡 收藏

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

          2.4 計分模塊的

          計分模塊的主要功能是對搶答成功并答對的組別進行加分操作或?qū)尨鸪晒Φ疱e的組別進行減分操作,同時通過譯碼顯示電路顯示出來。根據(jù)以上的功能要求,該模塊需要將加、減分操作add、sub和系統(tǒng)時鐘clk_lhz作為輸入信號,而各組別的分數(shù)顯示作為輸出信號aa0[3..0]、 bb0[3..0]、cc0[3..o]、dd0[3..0];為了確定給哪個組別加或減分,需要有一個搶答成功組別的輸入信號,可將其設為chose。為了使系統(tǒng)能進入下一輪的搶答,應設置系統(tǒng)復位輸入信號rst。其計分模塊的仿真模型如圖4所示。

          計分模塊的仿真模型

          通過圖4可以看出,當rst=l時,系統(tǒng)進入初始狀態(tài),a、b、c、d組的初始分值都為5,當add=1,系統(tǒng)時鐘信號clk_lhz的一個上升沿到來時,就給chose當前鑒別的組別“0001”組加1分,當sub=1,系統(tǒng)時鐘信號clk_lhz來一個上升沿時,就給chose當前鑒別的組別 “0010”組減1分。

          3 搶答器的硬件驗證

          選用杭州康芯有限公司生產(chǎn)的GW48EDA系統(tǒng)作為硬件驗證系統(tǒng),同時選用Altera公司的EPlK30TCl44-3作為主控芯片。該主控芯片是一種查找表結(jié)構(gòu)的現(xiàn)場可編程邏輯器件,它的基本邏輯單元是可編程的查找表,能夠?qū)崿F(xiàn)組合邏輯運算,并能用可編程寄存器實現(xiàn)時序邏輯運算。設計時,只需要對搶答器整體設計中的輸入輸出引腳作引腳鎖定,然后重新編譯、下載,就可以進行電子搶答器的硬件驗證了。實驗表明:本設計能夠?qū)崿F(xiàn)電子搶答器的全部功能。

          4 結(jié)束語

          本文以現(xiàn)場可編程邏輯器件(FPGA)為設計載體,以硬件描述語言(VHDL)為主要表達方式,以QuartusⅡ開發(fā)軟件和GW48EDA開發(fā)系統(tǒng)為設計工具設計了一種具有第一搶答信號鑒別和鎖存、計時和計分,并可對提前搶答和超時搶答進行蜂鳴警示等功能的電子搶答器。闡述了電子搶答器的工作原理和軟硬件實現(xiàn)方法。并對電子搶答器的各部分模塊進行了時序仿真和硬件驗證,結(jié)果表明,該電路能夠?qū)崿F(xiàn)其所要求的功能。另外,由于FPGA芯片體積小,功耗低,價格便宜,安全可靠,稍加修改就可以改變搶答器的搶答組別數(shù),而且搶答時間設定和成績組成方式以及維護和升級都比較方便,同時也很容易做成ASIC芯片,因而具有較好的應用前景。


          上一頁 1 2 3 下一頁

          關鍵詞: 設計 電子 Ouartus 基于

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();