专题logisim实验逻辑电路实习题目.docx
- 文档编号:23144601
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:16
- 大小:99.09KB
专题logisim实验逻辑电路实习题目.docx
《专题logisim实验逻辑电路实习题目.docx》由会员分享,可在线阅读,更多相关《专题logisim实验逻辑电路实习题目.docx(16页珍藏版)》请在冰豆网上搜索。
专题logisim实验逻辑电路实习题目
[专题]logisim实验——逻辑电路实习题目
Logisim实验
中国地质大学信息工程学院
2010-3-26
修订历史记录
日期版本号修改说明修改人核准人2009-4-2初稿陈亮2009-4-20增加fsm部分陈亮2010-4-27修改fsm部分陈亮
补充部分中文缺失的地方,增加中文翻2011-3-26陈亮
译
2011-3-31补充子电路和分解器的说明陈亮2012-10-21删减部分实验(触发器)陈亮
修改部分ALU的内容(不自己做这个部2013-9-21陈亮
件)
1熟悉环境................................................................................................................4
1.1基本功能:
..................................................................................................4
1.2练习二(ToolBar主要功能).............................................................................4
1.3练习子电路..................................................................................................5
1.4练习分解器Splitter......................................................................................5
1.5练习(传说中的选择器啊).........................................................................5
1.6练习............................................................................................................6
1.7练习............................................................................................................6
1.8练习............................................................................................................62FSM.......................................................................................................................6
2.1基础:
根据真值表设计电路.........................................................................6
2.2看电路,分析功能.......................................................................................7
2.3看功能,分析电路(分析伯克利实验八的第一个实验的电路).....................8
2.4伯克利实验十的Part(A):
AdvancedLogisim的ExerciseA.1:
StoringState..........83ALU......................................................................................................................124CPU(2次实验课,伯克利prj3).........................................................................12
1熟悉环境
学习使用logisim,熟悉基本功能。
1.1基本功能:
学会使用toolbar上的功能。
学会增加子电路,并能够将子电路放到main电路中或者其他电路中使用,学会使用时钟
学会使用splitter,理解带宽的含义。
这部分需要实现一个8位带宽的输入,其中2位输
入到一个与门,中间3位输入到一个3输入的或门,剩下三位输入到其他已有的门电路。
1.2练习二(ToolBar主要功能)
我们将通过创建一个非常简单的电路来感受一下如何放置门和电线。
1、首先,单击“ANDgate”按钮。
这时鼠标附近会出现一个与门的图标,在主电路
图窗口任意位置单击鼠标以放置与门。
2、单击“InputPin”按钮。
在你的与门左侧放置两个输入(inputpin)。
3、单击“OnputPin”按钮。
在你的与门右侧放置一个输出(outputpin)。
这时你的电
路图看上去可能如下图所示:
4、单击“Wiretool”按钮。
单击并拖动它,以便将输入端和与门的左边相连。
如果
你只画垂直电线和水平电线的话,这一步可以分成几步。
首先画一条水平电线,放开
鼠标,单击并拖动电线的末端画一条垂直电线。
你可以把电线连接到与门左边的任意
一条腿上。
重复这一过程,把与门的输出和LED相连。
这时你的电路图看上去可能如
下图所示:
5、最后,单击“Poke”按钮,试着单击电路图中的输入,看看会发生什么。
这和你想象
中的与门的功能相符么,
1.3练习子电路
正如C程序可以包含帮助函数一样,一个电路图中也可以含有子电路。
在这部分中,我们会创建几个子电路,并示范一下他们的使用。
1、新建一个电路图(File,New)。
2、新建一个子电路(Project,AddCircuit),并命名为NAND。
3、在新电路图窗口中,你可以看见你刚创建的含有两个输入一个输出NAND电路。
4、在屏幕左侧电路选择板中双击“main”以返回主电路图。
这时,最初的空白电路图会显示
出来,而NAND电路图则被保存。
5、单击列表中的“NAND”,告诉Logisim你想吧“NAND”电路添加到主电路中。
6、试着把“NAND”电路放到主电路图中。
如果你正确地做到了,你会看到一个左边含两个
输入右边含一个输出的门。
试着把输入输出相连,看看它是否和想象中一样工作。
7、重复这些步骤,创建其他几个子电路:
NOR,XOR,2to1MUX,和4to1MUX。
除了AND,
OR和NOT外,不要使用其他内置门。
但是,一旦你创建了一个子电路,你可以使用它来
创建其他电路。
提示:
不熟练者可以查看讲义学习如何创建。
你可能需要使用一些你定制的电路来设计其
他电路。
1.4练习分解器Splitter
它是你这次课上需要使用的最基本的工具之一。
为了示范如何使用它,你需要创建一个当最高有效位和最低有效位为1时输出1的电路。
1、创建一个名为“Exer2”的子电路。
2、在该电路中添加一个8位输入。
3、在该电路中添加一个1位输入。
4、选择“Splitter”电路,这个电路可以将一根电线分解成几根小电线。
5、在放置“Splitter”电路前,将“BitWidthIn”属性改为8,“FanOut”属性改为3。
这时如
果将鼠标移到电路图上,光标看上去就像
6、现在,选择哪些位输出到输入的哪一部分。
最低有效位为第0位,最高有效位为第7位。
改变第1、2、6位输出到输入1。
或者,选择“None”,使得第1、2、6位不输出到任一
个输入。
7、配置完分解器后就可以把它放置在电路中。
再添加一个与门,该电路就完成了。
1.5选择器(可不做)
实现一个二路的复用器的子电路。
问题:
如果信号是一位,而备选的两个输入时32bit,电路怎么做,
1.6练习锁存器(可不做)
实现如上子电路。
1.7练习触发器(可不做)
实现一个一位的触发器,注意要用时钟。
用logisim的时钟实验一下结果,看看Q是否存储值。
用这个子电路实现一个32位的寄存器。
1.8练习(可不做)
实现一个3-8译码器。
2FSM
2.1基础:
根据真值表设计电路
上课时,你只是看到了真值表。
在这次实验中,通过Logisim,你有足够的工具来实现真值表。
假定真值表如下图所示,完成以下任务。
in1in0|out1out0
00|01
01|10
10|11
11|00
1、从上面的真值表中推导出out1和out0的规范的SOP布尔表达式。
2、根据布尔代数中的公式简化布尔表达式(看讲义或者google来复习这部分内容)。
得到最
简式后,你可以检查一下该等式是否满足众所周知的那些门的模式。
3、在Logisim的主电路图中实现该最简式。
可以随意使用你之前设计的那些子电路。
务必使
用“Text”工具来注记你的输入输出。
选择“Text”工具工具,在电路图上单击,
并输入文本即可。
如果输错了,你可以通过"selection"工具来选中文本对象,编辑位
于属性电路浏览器下侧的属性列表中的“Text”属性。
2.2看电路,分析功能
下面的FSM电路,假设初始状态Register1=1;register2=0,理解下面fsm的功能,绘出波形图(参考ppt)
写出前5个周期两个寄存器的值
2.3看功能,分析电路(分析伯克利实验八的第一个实验的电路,
可不做)
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.
考虑设计一个FSM,有2个1位的输入(clk和CE),还有一个2位的输出(X)。
clk
是时钟信号,CE是“计数使能”信号。
当CE=1的时候,FSM的行为就是一个二进制计
数器,它的输出一直就是按照00,01,10,11,00状态进行变化,在每个上升沿时钟将状
态转换到下一状态。
当CE=0的时候,输出值不变。
注意FSM没有复位信号,你可以以任何合法的状态开始。
根据上面描述,绘制状态转移图分析FSM,并考虑一下实现的问题(只考虑,不实现)。
2.4伯克利实验十的Part(A):
AdvancedLogisim的Exercise
A.1:
StoringState(可以不做)
以下是网络上下载的A.1
Let'simplementthecircuityouworkedoninLab8.Thedifferencebetweenthiscircuitandthecircuitsyou'vebuiltforlabsofaristhatyouneedsomeregisters.Thefollowingwillshowyouhowtoaddregisterstoyourcircuit.
我们现在开始考虑实现2.1和2.2中的那个FSM,这2个电路和我们以前实现的电路
最大的区别在于现在我们需要用到寄存器。
(即现在的电路不再是单纯的组合逻辑电
路)。
下面的提示可以告诉你如何在自己的电路中使用软件内置的寄存器。
1.Createanewsubcircuit(Project->AddCircuit).Namethisnewsubcircuit,Fib8.创建一个新的
子电路,假设名字叫fib8
2.LoadintheArithmeticLibrary(GotoProject->LoadLibrary->BuiltinLibraryandselect
"Arithmetic").Thislibrarycontainselementsthatwillperformbasicmathematicaloperations.
Whenyouloadalibrary,thecircuitbrowseratleftwillhaveanew"Arithmetic"folder.菜单
“Project”->“LoadLibrary”->“BuiltInLibrary”,选择“Arithmetic”,这个库包含一些基
本的算术操作电路。
当你load一个库的时候,左边的电路列表就会显示出一个“Arithmetic”
文件夹。
其他的你自己试试看,
3.Selecttheaddersubcircuitfromthe"Arithmetic"libraryandplacetheadderintoyourFib8
subcircuit选择"Arithmetic"中的一个加法器子电路.,将它放在Fib8电路中
4.LoadintheMemoryLibrary(GotoProject->LoadLibrary->BuiltinLibraryandselect"Memory").
Thislibrarycontainsmemoryelementsusedtokeepstateinacircuit.Anew"Memory"folder
willappearinthecircuitbrowser.按照上面类似的方法加载“Memory”库,这个库包含一些
存储电路。
加载成功后,你在左边列表中会看到“Memory”文件夹。
5.Selecttheregisterfromthe"Memory"folderandplacetworegistersintoyoursubcircuit.Below
isanimagediagramingthepartsofaregister.从“Memory”库中选择寄存器,增加两个寄存
器到我们的子电路中来。
寄存器应该是下面这个样子。
注意reset和时钟很近,别弄混了。
6.Connectaclocktoyourregister.Youcanfindtheclockcircuitelementinthe"Base"folderinthe
circuitbrowser.为寄存器连接上时钟。
时钟电路在“base”节点下寻找,你懂的。
7.ConnectthetworegistersandaddertogetherbasedonthediagraminLab8.两个寄存器和加
法器连接起来,实现2.1和2.2的电路。
Youmaynoticethatwhenyouconnecttheaddertoaregister,youwillgeta"Incompatiblewidths"error.Thismeansthatyourwireistryingtoconnecttwopinstogetherwithdifferentbitwidths.Ifyouclickononetheadderwiththe"Selection"tool,youwillnoticethatintheboxbelowcircuitbrowserwillhaveafieldcalled"DataBitWidth".Thisfieldcontrolsthenumberofbitsthetheadderwilladd.Changethisfieldto8andthe"Incompatiblewidths"errorshouldnowgoaway.
Ingeneral,theboxbelowthecircuitbrowserwilllistthepropertiesofagivencircuitelement.Othercircuitelementswillhaveotherproperties.
你可能已经注意到当你连接加法器到寄存器的时候,可能遇到“Incompatible
widths”错误(请回顾试验1的1.1的)。
在logisim软件中,连线两端的带
宽必须是相同的„„
8.Addthreeoutputpinstoyourcircuitsothatyoumaymonitorwhatcomesoutoftheadderandbothregisters.Thus,bytheend,yourcircuitshouldlooklikeasfollows:
增加三个输出到你的
电路,检测加法器和寄存器的值。
最后,你的电路可能做成如下这个样子(这是2.2的电
路)
Nowletsseeifyoubuiltyourcircuitcorrectly.好,我们现在可以测试一下
你的电路是否正确。
如果正确,你也可以来实现以下2.2的FSM的电路。
电路有了时钟后,大家是不是不知道如何测试了呢,下面这段步骤,是告诉你如何使
用你的子电路,并用软件功能模拟时钟,来检测电路实现的,大家自己看看。
1.Gobacktothe"main"subcircuitbydoubleclickingon"main"inthecircuitbrowser.
2.Changethe"Facing"propertytoanotherdirection.Anycircuitwiththe"Facing"propertycanbe
rotatedtoaccomodatewiresasyouneedthem.Thiswilldefinatelybeusefulwhenyoudoyour
project.
3.PlaceyourFib8subcircuitintothemainsubcircuit.
4.SelecttheFib8subcircuityoujustplacedintomain.
5.ConnectoutputpinstotheFib8subcircuit.Outputpinsareorderedtoptobottom,lefttoright.
Thus,ifyoufollowedtheschematicabove,thenthetoppinontherightsideoutputsthevalue
oneofthetopregister,themiddlepinistheoutputofadder,andthebottompinistheoutput
ofthebottomregister.
6.RightclickonyourFib8subcircuit,andselect"ViewFib8".ThisistheONLYmethodto
preservingstate.Double-clickingonthecircuitatthecircuitbrowseratleftmakeslogisimthink
youwanttoeditthecircuitinsteadofjustcheckingwhatstatethecircuithas.
Note:
YoucanuseSimulate->GoInToState->*CircuitName*,butthat
allowsyougointothefirstcircuitofthattype.IfyouplacedtwoFib8
circuitsdown,itonlytakesyoutothefirstFib8circuittoputdown.
7.Initializetheregistervaluesto1.Youcandothisbyfirst,clickontheregistervaluewiththepoke
tool.Then,typethehexvaluein.
8.Toreturntothemaincircuitwhilepreservingstate,gotoSimulate->GoOutToState->main.
Alternatively,youcanholdControlkeyandpressUp-Arrow.
9.NowstartrunningyourcircuitbygoingtoSimulate->TicksEnabled.Yourcircuitshouldnowbe
outputti
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 专题 logisim 实验 逻辑电路 实习 题目