版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《计算机组成原理》课程实践
题目:单周期MIPSCPU设计
学号:__________
姓名:李兴旺
班级:软件20-1______________
学院:计算机科学与工程学院
山东科技大学
2022年6月
课程实践:单周期MIPSCPU设计
1.目的与要求
1)本课程要求根据所学计算机组成原理的相关知识,结合实验内容,基于
EDA环境设计一个简易CPU,并能利用EDA等现代仿真工具建立研究对象的模
型,模拟系统设计的正确性。
2)学生掌握控制器设计的基本原理,能利用硬布线控制器的设计原理在
Logisim平台中设计实现MIPSCPU。
2.实验内容
对照多周期MIPS处理器数据通路图,采用微程序控制器的设计方法实现控
制器,构造多周期MIPS处理器,要求能支持表中的8条MIPS核心指令,最终
设计实现的MIPS处理器能运行实验包中的冒泡排序测试程序,该程序自动在数
据存储器0~15号字单元中写入16个数据,然后利用冒泡排序将数据升序拄序。
实验电路应能自动统计指令数目、时钟周期数。
3.实验过程与方案
OPCunc
jgoooojfcjOiUiU.OP
(OP][FUNC|[疝塞可
指令烽回信号
ttMIPS指令RTL功能描述
1addSrd.Srs.SrtR[$rd]^-R[$rs]+R[$rt]溢出时产生异常,且不修改R[$rd]
2sitSrd,Srs.SrtR[Srd]<-R[$rs]<R[Srt]小于置1,有符号比较
3addi$rt.$rs.immR[$rt]*-R[$rs]+SignExti6t)(imm>溢出产生异常
4IwSrt.ininUSrs)R[$gl^Mem4B(R[$rs]+SignExti6b(imm))
5swSrt.iinin(Srs)Mem4B(R[$El±SignExti6b(imm))<—R[$rt]
6beqSrs.Srt.immif(R[Srs]=RFSrtnPC-PC+SignExtiM{imm,00})
7bne$rs.$rt.inimif{R[Srs]_t=R[Srt])PC-PC+SignExti8b((inim,00})
8syscall系统调用,这里用于停机
4.电路框架
####电路引脚
I信号I输入/输出位宽I功能描述I
CLK|输入|1|时钟信号|
PC|输出|32|程序寄存器的值|
IRI输出|32|当前指令字|
RegWritel输出|1|寄存器文件写使能控制信号|
RDin|输出|32|寄存器文件写入端口的数据|
MemWritel输出|1|存储器写使能控制信号|
MDin|输出|32|存储器写入端口的数据|
4.实验电路测试
指令谙倒邃辑
给出WW的海文型ALU_OP与。P、Fune2赳的对(5关系
给出曾他的涉超女班对防指令许有(8号,LW、SW,BEO.BNE.ADDI.ADD.SLT.SYSCALL,R_TYPE.
注jftRJYPE费示R5?在凝指令,8Y8CALL罡特殊的R型指令,不及于这个类别
31/1全郃通过
一则输出一——实际输出——
RMI
PCIRRDinMe«WMLCntPCIRRDfM[
fkrwxnz>ziz>zi1一f0
IzWWWV2010f£ffffffffff0傲0000066000002910"开f0(
1位00(
fwwyww\/i0e
00000004201100000M0001VWWWM29110060)0f1
000的1
0000000830360200000000001fl000200000008□e300200)0o(
0e吟
1)Me00(
0000000(22100001000000000供0003221000010d
1皿0e(
/wwvwwx<A00
VAAWAAwfVtAAlfvt22310064090000040供OOMwwwXV223100^4)00(
00eg11
0e0(
00000014ae300200000000001佻000500000014ae3002001800(
0Q£/yxc/ee*
vAAwAQuAwA-AIO22100001000000016WOOwfWWw¥YwW>110Q22100G010(
10o*0
/WWWWWk/^O)005(
0O00001C22310004vwwwOeecOoe7eeeeeeic223100e40e21
00^0
00000020ae300200000000001供0008UWAAWZV■3002001eok00(
0000002422100001000000020供00090060002422100001eeme00(
1*J0
fWWVWVW^^z^/wvwwx*>oeo3e(
0000002822310064WVWWUeM0003www40223100e4631(x
e0e
eeoee02cae366206eeeewwi«oeeo3630020010e00(
me
0000003022100001000000930供000c221000010
1eell)M0
/WVWWW14Ag
0000003422310004WWW1ve侥000d22310004041
00000038ae360200000000031佻000eae3002001)eee0
加
0000003c22100001000000640供000f2210000110
<YZk/*t<*>Z>ZlJI/I
UWVW*v2231000400009014e供eeie22310004
6.实验总结与心得
本次实践作业通过logisim平台实现了一个简易的单周期的MIPSCPU,为了
完成本次实验,我查询了大量网络资料,对计算机组成原理的基础知识和一些设
计电路的方法有了更深刻的了解,并对计算机整体的工作原理等有了更加深刻的
认识与理解,
7.附件(源代码)
<?xmlversion="1.0"encoding="UTF-8"standalone="no"?>
<projectsource="2.7.1"version="1.0">
ThisfileisintendedtobeloadedbyLogisim().
<libdesc="#Wiring"name="O">
<toolname="Splitter">
<aname="facing"val="west"/>
<aname="fanout"val="4'7>
<aname="incoming"val="4"/>
</tool>
<toolname="Pin">
<aname="facing"val="north'7>
<aname="labelloc"val="north"/>
<aname="labelfont"val="Dialogplain12"/>
</tool>
<toolname="Probe">
<aname="facing"val="west"/>
<aname="radix"val="10signed"/>
<aname="labelloc"val="north"/>
<aname="labelfont"val="Dialogplain12"/>
</tool>
<toolname="Tunner'>
<aname="facing"val="east"/>
<aname="width"val="32"/>
<aname="label"val="tunnel'7>
<aname="labelfont"val="Dialogplain12"/>
</tool>
<toolname="PullResistor">
<aname="facing"val=,'north"/>
</tool>
<toolname="Clock">
<aname="facing"val="north"/>
<aname="labelfont"val="Dialogplain12"/>
</tool>
<toolname="Constant">
<aname="facing"val="north"/>
<aname="width"val="3'7>
<aname="value"val="OxO"/>
</tool>
</lib>
<libdesc="#Gates"name="l">
<toolname="Buffer">
<aname="width”val="3"/>
</tool>
<toolname="ANDGate">
<aname="facing"val="west"/>
<aname="inputs"val="2"/>
</tool>
<toolname="ORGate">
<aname="inputs"val="2"/>
</tool>
<toolname="NORGate">
<aname="inputs"val="2"/>
</tool>
<toolname="XORGate">
<aname="inputsHval="2"/>
</tool>
<toolname="XNORGate">
<aname="size"val="30"/>
<aname="inputs"val="2"/>
</tool>
<toolname="OddParity">
<aname="facing"val="south"/>
<aname="inputs"val="3"/>
</tool>
<toolname="ControlledBuffer">
<aname="facing"val="north”/>
</tool>
</lib>
<libdesc="#Plexers"name="2">
<toolname="Multiplexer">
<aname="facing"val="north”/>
<aname="width"val="32"/>
</tool>
<toolname="Demultiplexer">
<aname="select"val="5"/>
</tool>
</lib>
<libdesc="#Arithmetic"name="3">
<toolname="Subtractor">
<aname=*'width"val="16"/>
</tool>
<toolname="Multiplier">
<aname="width"
</tool>
<toolname="Divider">
<aname="width"val="16"/>
</tool>
<toolname="Negator">
<aname="width"val="l"/>
</tool>
<toolname="Comparator">
<aname="width"val="16'7>
</tool>
</lib>
<libdesc="#Memory"name="4">
<toolname="Register">
<aname="width"val="32"/>
</tool>
<toolname="ROM">
<aname="contents">addr/data:88
0
</a>
</tool>
</lib>
<libdesc="#l/O"name="5"/>
<libdesc="#Base"name="6">
<toolname="TextTool">
<aname="text"val="'7>
<aname="font"val="SansSerifplain12"/>
<aname="halign"val="center"/>
<aname="valign"val="base"/>
</tool>
</lib>
<libdesc="jar##ll.nents"name="7">
<toolname="MIPSProgramROM">
<aname="contents"val=""/>
</tool>
</lib>
<mainname="◊多周期MIPS(微程序)"/>
<options>
<aname="gateUndefined"val="ignore"/>
<aname="simlimit“val="100(T7>
<aname="simrand"\za\="O"/>
</options>
<mappings>
<toollib="6"map="Button2"name="MenuTool"/>
<toollib="6"map="CtrlButtonl"name="MenuTool'7>
<toollib="6Mmap="Button3"name="MenuTool"/>
</mappings>
<toolbar>
<toollib="6"name="PokeTool"/>
<toollib="6Mname="EditTool"/>
<toollib="6"name="TextTool">
<aname="text"val=""/>
<aname="font"val="SansSerifplain12"/>
<aname="halign"val="center"/>
<aname="valign"val="base'7>
</tool>
<sep/>
<toollib="O"name="Pin">
<aname="tristate"val="false"/>
</tool>
<toollib="O"name="Pin">
<aname="facing"val="west"/>
<aname="output"val=ntrue'7>
<aname="labelloc"val="east"/>
</tool>
<toollib="l"name="NOTGate">
<aname="facing"val="west"/>
<aname=,,size"val="20"/>
</tool>
<toollib="l"name="ANDGate">
<aname=,,size"val="30"/>
<aname="inputs"val="2"/>
</tool>
<toollib="l"name="ORGate">
<aname=,,sizeHval="30"/>
<aname="inputs"val="2"/>
</tool>
</toolbar>
<circuitname="◊单周期MIPS(硬布线)”>
<aname="circuit"val="◊单周期MIPS(硬布线)”/>
<aname="clabel"val=n"/>
<aname="clabelup"val="east"/>
<aname="clabelfont"val="SansSerifplain12u/>
<wirefrom="(480,550)“to=”(540,550)”/>
<wirefrom="(210370)"to="(210380),,/>
<wirefrom="(570,540)“to=”(610,540)'7>
<wirefrom="(510,510)“to="(510,530)”/>
<wirefrom="(720,650)“to=”(760,650)”/>
<wirefrom="(510,510)“to=”(610,510)”/>
<wirefrom="(170/240)"to="(470f240)'7>
<wirefrom="(710,500)“to=”(820,500)”/>
<wirefrom="(90,500)"to=”(130,500)”/>
<wirefrom="(580,580)“to=”(580,600)'7>
,,
<wirefrom="(90/500)"to="(90/720)/>
<wirefrom="(550,370)“to=”(550,520)”/>
<wirefrom="(140/180)"to="(140,470)"/>
<wirefrom="(180,80rto="(210,80『/>
'"
<wirefrom="(950/540)"to=(970/540)"/>
<wirefrom="(910,540)"to=”(930,540),,/>
<wirefrom="(1010/280)"to="(1030,280)"/>
<wirefrom="(730,570)“to=”(730,610)”/>
<wirefrom="(570,290)“to="(910,290)”/>
<wirefrom="(510,530)“to=”(540,530)”/>
厂/>
<wirefrom="(350/50)"9=”(380,50
',
<wirefrom="(730z670)"to=(760/670)"/>
〈
wirefrom="(330,80)"to="(350/80)"/>
<wirefrom="(1030,180)“to=”(1030,280)”/>
,,
<wirefrom="(940/560)"to="(970/560)/>
',
<wirefrom="(180/530)"to=(200/530)"/>
<wirefrom="(170360)"to="(190360)'7>
<wirefrom="(880/540)"to="(910/540)'7>
',
<wirefrom="(220/490)"to=(240/490)"/>
<wirefrom="(570330)"to="(770330)"/>
<wirefrom="(450,490)“to=”(460,490)”/>
,,
<wirefrom="(370/570)"to=(370/G20)"/>
<wirefrom="(1030,70)“to=”(1040,70)”/>
<wirefrom="(570310)"to="(840310)"/>
<wirefrom="(170/240)"to="(170360)"/>
',
<wirefrom="(840z680)"to=(850/680)"/>
,,
<wirefrom="(1130/520)"to="(1150/520)/>
<wirefrom="(110/620)"to="(370/620)"/>
<wirefrom="(90/720)"to="(920/720)7>
,,
<wirefrom="(910/470)"to=(910/540)"/>
',
<wirefrom="(10/10)"to=(450/10),/>
<wirefrom="(480330)"to="(530330)"/>
<wirefrom="(170360)"to="(170/500)"/>
<wirefrom="(920,690)“to=”(920,720)”/>
<wirefrom="(1140,10)“to="(1140,140)”/>
',
<wirefrom="(800/660)"to=(840/660)"/>
<wirefrom="(200370)"to="(200390)'7>
<wirefrom="(660,590)“to=”(660,610)”/>
<wirefrom="(940300)"to="(960300)"/>
<wirefrom="(940,260)“to=”(960,260)”/>
<wirefrom="(800,210)“to=”(800,250)”/>
<wirefrom="(480,510)“to=”(510,510)”/>
<wirefrom="(950/40)"to="(950/80)'7>
<wirefrom="(370,700)“to=”(850,700)”/>
,,
<wirefrom="(340/570)"to="(370/570)/>
<wirefrom="(430/430)"to="(450/430)"/>
<wirefrom="(570350)"to="(660350)"/>
<wirefrom="(790/580)"to="(820,580)7>
<wirefrom="(210,530)“to=”(230,530)”/>
<wirefrom="(460/510)"to="(460/550)"/>
,,,,
<wirefrom="(1180/530)"to=(1210,530)/>
<wirefrom="(440z490)"to="(450/490)'7>
,,
<wirefrom="(840310)"to=(840/490)"/>
<wirefrom="(950,40)"to=”(960,40『/>
<wirefrom="(900310)"to="(910310)"/>
<wirefrom="(910,560)“to=”(910,610)”/>
〈wirefrom="(10z10)"to="(10z140)'7>
,,
<wirefrom='(480/650)"to="(540,650)7>
<wirefrom="(1040/580)"to="(1040/600)"/>
<wirefrom="(1080/580)"to="(1080/600)"/>
<wirefrom="(450,10)"to="(450/140)"/>
<wirefrom="(10/140)"to="(450/140)'7>
<wirefrom="(230,530)‘,to=”(230,540)”/>
,
<wirefrom="(1110/540)"to="(1150/540)7>
<wirefrom="(45040)Mto="(114040)'7>
<wirefrom="(500/580)"to="(500/730)"/>
<wirefromPOZOMO)"to=”(760,590),7>
<wirefrom="(370,620)“to=”(370,700)”/>
<wirefrom="(210,510)“to=”(210,530),7>
,,
<wirefrom="(50/80)"to="(90/80)/>
<wirefrom="(840/660)"to="(840/680)"/>
<wirefrom="(350,50)"to=”(350,80)'7>
<wirefrom="(490/240)"to="(530/240)"/>
<wirefrom="(860310)"to="(880310)'7>
,,
<wirefrom="(460,550)"to="(460/650)/>
<wirefrom="(1130/470)"to="(1130/520)7>
<wirefrom="(740/40)"to="(740,80)"/>
<wirefrom="(570,270)“to=”(910,270)”/>
<wirefrom="(940,560)“to=”(940,600)”/>
,,
<wirefrom="(730/570)"to="(760/570)/>
<wirefrom="(350,80rtofmo4O)”/〉
<wirefrom="(910,470)“to=”(1130,470)”/>
<wirefrom="(580,580)“to=”(610,580),7>
<wirefrom="(110,480)“to=”(130,480)”/>
<wirefrom="(170/500)"^"(lgO.SOO)">
<wirefrom="(220350)"to="(240350)'7>
',,,
<wirefrom=(890/690)"to="(920/690)/>
<wirefrom="(800,250)“to=”(800,630)”/>
<wirefrom=M(490,70)"to=,,(500,70),,/>
<wirefrom="(270,490)“to=”(280,490)”/>
<wirefrom="(500,730)“to=”(1210,730)”/>
<wirefrom="(500,580)“to="(580,580)”/>
<wirefrom="(810,70)"to="(820/70)"/>
,
<wirefrom="(450/430)"to="(450/490)7>
',
<wirefrom="(580/650)"to=(720/650)"/>
<wirefrom="(1000/580)"to="(1000/630)"/>
h
<wirefrom="(740/40)to="(750/40)"/>
<wirefrom="(610,70)"to="(620/70)"/>
<wirefrom="(270,490)“to=”(270,560)”/>
<wirefrom="(860,250)“to=”(910,250)”/>
〈wirefrom="(140z180)"to="(1030/180)"/>
<wirefrom="(730,610)“to=”(910,610)”/>
<wirefrom="(180,530)“to=”(180,540)”/>
<wirefrom="(660,350)“to=”(660,480)”/>
<wirefrom="(480350)"to="(530350),,/>
<wirefrom="(1160,230)“to="(1160,510)'7>
<wirefrom="(450440)"^"(lUO,UO)"^
<wirefrom="(460,350)“to=”(460,490)”/>
<wirefrom="(110,480)“to=”(110,620)'7>
<wirefrom="(570/250)"to="(800,250)"/>
<wirefrom="(460330)"10="(460350),7>
,,
<wirefrom="(460/490)"to="(460,510)/>
<wirefrom="(200/510)"to="(200/530)"/>
,
<wirefrom="(240z470)"to="(240,490)7>
<wirefrom="(1210,530)“to=”(1210,730)”/>
<wirefrom="(260,580)“to=”(300,580)”/>
,,
<wirefrom=(160/490)"to="(190/490)"/>
<wirefrom="(210380)"to="(240380),7>
<wirefrom="(240/490)"to="(270/490),/>
<wirefrom="(270/560)"to="(300/560)"/>
<wirefrom="(710z570)"to="(730,570)"/>
<wirefrom=',(660350)"to="(690350)"/>
<wirefrom="(910,560)“to=”(940,560)”/>
<wirefrom="(770,330)“to="(770,560)”/>
<wirefrom="(860,250)“to=”(860,310)”/>
<wirefrom="(860310)"to="(860f500)"/>
<wirefrom="(800,630)“to=”(1000,630)”/>
,,',
<wirefrom=(720,590)"to=(720/650)"/>
<wirefrom="(480/490)"to="(610/490)"/>
<wirefrom="(570/230)"to="(1160,230)"/>
<complib="O"loc="(460330)"name="Splitter">
<aname="fanout"val="l"/>
<aname=',incoming"val="32"/>
<aname="appear"val="center"/>
<aname="bitO"val=,'none"/>
<aname="bitl"val="none"/>
<aname="bit2Hval="none"/>
<aname="bit3"val="none"/>
<aname="bit4,'val="none"/>
<aname="bit5"val="none"/>
<aname="bit6"vah'^one"^
<aname="bit7"val="none"/>
<aname="bit8"val="none"/>
<aname="bit9"vak'^one"^
<aname="bitlO"val="none"/>
<aname="bitll"val^none"^
<aname="bitl2"val="none"/>
<aname="bitl3"val="none"/>
<aname="bitl4"val="none"/>
<aname="bitl5"val="none"/>
<aname="bitl6"val="none"/>
<aname="bitl7"val="none"/>
<aname=,'bitl8,'val="none"/>
<aname="bitl9"val="none"/>
<aname="bit20"val="none"/>
<aname="bit21"val="none"/>
<aname="bit22"val="none"/>
<aname="bit23"val="none"/>
<aname="bit24"val="none"/>
<aname="bit25"val="none"/>
<aname="bit26"val="07>
<aname="bit27"val="0"/>
<aname="bit28"val="O'/>
<aname="bit29"val="O"/>
<aname="bit30"val="0'7>
<aname="bit31"val="0"/>
</comp>
<complib="6"loc="(609324)"name="Text">
<aname="text"val^'AluSrcB"^
</comp>
<complib="l"loc="(900310)"name="NOTGate">
<aname="size"val="20"/>
</comp>
<complib=Tloc="(940,300)”name="ANDGate">
<aname="size"val="30"/>
<aname="inputs"val=H2'7>
</comp>
<complib="3"loc="(890/690)"name="Adder">
<aname=',widthuval="32'7>
</comp>
<complib="O"loc="(950,80)"name="Tunnel">
<aname="facing"val="north"/>
<aname="laber,val="MemWrite"/>
<aname="labelfont"val="Dialogplain12"/>
</comp>
<complib="O"loc="(750z40)"name="Pin">
<aname="facing"val="west'7>
<aname=,,output"val="true"/>
<aname="laber'val="Reg\A/rite"/>
<anames'labelloc"val="north'7>
<aname="labelfont"val="Dialogplain12"/>
</comp>
<complib="O"loc="(930/540)"name="Splitter">
<aname="fanout"val-'l"^
<aname="incomingHval="32"/>
<aname="appear"val="center"/>
<aname="bitO"val="none'7>
<aname="bitl"val="none*7>
<aname="bit2"val="0"/>
<aname="bit3"val="O"/>
<aname="bit4"val="O"/>
<aname="bit5"val="0'7>
<aname="bit6"val="0'7>
<aname="bit7"val="0"/>
<aname="bit8"val="0"/>
<aname="bit9"val="0"/>
<aname="bitlO"val='*O"/>
<aname="bitll"val="0"/>
<aname="b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度生态旅游区承包经营合同3篇
- 二零二五年度新能源项目融资担保服务合同集锦3篇
- 二零二五年度诚意金担保及解除合同4篇
- 2025年度个人公寓抵押借款合同范例2篇
- 2025广州市简单的劳动合同范本
- 2025广告刊登服务合同的范本
- 2025版显示屏行业品牌价值评估与提升合同3篇
- 2025房产抵押合同范本
- 二零二五年度厂房安全风险评估与防范服务合同2篇
- 2025年度个人贵金属交易借款合同样本4篇
- 定额〔2025〕1号文-关于发布2018版电力建设工程概预算定额2024年度价格水平调整的通知
- 2024年城市轨道交通设备维保及安全检查合同3篇
- 《高处作业安全》课件
- 单位往个人转账的合同(2篇)
- 电梯操作证及电梯维修人员资格(特种作业)考试题及答案
- 科研伦理审查与违规处理考核试卷
- GB/T 44101-2024中国式摔跤课程学生运动能力测评规范
- 锅炉本体安装单位工程验收表格
- 高危妊娠的评估和护理
- 妊娠合并强直性脊柱炎的护理查房
- 2024年山东铁投集团招聘笔试参考题库含答案解析
评论
0/150
提交评论