logisim實(shí)驗(yàn)-邏輯電路實(shí)習(xí)題目_第1頁
logisim實(shí)驗(yàn)-邏輯電路實(shí)習(xí)題目_第2頁
logisim實(shí)驗(yàn)-邏輯電路實(shí)習(xí)題目_第3頁
logisim實(shí)驗(yàn)-邏輯電路實(shí)習(xí)題目_第4頁
logisim實(shí)驗(yàn)-邏輯電路實(shí)習(xí)題目_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Logisim實(shí)驗(yàn)中國(guó)地質(zhì)大學(xué)信息工程學(xué)院2021-3-26

修訂歷史記錄日期版本號(hào)修改說明修改人核準(zhǔn)人2021-4-2初稿陳亮2021-4-20增加fsm部分陳亮2021-4-27修改fsm部分陳亮2021-3-26補(bǔ)充部分中文缺失的地方,增加中文翻譯陳亮2021-3-31補(bǔ)充子電路和分解器的說明陳亮2021-10-21刪減部分實(shí)驗(yàn)〔觸發(fā)器〕陳亮2021-9-21修改部分ALU的內(nèi)容〔不自己做這個(gè)部件〕陳亮

目錄1 熟悉環(huán)境 4 根本功能: 4 練習(xí)二(ToolBar主要功能) 4 練習(xí)子電路 5 練習(xí)分解器Splitter 5 練習(xí)〔傳說中的選擇器啊〕 5 練習(xí) 6 練習(xí) 6 練習(xí) 62 FSM 6 根底:根據(jù)真值表設(shè)計(jì)電路 6 看電路,分析功能 7 看功能,分析電路〔分析伯克利實(shí)驗(yàn)八的第一個(gè)實(shí)驗(yàn)的電路〕 8 伯克利實(shí)驗(yàn)十的Part(A):AdvancedLogisim的ExerciseA.1:StoringState 83 ALU 114 CPU〔2次實(shí)驗(yàn)課,伯克利prj3〕 11

熟悉環(huán)境學(xué)習(xí)使用logisim,熟悉根本功能。根本功能:學(xué)會(huì)使用toolbar上的功能。學(xué)會(huì)增加子電路,并可以將子電路放到main電路中或者其他電路中使用學(xué)會(huì)使用時(shí)鐘學(xué)會(huì)使用splitter,理解帶寬的含義。這部分需要實(shí)現(xiàn)一個(gè)8位帶寬的輸入,其中2位輸入到一個(gè)與門,中間3位輸入到一個(gè)3輸入的或門,剩下三位輸入到其他已有的門電路。練習(xí)二(ToolBar主要功能)我們將通過創(chuàng)立一個(gè)非常簡(jiǎn)單的電路來感受一下如何放置門和電線。首先,單擊“ANDgate〞按鈕。這時(shí)鼠標(biāo)附近會(huì)出現(xiàn)一個(gè)與門的圖標(biāo),在主電路圖窗口任意位置單擊鼠標(biāo)以放置與門。單擊“InputPin〞按鈕。在你的與門左側(cè)放置兩個(gè)輸入(inputpin)。單擊“OnputPin〞按鈕。在你的與門右側(cè)放置一個(gè)輸出(outputpin)。這時(shí)你的電路圖看上去可能如以下圖所示:?jiǎn)螕簟癢iretool〞按鈕。單擊并拖動(dòng)它,以便將輸入端和與門的左邊相連。假設(shè)你只畫垂直電線和程度電線的話,這一步可以分成幾步。首先畫一條程度電線,放開鼠標(biāo),單擊并拖動(dòng)電線的末端畫一條垂直電線。你可以把電線連接到與門左邊的任意一條腿上。重復(fù)這一過程,把與門的輸出和LED相連。這時(shí)你的電路圖看上去可能如以下圖所示:最后,單擊“Poke〞按鈕,試著單擊電路圖中的輸入,看看會(huì)發(fā)生什么。這和你想象中的與門的功能相符么?練習(xí)子電路正如C程序可以包含幫助函數(shù)一樣,一個(gè)電路圖中也可以含有子電路。在這部分中,我們會(huì)創(chuàng)立幾個(gè)子電路,并示范一下他們的使用。新建一個(gè)電路圖〔FileNew〕。新建一個(gè)子電路〔ProjectAddCircuit〕,并命名為NAND。在新電路圖窗口中,你可以看見你剛創(chuàng)立的含有兩個(gè)輸入一個(gè)輸出NAND電路。在屏幕左側(cè)電路選擇板中雙擊“main〞以返回主電路圖。這時(shí),最初的空白電路圖會(huì)顯示出來,而NAND電路圖那么被保存。單擊列表中的“NAND〞,告訴Logisim你想吧“NAND〞電路添加到主電路中。試著把“NAND〞電路放到主電路圖中。假設(shè)你正確地做到了,你會(huì)看到一個(gè)左邊含兩個(gè)輸入右邊含一個(gè)輸出的門。試著把輸入輸出相連,看看它是否和想象中一樣工作。重復(fù)這些步驟,創(chuàng)立其他幾個(gè)子電路:NOR,XOR,2to1MUX,和4to1MUX。除了AND,OR和NOT外,不要使用其他內(nèi)置門。但是,一旦你創(chuàng)立了一個(gè)子電路,你可以使用它來創(chuàng)立其他電路。提示:不純熟者可以查看講義學(xué)習(xí)如何創(chuàng)立。你可能需要使用一些你定制的電路來設(shè)計(jì)其他電路。練習(xí)分解器Splitter它是你這次課上需要使用的最根本的工具之一。為了示范如何使用它,你需要?jiǎng)?chuàng)立一個(gè)當(dāng)最高有效位和最低有效位為1時(shí)輸出1的電路。創(chuàng)立一個(gè)名為“Exer2〞的子電路。在該電路中添加一個(gè)8位輸入。在該電路中添加一個(gè)1位輸入。選擇“Splitter〞電路,這個(gè)電路可以將一根電線分解成幾根小電線。在放置“Splitter〞電路前,將“BitWidthIn〞屬性改為8,“FanOut〞屬性改為3。這時(shí)假設(shè)將鼠標(biāo)移到電路圖上,光標(biāo)看上去就像如今,選擇哪些位輸出到輸入的哪一部分。最低有效位為第0位,最高有效位為第7位。改變第1、2、6位輸出到輸入1?;蛘?,選擇“None〞,使得第1、2、6位不輸出到任一個(gè)輸入。配置完分解器后就可以把它放置在電路中。再添加一個(gè)與門,該電路就完成了。選擇器〔可不做〕實(shí)現(xiàn)一個(gè)二路的復(fù)用器的子電路。問題:假設(shè)信號(hào)是一位,而備選的兩個(gè)輸入時(shí)32bit,電路怎么做?練習(xí)鎖存器〔可不做〕實(shí)現(xiàn)如上子電路。練習(xí)觸發(fā)器〔可不做〕實(shí)現(xiàn)一個(gè)一位的觸發(fā)器,注意要用時(shí)鐘。用logisim的時(shí)鐘實(shí)驗(yàn)一下結(jié)果,看看Q是否存儲(chǔ)值。用這個(gè)子電路實(shí)現(xiàn)一個(gè)32位的存放器。練習(xí)〔可不做〕實(shí)現(xiàn)一個(gè)3-8譯碼器。FSM根底:根據(jù)真值表設(shè)計(jì)電路上課時(shí),你只是看到了真值表。在這次實(shí)驗(yàn)中,通過Logisim,你有足夠的工具來實(shí)現(xiàn)真值表。假定真值表如以下圖所示,完成以下任務(wù)。in1in0|out1out000|0101|1010|1111|00從上面的真值表中推導(dǎo)出out1和out0的標(biāo)準(zhǔn)的SOP布爾表達(dá)式。根據(jù)布爾代數(shù)中的公式簡(jiǎn)化布爾表達(dá)式〔看講義或者google來復(fù)習(xí)這部分內(nèi)容〕。得到最簡(jiǎn)式后,你可以檢查一下該等式是否滿足眾所周知的那些門的形式。在Logisim的主電路圖中實(shí)現(xiàn)該最簡(jiǎn)式??梢噪S意使用你之前設(shè)計(jì)的那些子電路。務(wù)必使用“Text〞工具來注記你的輸入輸出。選擇“Text〞工具工具,在電路圖上單擊,并輸入文本即可。假設(shè)輸錯(cuò)了,你可以通過"selection"工具來選中文本對(duì)象,編輯位于屬性電路閱讀器下側(cè)的屬性列表中的“Text〞屬性??措娐?,分析功能下面的FSM電路,假設(shè)初始狀態(tài)Register1=1;register2=0理解下面fsm的功能,繪出波形圖〔參考ppt〕寫出前5個(gè)周期兩個(gè)存放器的值看功能,分析電路〔分析伯克利實(shí)驗(yàn)八的第一個(gè)實(shí)驗(yàn)的電路,可不做〕Considerthedesignofafinitestatemachine(FSM)withtwo1-bitinputs(clkandCE),andone2-bitoutput(X).clkistheclocksignalandCEisthe"countenable"signal.WhileCE=1,theFSMbehavesasa"binarycounter",i.e.itsoutputcyclesthroughthepattern00,01,1011,00,movingfromoneoutputvaluetothenextoneachpositiveedgeofclk.IfCE=0theoutputvalueremainsunchanged.NotethatFSMhasnoresetinputsignal.Youcanassumethatitstartsupinanylegalstate.SketchthestatetransitiondiagramthatrepresentsthebehaviorofthisFSMinthestyleofthelecturenotes.考慮設(shè)計(jì)一個(gè)FSM,有2個(gè)1位的輸入〔clk和CE〕,還有一個(gè)2位的輸出〔X〕。clk是時(shí)鐘信號(hào),CE是“計(jì)數(shù)使能〞信號(hào)。當(dāng)CE=1的時(shí)候,F(xiàn)SM的行為就是一個(gè)二進(jìn)制計(jì)數(shù)器,它的輸出一直就是按照00,01,10,11,00狀態(tài)進(jìn)展變化,在每個(gè)上升沿時(shí)鐘將狀態(tài)轉(zhuǎn)換到下一狀態(tài)。當(dāng)CE=0的時(shí)候,輸出值不變。注意FSM沒有復(fù)位信號(hào),你可以以任何合法的狀態(tài)開始。根據(jù)上面描繪,繪制狀態(tài)轉(zhuǎn)移圖分析FSM,并考慮一下實(shí)現(xiàn)的問題〔只考慮,不實(shí)現(xiàn)〕。伯克利實(shí)驗(yàn)十的Part(A):AdvancedLogisim的ExerciseA.1:StoringState(可以不做)Let'simplementthecircuityouworkedoninLab8.Thedifferencebetweenthiscircuitandthecircuitsyou'vebuiltforlabsofaristhatyouneedsomeregisters.Thefollowingwillshowyouhowtoaddregisterstoyourcircuit.我們?nèi)缃耖_始考慮實(shí)現(xiàn)2.2中的那個(gè)FSM,這2個(gè)電路和我們以前實(shí)現(xiàn)的電路最大的區(qū)別在于如今我們需要用到存放器?!布慈缃竦碾娐凡辉偈菃渭兊慕M合邏輯電路〕。下面的提示可以告訴你如何在自己的電路中使用軟件內(nèi)置的存放器。Createanewsubcircuit(Project->AddCircuit).Namethisnewsubcircuit,Fib8.創(chuàng)立一個(gè)新的子電路,假設(shè)名字叫fib8LoadintheArithmeticLibrary(GotoProject->LoadLibrary->BuiltinLibraryandselect"Arithmetic").Thislibrarycontainselementsthatwillperformbasicmathematicaloperations.Whenyouloadalibrary,thecircuitbrowseratleftwillhaveanew"Arithmetic"folder.菜單“Project〞->“LoadLibrary〞->“BuiltInLibrary〞,選擇“Arithmetic〞,這個(gè)庫包含一些根本的算術(shù)操作電路。當(dāng)你load一個(gè)庫的時(shí)候,左邊的電路列表就會(huì)顯示出一個(gè)“Arithmetic〞文件夾。其他的你自己試試看?Selecttheaddersubcircuitfromthe"Arithmetic"libraryandplacetheadderintoyourFib8subcircuit選擇"Arithmetic"中的一個(gè)加法器子電路.,將它放在Fib8電路中LoadintheMemoryLibrary(GotoProject->LoadLibrary->BuiltinLibraryandselect"Memory").Thislibrarycontainsmemoryelementsusedtokeepstateinacircuit.Anew"Memory"folderwillappearinthecircuitbrowser.按照上面類似的方法加載“Memory〞庫,這個(gè)庫包含一些存儲(chǔ)電路。加載成功后,你在左邊列表中會(huì)看到“Memory〞文件夾。Selecttheregisterfromthe"Memory"folderandplacetworegistersintoyoursubcircuit.Belowisanimagediagramingthepartsofaregister.從“Memory〞庫中選擇存放器,增加兩個(gè)存放器到我們的子電路中來。存放器應(yīng)該是下面這個(gè)樣子。注意reset和時(shí)鐘很近,別弄混了。Connectaclocktoyourregister.Youcanfindtheclockcircuitelementinthe"Base"folderinthecircuitbrowser.為存放器連接上時(shí)鐘。時(shí)鐘電路在“base〞節(jié)點(diǎn)下尋找,你懂的。ConnectthetworegistersandaddertogetherbasedonthediagraminLab8.Youmaynoticethatwhenyouconnecttheaddertoaregister,youwillgeta"Incompatiblewidths"error.Thismeansthatyourwireistryingtoconnecttwopinstogetherwithdifferentbitwidths.Ifyouclickononetheadderwiththe"Selection"tool,youwillnoticethatintheboxbelowcircuitbrowserwillhaveafieldcalled"DataBitWidth".Thisfieldcontrolsthenumberofbitsthetheadderwilladd.Changethisfieldto8andthe"Incompatiblewidths"errorshouldnowgoaway.Ingeneral,theboxbelowthecircuitbrowserwilllistthepropertiesofagivencircuitelement.Othercircuitelementswillhaveotherproperties.你可能已經(jīng)注意到當(dāng)你連接加法器到存放器的時(shí)候,可能遇到“Incompatiblewidths〞錯(cuò)誤〔請(qǐng)回憶試驗(yàn)1的1.1的〕。在logisim軟件中,連線兩端的帶寬必須是一樣的……Addthreeoutputpinstoyourcircuitsothatyoumaymonitorwhatcomesoutoftheadderandbothregisters.Thus,bytheend,yourcircuitshouldlooklikeasfollows:增加三個(gè)輸出到你的電路,檢測(cè)加法器和存放器的值。最后,你的電路可能做成如下這個(gè)樣子〔這是的電路〕Nowletsseeifyoubuiltyourcircuitcorrectly.好,我們?nèi)缃窨梢詼y(cè)試一下你的電路是否正確。假設(shè)正確,你也可以來實(shí)現(xiàn)以下2.2的FSM的電路。電路有了時(shí)鐘后,大家是不是不知道如何測(cè)試了呢?下面這段步驟,是告訴你如何使用你的子電路,并用軟件功能模擬時(shí)鐘,來檢測(cè)電路實(shí)現(xiàn)的,大家自己看看。Gobacktothe"main"subcircuitbydoubleclickingon"main"inthecircuitbrowser.Changethe"Facing"propertytoanotherdirection.Anycircuitwiththe"Facing"propertycanberotatedtoaccomodatewiresasyouneedthem.Thiswilldefinatelybeusefulwhenyoudoyourproject.PlaceyourFib8subcircuitintothemainsubcircuit.SelecttheFib8subcircuityoujustplacedintomain.ConnectoutputpinstotheFib8subcircuit.Outputpinsareorderedtoptobottom,lefttoright.Thus,ifyoufollowedtheschematicabove,thenthetoppinontherightsideoutputsthevalueoneofthetopregister,themiddlepinistheoutputofadder,andthebottompinistheoutputofthebottomregister.RightclickonyourFib8subcircuit,andselect"ViewFib8".ThisistheONLYmethodtopreservingstate.Double-clickingonthecircuitatthecircuitbrowseratleftmakeslogisimthinkyouwanttoeditthecircuitinsteadofjustcheckingwhatstatethecircuithas.Note:YoucanuseSimulate->GoInToState->*CircuitName*,butthatallowsyougointothefirstcircuitofthattype.IfyouplacedtwoFib8circuitsdown,itonlytakesyoutothefirstFib8circuittoputdown.Initializetheregistervaluesto1.Youcandothisbyfirst,clickontheregistervaluewiththepoketool.Then,typethehexvaluein.Toreturntothemaincircuitwhilepreservingstate,gotoSimulate->GoOutToState->main.Alternatively,youcanholdControlkeyandpressUp-Arrow.NowstartrunningyourcircuitbygoingtoSimulate->TicksEnabled.Yourcircuitshouldnowbeoutputtingthefibonachinumbersinbinaryform.Ifyouwanttorunyourcircuitfaster,youcanchangethetickfrequencyinSimulate->TickFrequency.ALU實(shí)現(xiàn)hw5對(duì)應(yīng)的8位ALU,可以不實(shí)現(xiàn)溢出。注意參考附錄B中相關(guān)章節(jié)。要?jiǎng)?wù)實(shí)現(xiàn)加、減、或,判等四種操作。說明:為了支持第四部分的內(nèi)容,僅僅要?jiǎng)?wù)實(shí)現(xiàn)add、sub、or,要求可以支持equal信號(hào)輸出CPU〔2次實(shí)驗(yàn)課,伯克利prj3〕為了考慮大家體力有限,我們不實(shí)現(xiàn)32位的CPU?!惨部梢詤⒖肌硨?shí)現(xiàn)prj3對(duì)應(yīng)的8位CPU。這是體力活和腦力活的結(jié)合體,體會(huì)一下一個(gè)可以自動(dòng)繪制電路軟件的必要性吧:〕指令設(shè)計(jì)如下:一共支持7個(gè)指令:lw,sw,add,sub,ori,beq,jmp留給存放器的位數(shù)只有1位,所以只有2個(gè)通用存放器不支持移位操作。I類型指令中立即數(shù)位數(shù)為3,J類型指令地址5位詳細(xì)指令編碼如下指令OpcodeRsRtRdFunc76543210Add00000Sub00001指令OpcodeRsRtIMM/AddrOri001Lw010Sw011Beq100指令OpcodeTargetAddrJmp101設(shè)計(jì)2個(gè)8位存放器的存放器堆支持add、sub、or的ALU〔可以先用現(xiàn)成的組件,而不自己實(shí)現(xiàn);當(dāng)然自己實(shí)現(xiàn)是最好的〕擴(kuò)展器〔3位的立即數(shù)擴(kuò)展到8位〕,兩種擴(kuò)展方式PC的兩種特殊擴(kuò)展方式Ram的試用試驗(yàn)LogisimRAMmodulescanbefoundinthebuilt-inmemorylibrary.BecausetheRAMmoduledoesn'tlookliketheidealizedmemorywesawinlecture,youmayfeelconfusedaboutwheretobegin.ThepictureaboveshowsagoodwaytowireupacircuittouseRAM.Hereareafewthingstoknowbeforeyougetstarted."sel"determineswhetherornottheRAMmoduleisactive.WewillprobablynotrunintoanycaseswhereweneedtoturnourRAMoff,soyoucanwireaconstant1tothis."A"chooseswhichaddresswillbeaccessed.Theclockinputprovidessynchronizationformemorywrites.Besuretousethesameclockhereasyoudoforyourregfile."ld"determineswhetherwearereadingorwritingtomemory.If"out"ishigh,then"D"willbedrivenwiththecontentsofmemoryataddress"A"."clr"willinstantlysetallcontentsofmemoryto0ifhigh.Youshouldwireamanualswitchsoyoucanclearoutmemorywheneveryouwanttorestartatest."D"actsasbothdatainanddataoutforthismodule.Thismeansyouhavetobecarefulnottodrivethislinefromtwoconflictingsources,whichinthis

溫馨提示

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

評(píng)論

0/150

提交評(píng)論