MOOC-计算机组成与CPU设计实验-江苏大学-中国大学慕课答案网课_第1页
MOOC-计算机组成与CPU设计实验-江苏大学-中国大学慕课答案网课_第2页
MOOC-计算机组成与CPU设计实验-江苏大学-中国大学慕课答案网课_第3页
MOOC-计算机组成与CPU设计实验-江苏大学-中国大学慕课答案网课_第4页
MOOC-计算机组成与CPU设计实验-江苏大学-中国大学慕课答案网课_第5页
已阅读5页,还剩95页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

正确答案:【modulemodule_name(inputa,b,outputc)#modulemoduF、段fF、段fF、段fF、段fF、段fF、段f正确答案:【段f】F、段fF、段f正确答案:【段h(小数点)】3、问题:普通逻辑门的输出______连接在一起;三态门的输出A、可以,可以,3B、可以,不可以,3C、不可以,可以,34、问题:使用持续赋值语句可以描述三态门如下:inputEn,Din;Dout=______. case(Sel)2'b00:Out=In0;2'b01:Out=In1;2'b10:Out=In2;2'b11:4’b???1:Out=2'b00;4’b??10:Out=2'b01;4’default:Out=2’bxx;endcasealways_combcase(Sel)2'b00:Out=In0;2'b01:Out=In1;2'b10:Out=Idefault:Out=1'bx;eOut);assignOut=In[Sel];e“1111”的表达式是()的括号里是敏感列表,如下用持续赋值语句描述了一个异或程赋值语句是inputwirea,b;ou正确答案:【inputwirea,b;outputregc;alA、为了实现总线的分时使用,三态缓冲器是实现数据输出到总线上;当输出使能无效时,三态门隔断。正确答案:【为了实现总线的分时使用,三态的逻辑元件。同一时刻可以有一个部件向总线时,不影响总线的状态。】令DATA0=001,DATA1=010,DATA2=100,选出正确的描述。正确答案:【当OE0=0;OE1=0;OE令DATA0=001;DATA1=010;DATA2=100;验证多个部件同时向总线输出,开关,令DATA0=001;DATA1=010;DATA2=011;数据开关,令DATA0=001;DATA1=010;DATA2=100;位有效,通常在计算机里用作____,有一些译码器设有一,又称为片选端,用来控制允许译码或禁止译码。2、问题:4-2编码器有____位输入,__5、填空题:具有“翻译”功能的任意编码转换器有时将输入二进制代码的各种状态,翻译成对应的输出信号。七段moduleBuffer#(parameterSIZE=inputEn);assignDout=正确答案:【{SIZE{1'bz}}##%_YZPRLFH_行实例化moduleTOP(output[7:0]outbuf(.En(____),.Din(____),.Dout(____));endmodule注意,答案之间用#隔开,例如1#en#out#FA、moduleLatch(in正确答案:【moduleLatch(inputD,E,outputendmodule#moduleLatch(inputD,E,outelseQ=Q;endmodule#moduleLatch(A、moduleD_FF(inpuE、moduleD_FF(inputD,Clock,out正确答案:【moduleD_FF(inputD,Clock,oD;endmodule#moduleD_FF(inputD,Clock,outpu=D;endmodule#moduleD_FF(inputD,Clock,outputreA、moduleD_FF(inputD,Clock,reset,if(reset==1)Q=0;elseQ=D;endmoduleB、moduleD_FF(inputD,Clocposedgereset)if(reset==1)Q=0;elseQ=D;endmoduleC、moduleD_FF(inputD,negedgereset)if(reset==1)Q=0;elseQ=D;endmoduleD、moduleD_FF(inputD,Clockposedegreset)if(reset==0)Q=0;elseQ=D;endmoduleE、moduleD_FF(inputD,Clock,resif(reset==1)Q=0;elseQ=D;endmoduleF、moduleD_FF(inputD,Clock,reset,outputreset==0)Q=0;elseQ=D;enG、moduleD_FF(inputD,Clock,reset,oureset==1)Q=0;elseQ=D;en答案:【moduleD_FF(inputD,Clock,reset,outputregQkorposedgereset)if(reset==1)Q=0;elseQ=D;endmodule#moduleD_FF(iD,Clock,reset,outputregQ);always@(posedgeClock)if(reset==0)Q=0;e=D;endmodule#moduleD_FF(inputD,Clock,reset,outputregQ);always@(pClock)if(reset==1)Q=0;elseQ=D;endmodule】A、moduleD_ff(inputD,CLK,En,outputregQ);always@(posedgeCLK)beginifB、moduleD_ff(inputD,CLK,En,outputregQ);alwaEn)beginif(En)Q=0;elseQ=D;endendmC、moduleD_ff(inputD,CLK,outD、moduleD_ff(inputD,CLK,En,outputreggateclk=(EnCLK);always@(posedgeGATECLK)beginif(En)Q=D;endendmoduleCLK)beginif(load)Q=D;endendmodule正确答案:【moduleD_ff(inputD,CLK,En,outputregQ);always@(posedgeCLK)beginif(En)Q=D;endendmodule#moduleD_ff(inputCLK,load,input[3:reg[3:0]Q);always@(posedegCLK)beginif(loa9、问题:以下描述语句得到的结果一定是a=1,b=1,c=1begina装入数据的条件是时钟使能信号Load为)时钟上升沿。如果Load=0,有时钟上升沿,存器的值,比较与写操作中保存在寄存器中的值是否一致。单端口寄存器读操作_________(需要/不需要)等待时钟到来。单端口寄存器_________(可以/不可以)同时写入和读出不同寄存器的值,因为它读操作和写操作地址端口index是beginQ[3]=Dsi;Q[2]=Q[3];Q[1]=Q[2];Q[0]=Q[1];endendmodulebeginQ[3]=Q[2];Q[2]=Q[1];Q[1]=Q[0];Q[0]=Dsi;endendmodulebeginQ[0]=Dsi;Q[1]=Q[0];Q[2]=Q[1];Q[3]=Q[2];endendmoduleclk)Q[0:3]={Dsi,Q[0:2]}clk)Q[0:3]={Q[1:3],Dsi}always@(posedegclk)if(Load)Q=In;elseQ={Dsi,Q[3:1]}clkorposedgereset)if(reset)Q=4'b1000;elseQ={Q[2:0],Q[3]};ealways@(posedegclk)Dsi;Q[2]=Q[3];Q[1]=Q[2];Q[0]=Q[1];endendmodule#moduleShiftCLK,outputreg[0:3]Q);aDsi;Q[1]=Q[0];Q[2]=Q[1];Q[3]=Q[2];endendmodule#moduleShiftCLK,outputreg[0:3]Q);Dsi,Q[0:2]};endmodule#moduleShifter(inputD[3:0]Q);always@(posedegclk)if(Load)Q=In;elseQ={D5、填空题:如果想实现逻辑右移,需要将________(0/1/。 。7、填空题:如果想实现循环右移,需要将________(0/1/Q[7。2、问题:以下代码描述的是________.modulecounter(inputClock,Reset,outp[3:0]Q);always@(posedgeClock,posedgeResetA、modulecounter(iClock,posedgeReset)if(Reset==1)Q=0;elseQ=Q+1;assignclkout=Q[3]always@(posedgeClock,posedgeReset)if(Reset==1)beginQ=0;clkout=0;endelseif(Q==16)beginclkout=~clkout;Q=0;endelseQ=Q+always@(posedgeClock,posedgeReset)if(Reset==1)beginQ=0;clkout=0;endelseif(Q==8)beginclkout=~clkout;Q=0;endelseQ=Q+always@(posedgeClock,posedgeReset)if(Reset==1)beginQ=0;clkout=0;endelseif(Q==7)beginclkout=~clkout;Q=0;endelseQ=Q+正确答案:【modulecounter(inputClocQ;always@(posedgeClock,posedgeReset)if(Reset==1)Q=0;elseQ=Qclkout=Q[3];endmodule#modulecounter(inputClock,Reset,outputregcl[7:0]Q;always@(posedgeClock,posedgeReset)if(Reset==1)beginQ=0;endelseif(Q==7)beginclkout=~clkout;Q=0;endelseQ=Q+1;endmodule】),,就可以看到流水灯匀速的运动。最多?尽管使用的触发器最多,但是这种编码方式2、问题:下面哪一种是one-hot编码4、问题:状态机的编码方式可以是()next_state;localparamSTOP=2b00;localparamLOMEDIUM=2b10;localparamHIGH=2b11;//状态转换always@(posedgereset)if(reset)state=STOP;elsestate=next_state;//次态计算always@(*)STOP:if(acc!brake)next_state=LOW;elsenext_state=STOP;next_state=STOP;elseif(acc)next_state=MEDIUM;elsenext_state=LOW;MEDIUM:if(brake)next_state=LOW;elseif(acc)next_state=HIGH;elsenext_state=MEDIUM;HIGH:if(brake)next_state=MEDIUM;elsenext_state=HIGH;endcase//输出逻辑assignspeed=state;state;reg[1:0]next_state;locaMEDIUM=2b10;localparamHIGH=2b11;//状态转换always@(posedgeclreset)if(reset)state=STOP;elsestate=next_state;//次态计算always@(*)STOP:if(acc!brake)next_state=LOW;elsenext_state=STOP;next_state=STOP;elseif(acc)next_state=MEDIUM;elsenext_state=LOW;MEDIUM:if(brake)next_state=LOW;elseif(acc)next_state=HIGH;elsenext_state=MEDIUM;HIGH:if(brake)next_state=MEDIUM;elsenext_state=HIGH;endcase//输出逻辑assignspeed=easy?2STOP=4b0001,LOW=4b0010,MEDIUM=4always@(posedgeclkorposedegreset)if(reset)state=STOP;elsestate=nalways@(*)case(state)STOP:speed=2b0next_state=STOP;LOW:speed=2b01;if(brake)next_state=STOP;elseif(acc)next_state=MEDIUM;elsenext_state=LOW;MEDIUM:speed=2b10;if(brake)next_state=LOW;elseif(acc)next_state=HIGH;elsenext_state=MEDIUM;HIGH:speed=2b110;if(brake)next_state=MEDIUM;elsenext_state=HIGH;endcaselocalparamSTOP=2b00;localparamLOW=2b01;signspeed=state;always@(posedgeclk)case(state)Sf(acc!brake)state=LOW;LOW:if(brake)state=STOP;elseif(acc)statMEDIUM:if(brake)state=LOW;elseif(acc)state=HIGH;HIGH:if(brake)state=MEDIUM;elsestate=HIGH;endcreg[1:0]next_state;localparamSTOPMEDIUM=2b10;localparamHIGH=2b11;//状态转换always@(posedgereset)if(reset)state=STOP;elsestate=next_state;//次态计算always@(*)STOP:if(acc!brake)next_state=LOW;elsenext_state=STOP;next_state=STOP;elseif(acc)next_state=MEDIUM;elsenext_state=LOW;MEDIUM:if(brake)next_state=LOW;elseif(acc)next_state=HIGH;elsenext_state=MEDIUM;HIGH:if(brake)next_state=MEDIUM;elsenext_state=HIGH;endcase//输出逻辑assignspeed=state;endmodule#modul}state,next_state;always@(posedgeclkorposedegreset)if(reset)statelsestate=next_state;always@(*)case(next_state=LOW;elsenext_state=STOP;LOW:speed=2b01;if(brake)next_state=STOP;elseif(acc)next_state=MEDIUM;elsenext_state=LOW;MEDIUM:speed=2b10;if(brake)next_state=LOW;elseif(acc)next_state=HIGH;elsenext_state=MEDIUM;HIGH:speed=2b110;if(brake)next_state=MEDIUM;elsenext_state=HIGH;endcaseendmodule#modulefsm(inputclk,acc,brake,reset,outlocalparamMEDIUM=2b10;localparamHIGH=2b11;assignspealways@(posedgeclk)case(state)STOP:if(acc!brake)state(brake)state=STOP;elseif(acc)state=MEDIUM;MEDIUM:if(brake)state=LOW;elseif(acc)state=HIGH;HIGH:if(brake)state=MEDIUM;elsestate=HIGH;endcase7、问题:设计FSM应该注意()正确答案:【建议先画状态图再写代码#建议采态编码,状态名称尽量反映其含义#复位后状态机,状态机是组合逻辑和时序逻辑的特殊组合,硬件实现上需要一个用来存储状态的),,因此输出变化可能出现在任何时刻LOW=2b01;localparamMEDIUM=2b10;localparamHIGH=2b11;always@(posedgeclkorposedegreset)if(reset)state=STOP;elsestate=next_s计算always@(*)case(state)STOP:next_state=STOP;LOW:if(brake)next_state=STOP;elseif(acc)next_state=MEDIUM;elsenext_state=LOW;MEDIUM:if(brake)next_state=LOW;elseif(acc)next_state=HIGH;elsenext_state=MEDIUM;HIGH:if(brake)next_state=MEDIUM;elsenext_state=HIGH;endcase//输出逻辑assignspe15、问题:以下是一个摩尔型状态机modulefsm(inlocalparamLOW=2b01;localparamMEDIUM=2b10;localparamHIGH=2b11;//转换always@(posedgeclkorposedegreset)if(reset)state=STOP;elsestate=n//次态计算always@(*)case(state)STOP:ielsenext_state=STOP;LOW:if(brake)next_state=STOP;elseif(acc)next_state=MEDIUM;elsenext_state=LOW;MEDIUM:if(brake)next_state=LOW;elseif(acc)next_state=HIGH;elsenext_state=MEDIUM;HIGH:if(brake)next_state=MEDIUM;elsenext_state=HIGH;endcase//输出逻辑assignsA、补码:1101真值:-3B、补码:1011真值:-5D、补码:1111真值:-1E、补码:1100真值:-4F、补码:1110真值:-2H、补码:1001真值:-7,在提供的参考代码里可以看到:assignresult=A+B+C0;理A、使运算电路的输出F=X+Y,要使M=0B、使运算电路的输出F=X+Y,要使M=1C、使运算电路的输出F=X-Y,要使M=0D、使运算电路的输出F=X-Y,要使M=1正确答案:【使运算电路的输出F=X+Y,要使M=0#使运算电路的输出F=X-Y,要使M=1】。C、4位无符号数能表示数值的范围是0-15D、4位无符号数能表示数值的范围是1-160-15】7、问题:实验任务加减电路,使用与或门构成数据选择器,通过M2M1M0三A、M2=0,M1=0,M0=0传送X(MOV),实现F=XB、M2=0,M1=0,M0=1加法(ADD实现F=X+YC、M2=1,M1=1,M0=0减法(SUB实现F=X-YD、M2=1,M1=0,M0=0加1(INC),实现F=X+1E、M2=0,M1=1,M0=0减1(DEC),实现F=X-1正确答案:【M2=0,M1=0,M0=0传送X(MOV),实现F=X#M2=0,M1=0,M0=1加法(ADD实现F=X+Y#M2=1,M1=1,M0=0减法(SUB实现F=X-Y#M2=1,M1=0,M0=0加1(INC),实现F=X+1】8、问题:验证加减运算电路,令运算电路做A、运算操作数:1000+0001,对应的运算数和结果真值:8+B、运算操作数:1101+1100,对应的运算数和结果真值:13+12=9,进位标志C、运算操作数:0100+0010,对应的运算数和D、运算操作数:0000+0000,对应的运算数和结果真值:0+0=0E、运算操作数:1111+0001,对应的运算数和结果真值:15+1=0,进位标志为1,零标F、运算操作数:0011+0101,对应的运算数和结果真值:3+5=8H、运算操作数:1100+0101,对应的运算数和结果真值:12+5=1,正确答案:【运算操作数:1000+0001,对应的运算数和:0100+0010,对应的运算数和结果真值:4+2=6#运数和结果真值:0+0=0,零标志为1#运算操作数:1111+0001,对应的运算数和结果真值F、运算操作数:0011+0101对应H、运算操作数:1100+0101对应的运算数和结果:()0异或,结果是它本身。】4、填空题:补码表示中,对于任意整数x,计算表达式-x和计算x取反+1得到的);其n位高位出现空位,空出的空位应该添补0{y3,y2,y1,y0}=0010,AL{y3,y2,y1,y0}=0010,AL{y3,y2,y1,y0}=0010,AL,{y3,y2,y1,y0}=0110,ALUop=0011;此时观察到的{f3,f2,f1,f0}=____。,{y3,y2,y1,y0}=0010,ALUop=0100;此时观察到的{f3,f2,f1,f0}=____。,{y3,y2,y1,y0}=0010,ALUop=0101;此时观察到的{f3,f2,f1,f0}=____。时钟clk之前,需要的操作包括()输出#RA1=00#WA=01#WE=1#A作包括()#RA1=01#RA2=10#WA=11#WE=1#ALUopB、包通常写在一个独立文件中,当需要引用包中的声明时,可以使用include包正确答案:【包通常写在一个独立文件中,4、问题:对于参考设计中给出的包声明,正确导入枚举元素ADD的选项是?packagealu_dsign;logiczero;logicoverflow;logiccarryout;}t_flag;enumlogic[3:0]{ADD=4前,需要的操作包括(),需要的操作包括()#RA1=01#RA2=10#ALUop=0110#WA=11在按下时钟clk之前,需要的操作包括()#RA1=01#DATA=0010#WA=01#WE=1#ALUop9、填空题:systemverilog在C、右移,32'b0000_0010_0000_0000_0000_0000D、右移,32'b0011_0000_0000_0000_0000_0000_00004、问题:**是()运算符,表达式2**8的值是()?A、取模,2B、乘法,165、问题:下面对局部参数的说明错误的是()____位地址作为七段译码器的____,相应存储单元的____位数据作为七段译码器的____,每个存储单元中初始化为字符的____.7、问题:实验任务2用32*32的RAM实现寄存器堆,选出合适的存储器描述正确答案:【不占用逻辑资源#可生成的容量较大10、问题:下面的两种存储器的描述方法:方法1moduleRAM#(parameterADDRWIDTH=6,parameterDATAWIDTH=32)(inputwireiciAddress,inputiWriteData,outputoReadData);loalways_ff@(posedgeiclk)beginif(iWR)mem[iAddress]=iWriteData;endassoReadData=mem[iAddress];endmodule方法2moduleRAM#(parameterADDRWIDTH=6,parameterDATAWIDTH=32)(inputwireiciAddress,inputiWriteData,outputoReadData);lologic[DATAWIDTH-1:0]read_addr;alread_addr=iAddress;if(iWR)mem[iAddress]=iWriteData;endassignoReadData=mem[read_addr];endmod制表示的。initialbegin$readmemh(initinstruction[7:6]目的操作数寄存器:instruction[5:4]立即数字段:instruct3、问题:实验电路中,指令的执行包括取指令、取操作数、器中读出指令,取到指令后,控制器需要根据指令编码,;(作数寄存器号,读出源操作数rs1和rs23)执行:多路器根据控制器产生的选4、问题:实验电路中,指令的执行包括取指令、取操作数、执行、保存结果。I中读出指令,取到指令后,控制器需要根据指令编码,产生;(存器号,读出源操作数rs1和rs23)执行:多路器根据5、问题:实验电路中,指令的执行包括取指令、取中读出指令,取到指令后,控制器需要根据指令编码,产生;(存器号,读出源操作数rs1和rs23)执行:多路器根据6、填空题:根据实验指令系统,将汇编语言程序翻译为r1,r0,#1对应的二进制机器指令为:_9、填空题:根据实验指令系统,将汇编语言程序翻译为机器指令程序bger1,r2,#6x0,x0,#3对应的二进制机器指令为x0,x0,#6对应的二进制机器指令为正确答案:【X86#MIPS#RISC-V#Loon2、问题:RISC(ReducedInst种类、规范指令格式和简化寻址方式,保持指令集的小而简正确答案:【MIPS#RISC-V#Loon正确答案:【M,整数乘法/除法#A,原子操作#F,压缩指令】A、点击Editor标签,可以在sourcecode栏编写汇编语言程序,语法正确的汇编指正确答案:【点击Editor标签,可以在sourcecode栏编写汇编语言程序,语法正确输入语法错误的汇编指令,该指令下方会有红色波浪标记线A、通过工具栏”selectprocessor“图标,打开的窗口。令运行相关的工具按钮从左到右的顺序依次分别表示:正确答案:【通过工具栏”selectprocessor“图标,打中与指令运行相关的工具按钮从左到右的顺序依次分数据通路中,绿色点表示有效的信号或者选6.立即数生成模块Imm给ALU提供运算数0x00000555H;7.不生产转移控制信号Branchtaken,该信号的标记显示为红色;8.不条指令执行的描述:1.从指令存储器InstrMemory的输出Instr观察到数据立即数生成模块Imm给ALU提供运算数0x00000008H;6.不生产转移控制信号Branchtaken,该信号的标记显示为红色;7.产WrEn,该信号的标记显示为绿色;8.数据存储器11、问题:使用Ripe模拟器调试指令beqx20,x19,-1WrEn,该信号的标记显示为红色;8.生产转移控制信号BranchtakeI#55500913#0010011#00值),fun3字段为________,该指令将________(x1I#55500913#0010011#000#正确答案:【S#0121a423#0100011#010#x),fun3字段为________,该指令将________(x19I#55500913#0010011#000#正确答案:【S#0081a983#0000011#010#m隔开,答案示例:I#55500913#0010011正确答案:【R#01396a33#0110011#1116、填空题:指令beqx20,x19,-16________(R/I/S/U/B/J)型指令,十六进制机器码值),该指

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论