计算机组成与CPU设计实验(江苏大学) 中国大学MOOC答案2024版100分完整版


01 熟悉设计工具 单元测验01

1、 RISC-V开源的是

A:指令集架构
B:Verilog HDL源码
C:VHDL源码
D:芯片
答案: 指令集架构

2、 FPGA设计流程的顺序是____。
I.设计输入,II.逻辑综合,III.适配,IV.生成配置文件

A:I. III. II. IV.
B:I. II. III. IV.
C:II. I. III. IV.
D:III. II. I. IV.
答案: I. II. III. IV.

3、 本课程实验使用的芯片类型属于

A:ASIC
B:CPLD
C:FPGA
D:ASSP
答案: FPGA

4、 将综合工具生成的电路文件加载到可编程芯片的过程称为

A:编程
B:下载
C:配置
D:上传
答案: 编程;
下载;
配置

5、 Verilog模块的端口类型有

A:input
B:output
C:inout
D:tristate
答案: input;
output;
inout

6、 错误的模块定义语句是

A:module module_name (input a, b, output c);
B:module module_name (input a, b, output c)
C:module module_name (a,b,c);
D:module module_name (a,b,c)
答案: module module_name (input a, b, output c);
module module_name (a,b,c)

7、 VHDL是Verilog HDL的简写。

A:正确
B:错误
答案: 错误

8、 多个assign持续赋值语句是按照书写的顺序执行的。

A:正确
B:错误
答案: 错误

9、 SystemVerilog包含了Verilog。

A:正确
B:错误
答案: 正确

10、 综合是指将HDL描述转变成门级逻辑电路。

A:正确
B:错误
答案: 正确

11、 Verilog HDL编译生成的目标代码最终被一个计算机执行。

A:正确
B:错误
答案: 错误

12、 实验指导中的代码“assign SD0 = S[7:0];”也可以写成“assign SD0[7:0] = S[7:0];”

A:正确
B:错误
答案: 正确

13、 常数5’he表示的二进制数是
答案: 01110

14、 常数6’B110011表示的二进制数是
答案: 110011

15、 用Verilog HDL 实现S11~S8 控制L11~L8 亮灭的assign赋值语句是(注:不要有多余的空格)
答案: assign L[11:8]=S[11:8];

02 认识虚拟元件 单元测验02

1、 远程实验平台推荐使用的浏览器为

A:谷歌浏览器
B:火狐浏览器
C:微软IE浏览器
D:其他浏览器
答案: 谷歌浏览器

2、 开关S0控制的数码管段的编号是

A:段a
B:段b
C:段c
D:段d
E:段e
F:段f
G:段g
H:段h(小数点)
答案: 段a

3、 开关S1控制的数码管段的编号是

A:段a
B:段b
C:段c
D:段d
E:段e
F:段f
G:段g
H:段h(小数点)
答案: 段b

4、 开关S2控制的数码管段的编号是

A:段a
B:段b
C:段c
D:段d
E:段e
F:段f
G:段g
H:段h(小数点)
答案: 段c

5、 开关S3控制的数码管段的编号是

A:段a
B:段b
C:段c
D:段d
E:段e
F:段f
G:段g
H:段h(小数点)
答案: 段d

6、 开关S4控制的数码管段的编号是

A:段a
B:段b
C:段c
D:段d
E:段e
F:段f
G:段g
H:段h(小数点)
答案: 段e

7、 开关S5控制的数码管段的编号是

A:段a
B:段b
C:段c
D:段d
E:段e
F:段f
G:段g
H:段h(小数点)
答案: 段f

8、 开关S6控制的数码管段的编号是

A:段a
B:段b
C:段c
D:段d
E:段e
F:段f
G:段g
H:段h(小数点)
答案: 段g

9、 开关S7控制的数码管段的编号是

A:段a
B:段b
C:段c
D:段d
E:段e
F:段f
G:段g
H:段h(小数点)
答案: 段h(小数点)

10、 实验平台的虚拟面板和LabBoard_TOP模块对应的。

A:正确
B:错误
答案: 错误

11、 虚拟面板的虚拟元件是根据添加顺序和HDL代码对应的。

A:正确
B:错误
答案: 错误

12、 虚拟实验是以真实的硬件实验板为基础,通过软件界面进行实验操作。

A:正确
B:错误
答案: 正确

13、 根据点亮电平的高低,你判断远程实验板的数码管是共阴极的还是共阳极的?
答案: 共阳极

14、 数码管的段是高电平点亮还是低电平点亮?
答案: 低电平

15、 LED指示灯点亮时的驱动电平是高电平还是低电平?
答案: 高电平

03 三态门和多路器 单元测验03

1、 以下代码描述的分别是?
assign c = ~ (a&b);
assign d = (a^b)

A:或门,同或门
B:与非门,异或门
C:与门,或门
D:或非门,异或门
答案: 与非门,异或门
分析:考查运算符~,&,^

2、 Verilog HDL中在always语句块中被赋值的信号,应该声明为______。

A:wire
B:reg
C:input
D:output
答案: reg
分析:reg类型不一定表示寄存器,VerilogHDL中用always块描述的组合逻辑电路的输出必须申明为reg类型

3、 普通逻辑门的输出__连接在一起;三态门的输出_连接在一起;三态门的输出有___种状态,通过使能端控制,可以用于输出到总线。

A:可以,可以,3
B:可以,不可以,3
C:不可以,可以,3
D:不可以,可以,4
答案: 不可以,可以,3
分析:三态输出不影响总线状态

4、 使用持续赋值语句可以描述三态门如下:

input En,Din;
output Dout;
assign Dout=En? Din : 1’bz;
当En为1时,Dout=__,
当En为0时,Dout=
____.

A:Din,1
B:高阻态,1
C:Din,高阻态
D:高阻态,Din
答案: Din,高阻态
分析:条件运算符和持续赋值语句描述三态门

5、 多路器的功能是从多个输入中选择__输出 ,使用持续赋值语句assign Y = S ? A : B; 可以描述一个__选__的多路器。

A:一个,3,1
B:​一个,2,1
C:​多个,3,1
D:多个,2,1
答案: ​一个,2,1
分析:考察多路器描述

6、 在Verilog HDL中,判断a等于b的表达式应该写为“a ______b”。

A:=
B:!=
C:< >
D:==
答案: ==
分析:考察关系运算符

7、 语法格式{repetition_number { expr1,expr2,…,exprN} }表示复制操作,找出与{2{a,b } }结果相同的表达式

A:{2,a,b}
B:{{a,b},{a,b}}
C:{a,a,b,b}
D:{a,b,a,b}
答案: {{a,b},{a,b}};
{a,b,a,b}
分析:考察复制拼接

8、 从下面选出4选1多路器的描述

A:module labx
(   output [3:0] S,
   output CO,
   input [3:0] A,B,
   input CI);
   assigan {CO,S[3:0]}=A+B+CI;
endmodule
B:module labx
(   input In0,In1,In2,IN3,
   input [1:0] Sel,
   output logic Out);
   always_comb
      case(Sel)
          2’b00: Out=In0;
          2’b01: Out=In1;
          2’b10: Out=In2;
          2’b11: Out=In3;
       default: Out=1’bx;
     endcase
endmodule
C:module labx(input [3:0] In,input [1:0] Sel,output Out);assign Out  = In[Sel];endmodule
D:module labx (input  logic [3:0] In,output logic [1:0] Out ); always_comb casez (In) 4’b???1: Out = 2’b00; 4’b??10: Out = 2’b01; 4’b?100: Out = 2’b10; 4’b1000: Out = 2’b11; default: Out = 2’bxx; endcaseendmodule 
答案: module labx
(   input In0,In1,In2,IN3,
   input [1:0] Sel,
   output logic Out);
   always_comb
      case(Sel)
          2’b00: Out=In0;
          2’b01: Out=In1;
          2’b10: Out=In2;
          2’b11: Out=In3;
       default: Out=1’bx;
     endcase
endmodule;
module labx(input [3:0] In,input [1:0] Sel,output Out);assign Out  = In[Sel];endmodule
分析:A选项是4位加法器

9、 假设a和b是位宽为4的向量,a的值为“1010”,b的值为“0101”,那么值为“1111”的表达式是()

A:~a
B:a&b
C:a|b
D:a^b
答案: a|b;
a^b
分析:考察位运算符~,&,|,^和逻辑运算符!,&&,||的功能,

10、 在过程赋值语句always语句块里赋值,称为过程赋值,always@ 后面的括号里是敏感列表,如下用持续赋值语句描述了一个异或门电路,与它等价的过程赋值语句是()
input wire a,b;
output wire c;
assign c = a^b;

A:input wire a,b;
output reg c;
always@(a,b)
 assign c = a^b;
B:input wire a,b;
output wire c;
always@(a and b)
 assign c = a^b;
C:input wire a,b;
output reg c;
always@
 assign c = a^b;
D:input wire a,b;
output logic c;
always_comb
 assign c = a^b;
答案: input wire a,b;
output reg c;
always@(a,b)
 assign c = a^b;;
input wire a,b;
output reg c;
always@

 assign c = a^b;;
input wire a,b;
output logic c;
always_comb
 assign c = a^b;
分析:考察always敏感列表

11、 总线遵循分时共享原则,选出正确的描述。

A:为了实现总线的分时使用,三态缓冲器是实现总线分时使用必不可少的逻辑元件。同一时刻可以有一个部件向总线输出数据。
B:三态缓冲器像一扇阻隔逻辑部件输出的“门”,当输出使能有效,三态门打开,数据输出到总线上;当输出使能无效时,三态门隔断逻辑部件的数据输出,输出1。
C:三态缓冲器输出高阻态时,不影响总线的状态。
D:根据本验证结果,可以推断出当总线冲突时,总线的数据是“或”运算的结果。
答案: 为了实现总线的分时使用,三态缓冲器是实现总线分时使用必不可少的逻辑元件。同一时刻可以有一个部件向总线输出数据。;
三态缓冲器输出高阻态时,不影响总线的状态。
分析:B:高阻态;D:或

12、 使用远程实验平台虚拟面板验证三态门电路的功能
准备好数据开关,令DATA0=001,DATA1=010,DATA2=100,选出正确的描述。

A:当OE0=0;OE1=0;OE2=0; 输出使能无效,数据开关的值无法传输到总线,总线的值显示为111;
B:当OE0=1;OE1=0;OE2=0;
数据开关DATA0的值传输到总线,总线的值显示为001。
C:当OE0=0;OE1=1;OE2=0;
数据开关DATA1的值传输到总线,总线的值显示为010。
D:当OE0=0;OE1=0;OE2=1;
数据开关DATA2的值传输到总线,总线的值显示为100
答案: 当OE0=0;OE1=0;OE2=0; 输出使能无效,数据开关的值无法传输到总线,总线的值显示为111;;
当OE0=1;OE1=0;OE2=0;
数据开关DATA0的值传输到总线,总线的值显示为001。;
当OE0=0;OE1=1;OE2=0;
数据开关DATA1的值传输到总线,总线的值显示为010。;
当OE0=0;OE1=0;OE2=1;
数据开关DATA2的值传输到总线,总线的值显示为100
分析:验证三态门

13、 使用远程实验平台虚拟面板验证三态门电路的功能
准备好数据开关,令DATA0=001;DATA1=010;DATA2=100;
验证多个部件同时向总线输出,选出错误的描述。

A:当OE0=1;OE1=1;OE2=0;
总线冲突,总线的值显示为011。
B:当OE0=1;OE1=0;OE2=1;
总线冲突,总线的值显示为101
C:当OE0=0;OE1=1;OE2=1;
总线冲突,总线的值显示为110
D:当OE0=1;OE1=1;OE2=1;
总线冲突,总线的值显示为000
答案: 当OE0=1;OE1=1;OE2=0;
总线冲突,总线的值显示为011。;
当OE0=1;OE1=0;OE2=1;
总线冲突,总线的值显示为101;
当OE0=0;OE1=1;OE2=1;
总线冲突,总线的值显示为110
分析:当OE0=1;OE1=1;OE2=1;
总线冲突,总线的值显示为111

14、 使用远程实验平台虚拟面板验证2选1多路器电路的功能
准备好数据开关,令DATA0=001;DATA1=010;DATA2=011;

A:当选择信号sel1=0,sel0=0时,电路输出端out输出来自DATA0的数据,OUT值显示为001;
B:当选择信号sel1=0,sel0=1时,电路输出端out输出来自DATA1,OUT值显示为010;
C:当选择信号sel1=1,sel0=0时,电路输出端out输出来自DATA2的数据,OUT值显示为011;
D:当选择信号sel1=1,sel0=1时,电路输出端out输出来自DATA2的数据,OUT值显示为011。
答案: 当选择信号sel1=0,sel0=0时,电路输出端out输出来自DATA0的数据,OUT值显示为001;;
当选择信号sel1=0,sel0=1时,电路输出端out输出来自DATA1,OUT值显示为010;;
当选择信号sel1=1,sel0=0时,电路输出端out输出来自DATA2的数据,OUT值显示为011;;
当选择信号sel1=1,sel0=1时,电路输出端out输出来自DATA2的数据,OUT值显示为011。

15、 使用远程实验平台虚拟面板验证与或门构成的选择器电路功能
准备好数据开关,令DATA0=001;DATA1=010;DATA2=100;

A:当OE0=1;OE1=1;OE2=0; Out的值显示为011;
B:当OE0=1;OE1=0;OE2=1; Out的值显示为101;
C:当OE0=0;OE1=1;OE2=1; Out的值显示为110;
D:当OE0=1;OE1=1;OE2=1; Out的值显示为111。
答案: 当OE0=1;OE1=1;OE2=0; Out的值显示为011;;
当OE0=1;OE1=0;OE2=1; Out的值显示为101;;
当OE0=0;OE1=1;OE2=1; Out的值显示为110;

16、 数字逻辑电路有两大种类型,组合逻辑电路和时序逻辑电路,组合逻辑电路“没有记忆”,输出由输入决定,时序逻辑电路“有记忆”,输出不仅和当前输入有关,还跟以前的状态有关。

A:正确
B:错误
答案: 正确

17、 assign引导的持续赋值语句,可以描述组合逻辑电路和时序逻辑电路

A:正确
B:错误
答案: 错误
分析:assign只能描述组合逻辑电路

18、 硬件描述语言多条语句之间没有顺序,是由CPU并行执行的。

A:正确
B:错误
答案: 错误
分析:前半句正确,后半句错误,Verilog语句描述电路的结构和行为,并没有CPU执行它

19、 { }是拼接运算符,用于将若干个信号的某些位拼接起来,例如:
wire [3:0] s;
wire [4:0] d;
d={1,s};

A:正确
B:错误
答案: 错误
分析:拼接的每个部分必须有确定的位宽,例子中的常数1应该表明位宽,例如1’b1

20、 if-else语句和case语句,只能写在always语句块里

A:正确
B:错误
答案: 正确

21、 if-else和case语句都可以实现分支结构,
if-else语句有优先级,生成串行结构,延迟相等
case语句描述并行结构,电路延迟大。

A:正确
B:错误
答案: 错误
分析:表述反了,case语句等延迟

04 七段译码器 单元测验04

1、 2-4译码器有_位输入,_位输出,在输出的所有位中,只有其中1位有效,通常在计算机里用作____,  有一些译码器设有一个和多个使能控制输入端,又称为片选端,用来控制允许译码或禁止译码。

A:2,4,地址译码器
B:2,4,地址编码器
C:4,2,地址译码器
D:4,2,地址编码器
答案: 2,4,地址译码器

2、 4-2编码器有_位输入,_位输出,例如在计算机里用于响应中断请求的_,可以用if-else, _等语句描述。

A:4,2,BCD编码器,case
B:4,2,优先级编码器,casez
C:2,4,BCD编码器,case
D:2,4,优先级编码器,case
答案: 4,2,优先级编码器,casez

3、 描述组合逻辑的if语句应该有else分支。

A:正确
B:错误
答案: 正确

4、 描述组合逻辑的case语句,可以不写default分支。

A:正确
B:错误
答案: 错误

5、 具有“翻译”功能的任意编码转换器有时候也称为译码器,这种电路能将输入二进制代码的各种状态,翻译成对应的输出信号。七段译码器是一种将输入编码转换为七段数码显示码输出的编码转换器,写出显示数字2,8,P,L的段码,例如,0的七段显示码为 0111111,从左到右分别表示七段数码管的g,f,e,d,c,b,a。
2的七段显示码为______;
答案: 1011011

6、 例如,0的七段显示码为 0111111,从左到右分别表示七段数码管的g,f,e,d,c,b,a,
8的七段显示码为______.
答案: 1111111

7、 例如,0的七段显示码为 0111111,从左到右分别表示七段数码管的g,f,e,d,c,b,a,
P的七段显示码为______.
答案: 1110011

8、 例如,0的七段显示码为 0111111,从左到右分别表示七段数码管的g,f,e,d,c,b,a,
L的七段显示码为______。
答案: 0111000

9、 用Verilog HDL 参数化设计的方法描述一个SIZE位的三态缓冲器module Buffer # (parameter SIZE=4) ( output [SIZE-1:0] Dout,   input [SIZE-1:0] Din,    input En );assign Dout = En ? Din : __; endmodule
答案: (以下答案任选其一都对){SIZE{1’bz}};
{SIZE{1’bZ}}

10、 使用名称映射方式,将上题中的三态缓冲器Buffer在TOP模块中进行实例化 module TOP ( output [7:0] out,     input [7:0] F,   input en );  Buffer #(.SIZE(_)) buf (.En(),.Din(_),.Dout()); endmodule 注意,答案之间用#隔开,例如1#en#out#F
答案: 8#en#F#out

05 触发器和寄存器 单元测验05

1、 选出正确的锁存器描述

A:module Latch
( input D,E,
output reg Q);
always_latch
if(E)
Q=D;
endmodule
B:module Latch
( input D,E,
output reg Q);
always@(E or D)
if(E==1)
Q=D;
else
Q=Q;
endmodule
C:module Latch
( input D,E,
output reg Q);
always@(E or D)
if(E==1)
Q=D;
endmodule
D:module Latch
( input D,E,
output reg Q);
always@(E or D)
if(E==1)
Q=D;
else
Q=0;
endmodule
答案: module Latch
( input D,E,
output reg Q);
always_latch
if(E)
Q=D;
endmodule;
module Latch
( input D,E,
output reg Q);
always@(E or D)
if(E==1)
Q=D;
else
Q=Q;
endmodule;
module Latch
( input D,E,
output reg Q);
always@(E or D)
if(E==1)
Q=D;
endmodule
分析:考察锁存器的功能和描述,
else Q=Q; 可以不写,
写成else Q=0;错误。

2、 选出正确的触发器描述

A:module D_FF
( input D,Clock,
 output reg Q);
 always@(Clock,D)
   Q <= D;   endmodule
B:module D_FF
( input D,Clock,
 output reg Q);
 always@(posedge Clock)
   Q <= D;   endmodule
C:module D_FF
( input D,Clock,
 output reg Q);
 always@(negedge Clock)
   Q <= D;   endmodule
D:module D_FF
( input D,Clock,
 output reg Q);
 always_ff@(posedge Clock)
   Q <= D;   endmodule
E:module D_FF
( input D,Clock,
 output reg Q);
 always_ff
   Q <= D;   endmodule
答案: module D_FF
( input D,Clock,
 output reg Q);
 always@(posedge Clock)
   Q <= D;   endmodule;
module D_FF
( input D,Clock,
 output reg Q);
 always@(negedge Clock)
   Q <= D;   endmodule;
module D_FF
( input D,Clock,
 output reg Q);
 always_ff@(posedge Clock)
   Q <= D;   endmodule
分析:A中没有使用边沿触发的敏感列表;E中always_ff也需要把边沿触发的敏感列表写全

3、 选出正确的带复位控制的触发器

A:module D_FF
( input D,Clock,reset,
 output reg Q);
 always@(Posedge Clock or reset)
  if ( reset==1)
   Q <=0;   else
   Q <=D; endmodule
B:module D_FF
( input D,Clock,reset,
 output reg Q);
 always@(posedge Clock or posedge reset)
  if ( reset==1)
   Q <=0;  else
   Q <=D; endmodule
C:module D_FF
( input D,Clock,reset,
 output reg Q);
 always@(posedge Clock or negedge reset)
  if ( reset==1)
   Q <=0;   else
   Q <=D; endmodule
D:module D_FF
( input D,Clock,reset,
 output reg Q);
 always@(posedge Clock or posedeg reset)
  if ( reset==0)
   Q <=0;   else
   Q <=D; endmodule
E:module D_FF
( input D,Clock,reset,
 output reg Q);
 always@(posedge Clock or  reset)
  if ( reset==1)
   Q <=0;   else
   Q <=D; endmodule
F:module D_FF
( input D,Clock,reset,
 output reg Q);
 always@(posedge Clock)
  if ( reset==0)
   Q <=0;   else
   Q <=D; endmodule
G:module D_FF
( input D,Clock,reset,
 output reg Q);
 always@(posedge Clock)
  if ( reset==1)
   Q <=0;   else
   Q <=D; endmodule
答案: module D_FF
( input D,Clock,reset,
 output reg Q);
 always@(posedge Clock or posedge reset)
  if ( reset==1)
   Q <=0;  else
   Q <=D; endmodule;
module D_FF
( input D,Clock,reset,
 output reg Q);
 always@(posedge Clock)
  if ( reset==0)
   Q <=0;   else
   Q <=D; endmodule;
module D_FF
( input D,Clock,reset,
 output reg Q);
 always@(posedge Clock)
  if ( reset==1)
   Q <=0;   else
   Q <=D; endmodule
分析:边沿敏感和电平敏感不可以混用; 异步复位reset必须写进敏感列表; 同步复位reset不能写进敏感列表,等时钟信号到来,才根据reset的值决定是否复位。B异步复位,FG同步复位

4、 选出具有使能控制的触发器或寄存器的正确描述。

A:module D_ff
(  input D,CLK,En,
 output reg Q );
 always@(posedge CLK)
  begin  
    if (En)     Q <= D;   end endmodule
B:module D_ff
(  input D,CLK,En,
 output reg Q );
 always@(posedge CLK or posedge En)
  begin  
    if (En)      Q <=0;             else      Q =D;   endendmodule
C:module D_ff
(  input D,CLK,
 output reg Q );
 always@(posedge CLK)
  begin      Q <= D;   end endmodule
D:module D_ff
(  input D,CLK,En,
 output reg Q );
 
wire gateclk;
assign gateclk=(En&CLK);
 always@(posedge GATECLK)
  begin  
    if (En)      Q < =D;   end endmodule
E:module D_ff
(  input CLK,load,
 input [3:0] D,
 output reg [3:0] Q );
 always@(posedeg CLK)
  begin  
    if (load)      Q <= D;   end endmodule
答案: module D_ff
(  input D,CLK,En,
 output reg Q );
 always@(posedge CLK)
  begin  
    if (En)     Q <= D;   end endmodule;
module D_ff
(  input CLK,load,
 input [3:0] D,
 output reg [3:0] Q );
 always@(posedeg CLK)
  begin  
    if (load)      Q <= D;   end endmodule
分析:A时钟使能, B异步复位 C基本触发器 ,D门控时钟(可以但不推荐), E带有使用/装入控制的寄存器

5、 下面两段代码中信号in,q1,q2和q3的初值分别为0,1,2和3,那么经过1个时钟周期后,always块1中q3的值变成___,always块2中q3的值变成__。
 
程序块1
always @(clk)  
begin    
q1 = in;
q2 = q1;
q3 = q2;  
end
 
程序块2
always @(posedge clk)  
begin    
q1  <= in;    
q2  <= q1;
q3  <= q2;  
end

A:always块1中q3的值变成0
B:always块1中q3的值变成2
C:always块2中q3的值变成0
D:always块2中q3的值变成2
答案: always块1中q3的值变成0;
always块2中q3的值变成2

6、 同步复位和异步复位的区别是是否需要等待时钟
只要复位信号有效,触发器立即清零,无需等待时钟触发边沿到来的是同步复位;
复位信号有效,并且时钟的有效边沿到来时,才能清零的是异步复位。

A:正确
B:错误
答案: 错误
分析:同步复位必须等待时钟信号到来

7、 复位通常是清零,有时候也会置1,主要是使触发器处于一个确定的初始状态。

A:正确
B:错误
答案: 正确

8、 一个语句块内可以同时使用阻塞赋值和非阻塞赋值。

A:正确
B:错误
答案: 错误

9、 以下描述语句得到的结果一定是 a=1,b=1,c=1
begin
a <=1;
b <=a;
c <=b;
end

A:正确
B:错误
答案: 错误
分析:=是阻塞赋值,如果使用=,则结果一定是a=1,b=1,c=1; <=是非阻塞赋值,除了a=1,b会被赋值为a前一刻的值,c会被赋值为b前一刻的值

10、 寄存器就是触发器,或者説是由触发器构成的。

A:正确
B:错误
答案: 正确

11、 锁存器对脉冲电平敏感,在特定输入脉冲电平(高电平或低电平)作用下随输入改变状态;
触发器对脉冲边沿敏感,在时间脉冲的上升沿或下降沿变化瞬间改变状态。
(考察锁存器和触发器的区别)

A:正确
B:错误
答案: 正确

12、 阻塞赋值一般用于描述电平敏感的电路,例如组合逻辑电路和锁存器; 非阻塞赋值一般用于描述边沿敏感的电路,例如触发器。

A:正确
B:错误
答案: 正确

13、 使用远程实验平台虚拟面板验证单端口寄存器堆的功能
寄存器能够装入数据的条件是时钟使能信号Load为_(0/1)并且_(有/没有)时钟上升沿。 如果Load=0,有时钟上升沿,寄存器的内容将__(更新/保持不变)。
注意,三个填空的答案之间用#隔开,例如:0#有#更新
答案: 1#有#保持不变

14、 使用远程实验平台虚拟面板验证单端口寄存器堆的功能  
 执行下面的写操作操作,给寄存器堆内各个寄存器写入相应的值,完成后,寄存器R2的值应为____(5/6/7/8)。    D     INDEX   Load    CLK 0101    00          1     产生一个 0110    01          1     产生一个 0111    10          1     产生一个 1000    11          1     产生一个
答案: 7

15、 使用远程实验平台虚拟面板验证单端口寄存器堆的功能
读出各个寄存器的值,比较与写操作中保存在寄存器中的值是否一致。单端口寄存器读操作_(需要/不需要)等待时钟到来。单端口寄存器_(可以/不可以)同时写入和读出不同寄存器的值,因为它读操作和写操作地址端口index是__(独立的/共用的)。注意,三个填空的答案之间用#隔开。
答案: 不需要#不可以#共用的

16、 使用远程实验平台虚拟面板验证三端口寄存器堆的功能
 
执行下面的写操作操作,给寄存器堆内各个寄存器写入相应的值,完成后, 读出各个寄存器的值,比较与写操作中保存在寄存器中的值是否一致, 寄存器R3的值应为____(5/6/7/8)。  D      WA    WE    CLK 0101    00      1     产生一个 0110    01      1     产生一个 0111    10      1     产生一个 1000    11      1     产生一个
答案: 8

17、 使用远程实验平台虚拟面板验证三端口寄存器堆的功能
三端口寄存器 读操作的地址端口是_(WA/RA),写操作的地址端口是_(WA/RA),即读操作的和写操作的地址端口WE是___(独立的/共用的)。
注意,三个填空的答案之间用#隔开,例如:0#有#更新
答案: RA#WA#独立的

18、 使用远程实验平台虚拟面板验证三端口寄存器堆的功能
该三端口寄存器_(可以/不可以)在写入_(1/2)个寄存器的同时读出____(1/2)个寄存器的值。
答案: 可以#1#2

06 移位寄存器 单元测验06

1、 选出右移移位寄存器

A:module Shifter
( input Dsi,
input CLK,
output reg [3:0] Q);
always@(posedeg clk)
begin Q[3]<= Dsi; Q[2]<=Q[3]; Q[1]<=Q[2]; Q[0]<=Q[1];end endmodule
B:module Shifter
( input Dsi,
input CLK,
output reg [3:0] Q);
always@(posedeg clk)
begin Q[3]<=Q[2]; Q[2]<=Q[1]; Q[1]<=Q[0]; Q[0]<=Dsi; end endmodule
C:module Shifter
( input Dsi,
input CLK,
output reg [0:3] Q);
always@(posedeg clk)
begin Q[0]<= Dsi; Q[1]<=Q[0]; Q[2]<=Q[1]; Q[3]<=Q[2]; end endmodule
D:module Shifter
( input Dsi,
input CLK,
output reg [0:3] Q);
always@(posedeg clk) Q[0:3]<={ Dsi,Q[0:2]};endmodule
E:module Shifter
( input Dsi,
input CLK,
output reg [0:3] Q);
always@(posedeg clk) Q[0:3]<={Q[1:3],Dsi};endmodule
F:module Shifter
(input Dsi,
input [3:0] In,
input CLK,
output reg [3:0] Q);
always@(posedeg clk) if(Load) Q<= In; else Q<={Dsi,Q[3:1]};endmodule
G:module Shifter
(input Dsi,
input CLK,reset,
output reg [3:0] Q);
always@(posedge clk or posedge reset)  if(reset) Q<= 4’b1000;else Q<={Q[2:0],Q[3]}; end module
答案: module Shifter
( input Dsi,
input CLK,
output reg [3:0] Q);
always@(posedeg clk)
begin Q[3]<= Dsi; Q[2]<=Q[3]; Q[1]<=Q[2]; Q[0]<=Q[1];end endmodule;
module Shifter
( input Dsi,
input CLK,
output reg [0:3] Q);
always@(posedeg clk)
begin Q[0]<= Dsi; Q[1]<=Q[0]; Q[2]<=Q[1]; Q[3]<=Q[2]; end endmodule;
module Shifter
( input Dsi,
input CLK,
output reg [0:3] Q);
always@(posedeg clk) Q[0:3]<={ Dsi,Q[0:2]};endmodule;
module Shifter
(input Dsi,
input [3:0] In,
input CLK,
output reg [3:0] Q);
always@(posedeg clk) if(Load) Q<= In; else Q<={Dsi,Q[3:1]};endmodule

2、 使用远程实验平台虚拟面板验证流水灯
根据设计要求,并行装载是将输入端数据装入到移位寄存器,并行装载的时钟使能信号是_(iLoad/iEnable)。右移的时钟使能信号是_(iLoad/iEnable)。
注意,多个填空的答案之间用#隔开,例如:三个空,答案填写为:0#有#更新
答案: iLoad#iEnable

3、 使用远程实验平台虚拟面板验证流水灯
本实验设计的流水灯移位寄存器是将移位寄存器__(内部保存的数据Q/输入端数据iD)移位。
答案: 内部保存的数据Q

4、 使用远程实验平台虚拟面板验证流水灯
在时钟上升沿到来时,如果并行装载和右移的控制信号同时有效,该流水灯的功能是__(并行载入/右移)。
答案: 并行载入

5、 如果想实现逻辑右移,需要将__(0/1/Q[7]/Q[0])连接到iLeftIn。
答案: 0

6、 如果想实现算术右移,需要将__(0/1/Q[7]/Q[0])连接到iLeftIn。
答案: Q[7]

7、 如果想实现循环右移,需要将__(0/1/Q[7]/Q[0])连接到iLeftIn。
答案: Q[0]

8、 根据编译结果,范例1的逻辑资源占用比范例2____(多/少)。
答案: 少

9、 使用远程实验平台虚拟面板验证跳跃流水灯发现,循环左移7位相当于循环右移___位。
答案: 1

10、 Verilog的运算符“>>”是____(左移/右移)运算符。
答案: 右移

11、 Verilog的算术右移运算符是“____”。
答案: >>>


下方是付费阅读内容:本平台商品均为虚拟商品,无法用作二次销售,不支持退换货,请在购买前确认您需要购买的资料准确无误后再购买,望知悉!


完整答案需点击上方按钮支付5元购买,所有答案均为章节测试答案,购买后上方矩形框将出现已付费的隐藏内容。


如果点击【立即购买】不能跳转,请更新一下APP版本,如百度APP可能有兼容性问题,更新版本即可正常使用,或者换一个浏览器(如UC浏览器)再试试

不知道怎么购买?点击这里查看购买教程!


下方是13章及之后的测试答案

13 硬布线控制 单元测验13

1、 实验电路中,指令存储器是只读存储器,字长是 14 位,有 16 个存储单元,可以存放 16 条指令。

A:正确
B:错误
答案: 正确

2、 实验指令系统,指令格式编码分为5个字段,opcode字段:instruction[15:0]第一个源操作数寄存器:instruction[9:8]第二个源操作数寄存器:instruction[7:6]目的操作数寄存器:instruction[5:4]立即数字段:instruction[3:0]

A:正确
B:错误
答案: 错误

3、 实验电路中,指令的执行包括取指令、取操作数、执行、保存结果。R型指令的执行过程:(1)取指令:指令地址寄存器PC提供指令地址,指令存储器中读出指令,取到指令后,控制器需要根据指令编码,译码产生指令执行过程中需要的控制信号,保证指令执行;(2)取操作数:寄存器堆根据指令提供的源操作数寄存器号,读出源操作数rs1和rs2;(3)执行:多路器根据控制器产生的选择控制信号,把源操作数rs2送到ALU,ALU根据控制器产生的运算控制信号,确定功能,对rs1和rs2执行操作;(4)保存结果:寄存器堆根据控制器产生的写控制信号,保存ALU的结果到rd,PC自增。

A:正确
B:错误
答案: 正确

4、 实验电路中,指令的执行包括取指令、取操作数、执行、保存结果。I型指令的执行过程(1)取指令:指令地址寄存器PC提供指令地址,指令存储器中读出指令,取到指令后,控制器需要根据指令编码,产生指令执行过程中需要的控制信号,保证指令执行;(2)取操作数:寄存器堆根据指令提供的源操作数寄存器号,读出源操作数rs1和rs2;(3)执行:多路器根据控制器产生的选择控制信号,把源操作数rs2送到ALU,ALU根据控制器产生的运算控制信号,对rs1和imm执行操作;(4)保存结果:寄存器堆根据控制器产生的写控制信号,保存ALU的结果到rd,PC自增。

A:正确
B:错误
答案: 错误

5、 实验电路中,指令的执行包括取指令、取操作数、执行、保存结果。B型指令的执行过程(1)取指令:指令地址寄存器PC提供指令地址,指令存储器中读出指令,取到指令后,控制器需要根据指令编码,产生指令执行过程中需要的控制信号,保证指令执行;(2)取操作数:寄存器堆根据指令提供的源操作数寄存器号,读出源操作数rs1和rs2;(3)执行:多路器根据控制器产生的选择控制信号,把源操作数rs2送到ALU,ALU根据控制器产生的运算控制信号,确定功能,对rs1和rs2执行操作;(4)保存结果:寄存器堆根据控制器产生的写控制信号,保存ALU的结果到rd,两个源操作数的比较结果,决定PC是装载imm表示的转移地址,还是PC自增。

A:正确
B:错误
答案: 错误

6、 根据实验指令系统,将汇编语言程序翻译为机器指令程序。 addi r1,r0,#1对应的二进制机器指令为:__.(答案格式:二进制表示,无效字段填0,不要包含空格、下划线等其它符号)
答案: 01100000010001

7、 根据实验指令系统,将汇编语言程序翻译为机器指令程序addi r3,r0,#1对应的二进制机器指令为:__.(答案格式:二进制表示,无效字段填0,不要包含空格、下划线等其它符号)
答案: 01100000110001

8、 根据实验指令系统,将汇编语言程序翻译为机器指令程序ori  r2,r0,#5对应的二进制机器指令为:__.(答案格式:二进制表示,无效字段填0,不要包含空格、下划线等其它符号)
答案: 10000000100101

9、 根据实验指令系统,将汇编语言程序翻译为机器指令程序bge  r1,r2,#6对应的二进制机器指令为:__.(答案格式:二进制表示,无效字段填0,不要包含空格、下划线等其它符号)
答案: 11010110000110

10、 根据实验指令系统,将汇编语言程序翻译为机器指令程序sub  r2,r2,r3对应的二进制机器指令为:__.(答案格式:二进制表示,无效字段填0,不要包含空格、下划线等其它符号)
答案: 00101011100000

11、 根据实验指令系统,将汇编语言程序翻译为机器指令程序beq  x0,x0,#3 对应的二进制机器指令为:__.(答案格式:二进制表示,无效字段填0,不要包含空格、下划线等其它符号)
答案: 10100000000011

12、 根据实验指令系统,将汇编语言程序翻译为机器指令程序beq  x0,x0,#6 对应的二进制机器指令为:__.(答案格式:二进制表示,无效字段填0,不要包含空格、下划线等其它符号)
答案: 10100000000110

14 RISC-V指令系统 单元测验13

1、 指令集是CPU中用来计算和控制计算机系统的一套指令的集合,例如:

A:X86
B:MIPS
C:RISC-V
D:LoongArch
E:Alpha
F:ARM
答案: X86;
MIPS;
RISC-V;
LoongArch;
Alpha;
ARM

2、 RISC(Reduced Instruction Set Computing,精简指令集)通过减少指令种类、规范指令格式和简化寻址方式,保持指令集的小而简单,使它更容易建立快速的硬件,复杂的操作由软件组合简单的操作来完成,RISC指令集例如:

A:X86
B:MIPS
C:RISC-V
D:LoongArch
E:Alpha
F:ARM
答案: MIPS;
RISC-V;
LoongArch;
Alpha;
ARM

3、 了解RISC-V,选中描述正确的选项。

A:RISC-V,2010 年初由加州大学伯克利分校开发。
B:寄存器是硬件设计的基本元素,是计算机构建的砖块,当前RISC-V寄存器数为32个,以及一个程序计数器PC。
C:RISC-V指令集与X86指令集都可以支持提供3个操作数的指令。
D:RISC-V简化指令系统体系结构,将x0寄存器硬连线到常数0。
E:RV32I的指令格式包括R,I,S,U,B,J六种类型。
答案: RISC-V,2010 年初由加州大学伯克利分校开发。;
寄存器是硬件设计的基本元素,是计算机构建的砖块,当前RISC-V寄存器数为32个,以及一个程序计数器PC。;
RISC-V简化指令系统体系结构,将x0寄存器硬连线到常数0。;
RV32I的指令格式包括R,I,S,U,B,J六种类型。

4、 RISC-V指令系统划分为命名为I的基本体系结构(base architecture),以及几个扩展(extension)体系结构,例如:

A:M,整数乘法/除法
B:A,原子操作
C:F,单精度浮点
D:D,双精度浮点
E:C,压缩指令
答案: M,整数乘法/除法;
A,原子操作;
F,单精度浮点;
D,双精度浮点;
C,压缩指令

5、  熟悉开源软件Ripes的编辑器和汇编器的使用

A:点击Editor标签,可以在source code栏编写汇编语言程序,语法正确的汇编指令,会在右边的executable code栏显示对应汇编语言的机器指令。
B: Binary显示方式下,显示对应汇编指令的十六进制值和反汇编的表示 
C:Dissassemble显示方式下,显示对应汇编指令的十六进制值和二进制值的表示 
D:如果输入语法错误的汇编指令,该指令下方会有红色波浪标记线提示,且该指令不会出现在executable code栏
答案: 点击Editor标签,可以在source code栏编写汇编语言程序,语法正确的汇编指令,会在右边的executable code栏显示对应汇编语言的机器指令。;
如果输入语法错误的汇编指令,该指令下方会有红色波浪标记线提示,且该指令不会出现在executable code栏

6、 熟悉开源软件Ripes的RISC-V模拟器的使用

A:通过工具栏”select processor“图标,打开的窗口中可以进行RISC-V处理器选择。
B:计算机组成与CPU设计实验(江苏大学)  中国大学MOOC答案2024版100分完整版第1张图示中与指令运行相关的工具按钮从左到右的顺序依次分别表示:复位撤消一个时钟产生一个时钟以设定的时间间隔自动产生时钟快速运行
C:single Cycle Precessor选项表示单周期RISC-V处理器,它的默认配置中,x3寄存器的值为0x10000000,表示代码段的起始地址
D:点击processor标签,打开的数据通路中,绿色点表示有效的信号或者选择的通路,红色点表示无效
答案: 通过工具栏”select processor“图标,打开的窗口中可以进行RISC-V处理器选择。;
计算机组成与CPU设计实验(江苏大学)  中国大学MOOC答案2024版100分完整版第1张图示中与指令运行相关的工具按钮从左到右的顺序依次分别表示:复位撤消一个时钟产生一个时钟以设定的时间间隔自动产生时钟快速运行;
点击processor标签,打开的数据通路中,绿色点表示有效的信号或者选择的通路,红色点表示无效

7、 使用Ripe模拟器调试指令addi x18,x0,0x555以下是对该条指令执行的描述:1.复位后,PC的值是0;2.从指令存储器InstrMemory的输出Instr观察到数据0x55500913H;3.Registers的WrEn信号有效,该信号的标记显示为绿色;4.Registers的R1idx=0x00H,因此Reg1读出寄存器x0的值,参与ALU运算;5.Registers的Wr idxA=0x12H,即十进制的18,表示有数据要写入x18寄存器中;6.立即数生成模块Imm给ALU提供运算数0x00000555H;7.不生产转移控制信号Branchtaken,该信号的标记显示为红色;8.不产生数据存储器Datamemory写控制信号WrEn,该信号的标记显示为红色;9.ALU的运算结果0x00000555H写入x18寄存器中;10.NextPC=PC+4。计算机组成与CPU设计实验(江苏大学)  中国大学MOOC答案2024版100分完整版第3张

A:正确
B:错误
答案: 正确

8、 使用Ripe模拟器调试指令sw x18,8(x3)调试指令 sw x18,8(x3)以下是对该条指令执行的描述:1.从指令存储器InstrMemory的输出Instr观察到数据0x0121a423H;2.Registers的WrEn信号无效,该信号的标记显示为红色;3.Registers的R1idx=0x03H,因此Reg1读出寄存器x3的值,参与ALU运算;4.Registers的R2idx=0x12H,因此Reg2读出寄存器x12的值,参与ALU运算;5.立即数生成模块Imm给ALU提供运算数0x00000008H;6.不生产转移控制信号Branchtaken,该信号的标记显示为红色;7.产生数据存储器Datamemory写控制信号WrEn,该信号的标记显示为绿色;8.数据存储器Datain端口的数据将被保存到Addr地址端口指示的单元中;9.ALU的运算结果0x10000008H用来给数据存储器提供地址;10.NextPC=PC+4。计算机组成与CPU设计实验(江苏大学)  中国大学MOOC答案2024版100分完整版第4张

A:正确
B:错误
答案: 错误

9、 使用Ripe模拟器调试指令lw x19,8(x3)以下是对该条指令执行的描述:1.从指令存储器InstrMemory的输出Instr观察到数据0x0081a983H;2.Registers的WrEn信号有效,该信号的标记显示为绿色;3.Registers的R1idx=0x03H,因此Reg1读出寄存器x3的值0x10000000H,参与ALU运算;4.Registers的Wr idxA=0x13H,即十进制的19,表示有数据要写入x19寄存器中;5.立即数生成模块Imm给ALU提供运算数0x00000008H;6.不生产转移控制信号Branchtaken,该信号的标记显示为红色;7.不产生数据存储器Datamemory写控制信号WrEn,该信号的标记显示为红色;8.ALU的运算结果0x100000008H用来给数据存储器Datamemory提供地址;9.数据存储器Datamemory的地址为0x100000008H的单元中的数据,写入x19寄存器中;10.NextPC=PC+4。计算机组成与CPU设计实验(江苏大学)  中国大学MOOC答案2024版100分完整版第5张

A:正确
B:错误
答案: 正确

10、 使用Ripe模拟器调试指令or x20,x18,x19以下是对该条指令执行的描述:1.从指令存储器InstrMemory的输出Instr观察到数据0x01396a33H;2.Registers的WrEn信号有效,该信号的标记显示为绿色;3.Registers的R1idx=0x12H,因此Reg1读出寄存器x18的值,参与ALU运算;4.Registers的R2idx=0x13H,因此Reg2读出寄存器x19的值,参与ALU运算;5.Registers的Wr idxA=0x14H,即十进制的20,表示有数据要写入x20寄存器中;6.不生产转移控制信号Branchtaken,该信号的标记显示为红色;7.不产生数据存储器Datamemory写控制信号WrEn,该信号的标记显示为红色;8.ALU的运算结果写入x20寄存器中9.NextPC=PC+4。计算机组成与CPU设计实验(江苏大学)  中国大学MOOC答案2024版100分完整版第6张

A:正确
B:错误
答案: 正确

11、 使用Ripe模拟器调试指令beq x20,x19,-161.从指令存储器InstrMemory的输出Instr观察到数据0xff3a08e3;2.Registers的WrEn信号无效,该信号的标记显示为红色;3.Registers的R1idx=0x14H,因此Reg1读出寄存器x20的值;4.Registers的R2idx=0x13H,因此Reg2读出寄存器x19的值;5.PC模块给ALU提供运算数0经00000010H,即十进制16;6.立即数生成模块Imm给ALU提供运算数0xFFFFFFF0,即十进制-16;7.不产生数据存储器Datamemory写控制信号WrEn,该信号的标记显示为红色;8.生产转移控制信号Branchtaken,该信号的标记显示为绿色;9.NextPC=PC+4。计算机组成与CPU设计实验(江苏大学)  中国大学MOOC答案2024版100分完整版第7张

A:正确
B:错误
答案: 错误

12、 指令addi x18,x0,0x555是_(R/I/S/U/B/J)型指令,十六进制机器码值是_,其中opcode字段为_(填写二进制数值),fun3字段为_,rd字段为__。(每空用#隔开,答案示例:I#55500913#0010011#000#10010)
答案: I#55500913#0010011#10010

13、 指令sw x18,8(x3)是_(R/I/S/U/B/J)型指令,十六进制机器码值是_(例如 R#00000000),其中opcode字段为_(填写二进制数值),fun3字段为_,该指令将_(x18/x3/memory[8+x3])的值写入目的地址_(x18/x3/memory[8+x3])。(每空用#隔开,答案示例:I#55500913#0010011#000#x18#x18)
答案: S#0121a423#0100011#010#x18#memory[8+x3]

14、 指令lw x19,8(x3)_(R/I/S/U/B/J)型指令,十六进制机器码值是_(例如 R#00000000),其中opcode字段为_(填写二进制数值),fun3字段为_,该指令将_(x19/x3/memory[8+x3])的值写入目的地址_(x19/x3/memory[8+x3])。(每空用#隔开,答案示例:I#55500913#0010011#000#x18#x18)
答案: S#0081a983#0000011#010#memory[8+x3]#x19

15、 指令or x20,x18,x19_(R/I/S/U/B/J)型指令,十六进制机器码值是_(例如 R#00000000),其中opcode字段为_(填写二进制数值),fun3字段为_,fun7字段为_,rd字段为_。(每空用#隔开,答案示例:I#55500913#0010011#000#10010)
答案: R#01396a33#0110011#110#0000000#10100

16、 指令beq x20,x19,-16_(R/I/S/U/B/J)型指令,十六进制机器码值是_(例如 R#00000000),其中opcode字段为_(填写二进制数值),该指令在x20和_(x20/x19/-16)的情况下,跳转到地址__(x20/x19/pc-16)。(每空用#隔开,答案示例:I#55500913#0010011#x10#x10#)
答案: B#ff3a08e3#1100011#19#pc-16

17、 汇编指令beq x20,x19,-16 不符合ripes的汇编器语法格式,需要使用地址标签代替指令中表示地址偏移量的立即数-16,例如使用地址标签L1,在该指令满足条件时要跳转的代码行处作如下标记: L1:addi x18,x0,0x555将原指令beq x20,x19,-16修改为beq x20,x19,__。
答案: L1

18、 .data和.text是汇编指示字,分别用于定义__(数据段/代码段)。每空用#隔开
答案: 数据段#代码段

19、 熟悉Ripes软件工具栏所有工具的用法下面哪一个工具图标,可以打开导航工具,看到代码中所有地址标签。计算机组成与CPU设计实验(江苏大学)  中国大学MOOC答案2024版100分完整版第8张
答案: 7

20、 使用select processor工具选择单周期RISC-V处理器后,使用Precessor标签可以打开数据通路后,在Register面板中,可以观察到各个寄存器的名称、别名和当前的值,x3寄存器的别名为__.
答案: gp

21、 使用Memory标签可以打开存储器视图,使用该视图最下方的go to section,可以选择要观察的存储器区域,其中:选择Address…, 表示_(察看代码段/察看数据段/察看输入的任意目标地址);选择.text,表示_(察看代码段/察看数据段/察看输入的任意目标地址);选择.data, 表示__(察看代码段/察看数据段/察看输入的任意目标地址);使用该视图最下方的Display,可以选择显示方式,其中:选择Hex,表示 _(十六进制/二进制/无符号数/有符号数/ASCII码)显示。各空使用#隔开
答案: 察看输入的任意目标地址#看代码段#看数据段#十六进制

22、 使用Ripe模拟器调试指令addi x18,0,0x555sw x18,0(gp)sw指令运行完成后,以十六进制显示方式查看Memory视图的数据段,观察lw访问的地址是黑色标亮的(其余未访问地址为灰色,下图是示例图,不是该指令的执行结果):计算机组成与CPU设计实验(江苏大学)  中国大学MOOC答案2024版100分完整版第9张Address列的值为_;Word列的值为为_;Byte0列的值为_;Byte1列的值为_;Byte2列的值为_;Byte3列的值为_。各空用#隔开
答案: 0x00000555#0x55#0x05#0x00#0x00

作业14 RISC-V指令系统 单元作业13

1、 用RISC-V汇编语言编写一个程序,计算出斐波那契数列的前16个数,并存储在数据存储器中。用模拟器调试运行所编写的程序,配合截图分析说明运行过程和结果。斐波那契数列(Fibonacci sequence)是指这样一个数列:{1,1,2,3,5,8,13,21…},它的首项为1,第2项也为1,且从第3项起,每一项都等于它前两项之和。用符号定义如下:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n 2)(n ≥ 3,n ∈ N*)。C语言参考程序如下:int fa[16];void main(){int t1=1, t2=1, nextTerm;     for (i=0; i<16; i++){           fa[i] = t1;        nextTerm = t1 + t2;        t1 = t2;        t2 = nextTerm;    }}(1)写出你编写的RISC-V汇编语言程序,要求使用循环结构,并添加必要的注释;(2)给出运行结果截图,进行简短的分析说明。注意:程序和截图均直接写在答案框中,请勿使用附件。
评分规则:  初始化循环结果分析说明计算机组成与CPU设计实验(江苏大学)  中国大学MOOC答案2024版100分完整版第10张

15 RISC-V微架构 RISC-V微架构

1、 熟悉实验平台操作:点击复位,用于RISC-V复位;点击微单步,发出一个脉冲用于执行一条单周期RISC-V指令,或者发出多个脉冲执行一条流水线RISC-V指令。

A:正确
B:错误
答案: 错误

2、 熟悉实验平台操作:通过指令存储器窗口可以输入汇编指令,输入的指令可以导出保存,格式为指令存储器.jcm.

A:正确
B:错误
答案: 错误

3、 熟悉实验平台操作:通过数据存储器窗口可以写入或读出数据,当前存储器的内容可以导出保存,格式为数据存储器.jcm.

A:正确
B:错误
答案: 错误

4、 熟悉实验平台操作:调试的指令如果有写数据存储器的操作,可以在数据窗口相应的地址观察到自动更新的数据。

A:正确
B:错误
答案: 错误

5、 熟悉实验平台操作:数据通路中的绿色线表示当前指令的信息流,正确的设计显示正确的信息流,错误的设计显示错误的信息流,方便调试自己的设计。

A:正确
B:错误
答案: 正确

6、 熟悉实验平台操作:1位的控制信号有两种颜色表示,红色表示该控制信号有效,其值为1,黑色表示该控制信号无效,其值为0。

A:正确
B:错误
答案: 正确

7、 熟悉实验平台操作:多位的控制信息有两种颜色表示,红色表示该控制信号有效,黑色表示该控制信号无效。

A:正确
B:错误
答案: 错误

8、 熟悉实验平台操作:多位控制信息JUBSI的值为00001时,表示当前是按I型指令格式生成立即数。

A:正确
B:错误
答案: 错误

9、 熟悉实验平台操作:数据通路中的数值有两种颜色表示,蓝色表示当前数值有变化,黑色表示无变化,同时可以在运行记录窗口看到数值信息,目前的运行记录窗口显示10列数值信号。

A:正确
B:错误
答案: 错误

10、 理解RISC-V单周期微架构:不同于Ripes模拟器默认的数据存储器初始地址为0x10000000H,本实验的RISC-V微架构的数据存储器地址从0开始。

A:正确
B:错误
答案: 正确

11、 理解RISC-V单周期微架构:本实验中,点击“复位CPU”按钮时寄存器堆清0。

A:正确
B:错误
答案: 错误

12、 理解RISC-V单周期微架构:本实验指令存储器的容量为____个字。
答案: 512

13、 理解RISC-V单周期微架构:本实验数据存储器的容量为____个字。
答案: 64

14、 理解RISC-V单周期微架构:指令sw x5,64(x0),将映射到数据存储器地址的____(0~63)
答案: 0

15、 理解RISC-V单周期微架构:调试以下五条指令:addi x1,x0,0x111ori  x2,x0,0x222xori x3,x0,0x333slli x4,x1,2add  x5,x2,x3五条指令执行完成后,各寄存器的值为:x1=0x00000111x2=0x00000222x3=0x00000333x4=______x5=0x00000555
答案: 0x00000444

16、 理解RISC-V流水线微架构:调试以下五条指令:addi x1,x0,0x111ori  x2,x0,0x222xori x3,x0,0x333slli x4,x1,2add  x5,x2,x3由于发生数据相关冲突,五条指令执行完成后,各寄存器的值为:x1=0x00000111x2=0x00000222x3=0x00000333x4=__x5=____(多空之间用#隔开,例如0x00000000#0x00000000)计算机组成与CPU设计实验(江苏大学)  中国大学MOOC答案2024版100分完整版第11张五条示例指令流水执行参考示意图
答案: 0x00000000#0x00000000

17、 理解RISC-V流水线微架构:nop是表示空操作的汇编伪指令,对应的RISC-V指令是__。(分割用的空格只写一个,逗号前后没有空格)
答案: (以下答案任选其一都对)addi x0,x0,0;
addi x0 x0 0

18、 理解流水线的相关冲突:实验中的示例程序addi x1,x0,0x111ori  x2,x0,0x222xori x3,x0,0x333slli x4,x1,2add  x5,x2,x3在单周期微架构中运行,需要5个时钟周期;在流水线微架构中运行,需要9个时钟周期。假设流水线五个阶段需要的执行时间相等,都为T,那么示例程序需要的执行时间为9T;单周期微架构的时钟周期为5T,那么示例程序五条指令顺序执行需要的时间为25T;所以加速比为__:_____。(两空之间用#隔开,例如3#2)
答案: 25#9

16 CPU设计:实现ADDI指令 实现ADDI指令

1、 掌握ADDI指令的数据通路。实验中ADDI指令需要的数据通路和控制单元包括:

A:指令存储器,用于存放程序的机器指令代码;
B:程序计数器,用于存放指令的地址;
C:加法器,用于计算下一条指令的地址;
D:寄存器堆,用于读取指令的操作数和写入指令执行的结果;
E:立即数生成单元,用于根据当前的指令产生立即数;
F:数据存储器,用于读取指令的操作数和写入指令执行的结果;
G:运算器,用于执行加法计算;
H:控制器,用于根据指令产生控制信号。
答案: 指令存储器,用于存放程序的机器指令代码;;
程序计数器,用于存放指令的地址;;
加法器,用于计算下一条指令的地址;;
寄存器堆,用于读取指令的操作数和写入指令执行的结果;;
立即数生成单元,用于根据当前的指令产生立即数;;
运算器,用于执行加法计算;;
控制器,用于根据指令产生控制信号。

2、 掌握参考代码的框架。代码框架示意图如下。计算机组成与CPU设计实验(江苏大学)  中国大学MOOC答案2024版100分完整版第12张指令存储器不在CPU模块内部,指令存储器的地址和数据定义在CPU模块的输入输出端口中:    // 指令存储器接口    output wire [ADDRWIDTH-1:0] oIM_Addr,   //指令存储器地址    input  wire [DATAWIDTH-1:0] iIM_Data,   //指令存储器数据CPU模块中由程序计数器给指令存储器提供地址: assign oIM_Addr =_;从指令存储器读到的数据,分别送到寄存器堆、立即数生成单元和控制器:assign_ = iIM_Data;不同空用#分隔
答案: pc#instruction

3、 掌握指令部件设计程序计数器由数据寄存器DateReg实例化得到,模块实例名为_,图示中,标记(1)位置的值是_(pc/nextpc),标记(2)位置的值是__(pc/nextpc)。不同空用#分隔计算机组成与CPU设计实验(江苏大学)  中国大学MOOC答案2024版100分完整版第13张
答案: pcreg#nextpc#pc

4、 掌握寄存器堆设计参考代码中给出了regFile的模块实例,将自己的寄存器堆源文件添加到工程中,注意端口名称映射时一致性。RegisterFile regFile(.Clk(clk), .iWE(cRegWrite), .iWA(wa), .iWD(regWriteData), .iRA1(ra1), .oRD1(regReadData1),.iRA2(ra2), .oRD2(regReadData2));写入寄存器堆的数据,来自运算部件的输出,assign __= aluOut;
答案: regWriteData

5、 掌握立即数生成部件设计I型指令的立即数有12位,是补码表示的带符号数,数值范围是-_~+_,立即数生成部件将其扩展为32位,参与运算,扩展的方法,是符号位复制。不同空用#分隔
答案: 2048#2047

6、 掌握运算部件设计本实验中的运算部分比较简单,只需要实现加法功能,加法运算的操作数分别来自__.(寄存器堆RD1的输出regReadData1/寄存器堆RD2的输出regReadData2/立即数生成输出immData)不同空用#分隔,例如寄存器堆RD1的输出regReadData1#寄存器堆RD2的输出regReadData2
答案: (以下答案任选其一都对)寄存器堆RD1的输出regReadData1#立即数生成输出immData;
立即数生成输出immData#寄存器堆RD1的输出regReadData1

7、 掌握控制器部件设计本实验的控制器部件根据从指令存储器得到的32位指令,产生对寄存器堆的控制信号和对立即数生成模块的控制信号。  // Control unit  logic cRegWrite;  riscv_defs::t_imm cImm_type;  Controller controller(    .iOpcode(instruction[6:0]),    .iFunct3(instruction[14:12]),    .oRegWrite(_),    .oImm_type(_)  );不同空用#分隔
答案: cRegWrite#cImm_type

8、 控制器部件产生的立即数生成模块的控制信号cImm_type是在riscv_defs中定义的结构体类型t_imm,表示JUBSI五种指令格式。package riscv_defs;    typedef struct packed{        logic J;         logic U;         logic B;         logic S;        logic I;    } t_imm; endpackage因为需要在多个模块中使用(例如控制器模块和立即数生成模块),为了不重复书写,参考代码中将它放在packet中进行声明,并写在独立文件中,其它模块需要引用的时候,只需要用include语句将该独立文件包含进来:`include “_“,并使用作用域运算符引用包里的内容 riscv_defs  _  t_imm 。不同空用#分隔
答案: definitions.sv#::

9、 掌握如何在代码中增加调试支持。结构体变量_,用于保存需要观察的控制信号,对应信号框虚拟元件WS;结构体变量_,用于保存需要观察的数值数据,对应数据框虚拟元件WD;虚拟元件的序号与结构体成员在结构体中的位置_(一一对应/无关);_(第一个成员/最后一个成员)对应的虚拟元件序号是0。增加需要观察的控制信号或数值数据时,先在结构体变量ws中添加观察信号的类型和名称,再在其后的always_comb块中对新添加的成员做赋值关联。不同空用#分隔
答案: ws#wd#一一对应#最后一个成员

10、 掌握ADDI指令的功能和格式。ADDI指令的一般形式为 addi rd,rs1,imm addi x6,x5,-1的机器码是0x__(使用十六进制表示结果,例如deca0123,字母小写)。
答案: fff28313

11、 掌握ADDI指令的功能和格式。ADDI指令的一般形式为 addi rd,rs1,imm addi x6,x5,-1的机器码中:Instruction[31:20]表示12位立即数,值为__(使用二进制表示结果,例如000000000000)。
答案: 111111111111

12、 掌握ADDI指令的功能和格式。ADDI指令的一般形式为 addi rd,rs1,imm addi x6,x5,-1的机器码中:Instruction[19:15]表示5位rs1,值为__(使用二进制表示结果,例如00000)。
答案: 00101

13、 掌握ADDI指令的功能和格式。ADDI指令的一般形式为 addi rd,rs1,imm addi x6,x5,-1的机器码中:Instruction[14:12]表示3位fun3,值为__(使用二进制表示结果,例如000)。
答案: 000

14、 掌握ADDI指令的功能和格式。ADDI指令的一般形式为 addi rd,rs1,imm addi x6,x5,-1的机器码中:Instruction[11:7]表示5位rd,值为__(使用二进制表示结果,例如00000)。
答案: 00110

15、 掌握ADDI指令的功能和格式。ADDI指令的一般形式为 addi rd,rs1,imm addi x6,x5,-1的机器码中:Instruction[6:0]表示7位opcode,值为__(使用二进制表示结果,例如0000000)。
答案: 0010011


为了方便下次阅读,建议在浏览器添加书签收藏本网页

添加书签方法:

1.电脑按键盘的Ctrl键+D键即可收藏本网页

2.手机浏览器可以添加书签收藏本网页

计算机组成与CPU设计实验(江苏大学)  中国大学MOOC答案2024版100分完整版第14张

计算机组成与CPU设计实验(江苏大学)  中国大学MOOC答案2024版100分完整版第15张


获取更多慕课答案,欢迎在浏览器访问我们的网站:http://mooc.mengmianren.com

计算机组成与CPU设计实验(江苏大学)  中国大学MOOC答案2024版100分完整版第16张计算机组成与CPU设计实验(江苏大学)  中国大学MOOC答案2024版100分完整版第17张

计算机组成与CPU设计实验(江苏大学)  中国大学MOOC答案2024版100分完整版第18张

注:请切换至英文输入法输入域名,如果没有成功进入网站,请输入完整域名:http://mooc.mengmianren.com/


我们的公众号

打开手机微信,扫一扫下方二维码,关注微信公众号:萌面人APP

本公众号可查看各种网课答案,还可免费查看大学教材答案

点击这里,可查看公众号功能介绍

计算机组成与CPU设计实验(江苏大学)  中国大学MOOC答案2024版100分完整版第19张


一键领取淘宝,天猫,京东,拼多多无门槛优惠券,让您购物省省省,点击这里,了解详情