题解 | #位拆分与运算#
位拆分与运算
https://www.nowcoder.com/practice/1649582a755a4fabb9763d07e62a9752
`timescale 1ns/1ns
module data_cal(
input clk,
input rst,
input [15:0]d,
input [1:0]sel,
output reg [4:0]out,
output reg validout
);
//*************code***********//
reg [15:0] d_get;
always @(posedge clk, negedge rst) begin
if(!rst)
begin
out = 0;
validout = 0;
end
else
begin
case(sel)
2'b00:
begin
d_get = d;
out = 0;
validout = 0;
end
2'b01:
begin
out = d_get[3:0] + d_get[7:4];
validout = 1;
end
2'b10:
begin
out = d_get[3:0] + d_get[11:8];
validout = 1;
end
2'b11:
begin
out = d_get[3:0] + d_get[15:12];
validout = 1;
end
endcase
end
end
//*************code***********//
endmodule
查看10道真题和解析