• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于FPGA的異步流水乘法器設計的教學方案

      2014-04-26 08:35:50李貞妮李晶皎金碩巍
      電氣電子教學學報 2014年2期
      關(guān)鍵詞:加法器乘法器乘數(shù)

      李貞妮,李晶皎,金碩巍

      (東北大學信息科學與工程學院,遼寧沈陽 110819)

      0 引言

      隨著集成電路規(guī)模的不斷增大,同步電路中的功耗和時鐘偏移等問題日趨嚴重。與同步電路相比,異步電路具有無時鐘偏移、模塊化程度高、功耗低以及電磁兼容性強等優(yōu)勢,越來越受到廣泛關(guān)注[1]。異步電路也成為未來集成電路發(fā)展的一個重要方向。因此,對于電子科學與技術(shù)專業(yè)的學生來說,學習異步電路設計方法十分必要,該部分內(nèi)容已被納入到“專用集成電路設計”課程的教學中。然而,異步電路設計比同步電路設計復雜得多,尚缺乏成熟的EDA設計工具的支持[2]。因此,在授課過程中,為了讓學生能夠盡快地掌握異步電路設計方法,設計出一個可以利用硬件描述語言在FPGA平臺上實現(xiàn)的教學方案具有很重要的意義。

      乘法器作為微處理器中不可或缺的組成部分,具有廣泛的應用領(lǐng)域和巨大的使用價值,因此利用異步電路設計方法,設計并實現(xiàn)一款異步流水乘法器具有很大的實際意義。相應的設計教學方案可以幫助學生深入理解異步電路設計方法,掌握異步電路設計流程,并利用已有的開發(fā)工具實現(xiàn)并驗證該異步電路系統(tǒng)。

      1 教學方案的設計

      1.1 異步乘法器實驗系統(tǒng)設計

      異步流水乘法器實驗系統(tǒng)的FPGA設計教學方案如圖1所示。其中,撥碼開關(guān)實現(xiàn)被乘數(shù)和乘數(shù)的輸入,被乘數(shù)和乘數(shù)通過異步乘法器運算后,使用LCD和LED同時顯示乘法器運算的結(jié)果。在數(shù)據(jù)通路上,實現(xiàn)了4位任意數(shù)乘4位任意數(shù)的異步流水乘法器;在控制通路上則采用了兩段握手協(xié)議,也即微流水線基本結(jié)構(gòu)。

      圖1 異步流水乘法器的FPGA設計方案

      1.2 異步乘法器總體設計

      采用移位相加實現(xiàn)乘法器的基本功能。圖2給出了異步流水乘法器功能實現(xiàn)的總體設計方案。其中,Ldata1為被乘數(shù),Ldata2為乘數(shù)。

      圖2 異步流水乘法器總體設計圖

      該乘法器由信號分支模塊copy、異步移位模塊shifter、異步加法器模塊adder以及延時模塊delay組成。其中信號分支模塊用來復制被乘數(shù),并實現(xiàn)握手信號的分支。通過判斷乘數(shù)的相應位是否為1,來決定是否通過異步移位模塊對被乘數(shù)進行移位操作。異步加法器模塊則是將移位后的數(shù)據(jù)進行相加,得到最終乘法的結(jié)果。圖中的實線箭頭表示數(shù)據(jù)流,而虛線箭頭則表示信號流。

      1.3 信號分支模塊設計

      信號分支模塊實現(xiàn)輸入數(shù)據(jù)(被乘數(shù))的復制,同時完成握手操作。我們以兩段握手協(xié)議的電平敏感鎖存器為設計基礎,設計出信號分支模塊電路圖如圖3所示。

      圖3 信號分支模塊電路圖

      分支模塊含有兩個C單元,其中一個C單元完成握手過程,另一個C單元將輸出通道上的多個應答信號合成為輸入通道上的單元應答信號。將兩個應答信號Rack1和Rack2合并,得到一個輸入的應答信號。而輸出的請求信號則直接一分為二,得到兩個輸出的請求信號,同時將輸入的數(shù)據(jù)進行復制。

      1.4 異步移位模塊設計

      移位操作是乘法器的關(guān)鍵步驟之一。作為異步電路中的功能模塊,除了按指定的功能計算輸入信號以外,它與相鄰的鎖存器間的握手也是透明的。圖4為該異步乘法器所使用的移位模塊結(jié)構(gòu),包括控制通路和數(shù)據(jù)通路。

      圖4 異步移位模塊電路圖

      1.5 異步加法器設計

      異步加法器是異步設計中一個最為基本的標準單元,本實驗通過兩段握手協(xié)議的方式來實現(xiàn),電路圖如圖5所示。在該模塊中,操作數(shù)通道和操作結(jié)果通道是分開的,即具有獨立的輸入和輸出通道,這就意味著在輸入端有匯合。兩段握手協(xié)議的匯合同分支類似,也需要通過C單元,將輸入通道上的多個請求信號合成為輸出通道上的單個請求信號,而應答信號則直接一分為二。

      該加法器可以實現(xiàn)兩輸入的數(shù)據(jù)相加,Lreq1和Leq2為兩個請求信號,通過C單元匯合產(chǎn)生一個輸入的請求信號。Lack1和Lack2則是一分為二的輸出應答信號,這樣就實現(xiàn)了一個兩段握手協(xié)議的異步加法器。

      圖5 異步加法器電路圖

      2 FPGA實現(xiàn)及系統(tǒng)測試

      為了方便學生使用已有的工具,本教學方案設計采用Verilog硬件描述語言作為編程語言,ISE14.4作為編程環(huán)境,Modelsim SE 10.0a作為仿真工具,采用Xilinx公司的Genesys板卡作為目標硬件,在FPGA上實現(xiàn)并驗證該異步流水乘法器。具體實現(xiàn)方法是分模塊進行設計,將上述模塊分別用硬件描述語言實現(xiàn),最后組合成4位異步流水乘法器的頂層模塊,見圖6。

      圖6 異步流水乘法器頂層模塊圖

      該模塊可以實現(xiàn)兩個四位任意數(shù)相乘的功能。Ldata1為4位的被乘數(shù),Ldata2為4位的乘數(shù),Lreq為上一模塊輸出的請求信號,Rack為下一模塊輸出的應答信號,Rdata為8位乘法結(jié)果數(shù)據(jù),Lack為向上一模塊輸入的應答信號,Rreq為向下一模塊輸入的應答信號。當數(shù)據(jù)到來時,上一模塊發(fā)出請求信號,即將Lreq跳轉(zhuǎn),此時該模塊接收數(shù)據(jù)Ldata1[3:0]和Ldata2[3:0],并給上一模塊發(fā)出相應的應答信號Lack,完成了一次握手過程。同時對下一模塊發(fā)出數(shù)據(jù)請求信號Rreq。在進行乘法操作的過程中,將其中一個數(shù)據(jù)作為被乘數(shù),另一個數(shù)據(jù)作為乘數(shù),通過判斷乘數(shù)的每一位是否為1,來對被乘數(shù)進行相應移位操作,并將最后移位的結(jié)果通過加法器進行相加,得到乘法結(jié)果。而由下一模塊輸出的應答信號Rack則在該模塊輸出數(shù)據(jù)時起作用。

      通過Modelsim仿真的波形圖如圖7所示。

      圖7 異步流水乘法器仿真波形圖

      通過仿真波形可以得到,Lreq翻轉(zhuǎn)實現(xiàn)了數(shù)據(jù)發(fā)送請求,Lack的翻轉(zhuǎn)代表獲得乘法結(jié)果,從而實現(xiàn)了兩段握手協(xié)議,且乘法器工作結(jié)果正確。進一步將異步流水乘法器的配置文件下載到Genesys板卡里,驗證異步流水線乘法器系統(tǒng)功能的正確性,表明程序運行正確。

      3 結(jié)語

      本文提出了利用硬件描述語言在FPGA上設計并實現(xiàn)異步流水乘法器的設計教學方案。與使用Balsa和Petrify等專用異步電路設計工具相比,學生可以把主要精力放在異步電路設計方法的學習上,利用已經(jīng)具備的硬件描述語言和FPGA初步開發(fā)能力,進行異步電路設計。這一教學方法符合本科生的教學特點,有助于學生加深對異步電路設計方法的理解與掌握。

      [1]任洪廣,石偉,王志英.異步集成電路設計方法綜述[J].北京:計算機輔助設計與圖形學學報,2011,23(3):543-552.

      [2]趙不賄,徐雷鈞,孫智權(quán).異步電路設計原理-系統(tǒng)透視[M]北京:電子工業(yè)出版社,2009 1:1-5

      猜你喜歡
      加法器乘法器乘數(shù)
      分段式高性能近似加法器設計
      看錯了數(shù)字
      一種混合結(jié)構(gòu)的新型近似加法器
      通用加法器的邏輯實現(xiàn)與分析
      電子世界(2018年1期)2018-01-26 04:58:08
      基于FPGA的流水線單精度浮點數(shù)乘法器設計*
      三旋光結(jié)構(gòu)一步無進位加法器的設計
      理性認知西藏投資乘數(shù)小于1問題:以1996—2014年為例
      西藏研究(2016年4期)2016-06-05 11:31:15
      尋找突破角巧解算式謎
      Lagrange乘數(shù)法的部分應用
      乘法器模塊在FPGA中的實現(xiàn)
      茂名市| 土默特左旗| 乌审旗| 鹤壁市| 新干县| 崇明县| 玛纳斯县| 班玛县| 库车县| 颍上县| 扬中市| 西吉县| 永善县| 博罗县| 顺平县| 新乡市| 志丹县| 宁明县| 平果县| 青龙| 始兴县| 罗平县| 青龙| 南平市| 泸州市| 青龙| 通渭县| 措美县| 保山市| 璧山县| 贺兰县| 纳雍县| 平邑县| 巴林右旗| 鹿泉市| 禹州市| 萍乡市| 金溪县| 弥勒县| 酉阳| 中超|