新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 一種基于FPGA的棧空間管理器的研究和設計

        一種基于FPGA的棧空間管理器的研究和設計

        作者: 時間:2010-09-21 來源:網絡 收藏

          
          3器設計
          
          為了快速、有效地保護被切換任務的信息,并滿足自動檢驗功能的要求,在器設計中設計了2個邏輯模塊,分別為狀態控制邏輯模塊和地址產生邏輯模塊。狀態控制邏輯模塊主要生成入棧/出棧控制信號和Used信號,地址產生邏輯模塊主要生成有效的入棧/出棧地址。基于對器總體結構工作過程的闡述,在Xilinx公司設計的XUPVirtexIIPro系列的芯片上設計一個模擬棧空間管理器,模擬管理8個任務,的深度為64,寬度為16bit,的深度為128,寬度為16bit,容量為10KB的堆棧空間。在設計管理器中,保證管理器快速綜合,使占用的資源盡可能少,存儲單元的選擇是關鍵,該系統采用的是上一個18KB的BlockRAM資源,使用ISE8.2i提供的雙端口RAM存儲模塊的IP核。如果選擇其他方法,如用觸發器和寄存器搭建存儲單元,則綜合時間長,且占用大量的Slices資源。
          
          在實際嵌入式系統應用中,根據系統要求,可計算出棧空間深度和寬度,具體的深度和寬度在VHDL代碼中修改即可。
          
          3.1狀態控制邏輯模塊設計
          
          由于狀態標志寄存器的空/滿狀態標志位決定棧空間入棧/出棧操作,所以如何設計空/滿狀態標志位是關鍵。為了保護的數據能正確入棧與出棧,防止存儲器出現向上溢出或向下溢出,保證在滿的情況下,不能進行push操作;在空的狀態下,不能進行pop操作。控制信號的產生過程如圖4所示。

        一種基于FPGA的棧空間管理器的研究和設計


          
          在狀態控制邏輯模塊設計時,prio_int信號驅動4個多路選擇器,選擇對應狀態標志寄存器組中的各位段,分別有full信號值、empty信號值、fcount信號值和intNesting信號值。empty/full信號和push/pop信號作為組合邏輯輸入信號產生相應的push_en/pop_en有效控制信號,該控制信號決定棧空間是否執行入棧/出棧操作。
          
          在push_en/pop_en控制信號有效的情況下,驅動二進制運算邏輯加/減1,輸出運算結果。輸出的信號值有3個用途:(1)作為空/滿標志狀態產生邏輯的輸入信號,該信號邏輯產生empty/full信號;(2)寫回到fregx對應的fcount位中;(3)作為Used輸出信號值,表示當前的使用情況。
          
          在產生empty、full信號邏輯模塊設計時,采用了對輸入信號的每一位進行組合邏輯判斷的方法,使該信號分兩路,一路作為與門組合邏輯的輸入信號產生full信號。如果輸入信號的每一位都為1,則full信號置1,其他情況置0;另一路作為或門非組合邏輯的輸入信號產生empty信號。如果輸入信號的每一位都為0,則empty置1,其他情況置0。在整個邏輯模塊設計中,采用組合邏輯設計,目的是縮短工作時延,提高系統工作頻率。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 长治县| 阜城县| 丰城市| 奉化市| 旬阳县| 新安县| 长寿区| 永福县| 黄陵县| 宣威市| 武城县| 商河县| 介休市| 敦化市| 乌兰浩特市| 临江市| 家居| 涞水县| 斗六市| 南召县| 开鲁县| 方山县| 栾川县| 阳朔县| 富民县| 新沂市| 泌阳县| 永川市| 都江堰市| 北安市| 诏安县| 炎陵县| 仪陇县| 虞城县| 宁阳县| 舟山市| 福安市| 石柱| 怀柔区| 区。| 南宁市|