新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA的??臻g管理器的研究和設計

        基于FPGA的??臻g管理器的研究和設計

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

          中斷判斷邏輯由輸入信號INT與標志寄存器位IntNeSTing值決定是否有效。如果有中斷發生,則中斷棧邏輯有效,中斷棧邏輯生成讀/寫地址,否則讀/寫地址邏輯有效,生成相應的讀/寫地址。

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

          在讀/寫控制信號有效的情況下,從堆棧地址寄存器組中讀出當前任務的地址,經過讀/寫地址邏輯或中斷棧邏輯產生堆棧地址指針,作為HOS 堆的入棧/出棧地址。執行入棧時,在同步時鐘和入??刂菩盘栍行У那闆r下,中斷判斷邏輯判斷是否存在中斷或中斷嵌套,如果沒有,則由寫地址邏輯生成入棧地址;否則由中斷棧邏輯生成寫地址。同理,執行出棧時,在同步時鐘和出??刂菩盘栍行У那闆r下,中斷判斷邏輯判斷是否存在中斷或中斷嵌套,如果沒有,則讀地址邏輯生成出棧地址;否則中斷棧邏輯生成出棧地址。

          3 設計

          為了快速、有效地保護被切換任務的信息,并滿足自動檢驗功能的要求,在設計中設計了2個邏輯模塊,分別為狀態控制邏輯模塊和地址產生邏輯模塊。狀態控制邏輯模塊主要生成入棧/出??刂菩盘柡蚒sed信號,地址產生邏輯模塊主要生成有效的入棧/出棧地址?;趯?臻g總體結構工作過程的闡述,在Xilinx公司設計的XUP Virtex II Pro 系列的芯片上設計一個模擬棧空間管理器,模擬管理8個任務,任務棧的深度為64,寬度為16 bit,中斷嵌套棧的深度為128,寬度為16 bit,容量為10 KB的堆??臻g。在設計管理器中,保證管理器快速綜合,使占用的資源盡可能少,存儲單元的選擇是關鍵,該系統采用的是上一個18 KB的Block RAM資源,使用ISE 8.2i提供的雙端口RAM存儲模塊的 IP核。如果選擇其他方法,如用觸發器和寄存器搭建存儲單元,則綜合時間長,且占用大量的 Slices資源。

          在實際嵌入式系統應用中,根據系統要求,可計算出??臻g深度和寬度,具體的深度和寬度在VHDL代碼中修改即可。

          3.1 狀態控制邏輯模塊設計

          由于狀態標志寄存器的空/滿狀態標志位決定??臻g入棧/出棧操作,所以如何設計空/滿狀態標志位是關鍵。為了保護的數據能正確入棧與出棧,防止存儲器出現向上溢出或向下溢出,保證在滿的情況下,不能進行push操作;在空的狀態下,不能進行pop操作??刂菩盘柕漠a生過程如圖4所示。


          在狀態控制邏輯模塊設計時, 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輸出信號值,表示當前任務?;蛑袛嗲短讞5氖褂们闆r。



        關鍵詞: FPGA ??臻g 管理器

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 淳化县| 新昌县| 晴隆县| 莲花县| 伊通| 逊克县| 桂平市| 宁德市| 平凉市| 建湖县| 兖州市| 新丰县| 自贡市| 兴宁市| 全椒县| 天镇县| 丘北县| 沁阳市| 江华| 南乐县| 南华县| 松江区| 色达县| 镇沅| 利川市| 麻栗坡县| 武宣县| 加查县| 闵行区| 汾西县| 五常市| 宁晋县| 桦川县| 胶州市| 深圳市| 中山市| 乾安县| 清水县| 连州市| 梅河口市| 宁城县|