можно например написать
always @(posedge clock)
if (in1)
out1 <= 1;
else if (in2)
out1 <= in3;
else out1 <= 0;
и бегины-енды не нужны.
А можно и так :)
assign temp_out1 = in1 ? 1 : (in2 ? in3 : 0);
always @(posedge clock)
out1 <= temp_out1;
А можно и так :)
always @(posedge clock)
out1 <= in1 ? 1 : (in2 ? in3 : 0);
В общем бегины-енды нужны только тогда, когда внутри блока более одного оператора, что в реальной жизни далеко не всегда.