题解 | #多功能数据处理器#
多功能数据处理器
https://www.nowcoder.com/practice/e009ab1a7a4c46fb9042c09c77ee27b8
`timescale 1ns/1ns
module data_select(
input clk,
input rst_n,
input signed[7:0]a,
input signed[7:0]b,
input [1:0]select,
output reg signed [8:0]c
);
always@(posedge clk or negedge rst_n)begin
if(!rst_n)begin
c<=9'b0;
end
else begin
case(select)
0:begin
c<=a;
end
1:begin
c<=b;
end
2:begin
if(a[7]==b[7])
c<=a+b;
else
c<=(a[6:0]>b[6:0])?{{a[7]},{a[6:0]-b[6:0]}}:{{b[7]},{b[6:0]-a[6:0]}};
end
3:begin
if(a[7]==b[7])
c<=(a[6:0]>b[6:0])?(a-b):{{-a[7]},{b[6:0]-a[6:0]}};
else
c<={{a[7]},{a[6:0]+b[6:0]}};
end
endcase
end
end
endmodule
查看10道真题和解析