题解 | #位拆分与运算#sel=0才输入有效
位拆分与运算
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 [4:0]out, output validout ); //*************code***********// reg[4:0] out; reg validout; reg[15:0] d_mid; always@(posedge clk or negedge rst)begin if(~rst)begin out <= 0;validout <= 0;d_mid <= 0; end else if(sel == 0)begin d_mid <= d; end end always@(posedge clk or negedge rst)begin case(sel) 0:// begin out <= 0; validout <= 0; end 1:// begin out <= d_mid[3:0] + d_mid[7:4]; validout <= 1; end 2:// begin out <= d_mid[3:0] + d_mid[11:8]; validout <= 1; end 3:// begin out <= d_mid[3:0] + d_mid[15:12]; validout <= 1; end endcase end //*************code***********// endmodule