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