A. Dataflow one-liner
module demux1to4 (
input d,
input [1:0] s,
output [3:0] y
);
// One-hot mask (1 << s), then gate with d replicated across 4 bits.
assign y = ({4{d}}) & (4'b0001 << s);
endmodule
B. Equivalent case version (Behavioral)
module demux1to4 (
input d,
input [1:0] s,
output reg [3:0] y
);
always @* begin
y = 4'b0000;
case (s)
2'b00: y[0] = d;
2'b01: y[1] = d;
2'b10: y[2] = d;
2'b11: y[3] = d;
endcase
end
endmodule