新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA的32位ALU軟核設計

        基于FPGA的32位ALU軟核設計

        作者: 時間:2011-02-28 來源:網絡 收藏

        目前許多的邏輯資源(LE)都已超過1萬門,使得片上可編程系統SOPC已經成為可能。算術邏輯單元應用廣泛,是片上可編程系統不可或缺的一部分。利用VHDL語言在芯片上設計的研究較少,文中選用來設計32位算術邏輯單元,通過VHDL語言實現ALU的功能。

        1 電路總體設計思想
        算術邏輯單元ALU采用模塊化設計,可以完成32位有符號數和無符號數的加減乘除,還可以實現9種邏輯運算、6種移位操作以及高低字節內容互換等操作。
        總體設計圖,如圖1所示。當you_wu=1時實現有符號數加減乘除運算,否則為無符號數運算。進行有符號數加減運算時c為符號位,無符號數加減運算時c表示進位或借位。加減法運算和邏輯運算結果存于y1。乘運算時,y1放高32位,y2放低32位。除法運算時y1放商,y2放余數。a,b表示兩路32位輸入數據。

        本文引用地址:http://www.104case.com/article/191340.htm



        2 主要模塊功能分析
        算術邏輯單元ALU包含5個模塊:控制模塊、邏輯模塊、加減法模塊、乘法模塊和除法模塊。控制模塊比較簡單,即1個2線~4線譯碼器,完成其他模塊的控制與選擇。當ctr=00時完成邏輯運算,ctr=01時完成加減法運算,ctr=10時完成乘法運算,ctr=11時完成除法運算。
        2.1 邏輯運算模塊
        本模塊實現與、或、非、與非、或非、異或、同或、邏輯左移、邏輯右移、算術左移、算術右移、邏輯循環左移、邏輯循環右移以及高低半字(16位)分別取反和高低字內容互換等操作。用1個case語句即可實現上述全部功能。
        2.2 加減法模塊
        加減法模塊可根據需要完成32位有符號數和無符號數的加減運算,在程序開始時先判斷所要進行的運算有無符號數,對于有符號數,用符號位將兩組數擴展為33位二進制數,否則用0擴展為33位二進制數,其中減法運算采用補碼實現,所以整個程序只有加法運算。程序只占用68個邏輯資源(LE),非常節省資源,而且速度很快,是一種優化設計。仿真圖如圖2所示。


        上一頁 1 2 下一頁

        關鍵詞: FPGA ALU 軟核

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 天峻县| 赣榆县| 古田县| 达日县| 济阳县| 图木舒克市| 怀安县| 新津县| 黔南| 法库县| 荆门市| 万宁市| 盐源县| 小金县| 营山县| 江油市| 沁阳市| 龙井市| 尚志市| 新闻| 加查县| 白朗县| 寿宁县| 苗栗县| 廉江市| 左云县| 双桥区| 东台市| 丹棱县| 土默特左旗| 平安县| 桦南县| 镇康县| 黔南| 洞头县| 简阳市| 南木林县| 运城市| 九台市| 石城县| 深圳市|