[L0-P03] Vector - Introduction to Examples, About vector & scalar, Problem Solving 10min

module vector (
input [3:0] vector_0_in,
input scala_1_in,
input [12:0] vector_2_in,
input [3:0] vector_3_in_0,
input [3:0] vector_3_in_1,
input [3:0] vector_3_in_2,
output scala_0_out_0,
output scala_0_out_1,
output scala_0_out_2,
output scala_0_out_3,
output [3:0] vector_1_out,
output [6:0] vector_2_out,
output [11:0] vector_3_out
);
assign scala_0_out_0 = ~vector_0_in[0];
assign scala_0_out_1 = ~vector_0_in[1];
assign scala_0_out_2 = ~vector_0_in[2];
assign scala_0_out_3 = ~vector_0_in[3];
//wrong answer
assign vector_1_out = ~scala_1_in;
assign vector_2_out[0] = ~vector_2_in[0];
assign vector_2_out[1] = vector_2_in[1] & vector_2_in[2];
assign vector_2_out[2] = ~(vector_2_in[3] & vector_2_in[4]);
assign vector_2_out[3] = (vector_2_in[5] | vector_2_in[6]);
assign vector_2_out[4] = ~(vector_2_in[7] | vector_2_in[8]);
assign vector_2_out[5] = (vector_2_in[9] ^ vector_2_in[10]);
assign vector_2_out[6] = ~(vector_2_in[11] ^ vector_2_in[12]);
//wrong answer
assign vector_3_out[0] = ~vector_0_in[0];
assign vector_3_out[1] = ~vector_0_in[1];
assign vector_3_out[2] = ~vector_0_in[2];
assign vector_3_out[3] = ~vector_0_in[3];
assign vector_3_out[4] = ~vector_1_in[0];
assign vector_3_out[5] = ~vector_1_in[1];
assign vector_3_out[6] = ~vector_1_in[2];
assign vector_3_out[7] = ~vector_1_in[3];
assign vector_3_out[8] = ~vector_2_in[0];
assign vector_3_out[9] = ~vector_2_in[1];
assign vector_3_out[10] = ~vector_2_in[2];
assign vector_3_out[11] = ~vector_2_in[3];
endmodule

// first method
assign vector_1_out = {scalar_1_in, scalar_1_in, scalar_1_in, scalar_1_in};
// second method
assign vector_1_out = {4{scalar_1_in}};

// vector를 묶어서 표현
assign vector_3_out = {vector_3_in_0, vector_3_in_1, vector_3_in_2};
