chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

在FPGA系統(tǒng)上實現(xiàn)自動檢驗功能的??臻g管理器的設計

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2019-04-19 08:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

航空航天、工業(yè)控制、汽車電子和核電站建設等領域的高速發(fā)展,對嵌入式操作系統(tǒng)實時性的要求越來越高。同時,由于FPGA的集成度和速度的不斷提高,使嵌入式操作系統(tǒng)硬件化實現(xiàn)成為發(fā)展趨勢。硬實時操作系統(tǒng)中的堆棧管理對系統(tǒng)的實時性和可靠性起著至關重要的作用,而傳統(tǒng)操作系統(tǒng)內(nèi)核是將每個任務的堆棧空間直接進行最大化處理,導致大量存儲空間浪費,另外采用通用RAM尋址方式也不能滿足對被切換任務信息的快速保護。

基于上述問題,本文提出了一種堆??臻g結(jié)構,設計了一款具有自動檢驗功能的棧空間管理器,并在Xilinx公司的集成開發(fā)環(huán)境FPGA系統(tǒng)上實現(xiàn)。

1 堆??臻g結(jié)構

堆??臻g是按先進后出(LIFO)原則分配的連續(xù)存儲器空間,可以滿足保護任務切換信息和中斷響應時保護處理器狀態(tài)和任務參數(shù)數(shù)據(jù)的需要,且對每個任務分配一個單獨的任務棧和一個響應系統(tǒng)中斷任務的中斷嵌套棧。如圖1所示,??臻g劃分為n個任務棧和1個中斷嵌套棧。

在FPGA系統(tǒng)上實現(xiàn)自動檢驗功能的??臻g管理器的設計

任務棧主要保護被切換任務的信息。它存放的數(shù)據(jù)有:任務代碼首地址、任務參數(shù)、任務中定義的局部變量、被調(diào)用函數(shù)的參數(shù)和局部變量及任務中各個函數(shù)的返回地址。中斷嵌套棧存放被中斷任務的數(shù)據(jù),包括發(fā)生中斷時需要保存的上下文、中斷嵌套時需要保存的上下文和中斷服務程序的局部變量。

在硬實時操作系統(tǒng)中,當發(fā)生中斷或中斷嵌套時,堆棧地址指針從任務棧切換到中斷嵌套棧。當所有的中斷服務程序全部執(zhí)行完成后,堆棧地址指針從中斷嵌套棧切換到任務棧,繼續(xù)執(zhí)行該被中斷的任務。這種管理方式同以往操作系統(tǒng)采用被中斷任務的數(shù)據(jù)保存到相應任務堆棧的方法相比,更有效節(jié)約了堆??臻g開銷。

2 ??臻g管理器總體結(jié)構

為了節(jié)約RAM開銷,從總體結(jié)構上構建了一款具有LIFO及自檢功能的??臻g管理器。??臻g管理器結(jié)構包括一個雙端口存儲單元、狀態(tài)控制邏輯模塊、地址產(chǎn)生邏輯模塊、中斷判斷邏輯。其中狀態(tài)控制邏輯模塊由空/滿標志產(chǎn)生邏輯、二進制運算邏輯和標志寄存器組3部分組成;地址產(chǎn)生邏輯模塊由讀/寫地址邏輯、中斷棧邏輯和地址寄存器組3部分組成。

由圖2可知,狀態(tài)控制邏輯模塊的工作過程為:從標志寄存器組中讀出當前任務棧的使用量fcount信號值,fcount信號值傳送至二進制運算邏輯。在讀/寫控制信號有效的情況下,二進制運算邏輯有效,修改fcount信號值,修改后的值作為USED的輸出值,同時寫回到標志寄存器的對應fcount位中。修改后的信號值也作為空/滿標志產(chǎn)生邏輯的輸入信號,空/滿標志產(chǎn)生邏輯生成Full/Empty標志,并把該標志位寫回到標志寄存器對應位Full/Empty中。其中標志寄存器freg的結(jié)構如圖3所示,初始值為0000001000000000B。

在FPGA系統(tǒng)上實現(xiàn)自動檢驗功能的??臻g管理器的設計

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

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

3 ??臻g管理器設計

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

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

3.1狀態(tài)控制邏輯模塊設計

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

在FPGA系統(tǒng)上實現(xiàn)自動檢驗功能的??臻g管理器的設計

在狀態(tài)控制邏輯模塊設計時,prio_int信號驅(qū)動4個多路選擇器,選擇對應狀態(tài)標志寄存器組中的各位段,分別有full信號值、empty信號值、fcount信號值和intNesting信號值。empty/full信號和push/pop信號作為組合邏輯輸入信號產(chǎn)生相應的push_en/pop_en有效控制信號,該控制信號決定??臻g是否執(zhí)行入棧/出棧操作。

在push_en/pop_en控制信號有效的情況下,驅(qū)動二進制運算邏輯加/減1,輸出運算結(jié)果。輸出的信號值有3個用途:(1)作為空/滿標志狀態(tài)產(chǎn)生邏輯的輸入信號,該信號邏輯產(chǎn)生empty/full信號;(2)寫回到fregx對應的fcount位中;(3)作為Used輸出信號值,表示當前任務棧或中斷嵌套棧的使用情況。

在產(chǎn)生empty、full信號邏輯模塊設計時,采用了對輸入信號的每一位進行組合邏輯判斷的方法,使該信號分兩路,一路作為與門組合邏輯的輸入信號產(chǎn)生full信號。如果輸入信號的每一位都為1,則full信號置1,其他情況置0;另一路作為或門非組合邏輯的輸入信號產(chǎn)生empty信號。如果輸入信號的每一位都為0,則empty置1,其他情況置0。在整個邏輯模塊設計中,采用組合邏輯設計,目的是縮短工作時延,提高系統(tǒng)工作頻率。

3.2地址產(chǎn)生邏輯模塊設計

堆棧地址指針SP決定了堆??臻g單元的數(shù)據(jù)正確入棧和出棧,堆棧地址指針SP的獲得在于如何驅(qū)動讀/寫邏輯模塊和中斷棧模塊。為了確保被保護數(shù)據(jù)的有效性和實時性,防止出現(xiàn)不確定狀態(tài),須在時序同步的狀態(tài)下,對數(shù)據(jù)進行操作,如圖5所示。

在FPGA系統(tǒng)上實現(xiàn)自動檢驗功能的??臻g管理器的設計

在地址產(chǎn)生邏輯設計時,先對堆棧地址寄存器組賦初值,該模擬系統(tǒng)管理8個任務,有9個堆棧地址寄存器,分別為8個任務堆棧地址寄存器和1個中斷嵌套棧堆棧地址寄存器。

當任務優(yōu)先級Prio信號和中斷使能int_en信號同時驅(qū)動多路選擇器時,堆棧地址指針SP從堆棧地址寄存器組中選擇存放在Pregx中的當前任務的地址,在設計的棧空間管理器中,SP指向??臻g的下一個存儲單元的地址。如果入棧控制信號有效,則SP作為??臻g的尋址地址,寫入數(shù)據(jù),SP加1;如果出棧控制信號有效,則SP減1,改變后的SP值作為??臻g的尋址地址,讀出數(shù)據(jù)。操作完成后,改變后的SP值寫回到對應的堆棧地址寄存器組Pregx中。

4 仿真結(jié)果分析

本棧空間管理器容量為10KB,寬度為16bit。在ISE8.2i開發(fā)軟件中進行了綜合和仿真,設計中使用了294個Slices芯片、396個觸發(fā)器芯片、274個inputLUTs、60個boundedIOBs、1個塊BRAMs。

仿真時,輸入十進制數(shù)的數(shù)據(jù),圖6為系統(tǒng)時序仿真波形圖。

在FPGA系統(tǒng)上實現(xiàn)自動檢驗功能的棧空間管理器的設計

(1)當INT無效時,即系統(tǒng)中不存在中斷或中斷嵌套。在push有效的情況下,置prio信號值為2,data_in信號值分別為32768、57908。仿真時,輸出結(jié)果為:used信號值分別為1、2,而ostcbstkptr信號值分別為128、129;同理,在pop有效情況下,置prio信號值為2,觀察仿真結(jié)果為:dout_out信號值分別為32768、57908,used的信號值分別為1、0,ostcbstkptr信號值分別為129、128。由此可得,在無中斷處理的條件下,根據(jù)任務的優(yōu)先級prio,按LIFO原則在任務棧中寫入和讀出數(shù)據(jù),并且每次的有效操作同時修改當前任務的used和ostcbstkptr信號值。

(2)當INT有效時,即系統(tǒng)中產(chǎn)生中斷或存在中斷嵌套。在push有效的情況下,置prio信號值為6及data_in信號值為8192,觀察仿真結(jié)果為:used信號值依次為1、2、3、4,ostcbstkptr信號值依次為576、577、578、579;同理,在pop有效情況下,置prio為6,此時的仿真結(jié)果:data_out信號值為8192,used信號值依次輸出4、3、2、1,ostcbstkptr信號值依次輸出579、578、577、576。由此可得,當系統(tǒng)中產(chǎn)生中斷或存在中斷嵌套,按LIFO原則在中斷嵌套棧中寫入和讀出數(shù)據(jù),并且每次有效操作同時修改中斷嵌套棧的used和ostcbstkptr的值。

由以上結(jié)果分析可知,該實驗驗證了??臻g管理器的正確性,符合系統(tǒng)設計的要求。

本文分析了堆??臻g結(jié)構及對被切換任務相應數(shù)據(jù)信息的保護,并對堆??臻g進行了合理的結(jié)構劃分。實驗數(shù)據(jù)表明了該系統(tǒng)的可行性和穩(wěn)定性。棧空間管理器能有效節(jié)約硬實時操作系統(tǒng)分配堆??臻g的時間,減少RAM存儲空間。從硬件角度上看,簡化了設計,降低了成本,具有一定的使用價值。目前只在實驗平臺上仿真,下一步擬將棧空間管理器的IP核應用于硬實時操作系統(tǒng),以提高操作系統(tǒng)的運行效率。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1645

    文章

    22050

    瀏覽量

    618699
  • 嵌入式
    +關注

    關注

    5152

    文章

    19676

    瀏覽量

    317713
  • 操作系統(tǒng)

    關注

    37

    文章

    7152

    瀏覽量

    125627
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    關于如何在LV中實現(xiàn)資源管理器

    希望可以LV中插入資源管理器實現(xiàn)功能就像WINDOWS中的資源管理器一樣的功能,我想從
    發(fā)表于 03-08 09:03

    光電測徑儀自動檢測中的應用

      檢測自動化是提高生產(chǎn)效率,減輕勞動強度,節(jié)省人力的重要措施,是保證產(chǎn)品質(zhì)量,實現(xiàn)100%檢驗的最好方法,也是質(zhì)量控制自動化的重要基礎。因此,自動
    發(fā)表于 08-28 09:15

    怎么儀器管理器顯示查找儀器

    可以完美地檢測到tektronix示波器,但是我的安捷倫專業(yè)版它根本無法檢測到它...從我讀到的是我需要去儀器管理器并按下該管理器中的查找我的儀器按鈕并且它應該檢測我的PC中連接的
    發(fā)表于 03-18 16:05

    MCU堆空間空間的相關資料分享

    stack 空間堆 heap 空間存儲函數(shù)參數(shù)和局部變量,所需空間系統(tǒng)自動分配,回收也由
    發(fā)表于 11-03 08:54

    雷達故障自動檢系統(tǒng)

    本文介紹了雷達故障自動檢系統(tǒng)設計。對雷達故障自動檢系統(tǒng)提出了總體設計任務和目標、構成、功能、性能、技術指標。對雷達
    發(fā)表于 07-15 10:41 ?26次下載

    啤酒生產(chǎn)線的啤酒瓶自動檢驗設備相關文檔及源

    啤酒生產(chǎn)線的啤酒瓶自動檢驗設備相關文檔及源代碼
    發(fā)表于 08-03 10:27 ?27次下載
    啤酒生產(chǎn)線的啤酒瓶<b class='flag-5'>自動檢驗</b>設備相關文檔及源

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

    提出了一種將堆棧空間劃分為任務和中斷嵌套的設計結(jié)構,使堆棧空間最小化。采用VHDL硬件語言,FPG
    發(fā)表于 11-11 16:02 ?15次下載

    提高系統(tǒng)可靠性的電壓管理器

    電壓管理器是一種集成電路,低電壓的情況下它可以用來對處理進行復位,避免處理錯誤操作以確保系統(tǒng)安全掉電。本文介紹了電壓
    發(fā)表于 05-13 09:47 ?677次閱讀

    頻寬管理器的防火墻功能

    頻寬管理器的防火墻功能              目前多數(shù)頻寬管理器都集成了防火墻的功能
    發(fā)表于 01-08 14:34 ?835次閱讀

    為MAX16046可編程系統(tǒng)管理器增加自動重啟功能

    本文介紹了一個基于非易失(NV)故障寄存的可編程系統(tǒng)管理器中產(chǎn)生簡單自動重啟操作的有效方案。
    發(fā)表于 04-07 15:18 ?1526次閱讀
    為MAX16046可編程<b class='flag-5'>系統(tǒng)管理器</b>增加<b class='flag-5'>自動</b>重啟<b class='flag-5'>功能</b>

    基于TCP/IP通信技術Xilinx FPGA實現(xiàn)

    研究了TCP/IP通信協(xié)議Xilinx 公司現(xiàn)場可編程門陣列FPGA實現(xiàn),介紹了其軟硬件的系統(tǒng)
    發(fā)表于 09-04 09:24 ?9次下載
    基于TCP/IP通信技術<b class='flag-5'>在</b>Xilinx <b class='flag-5'>FPGA</b><b class='flag-5'>上</b>的<b class='flag-5'>實現(xiàn)</b>

    封裝下載管理器實例教學

    第一節(jié):功能說明 首先,本篇文章教大家寫一個最簡單的下載管理器,不包含上傳管理器。不過,上傳管理器與下載管理器是一樣的,后面會拋磚引玉,大家
    發(fā)表于 09-26 15:38 ?0次下載

    數(shù)據(jù)庫的項目管理器是什么?項目管理器詳細資料總結(jié)

    項目管理器是VFP集成開發(fā)環(huán)境中的一個重要組成部分。項目是文件、數(shù)據(jù)、文檔和對象的集合,項目管理器通過項目文件(.PJX和.PJT)對項目進行管理。VFP所有管理
    發(fā)表于 09-18 17:43 ?5次下載
    數(shù)據(jù)庫的項目<b class='flag-5'>管理器</b>是什么?項目<b class='flag-5'>管理器</b>詳細資料總結(jié)

    為MAX16046 EEPROM可編程系統(tǒng)管理器添加自動重啟功能

    MAX16046為EEPROM可配置的系統(tǒng)管理器,可監(jiān)測、排序、跟蹤和裕量處理多個系統(tǒng)電壓。該設計思路表明,只需MAX16046增加一個小的外部器件,就可以按照微控制
    的頭像 發(fā)表于 02-07 15:28 ?996次閱讀
    為MAX16046 EEPROM可編程<b class='flag-5'>系統(tǒng)管理器</b>添加<b class='flag-5'>自動</b>重啟<b class='flag-5'>功能</b>

    負載管理器的主要功能

    是對負載管理器主要功能的分析: 1. 任務調(diào)度(Task Scheduling) 任務調(diào)度是負載管理器的核心功能之一。它涉及到?jīng)Q定哪些任務應該在何時運行,以及在哪些處理
    的頭像 發(fā)表于 10-10 11:26 ?854次閱讀