题解 | #移位运算与乘法#
移位运算与乘法
https://www.nowcoder.com/practice/1dd22852bcac42ce8f781737f84a3272
`timescale 1ns/1ns
module multi_sel(
input [7:0]d ,
input clk,
input rst,
output reg input_grant,
output reg [10:0]out
);
//*************code***********//
reg [1:0] count;
reg [7:0] d_reg;
always@(posedge clk or negedge rst) begin
if(~rst) begin
count<=0;
out<=0;
d_reg<=0;
input_grant<=1'b0;
end
else begin
count<=count+1;
case(count)
2'b00:begin
out<=d;
d_reg<=d;
input_grant<=1'b1;
end
2'b01:begin
out<=d_reg+(d_reg<<1);
input_grant<=1'b0;
end
2'b10:begin
out<=d_reg+(d_reg<<2)+(d_reg<<1);
input_grant<=1'b0;
end
2'b11:begin
out<=d_reg<<3;
input_grant<=1'b0;
end
endcase
end
end
//*************code***********//
endmodule
查看8道真题和解析