基于Verilog HDL与虚拟实验平台的计算机组成与CPU实验第九章:多功能运算电路

简介: 基于Verilog HDL与虚拟实验平台的计算机组成与CPU实验第九章:多功能运算电路

1多选(3分)

选出正确的负数的4位补码与真值的对应关系

得分/总分

A.补码:1010

真值:-6

B.补码:1001

真值:-7

C.补码:1011

真值:-5

D.补码:1000

真值:-8

正确答案:A、B、C、D

2多选(3分)

加减运算电路参考设计中,如果操作数 {y3,y2,y1,y0}=4‘b0101,选出下列描述正确的选项

得分/总分

A.当M=0时,C0=0,{b3,b2,b1,b0}的值为0101

B.当M=1时,C0=1,{b3,b2,b1,b0}的值为1010

C.当M=0时,C0=0,{b3,b2,b1,b0}的值为1010

D.当M=1时,C0=10,{b3,b2,b1,b0}的值为0101

正确答案:A、B

3多选(3分)

加减运算电路参考设计中,ADDER模块将操作数A,B,C0的值相加,在提供的参考代码里可以看到:

assign {carry,F[3:0]}=A+B+C0; A,理解通过增加门电路逻辑使得加法器实现补码加减运算的原理。

得分/总分

A.使运算电路的输出F=dst - src,要使M=0

B.使运算电路的输出F=dst - src,要使M=1

C.使运算电路的输出F=dst + src,要使M=0

D.使运算电路的输出F=dst + src,要使M=1

正确答案:B、C你选对了

4多选(3分)

对照标志位和真值,选出正确的描述。

得分/总分

A.溢出标志OF是按照无符号数的;

进位标志CF是按照补码运算的结果设置的。

B.溢出标志OF是按照补码的运算结果设置的;

进位标志CF是按照无符号数运算的结果设置的。

C.如果运算数是无符号数,运算结果是否溢出是O反映的;

如果运算数是有符号补码数,运算结果是否溢出是由C反映的。

D.如果运算数是无符号数,运算结果是否溢出是 C反映的;

如果运算数是有符号补码数,运算结果是否溢出是由O反映的。

正确答案:B、D

5多选(3分)

4位二进数制能表示数值的范围是_____。

得分/总分

A.4位无符号数能表示数值的范围是1-16

B.4位补码能表示数值范围是-7 ~ +8

C.4位补码能表示数值范围是-8 ~ +7

D.4位无符号数能表示数值的范围是0-15

正确答案:C、D你选对了

6多选(3分)

减法运算是转换为加法计算的,设置M=1,F=dst - src,此时:

得分/总分

A.C0=1

B.C0=0

C.x=dst

D.y=src

正确答案:A、C、D

7多选(3分)

观察与分析减法运算时,是否产生借位和标志位C的关系。

得分/总分

A.当dst-src够减,没有产生借位时,CF=1

B.CF标志与减法运算有没有产生借位有关系

C.CF标志与减法运算有没有产生借位没有关系

D.当dst-src不够减,减法运算产生借位时,CF=0

正确答案:A、B、D你错选为B、D


image.png

9多选(3分)

验证加减运算电路参考设计,令运算电路做做加法运算 F=dst+src ,将运算数和运算结果视为无符号数,分析运算数和运算结果的真值。

得分/总分

A.运算操作数:1000 + 1000,对应的运算数和结果真值:8+8=0,零标志为1,进位标志为1

B.运算操作数:1100 + 1011 ,对应的运算数和结果真值: 12+11=7,进位标志为1

C.运算操作数:1000 + 0001,对应的运算数和结果真值:8+1=9

D.运算操作数:0011 + 1011 ,对应的运算数和结果真值:3+11=14

正确答案:A、B、C、D

10多选(3分)

验证加减运算电路参考设计,令运算电路做做加法运算 F=dst + src ,将运算数和运算结果视为补码,分析运算数和运算结果的真值。

得分/总分

A.运算操作数:1100 + 1011

对应的运算数和结果真值:(-4)+(-5)= +7 ,溢出标志为1

B.运算操作数:1000 + 1000

对应的运算数和结果真值:(-8)+(-8) =0 ,零标志为1,溢出标志为1

C.运算操作数:0011 + 1011

对应的运算数和结果真值:3+(-5)=-2,负标志为1

D.运算操作数:1100 + 0101

对应的运算数和结果真值:(-4)+ 5 = 1

正确答案:A、B、C、D

11多选(3分)

‌实验任务2多功能运算电路,相比实验任务1的多功能加减电路,增加了哪些功能?

得分/总分

A.减法(SUB)

B.带进位加法(ADDC)

C.带借位减法(SUBB)

D.逻辑右移(LSR)

正确答案:B、C

12填空(2分)

验证加减运算电路参考设计,使运算电路的输出F=dst + src,根据加法运算的结果分析标志位生成:

标志Z(ZeroFlag)的生成和_____(F/C/F及C)有关

得分/总分

F

正确答案:F

13填空(2分)

验证加减运算电路参考设计,使运算电路的输出F=dst + src,根据加法运算的结果分析标志位生成:

溢出标志O(OverFlag)和进位标志C_____(有/没有)直接的联系。

得分/总分

没有

正确答案:没有

14填空(2分)

运算器电路是否“知道”运算数是有符号数还是无符号数?_____(是/否)

得分/总分

正确答案:否

15填空(2分)

‎实验任务2多功能运算电路,令运算器实现传送运算F=X,相应的控制信号应该设置为{SR,SV,SL,M3,M2,M1,M0}=________。(填写二进制数值,例如0011010)

得分/总分

100000

正确答案:0100000

16填空(2分)

‍实验任务2多功能运算电路,令运算器实现加法运算F=X+Y,相应的控制信号应该设置为{SR,SV,SL,M3,M2,M1,M0}=________。(填写二进制数值,例如0011010)

得分/总分

100001

正确答案:0100001

17填空(2分)

‌实验任务2多功能运算电路,令运算器实现减法运算F=X-Y,相应的控制信号应该设置为{SR,SV,SL,M3,M2,M1,M0}=________。(填写二进制数值,例如0011010)

得分/总分

100110

正确答案:0100110

18填空(2分)

实验任务2多功能运算电路,令运算器实现左移运算F=2X,相应的控制信号应该设置为{SR,SV,SL,M3,M2,M1,M0}=________。(填写二进制数值,例如0011010)

得分/总分

100000

正确答案:0010000

19填空(2分)

实验任务2多功能运算电路,令运算器实现右移运算F=X/2,相应的控制信号应该设置为{SR,SV,SL,M3,M2,M1,M0}=________。(填写二进制数值,例如0011010)

得分/总分

100000

正确答案:1000000

20填空(2分)

实验任务2多功能运算电路,令运算器实现取反运算F=~X,相应的控制信号应该设置为{SR,SV,SL,M3,M2,M1,M0}=________。

得分/总分

100011

正确答案:100011

21填空(2分)

‏实验任务2多功能运算电路,令运算器实现取反运算F=X+1,相应的控制信号应该设置为{SR,SV,SL,M3,M2,M1,M0}=________。

得分/总分

100100

正确答案:0100100

22填空(2分)

实验任务2多功能运算电路,令运算器实现取反运算F=X-1,相应的控制信号应该设置为{SR,SV,SL,M3,M2,M1,M0}=________。

得分/总分

100011

正确答案:0100011

23填空(2分)

‌实验任务2多功能运算电路,令运算器实现带进位加法运算F=X+Y+Cin,相应的控制信号应该设置为{SR,SV,SL,M3,M2,M1,M0}=________。(填写二进制数值,例如0011010)

得分/总分

101001

正确答案:0101001

24填空(2分)

‎实验任务2多功能运算电路,令运算器实现带借位减法运算F=X-Y-Cin,相应的控制信号应该设置为{SR,SV,SL,M3,M2,M1,M0}=________。(填写二进制数值,例如0011010)

得分/总分

101010

正确答案:0101010

25填空(2分)

验证加减运算电路参考设计,使运算电路的输出F=dst + src,根据加法运算的结果分析标志位生成:

负标志S(SignFlag)就是运算结果的_____(最高位/最低位)。

得分/总分

最高位

正确答案:最高位

26填空(2分)

实验任务2多功能运算电路实现带借位减法运算F=X-Y-Cin时,Cin代表的是 _____(借位/借位的反)。

得分/总分

借位的反

正确答案:借位的反

解析: 减法转换为加法计算,所以,F =dst - src - 借位 = dst + src的反 + 1 - 借位 = dst + src的反 + 借位的反

实验代码

`default_nettype none 
module VirtualBoard (
    input  logic  CLOCK,      // 10 MHz Input Clock 
    input  logic [19:0] PB,   // 20 Push Buttons, logical 1 when pressed
    input  logic [35:0] S,    // 36 Switches
    output logic [35:0] L,    // 36 LEDs, drive logical 1 to light up
    output logic  [7:0] SD7,  // 8 common anode Seven-segment Display
    output logic  [7:0] SD6,
    output logic  [7:0] SD5,
    output logic  [7:0] SD4,
    output logic  [7:0] SD3,
    output logic  [7:0] SD2,
    output logic  [7:0] SD1,
    output logic  [7:0] SD0
); 
/** The input port is replaced with an internal signal **/
wire M0   = S[9];
wire M1   = S[10];
wire Cin=S[8];
wire M2=S[11];
wire M3=S[12];
wire [3:0] X = S[7:4];
wire [3:0] Y = S[3:0];
wire SL=S[13];
wire SV=S[14];
wire SR=S[15];
wire [3:0]AV;
wire [3:0]AR;
wire [3:0]AL;
/************* The logic of this experiment *************/
wire [3:0] A,B,F;
wire C0;
wire sign, zero, overflow, carryOut;
assign A[3]=X[3]&SR|X[3]&SV|X[2]&SL;
assign A[2]=X[3]&SR|X[2]&SV|X[1]&SL;
assign A[1]=X[2]&SR|X[1]&SV|X[0]&SL;
assign A[0]=X[1]&SR|X[0]&SV|0&SL;
assign B = (Y&{4{M0}})|(~Y&{4{M1}});
assign C0 = M2|(Cin&M3);
assign {carryOut,F[3:0]} = A + B + C0;  
assign sign = F[3];
assign zero = (F==0) ? 1 : 0;  // ~|F;
assign overflow = (~A[3]) & ~B[3] & F[3] | (A[3]) & B[3] & ~F[3] ;
/****** Internal signal assign to output port *******/
assign L[3:0]  = B[3:0];
assign L[7:4]  = A[3:0]; 
assign L[12:9] = F;
assign L[26] = C0; 
assign L[21:18] = {sign, zero, overflow, carryOut};
endmodule


目录
相关文章
|
10月前
|
监控 Python
【python】实现cpu/内存监控的功能(非常简单)
【python】实现cpu/内存监控的功能(非常简单)
|
缓存 测试技术 数据中心
【计算机架构】计算 CPU 动态功耗 | 集成电路成本 | SPEC 基准测试 | Amdahl 定律 | MIPS 性能指标
【计算机架构】计算 CPU 动态功耗 | 集成电路成本 | SPEC 基准测试 | Amdahl 定律 | MIPS 性能指标
538 0
|
人工智能 并行计算 openCL
魔搭+Xinference 平台:CPU,GPU,Mac-M1多端大模型部署
随着 Llama2 的开源,以及通义千问、百川、智谱等国内大模型的问世,很多用户有了本地部署去尝试大模型的需求,然而硬件的需求阻碍了很多人的尝试,并不是所有人都拥有一块英伟达显卡的,所以 Llama2 问世不久,大神 Andrej Karpathy 的一个 weekend project 爆火——llama2.c。
魔搭+Xinference 平台:CPU,GPU,Mac-M1多端大模型部署
|
10月前
|
存储 Ruby 内存技术
【机组期末速成】CPU的结构与功能|CPU结构|指令周期概述|指令流水线|中断系统
【机组期末速成】CPU的结构与功能|CPU结构|指令周期概述|指令流水线|中断系统
307 1
|
16天前
|
存储 智能硬件
CPU的定义与功能与架构
CPU(中央处理器)是计算机的核心部件,负责执行程序指令、控制数据传输和进行运算。它能处理算术与逻辑运算,并协调其他硬件协同工作。x86架构源于英特尔,适用于PC和服务器,采用复杂指令集;ARM架构则由Acorn等公司开发,广泛用于移动设备和嵌入式系统,采用精简指令集,功耗低且能效比高。
55 5
|
2月前
|
存储 编译器 数据安全/隐私保护
【C++面向对象——类与对象】CPU类(头歌实践教学平台习题)【合集】
声明一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,以及两个公有成员函数run、stop。根据提示,在右侧编辑器补充代码,平台会对你编写的代码进行测试。​ 相关知识 类的声明和使用。 类的声明和对象的声明。 构造函数和析构函数的执行。 一、类的声明和使用 1.类的声明基础 在C++中,类是创建对象的蓝图。类的声明定义了类的成员,包括数据成员(变量)和成员函数(方法)。一个简单的类声明示例如下: classMyClass{ public: int
99 13
|
7月前
|
存储 缓存 数据处理
计算机临时存储CPU运算数据
【8月更文挑战第4天】
136 8
|
9月前
汇编语言(第四版) 实验一 查看CPU和内存,用机器指令和汇编指令编程
汇编语言(第四版) 实验一 查看CPU和内存,用机器指令和汇编指令编程
144 1
|
8月前
|
机器学习/深度学习 TensorFlow API
Keras是一个高层神经网络API,由Python编写,并能够在TensorFlow、Theano或CNTK之上运行。Keras的设计初衷是支持快速实验,能够用最少的代码实现想法,并且能够方便地在CPU和GPU上运行。
Keras是一个高层神经网络API,由Python编写,并能够在TensorFlow、Theano或CNTK之上运行。Keras的设计初衷是支持快速实验,能够用最少的代码实现想法,并且能够方便地在CPU和GPU上运行。
|
10月前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能平台PAI产品使用合集之如何在CPU服务器上使用PAIEasyRec进行分布式训练
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。