基于Verilog HDL与虚拟实验平台的计算机组成与CPU实验第十章:算术逻辑单元

简介: 基于Verilog HDL与虚拟实验平台的计算机组成与CPU实验第十章:算术逻辑单元

1多选(3分)

参考设计中的ALU可以实现哪些运算?

得分/总分

A.减法 F=X-Y

B.或 F=X|Y

C.加法 F=X+Y

D.异或F=X^Y

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

2多选(3分)

异或门常用于取反电路,选出正确的描述。

得分/总分

A.任意二进制位x,与1异或,结果是它相反数。

B.任意二进制位x,与0异或,结果是它的相反数。

C.任意二进制位x,与0异或,结果是它本身。

D.任意二进制位x,与1异或,结果是它本身。

正确答案:A、C

3填空(2分)

‌实验任务中ALU电路,令ALUop=0000,运算器实现传送运算F=X,相应的控制信号应该设置为{SR,SV,SL,M3,M2,M1,M0,S1,S0}=________。(填写二进制数值,例如001101011)

得分/总分

010011000

正确答案:010011000

4填空(2分)

‏实验任务中ALU电路,令ALUop=0000,运算器实现传送运算F=X,相应的控制信号应该设置为{SR,SV,SL,M3,M2,M1,M0,S1,S0}=________。(填写二进制数值,例如001101011)

得分/总分

010000000

正确答案:010000000

5填空(2分)

‍实验任务中ALU电路,令ALUop=0001,运算器实现加法运算F=X+Y,相应的控制信号应该设置为{SR,SV,SL,M3,M2,M1,M0,S1,S0}=________。

得分/总分

010000100

正确答案:010000100

6填空(2分)

‏实验任务中ALU电路,令ALUop=0010,运算器实现减法运算F=X-Y,相应的控制信号应该设置为{SR,SV,SL,M3,M2,M1,M0,S1,S0}=________。

得分/总分

010011000

正确答案:010011000

7填空(2分)

‎实验任务中ALU电路,令ALUop=0011,运算器实现与运算F=X&Y,相应的控制信号应该设置为{SR,SV,SL,M3,M2,M1,M0,S1,S0}=________。

得分/总分

010000101

正确答案:010000101

8填空(2分)

‌实验任务中ALU电路,令ALUop=0100,运算器实现或运算F=X|Y,相应的控制信号应该设置为{SR,SV,SL,M3,M2,M1,M0,S1,S0}=________。

得分/总分

010000110

正确答案:010000110

9填空(2分)

‎实验任务中ALU电路,令ALUop=0101,运算器实现异或运算F=X^Y,相应的控制信号应该设置为{SR,SV,SL,M3,M2,M1,M0,S1,S0}=________。

得分/总分

010000111

正确答案:010000111

10填空(2分)

‏实验任务中ALU电路,令ALUop=0110,运算器实现右移运算F=X/2,相应的控制信号应该设置为{SR,SV,SL,M3,M2,M1,M0,S1,S0}=________。

得分/总分

100000000

正确答案:100000000

11填空(2分)

‌实验任务中ALU电路,令ALUop=0111,运算器实现右移运算F=2X,相应的控制信号应该设置为{SR,SV,SL,M3,M2,M1,M0,S1,S0}=________。

得分/总分

010100100

正确答案:010100100

12填空(2分)

‍实验任务中ALU电路,令ALUop=1000,运算器实现取反运算F=~X,相应的控制信号应该设置为{SR,SV,SL,M3,M2,M1,M0,S1,S0}=________。

得分/总分

010001111

正确答案:010001111

13填空(2分)

‌实验任务中ALU电路,令ALUop=1001,运算器实现取加1运算F=X+1,相应的控制信号应该设置为{SR,SV,SL,M3,M2,M1,M0,S1,S0}=________。

得分/总分

010010000

正确答案:010010000

14填空(2分)

‌实验任务中ALU电路,令ALUop=1010,运算器实现取减1运算F=X-1,相应的控制信号应该设置为{SR,SV,SL,M3,M2,M1,M0,S1,S0}=________。

得分/总分

010001100

正确答案:010001100

15填空(2分)

‏实验任务中ALU电路,令ALUop=1011,运算器实现取带进位加法运算F=X+Y+Cin,相应的控制信号应该设置为{SR,SV,SL,M3,M2,M1,M0,S1,S0}=________。

得分/总分

010100100

正确答案:010100100

16填空(2分)

实验任务中ALU电路,令ALUop=1100,运算器实现取带借位减法运算F=X-Y-Cin,相应的控制信号应该设置为{SR,SV,SL,M3,M2,M1,M0,S1,S0}=________。

得分/总分

010101000

正确答案:010101000

17填空(2分)

实验任务中ALU电路,参与逻辑运算的两个运算数分别是X和________(X/Y/B)

得分/总分

正确答案:B

实验代码

`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 **/
logic M0;
logic M1;
wire Cin=S[8];
logic M2;
logic M3;
wire [3:0] X = S[7:4];
wire [3:0] Y = S[3:0];
logic SL;
logic SV;
logic SR;
logic SS1;
logic SS0;
logic [8:0] oSeg;
wire [3:0] iData=S[12:9];
always_comb
 begin 
  case(iData)
   4'h0:oSeg=9'b010000000;
  4'h1:oSeg=9'b010000100;
  4'h2:oSeg=9'b010011000;
  4'h3:oSeg=9'b000000101;
  4'h4:oSeg=9'b000000110;
  4'h5:oSeg=9'b000000111;
  4'h8:oSeg=9'b000001111;
  4'h6:oSeg=9'b100000000;
  4'h7:oSeg=9'b001000000;
  4'hB:oSeg=9'b010100100;
  4'hC:oSeg=9'b010101000;
  4'h9:oSeg=9'b010010000;
  4'hA:oSeg=9'b010001100;
default:oSeg=9'bx;
endcase
end
assign {SR,SV,SL,M3,M2,M1,M0,SS1,SS0}=oSeg[8:0];
/************* The logic of this experiment *************/
wire [3:0] A,B,F;
wire C0;
wire sign, zero, overflow, carryOut;
/*assign A[31]=X[31]&SR|X[31]&SV|X[30]&SL;
assign A[30]=X[31]&SR|X[30]&SV|X[29]&SL;
assign A[29]=X[30]&SR|X[29]&SV|X[28]&SL;
assign A[28]=X[29]&SR|X[28]&SV|X[27]&SL;
assign A[27]=X[28]&SR|X[27]&SV|X[26]&SL;
assign A[26]=X[27]&SR|X[26]&SV|X[25]&SL;
assign A[25]=X[26]&SR|X[25]&SV|X[24]&SL;
assign A[24]=X[25]&SR|X[24]&SV|X[23]&SL;
assign A[23]=X[24]&SR|X[23]&SV|X[22]&SL;
assign A[22]=X[23]&SR|X[22]&SV|X[21]&SL;
assign A[21]=X[22]&SR|X[21]&SV|X[20]&SL;
assign A[20]=X[21]&SR|X[20]&SV|X[19]&SL;
assign A[19]=X[20]&SR|X[19]&SV|X[18]&SL;
assign A[18]=X[19]&SR|X[18]&SV|X[17]&SL;
assign A[17]=X[18]&SR|X[17]&SV|X[16]&SL;
assign A[16]=X[17]&SR|X[16]&SV|X[15]&SL;
assign A[15]=X[16]&SR|X[15]&SV|X[14]&SL;
assign A[14]=X[15]&SR|X[14]&SV|X[13]&SL;
assign A[13]=X[14]&SR|X[13]&SV|X[12]&SL;
assign A[12]=X[13]&SR|X[12]&SV|X[11]&SL;
assign A[11]=X[12]&SR|X[11]&SV|X[10]&SL;
assign A[10]=X[11]&SR|X[10]&SV|X[9]&SL;
assign A[9]=X[10]&SR|X[9]&SV|X[8]&SL;
assign A[8]=X[9]&SR|X[8]&SV|X[7]&SL;
assign A[7]=X[8]&SR|X[7]&SV|X[6]&SL;
assign A[6]=X[7]&SR|X[6]&SV|X[5]&SL;
assign A[5]=X[6]&SR|X[5]&SV|X[4]&SL;
assign A[4]=X[5]&SR|X[4]&SV|X[3]&SL;*/
//assign A[3]=X[4]&SR|X[3]&SV|X[2]&SL;
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);
logic [4:0] result;
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[12:9] = result[3:0];
assign L[32]=SR;
assign L[31]=SV;
assign L[30]=SL;
assign L[24]=SS1;
assign L[23]=SS0;
assign L[26]=M3;
assign L[27]=M2;
assign L[28]=M1;
assign L[29]=M0;
assign L[21:18] = {sign, zero, overflow, carryOut};
always_comb
begin
  case ({SS1,SS0})
    2'b00: result=A+B+C0;
    2'b01: result=X&B;
    2'b10: result=X|B;
    2'b11: result=X^B;
    default: result={5{1'bx}};
  endcase
end
endmodule


目录
相关文章
|
9月前
|
人工智能 并行计算 openCL
魔搭+Xinference 平台:CPU,GPU,Mac-M1多端大模型部署
随着 Llama2 的开源,以及通义千问、百川、智谱等国内大模型的问世,很多用户有了本地部署去尝试大模型的需求,然而硬件的需求阻碍了很多人的尝试,并不是所有人都拥有一块英伟达显卡的,所以 Llama2 问世不久,大神 Andrej Karpathy 的一个 weekend project 爆火——llama2.c。
魔搭+Xinference 平台:CPU,GPU,Mac-M1多端大模型部署
|
13天前
汇编语言(第四版) 实验一 查看CPU和内存,用机器指令和汇编指令编程
汇编语言(第四版) 实验一 查看CPU和内存,用机器指令和汇编指令编程
|
2月前
|
存储 缓存 算法
带你理清CPU,cache和存储器之间的逻辑运作
带你理清CPU,cache和存储器之间的逻辑运作
54 2
|
2月前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能平台PAI产品使用合集之如何在CPU服务器上使用PAIEasyRec进行分布式训练
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
2月前
|
安全 机器人
ABB PLC自动化可编程逻辑控制器PLC AC500型 CPU
ABB PLC自动化可编程逻辑控制器PLC AC500型 CPU
|
12月前
|
Ubuntu 网络虚拟化 Windows
国产化之虚拟ARM64-CPU安装银河麒麟操作系统
国产化之虚拟ARM64-CPU安装银河麒麟操作系统
976 0
|
前端开发 rax
实验一:查看CPU和内存,用机器指令和汇编指令编程
实验一:查看CPU和内存,用机器指令和汇编指令编程
168 0
|
弹性计算 固态存储
阿里云服务器的vCPU是什么意思?虚拟CPU?
阿里云服务器的vCPU是什么意思?虚拟CPU?阿里云服务器vCPU和CPU是什么意思?CPU和vCPU有什么区别?一台云服务器ECS实例的CPU选项由CPU物理核心数和每核线程数决定,CPU是中央处理器,一个CPU可以包含若干个物理核,通过超线程HT(Hyper-Threading)技术可以将一个物理核变成两个逻辑处理核。vCPU(virtual CPU)是ECS实例的虚拟处理核。云服务器吧来详细说下阿里云服务器CPU和vCPU的区别:
1519 0
|
存储 程序员
MOTOROLA FLN3524A 控制逻辑将CPU连接到计算机
MOTOROLA FLN3524A 控制逻辑将CPU连接到计算机
84 0
MOTOROLA FLN3524A 控制逻辑将CPU连接到计算机
|
存储
ICS TRIPLEX T8461 创建额外的虚拟或逻辑CPU
ICS TRIPLEX T8461 创建额外的虚拟或逻辑CPU
79 0
ICS TRIPLEX T8461 创建额外的虚拟或逻辑CPU