計算機(jī)操作系統(tǒng)實驗報告-2_第1頁
計算機(jī)操作系統(tǒng)實驗報告-2_第2頁
計算機(jī)操作系統(tǒng)實驗報告-2_第3頁
計算機(jī)操作系統(tǒng)實驗報告-2_第4頁
計算機(jī)操作系統(tǒng)實驗報告-2_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

一、實驗?zāi)康?.通過模擬實現(xiàn)幾種基本頁面置換的算法,了解虛擬存儲技術(shù)的特點。2.掌握虛擬存儲請求頁式存儲管理中幾種基本頁面置換算法的基本思想,并至少用三種算法來模擬實現(xiàn)。3.通過對幾種置換算法頁面的比較,來對比他們的優(yōu)缺點,并通過比較更換頻率來對比它們的效率。二、實驗內(nèi)容:設(shè)計一個虛擬存儲區(qū)和內(nèi)存工作區(qū),并使用下述算法來模擬實現(xiàn)頁面的置換:1.先進(jìn)先出的算法(FIFO)2.最近最久未使用算法(LRU)3.最佳置換算法(OPT)三、實驗分析在進(jìn)程運行過程中,若其所訪問的頁面不存在內(nèi)存而需要把它們調(diào)入內(nèi)存,但內(nèi)存已無空閑時,為了保證該進(jìn)程能夠正常運行,系統(tǒng)必須從內(nèi)存中調(diào)出一頁程序或數(shù)據(jù)送磁盤的對換區(qū)中。但應(yīng)調(diào)出哪個頁面,需根據(jù)一定的算法來確定,算法的好壞,直接影響到系統(tǒng)的性能。一個好的頁面置換算法,應(yīng)該有較低的頁面更換頻率。假設(shè)分給一作業(yè)的物理塊數(shù)為3,頁面數(shù)為20個。頁面號為(20個):7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1四、源程序結(jié)構(gòu)分析程序結(jié)構(gòu)程序共有以下九個部分:intfindSpace(void);//查找是否有空閑內(nèi)存intfindExist(intcurpage);//查找內(nèi)存中是否有該頁面intfindReplace(void);//查找應(yīng)予置換的頁面voiddisplay(void);//顯示voidFIFO(void);//FIFO算法voidLRU(void);//LRU算法voidOPT(void);//OPT算法;voidBlockClear(void);//BLOCK清空,以便用另一種方法重新演示intmain()//主程序源程序代碼#include<iostream.h>#defineBsize3#definePsize20structpageInfor{intcontent;//頁面號inttimer;//被訪問標(biāo)記};classPRA{public:PRA(void);intfindSpace(void);//查找是否有空閑內(nèi)存intfindExist(intcurpage);//查找內(nèi)存中是否有該頁面intfindReplace(void);//查找應(yīng)予置換的頁面voiddisplay(void);//顯示voidFIFO(void);//FIFO算法voidLRU(void);//LRU算法voidOptimal(void);//OPTIMAL算法voidBlockClear(void);//BLOCK恢復(fù)pageInfor*block;//物理塊pageInfor*page;//頁面號串private:};PRA::PRA(void){intQString[20]={7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1};block=newpageInfor[Bsize];for(inti=0;i<Bsize}voidPRA::Optimal(void){intexist,space,position;for(inti=0;i<Psize;i++){{position=findReplace();block[position]=page[i];display();}}for(intj=0;j<Bsize;j++)block[j].timer++;//BLOCK中所有頁面TIMER++}}voidPRA::BlockClear(void){for(inti=0;i<Bsize;i++){block[i].content=-1;block[i].timer=0;}}voidmain(void){cout<<"|頁面置換算法|"<<endl;cout<<"|powerbywangxinchuang(080501228)|"<<endl;cout<<"||"<<endl;cout<<"頁面號引用串:7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1"<<endl;cout<<""<<endl;cout<<"選擇<1>應(yīng)用Optimal算法"<<endl;cout<<"選擇<2>應(yīng)用FIFO算法"<<endl;cout<<"選擇<3>應(yīng)用LRU算法"<<endl;cout<<"選擇<0>退出"<<endl;intselect;PRAtest;while(select){cin>>select;switch(select){case0:break;case1:cout<<"Optimal算法結(jié)果如下:"<<endl;test.Optimal();test.BlockClear();cout<<""<<endl;break;case2:cout<<"FIFO算法結(jié)果如下:"<<endl;test.FIFO();test.BlockClear();cout<<""<<endl;break;case3:cout<<"LRU算法結(jié)果如下:"<<endl;test.LRU();test.BlockClear();cout<<""<<endl;break;default:cout<<"請輸入正確功能號"<<endl;break;}}}五、實驗結(jié)果1運行后的初始界面2opt算法3.FIFO算法4LRU算法實驗?zāi)康模恒y行家算法是避免死鎖的一種重要方法,通過編寫一個簡單的銀行家算法程序,加深了解有關(guān)資源申請、避免死鎖等概念,并體會和了解死鎖和避免死鎖的具體實施方法。問題分析與設(shè)計:1、算法思路:先對用戶提出的請求進(jìn)行合法性檢查,即檢查請求是否大于需要的,是否大于可利用的。若請求合法,則進(jìn)行預(yù)分配,對分配后的狀態(tài)調(diào)用安全性算法進(jìn)行檢查。若安全,則分配;若不安全,則拒絕申請,恢復(fù)到原來的狀態(tài),拒絕申請。2、銀行家算法步驟:(1)如果Requesti<o(jì)r=Need,則轉(zhuǎn)向步驟(2);否則,認(rèn)為出錯,因為它所需要的資源數(shù)已超過它所宣布的最大值。(2)如果Request<o(jì)r=Available,則轉(zhuǎn)向步驟(3);否則,表示系統(tǒng)中尚無足夠的資源,進(jìn)程必須等待。(3)系統(tǒng)試探把要求的資源分配給進(jìn)程Pi,并修改下面數(shù)據(jù)結(jié)構(gòu)中的數(shù)值:

Available=Available-Request[i];

Allocation=Allocation+Request;Need=Need-Request;(4)系統(tǒng)執(zhí)行安全性算法,檢查此次資源分配后,系統(tǒng)是否處于安全狀態(tài)。3、安全性算法步驟:(1)設(shè)置兩個向量①工作向量Work。它表示系統(tǒng)可提供進(jìn)程繼續(xù)運行所需要的各類資源數(shù)目,執(zhí)行安全算法開始時,Work=Allocation;②布爾向量Finish。它表示系統(tǒng)是否有足夠的資源分配給進(jìn)程,使之運行完成,開始時先做Finish[i]=false,當(dāng)有足夠資源分配給進(jìn)程時,令Finish[i]=true。(2)從進(jìn)程集合中找到一個能滿足下述條件的進(jìn)程:①Finish[i]=false②Need<or=Work如找到,執(zhí)行步驟(3);否則,執(zhí)行步驟(4)。(3)當(dāng)進(jìn)程P獲得資源后,可順利執(zhí)行,直至完成,并釋放出分配給它的資源,故應(yīng)執(zhí)行:Work=Work+Allocation;Finish[i]=true;轉(zhuǎn)向步驟(2)。如果所有進(jìn)程的Finish[i]=true,則表示系統(tǒng)處于安全狀態(tài);否則,系統(tǒng)處于不安全狀態(tài)。實驗代碼:#include<iostream.h>#include<string.h>#include<stdio.h>#defineFalse0#defineTrue1intMax[100][100]={0};//各進(jìn)程所需各類資源的最大需求intAvaliable[100]={0};//系統(tǒng)可用資源charname[100]={0};//資源的名稱intAllocation[100][100]={0};//系統(tǒng)已分配資源intNeed[100][100]={0};//還需要資源intRequest[100]={0};//請求資源向量inttemp[100]={0};//存放安全序列intWork[100]={0};//存放系統(tǒng)可提供資源intp[100]={0};intq[100][100]={0};intz[100][100]={0};intM=100;//作業(yè)的最大數(shù)為100intN=100;//資源的最大數(shù)為100intgg=1;voidshowdata()//顯示資源矩陣{inti,j;cout<<endl<<"此時刻的資源分配情況為:"<<endl;cout<<"MaxAllocationNeedAvaliable"<<endl;cout<<"進(jìn)程名";for(j=0;j<4;j++){for(i=0;i<N;i++)cout<<name[i]<<"";cout<<"";}cout<<endl;for(i=0;i<M;i++){cout<<""<<i<<"";for(j=0;j<N;j++)cout<<Max[i][j]<<"";cout<<"";for(j=0;j<N;j++)cout<<Allocation[i][j]<<"";cout<<"";for(j=0;for(i=0;i<M;i++){cout<<"*****************銀行家算法的設(shè)計與實現(xiàn)*****************"<<endl;cout<<endl<<"請首先輸入系統(tǒng)可供資源種類的數(shù)量:";cin>>cout<<"資源"<<i+1<<"的名稱:";cin>>ming;name[i]=ming;cout<<"資源的數(shù)量:";cin>>number;Avaliable[i]=number;}cout<<endl;cout<cout<<endl<<"是否繼續(xù)銀行家算法?(按1鍵繼續(xù),按其它任意鍵退出):"; cin>>t; cout<<endl; }return運行截圖問題描述:為了將內(nèi)存中的空間運用充分,特別利用動態(tài)重定位算法對內(nèi)存中的碎片進(jìn)行拼接,用以放入適合大小的進(jìn)程。二、程序分析與設(shè)計:1、基本思想建立一個空閑閑分區(qū)表,用于存儲內(nèi)存的數(shù)據(jù)信息,每個表項對應(yīng)一塊空閑內(nèi)存的信息,程序通過查找表中的數(shù)據(jù)去尋找是否有適合當(dāng)前進(jìn)程的空間(利用首次適應(yīng)算法),當(dāng)沒有找到時將對內(nèi)存進(jìn)行整理,即將數(shù)據(jù)往前移動,最后只剩下一快空間,再查看是否滿足當(dāng)前進(jìn)程式的分配,如果可以則分配,否則進(jìn)程放入等待隊列中。2、結(jié)構(gòu)定義constintMAX=1000;//空表的表項最大值constintMAX1=2048;//內(nèi)存的字節(jié)數(shù)typedefclassmemoryroom{private:boolisfull;//這個字節(jié)是否可用charbyte[9];//這個字節(jié)存放的數(shù)據(jù)}MEMORY;//分區(qū)表的數(shù)據(jù)結(jié)構(gòu)!!typedefclasstable{private:boolisuse;//該表項是否可用intstartaddress;//在內(nèi)存中的起始地址intsize;//連續(xù)的大小}TABLE;3、算法描述/*在空分區(qū)中查找合適的內(nèi)存空間*/boolprocInputMemory(TABLE*mt,intprocsize,MROOM*memory){inti;cout<<"\n正在空分區(qū)中查找合適的內(nèi)存空間(按首次適應(yīng)算法尋找)"<<endl;for(i=0;i<MAX;i++)if(mt[i].getIsUse()&&mt[i].getSize()>=procsize){cout<<"\n調(diào)入內(nèi)成功"<<endl;cout<<"\n\n該進(jìn)程在內(nèi)存的"<<mt[i].getStartAddress()<<"起始處"<<endl;//內(nèi)存設(shè)為被占用for(intj=mt[i].getStartAddress();j<mt[i].getStartAddress()+mt[i].getSize();j++)memory[j].setIsNotFull(true);//修改分區(qū)表if(procsize<mt[i].getSize()){mt[i].setSize(mt[i].getSize()-procsize);mt[i].setStartAddress(mt[i].getStartAddress()+procsize);}if(procsize==mt[i].getSize())mt[i].setIsUse(false);returntrue;}if(i==MAX)returnfalse;}/////////////////////////////////*對內(nèi)存的碎片整理和對表項的改變*/voidmemoryRepeat(MROOM*memory,TABLE*em){inti,j,size,address;size=0;j=0;for(i=0;i<MAX;i++){if(!memory[i].getIsNotFull())size+=1;else{memory[i].setIsNotFull(false);memory[j].setIsNotFull(true);memory[j].setByte(memory[i].getByte());j++;}}em[0].setIsUse(true);em[0].setSize(size);em[0].setStartAddress(size);for(i=1;i<MAX;i++){em[i].setIsUse(false);em[i].setSize(0);em[i].setStartAddress(0);}}運行截圖Demo一.實驗?zāi)康?、掌握FPGA中l(wèi)pm_ROM的設(shè)置,作為只讀存儲器ROM的工作特性和配置方法。2、用文本編輯器編輯mif文件配置ROM,學(xué)習(xí)將程序代碼以mif格式文件加載于lpm_ROM中;3、在初始化存儲器編輯窗口編輯mif文件配置ROM;4、驗證FPGA中mega_lpm_ROM的功能。二.實驗原理ALTERA的FPGA中有許多可調(diào)用的LPM(LibraryParameterizedModules)參數(shù)化的模塊庫,可構(gòu)成如lpm_rom、lpm_ram_io、lpm_fifo、lpm_ram_dq的存儲器結(jié)構(gòu)。CPU中的重要部件,如RAM、ROM可直接調(diào)用他們構(gòu)成,因此在FPGA中利用嵌入式陣列塊EAB可以構(gòu)成各種結(jié)構(gòu)的存儲器,lpm_ROM是其中的一種。lpm_ROM有5組信號:地址信號address[]、數(shù)據(jù)信號q[]、時鐘信號inclock、outclock、允許信號memenable,其參數(shù)都是可以設(shè)定的。由于ROM是只讀存儲器,所以它的數(shù)據(jù)口是單向的輸出端口,ROM中的數(shù)據(jù)是在對FPGA現(xiàn)場配置時,通過配置文件一起寫入存儲單元的。圖3-1-1中的lpm_ROM有3組信號:inclk——輸入時鐘脈沖;q[23..0]——lpm_ROM的24位數(shù)據(jù)輸出端;a[5..0]——lpm_ROM的6位讀出地址。實驗中主要應(yīng)掌握以下三方面的內(nèi)容:(1)lpm_ROM的參數(shù)設(shè)置;(2)lpm_ROM中數(shù)據(jù)的寫入,即LPM_FILE初始化文件的編寫;(3)lpm_ROM的實際應(yīng)用,在GW48_CP+實驗臺上的調(diào)試方法。三.實驗步驟(1)用圖形編輯,進(jìn)入mega_lpm元件庫,調(diào)用lpm_rom元件,設(shè)置地址總線寬度address[]和數(shù)據(jù)總線寬度q[],分別為6位和24位,并添加輸入輸出引腳,如圖3-1-1設(shè)置和連接。(2)設(shè)置圖3-1-1為工程。(3)在設(shè)置lpm_rom數(shù)據(jù)參數(shù)選擇項lpm_file的對應(yīng)窗口中(圖3-1-2),用鍵盤輸入lpm_ROM配置文件的路徑(rom_a.mif),然后設(shè)置在系統(tǒng)ROM/RAM讀寫允許,以便能對FPGA中的ROM在系統(tǒng)讀寫。(4)用初始化存儲器編輯窗口編輯lpm_ROM配置文件(文件名.mif)。這里預(yù)先給出后面將要用到的微程序文件:rom_a.mif。rom_a.mif中的數(shù)據(jù)是微指令碼(圖3-1-3)。(5)全程編譯。四.實驗原理圖(1)rom結(jié)構(gòu)圖(2)初始化文件rom五.實驗仿真波形圖Clk為時鐘脈沖,a為地址,q為數(shù)據(jù)。當(dāng)clk上升沿時,將地址鎖入,顯示數(shù)值。波形圖中,a為1時,q為00ED82;a為2是,q為00C050;a為3時,q為00E004。以此類推??梢钥闯?,波形圖與ROM初始化文件數(shù)據(jù)相同。一、實驗?zāi)康模?.通過實驗加深對計算機(jī)各功能部件的理解;掌握數(shù)據(jù)信息流和控制信息流的流動和實現(xiàn)過程,建立起整機(jī)概念;培養(yǎng)設(shè)計、開發(fā)和調(diào)試計算機(jī)的能力。2.提高使用EDA工具軟件和可編程器件芯片的基本技能。3.培養(yǎng)科學(xué)研究的獨立工作能力,取得工程設(shè)計與組裝調(diào)試的實踐和經(jīng)驗。二、設(shè)計方案:1.模型機(jī)的總體設(shè)計模型機(jī)的總體設(shè)計的內(nèi)容包括確定各種部件的設(shè)置以及它們之間的數(shù)據(jù)通路結(jié)構(gòu)。CISC模型機(jī)由CISC微處理器、地址寄存器AR、ROM和RAM存儲器等組成。微處理器由算術(shù)邏輯運算單元ALU、狀態(tài)條件寄存器、累加器AC、數(shù)據(jù)暫存器DR、通用寄存器R0~R2、程序計數(shù)器PC、指令寄存器IR、操作控制器和時序產(chǎn)生器組成。CISC模型機(jī)的操作控制器采用微程序控制器。2.微程序控制器的組成原理框圖微程序控制器組成原理框圖如圖2所示。它主要由控制器、微指令寄存器和地址轉(zhuǎn)移邏輯電路三大部分組成,其中微指令寄存器分為微地址寄存器和微命令寄存器兩部分。圖2微程序控制器組成原理框圖3.模型機(jī)機(jī)器指令格式和指令系統(tǒng)CISC模型機(jī)的指令系統(tǒng)采用復(fù)雜的指令格式、多種指令字長度和多種尋址方式,但指令功能強(qiáng)大,單條指令的執(zhí)行速度較慢。為了完成題目所要求的功能,模型機(jī)的指令系統(tǒng)共設(shè)計了8條不同的功能指令。指令字長度有單字長(1個字節(jié))和雙字長(2個字節(jié))兩種;尋址方式有三種,分別是寄存器尋址、直接尋址和立即尋址。這8條指令是IN1(輸入),MOV(將一個數(shù)送入寄存器),CMP(比較),JB(小于跳轉(zhuǎn)),ADD(兩數(shù)相加),INC(自增1),JMP(無條件跳轉(zhuǎn)),OUT1(輸出)。4.時序產(chǎn)生器的設(shè)計原理及時序波形圖CISC微處理器的時鐘信號Q和清除信號CLR由外部輸入,節(jié)拍脈沖信號Ti由時序產(chǎn)生器產(chǎn)生。圖4-14描述了節(jié)拍脈沖信號與外部時鐘信號、清除信號的時序關(guān)系。由圖3可以看出,節(jié)拍脈沖信號T1、T2、T3、T4實際上是以Q為時鐘輸入信號的計數(shù)狀態(tài)經(jīng)過譯碼器譯碼后生成的,因此可寫出節(jié)拍脈沖信號的邏輯表達(dá)式,并用VHDL語言實現(xiàn)之,然后將它創(chuàng)建為一個元件符號,供頂層電路調(diào)用。圖3T1、T2、T3、T4與CLR、Q之間的時序關(guān)系圖如果系統(tǒng)的時鐘控制信號(即工作脈沖P)是在T1、T2、T3或T4的中間產(chǎn)生,且上升沿有效,則它產(chǎn)生方法是:先將Q取反,再和節(jié)拍脈沖信號Ti相“與”得到。如圖4所示。圖4時鐘控制信號的形成方法5.微程序流程圖根據(jù)模型機(jī)的數(shù)據(jù)通路圖(圖1)以及所有指令在CISC模型機(jī)中的操作過程,畫出所有機(jī)器指令的微程序流程圖,如圖5所示。圖中每個框為一個CPU周期(包含T1~T4共4個節(jié)拍脈沖周期)對應(yīng)于一條微指令??蛑猩厦娴氖M(jìn)制數(shù)表示的是當(dāng)前微指令在控制存儲器中的微地址;框中下面的十六進(jìn)制數(shù)表示的是當(dāng)前微指令的后續(xù)微坡地。在編寫微指令時,圖中的菱形框從屬于它上面的方框。圖5CISC模型機(jī)中所有機(jī)器指令的微程序流程6.匯編語言源程序算法思想為:采用R0寄存器存放從開關(guān)輸入的任意一個整數(shù),R1存放準(zhǔn)備參加累加運算的奇數(shù),R2存放累加的和,用一個循環(huán)程序?qū)崿F(xiàn)如下:五、模型機(jī)的各單元VHDL源程序ALU的VHDL源程序ALU.vhdLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.all;ENTITYALUISPORT(A:INSTD_LOGIC_VECTOR(7DOWNTO0);B:INSTD_LOGIC_VECTOR(7DOWNTO0);S1,S0:INSTD_LOGIC;BCDOUT:OUTSTD_LOGIC_VECTOR(7DOWNTO0);CY,ZI:OUTSTD_LOGIC);ENDALU;ARCHITECTUREAOFALUISSIGNALAA,BB,TEMP:STD_LOGIC_VECTOR(8DOWNTO0);BEGINPROCESS(S1,S0)BEGINIF(S1='0'ANDS0='0')THEN--ADDAA<='0'&A;BB<='0'&B;TEMP<=AA+BB;BCDOUT<=TEMP(7DOWNTO0);CY<=TEMP(8);IF(TEMP="100000000")THENZI<='1';ELSEZI<='0';ENDIF;ELSIF(S1='0'ANDS0='1')THEN--CMP(SUB)BCDOUT<=A-B;IF(A<B)THENCY<='1';ZI<='0';ELSIF(A=B)THENCY<='0';ZI<='1';ELSECY<='0';ZI<='0';ENDIF;ELSIF(S1='1'ANDS0='0')THEN--INCAA<='0'&A;TEMP<=A+1;BCDOUT<=TEMP(7DOWNTO0);CY<=TEMP(8);IF(TEMP="100000000")THENZI<='1';ELSEZI<='0';ENDIF;ELSEBCDOUT<="00000000";CY<='0';ZI<='0';ENDIF;ENDPROCESS;ENDA;狀態(tài)條件寄存器的VHDL源程序LS74.vhdLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYLS74ISPORT(LDFR:INSTD_LOGIC;CY,ZI:INSTD_LOGIC;FC,FZ:OUTSTD_LOGIC);ENDLS74;ARCHITECTUREAOFLS74ISBEGINPROCESS(LDFR)BEGINIF(LDFR'EVENTANDLDFR='1')THENFC<=CY;FZ<=ZI;ENDIF;ENDPROCESS;ENDA;LS273單元設(shè)計的VHDL語言程序8位數(shù)據(jù)寄存器的VHDL源程序LS273.vhdLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYLS273ISPORT(D:INSTD_LOGIC_VECTOR(7DOWNTO0);CLK:INSTD_LOGIC;O:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDLS273;ARCHITECTUREAOFLS273ISBEGINPROCESS(CLK)BEGINIF(CLK'EVENTANDCLK='1')THENO<=D;ENDIF;ENDPROCESS;ENDA;1:2分配器的VHDL源程序FEN2.vhdLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYFEN2ISPORT(WR,LED_B:INSTD_LOGIC;X:INSTD_LOGIC_VECTOR(7DOWNTO0);W1,W2:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDFEN2;ARCHITECTUREAOFFEN2ISBEGINPROCESS(LED_B,WR)BEGINIF(LED_B='0'ANDWR='0')THENW2<=X;ELSEW1<=X;ENDIF;ENDPROCESS;ENDA;3選1數(shù)據(jù)選擇器單元VHDL源程序MUX3.vhdLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYMUX3ISPORT(ID:INSTD_LOGIC_VECTOR(7DOWNTO0);SW_B,CS:INSTD_LOGIC;N1,N2:INSTD_LOGIC_VECTOR(7DOWNTO0);EW:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDMUX3;ARCHITECTUREAOFMUX3ISBEGINPROCESS(SW_B,CS)BEGINIF(SW_B='0')THENEW<=ID;ELSIF(CS='0')THENEW<=N2;ELSEEW<=N1;ENDIF;ENDPROCESS;ENDA;4選1數(shù)據(jù)選擇器單元VHDL源程序MUX4.vhdLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYMUX4ISPORT(C,D,E,F:INSTD_LOGIC;X1,X2,X3,X4:INSTD_LOGIC_VECTOR(7DOWNTO0);W:outSTD_LOGIC_VECTOR(7DOWNTO0));ENDMUX4;ARCHITECTUREAOFMUX4ISSIGNALSEL:STD_LOGIC_VECTOR(3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論